1
本文作者: AI研習社-譯站 | 2018-09-11 11:29 |
雷鋒網(wǎng)按:本文為 AI 研習社編譯的技術博客,原標題 How to easily Detect Objects with Deep Learning on Raspberry Pi,作者為 Sarthak Jain。
翻譯 | 小哥哥 狒狒 校對 | 老趙 整理 | 凡江
這個現(xiàn)實世界造成了很多挑戰(zhàn),比如數(shù)據(jù)有限、只有微型的計算機硬件(像手機、樹莓派)所造成的無法運行復雜深度學習模型等。這篇文章演示了如何使用樹莓派來進行目標檢測。就像路上行駛的汽車,冰箱里的橘子,文件上的簽名和太空中的特斯拉。
免責聲明:我正在建設 nanonets.com 來幫助使用很少的數(shù)據(jù)和沒有計算機硬件的情況下構建機器學習模型。
如果你很迫切,請直接下拉到這篇文章的底部進入Github的倉庫。
在孟買的公路上檢測車輛
為什么是目標檢測?為什么是樹莓派?
樹莓派是一款靈活的計算機硬件,它以1500萬臺的銷量已經(jīng)吸引了一代消費者的心,并且黑客們也在樹莓派上構建了很多很酷的項目??紤]到深度學習和樹莓派相機的的流行,我們認為如果能在樹莓派上使用深度學習來檢測任意的物體那就非常棒了。
現(xiàn)在你可以檢測到你的自拍照里的照片炸彈,有人進入到Harambe的籠子里,哪里有辣椒醬或者亞馬遜的快遞員進入到你的房子里。
什么是目標檢測?
2000萬年的進化使得人類的視覺系統(tǒng)有了相當高的進化。人腦有30%的神經(jīng)元負責處理視覺信息(相對比只有8%處理觸覺和3%處理聽覺)。與機器相比,人類有兩個主要的優(yōu)勢。一是立體視覺,二是訓練數(shù)據(jù)集的供應幾乎是無限的(一個五歲的嬰兒可以大約在30fps的采樣間隔獲得2.7B的圖像數(shù)據(jù))。
為了模仿人類水平的表現(xiàn),科學家將視覺感知任務分解為四個不同的類別。
1. 分類,為圖像指定一個標簽。
2. 定位,對特定的標簽指定一個邊框。
3. 物體檢測,在圖像中繪制多個邊框。
4. 圖像分割,得到物體在圖像中的精確位置區(qū)域。
物體檢測對于很多應用已經(jīng)足夠好(圖像分割是更精確的結果,它受到了創(chuàng)建訓練數(shù)據(jù)復雜性的影響。相比于畫邊框它通?;ㄙM人類標注者12倍的時間去分割圖像。)此外,在檢測物體之后,可以將物體在邊框中單獨分割出來。
使用物體檢測:
目標檢測具有重要的現(xiàn)實意義,已經(jīng)在各行各業(yè)得到了廣泛應用。下面列舉了一些例子:
我怎樣使用物體檢測解決自己的問題?
物體檢測可以用于解決各種各樣的問題。這些是一個概括的分類:
1. 物體是不是出現(xiàn)在我的圖像中?比如在我的房子有一個入侵者。
2. 在圖像中的一個物體在哪個位置?比如一個汽車試圖在世界各地導航時,知道物體的位置就很重要。
3. 圖像中有多少個物體?物體檢測是計算物體數(shù)目最有效的方法之一。比如倉庫的貨架上有多少個盒子。
4. 圖像中有哪些不同類型的物體?比如動物園的哪些區(qū)域有哪些動物?
5. 物體的尺寸有多大?特別是使用靜態(tài)的相機,很容易計算出物體的大小。比如芒果的大小是多少。
6. 物體之間是如何相互作用的?比如在足球場上的隊形是如何影響比賽結果的?
7. 物體在不同時間的位置(跟蹤一個物體)?比如跟蹤一個像火車一樣的物體并且計算它的速度。
在 20 行代碼內完成物體檢測
YOLO算法的可視化
有多種用于物體檢測的模型或結構。每一個都在速度、尺寸和精確度之間權衡。我們選擇了最流行的一個:YOLO(You only look once),并且展示它如何以20行代碼(忽略注釋)進行工作。
注意:這是偽代碼,不是一個可直接工作的實例。它有一個非常標準的CNN構成的黑箱,如下圖所示:
你可以閱讀(YOLO)全文:https://pjreddie.com/media/files/papers/yolo_1.pdf
YOLO中使用卷積神經(jīng)網(wǎng)絡的體系結構代碼小于20行,如下:
如何建立目標檢測的深度學習模型?
深度學習的工作流程有6個基本步驟,分為了三個部分:
1. 收集訓練集
2. 訓練模型
3. 預測新圖像
第1階段 — 收集訓練數(shù)據(jù)
步驟1. 收集圖像(每個對象至少100張)
......
想要繼續(xù)閱讀,請移步至我們的AI研習社社區(qū):http://www.gair.link/page/TextTranslation/904
更多精彩內容盡在 AI 研習社。
不同領域包括計算機視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。
雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))
點擊文末【閱讀原文】即可觀看更多精彩內容:
基于 OpenCV(C++/Python) 使用深度學習 進行人類姿態(tài)檢測
如何在 Azure 上使用 Horovod 框架進行物體檢測的分布式深度學習
基于 OpenCV 使用 YOLOv3 進行深度學習中的物體檢測
亞馬遜、谷歌、微軟等各家公司人臉識別對比
斯坦福CS231n李飛飛計算機視覺經(jīng)典課程(中英雙語字幕+作業(yè)講解+實戰(zhàn)分享)
等你來譯:
你能在 10 分鐘之內解決人物檢測的問題嗎?
如何使用 OpenCV 編寫基于 Node.js 命令行界面 和 神經(jīng)網(wǎng)絡模型的圖像分類
深度學習來自監(jiān)督的方法
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。