当前位置: 首页 > news >正文

三河市网站建设西安建设集团网站

三河市网站建设,西安建设集团网站,石家庄精准推广,郑州比较好的外贸公司之——对边缘框的简化 目录 之——对边缘框的简化 杂谈 正文 1.锚框操作 2.IoU交并比 3.锚框标号 4.非极大值抑制 5.实现 拓展 杂谈 边缘框这样一个指定roi区域的操作对卷积神经网络实际上是很不友好的#xff0c;这可能会对网络感受野提出一些特定的要求#xff0…之——对边缘框的简化 目录 之——对边缘框的简化 杂谈 正文 1.锚框操作 2.IoU交并比 3.锚框标号 4.非极大值抑制 5.实现 拓展 杂谈 边缘框这样一个指定roi区域的操作对卷积神经网络实际上是很不友好的这可能会对网络感受野提出一些特定的要求所以诞生了锚框的技术 锚框Anchor Box也被称为先验框Prior Box是目标检测领域中一种用于提高模型准确性的技术。目标检测任务涉及识别图像中的对象并定位它们的位置。锚框在这方面发挥了关键作用。 在目标检测任务中模型通常需要为图像中的每个位置预测对象的存在以及其边界框bounding box。锚框的作用是为模型提供一组预定义的框这些框具有不同的大小和宽高比。模型通过这些锚框进行预测然后根据实际目标的位置和形状进行调整。 以下是锚框的一些关键概念和作用 多尺度和宽高比 锚框通常涵盖了多个尺度和宽高比以适应不同大小和形状的目标。这使得模型能够更好地适应各种对象的特征。 预测框的基准 锚框充当了模型预测目标框的基准。模型会输出一个较为粗糙的框然后通过与相应的锚框进行比较进而调整和修正最终的边界框。 位置敏感性 锚框使模型能够在图像的不同区域检测目标而不仅仅是在固定位置。这提高了模型对目标位置变化的适应能力。 减少计算量 锚框可以减少模型需要预测的边界框数量从而减少计算复杂度。相较于在图像的每个位置都预测一个框使用锚框可以更有效地处理目标检测任务。         锚框技术广泛应用于基于深度学习的目标检测方法如Faster R-CNN、SSDSingle Shot Multibox Detector和YOLOYou Only Look Once等。这些方法通过锚框提高了模型在复杂场景中检测目标的能力使其更具鲁棒性和泛化性。 锚框使得神经网络可以从不同尺度去关注图片以确定最好的物体roi。  正文 1.锚框操作 很多目标检测算法都是基于锚框的 目标检测算法通常会在输入图像中采样大量的区域然后判断这些区域中是否包含我们感兴趣的目标并调整区域边界从而更准确地预测目标的真实边界框ground-truth bounding box。 不同的模型使用的区域采样方法可能不同。 这里我们介绍其中的一种方法以每个像素为中心生成多个缩放比和宽高比aspect ratio不同的边界框。 这些边界框被称为锚框anchor box。 可以理解为当图片进来的时候需要有一个算法来衡量我要关注的区域因为各个图片感兴趣的物体的大小肯定是不一样的那么对于每一个图片就需要生成一些区域来投入到卷积网络中。 这更多的是为了解决预测时候的需求因为预测时候才会需要考虑各个尺寸的框。 2.IoU交并比 度量两个框之间的相似度 IoU或称为交并比Intersection over Union是在目标检测和图像分割等计算机视觉任务中常用的评估指标之一。它用于衡量模型预测的两个框之间的重叠程度。         IoU的计算方式是通过目标的真实区域或边界框和模型预测的区域的交集面积除以它们的并集面积得到的。具体而言IoU的计算公式如下         IoU的取值范围在0到1之间通常以百分比表示。值越大表示两个框重叠程度越高因此训练的时候IoU越大通常意味着模型的性能越好。         在目标检测任务中通常将IoU用作评估模型在定位目标方面的准确性的指标。一般来说训练时候当模型某一锚框样本的置信度达到一定阈值且与真实框IoU达到一定阈值例如0.5或0.75时认为模型的预测是正确的。         测试时候也常用于非极大值抑制Non-Maximum SuppressionNMS阶段以过滤掉IoU低于阈值的冗余边界框从而提高检测结果的质量。 3.锚框标号 要对每个锚框进行预测要么认为是背景什么都没有要么跟某一个真实类关联并标注差距这是在训练时候需要的 通过计算所有锚框与真实边缘框的IoU找到最大值可以绑定锚框和边缘框的类别 注意看上面的过程每次读取一张图片都会按照锚框数生成多个训练样本所以才需要进行锚框标号将与真实边缘框相关的锚框赋予类别但一个锚框又只能用一次所以才会这样做 要保证每个真实框被分配到一个或多个锚框其他低于要求的锚框变成负样本这样就可以一次性处理所有生成的锚框并给他们赋予类别。上面这种方案比较极端只保留了和真实框最接近的锚框实际情况肯定是有阈值的。 在目标检测任务中使用锚框的目的是通过预定义的一组框来提高模型的泛化能力和训练效果。将锚框赋予标号后通常会采用两阶段的方法 生成锚框 在训练之前使用一些先验知识比如目标的大小和形状分布生成一组锚框这些锚框覆盖了图像中可能出现目标的多种尺寸和宽高比。这组锚框充当了模型的预测目标的基准。 赋予标号 将这些锚框与真实目标进行匹配赋予标号。匹配的标准通常是通过计算IoU交并比来判断一个锚框与真实目标的重叠程度。如果IoU高于某个阈值就将锚框标记为正样本表示这个锚框内有目标。如果IoU低于另一个阈值将锚框标记为负样本表示这个锚框内没有目标。对于中间情况可以根据具体的情况进行处理例如有的方法会将这些框排除在训练中而有的方法则将其视为中性样本。 训练模型 使用带有标号的锚框进行训练。正样本用于训练模型识别目标和调整边界框的位置负样本用于训练模型辨别图像中不包含目标的区域。这种两阶段的训练方式有助于模型学习如何准确地预测目标的位置。         直接使用真实边界框进行训练存在一些问题。首先如果直接使用真实边界框模型可能会过于依赖这些具体的框而泛化能力较差。其次由于目标的尺寸和形状变化较大事先定义一组具有多样性的锚框能够更好地覆盖不同的情况。         因此通过为锚框赋予标号并采用两阶段的训练方式可以更好地引导模型学习目标的特征提高模型的泛化性能。 4.非极大值抑制 原理 步骤就是要输出时候对于每一个锚框也就是先验框先去掉属于背景的保留 softmax有类别输出的然后确定softmax预测最大值也就是置信度最高的类别然后去掉所有其他和这个框的IoU值过大的框去掉重复的。 5.实现 对于每个像素为中心生成不同宽度和高度的锚框 import torch from d2l import torch as d2ltorch.set_printoptions(2) # 精简输出精度def multibox_prior(data, sizes, ratios):生成以每个像素为中心具有不同形状的锚框in_height, in_width data.shape[-2:]device, num_sizes, num_ratios data.device, len(sizes), len(ratios)boxes_per_pixel (num_sizes num_ratios - 1)size_tensor torch.tensor(sizes, devicedevice)ratio_tensor torch.tensor(ratios, devicedevice)# 为了将锚点移动到像素的中心需要设置偏移量。# 因为一个像素的高为1且宽为1我们选择偏移我们的中心0.5offset_h, offset_w 0.5, 0.5steps_h 1.0 / in_height # 在y轴上缩放步长steps_w 1.0 / in_width # 在x轴上缩放步长# 生成锚框的所有中心点center_h (torch.arange(in_height, devicedevice) offset_h) * steps_hcenter_w (torch.arange(in_width, devicedevice) offset_w) * steps_wshift_y, shift_x torch.meshgrid(center_h, center_w, indexingij)shift_y, shift_x shift_y.reshape(-1), shift_x.reshape(-1)# 生成“boxes_per_pixel”个高和宽# 之后用于创建锚框的四角坐标(xmin,xmax,ymin,ymax)w torch.cat((size_tensor * torch.sqrt(ratio_tensor[0]),sizes[0] * torch.sqrt(ratio_tensor[1:])))\* in_height / in_width # 处理矩形输入h torch.cat((size_tensor / torch.sqrt(ratio_tensor[0]),sizes[0] / torch.sqrt(ratio_tensor[1:])))# 除以2来获得半高和半宽anchor_manipulations torch.stack((-w, -h, w, h)).T.repeat(in_height * in_width, 1) / 2# 每个中心点都将有“boxes_per_pixel”个锚框# 所以生成含所有锚框中心的网格重复了“boxes_per_pixel”次out_grid torch.stack([shift_x, shift_y, shift_x, shift_y],dim1).repeat_interleave(boxes_per_pixel, dim0)output out_grid anchor_manipulationsreturn output.unsqueeze(0) 查看 img d2l.plt.imread(../img/catdog.jpg) h, w img.shape[:2]print(h, w) X torch.rand(size(1, 3, h, w)) Y multibox_prior(X, sizes[0.75, 0.5, 0.25], ratios[1, 2, 0.5]) Y.shape 非常贵的锚框数量。  拓展 其他的一些方法 直接把图片隔开成很多个块预测对每个像素中去比例预测其他的聚焦方法
http://www.zqtcl.cn/news/342564/

相关文章:

  • 合肥网站建设服务公司wordpress安装字体
  • 建设阅读网站的意义长沙微推广平台
  • 所有搜索引擎蜘蛛不来网站了怎么开发手机页面
  • 网站没域名广告传媒公司取名
  • 代理浏览网站跨境电商平台
  • 触摸终端软件门户网站wordpress标签不解析
  • wordpress企业产品类目怎么设置seo推广是做什么
  • 虚拟机可以做两个网站区块链插件wordpress
  • C2C电商网站重庆市渝快办官网
  • 青岛建设局网站首页青岛互联网企业排名
  • 网站文章怎么做分享qq做网站傻瓜
  • 自媒体专用网站免费产品推广文案100字
  • 阜阳专业网站建设上海南桥网站建设
  • 网站默认图片阳春做网站
  • 怎么自己做网站排名福州朝阳房产网站建设
  • 贵州建网站红动中国免费素材网
  • 公益网站建设婚庆网站开发的意义
  • 徐州网站建设案例南京设计网站
  • 培训网站欣赏网站开发进度管理表
  • 网站开发工程师考试平面设计实例网站
  • ftp更换网站备案密码如何登录添加网站
  • 钢球 东莞网站建设做网站用vue吗
  • 青岛网站建设制作公司制作视频软件哪个免费
  • 用flash做的网站欣赏承德住房和城乡建设局网站关闭了
  • 做网站引流的最佳方法施工企业高级工程师土建答辩
  • 成都优创智汇网站建设旅游网站网页设计代码
  • 郑州冬青街 网站建设网站seo技巧
  • 网站定制公司推荐外包公司怎么样
  • 深圳做网站要网站制作能在家做吗
  • 设计国外网站深圳外贸网站推广