新聞中心

EEPW首頁 > 智能計算 > 進階指南 > OpenVINO 101:從圖像識別到視頻識別(上)

OpenVINO 101:從圖像識別到視頻識別(上)

作者: 時間:2021-09-26 來源:電子產(chǎn)品世界 收藏

  筆者:梁羽

本文引用地址:http://www.butianyuan.cn/article/202109/428499.htm

  計算機視覺(CV)是人工智能研究的熱點方向之一,其核心在于如何讓機器“看見”和“理解”——通過算法從照片、視頻等媒介中提取高層次信息并加以利用。

  隨著全球計算能力和數(shù)據(jù)量的雙增長,計算機視覺取得了長足的進展,在自動駕駛、智能安防、體育運動(如記錄分析運動員跑姿就使用了AI助力的人體姿勢估計)等領域遍地開花。

1.gif

運動生物力學專家分析蘇炳添訓練時的跑姿

1632622451963382.jpg

英特爾3DAT技術1(三維運動員跟蹤),基于框架開發(fā)

  一般來說,常見的計算機視覺任務基于靜止的單幀圖像進行,主要采用機器學習深度學習兩類方法。

  在GPU算力足以支持復雜神經(jīng)網(wǎng)絡之前,機器學習方法一度是計算機視覺領域的金標準,作為代表的有用于圖像分類的支持向量機(SVM)、用于特征提取的Bag-of-Features模型(SIFT、MSER等)、用于人臉識別的Viola-Jones算法等。這些經(jīng)典算法大多在開源計算機視覺庫OpenCV中有實現(xiàn),可以參考網(wǎng)上的入門資料(比如這篇【OpenCV+Python計算機視覺導學】2)進行學習,在此不再展開。

  而后,以2015年為界,神經(jīng)網(wǎng)絡在ImageNet圖片分類比賽中超越人類水平3,拉開了深度學習在計算機視覺領域大量應用的序幕。基于深度學習的圖片識別以卷積神經(jīng)網(wǎng)絡(CNN)進行特征提取、多層感知機(MLP)進行分類,并在其上衍生出了注意力機制、FPN、Transformer、NAS等新架構(gòu)和研究方法,在計算機視覺任務的準確度、運行速度和泛用性上都有很大提升。

3.gif

使用深度學習進行對象檢測/對象跟蹤

  設備算力的增長也帶來了另一個好處,計算機視覺學者們得以將目標從圖片轉(zhuǎn)向視頻,讓算法端到端地捕捉視頻每一幀之間的關系。通過單幀圖像,算法能知道某一瞬間的情況(場景里有哪些物體、戶外是晴天還是雨天),而基于視頻的識別能夠挖掘出更多信息,例如讓計算機理解一段時間內(nèi)發(fā)生的事件:

  圖片識別:“場景里有兩個運動員。”

  :“場景里的兩個運動員正在打羽毛球?!?/em>

  在開始介紹視頻相關的算法前,我們將先從開始,對基于深度學習的計算機視覺有些概念上的認識。

主流算法

4.png

典型的圖像分類網(wǎng)絡(VGG-16)

  眾多算法中,圖片分類任務最基礎也最重要:通過為圖片分類任務訓練神經(jīng)網(wǎng)絡,可以得到在其他任務也能使用的主干網(wǎng)絡(base network/backbone network)。主干網(wǎng)絡負責從圖像中抽取出高層的抽象特征,基于這些抽象特征可實現(xiàn)分類、檢測、分割等任務。如上圖架構(gòu)中輸出224*224*64的卷積層到輸出14*14*512的卷積層就是一種主干網(wǎng)絡(VGG-16)。

  對神經(jīng)網(wǎng)絡算法進行選型,一般考慮兩組指標:準確率,以及網(wǎng)絡的參數(shù)量(params)浮點運算次數(shù)(FLOPs)。準確率是量化算法本身效果的指標,而浮點運算次數(shù)和參數(shù)量可以被用來衡量模型的復雜度,前者描述了神經(jīng)網(wǎng)絡需要的計算能力,后者描述了運行神經(jīng)網(wǎng)絡需要的內(nèi)存大小(也表明了部署模型需要的硬盤空間/網(wǎng)絡帶寬)。

  在終端設備部署神經(jīng)網(wǎng)絡時,不同類型的設備(桌面GPU/桌面CPU/Movidus等專用VPU/樹莓派等ARM架構(gòu)設備)對復雜度有不同的要求。對于嵌入式設備部署,如一些人臉識別和智慧安防類應用,就應選擇盡可能輕量的模型來達到實時處理的目標。其他情況下,就需要因地制宜地在模型準確度和復雜度中取得平衡,挑選最適合自己應用的算法模型。

  實際使用中,我們都希望使用運算量盡可能小、而準確度盡可能高的神經(jīng)網(wǎng)絡。為了實現(xiàn)這堪稱刁難的需求,深度學習學家們使用了網(wǎng)絡架構(gòu)搜索(NAS)技術來自動化地進行神經(jīng)網(wǎng)絡的設計。

圖片分類

1632622619127022.png

常用的主干網(wǎng)絡模型

(左圖為ImageNet Top-1準確率,右圖為模型準確率/浮點運算數(shù)對比)

  具體到圖像識別分類任務所使用的主干網(wǎng)絡來看,作為結(jié)果之一,Google提出了EfficientNet?,一個對網(wǎng)絡準確度和模型復雜度進行聯(lián)合優(yōu)化的神經(jīng)網(wǎng)絡家族。

1632622635580369.png

EfficientNet的模型參數(shù)量-準確率對比

  當然,網(wǎng)絡設計只是第一步,真正要用起來還有訓練、優(yōu)化部署等步驟。一般來說,神經(jīng)網(wǎng)絡網(wǎng)絡的訓練是最為繁瑣的,其中涉及到遠遠大于部署階段的計算能力、大型數(shù)據(jù)集和超參數(shù)調(diào)優(yōu),因此對于通用目的的神經(jīng)網(wǎng)絡,采用公開的預訓練模型是最常見的做法。

  對于框架來說,預訓練模型和神經(jīng)網(wǎng)絡的優(yōu)化器都已經(jīng)集成在框架中一起提供,前文提到的EfficientNet和其他主干網(wǎng)絡的都可以從GitHub上的官方模型庫下載得到。

對象檢測

1632622658825902.png

  目標檢測模型基于主干網(wǎng)絡提取的特征來進行識別,而根據(jù)識別和分類物體的內(nèi)部實現(xiàn)來說,主流對象檢測網(wǎng)絡可以分成Anchor-based的兩階段檢測器和單階段檢測器,以及Anchor-Free的目標檢測器。

Faster-RCNN(Anchor-based二階段檢測器代表)

1632622676319287.png

Faster-RCNN模型架構(gòu)圖

  兩階段檢測器由候選區(qū)域網(wǎng)絡(RPN)分類器構(gòu)成。候選區(qū)域網(wǎng)絡基于主干網(wǎng)絡生成的特征,在圖片中劃分出潛在的感興趣區(qū)域(RoI),并將這些其余和先前得到的特征一并送進分類器,得到每個候選框的具體分類。

  Faster-RCNN以模型的復雜度作為代價,換來了相對較高的識別準確度。其處理一張圖片需要約200ms(5FPS),離實時處理還是有一些距離。

SSD/YOLO(Anchor-based一階段檢測器代表)

1632622696974699.png

YOLO v3模型架構(gòu)圖

  以YOLO v3為例,輸入的圖片會先被劃分為數(shù)個單元格,每個單元格上會預測出一些識別框和對應的分類。在訓練時,YOLO v3會根據(jù)訓練集中檢測框的大小和位置做預先學習,尋找出最常見的檢測框位置,并根據(jù)這些線索來劃分單元格。

  與Faster-RCNN等二階段檢測器不同,YOLO和SSD會同時進行候選框和目標分類的預測,從而節(jié)省了性能開銷。一般較小的YOLO模型都可以在30ms內(nèi)處理完成一張圖片,達到實時速度。

Anchor-free檢測器

1632622714678643.png

DETR模型架構(gòu)圖

  無論是Anchor-based還是Anchor-free方法,目標檢測器想要解決的核心問題都是如何預測檢測框和類別。這一類的檢測器代表有CenterNet等基于點的方法、FCOS等利用FPN進行多尺度預測的模型,以及上圖DETR等基于Transformer的模型。

  因為網(wǎng)絡結(jié)構(gòu)簡單,Anchor-free對于工業(yè)應用會更加友好,而且其網(wǎng)絡架構(gòu)上和實例分割等任務更接近,有實現(xiàn)多功能的潛力。

小結(jié)

  在這篇文章中,筆者簡單介紹了圖像識別,以及用深度學習進行計算機視覺任務的相關內(nèi)容。圖像識別的相關示例可以參考這篇【開發(fā)實戰(zhàn)課程】中的錄播教程進行學習,注冊eepw賬號后即可獲取~

  下篇中,我們會關注視頻理解的相關算法,以及逐步教學如何使用OpenVINO進行,一定要關注哦!

參考資料

[1]騰訊網(wǎng),2021/3/17報道,《擺脫傳統(tǒng)監(jiān)測手段,英特爾3DAT成體育訓練數(shù)據(jù)分析“神器”》,https://new.qq.com/rain/a/20210317A03E6J00

[2]EEPW論壇,作者zhuzhaokun1987,【原創(chuàng)】【AI人工智能系列】OpenCV+Python計算機視覺導學——目錄匯總(點擊目錄可跳轉(zhuǎn)對應章節(jié),長期更新),http://forum.eepw.com.cn/thread/337725/1

[3]微軟亞洲研究院(MSRA)在2015年發(fā)表的工作,作者何愷明等,Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification,https://arxiv.org/pdf/1502.01852.pdf

[4]Google于2019年發(fā)表在ICML上的工作,作者Mingxing Tan等,EfficientNet:Rethinking Model Scaling for Convolutional Neural Networks,https://arxiv.org/pdf/1905.11946v5.pdf



評論


相關推薦

技術專區(qū)

關閉