作者丨寧欣
編輯丨極市平臺
高通人工智慧應用創新大賽介紹 2021高通人工智慧應用創新大賽由高通技術公司、高通創投主辦,極視角、小米、中科創達、CSDN共同協辦,TensorFlow Lite作為開源技術合作夥伴。
本屆大賽將融合終端側人工智慧(AI)和邊緣雲技術,攜手AI產業鏈合作伙伴為專注於Android應用程式開發、智慧邊緣的移動開發者及行業使用者提供展示創意和成果的平臺,推動5G時代下人工智慧技術賦能的眾多創新應用。
賽程中使用的高通神經網路處理引擎SDK將為開發者提供端到端的解決方案,使得演算法模型可以在任何搭載高通驍龍移動平臺的裝置上執行,這不僅能夠簡化、加速AI應用程式的開發,還能更好地支援創新AI應用的落地。
大賽賽題包括兩個賽道,賽道1是應用賽道,賽道2屬於創新賽道,分別是表情識別、農作物病蟲害識別、垃圾分類識別和手繪影象識別。
團隊介紹
團隊來自深圳市威富視界有限公司&中國科學院半導體研究所高速電路與神經網路實驗室,成員分別為:寧欣、石園、閆震、張倩、孫琳鈞,排名不分先後。
任務介紹 — 農作物病蟲害識別
糧食問題一直是全球重點關注議題,而防範農作物病蟲疾病是提升糧食產量的重要手段,同時也可有效避免農業經濟損失。本賽題使用手機攝像頭,拍攝農作物病蟲害圖片,透過AI手段診斷農作物病蟲害疾病類別,儘早發現危害,對症下藥,從而有效減少經濟損失。
參賽者需要根據圖片給出對應的類別情況,其類別為大蔥灰黴病(onion_gray)、大蔥軟腐病(onion_soft)、大蔥霜黴病(onion_downy)、大蔥鏽病(onion_rust)、大蔥疫病(onion_rphy)、大蔥紫斑病(onion_purple)、姜斑點病(ginger_spot)、姜根腐病(ginger_rot)等54種類別。資料集是由攝像頭採集的現場場景資料,訓練資料集包括11740張,測試資料集包括4997張。
評審標準
本賽道分為初賽階段和決賽階段。初賽階段是進行線上演算法開發,並使用高通SNPE工具轉換得出演算法得分;決賽階段是透過演示演算法應用影片和答辯PPT,評委依據規則進行評分,初賽成績和決賽成績各佔40%和60%。
初賽得分採取演算法精度、演算法效能值綜合得分的形式,具體如下:
說明:演算法精度取自演算法模型標準測試成績,演算法效能值取自模型使用SNPE轉換後的模型,在小米(含高通驍龍888晶片)手機DSP上跑出的效能值。
決賽評審規則具體如下:
威富視界&中國科學院半導體研究所團隊榮獲第一
賽題特點
1、資料分佈差異大
資料集圖片尺寸不一,相差較大。一方面,由於計算資源和演算法效能的限制,大尺寸的影象不能作為網路的輸入,而單純將原影象縮放到小圖會使得大圖丟失大量細節;另一方面,訓練資料總共有11740張,類別54類,平均每類217張影象,同一種類別包含不同植物,並且背景不一,這就給分類器造成巨大的挑戰。
2、模型量化需選擇SNPE
驍龍(SnapDragon)神經處理引擎SNPE是一個針對高通驍龍加速深層神經網路的執行時軟體。SNPE支援Caffe、Caffe2、ONNX和Tensor Flow模型,訓練的模型將轉換為可載入到SNPE執行時的DLC檔案。然後使用此DLC檔案使用其中一個Snapdragon加速計算核心執行前向推斷傳遞。
3、演算法需落地App應用
我們一方面需要對演算法精度和效能進行提升;另一方面我們要做好演算法落地App的應用,保證App的核心功能可用,邏輯流程順暢,架構合理,具備良好的可用性、易用性、穩定性、安全性、可運維性等特點。同時針對該賽題需從產品角度考慮商業價值、創新價值,使其與行業成熟方案相比有差異性、高價值創意,並具備廣闊的市場和商業前景。
主要工作
演算法研發:
1、主體框架選擇
(1)精度方面:目前基於深度學習的分類網路框架常用的有Swin Transformer與EfficientNet,兩者在精度方面處於相當水平,與其他演算法相比具有競爭性,因此我們以兩者為初定方案。比賽要求模型首先使用SNPE轉換,然後在小米(含高通驍龍888晶片)手機DSP上執行,我們演算法框架選用的是pytorch,模型轉換SNPE之前,需將其轉換為onnx格式,經實驗,Swin Transform網路中torch.roll不支援onnx轉換,因此我們選用了EfficientNet。
(2)速度方面:比賽需要考慮精度和速度,經多次實驗,在權衡兩者的情況下,我們最終選取EfficientNet-B0作為Baseline。
2、模型泛化
起初我們考慮到演算法效能,我們僅嘗試EffficientNet-B0進行模型訓練。實驗結果顯示,模型分類效果不好。經分析,我們將上述問題歸納為以下兩個方面的原因:
(1)EffficientNet-B0無論是網路寬度和網路深度相對都較小,學習能力相對較弱。同一種病症在不同植物上表現以及所處不同背景,容易對分類器造成混淆,從而產生分類錯誤。
(2)另一方面,訓練資料總共有11740張,類別54類,平均每類217張影象,同一種類別包含不同植物,並且背景不一,使得不同類別的樣本較少,模型學習共性特徵較困難,造成模型泛化能力較差。
根據上述問題,我們進行了一些嘗試:
首先,我們採用了貼上、隨機裁剪、mosaic、仿射變換、顏色空間轉換等操作對樣本進行增強,緩解過擬合問題,提高模型的泛化能力,增強模型的分類精度。
其次,從最佳化器層面來講,我們嘗試了SAM最佳化器。SAM最佳化器可使損失值和損失銳度同時最小化,並可以改善各種基準資料集(例如CIFAR-{10、100},ImageNet,微調任務)和模型的模型泛化能力,從而為多個應用程式提供了最新的效能。另外, SAM最佳化器具有固有地提供了標籤噪聲的魯棒性,與專門針對噪聲標籤學習的最新稱稱所提供的不相上下。
3、模型量化
模型量化採用高通SNPE開發工具將原始pytorch模型轉換為DLC模型,同時對轉換模型進行8位定位量化,提升模型在驍龍處理器上的執行效能。SNPE工作流程具體如下:
(1)將網路模型轉換為可由SNPE載入的DLC檔案;
(2)可選擇量化DLC檔案以在Hexagon DSP上執行;
(3)準備模型的輸入資料;
(4)使用SNPE執行時載入並執行模型。
4、實驗結果
應用落地
1、市場調研:
(1)對智慧農業的概念、政策和市場規模進行了解與研究
(2)瞭解智慧農業中下游產業鏈的關係及構成:
上游:種子、農藥、化肥、農機、飼料等 專業性強,透過高科技手段研發出產量更高、效果更優的產前原料
中游:種植、防治、採摘 大資料生產環境監測、大資料病蟲害防治、無人機植保、精細化養殖、農業操作自動化、農作物產量預測等
下游:農產品加工、流通等 農村電商、冷鏈物流為農產品開啟市場,透過大資料等先進技術處理分析可進一步瞭解購買群體,提供定向銷售服務
(3)尋找適合我們的市場突破點:
在整個智慧農業的產業鏈中,上游需要較強的專業性、下游需要較多的資金支援,這並不適合一個高科企業切入,因此我們從中游來尋找機會,作為一個擁有多年人工智慧經驗的企業,病蟲害識別無疑是一個很好的切入點,目前市場上做病蟲害識別的企業有幾十家,做的較好的有“識農”、“慧植農當家”等幾款產品,但受限於技術水平、市場推廣等因素,導致體量都不大,因此我們完全具備競爭優勢。
(4)產品的實用價值
- 農作物病蟲害診斷與治療透過病蟲害識別、農藥推薦和專家指導等功能,幫助使用者解決農作物病蟲害問題
- 農作物科學種植與銷售渠道以病蟲害識別為切入點,逐步加入從科學種植到銷售全流程管理相關功能,讓使用者在本平臺享受一條龍服務,賺取更多的利益
2、產品設計與研發
透過安卓手機應用進行演算法和產品落地。
(1)產品第一階段主要功能有:
定義自己的農作物:在首頁,使用者可以編輯屬於自己的農作物,方便使用者快速識別農作物的病蟲害。
農藥推薦、專家指導:識別出病蟲害之後,自動為使用者推薦適合的農藥產品,並提供24小時線上的一對一專家指導。
優選電商服務:透過電子商城的方式,為使用者提供農藥、種子、肥料等農耕產品。
本地天氣資訊:為使用者提供本地天氣資訊,包括溫度、溼度、風力、雨雪等。特殊天氣將會為提醒使用者做應急準備。
(2)產品介面展示
參考文獻
1.https://challenge.cvmart.net/race/4/base
2.Liu Z , Lin Y , Cao Y , et al. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[J]. 2021.
3.https://github.com/microsoft/Swin-Transformer
4.Tan M , Le Q V . EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks[J]. 2019.
5.https://github.com/qubvel/efficientnet
6.Pierre F, Ariel K, Hossein M, Behnam N; Sharpness-Aware Minimization for Efficiently Improving Generalization[2020].
7.https://blog.csdn.net/weixin_38498942/article/details/105819685