多尺度目标检测 Multiscale Object Detection
多尺度目标检测 Multiscale Object Detection
我们在输入图像的每个像素上生成多个锚框。这些定位框用于对输入图像的不同区域进行采样。但是,如果锚定框是以图像的每个像素为中心生成的,很快就会有太多的锚框供我们计算。例如,我们假设输入图像的高度和宽度分别为561和728像素。如果以每个像素为中心生成五个不同形状的锚框,则超过两百万个锚框(561×728×5)需要在图像上进行预测和标记。
减少锚箱数量并不困难。一种简单的方法是对输入图像中的一小部分像素进行均匀采样,并生成以采样像素为中心的锚框。此外,我们可以在多个尺度上生成不同数量和尺寸的锚箱。请注意,较小的对象比较大的对象更有可能定位在图像上。这里,我们将使用一个简单的示例:
具有1×1, 1×2,和2×2在具有形状的图像上可能有4、2和1可能的位置2×2。 因此,当使用较小的锚定框来检测较小的对象时,我们可以采样更多的区域;当使用较大的锚框检测较大的对象时,我们可以采样较少的区域。
为了演示如何在多个比例上生成锚框,让我们先读一个图像。它的高度和宽度561×728像素。
%matplotlib inline
from d2l import mxnet as d2l
from mxnet import image, np, npx
npx.set_np()
img = image.imread('../img/catdog.jpg')
h, w = img.shape[0:2]
h, w
(561, 728)
卷积神经网络(CNN)的二维阵列输出称为特征映射。通过定义特征映射的形状,可以确定任意图像上均匀采样的锚盒的中点。
函数display_anchors定义如下。我们将在特征地图fmap上的每个单元(像素)上生成锚定框。因为坐标轴x和y在锚定框中,锚定被特征地图fmap的宽度和高度分割,0到1之间的值可以用来表示锚定框在特征地图中的相对位置。由于锚框锚定点的中点与特征地图fmap上的所有单元重叠,因此锚定点在任何图像上的相对空间位置必须具有均匀的分布。具体来说,当特征图的宽度和高度分别设置为fmap_w和fmap_h时,该函数将对fmap_h行和fmap_w列进行统一采样,并将它们作为中点生成大小为s(我们假设列表s的长度为1)和不同纵横比(比率)的锚框。
def display_anchors(fmap_w, fmap_h, s):
d2l.set_figsize((3.5, 2.5))
# The values from the first two dimensions will not affect the output
fmap = np.zeros((1, 10, fmap_w, fmap_h))
anchors = npx.multibox_prior(fmap, sizes=s, ratios=[1, 2, 0.5])
bbox_scale = np.array((w, h, w, h))
d2l.show_bboxes(d2l.plt.imshow(img.asnumpy()).axes,
anchors[0] * bbox_scale)
我们首先将重点放在小物体的探测上。为了便于在显示时进行区分,此处具有不同中点的锚定框不重叠。我们假设锚框的大小为0.15,特征映射的高度和宽度为4。我们可以看到图片上4行4列的锚框中点分布均匀。
display_anchors(fmap_w=4, fmap_h=4, s=[0.15])

把特征地图的高度和宽度减少一半,并使用一个更大的定位框来检测更大的物体。当“大小”设置为0.4时,某些锚框的区域之间将发生重叠。
display_anchors(fmap_w=2, fmap_h=2, s=[0.4])

最后,我们将把特征图的高度和宽度减少一半,并将锚框大小增加到0.8。现在锚框的中点就是图像的中心。
display_anchors(fmap_w=1, fmap_h=1, s=[0.8])

由于我们已经在多个尺度上生成了不同大小的锚盒,因此我们将使用它们来检测不同尺度下不同大小的对象。现在我们将介绍一种基于卷积神经网络(CNNs)的方法。
在一定的范围内,假设我们产生高×宽具有不同中点的锚定框集基于ci,带形状的特征地图高×宽,每组锚箱数量为a。
例如,对于第一个比例的实验,我们基于10个(通道数)特征映射生成16组具有不同中点的锚盒,形状为4×4个,每套含3个锚箱。
根据地面真实边界框的分类和位置,为每个锚框标记一个类别和偏移量。在当前尺度下,目标检测模型需要预测目标的类别和偏移量高×宽,基于输入图像具有不同中点的定位框集。
我们假设ci特征图是CNN基于输入图像的中间输出。因为每个特征地图都有高×宽不同的空间位置,相同的位置会有ci单位。根据感受野的定义,ci同一空间位置的特征图单元在输入图像上具有相同的感受野。因此,它们表示输入图像在同一感受野中的信息。
因此,我们可以改变ci,在同一空间位置的要素映射单位生成一个定位框。不难看出,本质上,我们利用输入图像在某个接收野的信息来预测输入图像上靠近场的锚盒的种类和偏移量。
当不同层次的特征映射在输入图像上有不同大小的接收野时,它们被用来检测不同大小的目标。例如,我们可以在一个更大的图像接收层设计一个更大的图像接收层。
Summary
- We can generate anchor boxes with different numbers and sizes on multiple scales to detect objects of different sizes on multiple scales.
- The shape of the feature map can be used to determine the midpoint of the anchor boxes that uniformly sample any image.
- We use the information for the input image from a certain receptive field to predict the category and offset of the anchor boxes close to that field on the image.
多尺度目标检测 Multiscale Object Detection的更多相关文章
- 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)
Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...
- 基于深度学习的目标检测(object detection)—— rcnn、fast-rcnn、faster-rcnn
模型和方法: 在深度学习求解目标检测问题之前的主流 detection 方法是,DPM(Deformable parts models), 度量与评价: mAP:mean Average Precis ...
- 目标检测 - Tensorflow Object Detection API
一. 找到最好的工具 "工欲善其事,必先利其器",如果你想找一个深度学习框架来解决深度学习问题,TensorFlow 就是你的不二之选,究其原因,也不必过多解释,看过其优雅的代码架 ...
- 吴恩达《深度学习》第四门课(3)目标检测(Object detection)
3.1目标定位 (1)案例1:在构建自动驾驶时,需要定位出照片中的行人.汽车.摩托车和背景,即四个类别.可以设置这样的输出,首先第一个元素pc=1表示有要定位的物体,那么用另外四个输出元素表示定位框的 ...
- Tensorflow物体检测(Object Detection)API的使用
Tensorflow在更新1.2版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(看这里),大大降低了吾等调包侠的开发难度,无论是fine-tuning还是该网络结构都方便了不少.这里 ...
- 目标检测(一)RCNN--Rich feature hierarchies for accurate object detection and semantic segmentation(v5)
作者:Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik 该论文提出了一种简单且可扩展的检测算法,在VOC2012数据集上取得的mAP比当 ...
- 关于目标检测 Object detection
NO1.目标检测 (分类+定位) 目标检测(Object Detection)是图像分类的延伸,除了分类任务,还要给定多个检测目标的坐标位置. NO2.目标检测的发展 R-CNN是最早基于C ...
- [C4W3] Convolutional Neural Networks - Object detection
第三周 目标检测(Object detection) 目标定位(Object localization) 大家好,欢迎回来,这一周我们学习的主要内容是对象检测,它是计算机视觉领域中一个新兴的应用方向, ...
- 深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
随机推荐
- 路由协议之OSPF
目录 OSPF协议 OSPF的七种状态 OSPF的11种LSA Stub和Nssa OSPF中的防环机制 OSPF中的路由汇总和路由过滤 OSPF中的虚拟链路 虚拟链路有两种存在的意义 OSPF中的认 ...
- C#-CMD
private static string InvokeCmd(string cmdArgs) { string Tstr = ""; Process p = new Proces ...
- Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限
Linux-鸟菜-6-文件与目录的 默认权限.隐藏权.特殊权限 除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentO ...
- 解决GET http://localhost:8080/js/layui/layui.js net::ERR_ABORTED 404
用ssm+layui在写页面的时候,发现无法找到资源路径 <script src="js/layui/layui.js" charset="utf-8"& ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定
如果说Actor是dapr有状态服务的内部体现的话,那绑定应该是dapr对serverless这部分的体现了.我们可以通过绑定极大的扩展应用的能力,甚至未来会成为serverless的基础.最开始接触 ...
- Educational Codeforces Round 92 (Rated for Div. 2)
A.LCM Problem 题意:最小公倍数LCM(x,y),处于[l,r]之间,并且x,y也处于[l,r]之间,给出l,r找出x,y; 思路:里面最小的最小公倍数就是基于l左端点的,而那个最小公倍数 ...
- CRM帮助B2B企业持续改善战略决策「下篇」
尽管数据早已深入人心,但依然有相当比率的B2B企业在管理和战略决策时依赖直觉而不是客户数据.不停变化的B2B市场表明了以客户为中心的趋向和格局,CRM客户管理系统能够协助您更好的使用客户数据并最大限度 ...
- Spring Cloud Alibaba Nacos Config 实战
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...
- Azure DevOps(一)利用Azure DevOps Pipeline 构建应用程序镜像到AWS ECR
一,引言 最近项目上让开始学习AWS,作为一名合格的开发人员,当然也是学会利用Azure DevOps Pipeline 将应用程序部署到 AWS ECS(完全托管的容器编排服务).我们要学会将应用程 ...
- [bug] Nginx:src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
参考 https://blog.csdn.net/yu_pan_love_cat/article/details/103035513 https://www.cnblogs.com/hxlinux/p ...