2018年12月20日,「AIChallenger2018全球AI挑戰賽」年度總決賽圓滿落幕,視語科技創始人兼董事長、中科院自動化所研究員王金橋帶領團隊獲得「無人駕駛視覺感知」賽道冠軍!以高於第二名四倍的成績遙遙領先,並得到「達到世界級領先水平」的極高評價。美團點評無人配送視覺感知技術負責人陳華清讚嘆道,「太強了,這樣的成績讓人驚喜」。
「AI Challenger全球AI挑戰賽」是國內規模最大的、最關注前沿科研與產業實踐相結合的非商業化數據集和競賽平臺。本次大賽於2018年8月29日正式啟動,吸引了來自81個國家的1100所高校和990家公司的上萬支團隊參賽,而王金橋團隊就是這萬裡挑一的佼佼者,展示了在視覺識別領域的領先水平。
2018年是人工智慧落地的元年,人工智慧實際上是一個將數學、算法理論和工程實踐緊密結合的領域。算法只有深度與場景融合,實現產學研一體化,解決行業痛點才能真正實現人工智慧的價值。視語團隊從算法設計、數據處理、工程優化等幾個方面介紹如何將視覺識別算法與應用場景進行深度融合,打造有溫度、有價值的AI技術。
1.算法是核心
科研中算法的比拼相當於華山論劍,講究的是科學性、原創性和實驗效果。而在工程落地中,更注重算法與場景適配性、穩定性、精度和速度。經常需要針對特定場景下的特定任務,定製整體算法框架,對每一個算法細節進行精細打磨,併合理利用算法和場景結合的邊界,從而提出一些創新型的思路。
以無人駕駛視覺感知為例,需要同時解決「目標檢測」和「可行駛區域分割」兩個子問題。而由於計算資源有限,為了追求精度和速度的平衡,算法設計需要考慮多任務學習框架。
接下來,需要深入剖析子問題的難點,對算法各個模塊進行定製化設計。比如對於目標檢測來說,該應用場景需要儘量提高各類目標的檢出率,所以小目標檢測就成為難點,這裡的小目標包括交通標誌、交通燈、遠處的行人和車輛等。對於可行駛區域分割來說,主要難點在於類間定義模糊,即可直接行駛區域和可間接行駛區域之間有時候界限並不是很清晰。本質上可行駛區域就是道路,但是對於雙車道來說另一側車道就是背景了,所以對於可行駛區域分割來說需要算法具有較強的上下文語義感知能力。
基於上述分析,視語團隊提出了一種多任務耦合神經網絡的解決方案。具體來說,針對速度方面的要求,從三方面進行優化:第一是多任務學習,一個網絡同時處理檢測和分割兩個任務,使它們儘可能多地共享耦合特徵計算;第二是設計輕量級的多尺度耦合網絡,降低網絡本身的計算量,並進一步裁剪預測頭;第三是代碼優化,包括batch輸入、GPU解碼、CPU解碼+流水處理等。考慮到解碼部分耗時較高,團隊將圖片解碼放到GPU上進行實現,以充分利用GPU的並發性來加速解碼;同時形成前處理(CPU)、網絡前向(GPU)以及後處理(CPU)的流水式操作,用網絡前向的時間掩蓋CPU讀圖和寫圖的時間。
為了有效提升模型的精度,團隊採用了三種有效的策略。第一是使用特徵金字塔,主要是改善小目標檢測精度;第二是使用空間金字塔池化ASPP模塊,主要是增強網絡的上下文語義感知能力;第三是引入數據蒸餾,進一步優化輕量級網絡的性能。基於上述策略,團隊提出了一個面向多任務的耦合神經網絡(MCoupleNet),能夠同時處理目標檢測和可行駛區域分割兩個任務。整個網絡包含了5個模塊:基礎網絡、ASPP、特徵金字塔、檢測分支以及分割分支。基礎網絡部分是團隊自主設計的輕量級網絡Inception-56,基礎網絡和特徵金字塔之間通過ASPP模塊連接在一起,ASPP模塊由一系列採用不同膨脹係數的卷積層組合,可以同時捕捉多種上下文信息,並加入深層監督來引導整個學習過程。
特徵金字塔的設計可以參考團隊在ACCV16發表的工作以及Facebook發表於CVPR17的論文。ACCV16的論文主要用來處理監控場景下不同尺度的行人,通過自適應的上採樣模塊在不同解析度的特徵圖上處理不同尺度的行人目標,Facebook CVPR17的論文進一步引入lateral connections並且推廣到通用目標檢測上,是目前比較成熟的解決目標多尺度的算法。團隊在此基礎上加入基本的檢測分支和分割分支,從而組成一個多任務的學習框架。
輕量級耦合網絡主要包含兩個模塊:基本的下採樣模塊和簡化版的殘差Inception模塊。基本的下採樣模塊主要應用在網絡的早期,用來快速下採樣從而減少計算量,同時改善特徵表達能力。簡化版的殘差Inception模塊使用了更少的通道數,在每次下採樣的時候通過兩個1x1的維度擴充卷積、動態的增加一倍的通道數,用來補償空間解析度損失。不同於MobileNet和ShuffleNet,該輕量級網絡中所有的卷積都是常規卷積,沒有group卷積和depthwise卷積,因此能夠適用於所有的平臺,並且有助於減少MAC(memoryaccess cost),同時所有的卷積後邊緊跟著BN和ReLu,最終網絡的計算量只有143M。
除了基礎網絡之外,對新加入的特徵金字塔也需要進一步的調整。尤其是高解析度輸入下,算法的各個部分都有可能成為計算瓶頸。以720P輸入為例,特徵金字塔部分的通道數默認為256,網絡上採樣的倍率為4,對於特徵金字塔中的一個3x3的卷積層,其計算量#FLOPS=3*3*256*256*184*320=34.7G,非常大!所以特徵金字塔部分也需要進行裁剪,並且對輸入解析度和上採樣倍率之間也需要進行權衡。
最終,團隊憑藉上述原創的算法設計方案,在2018全球AI挑戰賽無人駕駛視覺感知賽道中取得了性能的遙遙領先。
2.數據是血液
眾所周知,沒有人工就沒有智能,當今深度學習算法的成功依賴於大規模精確標註的訓練數據。因此,數據的採集和標註也是算法落地的關鍵環節。為了提高算法開發的效率,大多數公司都會為算法團隊配備一個數據團隊或者通過外包公司,專職負責數據的採集、篩選、標註工具或者平臺的開發、標註、數據統計與管理等工作。
不同於學術研究中直接使用公開數據集的方式,實際應用中,經常需要針對特定任務特定場景進行大量數據採集。然後在數據標籤類別大於1萬的時候,數據標註的成本成級數級增長,而且對於某些稀缺數據,難以收集樣本。因此基於小樣本的模型訓練或者採用弱監督來利用大量未標註的樣本成為未來發展的主流,還可以藉助3D虛擬合成和GAN生成的方式來生成訓練數據。此外,為了充分高效地利用數據,跨任務的數據復用和基於算法的數據清洗也是提升算法開發效率的有效策略。最後,算法在上線使用過程中,源源不斷產生的數據也可以反過來進一步推動算法性能的提升。
視語團隊針對檢測、分割、分類等不同計算機視覺任務,利用多年來在安防、交通、零售、工業檢測等10多個行業的人臉、人體、車輛、商品、布匹等多類型海量數據積累,推出了國內第一個基於主動學習的半自動化標註平臺。以海量數據學習為基礎,集主動識別、自動評估、量化校驗、智能歸檔為一體,形成樣本自主標註、模型自主更新、數據自主分析的閉環系統。其中的虛擬生成環節,可以實現數據樣本自動旋轉、自動形變、自動渲染,目標前景背景自動分割、自動標籤映射。最終實現100%的標註準確率,有效替代95%的人力標註成本,形成數據採集+算法研發的深度結合,打造閉環系統開發流程。
3.工程是關鍵
產品和系統的最終部署上線,離不開精心的工程優化。工程化能夠在優秀的算法與成熟的應用之間架起一座橋梁,使得算法能夠充分發揮其性能優勢,使得應用能夠達到最優效果。典型的工程優化流程包含硬體的選擇、面向特定硬體平臺的網絡設計、算法底層優化、系統資源合理調度等內容,是需要在算法方案設計之初就綜合軟硬體特性、應用場景特點綜合考慮的問題。
算法的部署首先需要依託特定的硬體載體,其中不同的硬體平臺有著截然不同的特性,如何根據應用場景的特點、硬體平臺的特性、以及對應的成本/功耗等問題選擇合理的硬體平臺是算法是否能夠成功應用的基礎條件。例如Nvidia的大型GPU(如1080Ti、Titan V100等)具有大顯存、高計算力等優勢的同時也會伴隨著高功耗、大空間、高成本等劣勢,其通常部署在雲端,以雲服務的形式提供線上服務支撐,在滿足我們日常的網絡模型訓練任務的同時,可以在後臺承擔高並發、高複雜度等對算力要求較高的任務,如面向監控市場的視頻結構化任務,通常需要並發處理幾十路甚至上百路的實時視頻流,或者需要20倍速以上處理本地視頻文件,這就需要GPU強大算力的支撐。而對於面向移動端(手機、智能前端分析設備、智能攝像頭)的應用,則需要更多的考慮受限的算力以及對功耗的控制,因此更傾向於選擇低功耗的諸如Arm、FPGA、DSP或者面向神經網絡加速的ASIC晶片進行對於場景的適配,如海思的Hi3559A晶片,在集成了神經網絡加速引擎NNIE的同時,還具備豐富的外圍接口支持(視頻編解碼、ISP等),是作為智能前端設備主晶片良好選擇。而諸如MediaTek3288/3399等Arm晶片雖然算力一般,但卻具有低功耗、低成本的優勢,在諸如人臉抓拍等特定領域也有著不小的優勢。因此,擁有明確、清晰的應用場景定位和需求分析,選擇合理的硬體平臺,是算法產品化、實用化的首要條件。
在確定的硬體平臺上,如何充分發揮受限的計算資源又會反推算法設計時進行相應的考慮和適配。如面向CPU(x86、ARM)平臺時,通常需要更多的採用Depthwise,或者Shuffle Layer等對CPU運算友好的結構進行網絡結構設計,而面向FPGA平臺時,需要考慮網絡結構的可稀疏化、同時網絡設計的同時應當考慮低bit量化後的精度保持問題,同時在網絡結構的設計中更多的考慮採用可以進行特定數學方法優化實現的(winograd)特殊卷積層,如大小為3*3的卷積核等。而面向特定的硬體計算平臺(如Hi3559A)時,模型對量化、常見層的選擇則會有更加差異化的要求。
在網絡結構確定、算法框架確定的基礎上,還需要在算法實現上充分考慮不同硬體平臺特性進行特定優化。如Nvidia GPU平臺下可以優先考慮TensorRT推理引擎,另外應當儘量選擇CUDA編程對算法進行實現,減少CPU-GPU數據交互以提高GPU利用率,調整合適的batch size大小以充分調用GPU計算資源等。而面向CPU平臺下的實現通常應當更多的考慮SIMD指令集的優勢,如在Intel x86架構下應當充分利用SSE、AVX指令集對算法進行深度優化,或者考慮採用OpenVino計算庫對算法進行移植,而面向ARM架構,NEON指令集加速、線程池、內存池技術的應用通常有著巨大的收益。
除此之外,算法的外圍開發工作也應當以「算法算力資源優先」的原則進行設計,如在GPU平臺下,可以充分利用CPU的閒置資源進行視頻編解碼操作、設計多級流水結構以降低系統整體耗時等操作也有著很好的實踐效果。而針對ARM平臺下常見的大小核架構,如何充分調度多核協同工作,設計大核卷積、小核管理等策略也同樣十分重要。
無人駕駛視覺感知賽題追求模型的輕量與快速。視語團隊在比賽過程中,針對GPU平臺在設計了輕量級的神經耦合網絡結構、提出了端對端多任務學習框架的同時,就採用了包括算子GPU移植、多作業模塊流水化處理、CPU-GPU並發處理等大量的工程優化策略來對算法的實現過程進行改進,使得算法最終在原始算法版本上有超過200%的效率提升,算法在GPU上的部署,正是通過視語團隊經過多年積累,所打造的跨平臺神經網絡高性能推理引擎MNIE進行的。
該平臺緊跟邊緣計算的發展趨勢,在網絡設計、模型部署時能夠自適應的適配不同硬體平臺,追求計算的高性能和低功耗之間的動態平衡。目前MNIE推理引擎支持神經網絡模型在GPU、Arm、x86-CPU、FPGA、ASIC專用晶片上的優化部署,以充分發揮對應平臺的特性,同時能夠很方便的接入一些具有神經網絡加速功能的特定設備,如Hi3559a、movidus等。同時該推理引擎在外圍提供一套完整的工程化算法部署策略,在諸如視頻編解碼、片上晶片資源調度方面具有良好的優化。採用該引擎部署的人臉檢測算法,能夠在諸如樹莓派等低端ARM設備上實現720P的實時人臉檢測。
視語科技的參賽隊員均來自於中科院自動化所模式識別國家重點實驗室。中科院自動化所在人工智慧領域排名全球第七,國內第一,而模式識別國家重點實驗室是國內人工智慧領域的國家級實驗室。團隊具有20餘年的核心技術積累,並在公安、交通、娛樂、零售和工業等各個垂直領域進行了廣泛的技術驗證和應用,已經具有上百家上市公司、政府和行業客戶,包括傑創、聯想、京東、華為、影譜、京東方等多家上市公司,擁有堅實的數據、理論、算法和用戶基礎。團隊與科學院創立了中科視語科技有限公司,針對智慧交通、智能商業和智能製造三大領域探索算法和場景的深度整合,通過全平臺神經網絡計算引擎和視覺智能計算作業系統提供面向場景的全行業解決方案和一體化軟硬體產品服務。目前已經推出了交通產品包括車紋識別一體機、重型貨車監控系統、視覺交通信息調查設備;智慧紡織產品包括:智能視覺驗布機、智能理管機等。通過軟硬一體化設備的銷售和持續的智能系統平臺服務,整合上下遊資源,積累用戶資源,逐步布局產業,深入挖掘細分行業場景,佔領大眾市場,打造有價值、有溫度的人工智慧。