yolov5论文_YOLOv5的妙用:学习手语,帮助听力障碍群体

编辑:魔王、杜伟

计算机视觉可以学习美式手语,进而帮助听力障碍群体吗?数据科学家 David Lee 用一个项目给出了答案。

如果听不到了,你会怎么办?如果只能用手语交流呢?

ccb89faddda430c0a7c64d8a9cc24aa4.gif

当对方无法理解你时,即使像订餐、讨论财务事项,甚至和朋友家人对话这样简单的事情也可能令你气馁。

对普通人而言轻轻松松的事情对于听障群体可能是很困难的,他们甚至还会因此遭到歧视。在很多场景下,他们无法获取合格的翻译服务,从而导致失业、社会隔绝和公共卫生问题。

为了让更多人听到听障群体的声音,数据科学家 David Lee 尝试利用数据科学项目来解决这一问题:

计算机视觉可以学习美式手语,进而帮助听力障碍群体吗?

如果通过机器学习应用可以精确地翻译美式手语,即使从最基础的字母表开始,我们也能向着为听力障碍群体提供更多的便利和教育资源前进一步。

数据和项目介绍

出于多种原因,David Lee 决定创建一个原始图像数据集。首先,基于移动设备或摄像头设置想要的环境,需要的分辨率一般是 720p 或 1080p。现有的几个数据集分辨率较低,而且很多不包括字母「J」和「Z」,因为这两个字母需要一些动作才能完成。

f5065129f98f040a941078f5bb99a3d3.png

为此,David Lee 在社交平台上发送了手语图像数据收集请求,介绍了这个项目和如何提交手语图像的说明,希望借此提高大家的认识并收集数据。

项目地址:https://github.com/insigh1/GA_Data_Science_Capstone

数据变形和过采样

David Lee 为该项目收集了 720 张图片,其中还有几张是他自己的手部图像。由于这个数据集规模较小,于是 David 使用 labelImg 软件手动进行边界框标记,设置变换函数的概率以基于同一张图像创建多个实例,每个实例上的边界框有所不同。

下图展示了数据增强示例:

501864802b42a350821b506d0edfbb59.png

经过数据增强后,该数据集的规模从 720 张图像扩展到 18,000 张图像

建模

David 选择使用 YOLOv5 进行建模。将数据集中 90% 的图像用作训练数据,10% 的图像用作验证集。使用迁移学习和 YOLOv5m 预训练权重训练 300 个 epoch。

5d2cdf4de09a25c1070bff32cf2b8d07.png

在验证集上成功创建具备标签和预测置信度的新边界框。

3d3a70525b152efaa03f80107267d2b8.png

由于损失值并未出现增长,表明模型未过拟合,因此该模型或许可以训练更多轮次。

模型最终获得了 85.27% 的 mAP@.5:.95 分数。

图像推断测试

David 额外收集了他儿子的手部图像数据作为测试集。事实上,还没有儿童手部图像用于训练该模型。理想情况下,再多几张图像有助于展示模型的性能,但这只是个开始。

ff6db0a989cbe0ecdd5f9b6963a795a4.png

26 个字母中,有 4 个没有预测结果(分别是 G、H、J 和 Z)。

四个没有得到准确预测:

D 被预测为 F;

E 被预测为 T;

P 被预测为 Q;

R 被预测为 U。

视频推断测试

ccb89faddda430c0a7c64d8a9cc24aa4.gif

‍即使只有几个手部图像用于训练,模型仍能在如此小的数据集上展现不错的性能,而且还能以一定的速度提供优秀的预测结果,这一结果表现出了很大的潜力。

更多数据有助于创建可在多种新环境中使用的模型。

如以上视频所示,即使字母有一部分出框了,模型仍能给出不错的预测结果。最令人惊讶的是,字母 J 和 Z 也得到了准确识别。

‍其他测试

David 还执行了其他一些测试,例如:

左手手语测试

d33edbb0aa752ec51f558951335f1d33.gif

几乎所有原始图像都显示的是右手,但 David 惊喜地发现数据增强在这里起到了作用,因为有 50% 的可能性是针对左手用户进行水平翻转。

‍儿童手语测试

d23dc514128fd6aa3c66a1fde10c4bec.gif

‍David 儿子的手语数据未被用于训练集,但模型对此仍有不错的预测。

‍多实例

d718a591e3e22fb12295fbc5d3874805.gif

尽管手语的使用和视频中有所不同,但这个示例表明当多个人出现在屏幕上时,模型可以分辨出不止一个手语实例。

模型局限性

David 发现,该模型还有一些地方有待改进。

距离

ad91c9bbdbe41bb9b3e36f54d78cd991.gif

许多原始图像是用手机拍摄的,手到摄像头的距离比较近,这对远距离推断有一定负面影响。

新环境

584d6fecb574c825bc33fb0e135a3993.gif

这支视频来自于志愿者,未用于模型训练。尽管模型看到过很多字母,但对此的预测置信度较低,还有一些错误分类。

‍背景推断

166b293dfc8c997469542752fc9e7ac0.gif

该测试旨在验证不同的背景会影响模型的性能。

结论

这个项目表明:计算机视觉可用于帮助听力障碍群体获取更多便利和教育资源!

该模型在仅使用小型数据集的情况下仍能取得不错的性能。即使对于不同环境中的不同手部,模型也能实现良好的检测结果。而且一些局限性是可以通过更多训练数据得到解决的。经过调整和数据集的扩大,该模型或许可以扩展到美式手语字母表以外的场景。

2dfe11fa22c7c2fbe1b203fb506aaeb4.gif

资源

Yolov5 GitHub 项目:https://github.com/ultralytics/yolov5

Yolov5 requirements:https://github.com/ultralytics/yolov5/blob/master/requirements.txt

Cudnn 安装指南:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

OpenCV 安装指南:https://www.codegrepper.com/code-examples/python/how+to+install+opencv+in+python+3.8

Roboflow 增强流程:https://docs.roboflow.com/image-transformations/image-augmentation

常用图像数据增强技术综述论文:https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0197-0#Sec3

Pillow 库:https://pillow.readthedocs.io/en/latest/handbook/index.html

labelImg:https://github.com/tzutalin/labelImg

Albumentations 库:https://github.com/albumentations-team/albumentations

原文链接:https://daviddaeshinlee.medium.com/using-computer-vision-in-helping-the-deaf-and-hard-of-hearing-communities-with-yolov5-7d764c2eb614

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python制作系统程序与html交互_python+html语音人物交互_flask后台与前端(html)交互的两种方法...

基于python flask框架搭建webflask后台与前端(html)交互的两种方法:方法1 使用flask-wtf 提供的表单用常见的登录为例:// An highlighted blockfrom flask_wtf import Formclass LoginForm(Form): # 登录表单ROLE SelectField(角色, choices[(s, 管理员…

Java 程序执行过程的内存流程图(结合类加载器 ClassLoader 讲解)

Student s new Student(); s.play(); Student s2 new Student();以上代码的执行流程如下: JVM 作为操作系统的一个迚程在系统中执行,那么系统会为 JVM 分配一块内存空间,这块内存空 间被 JVM 分为 3 大块(栈区、堆区、方法区) 一般而言&a…

虚拟内存越大越好吗_手机的运行内存真的是越大越好吗?6GB和8GB到底又该如何选择?...

许多人买手机,除了看处理器、外观以外,关注最多的莫过于手机的运行内存了。选择一个合适的运行内存几乎关系到整个手机使用寿命和命脉。那么我们现在买手机选择多大的运行内存合适呢?真的是越大越好吗?下面我们就来一起看看吧。选…

显微镜自动聚焦原理是什么_什么是共聚焦显微镜?你了解过共聚焦显微镜吗?...

更出色的表面分析ZEISS Smartproof 5产品表面粗糙度质量控制ZEISS Smartproof 5是一款集成式转盘共聚焦显微镜,依托孔径关联技术将传统共聚焦显微镜的高分辨率与转盘系统的高速采集相结合,能够高速、准确地采集表面3D数据。二维测量:距离、高…

Java 程序执行过程的内存流程图(手写稿)

操作系统会分配一定的内存空间给JVM,空间大小可以在JVM里面设置,JVM会将内存分为三个区域:栈、堆、方法区。

dc/os_DC / OS中具有Java和数据库应用程序的服务发现

dc/os该博客将展示一个简单的Java应用程序如何使用DC / OS中的服务发现与数据库进行对话。 为什么要进行服务发现? 应用程序通常由多个组件组成,例如应用程序服务器,数据库,Web服务器,缓存和消息传递服务器。 通常&am…

python进阶项目设计_Python进阶循环设计

之前在“循环”一节,我们已经讨论了Python最基本的循环语法。这一节,我们将接触更加灵活的循环方式。1. 利用range(), 得到下标在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。之…

Struts2请求处理的内部流程图/结构图/原理图(版本二)

文章目录请求处理流程图流程说明请求处理流程图 流程说明 第 1 步: 客户端初始化一个指向 Servlet 容器(例如 Tomcat)的请求,例如:在浏览器中输入 http:localhost:8080/Struts2/helloworld/helloworldAction.action …

xampp mysql 查询很慢_如何开启mysql的慢查询机制

1 在mysql中默认是不会开启慢查询日志功能的,我们可以使用show variables like ‘%slow%‘来查看一下。结果如下:参数说明:log_slow_queries表示服务器端是否开启慢查询日志记录功能,slow_query_log表示mysql监测满查询的功能是否…

uaa 授权_使用UAA OAuth2授权服务器–客户端和资源

uaa 授权在上一篇文章中,我介绍了如何使用Cloud Foundry UAA项目启动OAuth2授权服务器,以及如何使用OAuth2授权代码流程中涉及的一些参与者来填充它。 我在Digital Ocean网站上发现这篇文章在描述OAuth2授权代码流方面做得很好,因此&#xf…

ps背景不变换字_PS教程:复杂背景中,如何利用通道轻松抠出发丝?

点击图片 1元抢购 PS、PR、AE等课程活动无缝抠图复杂背景当我们常用的钢笔抠图解决不了细碎的头发丝时我们可以用通道进行抠图,换背景在复杂的背景中把头发丝抠出来配套PS素材请到QQ群:565256668下载首先打开素材,我们发现背景比较复杂&…

阿里云 ram 容器镜像_容器中Java RAM的使用:不会丢失内存的5大技巧

阿里云 ram 容器镜像在本文中,我们希望分享Java内存管理的细节以及容器内部的弹性,这些细节乍一看并不明显。 在下面,您将找到要注意的问题列表以及即将发布的JDK版本中的重要更新,以及针对核心痛点的现有解决方法。 我们收集了5…

java堆内存剩余多少合理_Java堆内存的10个要点

我刚开始学习Java编程时,可不知道什么是堆内存或堆空间(heap space),甚至根本不管对象创建时都放在哪里去了。正式了写一些程序后,经常会遇到java.lang.outOfMemoryError等错误,我才开始关注堆内存。对大多数程序员都经历过这样的…

Struts2请求处理的内部流程图/结构图/原理图(版本一)

流程说明: 1.客户端浏览器(Client)向服务器发送一个 http 请求(HttpServletRequest) 2.Container(容器) 通过 web.xml 映射请求,并获得控制器(Controller)的…

java中springdi_java中spring入门

1、spring的概念apache推出的java企业框架,提供了基于ioc的对象工厂、aop面向切面编程等功能及其他增强功能。当前版本4.xxx,支持注解的配置。 springmvc。2、控制反转(ioc):inversion of control。用来描述框架的重要特征spring针对ioc的具体实现&#…

tableau选择计算_干货 | 年薪40W, 掌握Tableau的留学生真的赚翻了

文章来源:UniCareer Tableau作为一款数据分析工具向来被视为文科转行Data必学因为它不需要你有Coding经验而且极易上手那么,Tableau究竟该怎么学?学会Tableau可以胜任哪些岗位?1Tableau: 学到就是赚到Tableau作为一款数据可视化工…

Java Servlet 编程,重定向介绍

文章目录什么是重定向重定向流程演示图如何重定向注意的问题重定向的特点重定向演示什么是重定向 服务器向浏览器发送一个状态码 302 及一个消息头 location,浏览器收到后,会立即向 location 所指向的地址发送请求。 重定向流程演示图 (1&a…

java platform_Java Platform Module系统中的可选依赖项

java platformJava平台模块系统(JPMS)对依赖项有很强的见解:默认情况下,需要它们(可以访问),然后在编译时和运行时都将它们存在。 但是,这不适用于可选的依赖项,因为代码…

hibernate删除记录_Hibernate记录:常见问题的提示和解决方案

hibernate删除记录如何通过适当的日志记录解决一些最常见的Hibernate问题? Hibernate的日志记录配置是一个重要但很少讨论的主题。 正确的配置可以帮助您在开发过程中发现潜在的问题,而错误的配置则可以在生产中导致严重的性能问题。 这就是我在新书《 …