多尺度目标检测【动手学深度学习】

这篇具有很好参考价值的文章主要介绍了多尺度目标检测【动手学深度学习】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在上篇博客《锚框【目标检测】》中,我们以输入图像的每个像素为中心,生成多个锚框。基本而言,这些锚框代表了图像不同区域的样本。然而如果以每个像素都生成的锚框,最后可能会得到太多需要计算的锚框。想象一个561×728的输入图像,如果以每个像素为中心生成五个形状不同的锚框,就需要在图像上标记和预测超过200万个锚框(561×728×5)。

多尺度锚框

        减少图像上的锚框数量并不困难,比如可以在输入图像中均匀采样一小部分像素,并以它们为中心生成锚框。直观地说,比起较大的目标,较小的目标在图像上出现的可能性更多样。例如1×1、1×2和2×2的目标可以分别以4、2和1种可能的方式出现在2×2的图像上。因此当使用较小的锚框检测较小的物体时,我们可以采样更多的区域,而对于较大的物体,我们可以采样较少的区域。

        我们将卷积图层的二维数组输出称为特征图。通过定义特征图的形状,我们可以确定任何图像上均匀采样锚框的中心。

        display_anchor函数定义如下,我们在特征图(fmap)上生成锚框(anchors),每个单位像素作为锚框的中心。然后将特征图中的锚框后向映射至输入图像。文章来源地址https://www.toymoban.com/news/detail-642275.html

import torch as t
import matplotlib.pyplot as plt

img = plt.imread('catdog.jpg')
h,w = img.shape[:2]

def display_anchors(fmap_w, fmap_h, s):
    # 前两个维度的值不影响输出
    fmap = t.zeros((1,10,fmap_h, fmap_w), dtype=t.float32)
    an

到了这里,关于多尺度目标检测【动手学深度学习】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包