來自角蜂鳥SDK開發者的第一篇閑談

來自角蜂鳥SDK開發者的第一篇閑談

來自專欄角蜂鳥

作為一個新鮮出殼、未曾有太多推廣的開發套件,加上又是第一篇投稿文章,果然還是應該按照慣例先來寫一個前言。

不過…其實大家會來這裡點開看,首先大概都是同行碼農、演算法搬磚工以及AI真愛粉,然後確實我們也沒提供太多渠道去了解角蜂鳥是什麼能幹嘛。


一個不符合前言規範的前言

True人不說False話,先從我們最關心的功能、優勢以及其他作為碼農能想到的一切講起,然後再去產品上線的自我感動…

  • 即插即用: USB插台機、筆記本、樹梅派,無GPU、CPU支持(吹牛了,其實需要CPU做少許前處理)能跑大部分的深度學習模型,一鍵安裝輕便綠色無依賴。當時和同事思考產品何去何從時設立了一個小目標,回家給你們的女友/老婆,看看她們能不能獨自跑起來人臉檢測的Demo!成功了?那麼就找老媽去再試試… 同事吐槽說老媽找不到開機鍵在哪怎麼破?寫進文檔啊(大霧)。不過我們在文檔方面也是打算下血本的。Windows支持的不好?沒關係,我們會提供一套Ubuntu安裝指南… 模型訓練搞不定?沒事,我們手把手教你怎麼訓練Caffe!(是不是跑偏了)當然文檔肯定還是會盡量有序…
  • Python API -> 開源!:底層、高層API咱都寫好了。10行 Python代碼可實現人臉檢測、物體檢測、物體識別以及其他。等下,我知道你想說其實封裝好了1行也夠…其實我們的目的就是讓調取基於CNN的視覺相關應用簡單到不能再簡單並且支持自己的模型。模型轉換工具目前還未完善,下次大更新後應該能搞定最後,重要的事情不說三遍也要兩遍:所有演算法實現Github上開源!微軟收購了Github整出毛病也會扔百度盤繼續開源!雖說現在國內並沒有太多的開源氛圍,但未來真的是屬於開源的,你看Github不是都被幾十個億收購了嗎(?)。認真的說,既然我們花了相當的心血在SDK上,並不希望它能做到的功能僅僅受限於我們自己,OpenCV現在的強大和完善也證明了這一點,想想如果當時放出來是CloseCV(嗯,我知道打死他們也不會起這個名)或許也就摳個圖描幾個邊緣就被人遺忘了吧… 至於開源導致落後於競爭對手什麼的,其實更多的可能性是吸引到合作者才對。當然,SDK的強大就會有更多的人買我們的產品就能漲工資了!

跑一個人臉檢測的Python代碼大概是這種感覺:

net = hs.HS(FaceDetector, zoom = True, verbose = 2, threshSSD=0.55)while True: result = net.run() img = net.plotSSD(result) cv2.imshow("Face Detector", img) cv2.waitKey(1)

大概實現的功能是:用角蜂鳥上自帶的攝像頭獲取畫面,檢測到畫面中的人臉並且畫上框輸出圖像與框的坐標結果,通過OpenCV顯示出來。

  • 基於Intel Movidius:跑模型用的是 MA245X 卷積神經網路(CNN)加速晶元作為嵌入式硬體算力已經算是同類產品中相當快的了(雖說成本也是相當貴…)。不提有幾十個G的算力因為水分太多,目前Python範例實測大概 GoogleNet / MobileNet-SSD 等熱門模型在 8-10幀每秒 左右,一些較小的模型例如LeNetMNIST、手繪識別模型等 完全實時。 總之基本可以滿足大部分開發者的DIY需求,至於工業級應用…目前硬體部分的穩定性還達不到要求,可能跑一段時間攝像頭會掛,下一版軟硬體大升級之後再看看。
  • 自由度高:因為是基於USB傳輸 + Python,也就意味著兼容性超高,目前Ubuntu最穩定(畢竟是在這裡開發的…),Mac和樹莓派運行毫無問題,安卓Java跑通好幾個範例,Win 10…輕敵了,兼容之路佛擋殺佛的我們竟然會倒在Windows上,以為1個小時能搞定結果因為各種依賴庫版本混亂無限編譯失敗,於是決定等到下一版本帶著libusb源碼從頭來過… 然後我們基於這些平台又做了好幾個DIY範例,比如見到人就眼冒紅光舉起手要打你的機器人看見自行車就追但就是不撞上去的樹莓派小車,人一來就開燈的智能開關(終於有一個看起來有點用的東西…)。另外,支持Caffe和Tensorflow模型轉換,但目前坑真的特別多所以還沒法提供轉換工具(不是我們的鍋!),需要Movidius提高對不同層的支持,當然同時我們也在填坑以免放出來二次坑人。
  • 小,輕,省電,便宜(相同模型運行幀率差不多的n社TK1還是便宜好幾倍…)
  • 剩下都在文檔里:Horned Sungem Documentation文檔(現在才放出來給我看?!):

Horned Sungem Documentation?

hornedsungem.github.io圖標


這算是什麼前言,完全成了產品介紹文! 不過不寫的話或許只有同事和親戚能看到這了吧…(手動扶額)。

不過從開始這個角蜂鳥的項目到現在也快1年了,因為公司一直以來都和Intel有合作,於是有了開發Movidius的資格。也因此不得不說下在使用Intel原生的神經計算棒 Neural Computing Stick (NCS) 時受到了諸多限制,最後產生足夠的動機使得我們作出這個產品。當然完全沒有在說NCS不好,沒有它其實也就沒有我們後面這些東西了,雖說和NCS這個產品是直接競爭關係,但最終角蜂鳥是要買Myriad晶元所以哪個賣出去Intel大佬們都開心…

今天就先寫這麼多好了!其實建立這個專欄的初衷是希望能給使用角蜂鳥的各位提供乾貨,比如說如何實現一個xxx、遇見yyy的坑該怎麼辦、用角蜂鳥zzz是什麼感受(?)之類。其中肯定不僅限於角蜂鳥相關,應該未來會有很多有趣的東西出現吧…希望如此。最後也強烈歡迎各種用角蜂鳥做出來的有趣的東西分享,我們這些原生開發者也會竭盡全力提供最大的支持!


推薦閱讀:

人工智慧教育,公辦教育不能置身事外
無人車是怎樣上路的?這裡有一份自動駕駛車輛監管制度全球性調查
英國皇家學會報告:人們的確擔心人工智慧,但理由卻是錯的
人工智慧帶來的道德困境(一):生死時速
雜談人工智慧

TAG:人工智慧 | 嵌入式開發 | 開源項目 |