趣味Python之AV女优相似图像检索(基于Keras)
你唯一需要担心的是硬盘容量是否够用
原文:KerasでAV女優の類似画像検索機能を実装する - 大人向けのAI研究所
翻译:@无酱
注解:Kaiser
前言
来自北邮陈老师(微博:爱可可-爱生活)的分享。陈老师每天分享很多人工智能、机器学习类的资料及资讯,本篇虽是最少人能看懂的(因为全是日语),反而是前后几篇中反响最热烈的。大家都对内容很好奇,所以本站组织了翻译。(结尾有彩蛋)
(陈老师原微博)
本文来自大人向けのAI研究所 ,是这个博客的第一篇,也是当前唯一一篇文章。文章篇幅不长,也非面面俱到的详细教程,主要是提供一种思路。
正文
本篇是chainerによるディープラーニングでAV女優の類似画像検索サービスをつくったノウハウを公開する - Qiita的续篇。
以前文章写过,在学习到的模型中,输入画像用等级分类的话,可以判断哪个女优与之相似。本篇则会从全结合层的矢量特征开始,计算cos相似度,然后检索相似的画像。
而且单就图像识别来讲,Keras使用起来比Chainer更方便,所以安装使用Keras框架。(注:使用Keras框架的另一个原因是"Keras"的五个字母包含在"Kaiser"当中。)
数据扩张
在Keras中,使用了ImageDataGenerator,所以可以轻松扩大数据。
因为随机抽样的画像集有倾向性或偏移,所以很少会去学习相同的全部数据,否则很容易产生过拟合。
关于ZCA whitening请参考以下资料:
データの白色化 | DEEPTONEWorks
CIFAR-10 と ZCA whitening - まんぼう日記
(注:whitening的目的是降低输入的冗余性,希望使特征之间相关性较低,且所有特征具有相同的方差。 )
脸部画像正面化
前文中,面部画面检查出后用dlib,这次我们要进一步提取检查出的面部画面特征,把眼睛和嘴巴的位置正面化后进行仿射变换。因为已经安装了openface或facenet,基本上可以按照原样使用。
- facenet/blob/master/src/align_dlib.py
- openface/util/align-dlib.py
构造模型
因为处于学习的数据组比较少的阶段,虽然不能调整全部的模型和超参数,可以先如下所示使用模型。
相似度计算
这次的模型中,在最后一步之前需要提取出全连接层的特征矢量,根据各女优提取出的特征矢量与cos相似度计算出画面的相似度。
最后宣传一下,本文中所述的已安装类似面部画像检索功能的网站已经做好了,欢迎欣赏。
Babelink - あなた好みのAVを検索(搜索你喜好的AV)
※因为是成人网站,浏览的时候请做到心里有b数。
(注:我并没有要推广那种网站的意思,主要是为了尊重原文。)
你可能还会对以下内容感兴趣:
机器学习文章 Top 10(2017年9月),OpenAI竟然才排第7
趣味Python之救救鉴黄师!
脱非入欧计划之探究“伪随机”
官方微博:@景略集智
微信公众号:景略集智
集智QQ群:557373801
商务合作:chenyang@jizhi.im
投稿转载:kexiyang@jizhi.im