1 训练营课程
(1)本节课主要学习智慧安防实战训练营的课程:
训练课程主要包括:
a. 第⼀节课,即本节课,主要讲解AI⾏业智慧城市⾏业的⽬前状况,并从边缘设 备、越界识别应⽤等为案例,进⾏讲解。
b. 第⼆节课,主要从边缘设备的⽅式,Aidlux进⾏讲解,了解 在边缘端的各⽅⾯内容。
c. 第三节课,主要从⽬标检测算法的训练,Aidlux上的移植、 测试等⽅⾯进⾏讲解。
d. 第四节课,学习了⽬标检测后,会将⽬标检测和⽬标追踪结 合,尝试完整的⼈体检测追踪,为后⾯的各类业务功能做准备。
e. 第五节课,会将越界识别的业务功能也添加进来,当有⼈越 界的时候,会通过喵提醒的⽅式,通知开发者及时查看⼿机⾥⾯的越界图⽚。
2)学习目的
本次课程是由江大白老师全程教学,第一次接触江大白老师是在知乎上看到他的一篇高赞文章【ref="https:// zhuanlan.zhihu.com/p/39 7993315 ">深入浅出Yolo系列之Yolox核心基础完整讲解】,关注后发现,大白老师的文章都是对新手非常友好的,深入浅出,讲的非常细致,看了之后获益匪浅。后来长期关注并进了讨论群,有兴趣的朋友也可以关注,也许会有所收获。
两周前,大白老师分享训练营计划,我考虑了一下,便选择参加,因为我从事AI行业以来,一直做的是CPU部署。想通过这个机会,学习一下android端的部署流程。因为经过这一年多的学习,我对自己的定位就是做AI落地方面的工作,至于研究新的trick,对非科班的我来说是难度较大的。并且该课程与我现在做的一些项目也很类似,能够借此机会学习一下大佬的代码也是很不错的。
经过两周的学习,我们基本已经掌握了从PC端到android端的开发与部署测试流程。所以江大白老师给我们留了一个大作业。
2 作业题目
(1)题目:
在学习了越界识别的功能后,采用人体检测+人体追踪+业务功能的方式实现 人流统计。
(2)实现效果:
上传视频,有Vscode代码页面露出,有AidLux界面露出。
比如Vscode界面+Aidlux端的PC端显示的视频。视频链接: https:// b23.tv/hg2bp6m
人体检测+人体追踪效果 https://www.zhihu.com/video/15690218672262840323)代码实现:
相关流程和代码以及原理可以找大白老师分享,代码文件主要包括推理代码yolov5_overstep.py,工具函数utils.py,跟踪算法track文件夹,以及模型文件yolov5n_best-fp16.tflite和测试视频video.mp4.
其中推理代码yolov5_overstep.py主要代码如下:
先加载一些必要的包
1.用Aidlux的api加载模型:
2.初始化一些参数:
3.读取视频对视频帧预处理并进行人体检测:
4.对检测到的人体框利用track中的跟踪模型算出每个人体框的id
5.确定检测线以及每个id在当前帧相对检测线的位置,并记录在track_id_status字典中:
这里字典每个名称对应每个id,内容是当前帧中所有id号相对检测线的位置,包括历史位置:
6.判断id行走方向,统计向上人流数,以及向下人流数:
7.在待输出的frame上显示人流统计:
8.视频结束后,利用喵提醒公众号下发人流统计信息:
可以看到最终喵提醒功能把测试视频中上下两个方向以及总人流数下发到了微信中。
3 学习心得
当然这只是其中一部分代码,整个过程中还有其他代码,都很值得学习,以及调试部署测试过程都还有一些内容,感兴趣的可以问大白老师领取资料。整个学习过程没有什么压力,因为真的是手把手教学,不得不佩服大佬们的思路。
4 AidLux使用心得
最后我想发表一下我对Aidlux的看法,我是在自己手机上高通骁龙778上测试的,我发现Aidlux后台调试代码超过半小时后手机会很烫,待机没事。但是整个测试的过程中跳帧不多,速度还是可以的,可以和一些CPU差不多了。后续希望Aidlux官方能出一些前后端的教程,因为一个项目并不只是我们算法工程师完成的,还需要团队的合作。总体而言,我觉得这个终端设备操作简便,便携,效果好,可塑性高,值得探索一番。期待后续我能有项目使用到该产品。