首页 > 其他分享 >与 YOLO 一起寻找 Waldo

与 YOLO 一起寻找 Waldo

时间:2022-08-29 06:44:07浏览次数:198  
标签:尔多 Waldo 训练 YOLO 寻找 实时 图像

与 YOLO 一起寻找 Waldo

克莱尔索西

在本教程中,我将展示如何使用一个有故障的旧网络摄像头、一块玻璃和一个高性能 GPU 来构建一个实时寻找沃尔多的 AI。

《沃利在哪里》是英国插画家马丁·汉福德于 1987 年首次出版的一系列儿童益智书籍。该系列在美国和加拿大以“Where's Waldo”的名义出版。超过 7300 万本书以 26 种语言出版,销往 50 多个国家。这本书的主题是沃尔多,他的圆眼镜、红白条纹毛衣和相配的条纹波波帽很容易辨认。然而,场景往往非常繁忙,并且在沃尔多的服装上带有许多图案不明显的红鲱鱼,这对读者定位沃尔多提出了挑战。

我们的 Waldo-finding 解决方案将基于 YOLOv7 ,一种快速的单阶段目标检测计算机视觉算法。

目标检测的挑战之一是速度和精度之间的权衡。在其他使用链式回归和分类网络的算法一直在努力解决比实时运行更快的推理问题,YOLO 对图像进行分割,并以更快的速度执行并发回归和分割。它使用 Intersection-Over-Union 评估置信度。

YOLO 代表“你只看一次”。第 7 版于 2022 年 7 月根据 GPT-3 开源许可证发布,代表了“最先进的技术”。最新版本由 王、博奇科夫斯基和廖 包含了研究人员所描述的“可训练的免费赠品包”,这超出了本文的范围,但包含了计划的重新参数化卷积、粗略的辅助引线损失和复合模型缩放。

YOLOv7 是用 C++ 编写的,但可以作为一组 Python 脚本使用,也可以在 PyTorch 的 TorchHub 中使用。它产生的 mAP 分数优于 EfficientNet-D7x,但推理时间呈指数级降低。它还优于带有 ResNet-101 的 F-RCNN。

YOLO v7 Performance Comparisons

事实上,更大的 W6 变体 YOLOv7 网络架构可以以高达每秒 84 帧的速度对 720p 高清视频切片执行连续实时推理:

Yolo Performance Metrics

理论够了。让我们在沃尔多失去兴趣并撤回对这个实验的同意之前开始吧。

良好的计算机视觉在训练之前很久就开始了。我们需要建立一个高质量的成像站,具有 (a) 良好的照明,(b) 不会扭曲几何形状的良好摄像机角度,以及 (c) 如果您没有足够的摄像机分辨率,可以扫描页面一次捕获整个页面。

不幸的是,我所拥有的只是一个有故障的旧罗技高清网络摄像头(它不会给我带来与 4K 数码单反相机完全相同的性能)。我将使用一块咖啡桌玻璃和便携式电池灯在我的厨房长凳上设置成像站,有时我会在黑暗的酒店房间中使用它来进行视频会议。 Waldo 书籍往往有光面的页面,这会导致眩光。我选择坚持,但如果这个相机光晕成为一个问题,你可以考虑稍微倾斜这本书(注意几何扭曲),或者用一些哑光喷雾处理它(注意页面粘在一起)。

为了捕捉训练图像,我使用 OpenCV 编写了一个简短的 Python 脚本,但您也可以使用自己喜欢的相机软件轻松完成相同的操作。我还使用在互联网上找到的一些“Waldo 壁纸在哪里”来扩充我的训练图像。在这里承认妥协很重要——总是最好使用相同的成像系统和环境进行训练和推理。拥有足够的训练数据以获得良好的精度也很重要。

接下来,我们需要对图像进行注释。 Groundtruth 注释可能是计算机视觉中成本最高的方面之一——尤其是当它需要你坐下来在数百张图像中找到每一个 Waldo 时!!!我注释使用 矩形标签 ,但您也可以使用 ImgLab 或 Scale 或 LabelBox 的托管服务之一。

Take Note, Computer — This is a Waldo

记住要遵循图像标注的原则:

  1. 将整个目标包括在边界框中
  2. 排除尽可能多的无关信息
  3. 在边界框中包括对象的任何被遮挡部分

RectLabel 以 PASCAL VOC 格式生成图像标签。然而,YOLO 期望在 DarkNet 中使用标签文本文件格式。

因为我还需要一些训练数据预处理,所以我将训练数据上传到 机器人流 它提供托管的预处理服务。使用 Roboflow,我将填充图像以使其对称,执行图像增强,格式转换标签,并重新调整图像的大小以实现兼容性。 Roboflow 也有一个很好的模型动物园和笔记本集成,这使得从预处理到训练的快速跳板。

现在我们准备好训练我们的算法了。我从 Github 克隆了算法 这里 .为了加速训练,我还使用基于 COCO 图像分类数据集的预训练权重进行迁移学习(检查点文件可用 这里 )。我在 120 个训练图像上训练了 350 个 epoch——是的,我找到了 Waldo 120 次。该模型有 3700 万个参数。我们的训练运行消耗 37 GB 的 GPU RAM,在 NVIDIA A100 上需要 32 分钟才能完成。

让我们看一下结果:

有一些关于精度指标的有趣观察。事实证明,较新的“沃尔多在哪里”书籍增加了可找到角色的数量。 Waldo 的朋友 Wenda 和他的宿敌 Odlaw(Waldo 有异回文敌人?),他们的长相和穿着都与 Waldo 相似,也出现在每个场景中,给我们的模型引入了潜在的误报错误。

让我们看看我们的“Waldo-finding, webcam-binding”模型如何针对测试图像执行:

最后,让我们拿起一本“Waldo 在哪里”的书,并对实时视频进行一些实时推断。忽略我的网络摄像头的故障,我们能够在每个场景中实时快速检测到 Waldo!

在本教程中,我们讨论了应用最先进的 YOLOv7 算法来训练目标检测模型以寻找 Waldos。我们将其部署用于全帧速率实时视频的实时推理。实时目标检测是一种变革性技术,在媒体和娱乐、医疗保健和生命科学、生态和农业、国防和边境保护以及零售、工业和制造业的许多领域都有广泛的应用。

感谢您的关注。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/1384/36312906

标签:尔多,Waldo,训练,YOLO,寻找,实时,图像
From: https://www.cnblogs.com/amboke/p/16634667.html

相关文章

  • YOLOV:图像对象检测器在视频对象检测方面表现也很不错
    前言 与传统的两段pipeline不同,论文提出了在一段检测之后再进行区域级的选择,避免了处理大量低质量的候选区域。此外,还构建了一个新的模块来评估目标帧与参考帧之间的关系,......
  • 寻找Windows下MySQL的错误日志
    MySQL版本:5.6Windows版本:Win764MySQL的错误日志记录了MySQL服务器启动、关闭和运行时出错等信息。默认名称为host_name.err,保存在MySQL实例指定的data目录下。但在MyS......
  • 【力扣算法题】寻找树中最左下结点的值
    题目:给定一个二叉树的根节点root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。样例示例1:输入:root=[2,1,3]输出:1示例2:  ......
  • ModelBox开发体验:使用YOLOv3做口罩检测
    摘要:本案例将在ModelBox中使用YOLOv3模型,实现一个简单的口罩检测应用本文分享自华为云社区《ModelBox开发体验Day05开发案例-使用YOLOv3做口罩检测》,作者:孙小北。本案......
  • PerfView专题 (第八篇):洞察 C# 内存泄漏之寻找静态变量名和GC模式
    一:背景这篇我们来聊一下PerfView在协助WinDbg分析Dump过程中的两个超实用技巧,可能会帮助我们快速定位最后的问题,主要有如下两块:洞察内存泄漏中的静态大集合变量......
  • 436. 寻找右区间--LeetCode_二分
    来源:力扣(LeetCode)链接:https://leetcode.cn/problems/find-right-interval著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目大意是这样的 数组......
  • YOLOX 0.1.0 环境配置
    YOLOX训练自己的数据集一、准备数据集配置好PascalVOC格式的数据集,放入datasets文件夹下,或者跟项目名在同一级目录下也行。VOC数据集的格式为:VOCdevkit |--VOC2007......
  • PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏
    一:背景前几篇我们聊的都是非托管内存泄漏,这一篇我们再看下如何用PerfView来排查托管内存泄漏,其实托管内存泄漏比较好排查,尤其是用WinDbg,毕竟C#是带有丰富的元数据......
  • YOLO V5听课笔记
    【YOLOv5教程】花9888买的YOLOv5全套教程2022完整版现分享给大家!免费白嫖!值得收藏!——附赠课程与资料!——(人工智能、深度学习、机器学习)_哔哩哔哩_bilibili ......
  • 寻找带权图的最小连通:最小生成树
    出现背景树就是没有回路的图for无向图对于不带权的图,想找到一个最小连通边集合,很简答,可以使用生成树,n-1条边可以做到,不唯一对于带权的图,想找到权最小的生成树,称之为最......