目标检测入门

目标检测

  • 物体识别是要分辨出图片中有什么物体,输入是图片,输出是类别标签和概率。物体检测算法不仅要检测图片中有什么物体,还要输出物体的外框(x, y, width, height)来定位物体的位置。
  • objectdetection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。
  • object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。
  • 然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不
    定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。
    在这里插入图片描述
  • 评价指标:IOU
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    边框回归Bounding-Box regression
    在这里插入图片描述
  • 红色区域可以理解为未经优化的结果
    边框回归是什么?
  • 对于窗口一般使用四维向量(x.y.w.h)来表示,分别表示窗口的中心点坐标和宽高。
  • 红色的框P代表原始的Proposal,; .
  • 绿色的框G代表目标的Ground Truth;
  • 我们的目标是寻找一种关系使得输入原始的窗口P经过
    映射得到一个跟真实窗口G更接近的回归窗口G^。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    “给定一个候选框P,如何把P回归的更好”

训练:

net -> p -> br ->  dx (conv随机权重得到的) -> G' -> Loss(G' - G) -> 反向传播更新conv权重 -> p -> br -> dx2(conv权重2) -> G'2 

推理:

net -> p -> br -> dx2 -> G'

目标检测发展历程
在这里插入图片描述
在这里插入图片描述
Two Stage
在这里插入图片描述

  • 工程上主要用Faster R-CNN (RPN + CNN + ROI)

Faster R-CNN

在这里插入图片描述
在这里插入图片描述

  1. Conv Layers
    在这里插入图片描述
    在这里插入图片描述
  2. 区域生成网络(Region Proposal Network(RPN))
    在这里插入图片描述
    输出有用区域信息(X, Y, W , H),不包含分类结果
    复杂性维度:结构简单,逻辑难
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Roi Pooling
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 整个过程可以看作RPN + 分类

基于英伟达硬件的不同R-CNN神经网络结构运行时间
在这里插入图片描述
Two Stage 和 One Stage
在这里插入图片描述
One Stage算法

  • YoloV3
    在这里插入图片描述
    在这里插入图片描述
  • YOLO算法整体来说就是把输入的图片划分为SS格子, 这里是33个格子。
  • 当被检测的目标的中心点落入这个格子时,这个格子负责检测这个目标,如图中的人。
  • 我们把这个图片输入到网络中,最后输出的尺寸也是SSn (n是通道数), 这个输出的SS与原输入图片SS相对应(都是3*3) 。
  • 假如我们网络一共能检测20个类别的目标,那么输出的通道数n=2*(4+1) +20=30。这里的2指的是每个格子有两个标定框(论文指出的),4代表 标定框的坐标信息,1代表 标定框的置信度,20是检测目标的类别数。
  • 所以网络最后输出结果的尺寸是S x S x n=3 x 3 x 30。

关于标定框
网络的输出是S x Sx (5*B+C)的一个tensor(S-尺寸,B-标定框个数,C- 检测类别数,5-标定框的信息)。

  • 5分为4+1:
  • 4代表 标定框的位置信息。框的中心点(x,y), 框的高宽
    h,W。
  • 1表示每个标定框的置信度以及标定框的准确度信息。
    在这里插入图片描述

一般情况下,YOLO不会预测边界框中心的确切坐标。它预测:

  • 与预测目标的网格单元左上角相关的偏移;
  • 使用特征图单元的维度进行归一-化的偏移。
    例如:
    以上图为例,如果中心的预测是(0.4, 0.7),则中心在13x13特征图上的坐标是(6.4, 6.7) (红色单元的左.上角坐标是(6,6))。

但是,如果预测到的x,y坐标大于1,比如(1.2, 0.7)。那么预测的中心坐标是(7.2, 6.7)。注意该中心在红色单元右侧的单元中。这打破了YOLO背后的理论,因为如果我们假设红色框负责预测目标狗,那么狗的中心必须在红色单元中,不应该在它旁边的网格单元中。因此,为了解决这个问题,我们对输出执行sigmoid函数,将输出压缩到区间0到1之间,有效确保中心处于执行预测的网格单元中。
在这里插入图片描述
在这里插入图片描述
yoloV1结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Yolo的缺点: .

  • YOLO对相互靠的很近的物体(援在-起且中点都落在同一个格子上的情况),还有很小的群体检测效果不好,这是因为-一个网格中只预测了两个框,并且只属于一类。
  • 测试图像中,当同一类物体出现不常见的长宽比和其他情况时泛化能力偏弱。
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python目标检测入门可以通过使用ImageAI库来实现。首先,你需要创建一个Python文件,并导入ObjectDetection类。你可以使用以下代码来导入ObjectDetection类:`from imageai.Detection import ObjectDetection`。接下来,你需要定义模型路径、输入图像路径和输出图像路径。你可以使用以下代码来完成这些定义:`model_path = "./models/yolo-tiny.h5",input_path = "./input/test_car.png",output_path = "./output/pre_car.png"`。然后,你需要实例化ObjectDetection类,并设置模型类型为TinyYOLOv3,加载模型。使用以下代码来完成这些步骤:`detector = ObjectDetection(),detector.setModelTypeAsTinyYOLOv3(),detector.setModelPath(model_path),detector.loadModel()`。接下来,你可以使用`detectObjectsFromImage`方法来检测图像中的对象,并将结果保存在列表中。最后,你可以遍历列表并打印每个检测到的对象的名称和概率。下面是完整的示例代码: ```python from imageai.Detection import ObjectDetection # 实例化 detector = ObjectDetection() # 路径定义 model_path = "./models/yolo-tiny.h5" input_path = "./input/test_car.png" output_path = "./output/pre_car.png" # 设置预训练模型路径 detector.setModelTypeAsTinyYOLOv3() detector.setModelPath(model_path) # 加载模型 detector.loadModel() # 检测对象并保存结果图像 detections = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path) # 打印检测结果 for eachObject in detections: print(eachObject["name"], " : ", eachObject["percentage_probability"]) ``` 希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[Python图像识别] 四十五.目标检测入门普及和ImageAI“傻瓜式”对象检测案例详解 (1)](https://blog.csdn.net/Eastmount/article/details/119107913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanley_Yeung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值