讓現(xiàn)實(shí)世界的情感為人工智能所用(一)
發(fā)布時(shí)間:2019-12-11 來源:Michael Parks 責(zé)任編輯:wenwei
【導(dǎo)讀】過去數(shù)十萬年來,人腦一直堪稱地球上最強(qiáng)大的計(jì)算機(jī)。我們的大腦是無與倫比的進(jìn)化杰作,它不僅具有邏輯和推理能力,更具有創(chuàng)造力和情感。時(shí)至如今,科學(xué)家依然熱衷于人腦的生物學(xué)研究,而工程師則始終致力于采用硅電子和軟件技術(shù)來復(fù)刻人腦的功能。
深度學(xué)習(xí)(DL)是一種機(jī)器學(xué)習(xí)(ML)技術(shù)。作為一項(xiàng)新興的人工智能(AI)技術(shù),深度學(xué)習(xí)在第二代英特爾NCS(NCS2)中居于核心地位。深度神經(jīng)網(wǎng)絡(luò)依靠ML算法和樣本訓(xùn)練數(shù)據(jù)來生成數(shù)學(xué)模型。要生成經(jīng)過訓(xùn)練的模型,需要非常大量的計(jì)算工作,只有專用于重度計(jì)算的硬件才能勝任,但訓(xùn)練完成后的模型卻可以運(yùn)行在樹莓派(Raspberry Pi)、NCS2等相對低成本的硬件上。通過推測技術(shù),這些模型在遇到新的現(xiàn)實(shí)世界輸入時(shí)便可以迅速作出預(yù)測。
例如,如果讓一個(gè)視覺模型處理成千上萬的紅色和綠色蘋果圖片,就可以訓(xùn)練這個(gè)模型識別這兩種顏色的蘋果。然后,在NCS2上運(yùn)行訓(xùn)練過的模型,并將通過網(wǎng)絡(luò)攝像頭獲取的新圖像輸入到模型中,此時(shí)神經(jīng)網(wǎng)絡(luò)便可以對攝像頭視野中的蘋果進(jìn)行識別和分類。
物理計(jì)算:讓技術(shù)與現(xiàn)實(shí)更息息相關(guān)
就在不久前,創(chuàng)建人工大腦的想法還純粹是科幻小說中的腦洞。如今,雖然我們距離真正的通用AI還有很長的路要走,但技術(shù)正持續(xù)以疾速發(fā)展,這是不可否認(rèn)的。不過,雖然追求技術(shù)成就本質(zhì)上就值得我們?yōu)橹冻?,但我們不能忘了生活中不可或缺的藝術(shù)和創(chuàng)造。物理計(jì)算可以在無形的數(shù)字技術(shù)與有形事物的更直觀本質(zhì)之間建立起一座橋梁,并且項(xiàng)目中的「黑科技」本身就有助于化解公眾接受新技術(shù)的障礙,而人工智能顯然就是一項(xiàng)可以從這種相關(guān)性中受益的創(chuàng)新。
在本文所述的項(xiàng)目中,我們將采用尖端的AI驅(qū)動機(jī)器視覺新技術(shù),并將物理計(jì)算為人與技術(shù)間交互帶來的樂趣和新奇之處融會于其中。我們將使用兩個(gè)NCS2、一臺樹莓派、一臺攝像頭和數(shù)個(gè)伺服電機(jī)來構(gòu)建一臺面部表情識別設(shè)備,它可以觀察一個(gè)人的面部并確定其表情,然后根據(jù)特定種類的表情在現(xiàn)實(shí)世界中執(zhí)行某些動作。
背景
如果您從沒有接觸過神經(jīng)網(wǎng)絡(luò)或從未使用Python編寫過程序,那么這個(gè)項(xiàng)目就非常適合用來了解這兩項(xiàng)技能,而且嘗試在一個(gè)項(xiàng)目中集成英特爾第二代神經(jīng)計(jì)算棒(NCS2),這本身也是一種不錯(cuò)的學(xué)習(xí)體驗(yàn)。在此過程中,當(dāng)您看到機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等術(shù)語時(shí),與其說它們寫在數(shù)據(jù)表或應(yīng)用筆記里面,更不如說它們就好像從科幻小說的書頁里飛出來一般。
圖1:人工智能是一個(gè)廣泛而深入的研究領(lǐng)域,本項(xiàng)目實(shí)現(xiàn)的是卷積神經(jīng)網(wǎng)絡(luò)(CNN)
本項(xiàng)目的核心是NCS2。這是一款USB 3.0設(shè)備,嵌入式系統(tǒng)開發(fā)人員若要在自己的產(chǎn)品中實(shí)現(xiàn)基于視覺的智能,便可以通過這款設(shè)備獲得近乎即插即用的AI推理功能。NCS2基于Movidius Myriad X視覺處理單元(VPU)構(gòu)建,這是一款針對AI優(yōu)化的芯片,對基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的視覺計(jì)算可以起到加速作用。使用此技術(shù)可以進(jìn)行對象識別和分類(即識別攝像頭視野中是否存在人臉以及這張臉是否在微笑)。
如果您對這一切都感到陌生,無法理解一個(gè)想法如何最終變成一套使用NCS2并借助攝像頭來識別和分類物體,并且還真的能夠運(yùn)行起來的系統(tǒng),那么我們不妨花點(diǎn)時(shí)間來厘清其中涉及的工作流程。
1、訓(xùn)練神經(jīng)網(wǎng)絡(luò)(NN):神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可以采用多種機(jī)器學(xué)習(xí)框架來進(jìn)行,包括Caffe、TensorFlow、Kaldi、MXNet和開放神經(jīng)網(wǎng)絡(luò)交換(ONNX),其中部分框架可以在臺式計(jì)算機(jī)上運(yùn)行,還有一些能夠以容器的形式借助AWS或Google Compute Engine等云服務(wù)來運(yùn)行。對訓(xùn)練神經(jīng)網(wǎng)絡(luò)而言,算力(CPU和GPU)是最重要的因素;投入的算力越多,最終得出的模型就越快、越靠譜,因?yàn)橐屔窠?jīng)網(wǎng)絡(luò)檢測一種物體,就必須要用這種物體的圖片來訓(xùn)練它,而且至少需要用到數(shù)千張描繪簡單物體的圖片,因而算法需要處理大量數(shù)據(jù),最終導(dǎo)致的結(jié)果就是訓(xùn)練神經(jīng)網(wǎng)絡(luò)需要極高的處理能力。如果使用監(jiān)督學(xué)習(xí)模式進(jìn)行訓(xùn)練,那么訓(xùn)練圖像的數(shù)據(jù)集必須事先進(jìn)行標(biāo)注,這也極有可能耗費(fèi)掉訓(xùn)練人員的大量時(shí)間。
2、下載模型:要讓我們的設(shè)備檢測出攝像頭拍攝到的物體,模型訓(xùn)練只是第一步,無論它執(zhí)行起來是多么的費(fèi)時(shí)。在本文所述的項(xiàng)目中,該模型將檢測人臉,并對人臉?biāo)憩F(xiàn)的情感進(jìn)行分類。英特爾NCS2可以和多種流行的框架一起使用,這些框架包括.caffemodel(Caffe)、.pb(TensorFlow)、.params(MXNet)、.onnx(ONNX)和.nnet(Kaldi)。
不過在這里要告訴大家一個(gè)好消息:一些大神已經(jīng)分享了他們以往訓(xùn)練并生成的模型,并通過網(wǎng)絡(luò)提供下載;但就和采用其它預(yù)先構(gòu)建的軟件一樣,由于每個(gè)用戶的具體情況各不相同,最終的效果便會因人而異,也許并不一定如預(yù)期那樣理想。不過,在許多情況下,直接使用預(yù)先訓(xùn)練好的庫就已經(jīng)足夠。在本文所述的項(xiàng)目中,我們將會用到人臉檢測模型,并對檢測到的人臉?biāo)龀龅谋砬檫M(jìn)行分類。
3、為推測硬件準(zhǔn)備模型:獲取到經(jīng)過訓(xùn)練的模型后,下一步就是通過一定的準(zhǔn)備工作讓它運(yùn)行在選定的終端設(shè)備上。英特爾的OpenVINO工具套件正是為此準(zhǔn)備的。該套件提供的模型優(yōu)化器(Model Optimizer)可讀取Caffe、TensorFlow等神經(jīng)網(wǎng)絡(luò)框架產(chǎn)生的數(shù)據(jù),然后輸出中間表示(Intermediate Representation, IR)數(shù)據(jù),其中包含一個(gè).xml文件和一個(gè).bin文件,前者包含了描述神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的代碼,后者包含了二進(jìn)制的權(quán)值和閾值數(shù)據(jù);換言之,.xml文件描述了神經(jīng)網(wǎng)絡(luò)內(nèi)部如何互聯(lián),.bin文件則表明了分配給每條路徑的值(權(quán)重)。
4、推測:目前為止,我們還沒有用上英特爾NCS2。正如前面說的那樣,訓(xùn)練模型需要由非?!父叽笊稀沟挠?jì)算硬件來做。至于「推測」,說白了就是把新的輸入內(nèi)容交給神經(jīng)網(wǎng)絡(luò)來辨識、分類和處理,這就是NCS2發(fā)揮作用的地方了。OpenVINO將會讀取IR內(nèi)容,對神經(jīng)網(wǎng)絡(luò)執(zhí)行準(zhǔn)備工作,然后將之加載到選定的終端設(shè)備(本例中為NCS2)上,并設(shè)置所需的配置參數(shù)。隨后,NCS2上搭載的推理引擎(Inference Engine, IE)將執(zhí)行該深度學(xué)習(xí)模型,并在提供輸入數(shù)據(jù)時(shí)對其進(jìn)行推測。它還提供了一組便于使用的庫,以便將IE的輸出集成到定制的應(yīng)用程序中。
5、使用API開發(fā)增值功能:數(shù)十年來,嵌入式系統(tǒng)的固件開發(fā)一直由C編程語言主導(dǎo),但近年來Python在應(yīng)用程序開發(fā)方面越來越受到關(guān)注。隨著MicroPython和CircuitPython分支的創(chuàng)建,Python也開始涉足嵌入式開發(fā)領(lǐng)域。在本文所述的項(xiàng)目中,我們將采用英特爾的Python API與推理引擎進(jìn)行交互。對于希望繼續(xù)使用C/C++的人士,英特爾還提供了一個(gè)C++庫。借助這套Python API,與推理引擎的交互問題便可轉(zhuǎn)化為簡潔的函數(shù)調(diào)用。
物料
本項(xiàng)目將使用4GB版本的樹莓派4單板機(jī)作為系統(tǒng)核心,此外還包括以下關(guān)鍵組件:
圖2:樹莓派4依舊保持了小巧的尺寸,但硬件進(jìn)行了大幅度升級
1、兩個(gè)英特爾NCS2
2、一個(gè)OV5647攝像頭(也可采用USB攝像頭)
3、三個(gè)伺服電機(jī)
物料清單(BOM)
本項(xiàng)目的物料清單如表1所示?;蛘?,您可以單擊此處訪問mouser.com加載預(yù)定義的購物車,一次性買齊這些部件。本文撰寫時(shí),以下物料清單不含運(yùn)費(fèi)和稅費(fèi)的總價(jià)約為370美元。
表1:AI+物理計(jì)算項(xiàng)目物料清單
工具和其他資源
以下所列是完成本項(xiàng)目推薦使用的工具:
● 基于Windows,運(yùn)行OpenVINO工具套件的計(jì)算機(jī)
● 帶有HDMI端口的電腦顯示器或電視機(jī)
● 無線或有線Internet連接
● USB 3.0集線器
● USB鍵盤
● USB鼠標(biāo)
● USB攝像頭(可選項(xiàng),不使用OV5647攝像頭時(shí)需要使用)
● 剝線鉗
● 數(shù)字萬用表
● 尖嘴鉗
系統(tǒng)概覽
圖3:構(gòu)思想法時(shí),隨筆畫是一種不錯(cuò)的做法
該系統(tǒng)由五個(gè)主要部件構(gòu)成:
1、樹莓派:新款樹莓派可謂單板機(jī)(SBC)中的實(shí)力派,它搭載了一顆主頻1.5GHz的Broadcom BCM2711四核Cortex-A72 64位SoC,這里我們采用的是帶4GB LPDDR4-2400 SDRAM的型號。該產(chǎn)品采用已成為現(xiàn)行標(biāo)準(zhǔn)的40引腳GPIO接頭與伺服電機(jī)進(jìn)行交互。同時(shí),樹莓派還將用于運(yùn)行Python腳本、攝像頭和HDMI監(jiān)視器的主機(jī),并與兩個(gè)NCS2設(shè)備配合工作。
2、神經(jīng)計(jì)算棒:NCS2設(shè)備上將運(yùn)行兩個(gè)神經(jīng)網(wǎng)絡(luò),其中一個(gè)神經(jīng)網(wǎng)絡(luò)負(fù)責(zé)對攝像頭獲取的視頻流進(jìn)行分析,檢測視頻幀中是否出現(xiàn)人臉;另一個(gè)神經(jīng)網(wǎng)絡(luò)則負(fù)責(zé)推測這個(gè)人的臉上流露出怎樣的表情。
3、攝像頭:攝像頭會將圖像流輸入到NCS設(shè)備進(jìn)行分析。本項(xiàng)目中可以使用USB攝像頭,也可以使用Raspberry Pi OV5647攝像頭。運(yùn)行Python腳本時(shí),可以借助一個(gè)命令行標(biāo)志來設(shè)置使用的攝像頭。
4、伺服電機(jī):三個(gè)伺服器將與機(jī)械滑塊一同使用,以便與現(xiàn)實(shí)世界互動。具體而言,本項(xiàng)目將根據(jù)用戶對攝像頭呈現(xiàn)的表情向用戶展示不同顏色的花朵:黃色表示快樂,藍(lán)色表示悲傷,紅色則表示憤怒。
5、HDMI監(jiān)視器:HDMI監(jiān)視器將用于向用戶顯示終端和攝像頭的輸出內(nèi)容。
構(gòu)建電子元件
圖4:硬件之間的連接非常簡單明了
本項(xiàng)目組裝非常簡單明了,唯一需要提出的建議是等到樹莓派完全啟動后再將NCS2插入U(xiǎn)SB中;如果在初次啟動前插入NCS2,樹莓派可能會無法啟動,雖然我們并不清楚問題是不是出在這里。后續(xù)的啟動沒有問題,并且也不會再重現(xiàn)該問題。
1、將micro-HDMI轉(zhuǎn)HDMI適配器插入樹莓派。
2、將HDMI數(shù)據(jù)線插入電腦顯示器或電視機(jī)的HDMI端口。
3、將刷入最新版Raspbian的MicroSD存儲卡插入到樹莓派。有關(guān)如何將Raspbian操作系統(tǒng)安裝到MicroSD存儲卡上的說明,請單擊此處。
4、將USB鍵盤和鼠標(biāo)插入U(xiǎn)SB 2.0端口,也就是帶黑色塑料連接器的USB端口,而不是帶藍(lán)色塑料連接器的USB 3.0端口。
5、安裝攝像頭。
(1) 如果使用OV5647攝像機(jī),請輕輕打開連接器,插入排線,然后合上連接器。
(2) 如果使用USB攝像頭,請將其插入樹莓派的USB 3.0端口。
6、將USB-C電源的一端插入交流電源插座。
7、將USB-C電源的另一端插入樹莓派的USB電源插孔。
8、啟動樹莓派并完成初始設(shè)置,然后關(guān)閉樹莓派。初始設(shè)置步驟至此完成。
圖5:樹莓派的PIO接頭引腳分布
完成初始設(shè)置后,下一步就是安裝伺服電機(jī)。我們將在樹莓派上安裝三個(gè)伺服電機(jī)。
9、使用連接線將樹莓派的GND引腳連接到迷你試驗(yàn)板的GND(藍(lán)色)電極。
10、使用連接線將樹莓派的5V引腳連接到迷你試驗(yàn)板的電源(紅色)電極。
11、將每個(gè)伺服電機(jī)的GND電纜連接到試驗(yàn)板的GND電極。
12、將每個(gè)伺服電機(jī)的Vcc電纜連接到試驗(yàn)板的電源電極。
13、將第一個(gè)伺服電機(jī)的控制信號連接到樹莓派的GPIO12引腳。此為「快樂」伺服電機(jī)。
14、將第一個(gè)伺服電機(jī)的控制信號連接到樹莓派的GPIO13引腳。此為「悲傷」伺服電機(jī)。
15、將第一個(gè)伺服電機(jī)的控制信號連接到樹莓派的GPIO18引腳。此為「憤怒」伺服電機(jī)。
現(xiàn)在,伺服電機(jī)接線完成,接下來要進(jìn)行最后的組裝步驟,就是實(shí)現(xiàn)與兩個(gè)NCS設(shè)備共同工作。
1、將兩個(gè)英特爾神經(jīng)計(jì)算棒插入U(xiǎn)SB 3.0集線器。暫時(shí)先不要把集線器插入到樹莓派。
2、再次啟動樹莓派并登錄。
3、安裝運(yùn)行NCS設(shè)備所需的軟件(參見本文的“軟件”一節(jié)),然后再次重新啟動樹莓派??吹街甘竞螅瑢SB 3.0集線器插入樹莓派的USB 3.0端口。
出處:貿(mào)澤電子公眾號
微信號:mouserelectronics
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動控制解決方案 驅(qū)動智能運(yùn)動新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 更高精度、更低噪音 GMCC美芝電子膨脹閥以創(chuàng)新?lián)屨夹袠I(yè)“制高點(diǎn)”
- 本立租完成近億元估值Pre-A輪融資,打造AI賦能的租賃服務(wù)平臺
- 中微公司成功從美國國防部中國軍事企業(yè)清單中移除
- 華邦電子白皮書:滿足歐盟無線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
共模電感
固態(tài)盤
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器