摘要:本Demo应用YOLOv3_Resnet18模型来检测的视频流中的行人,获取行人坐标(即图中蓝色方框),而后计算所有检测到的人之间的互相“间隔”。
前情提要
听到行人社交间隔危险提醒是不是感觉有点不太明确,简略来说,就是通过某一角度的视觉信息,判断行人的社交间隔状况,让咱们间接看视频来体会吧。
这是在华为HiLens Kit上部署推理保留的视频,通过计算行世间社交间隔给出“High Risk” 或“Low Risk”的提醒,上面来具体介绍一下。
社交间隔检测介绍
本Demo应用YOLOv3_Resnet18模型来检测的视频流中的行人,获取行人坐标(即图中蓝色方框),而后计算所有检测到的人之间的互相“间隔”。这里要留神的是和现实生活中应用的长度单位来掂量间隔不一样的是,在计算机视觉世界中应用的是“像素”,一种简略的办法是依据行人坐标来计算检测到的两个人的质心,也就是依据检测到的指标框的核心之间相隔的像素值作为计算视觉世界中的“间隔”来掂量视频中的人之间的间隔是否超过平安间隔。
Demo次要分为两局部:行人检测和社交间隔计算,大体流程如下:
- 应用YOLOv3_Resnet18算法检测输出视频或视频流中的所有行人,失去行人坐标,并依据此计算地位信息和质心地位;
- 依据第1步的信息,计算所有检测到的行人的人质心之间的互相间隔;
- 依据上一步计算失去的社交间隔,比照事后设置的平安间隔,从而计算每个人之间的间隔对,检测两个人之间的间隔是否小于N个像素,小于则处于平安间隔,反之则不处于平安间隔。
这里应用的是YOLOv3_Resnet18算法来进行行人检测,事实上,可替换为任何一种指标检测算法,只有输入行人坐标合乎本Demo要求程序即可,比方性能更为低劣的YOLOv4,甚至YOLOv5等等,值得一提的是在PC端的实现是基于最新的、训练和推理性能最佳的YOLOv5-s模型实现的,如果须要能够参考本文最上面参考局部的[[1]](https://github.com/ChargedMon… “https://github.com/ChargedMonk/Social-Distancing-using-YOLOv5”) 或[[2]](https://github.com/Akbonline/… “https://github.com/Akbonline/Social-Distancing-using-YOLOv5”)([1]比[2]更加具体具体,容易上手,举荐应用)。但YOLOv5是基于PyTorch实现的,不不便转换为HiLens须要的om模型应用,庆幸的是能够通过PyTorch——>onnx——>om来应用,这一点我正在尝试,也期待有优良的同学退出进来。
上述的YOLOv3_Resnet18、原版YOLOv3_Darknet53以及最新的YOLOv5算法都能够在ModelArts AI Gallery找到哦,不仅提供了预训练模型,同时也很方便使用,小白也能起送上手,奉上链接:
YOLOv3_Resnet18 GPU版本 TensorFlow:https://marketplace.huaweiclo…
YOLOv3_Resnet18 Ascend 910版本 TensorFlow:https://marketplace.huaweiclo…
YOLOv3_Darknet53 GPU版本 TensorFlow:https://marketplace.huaweiclo…
YOLOv3 Ascend 910版本 TensorFlow:https://marketplace.huaweiclo…
YOLOv5 GPU PyTorch:https://marketplace.huaweiclo…
怎么样,是不是十分丰盛,抉择多多呀?能够试手一下哦,会发现应用起来也是很简略的,留神ModelArts和OBS破费哦。
本Demo抉择的是第一个——YOLOv3_Resnet18 GPU版本 TensorFlow,因为本Demo只须要对行人进行检测,所以抉择了模型构造简略,训练和推理速度快的YOLOv3_Resnet18,节俭训练工夫,也就是节俭训练老本呀。在训练方面,应用了来自开源行人数据集整顿的数据集,因为只有person这一个标签,相比于COCO数据集80个标签,训练和部署推理更加具备劣势,这里奉上 AI Gallery的数据集链接,没想到吧, AI Gallery不仅有算法,还有数据集,满足你的所有须要,有没有哆啦A梦的口袋的感觉(我抵赖我有一点夸大)
Person-4192数据集链接:https://marketplace.huaweiclo…
如果你还想训练蕴含其余类别的状况,比方Person and Car,可参照如下。当然,一般来说,数据集越大,鲁棒性越好,这里的数据集较小,能够自行应用更大的数据集。
实操介绍
次要麻烦的局部是行人检测模型的训练,如果为了不便,能够应用基于COCO的预训练模型,在GitHub有很多。这里心愿是从数据集筹备开始,到订阅算法,实现训练,到HiLens Studio调试,并最终部署,体验下基于ModelArts和HiLens Kit的残缺开发流程,因为以前介绍过,这里就不在赘述,详情可参考我的博文——开发教程 | 基于ModelArts与HiLens端云协同开发行人检测与跟踪计划,博文介绍的较为具体,如果有问题,能够分割我。值得注意的是这篇博文是介绍行人跟踪以及行人计数的,如果有趣味的话,能够联合这篇博文与本博文,实现更加欠缺行人检测、跟踪以及社交间隔检测的计划,置信在社交间隔检测的根底上退出跟踪和多种人数统计计划会更加切合实用,性能更加弱小。
对了,我把技能公布到技能市场了,名字是Social-Distancing-using-YOLOv3-HDMI,审核通过后,大家就可能订阅应用了,技能市场会集了官网和第三方开发的技能,可能高效便捷地将本人开发的技能分享给别人应用,而且从分享到别人订阅以及部署到HiLens应用,齐全基于网络实现,十分不便,极大促成了技能的共享。
开发体验
整体基于ModelArts和HiLens Stuio 1.5.0开发,参考开源代码实现,很羞愧的是大部分内容都是人家的,自主创新性很少。不过整体开发还是很顺利的,从失去模型到在HiLens Studio调试实现来说,不到一个下午就能搞定了,这是极致效率的体现,这得益于在线IDE HiLens Studio的应用,作为一款线上IDE,提供了开发,调试的残缺性能,甚至能够在线运行调试,间接失去程序运行的可视化后果展现。同时提供了丰盛的模板,基于模板开发,大大提高开发效率。
总的来说,好像在线有了一个本人的HiLens Kit一样,只有连贯到网络,开发HiLens Stduio就能开发了,调试胜利后还能够一键装置到本人的HiLens Kit上,让开发变成一件很爽的事件,而且HiLens Studio也在不断完善中,与我第一次应用最后版本相比,稳定性和性能都有了很大的晋升,比方下图中红色剪头所指局部,就是起初增加的,不便开发者调试,置信研发人员也是付出了不少心血和致力,非常感谢。
ModelArts也在飞快成长,开发环境除了最后的NoteBook,也有了界面和性能更加欠缺的Jupyter Lab,最新测试的在线切换硬件配置,能够进行CPU和GPU,以及不同配置CPU和GPU的在线切换性能,这一点一滴地扭转不便可开发者的应用,拉近了开发者与ModelArts的间隔,置信ModelArts在将来会更加茁壮地成长。
留神的是,我是用的是HiLens Studio根底版,多人共用,所以有时候可能因为资源缓和,导致占用,从而运行出错,这时候能够通过创立官网案例模板运行来判断是否资源占用,一般来说,如果官网模板也运行报错,可能就是资源占用,能够思考应用付费版,但须要额定费用哦。
下图是HiLens Studio的开发界面,有没有一种相熟的感觉,和VS Code有些相似,这对相熟VS Code的同学是一个福音哦。
YOLO浅谈
YOLO系列是经典的指标检测网络,在性能和速度上获得了较好的均衡,利用宽泛。尽管原作者只做到了YOLOv3,但在爱好者的致力下,后续倒退了YOLOv4, 曾经倒退到了最新的YOLOv5(临时称为YOLOv5),留神YOLOv5的作者并没有发表论文,因而只能从代码的角度了解。
YOLOv4在YOLOv3的根底上在网络结构和预处理等很多方面进行了很多的翻新,交融了过后失去验证的很多trick,性能失去了很大的晋升。比方输出端采纳mosaic数据加强,Backbone上采纳了CSPDarknet53、Mish激活函数、Dropblock等形式,Neck中采纳了SPP、FPN+PAN的构造,输入端则采纳CIOU_Loss、DIOU_nms操作。
这里给出YOLO V4的网络结构图(图片来自网络):
YOLOv5共有s,m,l,x四个模型,雷同的数据集上,YOLOv5-s模型训练和推理性能最佳,YOLOv5-x模型mAP指标最佳。其构造其实和YOLOv4的构造还是有肯定的相似之处的,但也有一些不同,这里给出YOLOv5-s的网络结构图:
上面简略介绍YOLOv5的局部改良,更多详情可参考[[3]](https://github.com/ultralytic… “https://github.com/ultralytics/yoloV5”)和[4]
- 自适应Anchors计算
在YOLOv3、YOLOv4中,训练不同的数据集时,计算初始锚框的值是通过独自的程序运行的。但YOLOv5中将此性能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值。
- CSP构造
相比于YOLOv4中只有骨干网络应用了CSP构造,YOLOv5中设计了两种CSP构造,以YOLOv5-s网络为例,以CSP1_X构造利用于Backbone骨干网络,另一种CSP2_X构造则利用于Neck中。
相干代码如下:
结语
基于ModelArts和HiLens(在线IDE HiLens Studio和硬件HiLens Kit )能够高效地从零开始实现一个我的项目的落地利用全流程,二者的无缝连接大大提高了效率,然而真正的落地利用须要依据具体利用行业和场景理论剖析,隔靴搔痒,并非如此简略,本Demo也是仅供学习应用,性能不做保障。不过置信随着ModelArts和HiLens的不断完善和倒退,所有都会越来越好,会集更多开发者,共建良好生态。
邮箱 tjulitianyi@163.com
参考
[1] https://github.com/ChargedMonk/Social-Distancing-using-YOLOv5
[2] https://github.com/Akbonline/Social-Distancing-using-YOLOv5
[3] https://github.com/ultralytic…
[4] https://mp.weixin.qq.com/s/LE…
本文分享自华为云社区《行人社交间隔危险提醒Demo | 基于ModelArts AI Gallery与HiLens Kit联合开发》,原文作者:Tianyi_Li。
点击关注,第一工夫理解华为云陈腐技术~
发表回复