动漫人物分类识别
Python & Deep Learning 101 Assignment #2
来源
一开始定题的时候大家都很纠结,想了几天都没有很好的想法。之后有一天我看到有人在某个群里发了一张很好玩的 GIF 表情。
动图链接
就是这张,原图没有找到,自己花了点时间重新做了一份。
然后呢,我就隐隐约约有一种「好像很熟悉但是忘了是在哪儿看到的了」这种感觉,都是京都脸害的, 之后就想——要不就搞一个学习分类 ACG 人物的项目吧,告诉我们图片中出现的角色到底是谁。图像分类应该是比较成熟的了,对于我们这四条以前从来没玩过深度学习的咸鱼来说(看起来)还是比较合适的。
于是最后大家就一致同意(?)了,在考完数理方程之后就开搞了。
实际问题
正如上文提到的那样,有时候你看到了一张可爱或者搞笑的表情包、一张动画截图,或者一副 ACG 人物的插画,但很多时候你就是不知道在图片里面他们/她们是谁。
Google 搜图可以帮助解决一部分的问题,但是——
不是所有人都有畅通的网络。
有时候第一眼的结果会让你比较失望。
你说得很对,但是一点用都没有。
同时,网络中也有一些专门用于搜索 ACG 图片等的服务,例如 trace.moe,使用了 MPEG 7 Color Layout Descriptor,一种高效的分块、概括颜色的算法。其对动画的每帧都做了这样的索引。但也同时由于这个特性,在图像被裁减之后,由于全图颜色分布发生了比较大的变化,识别准确率会大幅下降。
所以,如果我们有足够的数据的话,最后用深度学习来做这个效果可能会比这几种方案都好得多。
难点
数据很可能会不够:收集足够多的、高质量的角色面部数据不是一件简单的事情。对于神经网络来说,可能几千张还嫌少。
「长得差不多」:有好几位同学都跟我说「感觉这些角色长得都差不多啊」,不知道我们训练出来的网络会不会也这么想。
最后能不能有效区分各个角色也是一个问题。