摘要:工作原理以前的檢測系統通過重復利用分類器和定位器來實現目標識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。
原標題:YOLO: Real-Time Object Detection
英文原文:https://pjreddie.com/darknet/...強烈推薦(TED視頻):https://www.ted.com/talks/jos...
You only look once (YOLO)是目前最先進的實時對象檢測系統。在一臺Titan X上它能實時處理40-90幀每秒的圖像,并且準確率高達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工作原理
以前的檢測系統通過重復利用分類器和定位器來實現目標識別。它們把模型套在圖像的不同位置和大小區域,通過圖像各區域的最高分值來判定結果。
我們使用了完全不同的方法。我們通過把一個多帶帶的神經網絡放在整個圖像上來進行識別。這個網絡把圖像分成區域并對邊框和各區域的可能性進行預測。這些邊框通過預測到的可能性進行加權。
我們的模型相比于基于分類器的系統有幾個優勢。它在測試時觀察整個圖像,所以它的預測是基于整個圖像上下文的。并且它通過一個單一網絡進行預測,不像那些R-CNN系統需要對一幅圖像運用上千的網絡。這一特點使我們的系統超級快,速度是R-CNN的上千倍,一百倍快于快速R-CNN。想對全系統有更深入了解,可以閱讀我們的論文。
使用預先訓練好的模型進行預測下面帶你使用預先訓練好的模型通過YOLO系統進行對象檢測。如果你還沒有安裝Darknet的話,你可以通過以下命令安裝:
git clone https://github.com/pjreddie/darknet cd darknet make
就是這么簡單!
cfg/子目錄下已經預置好了YOLO的配置文件。你還需要下載預先訓練好的權重文件(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一起編譯,所以不能直接顯示圖像結果。但是我們把圖像結果保存在了predictions.png文件里。你可以打開這個文件看到檢測之后的結果。因為我們現在是在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
如果你只是想在一幅圖像上進行檢測的話,你不需要了解這些。但如果你想在攝像頭上進行檢測的話,這個命令還是非常有用的。后面我們會講如何在攝像頭上進行實時檢測。
多幅圖像除了在命令行提供文件名進行一幅圖像檢測以外,你也可以不輸入文件名,這樣就可以進行多幅圖像檢測了。配置和權重文件加載完成后,系統會提示你輸入文件名:
./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就可以對這幅圖像進行檢測。
檢測完成后系統會提示你輸入其它圖像的文件名。全部檢測完成后按下Ctrl-C來退出。
修改檢測閾值缺省情況下,YOLO只顯示信心大于.25的對象。你可以通過附加-thresh
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0
結果如下:
這樣的結果似乎沒什么用,不過你可以通過修改為不同數值來控制模型檢測的結果。
Tiny YOLOTiny YOLO是基于Darknet參考網絡的非常快速但準確率不如常規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幀每秒的圖像。
攝像頭實時檢測在測試數據上運行YOLO沒什么意思,無法直接看到結果。下面我們讓它來直接處理攝像頭的輸入!
要運行這個示例,你需要把Darknet和CUDA和OpenCV集成編譯,然后運行以下命令:
./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
YOLO顯示當前幀率并在它檢測到的對象上加上方框。
你必須在電腦上安裝好攝像頭連接到OpenCV,否則沒法工作。如果你有多個攝像頭,可以通過-c
你也可以讓它對一段視頻進行處理:
./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
下面這段Youtube視頻就是這么處理的:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19639.html
摘要:工作原理以前的檢測系統通過重復利用分類器和定位器來實現目標識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。 原標題:YOLO: Real-Time Object Detection英文原文:https://pjreddie.com/darknet/... 強烈推薦(TED視頻):https://www....
摘要:等一下,什么樣的神經網絡才算是小型的哈哈這不一定,會隨著時間改變。我們一般是依照神經網絡之間的連接數劃分。訓練的神經網絡的連接數量一般可以達到幾百億。許多語言學家對此表示強烈的不滿,甚至公開地向我表示反對。 在原文作者Caleb Garling對話吳恩達時,他剛結束在舊金山的深度學習大會,這名斯坦福深度學習教授,前Google Brain負責人,Coursera的創始人和現任百度首席科學家在...
摘要:但是如果你和我是一樣的人,你想自己攢一臺奇快無比的深度學習的電腦。可能對深度學習最重要的指標就是顯卡的顯存大小。性能不錯,不過夠貴,都要美元以上,哪怕是舊一點的版本。電源我花了美元買了一個的電源。也可以安裝,這是一個不同的深度學習框架。 是的,你可以在一個39美元的樹莓派板子上運行TensorFlow,你也可以在用一個裝配了GPU的亞馬遜EC2的節點上跑TensorFlow,價格是每小時1美...
摘要:學習筆記七數學形態學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現代方法基于區域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
閱讀 4122·2022-09-16 13:49
閱讀 1398·2021-11-22 15:12
閱讀 1519·2021-09-09 09:33
閱讀 1039·2019-08-30 13:15
閱讀 1720·2019-08-29 15:30
閱讀 654·2019-08-27 10:52
閱讀 2643·2019-08-26 17:41
閱讀 1896·2019-08-26 12:11