【论文阅读】【二维目标检测】Object Detection中的Scale问题

本文探讨了Object Detection中Scale问题的挑战,介绍了FPN、SNIP、SNIPER和Trident等解决方案。FPN通过Feature Pyramid解决速度和效率问题,SNIP重新审视Image Pyramid的有效性,SNIPER优化了训练效率,而Trident网络利用不同dilation的卷积应对不同Scale物体。实验表明,这些方法各有优劣,对不同大小物体的检测效果各异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看了一下Object Detection在Scale问题上的发展,本文将介绍下面四篇论文
Feature Pyramid Networks for Object Detection
An Analysis of Scale Invariance in Object Detection – SNIP
SNIPER: Efficient Multi-Scale Training
Scale-Aware Trident Networks for Object Detection

FPN:Feature Pyramid Networks for Object Detection

该文章可以说是提出了目前使用最广泛的解决Scale的方法,该方法最主要的贡献在于将解决Scale的问题的方法从Image Pyramid变成了Feature Pyramid,Feature Pyramid的优势在于计算速度快,原因在于不用在不同Scale的图片上多次做检测,共用了同一个特征金字塔。

对于这篇文章,其精髓就在于下图
在这里插入图片描述

  • a图:Image Pyramid,图像金字塔,传统CV中主要使用的方法,在不同尺度的图片中构建特征从而使得特征拥有Scale Invariance的特性。但用于神经网络中,对于(a)图,就得训练4个Detector来对4个Scale的图片进行检测。这样子网络网络大,而且计算量大。
  • b图:Single Scale,图像分类使用的模型。在该模型上做Object Detection,没有对不同Scale的物体做区分。
  • c图:使用了特征金字塔,但由于下面几层的特征提取不够充分,感受野小的问题,使用下面几层的特征做Detection效果会受限制,SSD就是使用这种结构。
  • d图:Feature Pyramid,特征金字塔,解决了©图中的问题,使得下面几层的feature map在保持高分辨率的同时也有semantic的信息。

在不同的Stride上的feature map上做Detection,对

### 使用Halcon进行深度学习目标检测并统计检测到的目标数量 #### 创建和训练模型 为了在 Halcon 中执行深度学习对象检测,通常会先创建或加载预训练的神经网络模型。如果选择微调现有模型,则可以按照特定应用调整最后一层分类器而不改变特征提取部分[^3]。 对于三维物体识别任务来说,一些方法跟随二维物体检测的成功经验,并基于三维提议网络及其分类而构建[^2];然而,在 Halcon 的环境中主要还是处理二维图像数据。 ```cpp // 加载预先训练好的模型文件 (.hdl 或 .ilp 文件) read_dl_model ('Path_to_pretrained_model', 'ModelHandle') ``` #### 准备输入图片 接着准备待分析的图像作为输入给定至已建立之深度学习框架内: ```cpp // 读取测试图像 read_image (Image, 'path/to/image') // 如果必要的话,对图像做一些前处理操作比如缩放尺寸等 scale_image (Image, ImageScaled, ScaleX, ScaleY) ``` #### 执行推理过程 利用 `classify_object_dl` 命令来运行推断流程,这一步骤将会返回一系列矩形框包围着可能存在的各个实例连同其类别标签与置信度得分一起输出。 ```cpp // 对单张或多张图像实施预测动作 classify_object_detection_deep_learning (ModelHandle, ImageScaled, ResultHandle) // 获取结果中的边界框信息和其他属性 get_object_info2 (ResultHandle, RowBegin, ColumnBegin, RowEnd, ColumnEnd, Confidence, ClassID) ``` #### 统计被发现的对象数目 最后通过计算所获得的结果集中有效条目的总数即可得知实际探测出来的个体数。 ```cpp // 计算检测到的对象的数量 count_obj := |RowBegin| // 这里假设所有的数组长度相同且代表了有效的检测结果 ``` 以上就是如何运用 HALCON 实现深度学习下的目标检测工作流概览以及怎样确定最终得到的目标个数的方法介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值