有了這個工具你將能安心摸魚,動手搞一搞
來源:轉(zhuǎn)載 作者:livingbody
編輯:學(xué)姐
還記得小時候爸媽不偷看電視的你嗎?
還記得高中時代看小說防著老師的你嗎?
還記得上班打游戲防著領(lǐng)導(dǎo)的你嗎?
來感受下用PaddleDetection做上班偷懶神器
NO.1介紹
本文使用PaddleDetection自制數(shù)據(jù)集,做人臉分類,調(diào)用本地電腦的前置攝像頭識別出現(xiàn)在屏幕前的人臉,根據(jù)不同的人臉切換本地電腦的窗口,實現(xiàn)偷懶神器~
NO.2效果
我的演示項目效果地址:
https://www.bilibili.com/video/BV1ni4y1V7TT
百度推廣視頻演示地址:
https://www.bilibili.com/video/BV1kC4y1t7s1
我實現(xiàn)的效果截圖:

百度推廣視頻效果圖:

NO.3?PaddleDetection介紹
目標(biāo)檢測是機(jī)器視覺領(lǐng)域的核心問題之一。7月3日百度AI開發(fā)者大會,飛槳核心框架Paddle Fluid v1.5宣布開源了PaddleDetection物體檢測統(tǒng)一框架,用戶可以非常方便、快速的搭建出各種檢測框架,構(gòu)建強(qiáng)大的各類應(yīng)用。
PaddleDetection物體檢測統(tǒng)一框架,覆蓋主流的檢測算法,即具備高精度模型、也具備高速推理模型,并提供豐富的預(yù)訓(xùn)練模型,具有工業(yè)化、模塊化、高性能的優(yōu)勢。
?工業(yè)化:結(jié)合飛槳核心框架的高速推理引擎,訓(xùn)練到部署無縫銜接?
?模塊化:提供模塊化設(shè)計,模型網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)處理均可定制?
??高性能:基于高效的核心框架,訓(xùn)練速度和顯存占用上有一定的優(yōu)勢,例如,YOLO v3訓(xùn)練速度相比同類框架快1.6倍。
NO.4現(xiàn)有的模型

NO.5?用PaddleDetection實現(xiàn)本項目
PaddleDetection下載地址:
https://github.com/PaddlePaddle/PaddleDetection
或者
https://gitee.com/paddlepaddle/PaddleDetection
01?本地制作數(shù)據(jù)集
實現(xiàn)本項目,最好用打算實驗的相機(jī)拍攝數(shù)據(jù)集,就比如我想在自己的筆記本電腦上實現(xiàn),那么可以直接調(diào)用本地電腦的前置相機(jī)來采集人臉照片,調(diào)用本地電腦拍照儲存代碼如會自動調(diào)用攝像頭,按 **S** 按鍵,保存捕獲的圖像, **ESC** 退出。
02數(shù)據(jù)標(biāo)注
上述代碼執(zhí)行完后會在本地這段代碼所在路徑創(chuàng)建pictures文件夾存放圖片,接下來下載labelImg工具進(jìn)行數(shù)據(jù)標(biāo)注參考教程:
[labelImg在Python3 linux環(huán)境下安裝]
(https://blog.csdn.net/weixin_40745291/article/details/85775708)
~?安裝完成后在本地執(zhí)行以下命令打開labelImg:
打開圖片路徑:

選擇框選,并給人臉標(biāo)注名字(這里我用紅綠燈的圖為例保護(hù)隱私):

標(biāo)注完成:

03訓(xùn)練模型
現(xiàn)在的路徑應(yīng)該是這樣的:

pictures下放著我們的圖片和xml文件。
3.1 生成圖片和xmls關(guān)系的描述文件
上面兩段代碼執(zhí)行完后會生成三個文件:

3.2修改配置文件
修改這個文件:PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml
主要修改就是改動了dataset_dir和anno_path和use_default_label,本項目的ssd_mobilenet_v1_voc.yml文件已經(jīng)修改了。
內(nèi)容如下:
NO.4?開始訓(xùn)練
NO.5?本地部署
轉(zhuǎn)換模型后,這個路徑下:
~/PaddleDetection-release/inference_model/ssd_mobilenet_v1_voc會有__params__ __model__ infer_cfg.yml
三個文件,下載到本地。
本地在python環(huán)境下下載PaddleDetection的包,將模型的三個文件放到PaddleDetection目錄下的output目錄下:

安裝工具wmctrl 在linux的終端下執(zhí)行:
sudo apt-get install wmctrl
修改本地PaddleDetection包中的這個文件:
/PaddleDetection-release-0.3/deploy/python/infer.py
內(nèi)容如下:
上面代碼的核心代碼,根據(jù)個人使用一點修改,核心代碼在585行,其他不用改動,內(nèi)容如下:

NO.6?總結(jié)
PaddleDetection可以幫助我們很好的實現(xiàn)各種目標(biāo)檢測任務(wù),不需要用戶寫大量的代碼,只需要簡單的配置
使用PaddleDetection也可以很輕松的實現(xiàn)本地的部署
如果項目有任何問題,歡迎在評論區(qū)留言指出
需要源代碼嗎?需要的話評論區(qū)留言嗷!