目標檢測比賽入門


目標檢測入門

比賽規則分析

評測指標

  • mAP, pascal voc, 和 coco,mmdetection有兩者格式的eval,詳細的也可以參考https://github.com/rafaelpadilla/Object-Detection-Metrics
  • acc+mAP
  • F1-score

這里要注意,mAP時,提交的confidence thresh是一般來說是越低越好,盡管在視覺上會顯得雜亂無章。

模型限制

  • maxDets的限制,即每張圖的最多檢測量
  • 模型體積,模型保存fp16的模式

運行時間限制

  • 硬性規定
  • 得分加權,即評測指標排名與運行時間排名的綜合
  • 時間分數占比

數據分析

主要分析數據集中類別,有無長尾分布,bbox的分布,包括面積,長寬,長寬比等,這里可以考慮使用https://github.com/joydeepmedhi/Anchor-Boxes-with-KMeans
在統計bbox的分布時,要主要設定圖像的大小,比如說最小邊縮放至800等,這里的尺寸就應該是圖像輸入到模型的尺寸,僅做一次可能找不到合適的縮放尺寸,可以考慮多做幾次。
在anchor的設計中,應該考慮模型anchor的感受野,訓練尺度和bbox分布的一個權衡。
還有考慮數據domain的分布,例如數據集中同時存在有無雨霧的場景。

圖像大小分布

  • 超大圖像(醫療,遙感),需要合理的crop
  • 數據集內圖像大小差異比較大,需要合理的padding和crop,這里要注意,數據集內超大圖像中的bbox也是不是超大的,如果也是,就可以直接縮放到一定尺度,不需要其他操作
  • 結合自身設備設定尺度上限

bboxes大小和長寬比例分布

  • bboxes影響anchor scale的設計
  • bboxes 長寬比例影響anchor ratio的設計,
  • 類內和類間大小的分布,影響整體算法的設計,例如多尺度以及專家模型
    選定輸入尺寸之后,將bboxes長寬畫在出來,Anchor-Boxes-with-KMeans中有。然后決定anchor scale, anchor ratio,最后根據模型感受野選擇backbone的選取。
    如果anchor ratios分布很不集中,可以考慮使用deform conv。

bboxes類別分布不均衡,長尾分布

  • 對很少的類進行上采樣,或對很多的類進行下采樣
  • 訓練動態加權采樣,對每幅圖片的采樣設置一個權重,detectron2中的RepeatFactorTrainingSampler
  • 對稀少數據訓練專家模型

感受野 vs anchor & 訓練尺度

  1. 首先根據機器顯存大小和backbone大小選擇合理的訓練尺度
  2. 基於resize后的bboxes大小進行分析,包括bboxes的大小、長寬比和面積,類別等
  3. 設置anchor scale和ratio盡量解決目標分布,以加快收斂
  4. 模型感受野要盡量大於bboxes的長邊:
    • 縮小訓練圖像尺度
    • 增加訓練尺度,選擇更深的backbone
    • 最后的卷積層選用空洞卷積
    • 引入DCN模塊
  5. 當一個新聯尺度后者一個模型難以協調時:
    • 多尺度訓練
    • 專家模型

數據的特殊數性質

  • 津南數字制造,X光,摳圖+貼圖
  • 虛擬仿真環境下自動駕駛交通標志識別,使用粗檢測+精檢測應對目標數量及其稀少的檢測任務,使用hrnet作為backbone應對iou要求及其高的檢測。
  • 布匹瑕疵:存在ratio極端的情況,存在貫穿全圖的情況。可以使用通道拼接,做差輸入等

數據分析總結

  • 模型感受野 vs anchor vs gt分布
  • 數據增強方式
  • 針對數據特殊性質的特殊處理
  • 驗證集划分(通過驗證集對每一類進行指標分析)
  • 訓練采樣的方式
    • 在線加權采樣,按照類別數量比例/類別豐富程度等進行加權
    • OHEM
  • 正常數據的使用
    • 拼接, 摳圖+粘貼
    • 對於背景數據與含有目標數據有對應關系的:做差/通道拼接

目標檢測算法選擇

整體算法

推薦使用two-stage

  • backbone
    • ResNet
    • ResNext
    • SENet
    • EfficientNet
    • HRNet
    • DCN
  • FPN
    • FPN
    • PANET
    • NAS-fpn
    • Bifpb
  • Head
    • cascade
    • double head
  • post-prcessing
    • nms
    • soft-nms
    • 基於最大score的后驗二分類,(減少假陽誤檢),假設一個圖片中所有檢測都不超過th,認為都是誤檢,可用於瑕疵檢測
    • 基於類間關系的后處理,有些類別不會共存
    • 基於目標大小以位置先驗的分布,比如目標ratio,和位置等

模型預訓練

好的預訓練是成功的一般。

  • ImageNet, coco, openimage object356
  • 目標檢測推薦使用coco。
  • 使用DCN時盡量使用預訓練模型

多模型集成

  • 直接nms
  • score加權集成
  • bboxes voting
  • 專家單類替代

調參技巧

  • 一定要明白每個參數的含義
  • 在一個小的backbone上調試與backbone無關的參數
  • 在實驗時,盡量控制變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM