天天看點

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

作者:極市平台

作者丨凝升

編輯丨極市平台

一、介紹

作為一位計算機視覺方向的在讀專業型碩士,一直在尋找各種機會累積技術,提升自己。徘徊檢測該賽題作為技術應用類賽題之一被選入PRCV2022計算機視覺算法應用技術挑戰賽,本人獨自組隊參與了該比賽,在本導師的指導下,非常幸運能夠獲得本次比賽的冠軍,且将解決方案進行了封裝與推送以及OpenVINO計算架構的移植。

二、賽題分析

任務描述

本賽題的任務是對視訊流中的人員進行跟蹤,記錄ROI區域人員的位置資訊,識别出其超過時間門檻值的徘徊行為,給出報警信号。

如圖檔中ID為1的人員,其在ROI中滞留時間超過了給定的時間門檻值,需要對其進行報警處理。

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

圖一. 徘徊逾時行為預警

賽題難點

  • 本賽題的不僅評估模型的精确程度,更注重其實際場景下的報警準确度,是以既要優化模型對目标的追蹤效果,又要優化報警邏輯以包容模型應用缺陷;
  • 标注資料類型單一,雖然是人員追蹤的任務,但隻給了人員目标檢測的标注資料,不同圖檔中不同人員的比對資訊并沒有給出标注,是以模型方案的選擇和後續優化是存在瓶頸的;
  • 性能分占比不小,對模型推理速度要求較高,賽題的評分計算規則如下:
徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

資料情況

訓練資料:1萬張左右,标注格式為目标檢測,标注類型為VOC,标簽類型為bounding box;

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

圖二. 資料示例

平台給定的訓練用硬體配置為CPU4核,Mem12G,Tesla T4*1。

三、賽題思路

1.模型選擇、資料處理方式、訓練技巧等模型訓練測試過程中的整體流程方法。

任務分析

本賽題可以歸結為多目标追蹤(MOT, Multiple Object Tracking)問題,由于隻提供了目标檢測的訓練資料,是以隻能采用MOT方法中的先檢測後跟蹤的處理架構,是以該問題應該分為兩個部分,分解為:人員目标檢測 + 多目标追蹤

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

圖三. 先檢測後跟蹤架構

該檢測架構,需要先定位需要跟蹤的目标,然後比對不同幀之間相同的目标對象。

模型選擇

拿到賽題後,首先進行baseline的建構,最先標明的方案是Yolov5s和DeepSort的組合版本。

Yolov5在工程化方面對應用部署的支援很靈活,非常适合對性能和精度都有要求的場景。其提供多個不同體積的預訓練模型,可根據實際需要進行選擇。

追蹤算法DeepSort基于Sort改進而來,主要子產品有:

  • 目标檢測子產品:通過目标檢測網絡,擷取輸入每一幀圖檔中的目标框
  • 軌迹跟蹤子產品:通過卡爾曼濾波進行軌迹預測和更新,擷取新的軌迹集合
  • 資料比對子產品:通過級聯比對和IOU比對将軌迹和目标框關聯

DeepSort主要流程:檢測器擷取視訊目前幀中目标框 → 卡爾曼濾波根據目前幀的軌迹集合預測下一幀軌迹集合 → 預測軌迹與下一幀檢測目标框進行→ 卡爾曼濾波更新比對成功的軌迹

最初的成績情況是:

  • 資料處理:所有資料既作為訓練集也作為驗證集
  • 目标檢測:Yolov5,采用網絡體積最小的yolov5s權重
  • MOT算法:DeepSort,使用ImageNet 預訓練的ReID權重
  • 線上送出成績:
    • MOTA: 0.7588
    • 性能分: 11.54
    • 成績分: 0.68
  • 總結:此時未采用任何針對化改進措施,榜單排名幾近墊底。

在看到成績後,認真梳理了幾個改進的方向,首先是從資料集上入手進行分析,在統計訓練資料情況時,有發現資料難點情況可歸納如下:

  • 場景畫面和人員目标角度多樣化;
  • 畫面存在高曝光和低亮度的情況;
  • 存在嚴重的遮擋,且有多目标聚集遮擋;
  • 目标尺寸跨度較大,單目标單圖檔面積占比有5%~50%;
  • 存在多個分辨率尺寸的資料:
徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

在資料處理階段,有經曆過以下節點情況:

  • 嘗試劃分一個更加合理驗證集,使得驗證集分布接近測試集,引導模型往推理場景靠近。
  • 低分辨率和小目标常常阻礙目标檢測精度的提升,針對以上兩個問題結合資料集的曝光過暗等特點進行針對性的解決。
  • 訓練輪次增大導緻成績降低說明模型過拟合,同時,驗證集與測試集分布存在差異。
  • 訓練輪次增大,成績較為穩定,說明目前權重可能無法學習到更多的特征以提高精度。

最終的資料處理情況,可以總結如下:

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

在對資料處理手段嘗試過後,根據任務本身難點對模型方案進行了針對性的更新與優化,期間換過許多不同版本的MOT模型,最後標明的是上限空間巨大的Yolov5+ByteTrack方案。

ByteTrack算法是一種利用低分檢測框和跟蹤軌迹之間相似性的追蹤算法,從低分檢測結果中去除背景,挖掘出正确的物體。標明該方案的理由為:

  • 該算法對低分檢測框充分利用,可以彌補檢測模型的不足。
  • 分析樣例資料的特點發現,存在人員重疊與遮擋非常嚴重的情況。
  • 該算法是純運動模型,并沒有使用ReID特征來計算外觀相似度,适合對速度有要求的場景。

之後便是模型精度與速度的trade-off和細節優化以及調參工作,包括優化器的選擇以及資料增強中參數的標明等等。為了盡可能地利用低分檢測框,對于NMS的篩選邏輯進行優化,使得有更多的低分檢測框能夠被MOT模型利用。

算法邏輯優化

針對追蹤任務本身,歸納出兩個模型應用缺陷:

  • 在需要報警時間段的開頭、中間、結尾都可能發生目标漏檢
  • 随時都可能發生ID-Switch的問題
徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

對于這兩個問題,進行針對性的優化,

  • 目标漏檢:起止幀計算時長,出現徘徊後降低徘徊門檻值再篩選。
  • ID-Switch:以IOU比對ROI中心區突然消失和突然出現的目标。同時,圈定了一個中心ROI區域,對中心ROI區域的目标資訊進行了重點關注,以解決漏檢和ID切換的問題。
徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

中心區,突然出現的目标ID隊列和突然消失的ID隊列實際上會出現重合的情況,突然消失的除了漏檢還可能是ID-Switch中消失的目标,而突然出現的除了之前漏檢的還可能是ID-Switch中突然出現的目标。

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

速度優化

從模型加速和隔幀檢測兩方面縮短推理時間

徘徊檢測賽題冠軍方案|PRCV2022計算機視覺算法應用技術挑戰賽

最終成績為榜單榜首,獲得該比賽的冠軍,并将技術方案進行了封裝推送。

四、總結

本次競賽經驗可以總結為以下幾點:

  • 從資料集特征分析入手,合理選擇資料增強和設計Baseline
  • 分子產品應用工程技巧對模型方案進行疊代提升和優化
  • 合理權衡模型精度和推理速度之間的關系
  • 設計具有模型算法缺陷包容度的應用邏輯,并合理設定超參數

五、參考文獻

  1. https://github.com/ultralytics/yolov5
  2. ByteTrack: Multi-Object Tracking by Associating Every Detection Box
  3. https://github.com/NVIDIA/trt-samples-for-hackathon-cn/blob/master/cookbook/01-SimpleDemo/TensorRT8
  4. https://github.com/ExtremeMart/ev_sdk_demo4.0_pedestrian_intrusion
  5. Learning Efficient Convolutional Networks through Network Slimming

繼續閱讀