那今天再來記錄一下一些 yolo 的摘要知識。這裡提到的 yolo 都是指第三版。先簡單複習一下 yolo,我們先看看他可以辨識出什麼物品,這樣你才能知道要丟什麼照片給他看阿。他預處理的權重,是用 COCO 資料集,COCO數據集網站有列出蠻多特色,不過我們只要先知道他有80種類別就行了,那80種呢? 有興趣可以先看這個檔 coco.names,下面就簡單的把80個種類再分類一下,比較好記。
交通方面
人 / 自行車 / 汽車 / 摩托車 / 飛機 / 巴士 / 火車 / 卡車 / 船
紅綠燈 / 消防栓 / 停止標誌 / 停車收費表 / 板凳
動物方面
鳥 / 貓 / 狗 / 馬 / 羊 / 牛 / 象 / 熊 / 斑馬 / 長頸鹿
配件方面
背包 / 雨傘 / 手提包 / 領帶 / 手提箱
運動用具
飛盤 / 滑雪板 / 單板滑雪 / 運動用球 / 風箏 / 棒球棒 / 棒球手套 / 滑板 / 衝浪板 / 網球拍
廚房方面
瓶子 / 紅酒杯 / 杯子 / 叉子 / 刀 / 勺 / 碗
食物方面
香蕉 / 蘋果 / 三明治 / 橙子 / 西蘭花 / 胡蘿蔔 / 熱狗 / 比薩 / 甜甜圈 / 蛋糕
家具方面
椅子 / 沙發 / 盆栽植物 / 床 / 餐桌 / 馬桶
電視監視器 / 筆記本電腦 / 滑鼠 / 搖控器 / 鍵盤 / 手機
微波 / 烤箱 / 烤麵包機 / 水槽 / 冰箱
書 / 時鐘 / 花瓶 / 剪刀 / 泰迪熊 / 吹風機 / 牙刷
yolo 會成為熱門的演算法是因為他偵測速度很快,為什麼很快,網站有稍微說明一下。
先前的檢測系統重新利用分類器或定位器來執行檢測。將模型應用於多個位置和比例的圖像。圖像的高分的區域被認是檢測的區塊。YOLO使用完全不同的方法。我們將單個神經網絡應用於完整圖像。該網絡將圖像劃分為多個區域,並預測每個區域的邊界框和概率。邊界框會由預測的概率進行加權。
與基於分類器的系統相比,我們的模型具有多個優勢。它在測試時查看整個圖像,因此其預測由圖像中的全局上下文提供。它還像R-CNN這樣的系統需要單個網絡評估來進行預測,而R-CNN單個圖像需要數千個。這使其變得非常快,比R-CNN快1000倍以上,比Fast R-CNN快100倍。
他們的差別可以參考一下這位邦友的文章,Day 12:物體偵測(Object Detection) + 影像標題(Image Captioning)的這幾個部份。整理的好好,我又增廣見聞了。
滑動視窗(Sliding Window)
候選區域(Region Proposals)
迴歸方法
所以到這裡,我們會知道2件事,第一是 yolo 為什麼很快的原因。第二是使用 yolo 的預處理權重可以辨識80種類的物品。當然你可以再加上資料訓練去擴充他的種類,或是完全改用自己的分類。不過 yolo 也有缺點,因為他是把整張圖去切格子,所以你東西太小的話,他辨識率不高。
如前篇聊到的,他跑起來蠻簡單的,只要照著他的官網(YOLO: Real-Time Object Detection)下方的How It Works
實作步驟,環境建好後,你就可以丟你要辨識的照片去給 yolo 辨識了。不過如果你要丟影片給他辨識,你可能還是要有張顯卡才行。
明天再分享一下實作的過程。
好,第20天,結束。
參考
YOLO: Real-Time Object Detection
COCO - Common Objects in Context
目標檢測(Object Detection)的整理
Day 12:物體偵測(Object Detection) + 影像標題(Image Captioning)
YOLO——基於迴歸的目標檢測演算法