哇靠靠,这也行?零基础DIY无人驾驶小车(一)
????????之前做過一個非常簡單粗略版本的無人駕駛小車(點擊打開鏈接)。曾經答應過一些朋友出教程的,可是一直沒有兌現。現在下定決心要把這個教程寫完。而且會重新制作一輛更好的無人駕駛小車(使用標準的4車道,增加其他車輛模型作為干擾,增加紅綠燈,增加行人模型。。。)但是周期會比較長,因為畢竟這個一個比較大的DIY項目了,而且程序猿還經常加班的說。這個教程的目的就是把深度學習應用在一個DIY項目中,然后盡量寫的詳細,通俗,保證0基礎(那也不是真的0基礎哈,C語言你總得會的吧,動手能力你總得有點吧)的人能夠看明白,能夠復現,當中涉及的所有源碼,電路圖都會開源出來。我會分好幾篇來寫。這篇主要是講一下整個項目的框架。先上一下上次那個簡略版本的無人駕駛小車的視頻。雖然實現的功能很簡單,但是千真萬卻用到了當今全宇宙最火爆的技術:“深度學習”。。。(此處應該有掌聲,what?你不知道“深度學習”是什么?好吧,我再解釋一下,它是實現人工智能的一種有效的方法,從神經網絡發展而來,暫時理解成一種高大上的方法就妥了。后面我會花一個篇幅來介紹這個最牛B方法的基本原理)。看了這個視頻后,有人會不屑的說:使用簡單的模式識別,判斷線條位置,角度也能很好的完成相應的功能。en, 非常正確,但是如果把場景增加的再復雜一些,路況的多樣性再豐富一些,就能體現出“深度學習”的優勢了。
?
May I have your attention, please?
????????下面進入非常非常重要的環節,編寫項目總體設計說明書。哦,不對,自己diy的項目寫個蛋的說明書,不過核心模塊的思路還是有必要說明一下的。深度學習雖然效果好,但是往往是需要巨大的計算量。很多終端是沒有這個能力的。所以一般來說就有兩種方案,一種是直接在終端做掉,這種方法的效果好,沒有延時,但是需要終端有很強的計算能力;另一種是在云中心去做,或者說是后端的服務器去做。這種方法的話延時會比較長,因為終端需要將數據(圖片)傳輸給后端的服務器,服務器做出識別之后,再將結果返回給終端。
????????顯而易見,方案二依賴一個后端的服務器,那我的小車的使用范圍就非常受到限制了。如果我的服務器是在局域網的,那我的小車還只能在接入局域網內才能運行了,想去妹子家裝個逼?of course , you can't 除非你把服務器也搬到妹子家里去。。那用阿里云唄?可以啊,一天100塊,你玩的起嗎?所以說為了更方便的裝逼,還是應該采用方案1,不受后端服務器的限制??墒球}年,圖樣圖森破!如果采用方案1,那就必須在小車上實現完整的深度學習推理流程,這可不是一般的微控制器(單片機)能做的事情。就算是用了ARM高端一點的芯片,也還是夠嗆,識別一張圖片需要好幾秒,那還無人駕駛個球啊,都撞了人了,你再給我返回5秒前應該剎車的!除非你用nvidia的芯片,TK1,TX1。這些芯片里面有顯卡模塊,非常擅長做深度學習推理相關的應用。可是醒醒吧,這樣一套開發板至少得幾千大洋。土豪可以忽略
????????想想我們只是做個DIY,沒有必要為nvidia做貢獻,逼就不要裝了,在家玩玩得了。想通了這點,我們就毫(shi)不(shu)猶(wu)豫(nai)的選擇了方案2.那有的小伙伴就問了,方案2的服務器不是更費錢?恩,你若去買一臺深度學習專用服務器的話,確實是這樣,估計老婆本都得搭進去。但是對于咱這個小項目來說,你那臺用來看小電影的筆記本/臺式機已經夠了。因為我們的深度學習網絡不復雜,使用intel的CPU就已經可以準實時了。如果你的本本上能夠有一塊nvidia的獨立顯卡,那就更完美了!好了,核心方案定了。那么再把整個項目的硬件流程捋一遍。
????????注意這里我采用了一個android手機作為小車上面的視頻采集裝置。這有很多好處。首先如果用普通的攝像頭,那么還需要一個wifi模塊用于連接wifi,將圖像上傳到服務器上面。使用android手機的話,相當于攝像頭和wifi都不要另外準備了。另外很多人都有過時的的舊手機,廢物利用,又環保就節約成本。還有一個優點就是andoird上面編程特別方便,編寫一個視頻采集和網絡交互的app也不是什么難事。(什么?你擔心自己不會andoird編程,沒事的啦。因為這個項目的重點不是在android上面編寫一個視頻采集app,重點在于服務器上面如何實現深度學習訓練的推理,至于android上面的app,我會開源的噻。)好了,再把這個流程捋一遍。首先是手機連接上wifi,筆記本連接上wifi。然后小車可以開始無人駕駛了(好開心,好激動。。。)由于我們的小車速度較慢。我們100毫秒采集一張當前道路的圖片,然后通過手機發送給筆記本。筆記本接收到圖片之后進行深度學習推理,得出當前需要采取的控制策略,例如直行,左轉,右轉等。然后將控制策略通過wifi發送給手機。手機收到該策略之后通過藍牙傳輸給MCU(單片機),MCU根據控制策略對電機進行相應的控制,實現對應的直行,左轉,右轉的等操作。恩,聽著是不是還挺簡單的。想想馬上能夠把全宇宙最熱門的技術用起來,心里還有點小激動呢。。。下面這張清晰的流程圖,再給小伙伴們加深一下映像。
?
這次大概就介紹一下無人小車實現的方案,接下來第二期會重點介紹一些深度學習相關的技術,力求通俗的講明白深度學習的原理。接著是小車的制作與調試。歡迎大家收藏關注。
更多DIY項目,請關注微信公眾號? DL Lab ?????
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的哇靠靠,这也行?零基础DIY无人驾驶小车(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米9有防水吗(小米官方网站)
- 下一篇: 4am战队成员是哪几个