怎樣在樹莓派上輕鬆實現深度學習目標檢測?
雷鋒網按:本文為 AI 研習社編譯的技術博客,原標題 How to easily Detect Objects with Deep Learning on Raspberry Pi,作者為 Sarthak Jain。
翻譯 | 小哥哥 狒狒 校對 | 老趙 整理 | 凡江
這個現實世界造成了很多挑戰,比如數據有限、只有微型的計算機硬體(像手機、樹莓派)所造成的無法運行複雜深度學習模型等。這篇文章演示了如何使用樹莓派來進行目標檢測。就像路上行駛的汽車,冰箱里的橘子,文件上的簽名和太空中的特斯拉。
免責聲明:我正在建設nanonets.com來幫助使用很少的數據和沒有計算機硬體的情況下構建機器學習模型。
如果你很迫切,請直接下拉到這篇文章的底部進入Github的倉庫。
在孟買的公路上檢測車輛
為什麼是目標檢測?為什麼是樹莓派?
樹莓派是一款靈活的計算機硬體,它以1500萬台的銷量已經吸引了一代消費者的心,並且黑客們也在樹莓派上構建了很多很酷的項目。考慮到深度學習和樹莓派相機的的流行,我們認為如果能在樹莓派上使用深度學習來檢測任意的物體那就非常棒了。
現在你可以檢測到你的自拍照里的照片炸彈,有人進入到Harambe的籠子里,哪裡有辣椒醬或者亞馬遜的快遞員進入到你的房子里。
什麼是目標檢測?
2000萬年的進化使得人類的視覺系統有了相當高的進化。人腦有30%的神經元負責處理視覺信息(相對比只有8%處理觸覺和3%處理聽覺)。與機器相比,人類有兩個主要的優勢。一是立體視覺,二是訓練數據集的供應幾乎是無限的(一個五歲的嬰兒可以大約在30fps的採樣間隔獲得2.7B的圖像數據)。
為了模仿人類水平的表現,科學家將視覺感知任務分解為四個不同的類別。
1.分類,為圖像指定一個標籤。
2.定位,對特定的標籤指定一個邊框。
3.物體檢測,在圖像中繪製多個邊框。
4.圖像分割,得到物體在圖像中的精確位置區域。
物體檢測對於很多應用已經足夠好(圖像分割是更精確的結果,它受到了創建訓練數據複雜性的影響。相比於畫邊框它通常花費人類標註者12倍的時間去分割圖像。)此外,在檢測物體之後,可以將物體在邊框中單獨分割出來。
使用物體檢測:
目標檢測具有重要的現實意義,已經在各行各業得到了廣泛應用。下面列舉了一些例子:
我怎樣使用物體檢測解決自己的問題?
物體檢測可以用於解決各種各樣的問題。這些是一個概括的分類:
1.物體是不是出現在我的圖像中?比如在我的房子有一個入侵者。
2.在圖像中的一個物體在哪個位置?比如一個汽車試圖在世界各地導航時,知道物體的位置就很重要。
3.圖像中有多少個物體?物體檢測是計算物體數目最有效的方法之一。比如倉庫的貨架上有多少個盒子。
4.圖像中有哪些不同類型的物體?比如動物園的哪些區域有哪些動物?
5.物體的尺寸有多大?特別是使用靜態的相機,很容易計算出物體的大小。比如芒果的大小是多少。
6.物體之間是如何相互作用的?比如在足球場上的隊形是如何影響比賽結果的?
7.物體在不同時間的位置(跟蹤一個物體)?比如跟蹤一個像火車一樣的物體並且計算它的速度。
在 20 行代碼內完成物體檢測
YOLO演算法的可視化
有多種用於物體檢測的模型或結構。每一個都在速度、尺寸和精確度之間權衡。我們選擇了最流行的一個:YOLO(You only look once),並且展示它如何以20行代碼(忽略注釋)進行工作。
注意:這是偽代碼,不是一個可直接工作的實例。它有一個非常標準的CNN構成的黑箱,如下圖所示:
YOLO中使用卷積神經網路的體系結構代碼小於20行,如下:
如何建立目標檢測的深度學習模型?
深度學習的工作流程有6個基本步驟,分為了三個部分:
1. 收集訓練集
2. 訓練模型
3. 預測新圖像
第1階段 — 收集訓練數據
步驟1. 收集圖像(每個對象至少100張)
......
※零跑 S01 自動泊車功能首次對外演示,車輛補貼前售價 20 萬以內|CES Asia 2018
※華為雲宋哲炫:開源不適合做公有雲是偽命題,世界上只有一種基於開源技術的雲
TAG:雷鋒網 |