项目简介
本项目基于Keras框架复现人群数量估计网络,参考论文"Single Image Crowd Counting via Multi Column Convolutional Neural Network"。目标是通过多列卷积神经网络(MCNN)对单张图像中的人群数量进行估计,并生成相应的热力图。
项目的主要特性和功能
- 多列卷积神经网络(MCNN):采用多列卷积神经网络结构处理不同尺度图像特征,提升人群数量估计准确性。
- 数据集处理:支持ShanghaiTech数据集预处理,可生成训练集、验证集和测试集的密度图和热力图。
- 模型训练与测试:提供完整的训练和测试脚本,支持自定义训练和加载预训练模型测试。
- 性能评估:以平均绝对误差(MAE)和均方误差(MSE)作为模型性能评估指标。
- 热力图生成:能生成测试集的GT热力图,直观呈现人群分布情况。
安装使用步骤
假设用户已下载本项目的源码文件。
1. 复制项目
shell
cd keras-mcnn
2. 安装依赖库
shell
pip install -r requirements.txt
3. 数据配置
- 下载ShanghaiTech数据集:
- 创建数据存放目录:
shell mkdir /opt/dataset/crowd_counting/shanghaitech/original
- 将
part_A_final
和part_B_final
存放到上述目录下。 - 生成测试集的ground truth文件:
shell python create_gt_test_set_shtech.py [A or B]
- 生成训练集和验证集:
shell python create_training_set_shtech.py [A or B]
- 生成热力图:
shell python create_heatmaps.py [A or B]
4. 测试
- 下载训练模型:
- 测试模型:
shell python test.py --dataset A --weight_path /tmp/mcnn-A.160.h5 --output_dir /tmp/mcnn_A python test.py --dataset B --weight_path /tmp/mcnn-B.035.h5 --output_dir /tmp/mcnn_B
5. 训练
shell
python train.py [A or B]
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】