千家信息网

如何进行目标检测中Anchor的本质分析

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,如何进行目标检测中Anchor的本质分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导读下面以人脸识别为例解释了目标检
千家信息网最后更新 2025年02月08日如何进行目标检测中Anchor的本质分析

如何进行目标检测中Anchor的本质分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

导读

下面以人脸识别为例解释了目标检测中Anchor的本质,也就是多尺度的滑动窗口。通过与传统的detection的做法进行比较凸显Anchor的优点,文末还附有Retina-Face的代码链接以及相关论文。

在object detection的一些非常有名的model上面,有一个最开始非常难以理解的概念----Anchor。这个Anchor在Faster RCNN上面也叫reference boxes,也就是参考框。参考框的意思肯定是会带来先验的知识。首先考虑目标检测的任务,输入图片,输出的是包含目标类别的矩形框(Bounding Boxes)具体可以看下图:

那么一个比较核心的问题,就是这个框的形状和大小,对应的就是在各种anchor-based的文章里面提的非常多的ratio和scale。ratio很简单,就是长宽之比(1:1,1:2, 2:1....),scale可以理解为边长。那为什么会有Anchor这种东西?其起到的作用是什么?其实Anchor的本质就是多尺度的滑动窗口(sliding window in multi-scale)。好像现在还没有人这样去理解他,下面具体来分析。

首先看下传统的detection是怎么做的,比如haar、hog特征的人脸、行人、车辆检测。这些方法是在CNN-based之前的主流方法,只不过后来被CNN打败。其具体的流程如下:

1.生成图像金字塔,因为待检测的物体的scale是变化的

2.用滑动窗口在图片金字塔上面滚动生成很多候选区域(如下面动图所示)

3.各种特征提取(hog)和分类器(svm)来对上面产生的候选区域中的图片信息来分类(比如:是否为人脸)

4.NMS非极大值抑制得到最后的结果

那么CNN以其强大的特征提取能力,自然而然的可以替代步骤3。但是由于步骤1和2的存在是独立于CNN之外,而且需要大量的循环遍历,速度受到了限制。而且要想好的定位精度,必须有比较多的scale和ratio不同的滑窗,这样又增加了时间。那么在深度学习中,我们总是在讲end2end,那么怎么把1/2步骤融合进去?其实在窗口滑动的时候,本质是一个遍历像素的过程,那么我们可以直接为每个像素分配几个不同scale和ratio的窗口矩形,这些矩形的中心都是其所属的像素点。至于scale和ratio的选取,可以根据一些先验知识或者像YOLO-v2一样通过k-means聚类得到。然后每个像素分配几个不同scale和ratio的窗口矩形就是Anchor。其实本质就是把基于像素遍历的一个过程直接分配到每个像素来做,然后CNN是可以直接做基于像素的一个Dense Map的预测的。下面可视化一下Anchor(这里只可视化了200个):

可以看出200个anchor已经基本上覆盖了整个图片了,一般的网络模型的anchor都是在几万个左右,比如Retina-Face的anchor在25000左右。那么我们回到步骤3. 现在就是要用CNN来给这么多个Anchor来分类了,比如是否为人脸。

那么怎么判断这些anchor的分类就比较简单了,就是看这些anchor与给定的矩形框的iou是否满足条件,比如iou>0.5认为是Postive,<0.2认为是Negtive。iou的计算也很简单,如下:

那么我们实际看一张人脸图片中,Postive anchor的可视化情况:

可以看出这些绿色的anchor都是基本上大部分包含了人脸的,是Postive的样本。可以看出这样cnn现在对于分类的基本上没有问题,但是在定位上面会有较大的误差。所以后续还有基于anchor的bbox的坐标的预测,其实本质也是增加CNN的输出的depth,来预测4个值(x, y, w, h)的offset。这个可以详细看下YOLO系列或者Faster RCNN。那么现在anchor的机制本质上,就是一堆变scale和ratio的滑动窗口,只不过通过CNN的Dense Map Prediction的方式整个嵌入到一个end2end的框架里面了。

其实最重要的核心还是弄懂CNN网络的输入与输出的shape

输入是图片、输出的是一个表示各个anchor的classification和localization的预测值

针对人脸检测来看,比如假设有N个anchor,那么输出的shape应该是N*(2 + 4),其中2表示分类的预测,是否为人脸,4表示(x,y,w,h)相对于anchor的offset的预测。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

就是 本质 像素 检测 图片 分类 人脸 矩形 输出 目标 步骤 不同 是在 特征 知识 分配 可视化 输入 分析 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器添加映射没有卷 不动产登记数据库标准百度 云服务器需要联网么 梦幻大唐官府服务器啥时候开的区 梦辰服务器秘境怎么通过 网络安全的主要组成部分 高新区正规网络技术排名靠前 网络技术基础 胡远萍 网络安全域是由在同一系统中 提升数据库安全 佳为收银服务器设置 剑灵革命自架服务器 数据库事物属性有哪几种 自动化控制设备控制软件开发 为他人提供网络技术实施传销 哪个大学网络安全专业最好 数据库自动变化 数据库可以有两个字段作为索引吗 软件开发公司的离职证明 舟山大道云行分布式存储数据库 ip网络技术介绍 数据库大作业毕业报告书 软件开发评估表怎么填写 广州电脑软件开发费用 不可运维性的数据库 网络技术精选 奉化一站式软件开发企业 大数据分布式分析型数据库 朝阳区品牌软件开发技术指导 重庆管理软件开发公司排名
0