网友cldud1245是一名鸟类爱好者(以下简称喂鸟器),最近打算自学Python。他有其他语言的编程经验,所以不打算从HelloWorld一步一步开始,一上来就挑战图像识别!他用摄像头对准自家后院的喂鸟器,拍摄前来喂食的鸟类,然后尝试判断鸟类的种类,并通过推特机器人实时发布判断结果。手术第一天就拍了17张!最多每隔十分钟就有鸟儿来访。其中,卡罗来纳山雀一共造访过8次,但目前还无法准确判断是否为同一只。使用的技术都是开源的!Heybird大哥把代码放在Github上开源了。只有一个文件,300多行。让我们看看他是怎么做到的!作为初学者,他使用现有的开源项目,并没有自己训练新模型。对象检测模型使用随TensorFlow对象检测API发布的SSDOpenimagesv4。鸟类分类模型是谷歌在TensorFlowHub上发布的基于MobileNetV2的轻量级模型。图像处理是经典的OpenCV。但是鸟类分类模型给出的结果都是拉丁名。为了让大家更容易理解,他写了一个爬虫,从维基百科上爬下对应的常用名。另外在这个项目的Github中有详细的思路解释,有兴趣的可以学习一下!仍有改进的余地。从推特上公布的结果来看,准确率似乎还有待提高。例如,很难识别飞行中的鸟类。两只鸟有时也被认为是三只。鸟哥打算用Non-MaximumSuppression来解决这个问题。但这是该项目的第一天。Heybird用鸟类百科全书图集测试,结果还是很准确的,所以我怀疑是不是相机不够清晰。有人建议他爬取网友指出正确姓名的评论,连同图片一起加入数据集进行训练。精度可以不断提高。其他人建议下一步识别个别鸟类,看看是同一只鸟重复进食,还是同一物种的许多鸟。OneMoreThing回应了某人的提问:“但是它能判断一张照片是否是在国家公园拍摄的吗?”如果要判断一张照片是否是在国家公园拍摄的,只需要判断照片的地理标记信息即可。但是判断一张照片是否包含鸟是一个更困难的问题。Flickr的工程师看到后接受了这个挑战,并利用当时刚刚掀起新一轮热潮的深度学习制作了漫画中描述的程序ParkorBird(现已停止访问)。我们来看看当时深度卷积神经网络的架构。随着科技的发展,今天我们不仅可以识别照片中是否有鸟,还可以判断鸟的种类,甚至识别鸟的个体身份也不再是天方夜谭。
