基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统

导读:说起人工智能,首先映入眼帘的,一定会是:1997年国际象棋机器“深蓝”战胜世界冠军卡斯帕罗夫和2016年围棋棋王柯洁三次被AlphaGo击败的场景。这两次人工智能历史上的标识性事件,让人们开始感叹,人工智能的发展已经越来越接近各种机器人的电影大片了。人工智能应用在语音识别,图像人脸识别、智慧安防、工业视觉、无人驾驶等方面越来越接近人们的生活。本文也将走进生活,用YOLOv5算法和AidLux平台来实现课室人头计数系统。

一、AidLux平台介绍

2017年开始,“AIoT”开始逐渐被大众所熟知。边缘计算设备作为分析处理数据的基础支撑,在该领域中的作用也日益凸显。凭借小体积、高性能、低功耗等先天优势,ARM在边缘计算兴起这波浪潮中发展迅速,并汇集了苹果、高通、联发科等企业在移动智能设备市场“大杀四方”。但跟移动设备市场不同,AIoT领域存在着严重的应用场景碎片化问题,软件适配、优化成本和AI项目开发、迁移的门槛居高不下。导致强如高通这样的企业,在该领域内的应用落地案例也屈指可数。如今,这样的困扰不复存在。AidLux针对高通平台进行了深度适配和全面优化,在软件层面补足和提升了高通芯片在AIoT方面的能力,助力企业快速切入AIoT万亿市场。

AI开发依赖开发环境和框架,AidLux集成了全球10大主流AI框架(TensorFlow、PaddlePaddle、NCNN、TNN、MNN、PyTorch、Caffe、MXNet、MindSpore、OpenCV)和AI应用所依赖的各种科学计算库,并做了全面的环境部署、适配和整合优化,无需配置。
基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第1张图片

此外,AidLux进行CPU资源调度优化,多进程开展模型的预处理、AI推理和后处理,多进程推理多模型任务,使用CPU+GPU并行处理,并提供CPU+GPU+NPU综合调度,支持算子补全,兼容更多的模型转换和加速处理。AidLux还拥有统一编程接口,将不同框架实现和不同厂商硬件调用进行解耦合,仅用Python一门语言即可开发部署AI应用。统一接口和低代码开发能够降低编程门槛,有效地解决异构模型转化繁琐和开发复杂问题,显著减少学习成本和项目开发、迁移成本,大幅缩短项目落地周期。

结合可视化性能监控平台,用户可直观查看YOLOv5、movenet、resnet50、mobilenetv2等模型在基于高通SoC的硬件上加速效果。

​ YOLOv5模型加速效果

二、项目简介

在实际生活中,为了准确的统计出人数貌似是一件费时费力的事,例如在课堂上统计出勤人数,一个个点名十分占用课堂时间,并且经常会出现一人分饰多角的情况,往往统计结果和实际出勤有很大的出入,因此运用AI视觉技术,再基于AidLux平台部署实现实时的人数统计将会有很大的应用需求。从可行性分析,操作流程十分的简单,不需要专门的技术人员进行部署,只需要准备一台闲置的安卓手机,并且下载AidLux平台,注册七牛云个人账户,再关注喵提醒公众号,便可实时统计人数,实时收到短信提醒,也可为十分的方便了,具体流程如下:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第2张图片

三、具体步骤

1)准备代码&下载依赖

1、代码下载地址:

​ GitHub:https://github.com/Daniel4805/yolov5-master.git

​ 百度云网盘:https://pan.baidu.com/s/1KYibXoZTSDdAa0_pHkHApA?pwd=brjo

2、根据代码中requirements.txt文件说明,下载依赖库:

pip install -r requirements.txt

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第3张图片

2)修改参数

1、打开train_code/get_labels.py,修改数据集路径:(最好使用绝对路劲,不容易出错)

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第4张图片

运行后就可以看到类别数,以及标注的类别框的数量。

2、打开train_code/main.py文件,修改训练数据的路劲:

在这里插入图片描述

运行main.py文件,可以显示一些画有人头框的图片:

其中,0.2表示80%的数据进行训练,20%的数据进行验证:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第5张图片

3、在data文件夹下,新建一个head.yaml文件,作为训练人头数据集的参数设置:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第6张图片

4、修改train.py参数:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第7张图片

5、修改yolov5s.yaml:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第8张图片

3)开始训练模型

1、运行train.py文件,既可开始训练:

可以看到一共要训练299个模型,训练速度跟电脑显存有很大关系

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第9张图片

如果出现以下提示信息报错:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第10张图片

可能说明电脑磁盘没有分配虚拟空间给模型测试,我们可以打开高级系统设置,根据提示配置

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第11张图片

2、修改三个参数,运行detect.py,对训练结果进行测试,在runs/detect/exp最后一个文件夹中得到检测的效果图片:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第12张图片

4)七牛云注册并创建空间

1、登录七牛云官网:https://www.qiniu.com/,注册一个账号。

2、点击左上角的折叠栏,选择“对象存储Kodo”:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第13张图片

3、进入对象存储的管理页面,再点击左面的“空间管理”,点击新建空间,并输入“存储空间名称”,访问控制修改为“公开”。

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第14张图片

4、编写代码接口qiniu_test.py:

先下载qiniu库,再按如下修改qiniu配置参数,将access_ksy,secret_key,bucket_name修改成自己的。

pip install qiniu

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第15张图片

对应位置如下:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第16张图片
基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第17张图片

填写上相应的信息后,在Pycharm软件中运行qiniu_test.py文件,可以得到上传的图片的url信息。

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第18张图片

复制URL,可在网页中打开,查看图片:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第19张图片

图片也会上传至七牛云平台:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第20张图片

5)设置微信提醒:喵提醒

目前为止,我们已经训练好了YOLOv5的人头检测的模型,并且可以将本地的图片上传至云空间,获得图片的外链,此时,我们还需要将统计人数的信息发送至手机微信,这样才能方便查看统计结果,所以我们可以使用微信公众号喵提醒来查看统计后的结果。

1、先注册个人账户

2、然后给公众号发信息(什么信息都可以,目的是激活服务):

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第21张图片

3、新建提醒:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第22张图片

写好标题和描述,通知方式选公众号(因为是免费的),喵码是自动生成的:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第23张图片

4、编写miaotixing_test.py接口:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第24张图片

值得注意的是,这里我们需要获取detect.py中统计出的人数再发送到手机上:

在这里插入图片描述

5、运行miaotixing_test.py,我们手机上就可以收到信息啦:

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第25张图片

6)Android系统部署Aidlux平台:

上面的流程基本上是在PC端完成的,但是在实际的应用场景中,移动端肯定是比PC端更便捷的,那么如何将PC端的代码嫁接到移动端呢?Aidlux(https://aidlux.com/)就是一个能很好的将PC端和移动端连接起来的平台,其中最主要的好处是可以将PC端上写的python代码直接部署到移动端,不需要再将python转java或者c++,十分的方便,大大的节省了算法的部署。通过搭载AidLux,高通芯片可以直接用于AIoT领域,用户仅使用Python即可根据需求单独调用CPU、GPU和DSP/NPU。

1、下载aidlux软件:

需要准备一台Android系统的手机,然后在应用商城中搜索aidlux即可下载,不过软件本身占用的空间比较大,所以要保证自己的手机有足够的空间可以下载。

2、将移动端的aidlux与PC端的web连接:(注意移动端要和PC端连接同一个WiFi才行)

打开aidlux软件后,点击cloud_ip后,可以看到手机界面上会跳出可以在电脑上登录的IP网址。在电脑的浏览器上,随便输入一个IP,可以跳出Aidlux的登录页面,默认登录密码是“aidlux”。登录后就可将手机的系统投影到电脑上,任何操作和代码编写都是完全数据共通的,这样我们就可以将PC端的操作,直接应用到Aidlux的App中了。

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第26张图片

3、将PC端的代码迁移到移动端:

打开文件管理器 —> 进入home文件目录 —> 点击右上角“upload” —> 选择“Folder” —> 将yolov5-master文件全部上传

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第27张图片

4、安装相应的依赖包

打开终端,输入如下命令,就可以下载qiniu库:

pip3 install qiniu  -i https://pypi.tuna.tsinghua.edu.cn/simple

5、运行代码

打开刚刚上传的yolov5-master文件,找到aidlux文件,运行其中的yolov5.py

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第28张图片

点击右上角的build —> run now

基于AidLux平台和七牛云、喵提醒工具实现课室人头计数系统_第29张图片

手机上就可以收到信息啦。

你可能感兴趣的:(计算机视觉,目标检测)