docker安装openface进行人脸识别

GooglePicasaApple照片软件早都已经实现基本的人脸识别功能了,你只要反复不断地告诉它们哪一个是你本身,哪一个是你家人,很快这两款软件能够学会识别,并帮你自动把你的全部含有人脸的照片分类。目前这种技术已经开源,Openfacegithub上有7000多颗星星。html

这里有一篇中文介绍如何安装使用,个人操做步骤略简单,我是按照官方教程来的,用docker安装,因此省掉一些步骤,但也遇到一些麻烦,在此一并说明。git

  1. 安装docker并启动,这个就不用多说了。在Mac上能够还安装一个Kitematic,能够可视化的方式管理你的dockergithub

  2. docker pull bamos/openface,按官方教程来,没什么可说的。docker

  3. 运行container,按官方教程是这样的:docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash,但实际上,由于咱们还须要把图片拷进去,因此最好加一个-v参数,以便后续操做:docker run -p 9000:9000 -p 8000:8000 -v /local_directory:/remote_directory -t -i bamos/openface /bin/bashbash

  4. 准备30张图片,必定要2个不一样的人的,图片大小无所谓,可是最好只包含人脸,每人各15张,分别放在2个不一样的目录下。好比你的本地文件夹是/local_directory,那你必定要在这个文件夹下创建一个training-images的子文件夹,而后再在training-images这个子文件夹下用两我的的名字再创建2个不一样的文件夹,而后把照片放进去。我一开始没有创建这个training-images子文件夹,绕了很多弯路。这一步操做是在本地环境下完成的,从下一步开始,咱们进入docker环境操做。测试

  5. 开始自动剪裁:/root/openface/util/align-dlib.py ./training-images align outerEyesAndNose ./aligned-images/ --size 96,这一步的目的是让机器自动把这30张照片修整成96x96png文件,以便于后续处理。因此你前面那些照片大小无所谓就是这个意思。处理的结果就放在aligned-images目录下,它下面会有2个文件夹,就是你放进去的那2我的的名字。lua

  6. 对图片进行批量处理:/root/openface/batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/,这一步会在generated-embeddings目录下生成2csv文件,labels.csvreps.csvlabels.csv相对简单,它只是说明了哪一张照片对应的是哪个人,reps.csv则是一大堆人类看不懂的数字。code

  7. 接下来开始训练:/root/openface/demos/classifier.py train ./generated-embeddings,训练的结果会在generated-embeddings目录下生成一个classifier.pkl文件,这个是咱们最终想要的结果。htm

  8. 而后你就能够开始测试了,再拷一张不在训练集中的照片进去,这张照片就不拘泥于只包括人脸了,能够包括背景或者整个身体都无所谓,但最好不要放好几我的的合影,否则机器不知道你要识别哪个人。假设照片文件名为1.jpg,则执行/root/openface/demos/classifier.py infer ./generated-embeddings/classifier.pkl 1.jpg,若是照片中人是刚才识别的2人之一,则通常识别准确度会在90%以上,若是不是的话,会低于80%。这里能够作一个颇有趣的实验:测试你和某明星的脸部类似度,也许你能够在此基础上开发一个App?blog

相关文章
相关标签/搜索