Mac上開源圖像物體識別工具YOLO-darknet-安裝使用指南
一、前言
YOLO是一名叫做Joseph Chet Redmon的大神與他的幾個小夥伴做的一個開源實時物體檢測係統。Joseph的幾個小夥伴來自於華盛頓大學以及伯克利大學等知名院校。
YOLO是基於他們開發的Darknet(基於c語言的神經網絡開源框架)上的一個應用係統,不同於前置檢測係統將一副圖像的不同位置以及維度分別進行分類預測,YOLO將整幅圖像輸入進單一的神經網絡進行分類預測。這使得YOLO相對於其它的物體檢測網絡更加的快速。
其在 VOC 2007(Visual Object Class Challenge 2007)上的 mAP(Mean Average Precision)為78.6%,在 COCO test-dev 上為 48.1%
二、YOLO的前置組件介紹
YOLO是基於Darknet的應用,而Darknet還有幾個可選的依賴組件:
OpenCV:如果需要更多的圖像類型支持,需引進該組件。我在之前研究人臉識別開源框架OPENFACE時,已經在電腦上安裝過OpenCV了。感興趣的同學可以移步 Mac上開源人臉識別軟件OPENFACE安裝全流程教程 查看
CUDA:如果要使用GPU進行計算,需引進該組件。可惜我買不起GPU,所以pass
三、YOLO安裝步驟以及錯誤解決方案
1)Darknet下載與安裝
git clone https://github.com/pjreddie/darknet.gitcd darknetmake
2)Darknet 錯誤與解決
錯誤1: undeclared identifier 'CLOCK_REAKTIME'
./src/utils.c:16:19: fatal error: use of undeclared identifier 'CLOCK_REALTIME'
clock_gettime(CLOCK_REALTIME, &now);
根據報錯日誌信息可以指導,在 src/utils.c 中的 CLOCK_REALTIME 這個標識符並沒有被定義。通過在網絡上搜索得知,clock_gettime這個函數在MAC電腦的操作係統中並沒有被實現,所以我們要使用 MAC 係統上的類似函數來替代。通過對 src/utils.c 進行改寫,可以解決該問題,具體代碼如下:
3)Darknet 安裝成功驗證
在命令行輸入:
./darknet
當得到反饋如下時,說明安裝成功了:
usage: ./darknet
Darknet安裝成功後,其實就代表著yolo安裝好了!下邊我們來繼續配置一下環境,然後開始使用yolo吧
四、yolo的配置與使用
yolo是基於darknet的一個具體的實例,說是介紹yolo的使用,實際上是介紹darknet的配置與使用
1)darknet的使用與參數介紹
通過前邊的介紹,我們知道darknet是一款神經網絡開源框架,那麼使用darknet,我們需要確定下邊幾個參數:
[1]神經網絡模型:darknet使用一個 xx.cfg 的文件來定義神經網絡模型,包括神經網絡的迭代次數、層級網絡架構等內容
[2]神經網絡權重:darknet可以直接使用訓練好的權重來進行測試/預測,我們也可以通過對訓練樣本進行訓練獲得網絡權重。比如可通過下邊的命令獲得yolo模型已訓練好的權重
wget https://pjreddie.com/media/files/yolo.weights
[3]訓練樣本(optional:訓練時需要):當我們需要訓練時,需要生成訓練樣本的標簽文件 label.txt。darknet使用了一個 xx.data 類型的文件來存儲訓練樣本參數
通過下邊的命令行來實現對訓練樣本的訓練:
./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23
[4]測試樣本(optional:測試時需要):
測試樣本是圖像,我們可以選擇單張圖片處理形式、多張圖片處理形式,以及攝像頭方式來對圖像進行檢測。需注意的是如果要使用網絡攝像頭接入流來對物體進行圖像檢測,需要接入 OpenCV,而為了提高速度最好也接入 CUDA 來使用 GPU 進行運算。
通過下邊的三種命令行均可對圖像進行物體檢測,其分別代表了一種處理模式:
//單圖片模式./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg//多圖片模式,即不要輸入測試樣本,然後後邊再一張張輸入,這個模式可以避免反複load模型./darknet detect cfg/yolo.cfg yolo.weights//攝像頭模式(沒錢買不起GPU,所以未驗證)./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
2)yolo的使用樣例
[1]預訓練權重下載(250MB)
wget https://pjreddie.com/media/files/yolo.weights
[2]根據下載的權重來進行物體檢測
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
輸出結果如下所示:
通過上邊的介紹,我相信大夥應該對yolo或者說darknet應該有了初步的理解了,通過閱讀源碼以及對該框架的繼續學習,我相信我們應該可以將這套開源框架應用到實際場景中進行應用!
Hope everyone will have fun playing around!
最後更新:2017-10-12 17:41:46
上一篇:
ipad10.5更新到ios11後連不上手機熱點
下一篇:
iCloud照片同步慢或者不能同步
現在high sierra出來了,想獲取10.12.6怎麼辦呢
Apple Store 免費兌換:Plotagraph 幫你做出大片級的 GIF 動圖
itunes 未能連接到此iphone 發生未知錯誤(OxE8000015)
請聯係itunes store支持以完成此交易,怎麼解決。?
iTunes要求您的電腦運行Windows 7 Service Pack 1 或更高版本
win10 電腦用iCloud備份手機照片C盤被大量占用
iTunes12.7的版本中沒有App Store,如何下載應用並且更新到手機上?
我需要立即取消Apple music會員資格
Adobe CC 2018版本破解包,支持Win/Mac係統,親測有效
我Mac的itunes連接iphone不顯示應用,怎麼設置?
熱門內容
冬日裏的小確幸英式蘋果派 Delicious and Seasonal Apple Pie
為什麼你比從前更需要一份 AppleCare+?
Apple Watch遇時區問題 一問Siri今天天氣就重啟
美國吃定中國市場?不僅iPhone熱售,apple也想賣給中國
Apple Park訪客中心將於下周五向公眾開放
Apple Pay 的擴張之路繼續 中國也新增兩家
iPhone X有“烙印”屬正常現象?Apple 建議四大避免方法
曬單大賽#屏幕是最大驚喜—Apple 蘋果 iPhone X 手機 使用5天全感受
傳博通最快今天宣布收購高通計劃;Apple Watch 3被曝出故障:通過Siri詢問當天天氣會死機
海外有人問到 Apple Watch 天氣狀況時,突然就重啟了