利用YOLOV5实现手语识别
使用Yolov5通过计算机视觉提高聋人社区的可访问性的一步执行摘要问题陈述数据收集方法预处理模型:YOLOV5推理结论下一步环境执行摘要下面的帖子是David Lee(数据科学家)的一篇经过精心编辑的来宾帖子。David已在其GitHub上开源了与该项目相关的所有资料。该帖子也可以在David的博客上找到。大卫已经开放了他的美国手语计算机视觉数据集。利用Yolov5,在美国手语字母上创建了一个自定
执行摘要
下面的帖子是David Lee(数据科学家)的一篇经过精心编辑的来宾帖子。David已在其GitHub上开源了与该项目相关的所有资料。该帖子也可以在David的博客上找到。
大卫已经开放了他的美国手语计算机视觉数据集。
利用Yolov5,在美国手语字母上创建了一个自定义计算机视觉模型。该项目在社交平台上得到推广,以使数据集多样化。使用DropBox请求表在两周内总共收集了721张图像。为原始图像创建了手动标签,然后将其调整大小并进行预处理。对图像进行了几次精心选择的增强,以弥补少量数据集的不足。然后,总共使用了18,000张图像进行建模。将转移学习与Yolov5m权重结合在一起,并在163小时内以300个纪元完成了训练,并且图像大小为1024。平均平均精度得分为0.8527。成功进行了推理测试,并确定了未来开发模型的优势和劣势。
所有操作都是在我的本地Linux机器上使用Pytorch使用CUDA / cudNN设置执行的。
问题陈述
您是否考虑过执行简单的沟通任务有多容易,例如开车开车点餐,与银行家讨论财务信息,告诉医生您在医院的症状,甚至与您的雇主协商工资?如果有一种规则,您不能说话,只能在每种情况下都可以动手怎么办?聋人社区无法做大多数人理所当然的事情,由于他们每天面临的这些挑战,他们常常处于退化的境地。在大多数情况下,获取合格的口译服务并不可行,这使聋人社区中的许多人就业不足,社会孤立,并面临公共卫生挑战。为了使社区中的这些成员有更大的发言权,我尝试回答以下问题:
通过学习美国手语,计算机视觉能否弥补耳聋和听力障碍的障碍?
为此,在ASL字母上训练了Yolov5模型。如果成功的话,它可能标志着朝着正确方向迈出的一步,既可获取更多信息,又可提供更多教育资源。
数据收集方法
由于一些原因,决定创建一个原始数据集。首先是在移动设备或网络摄像头上镜像预期的环境。这些通常具有720或1080p的分辨率。现有的一些数据集分辨率较低,并且许多数据集不包含字母“ j”和“ z”,因为它们需要移动。
创建了一封信函申请表,其中介绍了我的项目以及如何通过保管箱文件申请表提交自愿手语图像的说明。这是在社交平台上分发的,以提高认识并收集数据。
使用的保管箱申请表:(截止日期为2020年9月27日)
https://docs.google.com/document/d/1ChZPPr1dsHtgNqQ55a0FMngJj8PJbGgArm8xsiNYlRQ/edit?usp=分享 链接
总共收集了720张图像:
这是图像的分布:(字母/计数)
A-29
B-25
C-25
D-28
E-25
F-30
G-30
H-29
I-30
J-38
K-27
L-28
M-28
N-27
O-28
P-25
Q- 26
R-25
S-30
T-25
U-25
V-28
W-27
X-26
Y-26
Z-30
预处理
标记图像
使用labelImg软件在原始图像上创建了手动边界框标签。
然后,每个图片和边界框坐标都经过一个蛋白印迹管道,该管线将图像的大小调整为1024 x 1024像素正方形,并增加了不同变换的概率。
这些转换包括指定的旋转度,图像位置的偏移,模糊,水平翻转,随机擦除以及各种其他颜色转换。
为每个图像创建25个增强图像,从而生成用于建模的18,000个图像集。
模型:YOLOV5
为了解决可接受的推理速度和大小,选择了Yolov5进行建模。
该版本于今年6月10日发布,目前仍在积极开发中。尽管Ultralytics的Yolov5不是由最初的Yolo作者创建的,但据说Yolo v5更快,更轻便,其准确性与被普遍认为是最快,最准确的实时对象检测模型的Yolo v4相当。
Yolo被设计为用于实时物体检测的卷积神经网络。它比基本分类更为复杂,因为对象检测需要识别对象并定位图像上的位置。该单级物体检测器具有3个主要组件:
骨干基本上提取图像的重要特征,脖子主要使用特征金字塔,这有助于概括对象缩放比例,从而在看不见的数据上获得更好的性能。模型头执行实际的检测部分,其中将锚定框应用于生成输出矢量的要素。这些向量包括类概率,客观性得分和边界框。
所使用的模型是yolov5m,具有基于预训练权重的传递学习。
模型训练
纪元:300
批处理大小:8
图片大小:1024 x 1024
权重:yolov5m.pt
mAP @ .5:98.17%
mAP @ .5:.95:85.27%
推理
图片
我保留了儿子对每个字母的尝试所用的测试集,但未包含在任何训练和验证集中。实际上,没有使用儿童手的图片来训练模型。理想情况下,再添加几张图像将有助于展示我们的模型的效果,但这只是一个开始。
在26个字母中,有18个是正确预测的。
没有收到预测的字母(G,H,J和Z)
错误预测的字母为:
“ D”预测为“ F”
“ E”预测为“ T”
“ P”预测为“ Q”
“ R”预测为“ U”
视频发现:
================================================== =============
惯用左手:
此测试表明,我们的图像增强管线效果很好,因为它设置为以50%的概率水平翻转图像。
================================================== ============
孩子的手: 执行我的儿子的手测试,模型仍然表现良好这里。
================================================== ============
屏幕上出现多个字母:
还检测到同时的字母。尽管未像右手的视频那样使用手语,但它表明可以在屏幕上显示多个人,并且该模型将能够区分该语言的多个实例。
================================================== ============
视频限制:
================================================== ============
距离
我在模型中发现了一些限制。最大的是距离。由于许多原始照片是从我的手机上拍到的,所以我的手到相机的距离非常近,这对进一步距离的推论产生了负面影响。
================================================== ============
新环境
以下志愿者的视频剪辑未包含在任何模型培训中。尽管模型吸收了大量字母,但是预测置信度较低,并且存在更多的错误分类。
即使原始图像集只有720张照片,显示结果的含义也使我们得出了令人兴奋的结论。
================================================== ============
结论
可以而且应该使用计算机视觉来标志着我们为聋哑人和听力障碍社区提供更多可访问性和教育资源的一步!
- 即使原始图像集仅包含720张图片,此处显示的结果的影响还是有希望的
- 从各种来源收集更多的图像数据将有助于我们在不同距离和环境下进行模型推断。
- 甚至带有移动的字母也可以通过计算机视觉识别。
下一步
我相信这个项目符合全国聋人协会的愿景,即为这个代表性不足的社区带来更好的可及性和教育。如果我能够提高对项目的认识,并与NAD之类的组织合作,那么我将能够收集到更多使用母语使用该语言的人们的数据,从而进一步推动该项目。
该技术仍是非常新的技术,我为此演示训练的模型主要用于确定其是否可行。我对最初的结果感到满意,并且已经训练了一个较小的模型,以后将在该模型中进行移动部署测试。
我相信计算机视觉可以在适当的支持和项目意识下帮助聋哑人和听不清邻居的声音。
环境
Python版本:3.8
软件包:pandas,numpy,matplotlib,sklearn,opencv,os,ast,alternation,tqdm,torch,IPython,PIL,shutil
资源:
Yolov5 github
https://github.com/ultralytics/yolov5
Yolov5要求
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
枕头库:https : //pillow.readthedocs.io/en/latest/handbook/index.html
标签软件labelImg:https : //github.com/tzutalin/labelImg
相册库 https://github.com/albumentations-team/albumentations
欢迎点赞收藏,这个项目真的值得我们好好去琢磨。谢谢!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)