news 2026/4/18 15:54:43

目标检测(吴恩达深度学习笔记)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
目标检测(吴恩达深度学习笔记)

目录

1.目标定位(object localization)

(1)分类定位

(2)分类定位的符号定义

(3)分类定位标签 y 定义

2.特征点检测

(1)是什么

(2)例子

3.滑动窗口目标检测

(1)理解

(2)例子

(3)缺点

4.滑动窗口的卷积实现

(1)全连接层转换为卷积层

(2)理解

(3)优缺点

5.精准边界预测-YOLO算法

(1)YOLO算法(You Only Look Once)

(2)例子


1.目标定位(object localization)
(1)分类定位
  • 图片分类(image classification)就是算法遍历图片,判断其中的对象是哪类。
  • 分类定位(classification with localization):判断物体是哪类并标出位置。以上图为例,我们不仅要用算法判断图片中是不是一辆汽车,还要在图片中标记出它的位置,用边框或红色方框把汽车圈起来。
(2)分类定位的符号定义
  • 对于分类定位问题,可以让神经网络多输出几个单元,来表示一个边界框。具体就是让神经网络再多输出4个数字,标记为b_x,b_y,b_h,b_w。
  • 约定图片左上角的坐标为(0,0),右下角标记为(1,1)。要确定边界框的具体位置,需要指定红色方框的中心点(midpoint),这个点表示为(b_x,b_y),边界框的高度为b_h,宽度为b_w
  • 在我们这个汽车例子中,b_x大约是0.5;b_y大约是0.7;b_h约为0.3;b_w约为0.4
(3)分类定位标签 y 定义
  • 第一个p_c表示是否含有对象,在这里如果对象属于前三类(行人(pedestrian)、汽车(car)、摩托车(motorcycle)),则p_c=1,如果是背景(background),则p_c=0。
  • 如果检测到对象,输出被检测对象的边界框参数b_x, b_y, b_h和b_w,同时输出c_1、c_2和c_3,表示该对象属于1-3类中的哪一类。(在这里假设图片中最多只会出现其中一个对象
2.特征点检测
(1)是什么
  • 特征点检测就是取图片上一些有意义的点,在输出时输出这些点的坐标,从而实现对目标特征的检测。
(2)例子
  • 上图的第三张图,人体姿态检测,可以定义一些关键特征点,如胸部的中点,左肩,左肘,腰等,从胸部中心点(l_1x,l_1y)一直向下,一直到(l_32x,l_32y)。然后通过神经网络标注人物姿态的关键特征点,再输出这些标注过的特征点,就相当于输出了人物的姿态动作。

  • 注意:要明确一点,特征点的特性(identity)在所有图片中必须保持一致,比如:特征点1始终是胸部中点,特征点2始终是左肩等

3.滑动窗口目标检测
(1)理解
  • 以固定步幅滑动一个窗口遍历整张图片,对每个划出的窗口区域进行0或1分类,这就是滑动窗口目标检测。
(2)例子
  • 构建一个汽车检测算法,用裁剪后的汽车图片做样本,构建训练集,训练一个普通的汽车分类器(卷积神经网络),然后使用滑动窗口目标检测。

  • 上图是一张测试图片,操作步骤如下:选定一个特定大小的窗口,将这个红色小方块的图像输入卷积神经网络,卷积网络开始进行预测,即判断红色方框内有没有汽车。然后窗口滑动到第二个红色方块内的图像,并输入给卷积网络,再次运行卷积网络。然后依次重复操作,直到这个窗口滑过图像的每一个角落。

  • 如果检测不到目标,可能会换更大的窗口进行遍历

(3)缺点
  • 步幅与窗口大小影响性能与成本:如果你选用的步幅很大,显然会减少输入卷积网络的窗口个数,但是粗糙间隔尺寸可能会影响性能。反之,如果采用小粒度或小步幅,传递给卷积网络的小窗口会特别多,这意味着超高的计算成本。
4.滑动窗口的卷积实现
(1)全连接层转换为卷积层
  • 滑动窗口的卷积实现,要把卷积神经网络的全连接层转化成卷积层
  • 如上图第二行,它的卷积层和之前一样,而对于全连接层,我们400个用5×5的过滤器来实现,输入图像大小为5×5×16,用5×5的过滤器对它进行卷积操作,输出结果为1×1×400,我们不再把它看作一个含有400个节点的集合,而是一个1×1×400的输出层。
  • 从数学角度看,它和全连接层是一样的,因为这400个节点中每个节点都对应一个不同5×5×16维度的过滤器,所以可以看做每个值都是上一层经过某个任意线性函数的输出结果。
(2)理解
  • 使用转化后的卷积网络来检测图像,我们不用像之前一样把图像剪成一个个小图像以此输入卷积网络进行检测,而是直接输入整个图像
  • 上图,第一行为训练卷积网络,第二行为测试,我们训练使用14×14的图像,所以测试时窗口大小就是14×14,最大池化的参数为2,测试时对于滑动步幅就是2
  • 对于测试的理解:不用管中间步骤和通道数,只看输入和输出,可以看做在16×16测试图像上使用14×14的滑动窗口,步幅为2,最终的输出可看做4个位置的检测结果
  • 而对28×28的图像进行测试,也是使用14×14的滑动窗口,先在左上角应用,其结果对应输出层的左上角部分。接着以大小为2的步幅不断地向右移动窗口,直到第8个单元格,得到输出层的第一行。然后向图片下方移动,最终输出这个8×8×4的结果。
(3)优缺点
  • 在卷积层上应用滑动窗口算法,它提高了整个算法的效率。不过这种算法仍然存在一个缺点(weakness),就是边界框的位置可能不够准确
5.精准边界预测-YOLO算法
(1)YOLO算法(You Only Look Once)
  • 把图像分为n×n的网格,训练一个卷积网络,输出为n×n×8,对应每个网格的检测结果。(8对应第一节y的8个维度)
(2)例子
  • 如上图,输入图像是100×100的,在图像上放一个3×3网格,则输出为3×3×8,对应9个格子的检测结果。如果是19×19的网格,输出就是19×19×8。
  • 这是一个卷积实现,你并没有在3×3网格上跑9次算法。你使用了一个卷积网络,有很多共享计算步骤,在处理这3×3计算中很多计算步骤是共享的,所以这个算法效率很高,可以达到实时(real-time)识别。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:55:47

本地部署低代码开发神器 Appsmith 并实现外部访问

Appsmith 是一款开源低代码开发平台,这款开发平台简单好用,你只需要将左侧的各种组件(如表格、图表、表单等)像拼图一样拖到中间的画布上,就能快速构建出复杂的应用程序。非常适合开发人员快速构建应用程序。本文将详细…

作者头像 李华
网站建设 2026/4/18 11:03:38

dify工作流补充:私有化部署满足数据安全需求

dify工作流补充:私有化部署满足数据安全需求 🌐 AI 智能中英翻译服务 (WebUI API) 在企业级AI应用日益普及的今天,数据隐私与合规性成为智能翻译系统落地的关键瓶颈。许多行业(如金融、医疗、法律)对敏感文本的处理要…

作者头像 李华
网站建设 2026/4/17 9:45:54

物联网毕业设计易上手选题推荐

【单片机毕业设计项目分享系列】 🔥 这里是DD学长,单片机毕业设计及享100例系列的第一篇,目的是分享高质量的毕设作品给大家。 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的单片机项目缺少创新和亮点…

作者头像 李华
网站建设 2026/4/18 11:05:19

疑问再探:API和WebUI哪个更适合你的业务场景?

疑问再探:API和WebUI哪个更适合你的业务场景? 在AI技术快速落地的今天,如何选择合适的技术接口形式——API调用还是WebUI交互,已成为许多开发者和企业在集成智能服务时的核心决策点。本文将以一个实际项目为例:基于Mod…

作者头像 李华
网站建设 2026/4/18 8:51:46

游戏动捕预处理:M2FP用于2D角色姿态提取实战

游戏动捕预处理:M2FP用于2D角色姿态提取实战 在游戏开发与动画制作中,高精度的2D角色姿态提取是动作捕捉预处理的关键环节。传统方法依赖关键点检测(如OpenPose)或手动标注,但在多人场景、肢体遮挡或复杂光照下表现不稳…

作者头像 李华
网站建设 2026/4/18 5:17:57

从Stable Diffusion迁移:Z-Image-Turbo快速上手对比指南

从Stable Diffusion迁移:Z-Image-Turbo快速上手对比指南 如果你是一位长期使用Stable Diffusion的AI绘画爱好者,最近可能已经听说过阿里通义开源的Z-Image-Turbo模型。这款仅需8步推理就能实现亚秒级图像生成的模型,在16GB显存的消费级设备上…

作者头像 李华