韩闰凯 杨晶晶 翟永辉 顾志豪 刘家兴 郭甲倩
摘要:近些年随着机器学习领域的不断发展,在诸多领域都展现出其独特的优势。目前在养鸡业中,雏鸡性别鉴别的方式主要为人工鉴别,鉴别过程需要耗费大量人力物力,且需要鉴别人员拥有丰富的鉴别经验。该文结合机器学习在图像识别方向的发展,将图像识别技术应用于雏鸡性别鉴别,从而解决养鸡行业中雏鸡性别鉴别问题。使用卷积神经网络构建雏鸡性别鉴别模型,并在高识别率的情况下对模型进行压缩,将其转换为Tensorflow Lite模型后,部署到Android App以实现自动鉴别雏鸡公母。同时,在Android App实现了鸡的品种查询、疾病查询等功能。该软件可以降低相关工作人员工作负担,提高鉴别雏鸡公母的效率,有重要的应用价值。
关键词:雏鸡识别;机器学习;养殖;Android;Tensorflow Lite
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2021)18-0082-04
开放科学(资源服务)标识码(OSID):
App Design for Identification of Chicken Sex Based on TensorFlow Lite
HAN Run-kai,YANG Jing-jing, ZHAI Yong-hui, GU Zhi-hao, LIU Jia-xing, GUO Jia-qian
(School of Information Science and Engineering, Hebei North University, Zhangjiakou 075000, China)
Abstract:Machine learning,with its continuous development in recent years in fields, its distinctive advance has appeared. At present in chicken culture industry, the chicken sex is identified manually as the main, which costs much in man power and material, and the personnel is required experienced. In the paper, development of machine learning in image identification is combined with the use of technology of image identification into chicken sex identification so as to solve the problem mentioned in chicken industry: apply Convolutional Neural Network(CNN) to construct chicken sex identification model, and compress the model in condition of high identification rate; transfer the compressed model to TensorFlow Lite model, then deploy the model to Android App for implementation of automatic identification of chicken sex and functions of enquiry of both chicken variety and disease, etc. This software may be used to reduce relevant man power, improve the efficiency of identical rate of chicken sex, which is of important applicable value.
Key words: identification 0f chicken sex; machine learning; culture; android; TensorFlow Lite
1 背景
1.1 开发背景
随着生活水平的提高,人们对鸡肉及其副产品的需求量日益增加,导致养鸡业迅速发展。而初生雏鸡是较脆弱,饲养时需要较高的成本,同时由于温度、湿度、通风、光照等因素影响 [1],初生雏鸡拥有较高的死亡率。而且在养殖过程中,涉及的雏鸡性别识别问题[2],主要为人工操作,这在雏鸡养殖过程中消耗了大量的时间与人力。
现实生活中养鸡场无论是商品肉鸡或是商品蛋鸡养殖,都需要把不同性别的雏鸡分开养殖或按一定比例混合饲养[3],从而提高初生雏鸡的存活率和养殖的经济效益。所以养鸡场养殖雏鸡时对购买的初生雏鸡进行性别鉴别尤为重要,雏鸡性别鉴别流程中多个步骤均为人工操作,需要花费大量时间,同时对于雏鸡鉴别人员的眼力与鉴别经验有较高要求。所以开发一款雏鸡性别鉴别软件尤为重要,可以在支持养鸡人员的工作同时,降低工作负担提高工作效率,并且帮助养鸡场节省成本。
该雏鸡性別识别App能够实现通过快捷的拍照或是使用雏鸡的生殖部位图片对雏鸡进行性别识别,提高性别鉴别效率,以便将刚出生的雏鸡合理饲养,进而提高养殖效率与养鸡的经济收益。
1.2 雏鸡翻腔鉴别法
雏鸡翻腔鉴别[4]要在雏鸡破壳后12小时内完成鉴别。需将雏鸡肛门翻开,通过雏鸡泄殖腔前端突起形状来判断雏鸡性别,雌性突起前端尖,雄性突起前端圆。与羽色法、羽斑法等鉴别方法相比,翻缸鉴别法适用于适用各个品种雏鸡,且准确率高。
2 开发平台
TensorFlow Lite 是 Google在2017年I/O大会上首次被提出,其使开发人员可以在端侧部署人工智能应用[5]。同时TensorFlow Lite市TensorFlow,在移动设备上运行机器学习模型的跨平台解决方案,并拥有低延迟,运行时库极小等特性,使其在移动设备上有着十分优秀的表现,并加速端侧机器学习的发展[6]。
Android系统是由Android系统公司的创始人Andy Rubin创造的,而后被Google收购,Google的目标是将Android系统打造成一个标准化、开放式的移动操作系统平台[7]。目前Android系统早已成为主流移动终端操作系统之一,并占据了大部分市场份额。同时与其他移动终端操作系统相比Android系统由于开源性而吸引了大量开发者前来进行应用开发,导致在过去几年中Android应用的数量出现了井喷式增长,并在一定程度上促进了Android技术的发展。而且Android系统已经不仅仅用在手机端,还广泛用于TV、手表等各种可穿戴设备以及各种智能硬件。
3 需求分析
3.1 用户需求
对于软件性能来说,App不仅需要具备基本的功能,在软件的设计和人机交互过程中更要注重用户的体验感,本产品的界面简洁清晰,色彩清新可为用户提供优良的体验。
1)软件功能完整性:客户端功能齐全,为用户使提供便利。
2)软件运行流畅性:用户使用过程中不能出现卡顿现象,在一些必需的耗时操作中展示加载动画提示用户,确保用户不会出现负面体验。
3)软件启动时间较短:软件的启动是用户体验的第一步,如果启动时间较费时会直接影响用户的体验感。
4)软件内存占用较少:软件设计不当会造成占用内存过高,运行中导致软件被系统进程杀掉,从而大大降低了用户的体验感。
3.2 功能需求
1)雏鸡性别鉴别软件,必须满足用户可对雏鸡进行快速性别鉴别的功能,本产品通过机器学习技术会对雏鸡性别概率进行初步的分析。
2)满足客户端与服务器之间、客户端与客户端之间的通信流畅,用户在我们的平台能够及时地发送接收信息。
3)错误信息提示,软件在断网时运行或其他错误情况,需有弹窗告知用户,除此之外在本产品的“我的”界面有意见反馈功能,用户可以随时通过此功能对本产品提出建议。
4 雏鸡性别识别模型实现
由于现实生活中Android设备可能处于无网络的情况,无法将数据传输到服务器端进行运算,同时在部署机器学习模型时,要考虑到移动设备的带宽较低与其在运行时对低延迟、低功耗的要求。所以无法直接将用Keras训练的雏鸡性别鉴别模型直接部署到移动设备端,需使用TensorFlow Lite将训练好的模型转换成TensorFlow Lite 的模型文件,并使用TensorFlow Lite中的优化方法对转换后的模型文件进行处理,从而保证模型在Android设备上的识别准确率与运行效率。
1) 使用文献[8]中的方法训练好初始雏鸡性别鉴别模型。但由于初始模型网络参数量大,无法直接部署到Android端。所以将已经训练好的网络模型,通过知识蒸馏的方法进行模型压缩,从而得到一个较小体积的压缩模型,并且其准确率与初始模型相近。
2) 采用非量化的TFLite转换器,将已经压缩好的雏鸡性别鉴别模型转换为Tensorflow Lite格式。
3) 在Android端使用TensorFlow Lite 的模型的解释执行器去解释执行已经转换完成的雏鸡性别鉴别模型。从而完成雏鸡性别模型在Android端的部署。
5 雏鸡识别的设计
雏鸡识别软件具有以下基本功能,能够满足用户基本需求包括:登录注册、雏鸡性别识别、鸡的品种、鸡的疾病、鸡场建设、动态、收藏、新闻资讯、意见反馈、我的关注、浏览历史、修改资料、退出登录。
1) 登录注册:初次下载应用的用户可以设置账号密码进行注册,获取本软件一个身份ID,并使用注册的账号进行登录,完成登录的用户可以使用软件的所有功能。
2) 雏鸡性别识别:用户使用此功能,对雏鸡拍一张照片或者是从相册中选择一张雏鸡的照片进行识别,识别结果会给出这只鸡雌性与雄性的性别比例,以此来进行一个初步的雏鸡性别判断。
3) 鸡的品种:本产品收录了六十多种鸡的品种,充分满足用户的需求,通过对本功能的查看,分辨并了解一只鸡的品种特点习性等。
4) 鸡的疾病;本功能罗列了鸡的各种常见疾病,根据疾病能够查看病因、症状、治疗方法。
5) 鸡场建设:提供建设鸡场的大量资料,为初次建设鸡场的用户提供了许多的建议和指导。
6) 动态:为用户提供一个分享与交流的平台,用户可以在养殖的过程中分享自己的养殖经验,同时也可以查阅其他用户的养殖经验来进行参考。
7) 收藏:用户可以收藏对自己有用的帖子,方便下次查看。
8) 新闻资讯:在本产品的首页每天都会推出有关鸡在市场上的资讯,用户在家也能了解时事。
9 )意见反馈:用户可以通过此功能对我们的产品提出建议或问题,我们会为用戶提的意见进行优化修改。
10) 我的关注:记录了用户在动态中关注的其他用户。用户可以浏览所关注用户的个人信息和发布的动态,在浏览动态的过程中不会查看到未关注的用户所发布的动态。
11) 浏览历史:记录用户观看过的帖子,方便用户查找,以免在没有关注和收藏的情况下找不到想要查看的帖子。
12) 修改资料:用户可以修改自己向其他用户展示的个人信息,如头像、昵称、年龄、个性签名等。
13) 退出登录:退出你的账号。
6 雏鸡性别识别软件的实现
通过图片与文字相结合的方式介绍本产品的实现:
6.1 登录注册
登录注册模块使用,通过将用户数据与后台连接,后台会对注册的信息进行检查(用户上传的身份用户名是否已经存在),检查通过后会对密码进行动态加密处理,再存储到数据库的用户表中。用户的登录、注册功能展示如下(如图2,图3所示)。
6.2 首页
首页顶部有搜索功能供用户查询,搜索下面有精美的轮播图,首页包含鸡的品种、鸡的疾病、鸡场建设、雏鸡性别识别四个功能,还有每天的新闻资讯(如图4),首页的四个功能界面分别如下(图5,图6,图7,图8,图9)。
6.3 鸡的品种及详细
在软件的后台数据库中收录了常见的鸡的品种以及它们的介绍。用户打开该功能的界面可以获取数据库中所收录的鸡的品种名称和该品种的图片(图5),点击鸡的品种名称和该品种的图片所展对应的按钮会跳转到所选中鸡的品种详细页面(图6),便于用户可以直观地了解该品种信息。
6.4 鸡的疾病
将常见的鸡的疾病信息进行整合,并且收录到软件后台数据库中。用户在该功能界面可以获取五种类型的疾病(细菌性传染病、病毒性传染病、寄生虫病、营养缺乏病、雞中毒)以及每种类型所对应的疾病的名称(图7),点击疾病名称所对应的按钮可以跳转到该疾病的详细页面(图8),在该页面中展示了所选中的疾病详细信息,介绍了其病因、症状、治疗方法供用户参考。
6.5 鸡舍建设
在软件的后台数据库中收录了一些的鸡舍的建设信息,该页面提供了一些鸡舍的建设信息供用户参考(图9,图10)。
6.6 雏鸡识别
该功能是基于TensorFlow Lite模型文件和Android中的Neural Networks API(Google在Android 8.1以及更高版本的系统中,为实现机器学习框架而设计的底层接口。)实现的,用户通过选择一张雏鸡泄殖腔前端的图片(需将雏鸡肛门翻开拍摄的图片)即可运行TensorFlow Lite模型进而获取该雏鸡的性别概率,界面如下(图11,图12)。(雏鸡破壳后12小时内完成识别准确率较高)。
6.7 动态
在动态页面可以查看其他用户发表的雏鸡性别鉴别与养殖经验的文章(如图13)。同时想要查看文章的详细内容可以对文章进行点击,并且文章可在下方发表评论或与其他人进行相关知识探讨(如图14)。点击动态右上角图标进入发布动态界面,将雏鸡性别鉴别或养殖过程中的经验与问题进行分享。
6.8 收藏
这里可以清楚地看到以前收藏的帖子(图16)击帖子,点击帖子可以查看帖子的详细内容(如图14)。
6.9 我的
我的界面有网名头像、我的关注、浏览历史、修改资料、关于我们、意见反馈等主要功能(如图17)。我的关注可以查看用户在动态中关注过的人(如图18);浏览历史保存了用户曾经浏览过的帖子,方便查找(如图19);修改资料通过头像、昵称等修改,让用户展示自己的个性(如图20)。
7 结束语
本文对基于TensorFlow Lite的雏鸡性别鉴别App的开发背景、需求分析与软件的设计与实现进行探讨和研究,通过用文字与图片相结合的方式进行阐述。在软件开发时,采用设计模式原则,使代码趋于高内聚低耦合,提高代码可维护性,易读性以及扩展性。此外,在实现雏鸡性别鉴别功能的基础上,增加了与雏鸡养殖相关的功能。为相关的工作人员提供便利,并且有助于鸡场提高雏鸡养殖的经济效益。
参考文献:
[1] 张荣号.蛋鸡养殖技术要点[J].湖北畜牧兽医,2017,38(5):38.
[2] 冯淑梅.雏鸡饲养中应注意的问题[J].农业开发与装备,2019(4):240.
[3] 王德智.雏鸡日常饲养技术[J].畜牧兽医科学:电子版,2020(13):55-56.
[4] 魏晓冉,王志强,姜国松.雏鸡雌雄翻肛鉴别技术要点[J].家禽科学,2016(7):30-32.
[5] 高陆川.TensorFlow Lite开发平台的研究与分析[J].电子测试,2018(20):64-65,85.
[6] 李双峰.TensorFlow Lite:端侧机器学习框架[J].计算机研究与发展,2020,57(9):1839-1853.
[7] 肖勇锋,邱桃荣,余宇婷,等.基于Android的色卡识别系统的设计与实现[J].南昌大学学报(工科版),2016,38(2):183-190.
[8] 杨晶晶,韩闰凯,吴占福,等.基于CNN和图像深度特征的雏鸡性别自动鉴别方法[J].农业机械学报,2020,51(6):92,258-263.
【通联编辑:谢媛媛】