CN115458151A - 一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 - Google Patents
一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 Download PDFInfo
- Publication number
- CN115458151A CN115458151A CN202210669598.8A CN202210669598A CN115458151A CN 115458151 A CN115458151 A CN 115458151A CN 202210669598 A CN202210669598 A CN 202210669598A CN 115458151 A CN115458151 A CN 115458151A
- Authority
- CN
- China
- Prior art keywords
- image
- large yellow
- yellow croaker
- images
- disease
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/20—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0012—Biomedical image inspection
- G06T7/0014—Biomedical image inspection using an image reference approach
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30004—Biomedical image processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A40/00—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
- Y02A40/80—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
- Y02A40/81—Aquaculture, e.g. of fish
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- Public Health (AREA)
- Data Mining & Analysis (AREA)
- Pathology (AREA)
- Biophysics (AREA)
- Quality & Reliability (AREA)
- Radiology & Medical Imaging (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Life Sciences & Earth Sciences (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法,该方法采集患有隐核虫病的大黄鱼图像、健康的大黄鱼图像、具有包囊的养殖桶底图像和无包囊的养殖桶底图像,通过计算机图像处理技术对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注,建立小规模图像数据集,经数据扩增后利用deeplabv3+深度学习网络对养殖桶底图像进行分类、鱼体图像背鳍进行提取,分别建立了刺激隐核虫病病原识别模型和大黄鱼背鳍提取模型。随后,背鳍图像经增强处理后进行分割,利用EfficientNet网络模型进行迁移学习,建立高效识别、低网络参数、高准确性的大黄鱼刺激隐核虫病病征图像识别模型,实现了隐核虫病病原和病征的双识别,有效的做到了隐核虫病的早期预警监测,大大提高了疫病诊断的准确性和时效性,为隐核虫病的及时治疗打下了基础。
Description
技术领域
本发明涉及水产动物病虫害诊断技术领域,尤其是涉及一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法。
背景技术
刺激隐核虫(Cryptocaryon irritans)是隐核虫病的病原。研究证实,除少数几种如黄斑篮子鱼和黄姑鱼对隐核虫的敏感性较低外,隐核虫能较易感染其他的海洋硬骨鱼类。养殖鱼一旦被感染,其体表常呈现肉眼可见的白点,因此该病也被称之为“海水鱼白点病”。该寄生虫繁殖迅速,在疾病发作期间,鱼体从轻微的早期感染到下一轮强化感染仅需一周。特别是在空间相对封闭的工厂化高密度养殖中,隐核虫一旦进入养殖系统,其数量将呈指数级增加,如果不及时发现并采取相应的防治措施,将会在较短时间内造成养殖鱼体的大规模死亡。因此,海水鱼刺激隐核虫病有效防治的前提是该疫病的早期诊断。
多年来,许多研究旨在寻找一种隐核虫病高效快速的诊断方法。目前,主要的诊断方法包括表观诊断和分子生物学诊断两种。表观诊断简单快捷,但当鱼体出现明显可见的症状时,也正是病害发生的高峰,此时鱼体已经“病入膏肓”。此外,其它相似的病症也会给养殖者带来迷惑。分子生物学方法对病害的诊断较为准确、高效,但对检测人员的专业素质及设备要求较高,且仅能在实验室条件下完成。因此,寻求一种智能高效、简单快捷的海水鱼隐核虫病的诊断方法势在必行。
近年来,随着农业信息化的高速发展,计算机技术已逐渐用于农业发展的多个领域。计算机视觉就是其中的一种,已逐渐从人文领域向农业市场发展,在农产品的分类、鉴别以及作物病害的识别中都取得了一定的成效。Srdjan等人就基于深度神经网络,建立了植物叶片病害识别的模型,精度高达96.30%;王细萍等人基于积卷神经网络和时变冲量学习方法,建立了苹果病变图像识别模型,精度高达97.45%;然而,在海水鱼养殖中,刺激隐核虫感染鱼体后,它们的体表和鳍将呈现边缘明显可见的白点。此外,鱼体上的白点成熟后将自发的脱落到养殖池底,形成了具有一定形状、尺寸和颜色的物质(包囊)。因此,针对海水鱼隐核虫病图像识别系统的建立不仅可行,还有望推动水产养殖业朝智能化方向发展。
发明内容
本发明所要解决的技术问题是提供网络参数低、识别效率高,并且识别准确度高的基于图像识别技术的海水鱼刺激隐核虫病的诊断方法。
本发明所采用的技术方案是,一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,该方法包括下列步骤:
S1、采集患有隐核虫病的大黄鱼图像、健康的大黄鱼图像、具有包囊的养殖桶底图像和无包囊的养殖桶底图像;
S2、从步骤S1中采集的所有图像中选取部分患有隐核虫病的大黄鱼图像、部分健康的大黄鱼图像以及部分具有包囊的养殖桶底图像,对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注,分别得到若干张具有标记的的图像,并分别储存在两个文件夹中;
S3、对步骤S2得到的两个文件夹中的图像分别进行数据增广操作,得到关于大黄鱼的增广图像和关于养殖桶底的增广图像,将关于大黄鱼的增广图像与步骤S1中采集到的大黄鱼图像组成大黄鱼图像数据集,将关于养殖桶底的增广图像和步骤S1中采集到的养殖桶底图像组成养殖桶底图像数据集,并分别对两个数据集中的图像的尺寸进行调整,得到调整后的大黄鱼图像数据集以及调整后的养殖桶底图像数据集;
S4、将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照比例划分为训练集、验证集和测试集;
S5、采用deeplabv3+深度学习网络构建隐核虫病病原识别模型,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型,将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,得到最优隐核虫病病原识别模型;
S6、采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取,由deeplabv3+深度学习网络输出鱼体背鳍图像,并将鱼体背鳍图像的掩膜对应与步骤S1中采集的大黄鱼图像进行点乘,获得与原图像的像素值及尺寸大小一致的鱼体背鳍图像,由鱼体背鳍图像组成鱼体背鳍图像数据集;
S7、对步骤S6得到的鱼体背鳍图像数据集中的图像进行图像增强处理,得到处理后的鱼体背鳍图像数据集;
S8、对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割,得到图像分类数据集;
S9、将步骤S8所得的图像分类数据集按比例划分为训练集、验证集和测试集;
S10、采用Efficientnet神经网络来构建大黄鱼背鳍图像分类模型;
S11、利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练,得到大黄鱼病害图像识别模型;
S12、将步骤S9所得的测试集图像输入到步骤S11得到的大黄鱼病害图像识别模型中进行测试,得到最优大黄鱼病害图像识别模型。
S13、根据最优大黄鱼病害图像识别模型来设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别。
本发明的有益效果是:本发明将计算机图像处理技术首次运用于水产病害的识别中,解决了以往水产病害识别实效性和准确性的难点,实现了隐核虫病的早期诊断,与以往的表观诊断和分子生物学诊断相比,操作简单,高效,病害识别的准确性大大提高,有利于推动水产养殖向智能化发展;本发明为了提高水下养殖动物疫病识别的准确性,采用了病原和病症的双识别,一定程度上大大提高了疫病识别的准确性;与传统的机器学习相比,本发明不用进行图像的手动预处理、特征提取等繁琐的工作步骤,利用神经网络对图像进行特征提取,实现了端到端的运行,极大地缩减了模型的构建时间;采用深度学习网络对图像进行特征提取,大大减少了图像处理的时间和准确性;利用迁移学习方法,使用预训练模型进行训练,极大缩减了模型的训练时间;该模型能对复杂环境下拍摄采集的大黄鱼图像进行隐核虫病的识别,相比于传统机器学习的方法鲁棒性更强,因此,有望成为日后水产养殖病害识别的应用;在水产养殖领域中,首次利用计算机技术对养殖动物病害识别,能够有效推动水产养殖业朝着智能化发展,对日后实现数字化养殖具有一定的理论参考。
作为优选,在步骤S2中,所述的对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注的具体过程为:利用软件Labelbox对步骤S1中所获得的大黄鱼图像中的背鳍和养殖桶底的包囊分别进行人工标注,将患有隐核虫病的大黄鱼图像中的大黄鱼的背鳍部分、健康的大黄鱼图像中的大黄鱼的背鳍部分以及具有包囊的养殖桶底图像中的包囊部分的像素值均标注为1,鱼体其他部分和背景部分的像素标记为0,并提取像素值为1的部分,得到若干张具有标记的大黄鱼背鳍图像以及若干张具有标记的养殖桶底包囊图像。
作为优选,在步骤S3中,所述的对步骤S2得到的两个文件夹中的图像分别进行数据增广操作的具体过程为:在OpenCV函数库中调集相关的函数,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度、加噪点、放大和缩小以及改变镜像来进行图像数据的扩充。
作为优选,在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度的具体过程为:利用公式g(i,j)=α·f(i,j)+β,其中,f(i,j)作为源图像像素,g(i,j)作为输出图像像素,i和j表示像素位于第i行和第j列,参数α>0和β通常称为增益和偏置参数,对步骤S2中得到的两个文件夹中每一张具有标记的图像上的每一个像素点进行线性处理。
作为优选,在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行加噪点的具体过程为:使用python语言产生加零性均值的高斯噪声,给步骤S2中得到的两个文件夹中每一张具有标记的图像添加一个加零性均值的高斯噪声,即对每张图像上的每一个像素点的灰度值加上一个随机数;所述的对每一个像素点的灰度值加上一个随机数具体为:首先生成两个随机数U和V,再使用Box-Muller算法得到具有高斯分布性质的两个随机变量:最后通过随机变量X、Y来控制添加高斯噪声的程度。
作为优选,在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行放大和缩小的具体过程为:将对步骤S2中得到的两个文件夹中每一张具有标记的图像在x轴和y轴方向按一定比例进行缩放,从而获得一副新的图像,如果在两个方向上的缩放比例相同则为全比缩放,否则为非全比缩放。
作为优选,在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变镜像的具体为:利用python语言对步骤S2中标注的图像进行水平镜像、或垂直镜像、或对角镜像。
作为优选,在步骤S3中,所述的分别对两个数据集中的图像的尺寸进行调整的具体过程为:在OpenCV函数库中调集函数,并利用python语言,将大黄鱼图像数据集中的图像以及养殖桶底图像数据集中的图像的尺寸均调整为640*640,具体采用resize函数将图像的大小调整为640*640,函数的调用格式如下:void resize(InputArray src,OutputArraydst,Size dsize,double fx=0,double fy=0,int interpolation=INTER_LINEAR);其中,InputArray src和OutputArray dst分别表示输入和输出图像,Size dsize表示输出图像的大小,double fx=0,double fy=0表示x和y方向上变换大小因素,intinterpolation=INTER_LINEAR表示插值方法。
作为优选,在步骤S4中,将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照7:1:1划分为训练集、验证集和测试集;
作为优选,在步骤S5中,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型的具体过程为:采用deeplabv3+深度学习网络,将步骤S4中得到的训练集和验证集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,当测试集的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练,设置验证集的损失值在50次迭代后不再降低时,对模型终止训练,完成隐核虫病病原识别模型的建立。
作为优选,在步骤S6中,采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取的具体步骤为:采用deeplabv3+深度学习网络,将步骤S3中得到的调整后的大黄鱼图像数据集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后重新将步骤S3中得到的调整后的大黄鱼图像数据集中的部分图像输入到训练后的隐核虫病病原识别模型中进行测试,当模型的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练后,当模型的损失值在50次迭代后不再降低时,终止对模型训练,完成大黄鱼背鳍图像的提取。
作为优选,在步骤S7中,对步骤S6得到的鱼体背鳍图像数据集进行图像增强处理具体为:在OpenCV函数库中调集函数,利用python语言,对鱼体背鳍图像进行灰度变换和锐化处理;所述的对鱼体背鳍图像进行灰度变换具体为采用伽玛校正的方法进行灰度变换,对鱼体背鳍图像进行锐化处理具体为采用非锐化掩蔽方法进行锐化处理。
作为优选,在步骤S8中,对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割具体为:在OpenCV函数库中调集函数,利用python语言,以极值点为中心在鱼体背鳍图像上提取尺寸为50*50的块图,由尺寸为50*50的块图组成图像分类数据集。
作为优选,在步骤S11中,利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练的具体过程为:将Efficientnet神经网络的网络模型作为初始权重,在Efficientnet神经网络的sklearn包中使用交叉验证法将训练集中的图像随机分成七份,对Efficientnet神经网络进行N次训练,每次训练是将所述的七份中的一份与最初的验证集合并为一个验证集,剩下的六份作为训练集来对Efficientnet神经网络进行训练;每次训练完后利用Adam优化器对网络模型的参数进行调整,随后再次进行训练,完成N次训练后将获得N个经过训练的网络模型,选取其中相对最好的至少两组网络模型,并使用均值法将选取出来的至少两组网络模型进行模型融合,得到大黄鱼病害图像识别模型。
作为优选,在步骤S13中,根据最优大黄鱼病害图像识别模型设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别的具体过程为:将S5中建立的最优隐核虫病病原识别模型和S11中建立的最优大黄鱼病害图像识别模型均转化为TFLite轻量级模型,然后均内嵌到手机程序APP中,创建一个端到端的安卓应用程序;其中,所述的手机程序APP在Andriod Studio中用Java语言编写;用户安装后使用选择本地照片或手机摄像头拍照,当照片输入到程序后,点击识别按钮,APP的下方将给出预测结果,实现大黄鱼刺激隐核虫病的诊断。
附图说明
图1为本发明一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法的流程图;
图2为本发明中步骤S11中利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练的流程图;
图3为本发明中养殖桶底图像的对比图;图3中(a)为具有包囊的养殖桶底图像,图3中(b)为无包囊的养殖桶底图像;
图4为本发明中大黄鱼图像的对比图;图3中(a)为患有隐核虫病的大黄鱼图像,图3中(b)为健康的大黄鱼图像;
图5为本发明中经过图像增强处理后的背鳍图像对比图;图4中(a)为健康大黄鱼的背鳍图像,(b)为患有隐核虫病大黄鱼的背鳍图像;
图6为本发明中处理后的鱼体背鳍图像数据集中的图像进行分割后得到的块图的对比图;图5中(a)为经过分割后有白点的块图,图5中(b)为经过分割后没有白点的块图;
图7为本发明中大黄鱼背鳍图像分类模型的模型结构图。
具体实施方式
以下参照附图并结合具体实施方式来进一步描述发明,以令本领域技术人员参照说明书文字能够据以实施,本发明保护范围并不受限于该具体实施方式。
本发明所采用的技术方案是,一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,如图1所示,该方法包括下列步骤:
S1、采集患有隐核虫病的大黄鱼图像、健康的大黄鱼图像、具有包囊的养殖桶底图像和无包囊的养殖桶底图像;所述的患有隐核虫病的大黄鱼图像中,大黄鱼的体表和鳍将呈现明显可见的白点,而健康的大黄鱼图像中,大黄鱼体表和鳍无异常;所述的具有包囊的养殖桶底图像中养殖桶底有明显可见的白点,而无包囊的养殖桶底图像无明显的包囊。
S2、从步骤S1中采集的所有图像中选取部分患有隐核虫病的大黄鱼图像、部分健康的大黄鱼图像以及部分具有包囊的养殖桶底图像,对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注,分别得到若干张具有标记的的图像,并分别储存在两个文件夹中;
S3、对步骤S2得到的两个文件夹中的图像分别进行数据增广操作,得到关于大黄鱼的增广图像和关于养殖桶底的增广图像,将关于大黄鱼的增广图像与步骤S1中采集到的大黄鱼图像组成大黄鱼图像数据集,将关于养殖桶底的增广图像和步骤S1中采集到的养殖桶底图像组成养殖桶底图像数据集,并分别对两个数据集中的图像的尺寸进行调整,得到调整后的大黄鱼图像数据集以及调整后的养殖桶底图像数据集;
S4、将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照比例划分为训练集、验证集和测试集;
S5、采用deeplabv3+深度学习网络构建隐核虫病病原识别模型,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型,将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,得到最优隐核虫病病原识别模型;
S6、采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取,由deeplabv3+深度学习网络输出鱼体背鳍图像,并将鱼体背鳍图像的掩膜对应与步骤S1中采集的大黄鱼图像进行点乘,获得与原图像的像素值及尺寸大小一致的鱼体背鳍图像,由鱼体背鳍图像组成鱼体背鳍图像数据集;
S7、对步骤S6得到的鱼体背鳍图像数据集中的图像进行图像增强处理,得到处理后的鱼体背鳍图像数据集;
S8、对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割,得到图像分类数据集;
S9、将步骤S8所得的图像分类数据集按比例划分为训练集、验证集和测试集;
S10、采用Efficientnet神经网络来构建大黄鱼背鳍图像分类模型;
S11、利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练,得到大黄鱼病害图像识别模型;
S12、将步骤S9所得的测试集图像输入到步骤S11得到的大黄鱼病害图像识别模型中进行测试,得到最优大黄鱼病害图像识别模型。
S13、根据最优大黄鱼病害图像识别模型来设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别。
本发明将计算机图像处理技术首次运用于水产病害的识别中,解决了以往水产病害识别实效性和准确性的难点,实现了隐核虫病的早期诊断,与以往的表观诊断和分子生物学诊断相比,操作简单,高效,病害识别的准确性大大提高,有利于推动水产养殖向智能化发展;本发明为了提高水下养殖动物疫病识别的准确性,采用了病原和病症的双识别,一定程度上大大提高了疫病识别的准确性;与传统的机器学习相比,本发明不用进行图像的手动预处理、特征提取等繁琐的工作步骤,利用神经网络对图像进行特征提取,实现了端到端的运行,极大地缩减了模型的构建时间;采用深度学习网络对图像进行特征提取,大大减少了图像处理的时间和准确性;利用迁移学习方法,使用预训练模型进行训练,极大缩减了模型的训练时间;该模型能对复杂环境下拍摄采集的大黄鱼图像进行隐核虫病的识别,相比于传统机器学习的方法鲁棒性更强,因此,有望成为日后水产养殖病害识别的应用;在水产养殖领域中,首次利用计算机技术对养殖动物病害识别,能够有效推动水产养殖业朝着智能化发展,对日后实现数字化养殖具有一定的理论参考。
在步骤S2中,所述的对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注的具体过程为:利用软件Labelbox对步骤S1中所获得的大黄鱼图像中的背鳍和养殖桶底的包囊分别进行人工标注,将患有隐核虫病的大黄鱼图像中的大黄鱼的背鳍部分、健康的大黄鱼图像中的大黄鱼的背鳍部分以及具有包囊的养殖桶底图像中的包囊部分的像素值均标注为1,鱼体其他部分和背景部分的像素标记为0,并提取像素值为1的部分,得到若干张具有标记的大黄鱼背鳍图像以及若干张具有标记的养殖桶底包囊图像。
在步骤S3中,所述的对步骤S2得到的两个文件夹中的图像分别进行数据增广操作的具体过程为:在OpenCV函数库中调集相关的函数,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度、加噪点、放大和缩小以及改变镜像来进行图像数据的扩充。
在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度的具体过程为:利用公式g(i,j)=α·f(i,j)+β,其中,f(i,j)作为源图像像素,g(i,j)作为输出图像像素,i和j表示像素位于第i行和第j列,参数α>0和β通常称为增益和偏置参数,对步骤S2中得到的两个文件夹中每一张具有标记的图像上的每一个像素点进行线性处理。
在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行加噪点的具体过程为:使用python语言产生加零性均值的高斯噪声,给步骤S2中得到的两个文件夹中每一张具有标记的图像添加一个加零性均值的高斯噪声,即对每张图像上的每一个像素点的灰度值加上一个随机数;所述的对每一个像素点的灰度值加上一个随机数具体为:首先生成两个随机数U和V,再使用Box-Muller算法得到具有高斯分布性质的两个随机变量:最后通过随机变量X、Y来控制添加高斯噪声的程度。
给图像加噪点常见的几种方法分别为添加高斯噪声,或者添加椒盐噪声,或者添加泊松噪声;在步骤S3中,利用python语言对步骤S2中标注的图像进行加噪点的具体过程为:使用python语言产生加零性均值的高斯噪声,给步骤S2中标注的图像添加一个加零性均值的高斯噪声,即对每一个像素点的灰度值加上一个随机数;所述的对每一个像素点的灰度值加上一个随机数具体为:首先生成两个随机数U和V,再使用Box-Muller算法得到具有高斯分布性质的两个随机变量:最后通过随机变量X、Y来控制添加高斯噪声的程度。
在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行放大和缩小的具体过程为:将对步骤S2中得到的两个文件夹中每一张具有标记的图像在x轴和y轴方向按一定比例进行缩放,从而获得一副新的图像,如果在两个方向上的缩放比例相同则为全比缩放,否则为非全比缩放。可用矩阵表示为:对应的代数式可表示为:其中,x0和y0表示图像原始的尺寸,fx和fy表示缩放的倍数,x和y分别表示目标图像尺寸。
在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变镜像的具体为:利用python语言对步骤S2中标注的图像进行水平镜像、或垂直镜像、或对角镜像。假如设图像的大小为M*N,三种不同的变换方式用公式分别表示为:
水平镜像:
垂直镜像:
对角镜像:
注意,在OpenCV中坐标是从(0,0)开始的,所以式中的+1在编程时需要改为-1。
在步骤S3中,所述的分别对两个数据集中的图像的尺寸进行调整的具体过程为:在OpenCV函数库中调集函数,并利用python语言,将大黄鱼图像数据集中的图像以及养殖桶底图像数据集中的图像的尺寸均调整为640*640,具体采用resize函数将图像的大小调整为640*640,函数的调用格式如下:void resize(InputArray src,OutputArray dst,Size dsize,double fx=0,double fy=0,int interpolation=INTER_LINEAR);其中,InputArray src和OutputArray dst分别表示输入和输出图像,Size dsize表示输出图像的大小,double fx=0,double fy=0表示x和y方向上变换大小因素,int interpolation=INTER_LINEAR表示插值方法。
在步骤S4中,将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照7:1:1划分为训练集、验证集和测试集;
在步骤S5中,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型的具体过程为:采用deeplabv3+深度学习网络,将步骤S4中得到的训练集和验证集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,当测试集的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;设置验证集的损失值在50次迭代后不再降低时,对模型终止训练,完成隐核虫病病原识别模型的建立。
在步骤S6中,采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取的具体步骤为:采用deeplabv3+深度学习网络,将步骤S3中得到的调整后的大黄鱼图像数据集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后重新将步骤S3中得到的调整后的大黄鱼图像数据集中的部分图像输入到训练后的隐核虫病病原识别模型中进行测试,当模型的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练后,当模型的损失值在50次迭代后不再降低时,终止对模型训练,完成大黄鱼背鳍图像的提取。
在步骤S7中,对步骤S6得到的鱼体背鳍图像数据集进行图像增强处理具体为:在OpenCV函数库中调集函数,利用python语言,对鱼体背鳍图像进行灰度变换和锐化处理;所述的对鱼体背鳍图像进行灰度变换具体为采用伽玛校正的方法进行灰度变换,对鱼体背鳍图像进行锐化处理具体为采用非锐化掩蔽方法进行锐化处理。
伽玛校正就是对图像的伽玛曲线进行编辑,是对图像进行非线性色调编辑,改变图像的高灰度区和低灰度区,使它们的比例增加,从而提高图像的对比度效果。根据表达式: 其中,Vin的取值范围是0-1,γ的值决定了输入图像和输出图像之间的灰度映射方式,即决定增强图像低灰度值区域还是增强图像高灰度值区域;当γ>1时,图像的高灰度区域对比度得到增强;当γ<1时,图像的低灰度区域对比度得到增强;当γ=1时,不改变图像的。
非锐化掩蔽方法的过程包括三步:第一步,原图像模糊化;第二步,从原图像中减去模糊图像(产生差值图像称为模板);第三步,将模板加到原图像中。通过非锐化掩蔽方法来突出背鳍图像的边缘部分,使病症(白点)更加明显。
在步骤S8中,对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割具体为:在OpenCV函数库中调集函数,利用python语言,以极值点为中心在鱼体背鳍图像上提取尺寸为50*50的块图,由尺寸为50*50的块图组成图像分类数据集。
在步骤S11中,利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练的具体过程为:将Efficientnet神经网络的网络模型作为初始权重,在Efficientnet神经网络的sklearn包中使用交叉验证法将训练集中的图像随机分成七份,对Efficientnet神经网络进行N次训练,每次训练是将所述的七份中的一份与最初的验证集合并为一个验证集,剩下的六份作为训练集来对Efficientnet神经网络进行训练;每次训练完后利用Adam优化器对网络模型的参数进行调整,随后再次进行训练,完成N次训练后将获得N个经过训练的网络模型,选取其中相对最好的至少两组网络模型,并使用均值法将选取出来的至少两组网络模型进行模型融合,得到大黄鱼病害图像识别模型。
根据最优大黄鱼病害图像识别模型设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别的具体过程为:将S5中建立的最优隐核虫病病原识别模型和S11中建立的最优大黄鱼病害图像识别模型均转化为TFLite轻量级模型,然后均内嵌到手机程序APP中,创建一个端到端的安卓应用程序;其中,所述的手机程序APP在Andriod Studio中用Java语言编写;用户安装后使用选择本地照片或手机摄像头拍照,当照片输入到程序后,点击识别按钮,APP的下方将给出预测结果,实现大黄鱼刺激隐核虫病的诊断。
实施例一:
一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,如图1所示,该方法包括下列步骤:
S1、利用高清摄像机采集采集患有隐核虫病的大黄鱼图像、健康的大黄鱼图像、具有包囊的养殖桶底图像和无包囊的养殖桶底图像各3000张,总计12000张经过水产病害领域专家挑选的图像;所述的患有隐核虫病的大黄鱼图像中,大黄鱼的体表和鳍将呈现明显可见的白点,而健康的大黄鱼图像中,大黄鱼体表和鳍无异常;所述的具有包囊的养殖桶底图像中养殖桶底有明显可见的白点,而无包囊的养殖桶底图像无明显的包囊;
S2、从步骤S1中采集的所有图像中选取25张患有隐核虫病的大黄鱼图像、25张健康的大黄鱼图像以及50张具有包囊的养殖桶底图像,对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注,分别得到若干张具有标记的的图像,并分别储存在两个文件夹中;具体人工手动标注的过程为:利用软件Labelbox对步骤S1中所获得的大黄鱼图像中的背鳍和养殖桶底的包囊分别进行人工标注,将患有隐核虫病的大黄鱼图像中的大黄鱼的背鳍部分、健康的大黄鱼图像中的大黄鱼的背鳍部分以及具有包囊的养殖桶底图像中的包囊部分的像素值均标注为1,鱼体其他部分和背景部分的像素标记为0,并提取像素值为1的部分,得到若干张具有标记的大黄鱼背鳍图像以及若干张具有标记的养殖桶底包囊图像;
S3、对步骤S2得到的两个文件夹中的图像分别通过改变亮度、加噪点、放大缩小和改变镜像来进行数据增广操作,得到关于大黄鱼的增广图像和关于养殖桶底的增广图像,将关于大黄鱼的增广图像与步骤S1中采集到的大黄鱼图像组成大黄鱼图像数据集,将关于养殖桶底的增广图像和步骤S1中采集到的养殖桶底图像组成养殖桶底图像数据集,并分别对两个数据集中的图像的尺寸进行调整,具体调整为640*640,得到调整后的大黄鱼图像数据集以及调整后的养殖桶底图像数据集;
所述的改变亮度是指在不改变图像信息的条件下改变图像亮度和对比度,即对图像的每一个像素点进行线性处理,本实施例设置了两个随机种子分别表示亮度和对比度,随机范围为0.5-1.5,对图像数据使用随机种子得到的数进行亮度和对比度的更改;
所述的加噪点,常见的几种方法分别为,高斯噪声、椒盐噪声和泊松噪声;本实施例中是使用python产生加零性均值的高斯噪声,给图片添加一个服从高斯分布的噪声,即对每一个点的灰度值加上一个随机数,本实施例使用5*5的领域窗口,标准差为3对图像进行加噪;
所述图像的放大或缩小,是将给定的图像在x轴和y轴方向按一定比例进行缩放,从而获得一副新的图像,本实施例中对图像数据在缩放比例因子为0.5–1.5的范围内随机进行缩放;
所述的改变图像镜像,本实施例中,对图像数据进行随机的水平和垂直反转操作,设置随机种子为3;
需要说明的是,对所述标注的100张图像进行改变亮度、加噪点、放大缩小和改变镜像的操作方式来进行图像数据集的扩充,扩充后,得到经过数据增广后的大黄鱼图像数据集中总计有4900幅图像;
S4、将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照7:1:1的比例划分为训练集、验证集和测试集;
S5、采用deeplabv3+深度学习网络构建隐核虫病病原识别模型,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型,将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,得到最优隐核虫病病原识别模型;得到训练后的隐核虫病病原识别模型的具体过程为:采用deeplabv3+深度学习网络,将步骤S4中得到的训练集和验证集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,当测试集的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练,设置验证集的损失值在50次迭代后不再降低时,对模型终止训练,完成隐核虫病病原识别模型的建立;
S6、采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取,由deeplabv3+深度学习网络输出鱼体背鳍图像,并将鱼体背鳍图像的掩膜对应与步骤S1中采集的大黄鱼图像进行点乘,获得与原图像的像素值及尺寸大小一致的鱼体背鳍图像,由鱼体背鳍图像组成鱼体背鳍图像数据集;采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取的具体步骤为:采用deeplabv3+深度学习网络,将步骤S3中得到的调整后的大黄鱼图像数据集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后重新将步骤S3中得到的调整后的大黄鱼图像数据集中的部分图像输入到训练后的隐核虫病病原识别模型中进行测试,当模型的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练后,当模型的损失值在50次迭代后不再降低时,终止对模型训练,完成大黄鱼背鳍图像的提取;
S7、对步骤S6得到的鱼体背鳍图像数据集中的图像进行图像增强处理,得到处理后的鱼体背鳍图像数据集;具体的图像增强处理包括对图像进行灰度变换和锐化处理;所述的灰度变换,使用的是伽玛校正的方法,统计各灰度级的概率密度,找到第一个概率密度小于0.01的灰度级(低输入),找到第一个概率密度大于0.99的灰度级(高输入),从而将小于低输入的像素值置为0,大于高输入的灰度级置为255,中间部分做线性变换,从而改变图像的高灰度区和低灰度区,使它们的比例增加,从而提高图像的对比度效果;所述的锐化处理,使用的是非锐化掩蔽方法,过程分为三步:原图像模糊化;从原图像中减去模糊图像(产生差值图像称为模板);将模板加到原图像中;从而突出背鳍图像的边缘部分,使病症(白点)更加明显;
S8、对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割,分割为50*50的块图,由块图组成图像分类数据集;鉴于背鳍图像上的白点灰度值较大,且呈现中间向四周递减趋势,故斑点图像必涵盖极值点T,因此,以极值点为中心提取50*50的块图,若块图的像素平均值>T*0.4,则将块图写入文件夹中保存为块图数据集;
S9、将步骤S8所得的图像分类数据集按比例划分为训练集、验证集和测试集;所述的训练集共1400张块图,包括700张有白点图和700张无白点图;验证集共200张块图,包括100张有白点图和100张无白点图;测试集共200张块图,包括200张有白点图和200张无白点图;
S10、针对大黄鱼刺激隐核虫病早期难以发现等问题,采用Efficientnet神经网络来构建大黄鱼背鳍图像分类模型;大黄鱼背鳍图像分类模型包括一个卷积层、两个全连接层以及一个输出层,所述输出层采用的分类函数为Softmax分类函数,其表达式为: 其中,e为自然常数(约为2.71828),z表示回归类算法(如线性回归)的结果,k表示该数据的标签中总共有k个标签类别,在本发明实施例中,k=2,即健康大黄鱼和患隐核虫病的大黄鱼;
S11、利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练,得到大黄鱼病害图像识别模型;具体训练的过程为:将Efficientnet神经网络的网络模型作为初始权重,在Efficientnet神经网络的sklearn包中使用交叉验证法将训练集中的图像随机分成七份,对Efficientnet神经网络进行N次训练,每次训练是将所述的七份中的一份与最初的验证集合并为一个验证集,剩下的六份作为训练集来对Efficientnet神经网络进行训练;每次训练完后利用Adam优化器对网络模型的参数进行调整,随后再次进行训练,完成N次训练后将获得N个经过训练的网络模型,选取其中相对最好的至少两组网络模型,并使用均值法将选取出来的至少两组网络模型进行模型融合,得到大黄鱼病害图像识别模型;
对大黄鱼背鳍图像分类模型需要进行多次迭代训练,直到网络模型的损失函数收敛,即损失函数降低到一定程度后不再降低,获得准确检测病斑的大黄鱼病害图像识别模型;计算网络模型的损失主要采用CrossEntropyLoss函数,CrossEntropyLoss函数的表达式为:H(p,q)=∑xp(x)logq(x);其中,p为期望输出的概率大小,q为实际输出的概率大小,H(p,q)为交叉熵,即判断实际输出与期望输出的接近程度,在本发明的实施例中表示有病症的图像和检测出病症图像之间的差异;
S12、将步骤S9所得的测试集图像输入到步骤S11得到的大黄鱼病害图像识别模型中进行测试,得到最优大黄鱼病害图像识别模型;
S13、根据最优大黄鱼病害图像识别模型来设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别,其具体过程为:将S5中建立的最优隐核虫病病原识别模型和S11中建立的最优大黄鱼病害图像识别模型均转化为TFLite轻量级模型,然后均内嵌到手机程序APP中,创建一个端到端的安卓应用程序;其中,所述的手机程序APP在AndriodStudio中用Java语言编写;用户安装后使用选择本地照片或手机摄像头拍照,当照片输入到程序后,点击识别按钮,APP的下方将给出预测结果,实现大黄鱼刺激隐核虫病的诊断。
Claims (10)
1.一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法,其特征在于:该方法包括下列步骤:
S1、采集患有隐核虫病的大黄鱼图像、健康的大黄鱼图像、具有包囊的养殖桶底图像和无包囊的养殖桶底图像;
S2、从步骤S1中采集的所有图像中选取部分患有隐核虫病的大黄鱼图像、部分健康的大黄鱼图像以及部分具有包囊的养殖桶底图像,对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注,分别得到若干张具有标记的的图像,并分别储存在两个文件夹中;
S3、对步骤S2得到的两个文件夹中的图像分别进行数据增广操作,得到关于大黄鱼的增广图像和关于养殖桶底的增广图像,将关于大黄鱼的增广图像与步骤S1中采集到的大黄鱼图像组成大黄鱼图像数据集,将关于养殖桶底的增广图像和步骤S1中采集到的养殖桶底图像组成养殖桶底图像数据集,并分别对两个数据集中的图像的尺寸进行调整,得到调整后的大黄鱼图像数据集以及调整后的养殖桶底图像数据集;
S4、将步骤S3所得的调整后的养殖桶底图像数据集中的图像按照比例划分为训练集、验证集和测试集;
S5、采用deeplabv3+深度学习网络构建隐核虫病病原识别模型,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型,将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,得到最优隐核虫病病原识别模型;
S6、采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取,由deeplabv3+深度学习网络输出鱼体背鳍图像,并将鱼体背鳍图像的掩膜对应与步骤S1中采集的大黄鱼图像进行点乘,获得与原图像的像素值及尺寸大小一致的鱼体背鳍图像,由鱼体背鳍图像组成鱼体背鳍图像数据集;
S7、对步骤S6得到的鱼体背鳍图像数据集中的图像进行图像增强处理,得到处理后的鱼体背鳍图像数据集;
S8、对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割,得到图像分类数据集;
S9、将步骤S8所得的图像分类数据集按比例划分为训练集、验证集和测试集;
S10、采用Efficientnet神经网络来构建大黄鱼背鳍图像分类模型;
S11、利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练,得到大黄鱼病害图像识别模型;
S12、将步骤S9所得的测试集图像输入到步骤S11得到的大黄鱼病害图像识别模型中进行测试,得到最优大黄鱼病害图像识别模型。
S13、根据最优大黄鱼病害图像识别模型来设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别。
2.根据权利要求1所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S2中,所述的对所选取的大黄鱼图像中的鱼体背鳍以及所选取的养殖桶底图像中的包囊分别进行人工手动标注的具体过程为:利用软件Labelbox对步骤S1中所获得的大黄鱼图像中的背鳍和养殖桶底的包囊分别进行人工标注,将患有隐核虫病的大黄鱼图像中的大黄鱼的背鳍部分、健康的大黄鱼图像中的大黄鱼的背鳍部分以及具有包囊的养殖桶底图像中的包囊部分的像素值均标注为1,鱼体其他部分和背景部分的像素标记为0,并提取像素值为1的部分,得到若干张具有标记的大黄鱼背鳍图像以及若干张具有标记的养殖桶底包囊图像。
3.根据权利要求2所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S3中,所述的对步骤S2得到的两个文件夹中的图像分别进行数据增广操作的具体过程为:在OpenCV函数库中调集相关的函数,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度、加噪点、放大和缩小以及改变镜像来进行图像数据的扩充。
4.根据权利要求3所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变亮度的具体过程为:利用公式g(i,j)=α·f(i,j)+β,其中,f(i,j)作为源图像像素,g(i,j)作为输出图像像素,i和j表示像素位于第i行和第j列,参数α>0和β通常称为增益和偏置参数,对步骤S2中得到的两个文件夹中每一张具有标记的图像上的每一个像素点进行线性处理;利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行加噪点的具体过程为:使用python语言产生加零性均值的高斯噪声,给步骤S2中得到的两个文件夹中每一张具有标记的图像添加一个加零性均值的高斯噪声,即对每张图像上的每一个像素点的灰度值加上一个随机数;所述的对每一个像素点的灰度值加上一个随机数具体为:首先生成两个随机数U和V,再使用Box-Muller算法得到具有高斯分布性质的两个随机变量: 最后通过随机变量X、Y来控制添加高斯噪声的程度;在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行放大和缩小的具体过程为:将对步骤S2中得到的两个文件夹中每一张具有标记的图像在x轴和y轴方向按一定比例进行缩放,从而获得一副新的图像,如果在两个方向上的缩放比例相同则为全比缩放,否则为非全比缩放;在步骤S3中,利用python语言对步骤S2中得到的两个文件夹中具有标记的图像进行改变镜像的具体为:利用python语言对步骤S2中标注的图像进行水平镜像、或垂直镜像、或对角镜像。
5.根据权利要求3或4所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S5中,将步骤S4中得到的训练集和验证集输入到deeplabv3+深度学习网络中进行训练,得到训练后的隐核虫病病原识别模型的具体过程为:采用deeplabv3+深度学习网络,将步骤S4中得到的训练集和验证集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后将步骤S4中得到的测试集输入到训练后的隐核虫病病原识别模型中进行测试,当测试集的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练,设置验证集的损失值在50次迭代后不再降低时,对模型终止训练,完成隐核虫病病原识别模型的建立。
6.根据权利要求5所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S6中,采用deeplabv3+深度学习网络对步骤S3得到的调整后的大黄鱼图像数据集中的图像进行鱼体背鳍提取的具体步骤为:采用deeplabv3+深度学习网络,将步骤S3中得到的调整后的大黄鱼图像数据集输入进deeplabv3+模型进行深度学习,利用Adam算法,选择Adam optimizer函数作为参数优化器,设定模型的初始学习率为0.01,训练迭代的最大次数为50;随后重新将步骤S3中得到的调整后的大黄鱼图像数据集中的部分图像输入到训练后的隐核虫病病原识别模型中进行测试,当模型的损失值不再降低时,衰减学习率以及衰减参数为0.1,衰减后的学习率为初始学习率与衰减参数的乘积;重复多次训练后,当模型的损失值在50次迭代后不再降低时,终止对模型训练,完成大黄鱼背鳍图像的提取。
7.根据权利要求6所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S7中,对步骤S6得到的鱼体背鳍图像数据集进行图像增强处理具体为:在OpenCV函数库中调集函数,利用python语言,对鱼体背鳍图像进行灰度变换和锐化处理;所述的对鱼体背鳍图像进行灰度变换具体为采用伽玛校正的方法进行灰度变换,对鱼体背鳍图像进行锐化处理具体为采用非锐化掩蔽方法进行锐化处理。
8.根据权利要求7所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S8中,对步骤S7得到的处理后的鱼体背鳍图像数据集中的图像进行分割具体为:在OpenCV函数库中调集函数,利用python语言,以极值点为中心在鱼体背鳍图像上提取尺寸为50*50的块图,由尺寸为50*50的块图组成图像分类数据集。
9.根据权利要求8所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S11中,利用步骤S9所得的训练集和验证集来对步骤S10中的大黄鱼背鳍图像分类模型进行训练的具体过程为:将Efficientnet神经网络的网络模型作为初始权重,在Efficientnet神经网络的sklearn包中使用交叉验证法将训练集中的图像随机分成七份,对Efficientnet神经网络进行N次训练,每次训练是将所述的七份中的一份与最初的验证集合并为一个验证集,剩下的六份作为训练集来对Efficientnet神经网络进行训练;每次训练完后利用Adam优化器对网络模型的参数进行调整,随后再次进行训练,完成N次训练后将获得N个经过训练的网络模型,选取其中相对最好的至少两组网络模型,并使用均值法将选取出来的至少两组网络模型进行模型融合,得到大黄鱼病害图像识别模型。
10.根据权利要求9所述的一种基于图像识别技术的大黄鱼刺激隐核虫病的诊断方法,其特征在于:在步骤S13中,根据最优大黄鱼病害图像识别模型设计手机端APP程序,通过拍摄图片完成在养殖过程中隐核虫病的识别的具体过程为:将S5中建立的最优隐核虫病病原识别模型和S11中建立的最优大黄鱼病害图像识别模型均转化为TFLite轻量级模型,然后均内嵌到手机程序APP中,创建一个端到端的安卓应用程序;其中,所述的手机程序APP在Andriod Studio中用Java语言编写;用户安装后使用选择本地照片或手机摄像头拍照,当照片输入到程序后,点击识别按钮,APP的下方将给出预测结果,实现大黄鱼刺激隐核虫病的诊断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669598.8A CN115458151A (zh) | 2022-06-14 | 2022-06-14 | 一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669598.8A CN115458151A (zh) | 2022-06-14 | 2022-06-14 | 一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115458151A true CN115458151A (zh) | 2022-12-09 |
Family
ID=84297533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210669598.8A Pending CN115458151A (zh) | 2022-06-14 | 2022-06-14 | 一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115458151A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116523866A (zh) * | 2023-04-26 | 2023-08-01 | 扬州大学 | 一种小麦赤霉病抗性鉴定方法、系统、电子设备和存储介质 |
-
2022
- 2022-06-14 CN CN202210669598.8A patent/CN115458151A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116523866A (zh) * | 2023-04-26 | 2023-08-01 | 扬州大学 | 一种小麦赤霉病抗性鉴定方法、系统、电子设备和存储介质 |
CN116523866B (zh) * | 2023-04-26 | 2023-12-01 | 扬州大学 | 一种小麦赤霉病抗性鉴定方法、系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766856B (zh) | 一种双流RGB-D Faster R-CNN识别哺乳母猪姿态的方法 | |
CN111986099A (zh) | 基于融合残差修正的卷积神经网络的耕地监测方法及系统 | |
CN110648331B (zh) | 用于医学图像分割的检测方法、医学图像分割方法及装置 | |
CN113269191A (zh) | 一种农作物叶片病害识别方法、装置和存储介质 | |
CN111882555B (zh) | 基于深度学习的网衣检测方法、装置、设备及存储介质 | |
CN112883915A (zh) | 一种基于迁移学习的麦穗自动识别方法和系统 | |
CN113536978A (zh) | 一种基于显著性的伪装目标检测方法 | |
CN110287990A (zh) | 微型藻类图像分类方法、系统、设备及存储介质 | |
CN115458151A (zh) | 一种基于图像识别技术的海水鱼刺激隐核虫病的诊断方法 | |
CN118334336A (zh) | 阴道镜图像分割模型构建方法、图像分类方法和装置 | |
CN113344009B (zh) | 一种轻小型网络自适应番茄病害特征提取方法 | |
CN118262149A (zh) | 一种基于深度学习的农作物病虫害图像识别方法与系统 | |
CN116797611B (zh) | 一种息肉病灶分割方法、设备及存储介质 | |
CN117593252A (zh) | 一种作物病害识别方法、计算机设备及存储介质 | |
CN113643297A (zh) | 一种基于神经网络的计算机辅助牙龄分析方法 | |
CN117636314A (zh) | 一种缺苗识别方法、装置、设备及介质 | |
CN116935296A (zh) | 基于多任务深度学习的果园环境场景检测方法及终端 | |
CN115359324A (zh) | 一种中华绒螯蟹头胸甲特征点识别的方法 | |
Xie et al. | Multi-Scale and Multi-Factor ViT Attention Model for Classification and Detection of Pest and Disease in Agriculture. | |
CN115908925A (zh) | 基于无人机遥感影像的松材线虫病识别方法 | |
Chilakalapudi et al. | Optimized deep learning network for plant leaf disease segmentation and multi-classification using leaf images | |
Gurung et al. | Transformer in Microbial Image Analysis: A Comparative Exploration of TransUNet, UNet, and DoubleUNet for SEM Image Segmentation | |
CN113744166A (zh) | 一种用于浑浊水下鱼类图像增强的方法 | |
Nathanael et al. | Development of Convolutional Neural Network (CNN) Method for Classification of Tomato Leaf Disease Based on Android | |
CN117935250B (zh) | 一种对自然形态的稻穗进行表型提取的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |