摘要:工作原理以前的檢測系統(tǒng)通過重復(fù)利用分類器和定位器來實現(xiàn)目標(biāo)識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。
原標(biāo)題:YOLO: Real-Time Object Detection
英文原文:https://pjreddie.com/darknet/...強烈推薦(TED視頻):https://www.ted.com/talks/jos...
You only look once (YOLO)是目前最先進(jìn)的實時對象檢測系統(tǒng)。在一臺Titan X上它能實時處理40-90幀每秒的圖像,并且準(zhǔn)確率高達(dá)78.6%(VOC 2007)和48.1%(COCO test-dev)。
Model Train Test mAP FLOPS FPS Cfg Weights Old YOLO VOC 2007+2012 2007 63.4 40.19 Bn 45 link SSD300 VOC 2007+2012 2007 74.3 - 46 link SSD500 VOC 2007+2012 2007 76.8 - 19 link YOLOv2 VOC 2007+2012 2007 76.8 34.90 Bn 67 cfg weights YOLOv2 544x544 VOC 2007+2012 2007 78.6 59.68 Bn 40 cfg weights Tiny YOLO VOC 2007+2012 2007 57.1 6.97 Bn 207 cfg weights SSD300 COCO trainval test-dev 41.2 - 46 link SSD500 COCO trainval test-dev 46.5 - 19 link YOLOv2 608x608 COCO trainval test-dev 48.1 62.94 Bn 40 cfg weights Tiny YOLO COCO trainval - - 7.07 Bn 200 cfg weights工作原理
以前的檢測系統(tǒng)通過重復(fù)利用分類器和定位器來實現(xiàn)目標(biāo)識別。它們把模型套在圖像的不同位置和大小區(qū)域,通過圖像各區(qū)域的最高分值來判定結(jié)果。
我們使用了完全不同的方法。我們通過把一個多帶帶的神經(jīng)網(wǎng)絡(luò)放在整個圖像上來進(jìn)行識別。這個網(wǎng)絡(luò)把圖像分成區(qū)域并對邊框和各區(qū)域的可能性進(jìn)行預(yù)測。這些邊框通過預(yù)測到的可能性進(jìn)行加權(quán)。
我們的模型相比于基于分類器的系統(tǒng)有幾個優(yōu)勢。它在測試時觀察整個圖像,所以它的預(yù)測是基于整個圖像上下文的。并且它通過一個單一網(wǎng)絡(luò)進(jìn)行預(yù)測,不像那些R-CNN系統(tǒng)需要對一幅圖像運用上千的網(wǎng)絡(luò)。這一特點使我們的系統(tǒng)超級快,速度是R-CNN的上千倍,一百倍快于快速R-CNN。想對全系統(tǒng)有更深入了解,可以閱讀我們的論文。
使用預(yù)先訓(xùn)練好的模型進(jìn)行預(yù)測下面帶你使用預(yù)先訓(xùn)練好的模型通過YOLO系統(tǒng)進(jìn)行對象檢測。如果你還沒有安裝Darknet的話,你可以通過以下命令安裝:
git clone https://github.com/pjreddie/darknet cd darknet make
就是這么簡單!
cfg/子目錄下已經(jīng)預(yù)置好了YOLO的配置文件。你還需要下載預(yù)先訓(xùn)練好的權(quán)重文件(258 MB):
wget https://pjreddie.com/media/files/yolo.weights
然后就可以開始運行檢測器了!
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
你會看到類似下面這樣的輸出:
layer filters size input output 0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 1 max 2 x 2 / 2 416 x 416 x 32 -> 208 x 208 x 32 ....... 29 conv 425 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 425 30 detection Loading weights from yolo.weights...Done! data/dog.jpg: Predicted in 0.016287 seconds. car: 54% bicycle: 51% dog: 56%
Darknet顯示出它檢測到的對象、信心以及花了多少時間。因為我們沒有把Darknet和OpenCV一起編譯,所以不能直接顯示圖像結(jié)果。但是我們把圖像結(jié)果保存在了predictions.png文件里。你可以打開這個文件看到檢測之后的結(jié)果。因為我們現(xiàn)在是在CPU上運行Darknet,所以它會花費6到12秒的時間才能處理一幅圖像。如果我們用GPU版本的話,所需時間會短得多。
我在這里提供了其它幾幅圖像,如果你感興趣可以逐一嘗試一下。試試data/eagle.jpg, data/dog.jpg, data/person.jpg和data/horses.jpg吧!
上面那個命令里的detect是一個更通用命令的精簡版,它等價于下面這個命令:
./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg
如果你只是想在一幅圖像上進(jìn)行檢測的話,你不需要了解這些。但如果你想在攝像頭上進(jìn)行檢測的話,這個命令還是非常有用的。后面我們會講如何在攝像頭上進(jìn)行實時檢測。
多幅圖像除了在命令行提供文件名進(jìn)行一幅圖像檢測以外,你也可以不輸入文件名,這樣就可以進(jìn)行多幅圖像檢測了。配置和權(quán)重文件加載完成后,系統(tǒng)會提示你輸入文件名:
./darknet detect cfg/yolo.cfg yolo.weights layer filters size input output 0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 1 max 2 x 2 / 2 416 x 416 x 32 -> 208 x 208 x 32 ....... 29 conv 425 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 425 30 detection Loading weights from yolo.weights ...Done! Enter Image Path:
在這里輸入圖像文件名如data/horses.jpg就可以對這幅圖像進(jìn)行檢測。
檢測完成后系統(tǒng)會提示你輸入其它圖像的文件名。全部檢測完成后按下Ctrl-C來退出。
修改檢測閾值缺省情況下,YOLO只顯示信心大于.25的對象。你可以通過附加-thresh
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0
結(jié)果如下:
這樣的結(jié)果似乎沒什么用,不過你可以通過修改為不同數(shù)值來控制模型檢測的結(jié)果。
Tiny YOLOTiny YOLO是基于Darknet參考網(wǎng)絡(luò)的非常快速但準(zhǔn)確率不如常規(guī)YOLO的模型。用法如下:
wget https://pjreddie.com/media/files/tiny-yolo-voc.weights ./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights data/dog.jpg
這個,呵呵,不完美(把白馬識別成綿羊了,把黑狗識別成奶牛了),但確實很快。在GPU版本上,它能處理超過200幀每秒的圖像。
攝像頭實時檢測在測試數(shù)據(jù)上運行YOLO沒什么意思,無法直接看到結(jié)果。下面我們讓它來直接處理攝像頭的輸入!
要運行這個示例,你需要把Darknet和CUDA和OpenCV集成編譯,然后運行以下命令:
./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
YOLO顯示當(dāng)前幀率并在它檢測到的對象上加上方框。
你必須在電腦上安裝好攝像頭連接到OpenCV,否則沒法工作。如果你有多個攝像頭,可以通過-c
你也可以讓它對一段視頻進(jìn)行處理:
./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
下面這段Youtube視頻就是這么處理的:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19639.html
摘要:工作原理以前的檢測系統(tǒng)通過重復(fù)利用分類器和定位器來實現(xiàn)目標(biāo)識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。 原標(biāo)題:YOLO: Real-Time Object Detection英文原文:https://pjreddie.com/darknet/... 強烈推薦(TED視頻):https://www....
摘要:等一下,什么樣的神經(jīng)網(wǎng)絡(luò)才算是小型的哈哈這不一定,會隨著時間改變。我們一般是依照神經(jīng)網(wǎng)絡(luò)之間的連接數(shù)劃分。訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的連接數(shù)量一般可以達(dá)到幾百億。許多語言學(xué)家對此表示強烈的不滿,甚至公開地向我表示反對。 在原文作者Caleb Garling對話吳恩達(dá)時,他剛結(jié)束在舊金山的深度學(xué)習(xí)大會,這名斯坦福深度學(xué)習(xí)教授,前Google Brain負(fù)責(zé)人,Coursera的創(chuàng)始人和現(xiàn)任百度首席科學(xué)家在...
摘要:但是如果你和我是一樣的人,你想自己攢一臺奇快無比的深度學(xué)習(xí)的電腦。可能對深度學(xué)習(xí)最重要的指標(biāo)就是顯卡的顯存大小。性能不錯,不過夠貴,都要美元以上,哪怕是舊一點的版本。電源我花了美元買了一個的電源。也可以安裝,這是一個不同的深度學(xué)習(xí)框架。 是的,你可以在一個39美元的樹莓派板子上運行TensorFlow,你也可以在用一個裝配了GPU的亞馬遜EC2的節(jié)點上跑TensorFlow,價格是每小時1美...
摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
閱讀 4167·2022-09-16 13:49
閱讀 1407·2021-11-22 15:12
閱讀 1529·2021-09-09 09:33
閱讀 1047·2019-08-30 13:15
閱讀 1731·2019-08-29 15:30
閱讀 665·2019-08-27 10:52
閱讀 2649·2019-08-26 17:41
閱讀 1904·2019-08-26 12:11