本文分享自华为云社区《地标识别算法》,原文作者:阿杜 。

地标识别,基于深度学习及大规模图像训练,支持上千种物体识别及场景识别,广泛应用于拍照识图、幼教科普、图片分类等场景。本文将为大家带来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方法。

点击关注,第一时间了解华为云新鲜技术~

6种常见的地标识别算法整理和总结相关推荐

  1. 【机器学习】几种常见的无监督学习算法

    几种常见的无监督学习算法 1. PCA 降维是指在保留数据特征的前提下,以少量的变量表示有许多变量的数据,这有助于降低多变量数据分析的复杂度.减少数据变量的方法有两种:一种是只选择重要的变量,不使用其 ...

  2. 精准识别文字信息:通用文本识别算法整理

    通用文字识别(OCR)目前有很多火热的应用,比如身份证识别可以自动地从图片中定位和识别出身份信息.通用高精版识别,可以单字识别并返回单字坐标,表格识别可以识别文档上所有表格里面的信息内容.增值税发票识 ...

  3. 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析

    识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点, ...

  4. c++ 弧形面如何逆时针排序_这8种常见的Java排序算法,学算法必看!

    在互联网的大趋势下,数据结构和算法知识,都扮演着重要的角色. 在面试中和实际工作中也是经常遇到和使用到的. 为了让大家了解java中的算法及其代码实现,小编整理出了以下常用的 8 种: 01 直接插入 ...

  5. 异常检测:PyOD工具库(含SUOD库)【包括近30种常见的异常检测算法:ABOD、HBOS、IForest、KNN、LOF、OCSVM、PCA等】【Outlier detection (OD) 】

    pyod(Python Outlier Detection)是一个集成了30余种异常检测方法和模型的Python工具箱.从经典的 LOF (SIGMOD 2000) 到近两年的 COPOD (ICDM ...

  6. 大话数据结构22:几种常见的静态查找算法

    基础 针对顺序表进行的查找 顺序查找 插值查找 代码 #include "stdio.h" #include "stdlib.h" #include " ...

  7. 基于CRNN+CTC的改进图像文本识别算法

    上一次介绍了基于改进EAST(An Efficient and Accurate Scene Text Detector)算法的文本定位算法这次我来介绍基于卷积循环神经网络CRNN (Convolut ...

  8. 基于模板匹配的车牌识别算法,输出数字和英文字母

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 车牌识别是计算机视觉领域中的一个重要问题,其目的是从图像中自动识别出车辆的车牌信息.基于模板匹配的车牌识别算法是一种常见的方法,其基本思想 ...

  9. 基于matlab数字识别算法系统设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目 录 内容摘要------------------------------1 关键字----- ...

最新文章

  1. 医学与人工智能交叉融合,打开眼科理疗新窗
  2. Juniper批量新增用户命令工具
  3. TensorFlow的可训练变量和自动求导机制
  4. Windows下的FFmpeg 、MEncoder、MPlayer下载地址
  5. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
  6. thinkpad 使用技巧
  7. PHP—使用MYSQL来登陆用户
  8. 煤改气加剧雾霾”“石油焦是祸首”等谣言,你中招了吗?
  9. Android腾讯信鸽推送
  10. 成功粉碎北信源监控程序vrvedp_m.exe ,vrvrf_c64.exe,svchost.exe,vrvrf_c.exe
  11. 网关报错:com.netflix.zuul.exception.ZuulException: Filter threw Exception,调用服务和网关陷入死循环,重复报相同的错误
  12. echart自定义动画_echarts动画效果
  13. 【zookeeper】Apache curator优点介绍
  14. SQL优化(三) 查询条件优化
  15. 讲讲多拨的额外骚操作(多拨附加教程)
  16. 【Unity】【Wwise】在Unity中获取某个Wwise事件的持续时间
  17. 视频文件头解析--mkv
  18. 解析SQL的表间血缘关系工具
  19. 如何进入大数据领域,学习路线是什么?
  20. 优维低代码:第三方接口接入

热门文章

  1. 工具 | 终于等到你!地表最强工具来袭!
  2. jQuery (二)
  3. Bootstrap 轮番插件Collapse 调用方式
  4. Git笔记(14) 分支开发工作流
  5. c语言webbrowser加载html,向WebBrowser中添加静态HTML,执行脚本,载入HTML
  6. java channelpipeline,Netty那点事(三)Channel与Pipeline
  7. 谷歌浏览器安卓_冷知识!你知道安卓系统开始收费了吗?
  8. java raw types,java – 为Raw Types抛出不一致的ClassCastException
  9. r语言pls分析_R语言:生存分析
  10. python导入excel模块_Excel到python第一章python利用pandas和numpy模块导入数据