参考链接:https://blog.csdn.net/hahabeibei/article/details/
来自霍尼韦尔的资深数据科学家Aditya Vora分享了一种快速精准的人头检测(head detector)算法并开源了代码。
先来看下检测视频截图:
人头检测在安防监控中是比较常用的功能,而公交车、商场或者大型场馆的拥挤人群计数的精准性也非常重要。

传统的算法原理
作者称拥挤人群计数目前主要有两种实现路径:
1.运用回归的算法思绪,直接依据图像回归出拥堵人群密度热图,它的缺陷是只能得到场景整体的一个拥堵指数,不能获知人群个体的详细位置,而且这种办法对图像分辨率很敏感。
2.运用目的检测的办法,比方直接运用Faster RCNN检测人,检测后数目的为“人”的个数。这种办法的缺陷是在人物互相遮挡的状况下常常性能较差,而人群越拥堵互相遮挡的可能性越大,招致算法运用受限。

该文作者希望设计更有针对性的精准的人头检测,完成愈加精准的人群计数。
作者创新的两点,轻量级人头检测网络和anchors尺度的选择。
算法的网络架构:
从上图可知,网络的前半局部是VGG16特征提取网络,经过一次卷积,然后分开分别运用1*1卷积进入Regression head(用于回归人头的位置信息)和Classification head(用于分类能否为人头)。
在检测网络中,anchors是很重要的概念,是一组预定义的包围框,在对象检测系统中预测尺度和位移。作者以为普通目的辨认中anchors的尺度定义过大,应该依据“有效感受野”(effective receptive field)的思想,减小尺度(直观上“人头”目的比“人体”目的也要小)。


以上内容都来自参考链接。
先去GitHub上找到FCHD:

第一个是原版,第二个是翻译版,本人擅长中文。。。
下载源码(文末有分享)。
本工程是官方工程的python3版本,重构了部分代码,并训练得到了一个效果不错的模型。
安装
- Clone
git clone https://github.com/embracesource-cv-com/FCHD.git
讯享网 - 安装依赖
讯享网
cd FCHD pip install -r requirements.txt
安装可能会遇到问题,一般解决方案有:

1)去掉版本号
2)换源
3)建议使用python3 64位版本,不要使用32位!
4)哪个依赖有问题 就通过命令安装
作者成功较多的命令:
python -m pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com XXX
XXX为所需依赖。
数据配置
(文末有分享所需文件)。
- 在此处下载Brainwash数据集,caffe预训练模型,以及人头检测模型
- 将预训练模型vgg16_caffe.pth放到./checkpoints/pre_trained目录下
- 将检测模型checkpoint_best.pth放到./checkpoints目录下
- 将brainwash数据集放到/home/dataset/fchd_datas目录下
当然你可以自定义各个路径,然后在config.py中修改相应的配置
讯享网class Config(object): DATASET_DIR = r'X:\workspace\python\FCHD-master\home\dataset\fchd_datas\brainwash' TRAIN_ANNOTS_FILE = r'X:\workspace\python\FCHD-master\home\dataset\fchd_datas\brainwash\brainwash_train.idl' VAL_ANNOTS_FILE = r'X:\workspace\python\FCHD-master\home\dataset\fchd_datas\brainwash\brainwash_val.idl' CAFFE_PRETRAIN = True CAFFE_PRETRAIN_PATH = './checkpoints/pre_trained/vgg16_caffe.pth' RPN_NMS_THRESH = 0.7 RPN_TRAIN_PRE_NMS_TOP_N = 12000 RPN_TRAIN_POST_NMS_TOP_N = 300 RPN_TEST_PRE_NMS_TOP_N = 6000 RPN_TEST_POST_NMS_TOP_N = 300 RPN_MIN_SIZE = 16 ANCHOR_BASE_SIZE = 16 ANCHOR_RATIOS = [1] ANCHOR_SCALES = [2, 4] EPOCHS = 15 PRINT_LOG = True PLOT_INTERVAL = 2 VISDOM_ENV = 'fchd' MODEL_DIR = './checkpoints' BEST_MODEL_PATH = './checkpoints/checkpoint_best.pth' cfg = Config()
代码还是简单的。
先训练:
- 打开可视化工具visdom:
python -m visdom.server - 开始训练:
讯享网
python train.py
train.py的时候会报错:
这是torch依赖安装版本错误。
CPU直接安装CPU版本即可,CDUA需要安装CUXXX版本。
下载地址:https://download.pytorch.org/whl/torch_stable.html
也可以通过官网:https://pytorch.org/get-started/locally/

正确的控制台输出:
(venv) X:\workspace\python\FCHD-master>python train.py [INFO] Load datasets. Training set size:10461, Verification set size:493 Setting up a new session... [INFO] Start training... X:\workspace\python\FCHD-master\networks\detector.py:30: UserWarning: Implicit dimension cho ice for softmax has been deprecated. Change the call to include dim=X as an argument. probs = F.softmax(torch.from_numpy(rois_scores)) [INFO] Epoch 1 of 15. Validate average accuracy: 0.865 [INFO] Epoch 2 of 15. Validate average accuracy: 0.803 [INFO] Epoch 3 of 15. Validate average accuracy: 0.771 [INFO] Epoch 4 of 15. Validate average accuracy: 0.842 [INFO] Epoch 5 of 15. Validate average accuracy: 0.796 [INFO] Epoch 6 of 15.
可视化:

预测
在工程root目录下执行:
讯享网python predict.py -p [path of image]
检测效果

百度云:
链接:https://pan.baidu.com/s/1xZJ6wvQyo9WLgWErlmhhaA
提取码:3bw9
复制这段内容后打开百度网盘手机App,操作更方便哦

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/128483.html