机器学习和神经网络 - 页 38

 

使用 YOLOv8 进行对象跟踪:车辆跟踪、计数(进入和离开)和速度估计



使用 YOLOv8 进行对象跟踪:车辆跟踪、计数(进入和离开)和速度估计

该视频教程介绍了如何使用 YOLOv8 和 DeepSORT 实现对象跟踪、车辆计数和速度估计。演示者分享了包含代码的 GitHub 存储库的链接,并介绍了克隆存储库、下载 DeepSORT 文件、导入相关库以及定义数据 DQ 列表以跟踪对象的过程。他们还解释了如何确定车辆方向并相应地增加计数。此外,演示者还展示了如何根据跟踪对象的X和Y坐标实现欧氏距离公式来估计车辆的速度,并设置用于计数显示的空间。最终,脚本的输出显示了对象数量和速度,从而表明实施已成功。

  • 00:00:00 在教程的这一部分,演示者解释了如何使用 YOLOv8 实现对象检测跟踪和速度估计。首先,演示者提供了一个链接,指向使用深度排序的 YOLOv8 对象跟踪 GitHub 存储库,其中包含一个 Google Colab 文件以及在 Windows 上运行代码的分步说明。然后演示者完成必要的步骤来克隆存储库、设置当前目录并安装所有必要的库。之后,演示者导航到检测文件夹并从提供的 Google Drive 链接下载 Deep Sort 文件。

  • 00:05:00 在本节中,演讲者解释了使用 DeepSORT 使用 YOLOv8 下载和实施对象跟踪的步骤。他们通过解压缩文件夹并将其放置在项目的主文件夹中来引导观众下载 DeepSORT 文件夹。他们还解释了 predict.py 文件中使用的库导入,并描述了用于存储进入和离开框架的对象的唯一 ID 的双端队列 (DQ) 的概念。演讲者还提到从 Google Drive 下载示例视频并等待几秒钟输出,因为他们使用 CPU 而不是 GPU 进行处理。

  • 00:10:00 在本节中,演讲者解释了深度排序跟踪器中使用的各种功能,深度排序跟踪器是一种用于对象跟踪的跟踪算法。它们包括点追加函数,用于将值添加到双端队列的右端,一种用于存储对象的容器数据类型,以及用于将值插入双端队列左端的点追加函数。演讲者还讨论了计算彩色标签功能,该功能根据对象的类型为对象分配不同的颜色。此外,还详细介绍了绘制 Dash 边框和绘制 Dash 框函数,它们创建了一个带有圆角矩形的 UI,其中显示了对象的唯一 ID 和名称以及使用 CB2.9 创建的跟踪线。

  • 00:15:00 在本节中,演讲者解释了他们如何创建 Trail Line 并实施数据 DQ 的概念来跟踪对象。他们初始化 DQ 列表并将每个检测到的对象的底部坐标附加到其中。当一个对象离开框架时,它的点将从数据 DQ 列表中删除。他们还创建了一个类检测预测器,使用深度排序算法为每个对象分配唯一 ID,并获取它们的名称。他们调用绘制框函数并运行预测。此外,他们通过下载和粘贴文件并将方向定义为北、南、东或西来实现车辆计数。如果一个对象以特定方向进入或离开,它们会增加计数。

  • 00:20:00 在本节中,演讲者解释了他们如何在 YOLOv8 对象跟踪脚本中实现对象计数。他们根据物体在指定线上的移动定义了物体进入或离开的方向。他们还显示了进入或离开的物体数量,并设置了需要显示数量的空间。然后演讲者通过实施欧几里得距离公式添加速度估计,使用跟踪对象的 X 和 Y 坐标来计算它们的速度。他们使用每米像素值进行计算,可以根据相机的位置进行动态计算。脚本的输出显示了对象数量和速度,表明脚本运行正常。

  • 00:25:00 在本节中,演讲者解释了用于计算以米/小时为单位的车辆速度的公式,该公式涉及将以像素为单位的距离除以每米像素值 (PPM),然后将结果乘以时间常数.当车辆越过用户定义的检测区域设置的线时,脚本将增加车辆计数并根据车辆行驶方向辨别车辆是进入还是离开该区域。最终,速度和车辆数量估计会附加到输出列表中,用户可以按照教程的步骤实施该项目。
Object Tracking with YOLOv8: Vehicles Tracking, Counting (Entering & Leaving) and Speed Estimation
Object Tracking with YOLOv8: Vehicles Tracking, Counting (Entering & Leaving) and Speed Estimation
  • 2023.02.09
  • www.youtube.com
#ObjectDetection #ObjectTracking #SpeedEstimation #yolov8 #yolo #computervision #deeplearning #ai #machinelearning #opencv #opencvpython #pytorch -------...
 

使用 YOLOV8 和 EasyOCR 的自动车牌识别(图像和视频)



使用 YOLOV8 和 EasyOCR 的自动车牌识别(图像和视频)

在此 YouTube 视频中,演示者解释了如何使用 YOLOV8 和 EasyOCR 实现自动车牌识别。他们使用 Google Colab 笔记本和 GitHub 存储库指导观众完成实施过程,提供分步说明并解释如何安装依赖项和下载必要的数据集。演示者演示了模型的成功率和验证过程,并解释了如何使用 EasyOCR 读取车牌号。他们完成了运行脚本的最后步骤,遇到了一些他们修复的错误,从而产生了令人印象深刻的结果。虽然车牌识别脚本只会在演示者的 GitHub 存储库上提供给 Patreon 支持者,但观众可以了解对 predict.py 文件所做的更改以获得类似的结果。

  • 00:00:00 在这部分视频中,演示者演示了如何使用 YOLOV8 和 EasyOCR 实现车牌检测和识别。演示者使用 Google Colab 笔记本和 GitHub 存储库来指导观众完成实施过程。该笔记本包含运行代码的分步说明,GitHub 存储库为每月贡献五美元的 Patreon 支持者提供访问多个专有项目的权限。演示者还解释了如何安装必要的依赖项并从 Roboflow 下载所需的数据集,以训练用于车牌检测的自定义模型。最后,演示者展示了混淆矩阵,揭示了模型处理不同类别的效果,检测车牌的成功率为 84%。

  • 00:05:00 在本节中,演讲者讨论了模型在验证集上的结果,该结果显示随着 epoch 数的增加,损失减少,平均准确率和召回率得分增加。演讲者还演示了如何从 Google Drive 下载保存的模型并在自定义视频上对其进行验证,平均精度为 0.926,IOU 为 50。然而,本节的重点是 EasyOCR 的实现,用于阅读来自检测到的车牌的车牌号码,以及对 predict.py 文件进行的调整以包括 OCR 阅读器和图像坐标。

  • 00:10:00 在本节中,我们将看到如何使用 YOLOv8 和 EasyOCR 实现自动车牌识别的说明。该视频讨论了裁剪车牌图像并将其转换为灰度图像以帮助阅读车牌文本的过程。他们展示了如何使用 EasyOCR 通过编写“reader.read_text(gray)”从车牌的灰度图像中读取文本。他们最终测试脚本以查看是否出现任何错误。

  • 00:15:00 在本节中,演讲者将介绍使用 YOLOv8 和 EasyOCR 模型运行车牌识别脚本的最后步骤。他们在代码中遇到了一些错误,但设法修复了这些错误并成功运行了脚本。输出视频展示了令人印象深刻的结果,模型使用 EasyOCR 检测车牌和阅读文本。车牌识别脚本将在演讲者的 GitHub 存储库上为 Patreon 支持者提供,但观众仍然可以了解对视频中的 predict.pi 文件所做的更改以获得类似的结果。
Automatic License Plate Recognition using YOLOV8 and EasyOCR ( Images & Videos)
Automatic License Plate Recognition using YOLOV8 and EasyOCR ( Images & Videos)
  • 2023.02.04
  • www.youtube.com
#yolo #yolov8 #objectdetection #license #license #computervision #machinelearning #artificialintelligence Automatic License Plate Recognition using YOLOv...
 

在自定义数据集上使用 YOLOv8 进行实时对象检测和跟踪:完整教程



在自定义数据集上使用 YOLOv8 进行实时对象检测和跟踪:完整教程

在本视频教程中,演示者介绍了一个自定义数据集,其中包含汽车、卡车、摩托车、皮卡、飞机和露营车的图像,用于演示 YOLOv8 的检测和跟踪实现。他们解释了平衡数据集的重要性,并提供了有关导航 GitHub 存储库、设置所需环境以及使用深度排序算法实施对象跟踪的分步说明。演示者还讨论了混淆矩阵以及训练和验证损失的重要性,同时通过使用从 Google 云端硬盘下载的演示视频运行推理来测试模型的准确性。最后,他们为感兴趣的人分享了协作笔记本文件。

  • 00:00:00 在视频教程的这一部分,演示者介绍了一个公开可用的多类数据集,其中包含大约 4680 张汽车、卡车、摩托车、皮卡、飞机和露营车的图像。数据集不平衡,因为汽车注释过多,大约有 8,389 个注释,而其他注释非常少。然而,数据集用于本教程,但在实施任何项目或使用任何公开可用的数据集时,确保数据集是平衡的很重要。该视频还介绍了用于该项目的 GitHub 存储库,并提供了在任何自定义数据集上实现 YOLO V8 检测和跟踪的分步说明。说明包括克隆存储库、安装依赖项、使用深度排序实现对象跟踪以及下载示例视频进行测试。

  • 00:05:00 在视频的这一部分,演示者解释了用于显示图像和训练信息的库,并演示了如何使用 Google Colab 设置 YOLOv8 所需的环境。演示者克隆 YOLOv8 的 GitHub 存储库,安装必要的库,然后导航到检测文件夹。然后演示者展示了如何从 Roboflow 下载所需的自定义数据集并将其解压缩以获得训练、测试和验证文件夹。

  • 00:10:00 在视频的这一部分,演示者讨论了使用深度排序算法实现对象跟踪。他们下载深度排序文件并解压缩,然后显示混淆矩阵,这是一个显示模型处理不同类别的能力的图表。他们解释说,混淆矩阵表明该模型在 67% 的时间内正确检测到露营车,但有时会将它们分类为简单汽车。他们还讨论了训练和验证损失的重要性,以及他们如何检查验证批次的模型预测。最后,他们从 Google Drive 下载自定义模型的权重并对其进行验证,表明当 IOU 为 50% 时,平均精度较高。

  • 00:15:00 在本节中,演示者使用从他们的 Google 云端硬盘下载的演示视频对构建的模型进行推理,从而测试模型的准确性。该视频显示了高速公路上的汽车和卡车,结果表明该模型运行良好,每个对象都分配了唯一 ID,并且还可以进行跟踪。本教程中使用的协作文件可在其 GitHub 存储库中找到。另一个视频也进行了测试,结果同样不错,有些情况需要改进。演示者分享了他们已经在自定义数据集上使用 YOLOv8 实现了对象检测跟踪,并为感兴趣的人分享了协作笔记本文件。
Real-Time Object Detection and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
Real-Time Object Detection and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
  • 2023.01.22
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttracking#...
 

在自定义数据集上使用 YOLOv8 进行实时对象分割和跟踪:完整教程



在自定义数据集上使用 YOLOv8 进行实时对象分割和跟踪:完整教程

本视频教程是有关使用 YOLOv8 在自定义数据集上进行实时对象分割和跟踪的综合指南。该教程贯穿了整个过程,包括导入数据集、使用 YOLOv8 和深度排序算法训练自定义模型,以及在演示视频上测试模型。演讲者提供了实施所需的代码和库,并展示了模型预测的结果。他们还解释了混淆矩阵并提供了访问 GitHub 上的输出视频和 polar 文件的链接。总的来说,本教程对于任何希望使用 YOLOv8 学习对象分割和跟踪的人来说都是一个很好的资源。

  • 00:00:00 在本节中,视频教程介绍了如何使用 YOLOv8 对自定义数据集进行分割和跟踪。本教程逐步完成实施,并使用存储库来帮助实施。演示者解释了如何导入所需的库和依赖项,以及如何从 Roboflow 访问和下载无人机交通数据集。还提供了导入数据集所需的代码,以及有关如何成功运行代码的说明。需要强调的是,观看完整视频以充分理解核心概念非常重要。

  • 00:05:00 在本节中,演讲者解释了如何使用 YOLOv8 和深度排序算法训练用于对象跟踪的自定义模型。他们提到了将数据集从 Roboflow 下载到 Google colab notebook、下载 Deep Sort 文件并训练自定义模型以检测不同类别对象(包括自行车、公共汽车、汽车和卡车)的过程。演讲者分享了模型在 validation batch 上的预测结果,将模型权重保存到 Google Drive,并下载了演示视频来测试模型的性能。他们解释了混淆矩阵以及它如何揭示模型对不同类别对象的准确性。总体而言,该视频提供了有关在自定义数据集上使用 YOLOv8 进行实时对象分割和跟踪的完整教程。

  • 00:10:00 在视频的这一部分,演示者在两个演示视频上测试了模型并展示了结果。该模型能够准确地检测和跟踪对象,为每个对象提供唯一的 ID 并创建跟踪其移动的轨迹。演示者提供了一个链接,用于访问 GitHub 上的输出视频和 polar 文件。

  • 00:15:00 在本节中,演讲者展示了他们在自定义数据集上使用 YOLOv8 进行对象分割和跟踪项目的结果。演讲者展示了他们的输出视频,并提到检测非常好,观众可以下载文件自己查看结果。演讲者还提醒观众订阅该频道,以观看未来有关新主题的视频。
Real Time Object Segmentation and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
Real Time Object Segmentation and Tracking using YOLOv8 on Custom Dataset: Complete Tutorial
  • 2023.01.25
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttracking#...
 

使用 YOLOv8 的道路标志和交通灯检测和颜色识别



使用 YOLOv8 的道路标志和交通灯检测和颜色识别

此 YouTube 教程展示了使用 YOLOv8 进行道路标志检测和颜色识别。演示者介绍了数据集,其中包含 17 种不同类别的道路标志,图像分布均衡。 YOLOv8 模型经过 100 多个 epoch 的训练和微调,得到了 iou50 和 ioub50 的良好平均精度分数。演示者演示了如何解释混淆矩阵并在验证数据集上验证模型。然后在两个演示视频上对该模型进行了测试,均显示了准确的检测结果。总体而言,YOLOv8 在检测道路标志和交通信号灯方面表现良好。

  • 00:00:00 在视频教程的这一部分中,演示者介绍了将用于训练 YOLOv8 道路标志检测模型的道路标志数据集。该数据集包含 17 种不同类别的路标,共有 2093 张图像用于训练、验证和测试目的。数据集是平衡的,这意味着所有类别的图像分布几乎相等,除了绿灯的图像数量略多。演示者还展示了如何将数据集从 RoboFlow 导入 Google Colab notebook 并安装实现 YOLOv8 所需的库,包括用于管理文件路径的 ultralytics 和 glob 库,以及用于显示输入和输出图像的图像和显示库。演示者还提供了通过克隆 GitHub 存储库或通过 pip 从 ultralytics 包安装 YOLOv8 的选项。

  • 00:05:00 iou50 是经过训练的 YOLOv8 模型在道路标志检测和颜色识别任务上的性能的良好指标。该模型已经在大型数据集上进行了训练,并经过 100 多次微调,得到了 iou50 的平均精度为 95.8% 和 ioub 50 的平均精度为 81.3%。具有最高平均精度的最佳权重已保存为“best.pt”。总体而言,检测图像数据集中 17 种不同类别的道路标志和交通信号灯的结果相当不错。

  • 00:10:00 在视频的这一部分,演示者解释了运行 YOLOv8 模型后保存在训练文件夹中的不同文件,用于道路标志和交通信号灯检测和颜色识别。这些文件包括每个 epoch 的混淆矩阵、F1 曲线、精度曲线、召回曲线和模型性能。他们还演示了如何解释混淆矩阵以及如何使用模型的最佳权重在验证数据集上验证模型。最后,他们建议对模型进行更长时间的训练可以进一步提高结果的平均精度。

  • 00:15:00 在视频的这一部分中,演示者在验证数据集图像上验证了模型,并获得了令人印象深刻的主要平均精度分数。然后,该模型在两个演示视频上进行了测试,成功检测到“请勿左转”、“停车”、“红灯”等标志。演示视频从 Pixel 站点下载,然后上传到 Google 云端硬盘。显示输出视频并显示具有准确的检测结果。总体而言,该模型在使用 YOLOv8 检测道路标志和交通信号灯方面表现良好。
Road Signs and Traffic Lights Detection and Color Recognition using YOLOv8
Road Signs and Traffic Lights Detection and Color Recognition using YOLOv8
  • 2023.03.02
  • www.youtube.com
#yolo #yolov8 #objectdetection #computervision #opencv #opencv #opencvpython #pytorch #python Road Signs and Traffic Lights Detection and Color Recognition u...
 

使用 YOLOv8 进行坑洼检测和分割(图像和视频)|自定义数据集 |完整指南



使用 YOLOv8 进行坑洼检测和分割(图像和视频)|自定义数据集 |完整指南

该视频演示了如何使用 YOLOv8 创建用于坑洼检测和分割的自定义数据集。演示者展示了克隆和注释图像数据的步骤,并推荐使用 Google Collab 来训练模型。还讨论了 YOLOv8 的必要依赖项,以及设置数据集位置和训练模型。该模型的平均检测精度为 0.532,分割精度为 0.531,在视频坑洼检测方面表现良好。演示者在验证自定义模型并取得良好效果后结束视频。

  • 00:00:00 在这部分视频中,作者演示了如何使用 YOLOv8 创建用于坑洼检测和分割的自定义数据集。作者使用 Roboflow 创建自己的工作区和项目,并解释了为工作区选择公共计划以便能够将数据集导出到 Google Colab 的重要性。作者还展示了如何导入视频或图像,以及如何克隆公开可用的数据集来补充自己的数据集。最后,作者展示了如何克隆图像和注释,最终生成了一个包含 50 张图像的数据集,用于坑洼检测和分割。

  • 00:05:00 在这部分视频中,演示者演示了如何使用 YOLOv8 克隆和注释图像数据以进行坑洞检测和分割。他们首先从原始数据集中克隆剩余的 46 张图像,使总数达到 96 张图像。注释过程涉及连接多边形中的点以指示每个图像上坑洞的位置。然后演示者演示如何保存注释并将其分配给每个图像。该过程非常耗时,但可以按照视频中概述的步骤轻松完成。

  • 00:10:00 在视频的这一部分,演示者讨论了为坑洞检测和分割标注数据集的过程。他演示了如何使用注释工具生成数据集,然后继续使用 Google Collab 上的 YOLOv8 算法训练模型。主持人还提到,无需任何编码,只需单击一下即可在 RoboFlow 上训练模型,但他建议使用 Google Collab 学习新事物。该视频展示了如何在设置工作目录和安装依赖项之前导入所需的库并克隆 GitHub 存储库。

  • 00:15:00 在视频的这一部分,演示者提供了安装 YOLOv8 和分割所需依赖项的说明,强调在训练之前这样做很重要,以避免以后出现库问题。演示者还演示了将数据集从 RoboFlow 导入 Google 文件夹并下载,以及设置数据集位置和训练模型。演示者还确认并修复了针对跟踪调整的 predict.py 文件中的错误。

  • 00:20:00 能够在 IOU 为 50 时以 0.532 的平均精度检测坑洼,在 IOU 从 0.50 到 0.95 变化时为 0.218。该模型在样本视频上进行了测试,在检测坑洼方面表现良好。显示的混淆矩阵显示了数据在不同类别之间的分布。总的来说,该模型在检测坑洼方面效果很好。

  • 00:25:00 在视频的这一部分中,演示者尝试使用 YOLOv8 验证用于坑洼检测和分割的自定义模型。他们遇到了一个问题,即模型在 50% 的时间内无法检测到坑洼,从而导致黑屏。然后演示者添加了最佳 DOT 权重路径,并能够纠正该问题。然后,他们继续在验证批次上显示预测,并实现了 0.538 的检测平均精度和 0.531 的分割精度。该模型在多个演示视频上进行了测试并且运行良好,演示者对视频进行了总结。
Potholes Detection and Segmentation using YOLOv8 (Images & Videos)| Custom Dataset | Complete Guide
Potholes Detection and Segmentation using YOLOv8 (Images & Videos)| Custom Dataset | Complete Guide
  • 2023.02.07
  • www.youtube.com
#objectdetection #potholes #yolo #yolov8 #computervision #segmentation #customdataset #machinelearning In this video, we will implement the Potholes detec...
 

YOLOv8 自定义对象检测和跟踪 |船舶检测 |完整教程



YOLOv8 自定义对象检测和跟踪 |船舶检测 |完整教程

YouTube 教程涵盖了在自定义船舶检测数据集上使用深度排序对象跟踪实现 YOLOv8。该视频讨论了如何从 RoboFlow 下载数据集、在 Expense ID 中设置项目以及在 Google Colab 中训练模型。训练脚本运行了 70 个时期,平均精度为 0.968,IOU 为 50。演示者分析了损失和平均精度图,表明训练更多时期会产生更好的结果。然后,他们演示了如何在验证数据集上验证模型并显示验证数据集图像上的平均精度。最后,他们展示了一些实际模型的演示视频,包括错误预测的示例。

  • 00:00:00 在本节中,视频教程涵盖了自定义对象检测和跟踪项目的数据集,其中包括大约 794 张无人机拍摄的船只图像,只有一个名为“board”或“shape”的类。本教程随后展示了如何从 RoboFlow 下载数据集并将其导出到 Google Colab 或 Expense ID,后者提供 25 个免费积分和 Tesla T4 或 V100 GPU 来训练机器学习模型。最后,本教程讨论了在 Expense ID 中设置项目并打开带有 Expense 服务器选项的 Jupyter 笔记本,以便在数据集上训练 YOLOv8 对象检测模型。

  • 00:05:00 在 YouTube 教程的这一部分中,讲师解释了项目设置并提供了一个 GitHub 存储库链接,以在自定义船舶检测数据集上实现具有深度排序对象跟踪的 YOLO v8。该视频展示了如何将 GitHub 存储库克隆到 Google Colab 笔记本中,并使用 pip 安装必要的库。 notebook脚本有详细的解释,包括如何导入图片库、设置当前工作目录、下载预训练模型等。讲师强调了在运行训练、测试或验证脚本之前以正确的顺序运行脚本并安装所有必需的库以避免错误的重要性。

  • 00:10:00 在本节中,演讲者解释了如何从 RoboFlow 下载船舶图像数据集并使用 DeepSort 实现对象跟踪。然后,他们在船舶数据集上训练 YOLOv8 模型,设置数据集位置和默认图像大小,然后运行 70 个 epochs 的训练脚本。结果显示,IOU 为 50 时的平均精度为 0.968,这意味着该模型正确识别了图像中 96.8% 的船只。权重文件保存在 train 文件夹中,混淆矩阵显示该模型在检测船舶存在方面的准确率为 96%,失败率为 4%。训练损失不断减少,表明训练更多的 epoch 会产生更好的结果。

  • 00:15:00 在视频的这一部分,演示者分析了损失图和平均精度图,表明训练损失在不断减少,平均精度随着epochs的增加而不断增加。然后,他们演示了如何在验证数据集上验证模型,并显示在验证数据集图像上使用 iou50 的平均精度为 96.4%,使用 iou50 到 95 的平均精度为 71.6%。然后演示者展示了一些演示视频,使用 predict.pi 脚本传递最佳模型权重,在多个视频上测试模型并演示模型如何检测板并为每个对象分配唯一 ID。最后,他们展示了模型做出错误预测的示例。
YOLOv8 Custom Object Detection and Tracking | Ships Detection | Complete Tutorial
YOLOv8 Custom Object Detection and Tracking | Ships Detection | Complete Tutorial
  • 2023.03.09
  • www.youtube.com
#yolo #yolov8 #objectdetection #objecttracking #deepsort #computervision #opencv #pytorch #python A complete YOLOv8 custom object detection and Tracking t...
 

YOLOv8 和 VGG16 用于人脸、性别检测、人脸计数和人员跟踪 |自定义数据集



YOLOv8 和 VGG16 用于人脸、性别检测、人脸计数和人员跟踪 |自定义数据集

视频教程讲解了使用 YOLOv8 和 VGG16 模型进行人脸检测、性别分类、人脸计数和人员跟踪的过程。本教程涵盖了实施和训练这些模型的各个方面,包括数据准备、数据扩充、微调预训练的 VGG16 模型、使用迁移学习以及训练 YOLOv8 模型进行人脸检测。演示者还解释了如何在 Google Colab 笔记本中安装 Google Drive、访问和转换图像数据集、下载所需的库以及使用深度排序集成对象跟踪。该教程提供了详细的代码解释,包括在检测到的对象周围绘制边界框、集成性别分类模型、计算帧中的人脸数量以及使用 deepsort.update 为每个检测到的人脸分配一个唯一 ID。

  • 00:00:00 在视频教程的这一部分中,解释了使用 YOLOv8 和 VGG16 进行性别分类的人脸检测和跟踪的人脸计数的工作流程。第一步是准备包含男性和女性面部图像的数据集,训练用于性别检测的 VGG16 模型,然后训练用于面部检测的 YOLOv8 模型。通过 YOLOv8 的人脸检测,使用经过训练的 VGG16 模型完成性别分类。然后使用 Deepsort 实现对象跟踪,为每个检测到的人脸或人分配一个唯一的 ID。笔记本分为九个步骤,包括导入所需的库、安装 Google Drive、加载数据集、将图像和标签转换为数组、应用数据增强、基于性别分类数据微调 VGG16 模型、绘制训练和验证损失以及使用示例图像进行测试。

  • 00:05:00 在本节中,演讲者讨论了可用于将图像转换为 numpy 数组的各种库和函数,反之亦然。他们还解释了两个破折号分类库的使用以及在神经网络中安排层的顺序和功能方法的概念。展平层用于将多维输入转换为一维,而密集层用于定义输出层大小。此外,他们还讨论了迁移学习与 VGG16 模型的使用以及训练测试拆分、numpy 和操作系统库的导入。最后,他们提到使用 gdob 库来访问文件夹中的所有文件,以及使用 random 库来洗牌图像数据集。

  • 00:10:00 在本节中,视频介绍了如何使用 Google Colab 笔记本安装 Google 云端硬盘以访问以 zip 格式上传的数据集。该数据集包括男性和女性面部图像,视频展示了如何解压缩和访问包含这些图像的文件夹。使用 glob 库,视频访问数据集文件夹中的所有图像文件,并将它们转换为数组格式,并带有指示图像是男人还是女人脸的标签。该视频显示了一个示例图像,并解释了图像文件变量如何包含 men 和 women 文件夹的所有图像文件路径,可以使用 cb2.im read 读取。

  • 00:15:00 在本节中,演讲者解释了他们如何准备用于面部和性别检测的数据集。他们创建了一个“男人”和“女人”文件夹,调整其中图像的大小,并将它们转换成数组,然后存储在数据列表中。他们将相应的标签值附加到标签列表中,女性为 1,男性为 0。然后使用 NumPy 将数据和标签列表转换为数组。演讲者还演示了使用图像数据生成器进行数据增强,通过应用各种变换从单个图像生成多个图像。然后,他们在性别分类数据集上微调预训练的 VGG16 模型,并实施 softmax 激活来定义输出层。输出大小设置为 2 以对男性或女性进行分类。

  • 00:20:00 在视频教程的这一部分中,演讲者演示了用于面部和性别检测的 VGG16 模型,并展示了如何在通用分类数据集上对其进行训练。模型保存为.H5格式,计算其准确率、验证准确率和损失部分。使用 cv2.dsize,将图像调整为 100x100 维度并转换为数组,模型预测图像中包含男性还是女性。在本教程的下一部分中,YOLOv8 模型将在人脸数据集上进行训练,以检测人脸并分配唯一 ID 进行跟踪。演讲者还提到,面部计数将使用添加到 predict.pi 文件的简单代码来实现。总的来说,本教程分为七个步骤。

  • 00:25:00 在本节中,演示者介绍了他们将使用深度排序实现对象跟踪的 GitHub 存储库,以及用于缩小面部的 YOLO V8 模型。他们讨论了在集成深度排序对象跟踪代码以为每个人分配一个唯一 ID 之前,他们将如何检测面部并执行性别分类。然后演示者将他们的当前目录设置为克隆存储库,并安装脚本所需的所有必需库和依赖项。他们还将 RoboFlow 的数据集下载到他们的 Google Colab 笔记本中,但由于拥有私人帐户而遇到问题。

  • 00:30:00 使用预训练的 YOLOv8 模型的权重进行人脸检测。数据集已下载并保存到我的 Google Drive 帐户中,我已经训练了一个 YOLOv8 模型 80 个 epochs 用于人脸检测。训练好的模型已经保存,权重也已经下载到Google Colab notebook中。深度排序文件也被下载到笔记本中,因为对象跟踪将使用深度排序来实现。此外,还训练了一个 VGG16 模型用于性别检测,模型的 .h5 文件已保存并下载到 Google Drive 帐户。示例视频是从 Google Drive 下载的,用于测试 predict.pi 脚本,其中包括性别分类器代码和面部计数。

  • 00:35:00 在本节中,演讲者解释了为使用深度排序实现对象跟踪而添加的代码。初始化深度排序对象跟踪端口,并定义一个函数来将从 YOLOv8 模型接收的输出转换为深度排序的兼容格式。 UI 框函数在检测到的对象周围创建边界框,而绘制框函数调用 UI 框和绘制边框函数为文本绘制圆角矩形。深度排序跟踪代码与绘制轨迹的能力集成在一起。然后演讲者解释了 Paint 文件中性别分类器和计数函数的代码。计数函数用于对每一帧中的每个对象进行计数。总体而言,该代码解释了如何将 YOLOv8 的 X1、Y1、X2 和 Y2 输出值转换为中心坐标、高度和宽度值,以使用深度排序进行对象跟踪,从而在实际应用中实现对象检测和对象跟踪。

  • 00:40:00 在本节中,演讲者讨论了将YOLOv8模型转换为边界框的xcyc中心坐标和边界框的宽度和高度,以使其兼容深度排序对象跟踪。他们还解释了标签功能的计算颜色如何为检测到的对象分配独特的颜色,以及绘制 Dash 边框功能如何在写入标签和置信度分数的边界框上方创建一个矩形。演讲者还谈到了性别分类器类,以及如何在视频的每一帧上加载和使用它来对检测到的对象进行性别分类。此外,他们还提到了 UI Dash boxes 函数和 draw Dash boxes 函数,用于创建边界框和调用性别分类器函数。

  • 00:45:00 在本节中,演示者解释了如何使用性别分类模型来检测人脸是男性还是女性。检测到人脸后,只有边界框坐标被传递给性别分类模型。然后模型会预测这张脸是属于男人还是女人,并相应地将标签添加到边界框上方。然后演示者解释了函数 count,它使用名为 Foundry-classes 的字典来存储在帧中检测到的人脸数量。计数显示在视频或图像顶部上方的 UI 中。

  • 00:50:00 在本节中,演讲者解释了在 FaceDetails 类中的 Foundry 类字典中存储了当前帧中检测到的人脸数量的计数。该字典包含两个值,包含“face”的键变量和包含在当前帧中检测到的人脸数量的值变量。说话者使用计数函数来显示每帧中检测到的人脸数量,并使用 deepsort.update 为每个检测到的人脸分配一个唯一的 ID。演讲者还创建了一个普通类、一个分类类和一个危险类。模型检测在多个演示视频上进行了测试,演讲者在每一帧中展示了检测结果。
YOLOv8 and VGG16 for Face, Gender Detection, Face Counting, and People Tracking | Custom Dataset
YOLOv8 and VGG16 for Face, Gender Detection, Face Counting, and People Tracking | Custom Dataset
  • 2023.03.05
  • www.youtube.com
#objectdetection #computervision #yolo #yolov8 #ultralytics #transferlearning #vgg16 #objecttracking #deepsort #facedetection #opencv #opencvpython #pytorc...
 

使用 YOLOv8 和对象跟踪的人数统计 |人数统计(进入和离开)



使用 YOLOv8 和对象跟踪的人数统计 |人数统计(进入和离开)

该视频介绍了如何使用 YOLOv8 和对象跟踪创建人数统计器。该过程涉及检测具有唯一 ID 的物体,找到检测到的物体的中心坐标,使用 Deep SORT 跟踪物体,并检测物体何时越过特定线以统计进入和离开特定区域的人数。唯一 ID 存储在列表中以计算进入和离开该区域的人数,并且计数以图形方式显示为绿色和红色圆圈。该视频还提供了该项目的代码,并实时演示了系统的输出。

  • 00:00:00 在视频教程的这一部分,演示者解释了如何使用 YOLO V8 和对象跟踪创建人员计数器。该流程从实施 YOLO V8 对象检测开始,以检测人员并为每个检测到的对象分配一个唯一的 ID。然后,找到检测到的对象的中心坐标,然后使用 Deep SORT 进行对象跟踪,为每个检测到的对象分配一个唯一的 ID。之后,绘制线条以检测何时有人穿过它们,并将他们的唯一 ID 添加到列表中。最后,找到列表的长度以获得穿过每条线的总人数。

  • 00:05:00 在本节中,视频解释了使用 YOLOv8 和对象跟踪进行人数统计的过程。该方法涉及跟踪对象边界框的中心坐标并检测它何时越过绿线。然后将对象的唯一 ID 添加到列表中,该列表用于计算已通过该行的对象的总数。该过程逐帧重复,每次有对象通过该线时计数都会增加。该视频还演示了用于此项目的代码,其中包括安装依赖项和使用深度排序对象跟踪方法。

  • 00:10:00 在视频的这一部分,演示者下载深度排序文件并打开预测脚本以根据他们的项目要求进行必要的更改。演示者删除轨迹和不必要的数据,并使用视频输入创建两条线用于向上和向下计数。他们找到每条线的坐标点,这将使他们能够跟踪穿过每条线的人数和总人数。演示者共享他们的屏幕以演示如何找到坐标并强调关注正确区域的重要性。

  • 00:15:00 在本节中,演讲者解释了如何定义线的坐标并创建一个空列表。该线的坐标是从上一步复制的,空列表将存储穿过它的对象的唯一 ID。该脚本还计算边界框的宽度和高度,并根据人物是向上还是向下将唯一 ID 存储在适当的列表中。演讲者提供了本节中使用的点和坐标的可视化表示。

  • 00:20:00 在视频的这一部分,演讲者解释了使用 YOLOv8 和对象跟踪的 People Counter 项目的代码。它们通过代表边界框中心坐标的 CX 和 CY 坐标,以及它们如何用于在检测到的对象周围绘制圆形和矩形。演讲者还解释了如何使用 cv2.puttext 函数将每个对象的唯一 ID 和标签添加到矩形中。最后,他们解释了当对象的 CX 坐标越过某条线时,唯一 ID 如何存储在空列表中,表示进入或退出。

  • 00:25:00 在本节中,演示者解释了如何将唯一 ID 附加到上行人员和下行人员的总计数列表中。当中心坐标通过线的上方或下方时,根据计数,它将附加到相应的列表中。每个列表的长度表示上升和下降的人数,使用两个圆圈以图形方式显示,其中绿色表示上升的人数,红色表示下降的人数。演示者强调定义全局总计数和总下降变量并使用 cb2.9 创建一条线。该代码利用 CPU/DPM 圆来创建计数的循环表示。演示者提醒观众确保运行时设置为 GPU,会话可能需要几秒钟来下载必要的文件。

  • 00:30:00 在本节中,演讲者将演示如何下载和运行一个脚本,该脚本使用 YOLOv8 和对象跟踪来计算视频中进入和离开特定区域的人数。该脚本将视频分成几帧并逐帧处理,以跟踪人们的移动并在他们越过特定线路时对他们进行计数。输出是一个带注释的视频,实时显示进入和离开该区域的人数。演讲者还展示了输出视频,并解释了脚本如何成功计算人员移动。

  • 00:35:00 在本节中,视频教程演示了使用 YOLOv8 和对象跟踪来统计进入和离开特定区域的人数。系统对穿过图像上一条线的个人进行计数,并根据移动方向将计数显示为递增计数或递减计数。该系统的脚本文件也已共享,鼓励观众订阅该频道并竖起大拇指。
People Counter using YOLOv8 and Object Tracking |People Counting (Entering & Leaving)
People Counter using YOLOv8 and Object Tracking |People Counting (Entering & Leaving)
  • 2023.02.21
  • www.youtube.com
#yolo #yolov8 #objectdetection #computervision #objectracking #machinelearning #people #peoplecounting #peoplecounter #pytorch #opencv #opencvpython #deepsor...
 

使用 YOLOv8 进行实时对象检测、跟踪、模糊和计数:分步教程



使用 YOLOv8 进行实时对象检测、跟踪、模糊和计数:分步教程

本教程重点介绍使用 YOLOv8 通过实时对象检测和跟踪实现对象模糊和计数。本教程提供了下载所需文件的步骤,包括用于对象跟踪的 Deep Sort 文件和用于测试的示例视频。本教程使用 OpenCV 的 CV2 库对检测到的对象进行模糊处理,并提供用于对象检测、跟踪和模糊处理的代码。演讲者演示了确定边界框坐标、裁剪图像和应用模糊功能的过程。此外,演示者还解释了使用字典计算每个帧中对象总数的代码,并演示了代码如何在显示每个帧中的对象总数时检测、跟踪和模糊对象。总的来说,效果不错,说明中提供了该项目的GitHub仓库。

  • 00:00:00 在本教程的这一部分中,重点是模糊检测到的对象并计算每帧中的对象数量。本教程使用 YOLOv8 进行带有跟踪 ID 和轨迹的对象检测。本教程提供了从选择 GPU 运行时到运行脚本以下载所需文件的分步指南,包括用于对象跟踪的深度排序文件和用于测试的示例视频。本教程还重点介绍了使用 OpenCV 的 CV2 库对检测到的对象进行模糊处理,并提供了用于实现对象检测、跟踪和模糊处理的代码。

  • 00:05:00 在本节中,视频教程介绍了如何使用 YOLOv8 对实时对象检测和跟踪中检测到的对象进行模糊处理。要实现这一点,需要知道边界框的坐标,包括左上顶点和右下顶点,然后模糊边界框内的对象。坐标存储在“predict.pi”文件中,可以获取这些值来模糊对象。

  • 00:10:00 在视频的这一部分中,演讲者解释了如何对检测到的对象的边界框内的对象进行模糊处理。他首先确定边界框的坐标,然后将图像裁剪为仅包含边界框所在的区域。然后,他应用使用 CV2 点模糊的模糊功能并设置血液比率,这决定了该区域的模糊度。演讲者通过编写和运行脚本来演示该过程。

  • 00:15:00 在这部分视频中,演示者演示了如何使用 YOLOv8 实现对象模糊以进行实时对象检测、跟踪和计数。在进行一些小的修正并运行脚本后,演示者展示了对象模糊功能的结果,效果很好。接下来,演示者继续解释用于计算每个帧中对象总数的代码,其中涉及创建一个包含对象名称及其在当前帧中出现的次数的字典。演示者没有显示这部分的代码,以免视频太长。

  • 00:20:00 在本节中,演示者解释了计数函数,该函数从包含对象名称及其计数(当前前帧中出现的次数)的字典中提取键和值。此函数创建一个矩形并用显示对象出现次数的文本覆盖它。演示者还演示了代码如何检测和跟踪对象、对其进行模糊处理以及显示每个帧中的对象总数。结果不错,在描述中提供了该项目的 GitHub 存储库。
Real-Time Object Detection, Tracking, Blurring and Counting using YOLOv8: A Step-by-Step Tutorial
Real-Time Object Detection, Tracking, Blurring and Counting using YOLOv8: A Step-by-Step Tutorial
  • 2023.01.21
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttrack...