APP下载

鱼类识别小程序设计与实现

2022-01-06吕俊霖陈作志杨长平

农业工程 2021年10期
关键词:鱼类程序数据库

吕俊霖,陈作志,刘 岩,杨长平

(中国水产科学研究院南海水产研究所,广东 广州510300)

0 引言

随着智能手机的普及和深度学习技术的发展,以智能手机为载体的图像识别软件日渐走入人们的生活。基于卷积神经网络技术和深度学习的方法,图像识别软件可自动提取图像特征,并推断出对应的种类(标签),因此,在需要进行图像识别的场景中,手机图像识别软件得到了迅速地推广和应用,这类手机软件使用便捷,对特定领域的物体识别具备一定准确度,受到人们的普遍欢迎[1-2]。

我国拥有广阔的海洋面积,有3 000多种鱼类,共4个纲47目、313科、3 090种,人们经常捕获和食用的鱼类有几十种到上百种[3-5]。某些鱼类较为少见;不同科属的鱼类具有较相似的外观特征;各地对某些鱼类的称呼不统一,容易引起误解。鉴于上述情况,有必要开发出一款鱼类识别软件,帮助大众识别鱼类、辨别鱼类、了解鱼类,这既是海洋科普的需要,也有益于渔政和科研人员了解当地的渔业水产情况。

1 产品使用场景

当前,已经有不少应用于特定场景的识别程序,如人脸识别、花卉识别、水果识别、昆虫识别和车牌号识别等[6-10]。这些识别程序为工作人员提供了有力的辅助工具,对普通人群来说,可通过这些识别程序,快速便捷地获得科普知识。

鱼类识别程序适用于以下场景。

(1)对不了解的鱼类,如在农贸市场上售卖的鱼类,或在渔业资源调查中捕获、垂钓到的鱼类进行识别,可了解其名称、生活习性、分布位置和形态特征。

(2)对已知道俗名的鱼类,想了解其更多的信息(学名、分类地位和生活习性等)。

(3)对俗名相同但外形不同的鱼类进行探究和比较,了解其不同之处。

(4)对识别出来的鱼类,希望通过分享功能,得到进一步确认,或者通过手机的分享功能,向公众或好友传播新发现,分享新知识。

2 识别软件表现形式

当前,手机识别应用软件有多种表现形式,传统上使用手机应用程序,也就是俗称的手机APP[11]。手机APP的特点是开发时间较长、功能较丰富,但成本也较高。随着微信的兴起,微信为了统一入口,推出了小程序功能,由于微信的使用人数众多,因此,基于微信小程序的识别软件也逐渐流行起来[12-13]。两者之间的比较如表1所示。

表1 手机APP和微信小程序的对比

针对鱼类识别的使用场景,选择微信小程序的形式,比较符合鱼类识别这种一次性、偶发性和随用随走的应用场景。

3 识别软件设计

鱼类识别小程序的设计可以分为前端和后端两个部分。前端使用微信小程序,呈现各种功能页面并接受用户输入(图1),后端在服务器上运行,对前端传递过来的交互信息进行响应,执行具体的功能,如调用识别脚本、读取数据库信息等,并返回相应的结果(图2)。

图1 前端功能框架

图2 后端功能框架

3.1 前端功能模块

(1)识别功能。识别功能是核心功能,用户通过调用手机摄像头,或者通过读取相册里的图片,上传给服务器进行识别。识别的结果包括学名、中文名、俗名、形态特征、地理分布、生活习性等信息。

(2)鱼类搜索。用户可以通过搜索鱼类的学名或俗名,得到相应鱼类的具体信息。

(3)一句话提示。在程序的起始页随机展示鱼类的清晰大图,并配有一句话提示,激发用户的好奇心和求知欲,增强用户黏性。

(4)识别记录。记录用户的每一次识别,并可将识别记录分享出去。

(5)小程序助手。如果有不了解的鱼类,用户可借助微信小程序的助手功能,邀请鱼类鉴定专家辅助鉴定。

(6)分享转发。分享转发识别出来的结果,请好友帮忙核对结果,或分享新知识。

3.2 后端功能模块

(1)鱼类识别脚本调用。对上传过来的图片进行识别脚本调用,利用卷积神经网络技术,将图片的卷积结果与识别模型相比对,得到属于某个物种的概率值,该物种在鱼类数据库中有一个唯一的标识(identification,ID),每个ID对应一种鱼类。

(2)数据库读取。设计鱼类信息数据库,根据脚本识别出来的物种ID,在鱼类数据库中读取属于该ID的其他字段,从而得到对应鱼类的详细信息。开发人员需提前在数据库中填好鱼类各字段的具体信息。

(3)识别日志。记录图片的识别结果,如上传图片时间、识别结果、识别耗时等。

(4)统计分析。对识别结果进行统计分析,可给出目标时间段内识别接口的调用情况和识别概率,为有针对性地调整识别参数提供数据支撑。

4 鱼类数据库设计

鱼类数据库用于对可识别的鱼类信息进行统一管理。根据软件的使用场景,确定了鱼类数据库的收录标准:①较为常见;②在我国出版的鱼类图谱、图志中被收录过;③鱼类的信息和图片较易采集。经反复筛选,共收入鱼类1 400种,这也是识别小程序所能识别的上限。

在鱼类识别数据库中,设计了可展示字段,并根据字段收集整理了鱼类的关键信息,如学名、中文名、俗名、分类地位、形态特征和生活习性等,制作成鱼类数据库。

鱼类识别数据库的结构如表2所示。

表2 鱼类信息数据表

5 识别小程序的实现

识别小程序由2个页面组成,首页是“识别”页(图3),通过随机展示一张鱼类的清晰大图和一句话知识,引发用户的好奇心,用户可直接点击该图片进行识别,也可通过拍照或从相册中选择图片进行识别,识别结果如图4所示。

图3 识别页

图4 识别结果页

第2个页面(图5)是“我的”页,主要提供了除识别外的其他重要功能,如识别记录、识别贝类的跳转链接、识别虾蟹的跳转链接、联系我们、分享转发和关于等,识别记录页面如图6所示。

图5 “我的”页

图6 识别记录页

通过这些菜单,用户可以查看自己的识别记录,也可以跳转到对贝类和虾蟹类的识别。“联系我们”提供了微信小程序助手的功能,可以通过这个功能联系鱼类鉴定专家,从而得到更好的鉴别服务。“关于”则提供了该软件的开发信息。

6 结束语

鱼类识别小程序的开发,紧密切合了需要对鱼类进行识别的典型场景,抓住了用户的核心需求,并且通过生动活泼的界面设计,实现了其核心功能。

鱼类小程序的识别结果比较准确,在验证集上的测试,准确率可达95%以上,在生活中经过多次的实物测试,准确率也达到90%以上,较好地实现了产品的需求,在鱼类知识普及中具有一定的作用,也可为手机识别程序的开发者提供有益的借鉴。

猜你喜欢

鱼类程序数据库
鱼类运动会
给Windows添加程序快速切换栏
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
奇妙的古代动物 泥盆纪的鱼类
英国与欧盟正式启动“离婚”程序程序
数据库
数据库
数据库
数据库