国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLO v2實現(xiàn)圖像目標(biāo)檢測

這篇具有很好參考價值的文章主要介紹了YOLO v2實現(xiàn)圖像目標(biāo)檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、作者介紹

熊文博,男,西安工程大學(xué)電子信息學(xué)院,2020級碩士研究生,張宏偉人工智能課題組。
研究方向:機器視覺與人工智能
電子郵件:996270714@qq.com
師兄的CSDN主頁:歡迎關(guān)注和相互交流學(xué)習(xí).

YOLO系列學(xué)習(xí)-主要熟悉各個模型的改進(jìn)

2、算法簡介

YOLO英文名字為Yolo Only Look Once,意為你只看一次,也就是說你只看一次,就可以把圖像中的目標(biāo)檢測出來。

YOLO是一種目標(biāo)檢測的算法,其于2015年首次提出,目前最新的已經(jīng)到Y(jié)OLO v8了。

現(xiàn)在用YOLO v2加載訓(xùn)練好的COCO數(shù)據(jù)集權(quán)重模型進(jìn)行圖片目標(biāo)預(yù)測,有關(guān)細(xì)節(jié)部分就不贅述了。

這里放上YOLO v2的論文地址:
YOLO v2論文地址:https://arxiv.org/pdf/1612.08242.pdf

3、環(huán)境配置

首先需要配置好相關(guān)鏡像,這里需要安裝上OpenCV和TensorFlow這兩個安裝包。
清華鏡像安裝OpenCV:

pip install opencv-python==3.4.9.31 -i https://pypi.tuna.tsinghua.edu.cn/simple

豆瓣鏡像安裝TensorFlow:(這里強烈建議大家安裝CPU版本的TensorFlow,GPU版本需要提前配置好cuda和cudnn(具體步驟見: Windows系統(tǒng)GPU版本PyTorch安裝教程),CPU版本的用于圖片目標(biāo)檢測足夠了)

安裝CPU版本:

pip install tensorflow==1.13.1 -i https://pypi.douban.com/simple

安裝GPU版本的TensorFlow:

pip install tensorflow-gpu==1.13.1 -i https://pypi.douban.com/simple

4、代碼實現(xiàn)

4.1 數(shù)據(jù)準(zhǔn)備

這里給出YOLO v2算法用TensorFlow框架編寫好的程序的百度網(wǎng)盤鏈接:
鏈接: https://pan.baidu.com/s/1ZDTfuDHh1jXgc271KDnrsw 提取碼: rtbx

文件夾里面文件分布如下圖所示:
YOLO v2實現(xiàn)圖像目標(biāo)檢測
其中Main.py就是用于圖像目標(biāo)檢測的程序,在該程序中,需要修改相應(yīng)的讀取圖片路徑、輸出路徑和模型路徑。
30行修改讀入圖片的路徑,這里要注意最好用圖片的絕對路徑

image_file = '1.jpg'    #讀取輸入圖片

55行修改圖片的輸出保存路徑

cv2.imwrite("detection_result.jpg", img_detection)

44行是讀取模型權(quán)重文件的路徑

model_path = "./yolo2_model/yolo2_coco.ckpt"

4.2 完整代碼

下面是完整的Main.py中的代碼:

# %load Main.py
# --------------------------------------
# @Time    : 2018/5/16$ 17:17$
# @Author  : KOD Chen
# @Email   : 821237536@qq.com
# @File    : Main$.py
# Description :YOLO_v2主函數(shù).
# --------------------------------------

import numpy as np
import tensorflow as tf
import cv2,os
from PIL import Image
import matplotlib.pyplot as plt

from model_darknet19 import darknet
from decode import decode
from utils import preprocess_image, postprocess, draw_detection
from config import anchors, class_names
#%matplotlib inline

def main():
    input_size = (416,416)
    image_file = '1.jpg'    #讀取輸入圖片
    image = cv2.imread(image_file)
    image_shape = image.shape[:2] #只取wh,channel=3不取

    # copy、resize416*416、歸一化、在第0維增加存放batchsize維度
    image_cp = preprocess_image(image,input_size)

    # 【1】輸入圖片進(jìn)入darknet19網(wǎng)絡(luò)得到特征圖,并進(jìn)行解碼得到:xmin xmax表示的邊界框、置信度、類別概率
    tf_image = tf.placeholder(tf.float32,[1,input_size[0],input_size[1],3])
    model_output = darknet(tf_image) # darknet19網(wǎng)絡(luò)輸出的特征圖
    output_sizes = input_size[0]//32, input_size[1]//32 # 特征圖尺寸是圖片下采樣32倍
    output_decoded = decode(model_output=model_output,output_sizes=output_sizes,
                               num_class=len(class_names),anchors=anchors)  # 解碼

    model_path = "./yolo2_model/yolo2_coco.ckpt"
    saver = tf.train.Saver()
    with tf.Session() as sess:
        saver.restore(sess,model_path)
        bboxes,obj_probs,class_probs = sess.run(output_decoded,feed_dict={tf_image:image_cp})

    # 【2】篩選解碼后的回歸邊界框——NMS(post process后期處理)
    bboxes,scores,class_max_index = postprocess(bboxes,obj_probs,class_probs,image_shape=image_shape)

    # 【3】繪制篩選后的邊界框
    img_detection = draw_detection(image, bboxes, scores, class_max_index, class_names)
    cv2.imwrite("detection_result.jpg", img_detection)
    img_detection = cv2.cvtColor(img_detection, cv2.COLOR_RGB2BGR) 
    plt.figure(figsize=(10,10))
    plt.imshow(img_detection) #界面顯示
    #print('YOLO_v2 detection has done!')
    print('YOLO_v2 檢測完成!')
    #cv2.imshow("detection_results", img_detection)
    #cv2.waitKey(0)

    plt.show()
if __name__ == '__main__':
    main()

4.3 運行結(jié)果

運行程序,就可以對圖片進(jìn)行目標(biāo)檢測了。更換圖片路徑,可以對不同的圖片進(jìn)行目標(biāo)檢測了。
下面展示一些圖片的運行結(jié)果:
YOLO v2實現(xiàn)圖像目標(biāo)檢測YOLO v2實現(xiàn)圖像目標(biāo)檢測

常見問題總結(jié)

1、問題1:AttributeError: module ‘tensorflow’ has no attribute ‘placeholder’
YOLO v2實現(xiàn)圖像目標(biāo)檢測
報錯原因:加載的虛擬環(huán)境中Tensorflow版本太高,Tensorflow 1.x 版本提供placeholder,而Tensorflow 2.x 版本暫時沒有這個模塊。
解決辦法:降低Tensorflow版本。

注意:Python解釋器版本太高也無法安裝成功,建議安裝3.7.x版本解釋器。

pip install tensorflow==1.13.1 -i https://pypi.douban.com/simple

2、問題2:TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible work
YOLO v2實現(xiàn)圖像目標(biāo)檢測
報錯原因:這是由于我們使用pip安裝tensorflow的時候,安裝依賴包protobuf的版本過高造成的。

解決辦法:只需要卸掉原來的,按照編譯器提示的信息下載3.19.0對應(yīng)的版本即可解決問題。

# 卸載原來的版本
pip uninstall protobuf   

# 安裝新版本
pip install protobuf==3.19.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

3、問題3:使用pip指令進(jìn)行安裝時,若出現(xiàn)以下提示信息,則只需對pip進(jìn)行更新即可。
YOLO v2實現(xiàn)圖像目標(biāo)檢測

pip升級指令文章來源地址http://www.zghlxwxcb.cn/news/detail-485313.html

python -m pip install --upgrade pip

到了這里,關(guān)于YOLO v2實現(xiàn)圖像目標(biāo)檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包