## 基于深度学习的视频人脸检测
*这里旨在说明开发前大致准备工作,未记录详细开发过程,可参考 [项目Commit记录](https://github.com/puke3615/VideoHunter/commits/master)*
[TOC]
### 前期调研
网上查看相关论文、博客、github源码
### 方案选型
> 选择原则
>
> - 时间成本
>
> 完成视频中人脸检测项目,时间进度上还是很紧张的,确定方案要参考时间限制
>
> - 投入成本
>
> 偏向短期时间节点内能快速上手且使用的方式
>
> - 检测效率
>
> 视频中包含大量的帧画面,所以对于检测的速度方面选择尽可能快速的
网上查看相关检测的资料,选择了各个方面综合能力较好的预选方案,并做出对比。
| 模型 | 速度 | 精度 | 成本 | 小物体 | 训练周期 |
| :------------: | :--: | :--: | :--: | :--: | :--: |
| `OpenCV + CNN` | 快 | 一般 | 一般 | 一般 | 短 |
| `YOLO/YOLO2` | 一般 | 高 | 高 | 较低 | 长 |
| `SSD` | 一般 | 高 | 高 | 高 | 长 |
由于人脸在视频画面中相对较小,因此这里没有选择在小物体检测上有劣势的`YOLO`模型。`OpenCV + CNN`的方式精度上虽然不高,但是处理速度还是蛮快的,在实时检测方面效果不错,于是将该方案作为兜底方案。`SSD`模型检测是目前调研出的各方面相对表现都比较优异的,作为最终选择方案。
即:选择`OpenCV + CNN`作为兜底方案,`SSD`作为最终方案。
### 数据收集
#### Pubfig数据
[处理脚本](scripts/pubfig/preprocess.py#L128)
由于版权问题,数据源是以链接的形式存在,于是下载脚本对链接图片进行下载,下载过程很多图片无法下载,无奈放弃该数据源。
#### 爱情公寓
[处理脚本](scripts/video/reader.py#L71)
- OpenCV对视频的每一帧进行人脸检测
- 将检测区域抠下来保存为人脸图片的数据源
- 对该部分数据源进行手动分类
### 模型训练
#### [CNN分类模型](v1/classifier.py#L85)
由于人脸的图片比较小,再加上类别数量不多,所以这里用的是小型的CNN网络,结构如下
```python
def build_model(self):
model = Sequential()
model.add(Conv2D(8, (3, 3), activation='relu', input_shape=(128, 128, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(16, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(8, activation='softmax'))
return model
```
#### [SSD检测模型](https://github.com/Machine-Learning-For-Research/ssd_keras)
`SSD`模型是在[基于keras的SSD开源项目](https://github.com/Machine-Learning-For-Research/ssd_keras)进行改造的,主要替换训练数据的载入方式和输出的类别。
### 模型测试
[图片版测试](v1/image.py)
![](doc/images/test2_prediction.jpg)
[视频版测试](v1/video.py) [点击查看演示视频](https://pan.baidu.com/s/1qYLXruG)
*参考链接*
- [R-CNN、SPP-NET、Fast-R-CNN、Faster-R-CNN、YOLO、SSD总结](http://blog.csdn.net/eli00001/article/details/52292095)
- [Pubfig数据源](http://www.cs.columbia.edu/CAVE/databases/pubfig/)
- [OpenCv的视频处理相关Api](http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html?highlight=videocapture)
- [基于Haar Cascades的人脸检测](http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection)
- [基于深度学习的视频检测](http://blog.csdn.net/relar/article/details/51926078)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
基于深度学习的视频人脸检测.zip (29个子文件)
资料总结
utils.py 2KB
face_collection.py 327B
doc
images
test1.jpg 88KB
test1_prediction.jpg 53KB
test2_prediction.jpg 23KB
test2.jpg 192KB
v1
__init__.py 64B
weights
weights.h5 28.18MB
image.py 2KB
video.py 3KB
classifier.py 4KB
.gitignore 125B
README.md 4KB
config
haarcascade_frontalface_alt.xml 967KB
haarcascade_frontalface_default.xml 908KB
haarcascade_frontalface_alt2.xml 528KB
scripts
__init__.py 38B
voc_parser
__init__.py 39B
reader.py 2KB
video
__init__.py 0B
reader.py 3KB
writer.py 1KB
love
__init__.py 57B
data_handler.py 1KB
videoproces.py 3KB
pubfig
__init__.py 26B
dev_urls.txt 452KB
preprocess.py 4KB
dev_people.txt 911B
共 29 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功