摘要:地標識別,基於深度學習及大規模圖像訓練,支持上千種物體識別及場景識別,普遍應用於拍照識圖、幼教科普、圖片分類等場景。本文將爲你們帶來6種關於地標識的算法整理和總結。
本文分享自華爲雲社區《地標識別算法》,原文做者:阿杜 。算法
地標識別,基於深度學習及大規模圖像訓練,支持上千種物體識別及場景識別,普遍應用於拍照識圖、幼教科普、圖片分類等場景。本文將爲你們帶來6種關於地標識的算法。segmentfault
算法思路:網絡
Step1:使用清洗過的GLDv2數據集訓練初始embedding模型。
Step2:使用全量GLDv2數據基於Step1獲得的模型進行遷移學習。
Step3:逐步擴大訓練圖片的尺度(512512,640640,736*736),模型性能獲得進一步提高。
Step4:增長清洗後的數據的訓練loss權重,進一步訓練模型。
Step5:模型融合。函數
Notes:性能
一、Backbone模型爲Efficientnet+global average pooling,訓練使用了cosine softmax loss。
二、爲了處理類別不均衡問題,使用了weighted cross entropy。學習
經驗總結:大數據
一、清洗後的數據有利於模型快速收斂。
二、全量大數據集有利於模型學習到更好的特徵表示。
三、增長訓練分辨率能提高模型性能。
spa
算法思路:blog
Step1:使用CGLDv2訓練基礎模型用於提取GLDv2全量圖片特徵,使用DBSCAN聚類方法更新圖像類別,進行數據清洗。
Step2:使用了Corner-Cutmix的圖像增廣方法,進行模型訓練。
Notes:
一、backbone爲ResNest200和ResNet152,GAP池化,1*1卷積降維到512維,損失函數爲cross entropy loss。排序
算法思路:
Step1:使用CNN特徵進行KNN搜索,獲取類似圖片。
Step2:插入Step1遺漏的圖片進行從新排序。
Notes:
一、Backbone模型爲ResNet-101+Generalized Mean (GeM)-pooling,訓練loss爲ArcFace loss。
二、使用全局特徵+局部特徵對GLd-v2數據集進行清洗,用於後續模型訓練。
算法思路:
一、使用GLD-v2全量數據分別訓練Resnet15二、ResNet200等模型,訓練loss爲ArcFace loss、Npairs loss,拼接各個backbone的特徵,使用PCA降到512維,做爲圖像的全局特徵。
二、使用全局特徵進行KNN搜索,對搜索結果使用SURF、Hassian-Affine 和root sift局部特徵進行再排序,而且使用了DBA和AQE。
算法思路:
Step1:使用GLD的帶bbox數據集,訓練Faster-RCNN或SSD檢測模型,用於地標框的提取。
Step2:提出了D2R-R-ASMK方法,用於檢測框內的局部特徵提取與特徵聚合。
Step3:使用聚合後特徵在database中進行搜索。
Notes:
一、D2R-R-ASMK基於DELF局部特徵抽取和ASMK特徵聚合方法實現。
二、每張圖片提取4.05個region的時候效果最好,search的內存佔用會有相應增長。
算法思路:
Step1:統一在同一個網絡中提取全局和局部特徵
Step2:使用全局特徵搜索top100的類似圖片
Step3:使用局部特徵對搜索結果進行重排序
Notes:
一、全局特徵使用GeM池化和ArcFace loss。
二、局部特徵匹配使用Ransac方法。