虽然人脸检测算法已经相当成熟了,但如果直接把这些人脸检测的包用到动漫数据上的话,基本是啥都检测不出来的。。我们当时在调校人工智障的时候就遇到了这个问题,当时用的是基于小波的传统算法,检测精度虽然高,但漏检的情况真的是惨不忍睹了。。最近终于有时间,标了200张数据,用深度学习训练了一把,效果意外地好,所以把模型和代码开源了。
一个视频例子见这里。可以看到在不同的pose下检出率还是可以的。也可以看出这个模型做的其实不是人脸检测,而是头部检测。我们的训练数据就是在辉夜大小姐和小埋上面标的,但意外的是对于其他番,甚至黑白线描也可以检测:
对于人脸几乎不看见的背面的情况也可以搞定:
对于戴帽子的情况也可以,只是对于比较少见的表情+泳镜的情况就SB了:
代码和模型放在了github上:https://github.com/grapeot/AnimeHeadDetector
使用非常简单:
-
首先用
git clone --recursive https://github.com/grapeot/AnimeHeadDetector
把代码clone下来。注意这里必须要用--recursive
,因为我们用了submodule来引用了其他repo。 -
然后用
pip install -r requirements.txt
安装依赖。 -
因为大小的限制,模型host在其他地方,我们要先用
./downloadWeights.sh
把模型下载下来。 -
然后就可以运行
python main.py
跑demo了!这个文件具体的用法可以用python main.py --help
查看。
目前这个模型还有很多不完美的地方,毕竟只标了200张 23333。内部模型用的是Yolo V3。先放出来,希望能帮到大家
Comments