跳过内容。

人群计数

此存储库提供生产就绪版本的人群计数算法。不同的算法通过一组一致的 API 统一。

概览

Figure 1

注意:人群计数场景的所有示例图像均来自 www.unsplash.com。

虽然人群计数模型种类繁多,但需要考虑两个实际问题

基于对我们专有数据集上人群计数模型多个实现的评估,我们将模型缩小到两个选项:来自此仓库的 Multi Column CNN 模型 (MCNN) 和来自此仓库的 OpenPose 模型。这两个模型都满足我们的速度要求。

设置

依赖项

您需要以下依赖项。

安装

递归克隆仓库并安装库。

git clone --recursive git@github.com:microsoft/ComputerVision.git
cd ComputerVision/contrib/crowd_counting/
pip install -r requirements.txt 

然后下载在 Shanghai Tech A 数据集上训练的 MCNN 模型,并将其保存在克隆仓库的 crowdcounting/data/models/ 文件夹下。该模型的链接可在此仓库的测试部分找到。

测试

下面是如何运行演示应用程序并使用本地图像调用服务。

python crowdcounting/demo/app-start.py -p crowdcounting/data/models/mcnn_shtechA_660.h5
curl -H "Content-type: application/octet-stream" -X POST http://0.0.0.0:5000/score --data-binary @/path/to/image.jpg

性能

下面我们报告了我们自己数据集上的平均绝对误差。

人群密度 MCNN OpenPose 路由器
51.95 0.56 0.63
151.11 442.15 195.93

示例

教程可在 crowdcounting/examples 文件夹中找到。

Docker 镜像

可以使用以下命令构建和运行演示的 docker 镜像

nvidia-docker build -t crowd-counting:mcnn-openpose-gpu
nvidia-docker run -d -p 5000:5000 crowd-counting:mcnn-openpose-gpu

然后,在浏览器中输入 url 0.0.0.0:5000 即可尝试演示。

构建状态

Build Status