前端人臉識別芯片選型指南_風聞
半导体行业观察-半导体行业观察官方账号-专注观察全球半导体最新资讯、技术前沿、发展趋势。2020-08-17 11:38
來源:內容來自半導體行業觀察(ID:icbank)的原創文章,作者:BillG,謝謝。
之前跟⼤家交流端側AI芯⽚的過去與現狀,後續想跟各位⼩夥伴陸續聊⼀些我所做過的AI應⽤在芯⽚選型過程的總結考量。當今的AI領域,如果説商業變現之最,我覺得當之⽆愧是⼈臉識別應⽤。從早期基於服務器的公安/⾦融應⽤,到現在隨處可⻅的前端⼈臉識別攝像頭、⻔禁考勤機、⻘蛙/蜻蜓的刷臉⽀付,這種從雲到端的變化很⼤程度上歸功於前端芯⽚AI計算能⼒的⼤幅提升,17年時我們提到AI算⼒還以”G“為量級,今天擁有"TOPS"算⼒的前端SOC已經 ⽐⽐皆是。那麼對於⼈臉識別的前端應⽤,我們該如何選擇合適的芯⽚開發產品呢?
從“準快穩”到“穩準快”
既然今天討論的是⼈臉識別在前端的應⽤,那麼我們先簡要介紹⼀下⼈臉識別及應⽤是什麼?我⼈臉識別的本質是基於⼈臉信息,通過深度學習技術⼿段,對⼈員身份進⾏⼀種“鑑權”。這 種鑑權的結果,當我們加上“時間”和“空間”維度的數據標籤後,就可以讓⼈臉識別形成上層 應⽤。⽐如當對⼈臉識別結果增加“時間”標籤後,這就是訪客系統的雛形;當我們增加“時 間”+“空間”標籤後,這就是考勤系統的雛形;當鑑權+時間+空間都滿⾜,同時增加了⼿機賬 户信息後,這就是⽀付系統的雛形。⼀切的基礎來⾃於適應不同標準的鑑權結果。
由於⼈臉識別是典型的技術驅動催⽣的產品應⽤,從15年到17年產品的主要關注點依次還是準確率>速度>系統穩定性,在早期最容易證明技術準確性的就是在Imagenet“刷榜”,我們⼏乎可以看到今天的獨⻆獸在那個時間段都上過榜。到了17年後,⼤家開始推出前端硬件產品,開始在速度上⽐拼,這⾥的原因有⼆,第⼀是學術界精度研究的觸頂,第⼆是專⽤的AI芯⽚開始普及。從18年到⾄今,由於市場開始爆發,出現規模效應,系統穩定性的價值開始被 ⼤家⼴泛關注,所以我們衡量好的⼈臉識別產品也從“準快穩”到了“穩準快”。
前端⼈臉識別產品由推理算法及算法應⽤、嵌⼊式(影像系統、連接系統、顯示系統等等)、 端雲結合應⽤三⼤核⼼組件構成,當然每個硬件產品都需要具備的PCBA、模具、線纜基礎部 分也需要具備。下⾯的⽂章會逐步給⼤家介紹這三⼤核⼼組件以及它們與SOC芯⽚的關係。
理解AI計算
⼈臉識別應⽤離不開深度學習算法的突破,深度學習算法⼜離不開卷積神經⽹絡的發展,我們 將⼈臉識別產品落地的過程,其實就是將卷積運算運⾏在各類前端處理器的過程。那麼在這個 過程中有哪些值得我們注意的地⽅呢?
⾼精度輕量化模型——上⾯的⽂章我們講過,⼈臉識別算法已經度過了通過⼤型⽹絡提⾼精度 的時代,像mobilenet這種輕量化的分類模型,已經在精度上達到了VGG-16⽔平(71%),新的v3版本甚⾄還做到了超越。在精度接近的情況,這種輕量化模型⽆疑能速度上佔據優勢, 同時這類⾼精度輕量化模型的發展,也⼤⼤降低了AI處理器的算⼒準⼊⻔檻。
卷積運算硬件化——深度學習算法⽹絡⼀般有池化、卷積、BN、激活函數、全連接等操作, 但是其中90%以上的運算都集中在卷積過程,卷積操作本質是卷積核矩陣與輸⼊數據矩陣的 乘加。我們在早期沒有專⽤硬件時,使⽤ARM CPU來完成這種乘加操作,接着⼜嘗試了多核 DSP,後來選擇了以硬件乘加器MACs組成的CNN加速器。⽽專⽤CNN加速器在前端勝利的原 因當然是最優卷積運算效率和最優的能效,本質上贏在⼀個“專”字上。
深度卷積的提出——mobilenet這種輕量化模型的發明,本質的創新在於對深度卷積 (depthwise)的引⼊,深度卷積相⽐於普通卷積⼤幅降低了乘加計算量,同時也減少了模型的參數量。這對於芯⽚CNN部分影響就⾮常⼤了,試想當乘加器的運算耗時⼤幅減少,CNN 部分的計算瓶頸就來到了數據交換速率,也就是數據帶寬。由於這⼀創新是17年才提出,在近兩年才被逐步認可其精度的等效性,⽽⽬前⼀代的CNN加速器芯⽚也都是這兩年的才陸續上市,他們的規劃時間⼤多也是在1718年,因此如果單就CNN加速器的發展⽽⾔,應該在下⼀ 代AI芯⽚會對深度卷積有較好的⽀持。
卷積之外的計算——雖然深度學習算法中90%都是卷積運算,但如果我們想對整個算法過程 的時間優化,就必須關注圖像的前處理以及後處理進⾏關注,因為10%短板可能耽誤90%的時間。現階段的前端AI芯⽚普遍都關注的到了圖像的前處理,基本都有硬件resize模塊,但是 對於後處理還沒有過多關注。從我們今天説的⼈臉識別來看,⼈臉算法的核⼼過程檢測、跟蹤、特徵提取,通過CNN加速器我們可以快速完成,最耗時的特徵提取部分也都能在30ms以 內完成,當我們30ms提取⼀個特徵時,CNN部分已經不是整個應⽤的最耗時部分,⽽在於萬⼈乃⾄10萬⼈特徵⽐對過程,假如⽐對過程⽤270ms,那麼整個CNN部分也只是整體的1/10⽽已。其實特徵⽐對過程的計算過程並不複雜,只是計算多維向量的距離,並且特徵向量的數 組⼤多為浮點型,相信未來會有芯⽚提供這類⼩巧⾼效的浮點運算單元,⽤於提升卷積之外的 算法運算。
產品是⼀套完整系統
這⼏年在⼈臉識別產品應⽤中,⼤家開始改⼝談“落地”談“解決⽅案”,巨⼤的變現壓⼒開始逼迫AI公司從技術思維向產品思維轉型,那麼什麼樣的芯⽚才是適合做產品的芯⽚呢?
AI之外的產品需求——前端⼈臉識別硬件,除了所有⼈都盯着的算法算⼒之外,還有許多容易 被忽視的系統需求。以具體的⼈臉識別平板舉例,算法滿⾜要求時,影像系統需要滿⾜攝像頭 接⼊(⼀般為雙攝),顯示系統需要滿⾜單塊LCD觸摸屏接⼊(⽀付平板可能會是雙屏),連接系統需要滿⾜WIFI/BT和選配4G,外圍的接⼝預留485/232/繼電器IO/USB/以太⽹,外設 喇叭/讀卡器/掃碼器也要考慮。技術和產品的最⼤的差別就是產品是⼀套完整的系統,系統的 組件也許很⼩,但是少⼀個也都⽆法做出產品。當選擇⼀顆SOC開發⼈臉識別產品時,其系 統完整性的價值是不可忽視的,例如當我們需要雙屏應⽤時也許⼀個SOC只有顯示接⼝,或 者需要⽤轉接芯⽚轉接,⼜⽐如我們需要多個USB外設接⼊時,需要使⽤HUB芯⽚擴展,雖然 我們滿⾜了需求,但是產品的複雜度也隨着提升。
問題場景是關鍵——我的上⼀篇⽂章有提到,其實⽬前⼤多數算法⼈員主要的時間精⼒並不是 的開發算法,⽽是處理⼤量的問題場景(cornercase),這也是從做技術到做產品的⼀種表現,圖像識別產品的落地需要⼤量的問題場景積累,這⾥舉兩個例⼦來説明問題場景與SOC 關係。第⼀個是⼈臉識別攝像機的圖像效果問題,要“識別準”就要“拍的清”,但是“拍的 清”這件事在算法領域⼜是很模糊的概念(⼈眼覺得好的HDR效果算法未必認可),⽬前的主要⽅案是採集問題場景數據對模型進⾏更新,這種⽅案效率不⾼,於是真正的產品公司開始建 ⽴⾃⼰的影像團隊,提升問題場景的圖像效果,這就需要SOC有出⾊的ISP性能和好⽤的ISP 調試⼯具。第⼆個例⼦是⼈臉識別⻔鎖的功耗問題,就算法可⽤性來説⼈臉⻔鎖場景早已滿⾜ (庫容⼩算⼒需求低),但是功耗問題⼀直在尋找突破,如何在6~8節電池的供電下讓⼈臉鎖⼯作半年呢?720P級的圖像傳感器⼀般功耗在150mw⽔平,再加上紅外補光燈,功耗⽔平遠 遠⾼於指紋,於是sensor⼚商開始推出超低待機功耗的sensor,SOC⼚商也開始的內置riscv 或ARM的MCU,既然使⽤功耗不容易解決,那麼就從解決待機功耗。這兩個產品例⼦都是⼈ 臉識別產品,但他們的核⼼問題都不是算法,當選擇對應SOC時,如果能有效解決關鍵問題 場景,那麼我們的產品研發進程將事半功倍。
尊重行業應用
這兩年的AI⾏業,做技術平台的已經逐步聚合,做垂直⾏業解決⽅案的開始崛起,⼀談到⾏業解決⽅案,可以發現⼀個有趣的現象“只賣AI硬件的基本沒賺到錢,做細分⾏業的反⽽多點開花”,那麼為什麼會這樣,同時這⼜跟底層芯⽚有什麼關聯呢?我們從端雲結合產品和快速響應⾏業需求來談。
⼈臉識別硬件是⼀個典型的端雲結合產品,設備端是⼀個前端應⽤的載體,雲端是設備管理/ 數據互通的載體,雲+端組合在⼀起才是能落地到具體⾏業的產品。這也就是為什麼“只賣硬 件賺不到錢”的原因,產品是需要完整性的,只提供了⼀半如何讓客户買單呢。今天我們選擇 SOC時⼀般只看到了某些單芯⽚⽅案的硬件成本優勢,卻忽略⼈臉識別硬件的雲服務屬性,各⾏各業的雲服務需要具體對接到前端的AI硬件,如果硬件⼚商來做這件事,⼤量的垂直⾏業 需求會讓技術⽀持⼈員崩潰,於是Android可移植的的價值就被突顯了出來。⽬前市⾯的 Android AI芯⽚價格還⾼於只⽀持Linux的芯⽚,雖然前端使⽤Linux降低了硬件成本,但是⼤ 量的下游客户對Linux沒有開發能⼒(他們更習慣把⾃家的服務封裝成⼀個APP集成在前端硬 件中),於是⼤量的對接⼯作也到了硬件⼚商這⾥,讓硬件⼚商焦頭爛額。當⼈臉識別產品是 很具體明確的場景時,我們使⽤有Linux成本最優的AI芯⽚沒有問題,當產品需要⼤量雲端對 接時,⽀持Android的AI芯⽚因為其便於⼆次開發的特性,應該被⼤家重視。
上⾯説明了⼈臉識別產品的雲和端對SOC的影響,下⾯就來談談具體⾏業需求對SOC選型的影響。在現在追求產品落地的市場環境下,快速響應具體⾏業客户的需求是⼀個關鍵,選好⼀ 顆SOC就快速響應客户需求的基礎。這⾥也舉兩個例⼦説明,第⼀個⼈臉識別⼴告機,曾經 聽到⼀個做技術的朋友吐槽,客户需求希望在⼈臉平板上播放⼀段⼴告,幸好他們選擇的芯⽚ 有視頻解碼能⼒,他花了⼤⼒⽓做了簡易播放器滿⾜了這個需求,過了段時間客户⼜希望播放 界⾯增加⼀些動畫效果,因為他們的SOC沒有GPU,做動畫渲染讓他抓狂。第⼆個例⼦樓宇 ⻔禁機,我們知道樓宇⻔禁機除了通⾏之外,還有⼀個重要的功能就是樓宇視頻對講,⽽相應 樓宇對講需求的關鍵就在於SOC要⽀持硬件視頻編碼。記得⽹上有個經典的段⼦,“某安產品 經理因程序員不能完成隨⼿機殼顏⾊變化的⼿機桌⾯主題需求⽽⼤打出⼿”,其實技術與產品的界限並⾮那麼明顯,同樣在⼈臉識別應⽤中,快速響應客户需求是常態,⽽在底層芯⽚選型時多考慮技術關鍵點有助於更好地滿⾜客户需求。
看不到的成本
做任何硬件產品都⽆法忽視成本問題,⼈臉識別硬件也不例外,經過了不計成本的技術驅動時期,⼤家已經對⼈臉識別硬件成本有了很深的認識。原先技術在過渡時期,芯⽚⼚商推出的協 處理器+主控⽅案已經基本被淘汰,⽽近兩年推出最多的就是集成NPU的SOC芯⽚,⽀持Linux 系統,單芯⽚具備編碼\顯示等功能模塊。對於成熟的硬件產品公司,⼀款硬件產品的“顯 性”成本是很好計算的,各類電⼦器件BOM、PCB洗板費⽤、PCBA貼⽚費⽤、模具ID設計/開模費⽤、⽣產組裝費⽤,基本在我們選擇⼀款芯⽚後,知道了主芯⽚價格,就可以⼤致估算單個硬件的成本。那麼我們就跳開這些“顯性”成本,單獨看看選擇⼀款芯⽚⽅案後“看不到的成 本”。
少就是多——記得剛接觸AI這個⾏業時,算法公司開始⾃⼰研發硬件產品,當時的很多公司還 是“年少輕狂”,2年時間換了3~4個芯⽚平台,有的還並⾏進⾏,結果2年過後產品沒賣出多 少,研發⼈員倒是換了⼏波,甚⾄第⼀款芯⽚的代碼可能早已⽆法維護了。芯⽚本身是⼀個⽣ 命週期較⻓的產品,近兩年新⽼公司⼜在AI芯⽚⾏業持續發⼒,讓⼀眾硬件⼚商都挑花了眼, 有更好的就跟進⼀個。我們從開始的需求分析講過,⼈臉識別硬件是有其複雜度的,算法/嵌 ⼊式/雲服務緊密結合,⽽嵌⼊式部分⼜是⼀⻔時間積累性技術的,會與芯⽚本身強綁定,好 ⽐蓋樓地基打好如果再換就要拆掉重建。因此某些芯⽚的局部優勢並不適合頻繁更換平台,相 反隨着時間的積累,既有平台的局部劣勢會進步,記得曾經在芯⽚公司時遇到過⼀個印象深刻 的客户,他們公司⼈數不少但是5年只⽤⼀顆芯⽚做產品,對這顆芯⽚的技術專業度甚⾄超過 了我們的FAE。最核⼼的所有的產品型號從⼀個平台發展⽽來,研發⼈員效率⼤幅提⾼,這就 是典型的“看不到的成本”。
⻔當户對——在AI芯⽚市場早期,我們經歷過⼀段“外來的和尚好唸經”的時代,⽐較典型的 Movidius這類芯⽚,不可否認這類芯⽚在前期教育市場的價值,但是今時今⽇還有不少算法公 司芯⽚選型只盯着xilinx、TI、安霸、⾼通、NXP這類芯⽚公司,開發的應⽤也只是⼈臉識別, 選擇這類芯⽚的“利”在於這類芯⽚品牌影響⼒和芯⽚⽔平都經過了市場的認可,屬於典型 的“⼤户⼈家”。這時就需要反觀⾃⼰的市場位置,如果能夠獲得這些公司較好的技術⽀持,產 品定位⼜能消化對應的芯⽚成本,那麼沒有問題,反之可以多看看國內芯⽚(這兩年中國產前 端AI芯⽚規格上正在超過國外)。我們在開發⼀款的芯⽚時,最容易忽視的成本就是原⼚技術 ⽀持情況,⽐如⼀個芯⽚問題是今天解還是明天解,是能解決還是沒⼈處理,這都直接關乎項⽬的成敗,⽽⼀旦技術⽀持不⾜,造成的機會成本損失是巨⼤的。
選合作伙伴而非某個芯片
從芯⽚選型⻆度聊完了⼈臉識別應⽤技術和產品⽅⾯的信息,最後想從商業⻆度的聊聊芯⽚⼚ 商和產品公司的關係。我想先從⼀個⼩故事説起:
“記得當時我們推出⼀款很有競爭⼒的芯⽚,⽽競爭對⼿A這⼀年都沒有新產品上市,於是我 們就想突破競爭對⼿A的⼤客户,剛好也順利⻅到了⼤客户的⽼板B,當時聊的很開心,對方也承認了我們的產品優勢,會議結束B私下跟我説,你們的這顆芯片很好,但是我們可能還⽤ 不了,因為你們已經有了⾃⼰的⼤客户,⽽且A公司我瞭解,⼀個公司總會有⾼潮和低估,他 們這⼀代不⾏,但下⼀代⼀定會趕上。”
⼀段話説明了⼀個道理:從⼈臉識別這個產品類⽬來看,也許很多公司的芯⽚都會滿⾜,並且能夠最終做出產品,不過就公司⻆度來講,誰⼜能説在漫⻓的經營週期中⼈臉識別就是最後⼀ 個產品呢?當我們經過深思熟慮選擇⼀個芯⽚時,其實也是選擇了⼀個合作伙伴,從產品⽬標的實現講,我們需要⼀款滿⾜需求的芯⽚,從公司的經營⻆度來講,我們需要⼀個能夠持續輸 出有競爭⼒芯⽚的夥伴。