由于AI性能的逐步提高以及大眾對AI認(rèn)知的不斷提升,IoT產(chǎn)品也越來越重視并開始主打AI屬性。AIoT的時代已經(jīng)到來。AIoT時代要求IoT產(chǎn)品能夠提供人工智能的能力并且形成數(shù)據(jù)閉環(huán)。在2018雷克大會上,360人工智能研究院資深技術(shù)專家董健表示,將AI算法應(yīng)用部署在IoT設(shè)備中是一個系統(tǒng)性的工程,并分析探討了其中所需的技術(shù)及其難點。
AIoT時代對IoT產(chǎn)品的需求
IoT的時代已經(jīng)來臨,在IoT中,人工智能發(fā)揮越來越重要的作用。其原因主要有兩個:第一,AI在性能上已經(jīng)逐漸接近甚至超越人類。比如在視覺領(lǐng)域中的人臉識別、行為識別等應(yīng)用上,算法的性能已經(jīng)可以接近甚至超過人類。在語音識別領(lǐng)域,基本的進廠對話性能可以滿足日常的需求。第二,用戶對AI的認(rèn)知程度在不斷地提高。近幾年,AI成為熱點話題,用戶對AI的理解和認(rèn)可度不斷提高。
在這樣的背景下,我們認(rèn)為,AI已經(jīng)從IoT的“加分項”逐漸成為IoT的“標(biāo)配”。如果一款I(lǐng)oT產(chǎn)品沒有智能的支持,那么它可能很難得到市場的認(rèn)可,銷量也難以保證。因此,幾乎每款360的IoT產(chǎn)品都主打“智能”的概念。比如,智能家居攝像頭、智能掃地機器人、智能行車記錄儀、智能兒童手表等。其中的智能功能對提升用戶體驗非常重要。
我們已經(jīng)進入了AIoT的時代。AIoT時代對IoT產(chǎn)品主要有兩點需求:
1.提供AI的能力
當(dāng)用戶購買一款智能攝像頭產(chǎn)品時,已經(jīng)不能滿足于產(chǎn)品只能提供最基本的視頻直播和離線視頻存儲功能,而是希望它能夠提供更加全面的功能。
以360小水滴攝像頭為例,它除了基本的功能之外,還具備人形檢測、陌生人檢測的功能。當(dāng)陌生人進入到監(jiān)控范圍內(nèi),攝像頭可以自動向用戶進行報警,將相關(guān)視頻和圖片傳送給終端用戶,使用戶了解相關(guān)情況并加以判斷。除此之外,它還具有家人識別、時光相冊等功能。在一線大城市工作使十分繁忙的父母在白天基本沒有時間陪伴子女,小水滴攝像機可以通過自動分析用戶的情感和行為,自動檢測出Timeline定時發(fā)送給家長,家長可以此判斷孩子在家的情況。它也能夠進行哭聲檢測,使用戶可以自己判斷孩子是否有異常的情況。此外,針對一些垂直領(lǐng)域,智能攝像頭也提供智能監(jiān)護、智能看店等更加定制化的功能。
2.形成數(shù)據(jù)閉環(huán)
小水滴應(yīng)用每天要處理上億級的調(diào)用,而每天上億級的數(shù)據(jù)積累則可以用來不斷優(yōu)化算法。實際的家庭場景是一個相當(dāng)復(fù)雜的場景。在攝像頭下,面對不同的光照、角度,人臉的尺寸、大小等方面都不一樣。即使是在其他場景下性能優(yōu)異的模型,也難以保證在這種復(fù)雜的家庭場景下表現(xiàn)出同樣高的性能。因此需要通過形成數(shù)據(jù)閉環(huán),不斷地進行優(yōu)化。現(xiàn)在360的系統(tǒng)正確率可以達到99%。從與競品比較的角度看,它是目前在家庭場景下世界范圍內(nèi)性能最好的系統(tǒng)之一。
360智能攝像頭背后的核心算法
在攝像頭系統(tǒng)背后,是很多與人臉、人體相關(guān)的算法。在人臉方面,需要做人臉檢測、人臉跟蹤、人臉關(guān)鍵點檢測和幾何變換。當(dāng)幾何變換完成之后,會得到一個尺寸相對而言易處理的標(biāo)準(zhǔn)化的輸入。隨后即可做出人臉識別和人臉屬性(年齡、表情等)分析。相對應(yīng)的,在人體方面,需要做人體檢測、人體跟蹤、人體關(guān)鍵點檢測和幾何變換。隨后可以進行人重識別,以判斷出現(xiàn)在不同攝像頭中的人是否是同一個人,還可以進行行為分析,以判斷老人、小孩是否跌倒等情況。
這些背后的核心技術(shù)是深度學(xué)習(xí)。整個系統(tǒng)的核心則是如何設(shè)計一個更好的深度學(xué)習(xí)框架。
對智能攝像頭而言,除了單個攝像頭的技術(shù)問題之外,還有一個重要的問題是智能攝像頭網(wǎng)絡(luò)。如果家的面積比較大,需要同時安裝多個智能攝像頭,這可能會面臨問題,比如陌生人檢測,如果每個攝像頭都單獨進行陌生人檢測,那么當(dāng)一個陌生人進入家中時,用戶會同時接收到十幾二十條推送,大大降低用戶體驗感。因此,不同攝像頭之間需要進行協(xié)同聯(lián)動。根據(jù)360的需求調(diào)研,在智能攝像頭網(wǎng)絡(luò)中,核心在于找到關(guān)注物體在多個攝像頭間的對應(yīng)關(guān)系。如圖,當(dāng)一個人從左邊移動到右邊時,需要判斷在兩個攝像頭中出現(xiàn)的某個人是否是同一個人。如果能建立起其間的對應(yīng)關(guān)系,那么后續(xù)可以進行很多相應(yīng)的處理以提升用戶體驗。而建立對應(yīng)關(guān)系是需要融合多種信息的工程問題。如果是比較遠端的信息,要做的是基于行人重識別的技術(shù)。首先檢測出人,然后對兩個人是不是同一個人進行判斷。如果智能攝像頭放在門口,有穩(wěn)定的人臉信息,基于人臉檢測的話即可達到更好的效果。
360的其他AIoT產(chǎn)品
除了小水滴智能攝像頭之外,360還有其他的智能應(yīng)用。
智能后視鏡
標(biāo)準(zhǔn)后視鏡的主要作用是記錄行車的情況。但現(xiàn)在用戶對人工智能的需求越來越高,因此很多后視鏡產(chǎn)品會提供一些額外的功能,智能后視鏡應(yīng)運而生。智能后視鏡可以提供前車碰撞預(yù)警、前車啟動預(yù)警、車道偏離預(yù)警等功能。對這些功能,用戶都可以自行選擇打開或者關(guān)閉。
前車碰撞預(yù)警:如果與前車距離過近,智能后視鏡會啟動報警;
前車啟動預(yù)警:如果司機停車時在休息、玩手機,當(dāng)前車啟動時,智能后視鏡會對用戶進行提醒;
車道偏離預(yù)警:判斷用戶的車是否偏離軌道。
智能后視鏡中的AI算法所面臨的核心問題是如何在資源受限的情況下提升用戶的體驗。如果是在資源完全不受限的情況下在云端進行計算,當(dāng)前的算法相對能夠達到很好的效果。但問題是,像智能后視鏡這類可能價格僅有200元左右的一個產(chǎn)品,硬件成本是非常重要的考慮因素。360的做法是盡量能夠應(yīng)用硬件本身剩余的資源來增加AI的能力。這對算法的優(yōu)化提出了非常高的要求。使用標(biāo)準(zhǔn)的產(chǎn)品,在后續(xù)的升級中加入360的算法,通過對算法進行不斷的迭代優(yōu)化,從而給用戶提供良好的體驗。
智能掃地機器人
智能掃地機器人在國外的市場滲透率很高。通過網(wǎng)上商城的指標(biāo)可以看到,這類產(chǎn)品在國內(nèi)市場的滲透力和購買率也在急速地提高。
早期掃地機器人掃地方法是比較低智的。它們的原理基于碰撞檢測,當(dāng)碰到障礙物是隨機轉(zhuǎn)向變換角度再繼續(xù)清掃。而新一代的智能掃地機器人,會對家庭整體情況進行建模,之后進行有規(guī)律的清掃。這既保證能夠清掃到所有的地方,同時又不進行多余的重復(fù)清掃。與早期掃地機器人相比,用戶可以感覺出這確實是一款智能的產(chǎn)品。此外,基于對家庭情況的建模,可以對清掃行為直接進行控制。只需要在APP中進行簡單的操作,即可控制開始進行清掃的時間、需要清掃的區(qū)域等。智能掃地機器人在消費能力比較高的一線城市會有非常明顯的優(yōu)勢。
360智能掃地機器人背后的技術(shù)與360無人車技術(shù)類似。第一步是進行高精地圖的定位。這一步在智能掃地機器人中,是通過單線激光雷達來完成的。在完成建圖時,可以基于所建的高精地圖完成定位。在無人駕駛的場景下是對車進行的定位,而在掃地機器人的場景下則是對機器人的定位。該算法可以同時完成建圖和定位,并不需要預(yù)先建立地圖。其最大優(yōu)點是可以隨時適應(yīng)不同的場景,無需預(yù)先的初始化,用戶體驗可以得到提升。下一步是完成感知。在無人駕駛中是對人和其他車輛進行的感知,而掃地機器人是對障礙物進行實時的感知,之后對掃地的路線進行規(guī)劃。最后按照所設(shè)計的路徑進行自動化的控制,按照預(yù)先設(shè)定的路徑進行清掃。整個過程的每一步都需要AI算法的輔助。
AI在IoT應(yīng)用中的技術(shù)難點
AI在IoT中的應(yīng)用主要面臨三個挑戰(zhàn):第一,模型要小。低成本的智能硬件產(chǎn)品受到硬盤、內(nèi)存資源的限制,同時也存在遠程更新的問題。因此,能夠做到模型小可以成為很大的優(yōu)勢。第二,線上速度要快。很多IoT設(shè)備的CPU資源比較匱乏,而一些產(chǎn)品需要進行實時處理。因此,速度是非常重要的因素。第三,預(yù)測要準(zhǔn)。因為對于陌生人檢測等云端應(yīng)用而言,誤報率是重要的指標(biāo)。如果經(jīng)常有誤報,對用戶進行打擾的話,用戶體驗會大大降低。
一個實際使用的系統(tǒng)應(yīng)該同時滿足以上三點。模型小和速度快基本上不矛盾,一般速度快的模型相對來講也會比較小。但是預(yù)測準(zhǔn)和速度快是沖突的,一般性能更好的算法速度會更慢。所以在實際使用中,一定要做好速度和性能的平衡。具體在實際應(yīng)用中可以從四個角度共同進行優(yōu)化,以處理好速度和進度的關(guān)系。
基礎(chǔ)模塊
首先是基礎(chǔ)算法,即最底層算法模塊的選擇。它是決定后端算法的基礎(chǔ)。在視覺領(lǐng)域中,最常見的基礎(chǔ)模塊是卷積。如果基礎(chǔ)模塊的選擇上出現(xiàn)問題,那么后面所有都是“空中樓閣”。
模型調(diào)優(yōu)
當(dāng)選取了性能良好的基礎(chǔ)模塊之后,下一步就是進行模型的調(diào)優(yōu)。在深度學(xué)習(xí)領(lǐng)域,這一步就是模型結(jié)構(gòu)參數(shù)的調(diào)整。對于某些次要的層,如果對速度要求比較高,而這些層對速度應(yīng)該比較大且對性能要求較小,那么可以去掉這些層。對于某些常見的應(yīng)用,如果有多款不同的產(chǎn)品線,當(dāng)每款產(chǎn)品的性能指標(biāo)不一樣時,單獨手工指定模型的人工成本會非常高。針對這個問題,可以進行模型結(jié)構(gòu)自學(xué)習(xí),通過使用高效的模塊進而提升模型整體的效果。
訓(xùn)練優(yōu)化
在選定并優(yōu)化模型之后,要對模型訓(xùn)練進行優(yōu)化。使用不同的訓(xùn)練方法也會使算法和模型的最終性能產(chǎn)生較大的差異。訓(xùn)練優(yōu)化包括進行數(shù)據(jù)增強和知識蒸餾。數(shù)據(jù)增強是指,在訓(xùn)練時,使用在線負樣本挖掘技術(shù),對數(shù)據(jù)不平衡進行更好的處理。知識蒸餾是針對像深度學(xué)習(xí)這種目標(biāo)尋找局部最優(yōu)解的非線性優(yōu)化,首先訓(xùn)練一個更大的模型,得到一個更好的結(jié)果,然后用該結(jié)果去指導(dǎo)訓(xùn)練小模型。以大模型的輸出作為小模型的標(biāo)簽,使小模型在最初有更好的方向,從而達到更好的局部最優(yōu)解,最終提升性能。
工程優(yōu)化
最后面臨的是工程優(yōu)化。需要充分利用GPU 或者 ARM Neon等硬件的加速能力。此外,選擇精心優(yōu)化的底層庫,設(shè)計良好的模型,從而可以提升50%以上的速度。最后剖析代碼,確定最耗時的部分并對此進行優(yōu)化。
總之,將AI算法應(yīng)用部署在IoT設(shè)備中是一個系統(tǒng)性的工程。實際使用的系統(tǒng)在設(shè)計的時候就對整個系統(tǒng)做出全面的規(guī)劃和系統(tǒng)化的優(yōu)化。這樣在實際應(yīng)用中才能達到理想的效果。
(本文根據(jù)“2018雷克大會”現(xiàn)場速記整理而成,未經(jīng)演講人審閱。)