丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

0

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

本文作者: 汪思穎 2018-03-28 09:37
導(dǎo)語:進(jìn)一步提升檢測精度與速度

雷鋒網(wǎng) AI 研習(xí)社按,YOLO 是一種非常流行的目標(biāo)檢測算法,速度快且結(jié)構(gòu)簡單。日前,YOLO 作者推出 YOLOv3 版,在 Titan X 上訓(xùn)練時(shí),在 mAP 相當(dāng)?shù)那闆r下,v3 的速度比 RetinaNet 快 3.8 倍。在 YOLOv3 官網(wǎng)上,作者展示了一些對比和案例。在論文中,他們對 v3 的技術(shù)細(xì)節(jié)進(jìn)行了詳細(xì)說明。雷鋒網(wǎng) AI 研習(xí)社將內(nèi)容編譯整理如下。

我們針對 YOLO 做了一些更新,在設(shè)計(jì)上進(jìn)行了一些小改動(dòng),讓它變得更好。當(dāng)然,我們也訓(xùn)練了這個(gè)新網(wǎng)絡(luò),它的性能非常優(yōu)秀。它比前一版本要大一點(diǎn),但更準(zhǔn)確。當(dāng)然了,不必?fù)?dān)心會犧牲速度,它仍然很快。YOLOv3 可以在 22ms 之內(nèi)執(zhí)行完一張 320 × 320 的圖片,mAP 得分是 28.2,和 SSD 的準(zhǔn)確率相當(dāng),但是比它快三倍。

此外,它在 Titan X 上經(jīng)過 51 ms 訓(xùn)練,mAP50 為 57.9,相比之下,RetinaNet 經(jīng)過 198ms 的訓(xùn)練之后 mAP50 為 57.5。對比起來,兩者的性能差異不大,但是 YOLOv3 比 RetinaNet 快 3.8 倍。

所有的代碼都在 https://pjreddie.com/yolo/上。

與其他檢測器相對比

YOLOv3 非??焖俸蜏?zhǔn)確,在 IoU=0.5 的情況下,與 Focal Loss 的 mAP 值相當(dāng),但快了 4 倍。此外,大家可以輕松在速度和準(zhǔn)確度之間進(jìn)行權(quán)衡,只需改變模型的大小,而不需要重新訓(xùn)練。

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

在 COCO 數(shù)據(jù)集上的表現(xiàn)

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

工作原理

先前的檢測系統(tǒng)是讓分類器或定位器來執(zhí)行檢測任務(wù)。他們將模型應(yīng)用于圖片中,圖片里物體的位置和尺寸各異,圖像的高得分區(qū)域被認(rèn)為是檢測區(qū)域。

我們采用了完全不同的方法——將一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)應(yīng)用于整張圖像。該網(wǎng)絡(luò)將圖像分割成一塊塊區(qū)域,并預(yù)測每個(gè)區(qū)域的 bounding box 和概率,此外,預(yù)測概率還對這些 bounding box 進(jìn)行加權(quán)。

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

我們的模型相較基于分類的檢測系統(tǒng)有如下優(yōu)勢:它在測試時(shí)觀察整張圖像,預(yù)測會由圖像中的全局上下文(global context)引導(dǎo)。它還通過單一網(wǎng)絡(luò)評估做出預(yù)測,而不像 R-CNN 這種系統(tǒng),一張圖就需要成千上萬次預(yù)測。對比起來,YOLO 的速度非??欤?R-CNN 快 1000 倍,比 Fast R-CNN 快 100 倍。

可以參閱我們的論文,了解關(guān)于完整系統(tǒng)的更多細(xì)節(jié)。

在 v3 中,有哪些全新的方法呢?

YOLOv3 用了一些小技巧來改進(jìn)訓(xùn)練、提高性能,包括多尺度預(yù)測,更好的主干分類器等等。

同樣,詳細(xì)信息我們也全寫在論文上了。

用預(yù)訓(xùn)練模型進(jìn)行檢測

接下來是利用 YOLO 使用預(yù)訓(xùn)練模型來檢測物體。請先確認(rèn)已經(jīng)安裝 Darknet。接下來運(yùn)行如下語句:

git clone https://github.com/pjreddie/darknet
cd darknet
make

這樣一來 cfg/子目錄中就有了 YOLO 配置文件,接下來下載預(yù)訓(xùn)練的 weight 文件(237 MB)(https://pjreddie.com/media/files/yolov3.weights),或者運(yùn)行如下語句:

wget https://pjreddie.com/media/files/yolov3.weights

然后執(zhí)行檢測器:

./darknet detect cfg/yolov3.cfg yolov3.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  0.299 BFLOPs
   1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs
   .......
 105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
 106 detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: 99%
truck: 93%
bicycle: 99%

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

Darknet 會輸出檢測到的物體、confidence 以及檢測時(shí)間。我們沒有用 OpenCV 編譯 Darknet,所以它不能直接顯示檢測情況。檢測情況保存在 predictions.png 中。大家可以打開這個(gè)圖片來查看檢測到的對象。我們是在 CPU 上使用 Darknet,檢測每張圖片大約需要 6-12 秒,如果使用 GPU 將快得多。

我還附上了一些例子給大家提供靈感,你們可以試試 data/eagle.jpg,data/dog.jpg,data/person.jpg 或 data/horses.jpg。

detect 指令是對 command 的常規(guī)版本的簡寫:

./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

如果你只是想檢測圖像,并不需要了解這個(gè),但如果你想做其他的事情,比如在網(wǎng)絡(luò)攝像頭上運(yùn)行 YOLO,這將非常有用(稍后詳細(xì)描述)。

多個(gè)圖像

在 command 行不寫圖像信息的話就可以連續(xù)運(yùn)行多個(gè)圖片。當(dāng)加載完配置和權(quán)重,你將看到如下提示:

./darknet detect cfg/yolov3.cfg yolov3.weights
layer     filters    size              input                output
   0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs
   1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs
   .......
 104 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
 105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
 106 detection
Loading weights from yolov3.weights...Done!
Enter Image Path:

輸入類似 data/horses.jpg 的圖像路徑來進(jìn)行邊框預(yù)測。

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

一旦完成,它將提示你輸入更多路徑來檢測不同的圖像。使用 Ctrl-C 退出程序。

改變檢測門限

默認(rèn)情況下,YOLO 只顯示檢測到的 confidence 不小于 0.25 的物體??梢栽?YOLO 命令中加入-thresh <val>來更改檢測門限。例如,將門限設(shè)置為 0 可以顯示所有的檢測結(jié)果:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0

網(wǎng)絡(luò)攝像頭實(shí)時(shí)檢測

如果在測試數(shù)據(jù)上運(yùn)行 YOLO 卻看不到結(jié)果,那將很無聊。與其在一堆圖片上運(yùn)行 YOLO,不如選擇攝像頭輸入。

要運(yùn)行如下 demo,需要用 CUDA 和 OpenCV 來編譯 Darknet。接下來運(yùn)行如下指令:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

YOLO 將會顯示當(dāng)前的 FPS 和預(yù)測的分類,以及伴有邊框的圖像。

你需要一個(gè)連接到電腦的攝像頭并可以讓 OpenCV 連接,否則就無法工作。如果有連接多個(gè)攝像頭并想選擇其中某一個(gè),可以使用 -c <num>(OpenCV 在默認(rèn)情況下使用攝像頭 0)語句。如果 OpenCV 可以讀取視頻,也可以在視頻文件中運(yùn)行:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>

在 VOC 數(shù)據(jù)集上訓(xùn)練 YOLO

首先需要 2007-2012 年的所有 VOC 數(shù)據(jù),這是下載地址:https://pjreddie.com/projects/pascal-voc-dataset-mirror/,為了存儲數(shù)據(jù),執(zhí)行如下語句:

wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-2012.tar
tar xf VOCtrainval_06-Nov-2007.tar
tar xf VOCtest_06-Nov-2007.tar

接下來所有 VOC 訓(xùn)練數(shù)據(jù)都在 VOCdevkit/ 子目錄下。

生成標(biāo)簽

接下來需要生成 Darknet 使用的標(biāo)簽文件。Darknet 需要的.txt 文件格式如下:

<object-class> <x> <y> <width> <height>

x, y, width 和 height 對應(yīng)圖像的寬和高。需要在 Darknet scripts/子目錄下運(yùn)行 voc_label.py 腳本來生成這些文件。

wget https://pjreddie.com/media/files/voc_label.py
python voc_label.py

幾分鐘后,這個(gè)腳本將生成所有必需文件。大部分標(biāo)簽文件是在 VOCdevkit/VOC2007/labels/ 和 VOCdevkit/VOC2012/labels/ 下,大家可以在目錄下看到如下信息:

ls
2007_test.txt   VOCdevkit
2007_train.txt  voc_label.py
2007_val.txt    VOCtest_06-Nov-2007.tar
2012_train.txt  VOCtrainval_06-Nov-2007.tar
2012_val.txt    VOCtrainval_11-May-2012.tar

類似 2007_train.txt 的語句列出了圖像文件的年份和圖像集。Darknet 需要一個(gè)包含所有你想要訓(xùn)練的圖片的文本文件。在這個(gè)例子中,我們訓(xùn)練除了 2007 測試集的所有數(shù)據(jù)。運(yùn)行如下語句:

cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

修正

現(xiàn)在去 Darknet 目錄,需要改變 cfg/voc.data 配置文件以指向數(shù)據(jù):

 1 classes= 20
 2 train  = <path-to-voc>/train.txt
 3 valid  = <path-to-voc>2007_test.txt
 4 names = data/voc.names
 5 backup = backup

將<path-to-voc>替換為你存放 VOC 數(shù)據(jù)的目錄。

下載預(yù)訓(xùn)練卷積權(quán)重

在訓(xùn)練中使用在 Imagenet 上預(yù)訓(xùn)練的卷積權(quán)重。我們這里使用 darknet53 模型的權(quán)重,可以點(diǎn)擊這里https://pjreddie.com/media/files/darknet53.conv.74下載卷積層權(quán)重:

wget https://pjreddie.com/media/files/darknet53.conv.74

訓(xùn)練模型

接下來執(zhí)行如下語句進(jìn)行訓(xùn)練:

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

在 COCO 上的訓(xùn)練與 VOC 上類似,大家可以在這里查看詳情。

YOLOv3 論文地址如下:

https://pjreddie.com/media/files/papers/YOLOv3.pdf

雷鋒網(wǎng) AI 研習(xí)社編譯整理。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

YOLO 升級到 v3 版,速度相比 RetinaNet 快 3.8 倍

分享:
相關(guān)文章

編輯

關(guān)注AI學(xué)術(shù),例如論文
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說