最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于SSD目標(biāo)檢測(cè)模型的人臉口罩識(shí)別

 更新時(shí)間:2022年11月29日 11:13:39   作者:Mabel-mql  
這篇文章主要介紹了關(guān)于SSD目標(biāo)檢測(cè)模型的人臉口罩識(shí)別問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

最近學(xué)習(xí)了SSD算法,了解了其基本的實(shí)現(xiàn)思路,并通過(guò)SSD模型訓(xùn)練自己的模型。

基本環(huán)境

  • torch1.2.0
  • Pillow8.2.0
  • torchvision0.4.0
  • CUDA版本可查看自己電腦,這里使用CUDA10.0
  • visual studio 2019
  • scipy1.2.1
  • numpy1.17.0
  • matplotlib3.1.2
  • opencv_python4.1.2.30
  • tqdm4.60.0
  • h5py2.10.0

安裝

建議創(chuàng)建一個(gè)虛擬環(huán)境,本文使用到的是在Pycharm環(huán)境下

打開(kāi)pytorch的官方安裝方法:

https://pytorch.org/get-started/previous-versions/

但是可以先進(jìn)入:

https://download.pytorch.org/whl/torch_stable.html

找到自己需要下載自己需要的即可。

找到自己的下載路徑,然后再命令窗口定位,再使用

pip install +下載好的whl文件即可

再安裝相關(guān)依賴包需要先激活環(huán)境,進(jìn)行安裝。

同時(shí)安裝CUDA和visual studio 2019可參考網(wǎng)上教程,這里不細(xì)講。

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

本文使用VOC格式進(jìn)行訓(xùn)練,

訓(xùn)練前將標(biāo)簽文件放在VOCdevkit文件夾下的VOC2007文件夾下的Annotation中,文件格式為xml。

圖片文件放在VOCdevkit文件夾下的VOC2007文件夾下的JPEGImages中,格式為jpg,如下圖所示。

數(shù)據(jù)集處理

整個(gè)項(xiàng)目的文件如下(里面包含一些個(gè)人測(cè)試的代碼):

第一步需要運(yùn)行voc_annotation.py,并更改其代碼里面的一些參數(shù)(annotation_mode、classes_path、trainval_percent、train_percent、VOCdevkit_path都可以修改,但也可以只修改以下內(nèi)容即可):

需要修改model_data文件里面的voc_classes.txt內(nèi)容,例如本例中修改如下:

即可生成訓(xùn)練用的2007_train.txt以及2007_val.txt。

圖片處理

本例統(tǒng)一輸入進(jìn)來(lái)的圖片是300*300大小的3通道圖片。

  • 對(duì)輸入進(jìn)來(lái)的圖片進(jìn)行判斷是否為RGB,如果不是則進(jìn)行轉(zhuǎn)RGB
  • 對(duì)圖像進(jìn)行統(tǒng)一大小裁剪,為防止圖片失真,在其添加上灰條。
  • 對(duì)圖片進(jìn)行數(shù)據(jù)增強(qiáng),通過(guò)翻轉(zhuǎn),隨機(jī)選取等操作。

模型訓(xùn)練

訓(xùn)練文件train.py中也要修改部分參數(shù)

classes_path一定要對(duì)應(yīng)自己的分類文件,以及自己權(quán)重文件的位置。經(jīng)過(guò)多次epochs后,權(quán)值會(huì)生成在logs文件夾。

在訓(xùn)練開(kāi)始前還需要更改其他py文件的內(nèi)容:

在summary.py文件中:

m=SSD300(7,‘vgg’).to(device)中7代表的是分類的個(gè)數(shù),這里需要修改為2,因?yàn)橹槐纠环譃榱?類。

下面(3,300,300)代表輸入的是300*300大小的3通道圖片。

運(yùn)行train.py文件進(jìn)行模型訓(xùn)練,若出現(xiàn)out of memory問(wèn)題,可以減小每次訓(xùn)練的batch_size的大小。

模型預(yù)測(cè)

模型預(yù)測(cè)先要去修改ssd.py文件中的model_path(在自己保存權(quán)值的logs文件當(dāng)中選取一個(gè)權(quán)值文件,放到model_data文件夾中,并修改下面的路徑,其次classes_path也要進(jìn)行對(duì)應(yīng)的修改:

這里單獨(dú)調(diào)用攝像頭進(jìn)行預(yù)測(cè),相關(guān)代碼如下所示:

import time

import cv2
import numpy as np
from PIL import Image

from ssd import SSD


#口罩識(shí)別模型
if __name__ == "__main__":
   ssd = SSD()
   video_path      = 0
   video_save_path = ""
   video_fps       = 25.0
   # 指定測(cè)量fps的時(shí)候,圖片檢測(cè)的次數(shù)
   test_interval = 100
   capture=cv2.VideoCapture(video_path)
   if video_save_path!="":
       fourcc = cv2.VideoWriter_fourcc(*'XVID')
       size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
       out = cv2.VideoWriter(video_save_path, fourcc, video_fps, size)

   ref, frame = capture.read()
   if not ref:
       raise ValueError("未能正確讀取攝像頭(視頻),請(qǐng)注意是否正確安裝攝像頭(是否正確填寫(xiě)視頻路徑)。")

   fps = 0.0
   while(True):
       t1 = time.time()
       # 讀取某一幀
       ref, frame = capture.read()
       if not ref:
           break
       # 格式轉(zhuǎn)變,BGRtoRGB
       frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
       # 轉(zhuǎn)變成Image
       frame = Image.fromarray(np.uint8(frame))
       # 進(jìn)行檢測(cè)
       frame = np.array(ssd.detect_image(frame))
       # RGBtoBGR滿足opencv顯示格式
       frame = cv2.cvtColor(frame,cv2.COLOR_RGB2BGR)
       
       fps  = ( fps + (1./(time.time()-t1)) ) / 2
       print("fps= %.2f"%(fps))
       frame = cv2.putText(frame, "fps= %.2f"%(fps), (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
       
       cv2.imshow("video",frame)
       if video_save_path!="":
           out.write(frame)

       if cv2.waitKey(10) & 0xff==ord('q'):
           break
   capture.release()
   cv2.destroyAllWindows()

效果圖如下

未戴口罩

戴口罩

整體來(lái)說(shuō)效果還是不錯(cuò)的。

后續(xù)

后面我又去找了其他數(shù)據(jù)集進(jìn)行訓(xùn)練,對(duì)其進(jìn)行不同的圖片處理以及模型的改進(jìn),達(dá)到的效果還不錯(cuò)。但是圖片格式為jpeg的,因此在代碼當(dāng)中添加了對(duì)圖片類型的判斷,但是若不添加代碼,則需要更改文件

get_map.py中:

后綴為對(duì)應(yīng)的圖片類型,還有在voc_annotation.py代碼中有一處也需要修改圖片后綴名。

其次自己寫(xiě)了一個(gè)簡(jiǎn)易版的GUI界面,使其輸出各坐標(biāo),以及害蟲(chóng)的分類

效果圖如下:

但在模型對(duì)小目標(biāo)檢測(cè)方面還是存在一點(diǎn)問(wèn)題,正在嘗試提高其精度。

建議還是要先去學(xué)習(xí)下SSD模型的基本算法思路,理解起來(lái)更加清楚、明白.

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python語(yǔ)言描述最大連續(xù)子序列和

    Python語(yǔ)言描述最大連續(xù)子序列和

    這篇文章主要介紹了Python語(yǔ)言描述最大連續(xù)子序列和,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • python 使用pandas計(jì)算累積求和的方法

    python 使用pandas計(jì)算累積求和的方法

    今天小編就為大家分享一篇python 使用pandas計(jì)算累積求和的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • python3 mmh3安裝及使用方法

    python3 mmh3安裝及使用方法

    這篇文章主要介紹了python3 mmh3安裝及使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python實(shí)現(xiàn)日期字符串轉(zhuǎn)換為指定格式的日期

    Python實(shí)現(xiàn)日期字符串轉(zhuǎn)換為指定格式的日期

    在Python編程中,日期處理是一個(gè)常見(jiàn)的任務(wù),本文將詳細(xì)介紹如何在Python中將日期字符串轉(zhuǎn)換為指定格式的日期,感興趣的小伙伴可以學(xué)習(xí)一下
    2024-04-04
  • Django實(shí)現(xiàn)聊天機(jī)器人

    Django實(shí)現(xiàn)聊天機(jī)器人

    本文基于channels + websocket結(jié)合Celery和Python爬蟲(chóng)技術(shù)打造了一個(gè)會(huì)算術(shù)懂詩(shī)文的聊天機(jī)器人,是非常難得的一個(gè)Django綜合應(yīng)用項(xiàng)目哦,感興趣的朋友可以參考下
    2021-05-05
  • np.concatenate()函數(shù)數(shù)組序列參數(shù)的實(shí)現(xiàn)

    np.concatenate()函數(shù)數(shù)組序列參數(shù)的實(shí)現(xiàn)

    本文主要介紹了np.concatenate()函數(shù)數(shù)組序列參數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python3 如何開(kāi)啟自帶http服務(wù)

    Python3 如何開(kāi)啟自帶http服務(wù)

    這篇文章主要介紹了Python3 開(kāi)啟自帶http服務(wù)的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • PyTorch中的squeeze()和unsqueeze()解析與應(yīng)用案例

    PyTorch中的squeeze()和unsqueeze()解析與應(yīng)用案例

    這篇文章主要介紹了PyTorch中的squeeze()和unsqueeze()解析與應(yīng)用案例,文章內(nèi)容介紹詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • 利用Python制作一個(gè)動(dòng)物識(shí)別小程序

    利用Python制作一個(gè)動(dòng)物識(shí)別小程序

    動(dòng)物識(shí)別是計(jì)算機(jī)視覺(jué)和模式識(shí)別領(lǐng)域的重要研究方向,它涉及通過(guò)圖像或視頻數(shù)據(jù)自動(dòng)識(shí)別和分類不同種類的動(dòng)物,隨著數(shù)字圖像技術(shù)和機(jī)器學(xué)習(xí)方法的快速發(fā)展,動(dòng)物識(shí)別在實(shí)際應(yīng)用中具有廣泛的潛力,本文將給大家介紹如何基于Python制作一個(gè)動(dòng)物識(shí)別小程序
    2023-10-10
  • Python使用graphviz畫(huà)流程圖過(guò)程解析

    Python使用graphviz畫(huà)流程圖過(guò)程解析

    這篇文章主要介紹了Python使用graphviz畫(huà)流程圖過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

铜梁县| 杭州市| 平远县| 建宁县| 曲阜市| 湛江市| 凤城市| 名山县| 湖口县| 乌恰县| 井冈山市| 六枝特区| 六枝特区| 昌图县| 巫山县| 彭泽县| 修文县| 陵川县| 岳阳县| 陆河县| 红原县| 陆良县| 皮山县| 垦利县| 杨浦区| 兴化市| 宝丰县| 卫辉市| 福州市| 衡水市| 克东县| 白银市| 册亨县| 南汇区| 乐都县| 玛曲县| 阿图什市| 东乌珠穆沁旗| 科技| 峡江县| 陕西省|