你的位置:首頁 > 傳感技術 > 正文

讓現(xiàn)實世界的情感為人工智能所用(一)

發(fā)布時間:2019-12-11 來源:Michael Parks 責任編輯:wenwei

【導讀】過去數(shù)十萬年來,人腦一直堪稱地球上最強大的計算機。我們的大腦是無與倫比的進化杰作,它不僅具有邏輯和推理能力,更具有創(chuàng)造力和情感。時至如今,科學家依然熱衷于人腦的生物學研究,而工程師則始終致力于采用硅電子和軟件技術來復刻人腦的功能。
 
深度學習(DL)是一種機器學習(ML)技術。作為一項新興的人工智能(AI)技術,深度學習在第二代英特爾NCS(NCS2)中居于核心地位。深度神經(jīng)網(wǎng)絡依靠ML算法和樣本訓練數(shù)據(jù)來生成數(shù)學模型。要生成經(jīng)過訓練的模型,需要非常大量的計算工作,只有專用于重度計算的硬件才能勝任,但訓練完成后的模型卻可以運行在樹莓派(Raspberry Pi)、NCS2等相對低成本的硬件上。通過推測技術,這些模型在遇到新的現(xiàn)實世界輸入時便可以迅速作出預測。
 
例如,如果讓一個視覺模型處理成千上萬的紅色和綠色蘋果圖片,就可以訓練這個模型識別這兩種顏色的蘋果。然后,在NCS2上運行訓練過的模型,并將通過網(wǎng)絡攝像頭獲取的新圖像輸入到模型中,此時神經(jīng)網(wǎng)絡便可以對攝像頭視野中的蘋果進行識別和分類。
 
物理計算:讓技術與現(xiàn)實更息息相關
 
就在不久前,創(chuàng)建人工大腦的想法還純粹是科幻小說中的腦洞。如今,雖然我們距離真正的通用AI還有很長的路要走,但技術正持續(xù)以疾速發(fā)展,這是不可否認的。不過,雖然追求技術成就本質上就值得我們?yōu)橹冻?,但我們不能忘了生活中不可或缺的藝術和創(chuàng)造。物理計算可以在無形的數(shù)字技術與有形事物的更直觀本質之間建立起一座橋梁,并且項目中的「黑科技」本身就有助于化解公眾接受新技術的障礙,而人工智能顯然就是一項可以從這種相關性中受益的創(chuàng)新。
 
在本文所述的項目中,我們將采用尖端的AI驅動機器視覺新技術,并將物理計算為人與技術間交互帶來的樂趣和新奇之處融會于其中。我們將使用兩個NCS2、一臺樹莓派、一臺攝像頭和數(shù)個伺服電機來構建一臺面部表情識別設備,它可以觀察一個人的面部并確定其表情,然后根據(jù)特定種類的表情在現(xiàn)實世界中執(zhí)行某些動作。
 
背景
 
如果您從沒有接觸過神經(jīng)網(wǎng)絡或從未使用Python編寫過程序,那么這個項目就非常適合用來了解這兩項技能,而且嘗試在一個項目中集成英特爾第二代神經(jīng)計算棒(NCS2),這本身也是一種不錯的學習體驗。在此過程中,當您看到機器學習、深度學習、神經(jīng)網(wǎng)絡等術語時,與其說它們寫在數(shù)據(jù)表或應用筆記里面,更不如說它們就好像從科幻小說的書頁里飛出來一般。
 
讓現(xiàn)實世界的情感為人工智能所用(一)
圖1:人工智能是一個廣泛而深入的研究領域,本項目實現(xiàn)的是卷積神經(jīng)網(wǎng)絡(CNN)
 
本項目的核心是NCS2。這是一款USB 3.0設備,嵌入式系統(tǒng)開發(fā)人員若要在自己的產品中實現(xiàn)基于視覺的智能,便可以通過這款設備獲得近乎即插即用的AI推理功能。NCS2基于Movidius Myriad X視覺處理單元(VPU)構建,這是一款針對AI優(yōu)化的芯片,對基于卷積神經(jīng)網(wǎng)絡(CNN)的視覺計算可以起到加速作用。使用此技術可以進行對象識別和分類(即識別攝像頭視野中是否存在人臉以及這張臉是否在微笑)。
 
如果您對這一切都感到陌生,無法理解一個想法如何最終變成一套使用NCS2并借助攝像頭來識別和分類物體,并且還真的能夠運行起來的系統(tǒng),那么我們不妨花點時間來厘清其中涉及的工作流程。
 
1、訓練神經(jīng)網(wǎng)絡(NN):神經(jīng)網(wǎng)絡的訓練可以采用多種機器學習框架來進行,包括Caffe、TensorFlow、Kaldi、MXNet和開放神經(jīng)網(wǎng)絡交換(ONNX),其中部分框架可以在臺式計算機上運行,還有一些能夠以容器的形式借助AWS或Google Compute Engine等云服務來運行。對訓練神經(jīng)網(wǎng)絡而言,算力(CPU和GPU)是最重要的因素;投入的算力越多,最終得出的模型就越快、越靠譜,因為要讓神經(jīng)網(wǎng)絡檢測一種物體,就必須要用這種物體的圖片來訓練它,而且至少需要用到數(shù)千張描繪簡單物體的圖片,因而算法需要處理大量數(shù)據(jù),最終導致的結果就是訓練神經(jīng)網(wǎng)絡需要極高的處理能力。如果使用監(jiān)督學習模式進行訓練,那么訓練圖像的數(shù)據(jù)集必須事先進行標注,這也極有可能耗費掉訓練人員的大量時間。
 
2、下載模型:要讓我們的設備檢測出攝像頭拍攝到的物體,模型訓練只是第一步,無論它執(zhí)行起來是多么的費時。在本文所述的項目中,該模型將檢測人臉,并對人臉所表現(xiàn)的情感進行分類。英特爾NCS2可以和多種流行的框架一起使用,這些框架包括.caffemodel(Caffe)、.pb(TensorFlow)、.params(MXNet)、.onnx(ONNX)和.nnet(Kaldi)。
 
不過在這里要告訴大家一個好消息:一些大神已經(jīng)分享了他們以往訓練并生成的模型,并通過網(wǎng)絡提供下載;但就和采用其它預先構建的軟件一樣,由于每個用戶的具體情況各不相同,最終的效果便會因人而異,也許并不一定如預期那樣理想。不過,在許多情況下,直接使用預先訓練好的庫就已經(jīng)足夠。在本文所述的項目中,我們將會用到人臉檢測模型,并對檢測到的人臉所做出的表情進行分類。
 
3、為推測硬件準備模型:獲取到經(jīng)過訓練的模型后,下一步就是通過一定的準備工作讓它運行在選定的終端設備上。英特爾的OpenVINO工具套件正是為此準備的。該套件提供的模型優(yōu)化器(Model Optimizer)可讀取Caffe、TensorFlow等神經(jīng)網(wǎng)絡框架產生的數(shù)據(jù),然后輸出中間表示(Intermediate Representation, IR)數(shù)據(jù),其中包含一個.xml文件和一個.bin文件,前者包含了描述神經(jīng)網(wǎng)絡拓撲結構的代碼,后者包含了二進制的權值和閾值數(shù)據(jù);換言之,.xml文件描述了神經(jīng)網(wǎng)絡內部如何互聯(lián),.bin文件則表明了分配給每條路徑的值(權重)。
 
4、推測:目前為止,我們還沒有用上英特爾NCS2。正如前面說的那樣,訓練模型需要由非?!父叽笊稀沟挠嬎阌布碜觥V劣凇竿茰y」,說白了就是把新的輸入內容交給神經(jīng)網(wǎng)絡來辨識、分類和處理,這就是NCS2發(fā)揮作用的地方了。OpenVINO將會讀取IR內容,對神經(jīng)網(wǎng)絡執(zhí)行準備工作,然后將之加載到選定的終端設備(本例中為NCS2)上,并設置所需的配置參數(shù)。隨后,NCS2上搭載的推理引擎(Inference Engine, IE)將執(zhí)行該深度學習模型,并在提供輸入數(shù)據(jù)時對其進行推測。它還提供了一組便于使用的庫,以便將IE的輸出集成到定制的應用程序中。
 
5、使用API開發(fā)增值功能:數(shù)十年來,嵌入式系統(tǒng)的固件開發(fā)一直由C編程語言主導,但近年來Python在應用程序開發(fā)方面越來越受到關注。隨著MicroPython和CircuitPython分支的創(chuàng)建,Python也開始涉足嵌入式開發(fā)領域。在本文所述的項目中,我們將采用英特爾的Python API與推理引擎進行交互。對于希望繼續(xù)使用C/C++的人士,英特爾還提供了一個C++庫。借助這套Python API,與推理引擎的交互問題便可轉化為簡潔的函數(shù)調用。
 
物料
 
本項目將使用4GB版本的樹莓派4單板機作為系統(tǒng)核心,此外還包括以下關鍵組件:
 
讓現(xiàn)實世界的情感為人工智能所用(一)
圖2:樹莓派4依舊保持了小巧的尺寸,但硬件進行了大幅度升級
 
1、兩個英特爾NCS2
2、一個OV5647攝像頭(也可采用USB攝像頭)
3、三個伺服電機
 
物料清單(BOM)
 
本項目的物料清單如表1所示?;蛘撸梢詥螕舸颂幵L問mouser.com加載預定義的購物車,一次性買齊這些部件。本文撰寫時,以下物料清單不含運費和稅費的總價約為370美元。
 
表1:AI+物理計算項目物料清單
讓現(xiàn)實世界的情感為人工智能所用(一)
 
工具和其他資源
 
以下所列是完成本項目推薦使用的工具:
 
●  基于Windows,運行OpenVINO工具套件的計算機
●  帶有HDMI端口的電腦顯示器或電視機
●  無線或有線Internet連接
●  USB 3.0集線器
●  USB鍵盤
●  USB鼠標
●  USB攝像頭(可選項,不使用OV5647攝像頭時需要使用)
●  剝線鉗
●  數(shù)字萬用表
●  尖嘴鉗
 
系統(tǒng)概覽
 
讓現(xiàn)實世界的情感為人工智能所用(一)
圖3:構思想法時,隨筆畫是一種不錯的做法
 
該系統(tǒng)由五個主要部件構成:
 
1、樹莓派:新款樹莓派可謂單板機(SBC)中的實力派,它搭載了一顆主頻1.5GHz的Broadcom BCM2711四核Cortex-A72 64位SoC,這里我們采用的是帶4GB LPDDR4-2400 SDRAM的型號。該產品采用已成為現(xiàn)行標準的40引腳GPIO接頭與伺服電機進行交互。同時,樹莓派還將用于運行Python腳本、攝像頭和HDMI監(jiān)視器的主機,并與兩個NCS2設備配合工作。
 
2、神經(jīng)計算棒:NCS2設備上將運行兩個神經(jīng)網(wǎng)絡,其中一個神經(jīng)網(wǎng)絡負責對攝像頭獲取的視頻流進行分析,檢測視頻幀中是否出現(xiàn)人臉;另一個神經(jīng)網(wǎng)絡則負責推測這個人的臉上流露出怎樣的表情。
 
3、攝像頭:攝像頭會將圖像流輸入到NCS設備進行分析。本項目中可以使用USB攝像頭,也可以使用Raspberry Pi OV5647攝像頭。運行Python腳本時,可以借助一個命令行標志來設置使用的攝像頭。
 
4、伺服電機:三個伺服器將與機械滑塊一同使用,以便與現(xiàn)實世界互動。具體而言,本項目將根據(jù)用戶對攝像頭呈現(xiàn)的表情向用戶展示不同顏色的花朵:黃色表示快樂,藍色表示悲傷,紅色則表示憤怒。
 
5、HDMI監(jiān)視器:HDMI監(jiān)視器將用于向用戶顯示終端和攝像頭的輸出內容。
 
構建電子元件
 
讓現(xiàn)實世界的情感為人工智能所用(一)
圖4:硬件之間的連接非常簡單明了
 
本項目組裝非常簡單明了,唯一需要提出的建議是等到樹莓派完全啟動后再將NCS2插入USB中;如果在初次啟動前插入NCS2,樹莓派可能會無法啟動,雖然我們并不清楚問題是不是出在這里。后續(xù)的啟動沒有問題,并且也不會再重現(xiàn)該問題。
 
1、將micro-HDMI轉HDMI適配器插入樹莓派。
 
2、將HDMI數(shù)據(jù)線插入電腦顯示器或電視機的HDMI端口。
 
3、將刷入最新版Raspbian的MicroSD存儲卡插入到樹莓派。有關如何將Raspbian操作系統(tǒng)安裝到MicroSD存儲卡上的說明,請單擊此處。
 
4、將USB鍵盤和鼠標插入USB 2.0端口,也就是帶黑色塑料連接器的USB端口,而不是帶藍色塑料連接器的USB 3.0端口。
 
5、安裝攝像頭。
 
(1) 如果使用OV5647攝像機,請輕輕打開連接器,插入排線,然后合上連接器。
 
(2) 如果使用USB攝像頭,請將其插入樹莓派的USB 3.0端口。
 
6、將USB-C電源的一端插入交流電源插座。
 
7、將USB-C電源的另一端插入樹莓派的USB電源插孔。
 
8、啟動樹莓派并完成初始設置,然后關閉樹莓派。初始設置步驟至此完成。
 
讓現(xiàn)實世界的情感為人工智能所用(一)
圖5:樹莓派的PIO接頭引腳分布
 
完成初始設置后,下一步就是安裝伺服電機。我們將在樹莓派上安裝三個伺服電機。
 
9、使用連接線將樹莓派的GND引腳連接到迷你試驗板的GND(藍色)電極。
 
10、使用連接線將樹莓派的5V引腳連接到迷你試驗板的電源(紅色)電極。
 
11、將每個伺服電機的GND電纜連接到試驗板的GND電極。
 
12、將每個伺服電機的Vcc電纜連接到試驗板的電源電極。
 
13、將第一個伺服電機的控制信號連接到樹莓派的GPIO12引腳。此為「快樂」伺服電機。
 
14、將第一個伺服電機的控制信號連接到樹莓派的GPIO13引腳。此為「悲傷」伺服電機。
 
15、將第一個伺服電機的控制信號連接到樹莓派的GPIO18引腳。此為「憤怒」伺服電機。
 
現(xiàn)在,伺服電機接線完成,接下來要進行最后的組裝步驟,就是實現(xiàn)與兩個NCS設備共同工作。
 
1、將兩個英特爾神經(jīng)計算棒插入USB 3.0集線器。暫時先不要把集線器插入到樹莓派。
 
2、再次啟動樹莓派并登錄。
 
3、安裝運行NCS設備所需的軟件(參見本文的“軟件”一節(jié)),然后再次重新啟動樹莓派??吹街甘竞?,將USB 3.0集線器插入樹莓派的USB 3.0端口。
 
出處:貿澤電子公眾號
微信號:mouserelectronics
要采購工具么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉