使用 YOLO 进行目标检测

2023-05-16

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

自从世界了解人工智能以来,有一个特别的用例已经被讨论了很多。它们是自动驾驶汽车。我们经常在科幻电影中听到、读到甚至看到这些。有人说,我们将在2010年拥有自动驾驶汽车,有人说到2020年,但我们在2021年就实现了,我们刚刚能够解决自动驾驶汽车给世界带来的变化的一角。自动驾驶汽车的一个基本特性,对象检测。

什么是目标检测?

物体检测——顾名思义就是通过深度学习算法检测图像或视频中的物体。目标检测的目的是识别和定位场景中所有已知的目标。有了这种识别和定位,目标检测可以用来计数场景中的目标,确定和跟踪它们的精确位置,同时精确地标记它们。

目标检测通常与图像识别相混淆,所以在我们继续之前,澄清它们之间的区别是重要的。

图像识别为图像分配一个标签。狗的图片会被贴上“狗”的标签。两只狗的照片仍然会被贴上“狗”的标签。另一方面,对象检测在每只狗周围画一个盒子,并给这个盒子贴上“狗”的标签。模型预测每个对象在哪里以及应该应用什么标签。通过这种方式,目标检测比识别提供了更多关于图像的信息。

物体检测与图像识别和图像分割等其他类似的计算机视觉技术密不可分,因为它有助于我们理解和分析图像或视频中的场景。

鉴于这些关键的区别和物体检测的独特能力,我们可以看到为什么它可以在日常使用优势的多种方式中应用,一些常见的例子是自动驾驶汽车,人脸检测,交通调节,视频监控,人群计数,异常检测等。

数据集

在这个项目中,我们使用了VOC2012数据集。VOC代表2012年视觉物体分类挑战赛。这个数据集包含了来自PASCAL视觉对象分类挑战的数据,对应于分类和检测比赛。所提供的训练数据由一组图像组成;每个图像都有一个注释文件,为图像中20个类中的每个对象提供一个边界框和对象类标签。有17125幅图像可供训练。数据的大小大约为2GB。

算法

我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN),用于实时进行目标检测。该算法将单个神经网络应用于完整的图像,然后将图像划分为多个区域,并预测每个区域的边界框和概率。这些边界框是由预测的概率加权的。要理解YOLO,我们首先要分别理解这两个模型。

YOLO算法- YOLO算法是一种基于回归的算法,它不是选择图像中有趣的部分,而是预测整个图像中的类和包围框运行一次算法。要理解YOLO算法,我们首先需要了解实际预测的是什么。最终,我们的目标是预测一类对象和指定对象位置的边界框。每个包围框可以用四个描述符来描述:

●矩形x中央(bx, by)

●宽度(bw)

●高度(bh)

●对象的类

YOLO不会在输入图像中搜索可能包含对象的感兴趣区域,而是将图像分割成单元格,通常是19×19网格。每个细胞负责预测K个包围框。具有最大概率的类被选择并分配给特定的网格单元。类似的过程发生在图像中的所有网格单元格上。

在预测类概率后,下一步进行非最大抑制,这有助于算法消除不必要的锚点。

一旦完成,算法就会找到具有下一个最高类别概率的包围框,并进行相同的过程,直到我们剩下所有不同的包围框为止。

在此之后,我们几乎完成了所有的工作,算法最终输出所需的向量,显示各个类的包围框的细节。

微小Yolo算法——为了让Yolo运行得更快,Redmon等人(Yolo的创建者)定义了Yolo架构的一个变体,称为微小Yolo。

YOLOv3(和v3)根据一组预定的盒(具有特定的高宽比)预测偏移量——这些预定的包围框就是锚盒。我们设置了一个条件如果这些包围框的长度是6而不是YOLO算法我们就会实现Tiny YOLO模型

实现

1.它从文件的注释开始,这基本上意味着在文本文件中有图像的所有路径并使用它读取数据。

2.我们从网上下载Yolov3权重。然后我们将Darknet YOLO模型转换为Keras模型。然后实现目标检测。

3.从头开始实现它是一个具有挑战性的模型,特别是对于初学者,因为它需要开发许多定制的模型元素来进行训练和预测。例如,即使直接使用预先训练好的模型,也需要复杂的代码来提取和解释模型输出的预测边界框。

4.我们训练这个模型并添加模型检查点、降低学习率、提前停止和张量板。然后我们训练我们的模型与冻结层首先得到一个稳定的损失和Adam Optimizer编译,并节省权重。

5.冻结一层也是一种通过逐步冻结隐藏层来加速神经网络训练的技术。在神经网络的背景下冻结一层是关于控制权值更新的方式。当一个层被冻结时,这意味着权重不能被进一步修改。

6.完成以上动作后,继续训练模型。这基本上是对模型进行微调。为了应用这个更改,我们使用Adam Optimizer重新编译模型。然后再装一次,然后节省重量。模型训练在这里完成。

7.要将这个模型应用于视频/图像,我们将输入和输出视频路径的路径作为参数,然后加载模型并传递配置的路径和权重。然后,我们使用Cv2视频捕获指向输出视频文件,并确定视频中的帧数。从输入帧构造一个blob,然后执行YOLO对象检测器的前向传递,最后给出边界框

8.执行这一切我们最后遍历输出层和每个检测在每个输出后我们添加边框,定义其动态形状,根据对象的大小,过滤掉弱概率,应用non-maxima抑制抑制弱,重叠边界框,并确保至少一个检测存在。最后绘制一个边界框矩形并在框架上进行标记,并将输出框架写入磁盘。

最后,是我们的测试,可以看出进行了有效检测。

输入视频截图

输出视频截图

结论

我们在这个项目中探索的下一步是将其作为一个web应用程序部署。我们目前面临的主要限制是没有足够的RAM和空间来在云上托管它。但是,也许使用更轻的模型,我们会尝试,同时也有这个实时应用。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 YOLO 进行目标检测 的相关文章

  • STM32介绍

    STM32 是意法半导体推出的 32 位 ARM Cortex M 内核微控制器系列 xff0c 具有高性能 低功耗 可靠性强等特点 xff0c 广泛应用于工业控制 智能家居 汽车电子 医疗设备等领域 本文将详细介绍 STM32 系列的特点
  • Ubuntu 18.04文件下载

    ubuntu sim ros melodic sh 链接 link 下面为打开后的具体情况 span class token comment span span class token operator span span class to

随机推荐

  • ubuntu18.04下QGC安装

    QGC安装 xff08 新手操作 xff09 参考官网教程即可 官网链接 link 先把命令行的代码贴过来 xff0c 方便大家复制粘贴 第 span class token number 1 span 步的 sudo usermod sp
  • PX4 ulg文件格式转化(windows下)

    福利领取 在经过多次尝试ubuntu下安装pyulog失败后 xff0c 多次失败 xff0c 查找相关资料 xff0c 发现是python相关包出现了问题 xff0c 最后发现了anaconda这个好东西 xff0c 包含了python下
  • PX4固定翼姿态控制器详细介绍(一)

    代码版本1 8 2 源码地址 Firmware1 8 2 一 前言 最近需要做一下固定翼的相关姿态控制 xff0c 只对控制流程进行简单介绍 xff0c 特此记录下相关流程 xff0c 方便自己后续进一步调试 xff0c 以下对PX4固定翼
  • Github仓库命名规范

    Github仓库命名规范 命名规则 GIT库名一律采用项目名 类型 年月的形式 其中对项目名的规范如下 xff1a 库名中不得出现下述规定的字符 64 amp 39 39 xff0c lt gt 库名应尽量避免使用 名 名的形式 库名应尽量
  • CVTE嵌入式面经

    2021提前批嵌入式实习 CVTE笔试 xff1a 大约20个选择题和两道手撕代码题 选择题主要是问LINUX一些指令和一些单片机的相关知识 比如中断任务里面该写什么代码之类的 CVTE一面 xff1a 大约半个小时 1 自我介绍 2 谈谈
  • 97条架构师必须掌握的知识

    1 Don 39 t put your resume ahead ofthe requirements by Nitin Borwankar 需求先于履历 身为架构 师要平衡客户 公司和个人的利益 用时兴的技术 为个人履历增光添彩固然重要
  • 以Crotex M3为例讲解stm32芯片内部原理

    一款STM32F103ZET6是72Mhz 64kRAM 512kROM为例进行简要分析其MCU工作原理 1 分清几个概念 1 1RAM可读写静态储存器 平常所说的DDR就是RAM的一种 用于CPU直接交换数据 1 2ROM只可读静态存储器
  • 内外网共用操作

    1 首先将内网 外网的两根网线接入交换机 xff0c 再从交换机出来一根线接入你的电脑 xff08 如果是路由器的话 xff0c 内网 外网的网线接入LAN口 xff0c 再从LAN口出来一根线接入你的电脑 xff09 2 打开IP设置 x
  • 【从零学习OpenCV 4】了解OpenCV的模块架构

    本文首发于 小白学视觉 微信公众号 xff0c 欢迎关注公众号 本文作者为小白 xff0c 版权归人民邮电出版社所有 xff0c 禁止转载 xff0c 侵权必究 xff01 经过几个月的努力 xff0c 小白终于完成了市面上第一本OpenC
  • 对象检测和图像分割有什么区别?

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 01 人工智能中的图像预处理 对象检测和图像分割是计算机视觉的两种方法 xff0c 这两种处理手段在人工智能领域内相当常见 xff0c
  • 基于OpenCV的网络实时视频流传输

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 很多小伙伴都不会在家里或者办公室安装网络摄像头或监视摄像头 但是有时 xff0c 大家又希望能够随时随地观看视频直播 大多数人会选择使
  • 英伟达 GPU显卡计算能力查询表

    近期小白因为项目需要开始在电脑上配置深度学习环境 经过一些列的苦难折磨之后 xff0c 电脑环境终于配置好了 xff0c 但是却被我的显卡劝退了 我是用的是算力2 1的显卡 xff0c 环境要求算力3以上的显卡 xff0c 无奈最后只能使用
  • 一文看懂激光雷达

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 来源 xff1a 摘自中信证券 与雷达工作原理类似 xff0c 激光雷达通过测量激光信号的时间差和相位差来确定距离 xff0c 但其最
  • 传统CV和深度学习方法的比较

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 xff1a 新机器视觉 摘要 xff1a 深度学习推动了数字图像处理领域的极限 但是 xff0c 这并不是说传统计算机视觉技
  • Opencv实战 | 用摄像头自动化跟踪特定颜色物体

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 xff1a 新机器视觉 1 导语 在之前的某个教程里 xff0c 我们探讨了如何控制Pan Tilt Servo设备来安置一
  • 使用OpenCV和TesseractOCR进行车牌检测

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 目录 1 xff09 目的和简介 2 xff09 前言 3 xff09 使用OpenCV和Haar级联进行车牌检测 4 xff09 使
  • GPS(全球定位系统)

    GPS 全球定位系 统 xff0c 是美国国防部为陆 xff0c 海 xff0c 空三军研制的新一代卫星导航定位系统 xff0c 它是以 24 颗人造卫星作为基础 xff0c 全天候地向全球各地用户提供时实的三维定位 三维测速和全球同步时间
  • 单应性矩阵应用-基于特征的图像拼接

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 xff1a 深度学习这件小事 前言 前面写了一篇关于单应性矩阵的相关文章 xff0c 结尾说到基于特征的图像拼接跟对象检测中
  • 前沿 | 一文详解自动驾驶激光雷达和摄像头的数据融合方法

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 xff1a 计算机视觉联盟 自动驾驶感知模块中传感器融合已经成为了标配 xff0c 只是这里融合的层次有不同 xff0c 可
  • 使用 YOLO 进行目标检测

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 自从世界了解人工智能以来 xff0c 有一个特别的用例已经被讨论了很多 它们是自动驾驶汽车 我们经常在科幻电影中听到 读到甚至看到这些