摘要:地標識別,基於深度學習及大規模影像訓練,支援上千種物體識別及場景識別,廣泛應用於拍照識圖、幼教科普、圖片分類等場景。本文將為大家帶來6種關於地標識的演算法整理和總結。
地標識別,基於深度學習及大規模影像訓練,支援上千種物體識別及場景識別,廣泛應用於拍照識圖、幼教科普、圖片分類等場景。本文將為大家帶來6種關於地標識的演算法。
一、《1st Place Solution to Google Landmark Retrieval 2020》
演算法思路:
Step1:使用清洗過的GLDv2資料集訓練初始embedding模型。
Step2:使用全量GLDv2資料基於Step1得到的模型進行遷移學習。
Step3:逐步擴大訓練圖片的尺度(512*512,640*640,736*736),模型效能得到進一步提升。
Step4:增加清洗後的資料的訓練loss權重,進一步訓練模型。
Step5:模型融合。
Notes:
1、Backbone模型為Efficientnet+global average pooling,訓練使用了cosine softmax loss。
2、為了處理類別不均衡問題,使用了weighted cross entropy。
經驗總結:
1、清洗後的資料有利於模型快速收斂。
2、全量大資料集有利於模型學習到更好的特徵表示。
3、增加訓練解析度能提升模型效能。
二、《3rd Place Solution to “Google Landmark Retrieval 2020》
演算法思路:
Step1:使用CGLDv2訓練基礎模型用於提取GLDv2全量圖片特徵,使用DBSCAN聚類方法更新影像類別,進行資料清洗。
Step2:使用了Corner-Cutmix的影像增廣方法,進行模型訓練。
Notes:
1、backbone為ResNest200和ResNet152,GAP池化,1*1卷積降維到512維,損失函式為cross entropy loss。
三、《Two-stage Discriminative Re-ranking for Large-scale Landmark Retrieval》
演算法思路:
Step1:使用CNN特徵進行KNN搜尋,獲取相似圖片。
Step2:插入Step1遺漏的圖片進行重新排序。
Notes:
1、Backbone模型為ResNet-101+Generalized Mean (GeM)-pooling,訓練loss為ArcFace loss。
2、使用全域性特徵+區域性特徵對GLd-v2資料集進行清洗,用於後續模型訓練。
四、《2nd Place and 2nd Place Solution to Kaggle Landmark Recognition and Retrieval Competition 2019》
演算法思路:
1、使用GLD-v2全量資料分別訓練Resnet152、ResNet200等模型,訓練loss為ArcFace loss、Npairs loss,拼接各個backbone的特徵,使用PCA降到512維,作為影像的全域性特徵。
2、使用全域性特徵進行KNN搜尋,對搜尋結果使用SURF、Hassian-Affine 和root sift區域性特徵進行再排序,並且使用了DBA和AQE。
五、《Detect-to-Retrieve: Efficient Regional Aggregation for Image Search》
演算法思路:
Step1:使用GLD的帶bbox資料集,訓練Faster-RCNN或SSD檢測模型,用於地標框的提取。
Step2:提出了D2R-R-ASMK方法,用於檢測框內的區域性特徵提取與特徵聚合。
Step3:使用聚合後特徵在database中進行搜尋。
Notes:
1、D2R-R-ASMK基於DELF區域性特徵抽取和ASMK特徵聚合方法實現。
2、每張圖片提取4.05個region的時候效果最好,search的記憶體佔用會有相應增加。
六、《Unifying Deep Local and Global Features for Image Search》
演算法思路:
Step1:統一在同一個網路中提取全域性和區域性特徵
Step2:使用全域性特徵搜尋top100的相似圖片
Step3:使用區域性特徵對搜尋結果進行重排序
Notes:
1、全域性特徵使用GeM池化和ArcFace loss。
2、區域性特徵匹配使用Ransac方法。
本文分享自華為雲社群《地標識別演算法》,原文作者:阿杜 。