稀土 2018-02-16
首先祝大家新年快乐,狗年大吉!
怎么是我?说好的120类萌狗送祝福呢?
看看下面拼图中的120类狗狗,你能认出其中的多少只?
平时号称爱狗的我,能叫出名字的竟不超过5个……
以上图片来自于斯坦福狗狗数据集(Stanford Dog Dataset),共包括120种狗狗的20580张图片
vision.stanford.edu/aditya86/Im…
自己虽然认不清楚,训练个模型来识别倒不是难事,动手搞起来~
用Google的Inception V3图片分类模型进行迁移训练,根据以上数据集得到一个专门用于区别狗狗类别的图片分类器
狗狗分类效果如何?对于一张图片输入,模型输出120类狗狗各自对应的概率,概率越高说明越有可能
我们用三个指标来评估模型的分类效果:
模型分别实现了92.2%的Top1正确率、99.1%的Top3正确率、99.7%的Top5正确率,还是相当给力的
下图显示了120种狗狗各自对应的Top1正确率,除了少数几类狗狗容易造成混淆,大多数狗狗都能被正确分类出来
来看看Top1正确率最高的五类狗狗,这些狗狗特征比较明显,或者变化情况比较少
Bedlington Terrier 贝林顿梗,100%,长得这么有特色,当然一眼就看出来了
Leonberg 莱昂贝格,100%,我给取个别名吧,黑脸包公
Papillon 蝴蝶犬,99.5%,好可爱好漂亮的狗狗
Chow 松狮犬,99.5%,丑萌丑萌的
African Hunting Dog 非洲豺犬,99.4%,嗯……看起来不大友善……
再来看看Top1正确率最低的五类狗狗,这些狗狗可能和其他某类狗狗特别相似、容易混淆,或者变化情况比较多
Eskimo Dog 爱斯基摩犬,40.7%,对不起,我以为你是哈士奇……
Collie 柯利牧羊犬,58.8%,和柯基有点像,不过还是有区别的
Miniature Poodle 迷你贵宾犬,72.3%,总觉得似曾相似,却又叫不上名……
English Foxhound 英国猎狐犬,75.8%,啊……原来你叫这个……
American Staffordshire Terrier 美国斯塔福梗,76.8%,好多梗,可是我只知道牛头梗……
对于120类狗狗两两之间的组合,我们统计A被错分成B以及B被错分成A的总次数,得到最容易搞混的五组CP
巧的是,这五组CP正好涵盖了上面提及的Top1正确率最低的五类狗狗
Eskimo Dog 爱斯基摩犬(左)vs Siberian Husky 西伯利亚雪橇犬(右),共分错96次(70+26),都是雪地上跑的
Collie 柯利牧羊犬(左)vs Border Collie 边境牧羊犬(右),共分错47次(44+3),本是同根生、天涯若比邻
至于为啥前者容易被错分为后者,而后者并不那么容易被错分为前者,我猜是因为后者有黑色品种,而前者只有黄色
Miniature Poodle 迷你贵宾犬(左)vs Toy Poodle 玩具贵宾犬(右),共分错50次(28+22),嗯嗯,你们都是贵宾,你们最漂亮
English Foxhound 英国猎狐犬(左)vs Walker Hound 步行猎犬(右),共分错42次(25+17),都是两个眼睛一个鼻子两个耳朵一个嘴
American Staffordshire Terrier 美国斯塔福梗(左)vs Staffordshire Bullterrier 斯坦福斗牛梗(右),共分错46次(24+22),区别还是有的,就是说不清楚
最后用一张图来显示所有狗狗类别 两两之间的分类结果,其中第i行第j列表示i狗被分类为j狗的次数,次数越多则颜色越深,所以对角线的颜色自然是最深的
有趣的是,这个矩阵乍一看对称,但颜色上并非完全对称,也就是说,即使你容易被分类成我,我却并不一定也容易被分类为你
拿一些人脸做分类试试看,用一些比较经典的梗好了,比如说,孙红雷和牛头梗
Top3分别是Scotch Terrier 苏格兰梗、Dhole 豺犬、German Shepherd 德国牧羊犬,说好的牛头梗呢
再来个渤哥,极限挑战中的秋田犬
Top3分别是African Hunting Dog 非洲豺犬、Dhole 豺犬、Toy Terrier 玩具梗,看来模型没有被专门训练过,还是无法领略这种“神似”
然后在电脑上找了张我自己的图片,Top3分别是Pug 哈巴狗、Chihuahua 吉娃娃、Dhole 豺犬
最后找了张老婆的照片,Top3分别是Border Collie 边境牧羊犬、Collie 柯利牧羊犬、Beagle 比格犬,嗯,老婆还是比我美多了~
项目完整代码请参考我的Github
github.com/Honlan/Happ…
最后,和120类萌狗一起,祝大家新年快乐,狗年大吉!
它叫可乐,曾是曼谷街头的一只流浪狗。两年前,因为不小心咬了路人的鞋子,被人砍断双腿。所幸当地动物保护组织收留了它,并给它安装了假肢。它又可以快乐奔跑了,并再次对人类展示出信任与爱。可以不爱,请别伤害!