一、前言
本文主要以街区人流量统计应用为例,对基于AidLux平台实现的“人体检测+人体追踪+人流统计”业务应用进行评测。如果需要,也可借鉴本文的思路实现不同场景下的人流统计或越界识别业务。
二、环境配置——跨平台应用系统Aidlux
使用基于Linux的Aidlux平台,可以将装有Aidlux应用的安卓手机、边缘设备和PC端相连接,之后就可以方便的进行代码移植调试,进而实现应用测试。
对于手机版本的Aidlux软件,可以从安卓手机的应用商店下载相应的APP软件。下载后进行安装、初始化、注册登录,就可进入图形界面。如果想将手机与同一个局域网下的电脑连接, 可以点击图形界面中的Cloud_ip查看其IP地址,然后将电脑的浏览器打开,输入IP地址和密码aidlux,就可以看到手机上该软件的图形界面投影了。
在图形界面中,可以进入examples中,尝试一系列的 AI 案例;也可以进入文件管理中,进行文件的上传、下载、修改等操作。
当需要调试代码时,手机界面的操作不太方便,可以通过电脑端的vscode连接手机进行调试。具体流程要如下截图所示:先进行1、2、3步,打开SSH配置文件,然后修改HostName为Cloud_ip的IP地址,端口号可设为9022;再进行4、5、6步,打开手机端的远程资源管理窗口,密码aidlux;之后进行7、8、9步,就可以在电脑端修改代码文件了;最后如果要在电脑端调试代码,还需要经过10、11、12步,先安装python解释器,然后添加路径,最后选择解释器。
三、人流统计算法实现
3.1.行人人体检测
首先需要准备数据集。本文使用的是旷视的Crowdhuamn数据集,官网http://www.crowdhuman.org/可下载,总共包含三个子数据集:15000张的训练数据集,4370张的验证数据集,5000张的测试数据集。其中训练集和验证集都是有标注信息的,测试集没有标注信息。下载好数据集后,由于标注文件格式为odgt,需要先将标注文件转换为txt格式,才能在yolov5工程中进行训练。
之后要训练模型文件。训练模型时,要注意修改一些参数,主要包括数据集配置文件中的数据集路径,训练文件中的数据集配置文件路径、模型预训练权重、模型配置文件、epoch、batch-size等。
再后要转换模型文件。由于aidlux端需要使用的模型格式为tflite,故需要将训练好的pt模型文件进行转换。
3.2行人轨迹追踪
目标追踪算法包括单目标追踪和多目标追踪,多目标追踪主要针对的是多个目标的运动轨迹,而单目标追踪主要 针对的某⼀个目标的运动轨迹。目前用的较多的是多目标追踪算法,多目标追踪算法包括(1)sort多目标算法(2)deepsort多目标算法(3)Bytetrack多目标追踪算法。该实例中我们使用Bytetrack多目标追踪算法,会尽量的减少人物之间的遮挡而带来的目标的丢失。其中主要代码如下:
# 目标追踪相关功能
det = []
# Process predictions
for box in pred[0]: # per image
box[2] += box[0]
box[3] += box[1]
det.append(box)
if len(det):
# Rescale boxes