简介
本项目是人流密度检测系统的数据分析端,通过物理摄像头将每分钟取60帧存放在data目录对应的摄像头编号目录下,然后运行程序读取分析该目录下的所有摄像头的60帧人数,然后再取平均值设定为该摄像头此时的人流密度;然后再将数据封装到实体类中经过打包发送给服务端对应的接口中。
编译环境
本系统数据采集端使用 python 3.6 语言、深度学习框架 Tensorflow 2.2 以及相关
第三方库 opencv 开发,需要用相同语言、框架等编译。
使用说明
深度学习:进入项目的根目录的 scripts 目录下,输入命令行指令进行相关训练与测试。本程序训练的模型为根据 Multi-scale Convolution Neural Networks for Crowd Counting 论文复现的 MSCNN 模型。
训练:python train.py
运行参数:
-h, –help
show this help message and exit
-e EPOCHS, –epochs EPOCHS
how many epochs to fit
默认值:5
-v SHOW, –show SHOW if show training log
默认值:’yes’
-b BATCH, –batch BATCH
batch size of train
默认值:8
-d DATASET, –dataset DATASET
which dataset to train
默认值:’malldataset’
-p PRETRAINED, –pretrained PRETRAINED
load your pretrained model in folder
root/models
默认值:’no’
例如:python train.py -e 50 -b 8 -d malldataset
表示对神经网络进行 50 次迭代训练,每次训练样本为 8 个,投喂的数据
集为’malldataset’
目前支持训练的数据集有三个:malldataset、shanghaitechdataset、
Crowdataset,其中Crowdataset 为自制数据集。
训练建议:对于基本要求的软硬件配置条件下,batch 不应大于 8。针对
malldataset 数据库进行 50 次迭代训练约需要 4~6h。
若需要支持训练新的数据集则需要在 data 模块里编写相关的功能类。
测试
python train.py
运行参数:
-h, –help
show this help message and exit
-s SHOW, –show SHOW if show test result map
默认值:’yes’
-d DATASET, –dataset DATASETStrdsty V1.0
root/models
默认值:’malldataset’
例如:python test.py -d malldataset
表示从 malldataset 数据集中随机选取 10 张图片进行人数预测,生成一张包含原图,原图真实人数,预测的密度图像,预测人数的图片,并保存至根目录的 results 下。
目前支持测试的数据集有三个:malldataset、shanghaitechdataset、Crowdataset,其中 Crowdataset 为自制数据集。
若需要支持测试新的数据集则需要在 data 模块里编写相关的功能类。
数据计算:编译运行根目录下的 scripts 中的 fdd.py。
总结
目前仅支持模拟情况下的实时数据计算。
主要功能:复现模型(该模型通过在多个数据集上进行训练测试获得,模型泛化能力强,实际主要 malldataset 数据集上训练获得模型。),若时间更新(以当前分钟更新为准)则读取根目录下的 data 路径下的十个文件夹中的相关图片(模拟的十个监控平台)。图像预处理之后,进行人数预测。将预测结果打包成 json 数据包,采用 http 协议,发送至相关的 MySQL 数据库中。若读取图片失败,即认为监控设备可能处在维修或网络连接故障,返回指定的值用于表示异常。在基础要求的软硬件配置下,此过程大于需要3s+5s,其中 5s 用于延时解决因短暂的网络问题导致的图片上传延迟的问题。
若发送的数据被对应的服务器成功接受并保存至 MySQL 数据库中则返回200,反之可能为 400 等值。相关信息会打印在命令行窗口。注释指定的 print语句可能实现信息打印的屏蔽。
参考文献
代码仓库及Crowdataset自制数据集下载
Gitee:右键点击“链接另存为”即可下载!