應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

掃地機器人“離家出走”的真實原因找到了:差個自動駕駛算法

2020-11-03 14:34 量子位

導(dǎo)讀:想讓機器避障,除了檢測特殊目標(biāo),還需要自動駕駛技術(shù)中的一項核心算法三維感知,即判斷障礙物距離和三維尺寸(體積大?。┑哪芰Α?/p>

竟然將自動駕駛算法用在掃地機器人上。

大材小用?

還真沒有,雖然道路交通很復(fù)雜,但家里也一樣。

不僅要在靠近柜腳床腳時減速,還要在“看見”障礙物(掉在地上的襪子、纏繞的數(shù)據(jù)線)時來個急剎車。

還得肩負(fù)起逗貓遛狗的責(zé)任,給上班的你直播寵物的“作案現(xiàn)場”。

問題來了,機器人想要避開物體(如數(shù)據(jù)線、貓狗),用目標(biāo)檢測算法不就行了?

但目標(biāo)檢測算法只能識別已知物體,無法識別、測量未知物體的距離。

想讓機器避障,除了檢測特殊目標(biāo),還需要自動駕駛技術(shù)中的一項核心算法三維感知,即判斷障礙物距離和三維尺寸(體積大?。┑哪芰?。

人眼會下意識地判斷物體與自己的距離。

機器要想“學(xué)會”這種能力,同樣需要先擁有“眼睛”。

自動駕駛避障核心:雙目視覺算法

深度感知用到的測距方法有很多,包括紅外、超聲波、激光、3D結(jié)構(gòu)光、3D ToF、單目視覺、雙目視覺等。

那么,為什么要選擇雙目視覺算法?

簡單來說,就是讓機器像人一樣,用兩只眼睛看世界,產(chǎn)生“深度”感。不然,機器人看著你和身后的花瓶,會認(rèn)為是你正頂著一個花瓶,而不會產(chǎn)生“深度”感。

△錯位圖

如果只有單目(只用一只眼睛,利用時間和判定框大小變化去測量距離)的話,機器也有辦法判斷距離,但就與人一樣,沒辦法判斷得那么精確。

例如,左右手各舉一支筆,在閉上一只眼睛后,試著將筆尖對筆尖——是不是容易對不上?因為距離感變差了,所以筆尖總是容易互相錯過。

那么,激光雷達(dá)呢?

這的確是一個好東西,如果多個雷達(dá)全方位感知,機器就擁有了“神之視角”,每個角落都能看得清清楚楚。

然而,它造價太昂貴。如果在機器人身上裝上可以無死角掃視房間的雷達(dá)數(shù)量,它就變成了“行走的小金庫”,價格讓人無法直視。

此外,如紅外、超聲波等算法,避障精度不如雙目準(zhǔn)確;至于3D ToF、結(jié)構(gòu)光等算法,不僅成本高,需要額外配攝像頭做目標(biāo)檢測,而且沒有區(qū)分物體的能力,只能通過大小判斷障礙物。(例如,薄薄的襪子可能就被誤吸了)

這也是為什么,雙目視覺算法在無人車與無人機領(lǐng)域“備受歡迎”。

而現(xiàn)在,雙目視覺算法也被用在了掃地機器人上。

3cm以上:結(jié)合LDS,障礙物全識別

機器的“眼睛”,通俗點來說就是各種大大小小的傳感器。(激光雷達(dá)、相機后面的傳感器)

傳感器通常的工作原理,是機器(在角α頂點處)發(fā)射紅外線、超聲波、激光,通過“眼睛”(下圖角β的頂點)接收到后,再根據(jù)反射回來的角度、相位或時間,來判斷距離(d)。

△考驗高中數(shù)學(xué)知識的時候到了

而雙目視覺的根本原理,就像是將這個三角形變成了3D版:

它的原理就兩步:確定視差,即將兩個相機拍下來的照片進(jìn)行對比,找出兩張照片中相同的點間像素差,基于視差,通過已知的雙目空間幾何關(guān)系,計算立體空間中各點的距離。

但相比人腦的高精度計算,想要實現(xiàn)計算機的雙目識別,并不只有解三角形這么簡單。

一個重要的原因,就是在步驟這一塊,計算機本身并不知道攝像機拍的兩張照片哪里是一樣的。

△在計算機眼里,這些小黃鴨就是一堆數(shù)據(jù)

這就導(dǎo)致雙目視覺算法的開發(fā)變得非常困難,但帶來的收益也很高。

不過,雙目視覺算法仍然有缺點,它受光線影響依舊很大。

所以在光線不足時,就用算法去主動“補上光線”。

以石頭T7 Pro掃地機器人的算法為例,雙目視覺模塊分為視覺控制和深度估計兩部分,一個智能補光,一個估計深度。(甚至專門做個紅外拍出的相片,搞成數(shù)據(jù)集,訓(xùn)練補光識別效果)

但自動駕駛算法,也絕不僅僅只靠“兩只眼睛”。

與人類不同,無論是自動駕駛汽車、無人機、還是掃地機器人,都可以說是“全身遍布”著眼睛。

其中就包括LDS(激光雷達(dá))。

當(dāng)雙目視覺算法遇上激光雷達(dá)(能搞定所在高度的平面避障),在二者的結(jié)合之下,機器人不僅能完美避開3cm以上的障礙物,還能通過它們“找準(zhǔn)自身定位”。

此外,激光雷達(dá)也會用在SLAM的建圖和定位上。

3cm以下:目標(biāo)檢測算法的最強“輔助”

不過,在實際應(yīng)用中,單靠雙目視覺算法和激光雷達(dá),還遠(yuǎn)遠(yuǎn)不夠。

小于3×5厘米的物體,會比較麻煩,既要區(qū)分出要清掃的部分(紙屑、地毯)、又要避開一些容易纏住的障礙(數(shù)據(jù)線)。

這種情況下,雙目視覺算法就成了最好的“輔助”:協(xié)助目標(biāo)識別算法,將需要避開的物體檢測出來,準(zhǔn)確地區(qū)分垃圾與障礙物。

目標(biāo)檢測模型上,T7 Pro自研的神經(jīng)網(wǎng)絡(luò)借鑒了SSD,YOLO,及CenterNet等多種新型模型,目前還在不斷地迭代。

算法上,石頭采用了“一分為二”的待遇:高于3厘米的物體,繞障礙物邊沿避障和清掃;

小于3厘米的物體,按種類進(jìn)行清掃(紙屑、地毯)或避障(寵物便便、數(shù)據(jù)線)。

數(shù)據(jù)集上,石頭也“別有用心”:選出了一些特殊的物體,進(jìn)行“有差別對待”。

例如,大家都有所擔(dān)心的動物便便,石頭T7 Pro的算法中直接加入了便便的識別(同情做數(shù)據(jù)集的一秒鐘),在接觸之前,遠(yuǎn)遠(yuǎn)地就避開它。

哪怕不在家,掃地機器人也不會把寵物便便拖得滿地都是。

雖然算法目前已經(jīng)迭代到了能夠識別9種物體的“體量”(還在增加ing),但不是所有的物體都像寵物便便這樣,會受到“遠(yuǎn)遠(yuǎn)避開”的待遇。

9類常見障礙物:底座類(吧臺椅、風(fēng)扇、手持底座、平底座、燈底座)、體重秤、線團、插線板、鞋子、粑粑、織物(如襪子)、易卡家具( 如U型椅)、簸箕

例如鞋子、風(fēng)扇這種相對較為安全的物體,離得近一點再避障也沒什么問題(推開一點不重要,掃干凈就行)。

以及,這部分算法還有個小彩蛋。

在你上班的時候,這個掃地機器人就能化身小管家,“監(jiān)督”寵物:是不是又把食盆打翻了?

不過,視頻只有直播,沒有云存儲,也就是說,其他人甚至沒辦法竊取你家的數(shù)據(jù),所以,不用擔(dān)心掃地機器人會“變身間諜”。

繼續(xù)“拆解”后的發(fā)現(xiàn)

從深度感知部分來看,掃地機器人深度感知的原理,與無人駕駛算法有著相似之處:

如下圖,算法包含三大部分,第一部分是傳感器數(shù)據(jù)的獲取,第二部分是信息的提取,第三部分是獨特導(dǎo)航算法的融合(后融合)。

但這并不意味著,掃地機器人的算法與無人駕駛汽車的算法一樣。

在實際應(yīng)用上,掃地機器人需要“近距離避障”(晚點剎車,掃得更干凈),自動駕駛汽車則相反,需要以“安全”為主(盡早剎車)。

所以,雖然二者的避障核心都是自動駕駛中的雙目視覺算法,但數(shù)據(jù)處理方式不同。

從根本上來說,它們都是智能機器人,為了讓生活變得更方便而存在。