如何用点云对车辆和行人进行识别分类?这是MIT学生的总结
本文作者是MIT的大二學(xué)生Michael Gump(阿甘),內(nèi)容為他在無人車公司Voyage的工作總結(jié)。本文還得到Voyage首席執(zhí)行官Oliver Cameron的推薦。
作為一名計(jì)算機(jī)專業(yè)的學(xué)生,我一直對(duì)機(jī)器學(xué)習(xí)特別是強(qiáng)化學(xué)習(xí)很感興趣,特別喜歡琢磨OpenAI的相關(guān)研究。去年冬天,我還參加了一門無人車的課程,從這個(gè)時(shí)候開始,自動(dòng)駕駛汽車這個(gè)領(lǐng)域一直讓我感到特別興奮。
三個(gè)月前,我加入了Voyage的深度學(xué)習(xí)實(shí)習(xí)項(xiàng)目。Voyage是一家從Udacity剝離出來的初創(chuàng)公司,致力于研發(fā)自動(dòng)駕駛出租車。
在學(xué)校里能學(xué)到很多知識(shí),但并不能讓你了解真實(shí)的世界。在Voyage實(shí)習(xí)的這段期間,不但幫我彌補(bǔ)了教育中的缺失,而且我真的有機(jī)會(huì)接觸到最酷的產(chǎn)品。在這里,我準(zhǔn)備把我這段時(shí)間的收獲分享給大家。
我的工作
這個(gè)夏天的實(shí)習(xí)中,我一直在研究計(jì)算機(jī)視覺相關(guān)的幾個(gè)問題,閱讀了很多論文并且訓(xùn)練了不少模型。大部分時(shí)候,我一直都是用公開數(shù)據(jù)集,對(duì)激光雷達(dá)(LiDAR)數(shù)據(jù)進(jìn)行分類識(shí)別。數(shù)據(jù)集地址如下:
http://www.cvlibs.net/datasets/kitti/index.php
http://cs.stanford.edu/people/teichman/stc/
當(dāng)人類觀察世界的時(shí)候,可以自動(dòng)的感知深度,并且能夠識(shí)別出道路上是一輛車還是一個(gè)行人。怎么能讓無人車也做到這一點(diǎn)?過去幾個(gè)月我的大部分工作,就是想辦法讓Voyage的自動(dòng)駕駛出租車對(duì)車輛和行人進(jìn)行分類。
我使用的工具是三維視圖(LiDAR點(diǎn)云)+深度學(xué)習(xí)。
△?這個(gè)分類器模型正確的把汽車標(biāo)為綠色,行人標(biāo)為紅色
物體分類識(shí)別
對(duì)于一輛無人車來說,它需要采集原始的傳感器信息(例如點(diǎn)云),然后還得搞清楚到底看到了什么。這其中最重要的是如下兩個(gè)問題。
- 距離:離我撞上這個(gè)物體還有多遠(yuǎn)
- 類別:我看到的究竟是個(gè)什么
解決這個(gè)問題,既可以設(shè)計(jì)傳感器直接獲取相關(guān)信息,也可以從現(xiàn)有的傳感器中提取所需信息。對(duì)于距離這個(gè)問題,激光雷達(dá)是現(xiàn)在最好的傳感器。除非特別“勇敢”,一般搞無人車不會(huì)繞過這個(gè)關(guān)鍵的設(shè)備。
然而對(duì)于分類(識(shí)別車輛、行人)這個(gè)問題,并不能通過傳感器直接獲知結(jié)果,需要我們研發(fā)算法來實(shí)現(xiàn),這也就是我這個(gè)夏天的主要工作。
△?黑白圖像是LiDAR數(shù)據(jù),然后增加分類信息(綠色代表行人,藍(lán)色代表車輛)
從人類的視角來看,這些都是很簡(jiǎn)單的問題。但請(qǐng)注意,人類已經(jīng)有數(shù)百萬年的發(fā)展進(jìn)化歷史。怎么才能在短時(shí)間內(nèi)讓無人車也具備同樣的能力?如果你不是外行就該知道,這個(gè)問題的答案是:CNN,卷積神經(jīng)網(wǎng)絡(luò)。
在很多難題上CNN都給出了驚人的結(jié)果,只需要一些微調(diào),這個(gè)神經(jīng)網(wǎng)絡(luò)就能很好的用來處理LiDAR數(shù)據(jù)。
然而,一個(gè)深層卷積網(wǎng)絡(luò)可能不是我們最好的選擇。我們系統(tǒng)的一個(gè)關(guān)鍵要求,是必須要以很高的幀率運(yùn)行。也就說我們需要構(gòu)建一個(gè)實(shí)時(shí)運(yùn)行的系統(tǒng),因此必須得選擇一個(gè)可以快速得到良好效果的解決方案。
雖然CNN可以識(shí)別圖像中的復(fù)雜模式,但通常速度很慢。所以這個(gè)夏天我花了大部分時(shí)間來尋找一個(gè)替代方案。其中一個(gè)替代方案是手動(dòng)挑選與物體類別高度相關(guān)的物理特征信息,也就是對(duì)我們的模型進(jìn)行一些特征工程。
在這個(gè)過程中,我的導(dǎo)師教會(huì)了我一件事:實(shí)驗(yàn)、實(shí)驗(yàn)、實(shí)驗(yàn)。
我的成果
這個(gè)夏天我的收獲之一,就是學(xué)會(huì)使用一個(gè)很棒的快速可視化工具。在Vispy的幫助下,我對(duì)大量的點(diǎn)云進(jìn)行了有序的可視化,然后在類似真實(shí)世界的環(huán)境中對(duì)模型進(jìn)行調(diào)試。我這次實(shí)習(xí)的另一個(gè)收獲是,直接從模型的損失曲線中很難看出問題。
(Vispy地址:http://vispy.org/)
我用了PyTorch來訓(xùn)練和驗(yàn)證我的模型。我之前對(duì)PyTorch不熟,但現(xiàn)在它成為我最喜歡的深度學(xué)習(xí)框架。雖然PyTorch沒有TensorFlow那么多的特性,但是更容易上手。
(插播一個(gè)量子位之前的報(bào)道:《PyTorch還是TensorFlow?》)
我搭建的模型之一,是一個(gè)編碼解碼器(Encoder-Decoder)網(wǎng)絡(luò),能夠?qū)Χ鄠€(gè)通道的輸入數(shù)據(jù)進(jìn)行分類預(yù)測(cè)。從這些嘈雜的預(yù)測(cè)中,我們可以推斷出面前物體的真實(shí)類別。這種模型非常強(qiáng)大,可以對(duì)某些傳感器和處理錯(cuò)誤免疫。
例如,依靠對(duì)象大小和形狀進(jìn)行分類的模型很容易出現(xiàn)檢測(cè)錯(cuò)誤。而編碼解碼器模型可以通過識(shí)別場(chǎng)景中的模式并直接轉(zhuǎn)變?yōu)轭A(yù)測(cè)來回避這樣的問題。
△?工作中的編碼器-解碼器模型。模型還很粗糙。
我上述工作參考了以下的論文:
《Multi-View 3D Object Detection Network for Autonomous Driving》
https://arxiv.org/abs/1611.07759
《LIDAR-based 3D Object Perception》
https://pdfs.semanticscholar.org/2c45/03c72ba7f53f3385859bd5e6311c58e73905.pdf
— 完 —
本文作者:問耕 原文發(fā)布時(shí)間:2017-08-25總結(jié)
以上是生活随笔為你收集整理的如何用点云对车辆和行人进行识别分类?这是MIT学生的总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 匿名电子病例信息不全?深度学习能更好的判
- 下一篇: 在iOS中使用FilesApp