Building the robot

img source: google

相关背景

相比其他生物类别,国内仔稚鱼形态鉴定的人员特别稀缺,再加上基础资料的匮乏,使得这方面一直是海洋浮游环境和渔业资源研究里最薄弱的一环。而且即使是在这样小的圈子里,对资料的理解和对样本的观察因人而异,经常导致在大的时空尺度上的鉴定结果出现偏差。我们亟需充足的、标准化的分类鉴定力量。

鉴于近年来人工智能的飞速发展,可以考虑引入人工智能对仔稚鱼的鉴定工作进行辅助。当拿不准一个标本是什么鱼的时候,掏出手机对准目镜拍一张,几秒钟内计算机反馈出它可能是什么鱼的概率有多大,自己再对照资料确认一下,可以省下很多功夫,避免一些人为的差错。而且这项技术还可以继续开发,将模型泛化,拓展到其他生物类别。

工作流程

img source: google

一个粗犷的流程是这样:

收集仔稚鱼图像(当前

图像预处理

构建神经网络

图像采集

计划采集3-5万张仔稚鱼图片用于训练神经网络,当前完成12,984张。

目前采集图片主要使用了3台设备:Zeiss Stemi 2000、Leica M205FA和Zeiss Discovery V20,其中M205FA和Discovery V20是带电动臂和CCD的比较大型的体视显微镜,Stemi 2000是工作中常用的没有数码成像配件的体视镜。

带电动臂的的体视显微镜(如M205FA、Discovery V20)一般可以加Z轴叠加的功能。当拍摄较大个体时,一个焦距并不能看清标本全貌,使用Z轴叠加的功能可以把多个焦距拍摄的图片合成起来,成为一张可以清晰展示所有细节的图。这个拍摄速度现在大概是23张/小时,很慢,但是,很遗憾,现阶段还在探索,什么样的图都需要……

Stemi 2000之前是用手机对着目镜拍照,使用三脚架或者手机目镜夹子后,拍摄速度大约在150张/小时。经检验,用手机拍比用相机+转接环方便很多。

手机拍摄比较难控制图片质量,需要注意几点:

  • 对准焦点,拍摄完后可以放大图片看一下想要拍摄的位置是否清晰。
  • 图像干净,经常出现的问题(解决方法):1、背景的玻璃太花(换个平皿),2、水里漂浮杂质遮盖鱼体(冲洗干净鱼体表,用纯水盛放标本拍摄),3、鱼体有高光反射(水淹没鱼体),4、出现镜头在目镜内的映像(遮挡另一个目镜,减弱或遮蔽环境光),5、画面部分太亮部分太暗(调整入射光距离和角度)
  • 仅使用上光源。一种例外是:标本较扁薄,且具有不得不用下光源才能看清的特征。
  • 调整手机摄像头到目镜的距离,可以找到一个位置能拍摄到整个视野————三脚架是个伟大的发明。

最近买了台Sony RX100M3(一台比较屌的卡片相机)。在三脚架的加持下,它的镜头杵在目镜上刚刚好,视野非常完整。拍出来的图质量很高,十分推荐。

6张插图分别是:连接电脑的拍摄,使用手机在平时鉴定用的体视镜上拍摄,同一个标本使用Z轴叠加拍摄前后的两张对比图,手机在Stemi 2000上拍摄的两张图。
训练神经网络需要的是大量的图片,提取出各种特征,所以,同一种鱼不同大小的标本需要拍摄很多图片。即使是同一个标本,左侧身体和右侧身体拍出来的图片上展示的特征也可能有所不同。当我们实际应用训练好的神经网络的时候,并不能保证送给系统检测的图片都是标标准准的180°躺平头朝左立正站好,使用更多的各种形态的图才能提高模型的鲁棒性。针对一个标本,身体左侧面放平拍一张,右侧面放平拍一张;比较厚的标本可以不同焦距拍多张(Z轴叠加成1张即可);圆一点的标本向上滚一点、向下滚一点也可分别进行拍摄;不建议正对着背、腹部拍
目前并不需要把鱼的种类定好,但是如果已经确定好种类的标本可以在文件名里写上鱼的名字(非必须),对后面的加标工作可能是有帮助的。
拍好的照片上传百度网盘,分享给我的一个帐号,具体方法步骤见WY Lu写的这个介绍

一些示例

Zeiss Discovery V20景深叠加,满分

Zeiss Discovery V20景深叠加,满分

手机拍摄,去除下颌杂质黏附更佳

Discovery V20景深叠加。背景的玻璃太花,拍摄时水面飘过一个杂质遮挡标本。

手机拍摄,背景的颜色和鱼体的颜色接近,对比度低,应尽量将背景调暗

Leica M205FA景深叠加,色调暗,应重设白平衡

手机拍摄,水没有淹没标本,出现大面积反光

RX100M3对着目镜拍摄

Discovery V20没用景深叠加,较好。

手机拍摄。鱼体过曝,调整入射光强度、距与/或角度可以改善

手机拍摄。从目镜里的倒映明显,对目镜做一定遮挡可以改善。焦距可以再向下一点点。

手机拍摄,良好,但背景玻璃有点花。

手机拍摄,最大的问题是放大倍数不够,鱼应尽量占满视野。底下一条有反射的亮带,背景花。

RX100M3对着目镜拍摄