當前位置:
首頁 > 新聞 > 角蜂鳥AI視覺套件:為邊緣設備提供即插即用的卷積網路計算單元

角蜂鳥AI視覺套件:為邊緣設備提供即插即用的卷積網路計算單元

在樹莓派這樣的邊緣設備部署預訓練模型一直很多開發者與愛好者所關心的內容,我們希望藉助這種輕量級計算設備實現模型的本地化推斷,並應用到各種有意思的任務中。但樹莓派這種以CPU為計算核心的設備很難運行深度學習模型,很多實時推斷甚至需要使用雲計算資源。因此,近日觸景無限發布了一款載入了Intel Movidius 卷積神經網路加速晶元的視覺套件,我們可以在樹莓派或筆記本等平台將深度學習模型的計算分配給它。本文介紹了角蜂鳥這一視覺開發套件及其簡要的使用方法,感興趣的讀者也可以嘗試動手構建實時的目標檢測或人臉識別等任務。

角蜂鳥官網:http://www.hornedsungem.org/

角蜂鳥Horned Sungem嵌入式AI視覺套件是觸景無限打造的一款即插即用人工智慧視覺套件,致力於為大眾提供學習、使用及創造AI應用的機會。角蜂鳥Horned Sungem集成了Intel Movidius MA245X卷積神經網路(CNN)加速晶元,體積小、功耗低、算力高。它還支持多系統如Windows(開發中)、macOS、Linux(Ubuntu,Raspbian)、Android等,對Host系統要求極低。

角蜂鳥AI視覺套件:為邊緣設備提供即插即用的卷積網路計算單元

目前,角蜂鳥 Horned Sungem 內嵌了7種基礎的神經網路模型,可以完成人臉檢測、人臉識別、物體識別等功能。角蜂鳥 Horned Sungem 還可以簡單地更換內嵌模型,如果用戶手中已擁有訓練完成的 TensorFlow、Caffe、Darknet 等神經網路模型,可直接通過角蜂鳥 Horned Sungem 的線上模型轉換工具,轉換為角蜂鳥 Horned Sungem 專用的神經網路模型。

角蜂鳥的安裝和使用都非常簡單,基本來說只需要從GitHub下載對應的SDK包,並使用命令行安裝就行了。例如在Mac上運行以下命令就能安裝SungemSDK:

git clone https://github.com/HornedSungem/SungemSDK.git
cd SungemSDK/installer/OSX
bash ./install.sh tuna

目前角蜂鳥有7個內置的預訓練模型,我們可以藉助這些模型快速玩轉邊緣設備上的計算機視覺任務。這些針對不同任務的預訓練模型包括MNIST 手寫數字識別模型、Mobilenet-SSD 人臉檢測模型、Mobilenet-SSD VOC 物體檢測模型、SqueezeNet 圖像分類模型、GoogleNet 圖像識別模型、FaceNet 人臉識別模型和 SketchGraph 手繪識別模型等。它們的使用都非常簡單快捷,以下我們將介紹MNIST手寫數字識別與 Mobilenet-SSD 人臉識別兩個模型。

對於手寫數字識別來說,在 /SungemSDK/examples/python 目錄下執行以下命令行就能得到已有手寫數字的識別:

python3 Hello2018.py

如果一切正常,將會得到以下結果:

| ======= Horned Sungem ======== |
| Device found [0] |
| Model loaded to Python |
| Model allocated to device |
| ============================== |
Hello
[2]
[0]
[1]
[8]

在上面運行的 Hello2018.py 文件中,首先需要載入 OpenCV、NumPy 以及角蜂鳥 HSAPI,然後再將 CNN 載入到設備並設置圖像的根目錄:

# Import libs
import cv2, sys, numpy as np
sys.path.append("../../api/")
import hsapi as hs

# Load CNN to device and set scale / mean
net = hs.HS("mnist")
imgRoot = "../misc/2018_mnist/%d.jpg"

後面就只需要從 imgRoot 中讀取圖像,並饋送到模型 hs.HS("mnist") 就能完成預測:

print("Hello")
for n in [1,2,3,4]:
imgname = imgRoot % n
img = cv2.imread(imgname)
result = net.run(img)
print(result[1])

如同手寫數字識別一般,人臉識別的用法基本相同,只不過在運行文件中會用一些參數控制識別的行為。如上同樣在/SungemSDK/examples/python目錄下運行命令行python3 FaceDetector.py就能實現實時人臉識別,如果圖像中包含人臉,則可得到輸出:

* *****SSD [1]: Box values****** *
* Box Name: Face *
* 360 106 591 361 - w:231 h:255 *

其中SSD [N]中N為檢測人臉個數,下一行為人臉檢測框Bounding Box的左上角和右下角坐標以及窗的寬高。

FaceDetector.py 文件中的代碼如下所示:

import numpy as np, cv2, sys
sys.path.append("../../api/")
import hsapi as hs

WEBCAM = False # Set to True if use Webcam
net = hs.HS("FaceDetector", zoom = True, verbose = 2, threshSSD=0.55)
if WEBCAM: video_capture = cv2.VideoCapture(0)

while True:
if WEBCAM: _, img = video_capture.read()
else: img = None
result = net.run(img)
img = net.plotSSD(result)
cv2.imshow("Face Detector", img)
cv2.waitKey(1)

其中變數WEBCAM表示是否使用外接USB攝像頭,使用的話則需要調用OpenCV。載入預訓練模型FaceDetector時,參數zoom如果配置為True,則表示輸出圖像縮放為640*360,否則為1920*1080。verbose為2表示輸出所有信息,而threshSSD則控制了人臉檢測的閾值,提高閾值會減少錯檢但增加漏檢。之後就是利用已訓練模型做推斷,其中result包含檢測置信度和邊界框位置等信息。如下是人臉檢測的輸出實例:

角蜂鳥AI視覺套件:為邊緣設備提供即插即用的卷積網路計算單元

* *****SSD [9]: Box values****** *
* Box Name: Face *
* 167 103 307 262 - w:140 h:159 *
* Box Name: Face *
* 29 114 140 272 - w:111 h:158 *
* Box Name: Face *
* 344 101 446 239 - w:102 h:138 *
* Box Name: Face *
* 349 255 474 365 - w:125 h:110 *
* Box Name: Face *
* 507 93 611 225 - w:104 h:132 *
* Box Name: Face *
* 205 280 313 362 - w:108 h:82 *
* Box Name: Face *
* 19 2 119 109 - w:100 h:107 *
* Box Name: Face *
* 189 4 290 99 - w:101 h:95 *
* Box Name: Face *
* 334 0 425 92 - w:91 h:92 *

重要的是,角蜂鳥可以插入安卓設備中,並作為視覺系統的擴展。此外,在角蜂鳥的現場Demo展示中,它已經嵌入到了很多很有意思的實現里。包括能檢測並追蹤目標的樹莓派小車、能識別人臉並打招呼的改裝奧松機器人、智能檯燈及情景記錄儀等。這些應用都非常有意思,且角蜂鳥也提供了官方教程。

角蜂鳥AI視覺套件:為邊緣設備提供即插即用的卷積網路計算單元

未來,角蜂鳥Horned Sungem將上線模型市場,會發布一些高質量模型供給用戶兌換使用,而用戶本身也可以上傳自己訓練的模型售賣。除此之外,角蜂鳥Horned Sungem在未來還將提供完善的應用/套件商店、交流互動社區、模型變現渠道等。

最後,角蜂鳥Horned Sungem嵌入式AI視覺套件於5月25日正式發布,官方購買渠道為「角蜂鳥HornedSungem」公眾號/角蜂鳥小程序,微信搜索角蜂鳥即可。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

NYU聯合Google Brain提出結合工作記憶的視覺推理架構和數據集
資源|DLL:一個炙手可熱的快速深度神經網路庫

TAG:機器之心 |