全国人工智能大赛 行人重识别(Person ReID)赛项 季军团队方案分享
全國人工智能大賽-行人重識別(Person ReID)賽項-季軍團隊由5名博士生組成,該次比賽初賽和復賽階段的代碼后續將整理開源,敬請期待!
團隊名稱:DMT
團隊成員:
羅浩、何淑婷、?古有志、?王珊珊、?張宇琪
賽題任務
給定一張含有某個行人的查詢圖片,行人重識別算法需要在行人圖像庫中查找并返回特定數量的含有該行人的圖片。評測方法:50%首位準確率(Rank-1 Accuracy)+50% mAP(mean Average Precision)
和鯨科技賽事主頁:
https://www.kesci.com/home/competition/5d90401cd8fc4f002da8e7be
方案分享
初賽
在初賽階段,我們團隊以之前發表在TMM和CVPRW2019的ReID strong baseline作為baseline(已開源,補充信息1),針對初賽數據集進行了適應和改進。
這篇ReID strong baseline主要在之前的baseline上,創新地提出了BNNeck的結構,解決了ID loss和triplet loss不會同步收斂的問題,并配合一些常見的訓練技巧,使得模型的分數在Market1501可以達到94.5%的Rank1和85.9%的mAP。
在ReID strong baseline基礎上,針對初賽的數據集,進行針對性的改進,如下:
1、數據預處理:適應比賽數據集
光照增廣、隨機擦除、隨機Crop、隨機翻轉等
處理長尾數據、增大Image Size
2、ID Loss:增強generalization
Cross Entropy → Arcface
3、模型替換:增強capacity
ResNet50 → ResNet101-IBN-a, ResNet101-IBN-b
4、優化器:更快的收斂
Adam → Ranger
5、重排序:提高準確度
K-reciprocal Re-ranking & Query Expansion
Test set augmentation
復賽
問題描述
復賽階段,我們著重解決以下3個問題問題:
1、第一個問題,也是此次比賽的核心:Unsupervised Domain Adaptation (UDA),即訓練集和測試集分布不一致。
2、大規模:訓練集85K圖像,測試集166K圖像。由于需要引入測試集進行無監督訓練,所以后處理需要大量計算資源。
3、可復現:復賽賽題中,對于復現有時間和空間復雜度要求:48h,1GPU,90G內存,需要考慮如何充分利用時間和計算力。
基于數據集的情況,我們統計了三通道像素值的均值和方差,將數據分成了3個部分(ABC域),其中測試集中的C域在訓練中從未出現,因為是一個UDA的問題。
UDA問題,有兩大類的方法解決,一類是GAN-Based對應的是source domain,另一類是Clustering-Based對應的是target domain。GAN-Based缺點是訓練穩定性較差,質量難以保證,Clustering-Based缺點是通常需要迭代式聚類整個Target Domain。考慮到Clustering-Based方法在性能上更加魯棒,且GAN模塊訓練需要消耗時間,它所帶來的漲點是否值得也需要考慮,所以我們聚類這種思路。學術界定義的UDA問題中測試集只有target domain,而比賽的測試集既有source domain也有target domain,并沒有一個很好的方法可以直接應用在現有的數據集上。
JT-PC框架
為了UDA的問題,我們設計了漸進式無監督聚類聯合訓練算法(Joint Training and Progressive Clustering ,JT-PC),主要結構如下:
1、使用全部訓練數據訓練模型1,模型1使用Resnet101-ibn-a,在訓練集上直接訓練。
2、對圖像進行均值和方差統計,將訓練集分為A域和B域,將測試集分為A域和C域。利用模型1對測試集C域進行無監督聚類構造偽標簽。
3、訓練模型2,模型2使用Resnet101-ibn-b,訓練集包括兩部分,一部分為去除單張圖像的無長尾訓練集,一部分為步驟2中標注的C域偽標簽測試集。
4、使用模型2對測試集C域再次構造偽標簽。
5、訓練模型3,模型3采用SeResnet-ibn-a,訓練集包括兩部分,一部分為無長尾訓練集,一部分為步驟4中挑選的偽標簽測試集。
6、對三個模型進行測試,并使用reranking重排,然后ensemble三個模型的結果。
其中構造偽標簽的部分步驟為:
1、以Query為中心,根據距離閾值進行聚類得到偽標簽。
2、針對被打上多個偽標簽的Outlier,取距離最小的中心為偽標簽。
確定模型之后,我們對其需要消耗的資源和性能進行評估。我們只使用Backbone的Global Feature,最終將訓練+推理耗時壓縮在了42.5h。可以看到我們的JT-PC框架使得模型在測試集的分數越來越高,并且這種方式非常適合業界的產品版本迭代,隨著訓練數據量的增多不斷對模型進行無監督更新。
工程優化
由于復賽對于程序運行時間和內存都有要求,目前開源的Re-ranking代碼的資源消耗無法滿足比賽要求,我們對Re-ranking的代碼進行了無精度損失的工程優化。為了適合不同的使用場合,我們分為快速版和低耗版,快速版速度提升將近20倍,低耗版內存消耗減小接近7倍。最終Re-ranking算法將分數提升1.9%,16.6W測試集耗時為30分鐘,內存消耗控制在30G。
復賽總結
復賽部分總結為以下幾點:
1、使用了一個性能與速度均不錯的基準模型,相關論文已經被頂級期刊TMM和CVPRW會議接受。
2、使用JT-PC無監督聚類的方式對測試集進行偽標簽標注,并依據標簽置信度將少量測試樣本加入到訓練集來訓練模型,以增強模型的cross domain能力。
3、優化reranking代碼,最終實現速度提升16倍,內存使用減少3倍以上
決賽
我們分析了決賽使用的數據集,總結出了主要的四個難點:光線變化、跨模態互搜、屬性標簽的使用和姿態變化。因為比賽保密協議,所以細節無法透露更多,以下示例均挑自公開的學術數據集。
針對上面四個問題,我們設計了模塊化的解決方案,并將每個模塊融合成為我們最終使用的模型框架,由于決賽保密協議的要求,決賽方案不能進行詳細介紹:
跨模態(Cross-Modality)
CDP,Cross-Spectrum Dual-Subspace Pairing?
Motivation:打亂顏色通道,讓模型更加關注輪廓信息,比起只用灰圖更加多樣性
Inference:只對灰圖的Query進行排序,彩圖由正常訓練的ReID網絡進行排序
Performance:對于灰圖Query(占比約1/6),性能提升約8%(提升~1%)
Visualization:模型對于顏色信息不太敏感
屬性標簽
Two-Stage Attribute-Refined Network (TAN)
姿態變化(半身圖)
(比賽禁止使用姿態點、語義分割模型)
Dynamically Matching Local Information (DMLI)?
決賽總結
決賽部分總結為以下幾點:
1、針對主要難點,以我們開源的Baseline為基礎,設計模塊化的解決方案
2、針對特定數據和光線問題,進行了數據清洗與數據增強
3、針對跨模態問題,提出了CDP方法
4、針對屬性標簽,設計了TAN方法
5、針對姿態變化,使用了我們的DMLI方法(參考資料4)
6、相比于Baseline,性能提升明顯
不同于其他隊伍使用PCB、MGN等局部特征方案,DMT隊伍整個比賽過程大多只使用了backbone的global feature,backbone的模型壓縮在業界已經比較成熟,所以非常適合產品的部署。該次比賽初賽和復賽階段的代碼后續將整理開源,敬請期待!
補充信息:
一個更加強力的ReID Baseline
Github:
https://github.com/michuanhaohao/reid-strong-baseline
知乎專欄:
https://zhuanlan.zhihu.com/p/61831669
隊長羅浩個人主頁:
http://luohao.site/
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的全国人工智能大赛 行人重识别(Person ReID)赛项 季军团队方案分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 报道 | AI 2000 人工智能全球最
- 下一篇: 干货:TensorFlow1.2~2.1