Lukas Biewald卒業(yè)于斯坦福年夜學(xué),取得數(shù)學(xué)學(xué)士學(xué)位和盤算機(jī)迷信碩士學(xué)位。Lukas曾任職Yahoo日本搜刮團(tuán)隊(duì)主管,以后作為高等數(shù)據(jù)迷信家就職于Powerset,該公司于2008年被微軟收買。
深度進(jìn)修和便宜硬件的摸索
晚期航空器,1818(起源:維基百科&美國(guó)國(guó)會(huì)數(shù)據(jù)庫(kù))
在制作了一個(gè)圖象辨認(rèn)機(jī)械人后,明顯下一步是制造一個(gè)可飛翔的版本。因而我決議打造一款可以或許停止臉部辨認(rèn)并呼應(yīng)語(yǔ)音敕令的主動(dòng)化無人機(jī)。
選擇一款預(yù)制無人機(jī)
對(duì)無人機(jī)停止編程,最難的部門是若何開端,我是從組裝無人機(jī)零件開端的。然則簡(jiǎn)直和之前一切DIY項(xiàng)目一樣,本身組裝無人機(jī)花了我許多的錢。并且坦率的說,我手工打造的無人機(jī)一向沒有穩(wěn)固飛翔過。可以確定的是,直接購(gòu)置預(yù)制版本才是加倍簡(jiǎn)略經(jīng)濟(jì)的選擇。
年夜多半無人機(jī)制作商都宣稱供給API接口,但關(guān)于專業(yè)喜好者來講并沒有甚么顯著的優(yōu)勢(shì)。市情上帶仿佛可用的API接口的無人機(jī),年夜多售價(jià)都跨越1000美元,這是一個(gè)很高的進(jìn)入門坎。
經(jīng)由一些查詢拜訪今后,我發(fā)明了Parrot AR Drone 2.0(見下圖)。我以為關(guān)于專業(yè)喜好者來講,這是一款幻想的機(jī)械。它的價(jià)錢不高,還可以停止編程。你可以選擇花200美元買一臺(tái)新機(jī)械,但因?yàn)樵S多人買了無人機(jī)又歷來不應(yīng)用它們,是以購(gòu)置一臺(tái)二手機(jī)械也是個(gè)不錯(cuò)的選擇。在eBay上二手無人機(jī)的售價(jià)年夜約是130美元乃至更低。
△我珍藏的各類無人機(jī),Parrot AR Drone無人機(jī)掛在最右邊
Parrot AR無人機(jī)飛翔的穩(wěn)固性沒有更貴的新款 Parrot Bebop 2.0 好(售價(jià)年夜約550美元),然則Parrot AR供給一個(gè)好用的node.js客戶端庫(kù)叫做node-ar-drone,很合適在下面停止開辟。
別的一個(gè)優(yōu)勢(shì):Parrot AR無人機(jī)很壯實(shí)。在測(cè)試主動(dòng)化法式的進(jìn)程中,不管它被撞墻上、家具上、室內(nèi)植物上和主人身上,他依然可以或許優(yōu)越的飛翔。
比擬給空中機(jī)械人編程,給無人機(jī)編程最糟的處所是電池續(xù)航時(shí)光短。一塊電池須要充電幾個(gè)小時(shí),能力飛翔年夜約10分鐘的時(shí)光。是以我建議多買兩塊備用電池,測(cè)試的時(shí)刻可以輪回應(yīng)用。
給我的無人機(jī)編程
因?yàn)镴avascript生成的驅(qū)動(dòng)才能,是以長(zhǎng)短常幻想的無人機(jī)編程說話。信任我,無人機(jī)飛翔中會(huì)碰到許多異步事宜。我固然沒有在Node上消費(fèi)許多時(shí)光,但這個(gè)說話讓我印象深入。我比來一次賣力的為機(jī)械人編程應(yīng)用的是C說話。用C說話處置線程和各類異常是非常苦楚的,是以最好罕用。我愿望有工資其它無人機(jī)平臺(tái)樹立Javascript開辟包,由于這個(gè)說話讓我們處置不肯定性的開辟事宜,變得簡(jiǎn)略風(fēng)趣。
架構(gòu)
我決議在筆記本電腦上運(yùn)轉(zhuǎn)邏輯,在云端停止機(jī)械進(jìn)修。比起直接在樹莓派硬件上運(yùn)轉(zhuǎn)神經(jīng)收集,這類架構(gòu)的延遲更低。我以為這類架構(gòu)對(duì)今朝的專業(yè)無人機(jī)開辟項(xiàng)目來講是可行的。
微軟、谷歌、IBM和亞馬遜都有疾速、便宜的云端機(jī)械進(jìn)修API。終究,我選擇了微軟認(rèn)知辦事API(Cognitive Service API)。由于這是獨(dú)一一個(gè)供給定制臉部辨認(rèn)功效的API。
△無人機(jī)的架構(gòu)
入門
默許情形下,Parrot AR Drone2.0帶有可供客戶端銜接的無線收集。這個(gè)功效對(duì)編程者來講異常費(fèi)事。每次你愿望測(cè)驗(yàn)考試甚么的時(shí)刻,須要先斷開你的收集然后連上無人機(jī)的收集。榮幸的是,有一個(gè)名叫ardrone-wpa2的項(xiàng)目異常有效。它可以經(jīng)由過程劇本讓無人機(jī)參加你本身的WiFi收集。
長(zhǎng)途登錄到無人機(jī)是件非常風(fēng)趣的事。Parrot運(yùn)轉(zhuǎn)在一個(gè)剝離版本的Linux上。你比來一次應(yīng)用長(zhǎng)途登錄功效是甚么時(shí)刻?銜接了甚么器械?以下是翻開終端并直接登錄無人機(jī)的示例。
用敕令行形式飛翔
裝置node庫(kù)今后,創(chuàng)立一個(gè)node.js REPL(Read-evaluate-Print-Loop)并用它引誘無人機(jī):
假如你一向隨著做到這步,那末如今你的無人機(jī)確定曾經(jīng)摔過至多幾回了。我上千次從新粘貼了平安殼,直到它完全破壞,不能不買一個(gè)新的。我遲疑要不要提這個(gè),現(xiàn)實(shí)上Parrot AR在不裝置平安殼的情形下飛得更好。但無人機(jī)在沒有平安殼的情形下加倍風(fēng)險(xiǎn),由于當(dāng)無人機(jī)撞上甚么器械時(shí),螺旋槳能夠會(huì)折斷,并且會(huì)在家具上留下陳跡。
經(jīng)由過程網(wǎng)頁(yè)掌握飛翔
為無人機(jī)構(gòu)建基于web的操作界面其實(shí)不艱苦,并且成果使人滿足(見下圖)。應(yīng)用Express.js框架可以輕松的構(gòu)建一個(gè)英俊的web辦事器。
我設(shè)置了一個(gè)按鈕來完成AJAX要求。
從無人機(jī)上取得視頻流
我發(fā)明應(yīng)用無人機(jī)攝像頭發(fā)送反應(yīng)的最好辦法是翻開一個(gè)銜接,并將我的收集辦事器中的PNG持續(xù)發(fā)送到我的網(wǎng)站。我的收集辦事器應(yīng)用AR無人機(jī)庫(kù)從無人機(jī)攝像頭中持續(xù)拉取PNG圖片。
在無人機(jī)圖象上運(yùn)轉(zhuǎn)人臉辨認(rèn)
Azure的臉部API功效壯大且易用。它可以辨認(rèn)你上傳的同伙照片,也能夠猜想年紀(jì)和性別,我發(fā)明這兩個(gè)功效的精確率高得使人驚奇。延遲時(shí)光約為200毫秒,費(fèi)用是1.5美元/1,000次。對(duì)我開辟的這個(gè)法式來講,這是完整公道的。上面是關(guān)于若何發(fā)送一個(gè)圖象并停止臉部辨認(rèn)的代碼。
我應(yīng)用ImageMagick庫(kù)來正文PNG圖片中的面貌。在這點(diǎn)上有許多可以擴(kuò)大的偏向,如應(yīng)用情緒API肯定臉部的情感等。
運(yùn)轉(zhuǎn)語(yǔ)音辨認(rèn)掌握無人機(jī)
語(yǔ)音辨認(rèn)部門最辣手的不是語(yǔ)音辨認(rèn)自己,而是以微軟的Speech API請(qǐng)求的格局將音頻流從網(wǎng)頁(yè)傳輸?shù)疆?dāng)?shù)剞k事器,終究代碼的年夜部門是為了完成這個(gè)功效。一旦你可以或許經(jīng)由過程單通道收集到準(zhǔn)確頻率的音頻,這個(gè)API便可以很好的任務(wù),并且異常輕易應(yīng)用。它的價(jià)錢是4美元/1000次要求,這關(guān)于營(yíng)業(yè)喜好者的運(yùn)用來講,根本上算是收費(fèi)的。
RecordRTC有一個(gè)很好的庫(kù),這是客戶端收集音頻錄制的好終點(diǎn)。在客戶端上,我們可以添加代碼來保留音頻文件:
我應(yīng)用FFmpeg法式削減音頻采樣點(diǎn),并將其歸并為一個(gè)通道,上傳到微軟:
自立搜刮途徑
我用ardrone-autonomy庫(kù)為我的無人機(jī)繪制主動(dòng)尋徑地圖。在無人機(jī)有數(shù)次墜落在客堂的家具和植物上后,我老婆好意的建議我把我的項(xiàng)目搬到車庫(kù)里去。那邊沒有太多可損壞的器械了,但也沒有太多的空間(見下圖)。
△在我的“試驗(yàn)室”里試飛無人機(jī)
假如我能取得更年夜的試驗(yàn)空間,我會(huì)持續(xù)研討智能搜刮算法。但如今我只須要讓我的無人性能夠騰飛、扭轉(zhuǎn),去尋覓我的同伙和仇敵:
小結(jié)
一旦樹立好一切,你可以經(jīng)由過程API掌握無人機(jī)視頻源,無人機(jī)編程就變得異常風(fēng)趣。隨同著新的圖象辨認(rèn)技巧,給我們供給了各類運(yùn)用的能夠,不管從不雅察空中植物到在墻壁上作畫。Parrot無人機(jī)不是為在室內(nèi)小空間飛翔設(shè)計(jì)的,一個(gè)價(jià)錢更高的無人性能讓全部運(yùn)用釀成實(shí)際。終究,無人機(jī)遇變得加倍穩(wěn)固,實(shí)際世界中將涌現(xiàn)年夜量相似的運(yùn)用。
微軟的認(rèn)知辦事云API易于應(yīng)用并且價(jià)錢廉價(jià)。起首,我擔(dān)憂無人機(jī)的異常廣角攝像頭會(huì)影響臉部辨認(rèn),而無人機(jī)螺旋槳的樂音會(huì)攪擾語(yǔ)音辨認(rèn)。但整體來講,表示要好過預(yù)期。延遲成績(jī)也不像我所擔(dān)憂的那樣。應(yīng)用云盤算處置及時(shí)圖象流看起來仿佛是個(gè)奇異的架構(gòu),但它能夠是很多運(yùn)用的將來之路。
