CN116994064B - 一种种子病变粒识别方法及种子智能筛选系统 - Google Patents

一种种子病变粒识别方法及种子智能筛选系统 Download PDF

Info

Publication number
CN116994064B
CN116994064B CN202311079024.6A CN202311079024A CN116994064B CN 116994064 B CN116994064 B CN 116994064B CN 202311079024 A CN202311079024 A CN 202311079024A CN 116994064 B CN116994064 B CN 116994064B
Authority
CN
China
Prior art keywords
identification
seed
available
networks
output
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.)
Active
Application number
CN202311079024.6A
Other languages
English (en)
Other versions
CN116994064A (zh
Inventor
刘义臣
牟红伟
赵金辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei Qiusuo Seed Industry Co ltd
Hebei GEO University
Original Assignee
Hebei Qiusuo Seed Industry Co ltd
Hebei GEO University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hebei Qiusuo Seed Industry Co ltd, Hebei GEO University filed Critical Hebei Qiusuo Seed Industry Co ltd
Priority to CN202311079024.6A priority Critical patent/CN116994064B/zh
Publication of CN116994064A publication Critical patent/CN116994064A/zh
Application granted granted Critical
Publication of CN116994064B publication Critical patent/CN116994064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开一种种子病变粒识别方法及种子智能筛选系统,涉及种子筛选技术领域。本发明包括,获取种子的图像;提取种子的图像中的多个类型的种子特征;获取每个类型的种子特征对应的若干个预设的识别网络;将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,识别网络的输出结果包括种子正常和病变的概率;根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络;根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变。本发明提高了识别的准确性和抗干扰效果。

Description

一种种子病变粒识别方法及种子智能筛选系统
技术领域
本发明属于种子筛选技术领域,特别是涉及一种种子病变粒识别方法及种子智能筛选系统。
背景技术
随着农业的快速发展和现代化进程,高质量的种子对于农业产量和效益至关重要。种子是农作物生长和发育的基础,只有选用健康、无病害的种子,才能保证作物的高产、高质和稳定产量。因此,种子的筛选和检测成为农业生产中的关键环节。
传统的种子筛选和检测方法通常包括视觉检查、显微镜检查、种子培养、生化检测等。这些方法有一定的局限性,例如视觉检查主观性强,显微镜检查耗时且技术要求较高,种子培养和生化检测则需要较长的时间和复杂的操作。在大规模的种子生产和检测中,传统的方法往往无法满足高效、准确和快速的需求。
在公开号为CN114689539A的专利中公开了一种基于近红外高光谱图像的大豆种子病变粒识别方法及系统,属于种子筛选技术领域。方法包括:采集三种不同类型的大豆种子,构建种子样本,所述类型包括健康、霉变和紫斑;获取所述种子样本的近红外高光谱图像,对所述图像进行分割和光谱提取,获得单个大豆种子的近红外光谱数据;对所述近红外光谱数据进行预处理;根据所述预处理后的近红外光谱数据进行种子病变相关特征波长筛选,筛选出与大豆种子病变最相关的特征波长;基于所述特征波长,构建判别分析模型;根据所述判别分析模型对待识别的大豆种子进行识别,得到识别结果。该方案中基于单一的近红外高光谱图像进行识别判断,容易受到环境干扰。
发明内容
本发明的目的在于提供一种种子病变粒识别方法及种子智能筛选系统,通过一种种子病变粒识别方法及种子智能筛选系统,基于多个种子特征进行协同识别判断,提高了识别的准确性和抗干扰效果。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种种子病变粒识别方法,包括,
获取种子的图像;
提取种子的图像中的多个类型的种子特征;
获取每个类型的种子特征对应的若干个预设的识别网络;
将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,所述识别网络的输出结果包括种子正常和病变的概率;
根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络;
根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变。
本发明还公开了一种种子病变粒识别方法,包括,
获取种子的种类;
根据种子的种类调用对应预设的识别网络;
根据上述的一种种子病变粒识别方法判断种子是否病变。
本发明还公开了一种种子智能筛选系统,其特征在于,包括,
选择单元,用于获取种子的种类;
模型调用单元,用于根据种子的种类调用对应预设的识别网络;
若干个识别单元,用于获取种子的图像;
提取种子的图像中的多个类型的种子特征;
获取每个类型的种子特征对应的若干个预设的识别网络;
将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,所述识别网络的输出结果包括种子正常和病变的概率;
根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络;
根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变。
本发明通过提取多个种子特征对种子是否病变进行协同判断,提高了识别的准确性和抗干扰效果。在实施过程中首先提取种子图像中不同特征,之后获得每特征对应多预设识别网络,并将特征输入网络获输出结果(正常、病变概率)。接下来根据输出结果筛选可用种子特征和可用识别网络,最后依靠可用种子特征输入可用识别网络的输出结果判种子是否病变,在此过程中能够有效抵抗环境因素的干扰。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述一种种子智能筛选系统于一实施例的功能模块和信息流向示意图;
图2为本发明所述一种种子病变粒识别方法于一实施例的步骤流程示意图一;
图3为本发明所述一种种子病变粒识别方法于一实施例的步骤流程示意图二;
图4为本发明所述步骤S5于一实施例的步骤流程示意图一;
图5为本发明所述步骤S6于一实施例的步骤流程示意图;
图6为本发明所述步骤S63于一实施例的步骤流程示意图;
图7为本发明所述步骤S632于一实施例的步骤流程示意图;
图8为本发明所述步骤S5于一实施例的步骤流程示意图二;
图9为本发明所述步骤S502于一实施例的步骤流程示意图;
附图中,各标号所代表的部件列表如下:
1-选择单元,2-模型调用单元,3-识别单元。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
需要说明的是,以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
种子病变指的是种子中发生的病害或异常状况,可能会影响种子的健康和生长。这种病变可以由真菌、细菌、病毒、昆虫等多种生物性或非生物性因素引起。种子病变可能导致发芽率降低、植株生长受限甚至死亡,从而影响作物的产量和品质。及早检测和处理种子病变对于确保良好的种子品质和农作物产量具有重要意义。由于病变的种子不仅无法食用和种植,在储藏过程中还会污染其它正常的种子,因此需要对病变的种子进行准确剔除。现有的技术中通常使用色选机进行筛除,但是色选机在使用过程中容易受到环境光的影响,从而产生误判。为了提高筛选过程中的抗干扰的能力,本发明提供以下方案。
请参阅图1至3所示,本发明提供了一种种子智能筛选系统,包括用户选择种子种类的人机交互设备和病变识别设备。
人机交互设备从功能单元上划分可以包括选择单元1和模型调用单元2。选择单元1用于获取种子的种类,模型调用单元2用于根据种子的种类调用对应预设的识别网络。本方案中预设的时别网络是一种基于深度学习的人工神经网络,用于自动识别和分类图像、音频、文本等数据。它由多个层次的神经元组成,每一层都包含一些特定的功能单元,如卷积、池化、全连接等。这些网络通过在大规模训练数据上学习特征和模式,可以对输入数据进行自动特征提取和分类。
病变识别设备从功能单元上划分可以包括若干个识别单元3,每个识别单元3具体可以是一条识别通道,每条识别通道只能同时识别一粒种子。
每个识别单元3在进行识别工作的过程中首先可以执行步骤S1获取种子的图像,可以选择一台具有足够高的帧率(fps)的高速摄像机。帧率越高,可以捕捉到更精细的运动细节。同时,选择具备适当分辨率和像素质量的摄像机,以保证拍摄的图像质量。在此过程中需要创建适合的实验环境,确保光线充足且稳定,以获得清晰的图像。清洁的拍摄区域有助于避免杂质对结果的影响,并且设置合适的摄像机参数,如帧率、曝光时间、白平衡等。确保摄像机设置可以捕捉到种子掉落的整个过程。
接下来可以执行步骤S2提取种子的图像中的多个类型的种子特征,由于本方案目的是识别病变的种子,因此需要考虑病变种子的特征。病变的种子通常会显示出一些特定的特征,这些特征可以作为识别和检测种子病变的依据。例如,颜色变化,病变可能导致种子颜色变化,如褐色、黑色、灰色等,与正常种子相比,颜色变化可能是病变的标志。变形和变形: 受到病害影响的种子可能会变得畸形、不规则或变形。表面异常,病变可能导致种子表面出现斑点、斑块、凹凸不平等异常。质量下降,病变可能会降低种子的质量,使其变得轻盈、脆弱或腐烂。裂纹和损伤,某些病害可能导致种子表面出现裂纹、破损或划痕。大小不一,受到病害影响的种子可能会出现大小不均匀的情况。外部生长物,一些病变可能导致种子表面出现霉菌、霉斑、孢子等生长物。需要说明的是,不同类型的病害可能会导致不同的种子特征,而且有时这些特征可能会与种子的种类和生长环境有关。因此,在识别和检测种子病变时,需要综合考虑多个特征以及可能的变化。
接下来可以执行步骤S3获取每个类型的种子特征对应的若干个预设的识别网络,由于不同种子特征具有不同的特性,因此进行病变识别的过程中需要不同的识别网络。接下来可以执行步骤S4将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,识别结果包括种子正常和病变的概率。接下来可以执行步骤S5根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络。只是因为种子特征和识别网络的数量众多,在有限的时间内考虑到识别效果需要对明显识别不达标的种子特征和识别网络进行筛除。最后可以执行步骤S6根据种子的可用种子特征输入对应的可用识别网络输出的识别结果判断种子是否病变。在此过程中使用多种类型的种子特征对种子是否病变进行判断,有效避免环境干扰。
作为本方案的一个优选实施例,种子特征可以是种子颜色,对于同一粒种子,当种子颜色对应的识别结果与种子的识别结果不一致时,将种子颜色和种子的识别结果作为更新的训练集分作为对应识别网络的输入层和输出层进行补充训练,这样及时环境光的色温和亮度发生变化依旧能够进行自适应判断,有效克服环境光变化导致的干扰。
请参阅图4所示,如前文所述,本系统为了适用多种使用情景预设了数量众多的识别网络,同时为了提高识别的准确率和抗干扰效果也会提取多个种类的种子特征。但是受限于实际使用效果只会有一部分种子特征和对应一部分识别网络能够起到准确识别的效果,对了对其进行筛选,上述的步骤S5在具体实施的过程中首先可以执行步骤S51获取目标识别准确率,这里可以由操作人员结合使用需求自行设置。接下来可以执行步骤S52根据每个识别网络输出结果中种子正常和病变的概率的比例得到每个识别网络输出结果的准确率,并剔除不符合目标识别准确率的识别网络。也就是将准确率低于目标识别准确率的识别网络剔除。接下来可以执行步骤S53根据每个种子特征对应的若干个识别网络中被剔除的比例得到每个种子特征的模型识别准确率,并剔除不符合目标识别准确率的种子特征。接下来可以执行步骤S54根据每个种子特征对应的若干个识别网络的输出结果得到每个种子特征对应的若干个输出结果中正常和病变的累加概率。接下来可以执行步骤S55根据每个种子特征对应的若干个输出结果中正常和病变的累加概率之间的比例得到每个种子特征的结果识别准确率,并剔除不符合目标识别准确率的种子特征。最后可以执行步骤S56筛选得到种子的可用种子特征和对应的可用识别网络,也就是适合当前种子状态和使用环境的种子特征和识别网络,从而实现提高识别准确率和适应不同使用环境的技术效果。
为了对上述的步骤S51至步骤S56的实施过程进行补充说明,提供部分功能模块的源代码,并在注释部分进行对照解释说明。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 以下是识别网络的输出结构
struct NetworkOutput {
double normalProbability;
double abnormalProbability;
};
int main() {
// 获取目标识别准确率
double targetRecognitionAccuracy;
cout << "请输入目标识别准确率(例如:0.9代表90%): ";
cin >> targetRecognitionAccuracy;
// 每个识别网络的输出结果
vector<NetworkOutput> networkOutputs;
// 根据每个识别网络输出结果中种子正常和病变的概率的比例得到每个识别网络输出结果的准确率,并剔除不符合目标识别准确率的识别网络
vector<NetworkOutput> validNetworkOutputs;
for (auto& output : networkOutputs) {
double accuracy = output.normalProbability /(output.normalProbability + output.abnormalProbability);
if (accuracy >= targetRecognitionAccuracy) {
validNetworkOutputs.push_back(output);
}
}
// 根据每个种子特征对应的若干个识别网络中被剔除的比例得到每个种子特征的模型识别准确率
// 并剔除不符合目标识别准确率的种子特征
vector<double> seedFeatures;
vector<double> validSeedFeatures;
for (auto& feature : seedFeatures) {
double featureAccuracy = /*... 基于feature计算模型识别准确率...*/;
if (featureAccuracy >= targetRecognitionAccuracy) {
validSeedFeatures.push_back(feature);
}
}
// 根据每个种子特征对应的若干个识别网络的输出结果得到每个种子特征对应的若干个输出结果中正常和病变的累加概率
vector<double> accumulatedProbabilities;
// 根据种子特征和识别网络输出结果计算累加概率
// 根据每个种子特征对应的若干个输出结果中正常和病变的累加概率之间的比例得到每个种子特征的结果识别准确率
// 并剔除不符合目标识别准确率的种子特征
for (auto& probability : accumulatedProbabilities) {
double resultAccuracy = /*... 基于probability计算结果识别准确率 ...*/;
if (resultAccuracy < targetRecognitionAccuracy) {
auto it = find(validSeedFeatures.begin(),validSeedFeatures.end(), probability);
if (it != validSeedFeatures.end()) {
validSeedFeatures.erase(it);
}
}
}
// 输出筛选结果
cout << "可用种子特征数量: " << validSeedFeatures.size() << endl;
cout << "可用识别网络数量: " << validNetworkOutputs.size() <<endl;
return 0;
}
代码首先获取目标识别准确率,然后使用识别网络输出的种子正常和病变概率来计算准确率,基于这个准确率筛选出有效的识别网络。接着代码评估每个种子特征的模型识别准确率,剔除低于目标准确率的特征。此后基于累加概率进一步筛选种子特征。最终代码输出筛选后的可用种子特征和识别网络的数量。
请参阅图5至6所示,由于每个可用识别网络会输出不同的结果,每个可用种子特征也会对应不同的可用识别网络,为了将众多可用种子特征对应的可用识别网络的输出结果进行汇总,上述的步骤S6在具体实施的过程中首先可以执行步骤S61将可用识别网络的输出结果中较大概率值对应的正常或病变作为可用识别网络的识别结果。接下来可以执行步骤S62将可用种子特征对应的若干个可用识别网络的识别结果中的占比较大的识别结果作为可用种子特征的识别结果。最后可以执行步骤S63根据可用种子特征的识别结果中的占比较大的识别结果得到种子是否病变的识别结果。也就是不断取众数的方式找出最可信的输出结果。
但是在步骤S63中,不同可用种子特征对应的多个可用识别网络之间的输出结果是不同的,输出结果分散程度越大,说明该可用种子特征越不适合作为病变识别的特征因素。有鉴于此,上述的步骤S63在具体实施的过程中首先可以执行步骤S631获取可用种子特征对应的若干个可用识别网络的识别结果中正常和病变之间的数量。接下来可以执行步骤S632根据可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值得到每个可用种子特征的识别离散度。接下来可以执行步骤S633将可用种子特征的识别结果乘以对应的识别离散度得到可用种子特征的离散修正识别结果。之后可以执行步骤S634分别计算可用种子特征的离散修正识别结果中正常和病变的累加值。最后可以执行步骤S635将可用种子特征的离散修正识别结果累加值中较大最对应的正常或病变作为种子是否病变的识别结果。以上过程中将可用种子特征对应的若干个可用识别网络的识别结果的离散程度作为影响因素,离散程度越大,权重系数越低,这样能够进一步提高最终病变识别结果的准确性。
为了对上述的步骤S631至步骤S635的实施过程进行补充说明,提供部分功能模块的源代码,并在注释部分进行对照解释说明。
#include <iostream>
#include <vector>
#include <map>
#include <numeric>
using namespace std;
// 以下是识别网络的输出结构
struct NetworkOutput {
double normalProbability;
double abnormalProbability;
};
// 判断网络输出结果中哪个概率较大,并返回相应的识别结果
string getNetworkResult(const NetworkOutput& output) {
if (output.normalProbability >= output.abnormalProbability) {
return "normal";
} else {
return "abnormal";
}
}
int main() {
// 每个可用识别网络的输出结果和可用种子特征
vector<NetworkOutput> validNetworkOutputs;
// ... 获取或计算网络输出
// 获取可用种子特征对应的若干个可用识别网络的识别结果中正常和病变之间的数量
int normalCount = 0, abnormalCount = 0;
for (const auto& output : validNetworkOutputs) {
if (getNetworkResult(output) == "normal") {
normalCount++;
} else {
abnormalCount++;
}
}
// 根据可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值得到每个可用种子特征的识别离散度
double recognitionDiscreteness = abs(normalCount - abnormalCount)/ static_cast<double>(normalCount + abnormalCount);
// 将可用种子特征的识别结果乘以对应的识别离散度得到可用种子特征的离散修正识别结果
vector<double> correctedRecognitionResults;
for (const auto& output : validNetworkOutputs) {
correctedRecognitionResults.push_back((getNetworkResult(output) == "normal" ? 1 : -1) * recognitionDiscreteness);
}
// 分别计算可用种子特征的离散修正识别结果中正常和病变的累加值
double normalSum = 0, abnormalSum = 0;
for (const auto& correctedResult : correctedRecognitionResults) {
if (correctedResult > 0) {
normalSum += correctedResult;
} else {
abnormalSum += correctedResult;
}
}
// 将可用种子特征的离散修正识别结果累加值中较大最对应的正常或病变作为种子是否病变的识别结果
string seedResult;
if (normalSum >= abs(abnormalSum)) {
seedResult = "种子正常";
} else {
seedResult = "种子病变";
}
cout << seedResult << endl;
return 0;
}
这个代码流程首先从可用识别网络的输出结果中获取种子的识别结果,并计算正常和病变结果之间的数量差和数量和的比值来得到识别离散度。接着,它将种子特征的识别结果乘以相应的识别离散度得到离散修正识别结果,并分别计算修正识别结果中正常和病变的累加值。最后,代码选择累加值中较大的对应结果(正常或病变)作为种子是否病变的识别结果,并输出。
请参阅图7所示,为了具体量化计算每个种子特征的识别离散度,并且实现对应的可用识别网络的识别结果的离散程度越高,可用种子特征的识别离散度数值越小。为了实现此技术目的,上述的步骤S632在具体实施的过程中首先可以执行步骤S6321在对每粒种子进行病变识别的过程中,持续获取每个种子特征每次识别过程中对应的识别离散度,如果一直没有筛选作为可用种子特征,则对应的识别离散度则记为零。接下来可以执行步骤S6322计算获取每次识别过程中每个种子特征对应的若干个识别离散度的累加值作为种子特征的累次识别离散度。接下来可以执行步骤S6323在本次对每粒种子进行病变识别的过程中,将可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值作为可用种子特征的初步别离散度。最后可以执行步骤S6324将可用种子特征对应的累次识别离散度与初步别离散度相加计算得到可用种子特征的识别离散度。
为了对上述的步骤S6321至步骤S6324的实施过程进行补充说明,提供部分功能模块的源代码,并在注释部分进行对照解释说明。
#include <iostream>
#include <vector>
#include <map>
using namespace std;
// 以下是识别网络的输出结构
struct NetworkOutput {
double normalProbability;
double abnormalProbability;
};
// 判断网络输出结果中哪个概率较大,并返回相应的识别结果
string getNetworkResult(const NetworkOutput& output) {
if (output.normalProbability >= output.abnormalProbability) {
return "normal";
} else {
return "abnormal";
}
}
int main() {
// 每个可用识别网络的输出结果和可用种子特征
vector<NetworkOutput> validNetworkOutputs;
// ... 获取或计算网络输出
// 累次识别离散度的存储
static map<string, double> cumulativeDiscreteness;
// 在对每粒种子进行病变识别的过程中,持续获取每个种子特征每次识别过程中对应的识别离散度
// 若没有对应的识别离散度则记为零
string feature = "特征1";
double previousDiscreteness = cumulativeDiscreteness.count(feature) > 0 ? cumulativeDiscreteness[feature] : 0;
// 获取可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值得到每个可用种子特征的识别离散度
int normalCount = 0, abnormalCount = 0;
for (const auto& output : validNetworkOutputs) {
if (getNetworkResult(output) == "normal") {
normalCount++;
} else {
abnormalCount++;
}
}
double preliminaryDiscreteness = abs(normalCount - abnormalCount)/ static_cast<double>(normalCount + abnormalCount);
// 计算获取每次识别过程中每个种子特征对应的若干个识别离散度的累加值作为种子特征的累次识别离散度
cumulativeDiscreteness[feature] = previousDiscreteness +preliminaryDiscreteness;
// 在本次对每粒种子进行病变识别的过程中,将可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值作为可用种子特征的初步别离散度
double recognitionDiscreteness = preliminaryDiscreteness +cumulativeDiscreteness[feature];
cout << "种子特征" << feature << "的识别离散度为:" <<recognitionDiscreteness << endl;
return 0;
}
以上代码流程首先根据每个可用识别网络的输出结果统计正常和病变的数量,并计算这两个数量的差和和的比值作为初步识别离散度。然后持续获取每个种子特征每次识别过程中对应的识别离散度,如果没有对应的识别离散度则记为零,并将每次的初步识别离散度累加起来作为种子特征的累次识别离散度。最后将可用种子特征对应的累次识别离散度与初步识别离散度相加,计算得到可用种子特征的识别离散度并输出。
请参阅图8所示,由于种子在每条识别通道连续不断流动识别,为了提高识别效率需要在保障识别效果的前提下尽量减少使用某些识别效果不好的可用识别网络。为了实现此技术目的,在对每粒种子进行病变识别的过程中,上述的步骤S5在实施过程中首先可以执行步骤S501获取每次识别间隔时长。接下来可以执行步骤S502根据每次识别间隔时长得到识别计算本次识别间隔时长。接下来可以执行步骤S503持续获取每个种子特征被筛选为可用种子特征的次数作为每个种子特征的选中次数。接下来可以执行步骤S504持续获取每个识别网络被筛选为可用识别网络的次数作为每个识别网络的选中次数。接下来可以执行步骤S505根据每个种子特征的选中次数由大至小编列本次识别过程中种子特征筛选顺序,接下来可以执行步骤S506根据每个识别网络的选中次数由大至小编列本次识别过程中识别网络筛选顺序。接下来可以执行步骤S507获取每个识别网络的输出响应时长。最后可以执行步骤S508根据本次识别过程中种子特征筛选顺序和识别网络筛选顺序,结合每个识别网络的输出响应时长筛选出可用种子特征和对应的可用识别网络,使得可用识别网络的累计输出响应时长不超过本次识别间隔时长。这样可以避免识别不及时导致的识别错误。
请参阅图9所示,由于种子大小形状并不是完全一致,同时种子从谷仓等容器掉落过程中,压力会不断变化,这就导致识别通道中种子的流动掉落速度也是会浮动的,为了避免识别不及时,上述的步骤S502中本次识别间隔时长在具体实施的过程中首先可以执行步骤S5021根据每次识别间隔时长得到最短间隔时长和次短间隔时长。接下来可以执行步骤S5022获取最短间隔时长和次短间隔时长的差值。最后可以执行步骤S5023将最短间隔时长减去最短间隔时长和次短间隔时长的差值作为本次识别间隔时长。
综上所述,本方案在实施过程中首先提取种子图像中的种子特征,随后获得各种子特征对应的识别网络,进而结合识别网络输出结果筛选可用种子特征和识别网络,最终以可用种子特征输入可用网络的输出结果判断种子是否病变。整个过程能有效对抗环境因素的影响
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件,例如电路或ASIC(专用集成电路,Application Specific Integrated Circuit)来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (9)

1.一种种子病变粒识别方法,其特征在于,包括,
获取种子的图像;
提取种子的图像中的多个类型的种子特征;
获取每个类型的种子特征对应的若干个预设的识别网络;
将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,所述识别网络的输出结果包括种子正常和病变的概率;
根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络;
根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变;
其中,所述根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络的步骤,包括,
获取目标识别准确率;
根据每个识别网络输出结果中种子正常和病变的概率的比例得到每个识别网络输出结果的准确率,并剔除不符合目标识别准确率的所述识别网络;
根据每个种子特征对应的若干个识别网络中被剔除的比例得到每个种子特征的模型识别准确率,并剔除不符合目标识别准确率的所述种子特征;
根据每个种子特征对应的若干个识别网络的输出结果得到每个种子特征对应的若干个输出结果中正常和病变的累加概率;
根据每个种子特征对应的若干个输出结果中正常和病变的累加概率之间的比例得到每个种子特征的结果识别准确率,并剔除不符合目标识别准确率的所述种子特征;
筛选得到种子的可用种子特征和对应的可用识别网络。
2.根据权利要求1所述的方法,其特征在于,所述根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变的步骤,包括,
将可用识别网络的输出结果中较大概率值对应的正常或病变作为可用识别网络的识别结果;
将可用种子特征对应的若干个可用识别网络的识别结果中的占比较大的识别结果作为可用种子特征的识别结果;
根据可用种子特征的识别结果中的占比较大的识别结果得到种子是否病变的识别结果。
3.根据权利要求2所述的方法,其特征在于,所述根据可用种子特征的识别结果中的占比较大的识别结果得到种子是否病变的识别结果的步骤,包括,
获取可用种子特征对应的若干个可用识别网络的识别结果中正常和病变之间的数量;
根据可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值得到每个可用种子特征的识别离散度;
将可用种子特征的识别结果乘以对应的所述识别离散度得到可用种子特征的离散修正识别结果;
分别计算可用种子特征的离散修正识别结果中正常和病变的累加值;
将可用种子特征的离散修正识别结果累加值中较大最对应的正常或病变作为种子是否病变的识别结果。
4.根据权利要求3所述的方法,其特征在于,所述根据可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值得到每个可用种子特征的识别离散度的步骤,包括,
在对每粒种子进行病变识别的过程中,持续获取每个所述种子特征每次识别过程中对应的识别离散度,其中,若没有对应的识别离散度则记为零;
计算获取每次识别过程中每个种子特征对应的若干个识别离散度的累加值作为种子特征的累次识别离散度;
在本次对每粒种子进行病变识别的过程中,将可用种子特征对应的若干个可用识别网络的识别结果中正常和病变的数量差和数量和的比值作为可用种子特征的初步别离散度;
将可用种子特征对应的累次识别离散度与初步别离散度相加计算得到可用种子特征的识别离散度。
5.根据权利要求1所述的方法,其特征在于,
在对每粒种子进行病变识别的过程中,
获取每次识别间隔时长,
根据每次识别间隔时长得到识别计算本次识别间隔时长,
持续获取每个所述种子特征被筛选为可用种子特征的次数作为每个所述种子特征的选中次数,
持续获取每个识别网络被筛选为可用识别网络的次数作为每个所述识别网络的选中次数,
根据每个所述种子特征的选中次数由大至小编列本次识别过程中所述种子特征筛选顺序,
根据每个所述识别网络的选中次数由大至小编列本次识别过程中所述识别网络筛选顺序,
获取每个识别网络的输出响应时长,
根据本次识别过程中所述种子特征筛选顺序和所述识别网络筛选顺序,结合每个识别网络的输出响应时长筛选出可用种子特征和对应的可用识别网络,使得可用识别网络的累计输出响应时长不超过本次识别间隔时长。
6.根据权利要求5所述的方法,其特征在于,所述根据每次识别间隔时长得到识别计算本次识别间隔时长的步骤,包括,
根据每次识别间隔时长得到最短间隔时长和次短间隔时长;
获取最短间隔时长和次短间隔时长的差值;
将最短间隔时长减去最短间隔时长和次短间隔时长的差值作为本次识别间隔时长。
7.根据权利要求1所述的方法,其特征在于,
所述种子特征包括种子颜色;
对于同一粒种子,当种子颜色对应的识别结果与种子的识别结果不一致时,将种子颜色和种子的识别结果作为更新的训练集分作为对应识别网络的输入层和输出层进行补充训练。
8.一种种子病变粒识别方法,其特征在于,包括,
获取种子的种类;
根据种子的种类调用对应预设的识别网络;
根据权利要求1至7任一项所述的一种种子病变粒识别方法判断种子是否病变。
9.一种种子智能筛选系统,其特征在于,包括,
选择单元,用于获取种子的种类;
模型调用单元,用于根据种子的种类调用对应预设的识别网络;
若干个识别单元,用于获取种子的图像;
提取种子的图像中的多个类型的种子特征;
获取每个类型的种子特征对应的若干个预设的识别网络;
将种子的种子特征输入到对应的若干个识别网络得到每个识别网络的输出结果,所述识别网络的输出结果包括种子正常和病变的概率;
根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络;
根据种子的可用种子特征输入对应的可用识别网络输出的输出结果判断种子是否病变;
其中,所述根据每个识别网络的输出结果筛选出种子的可用种子特征和对应的可用识别网络的步骤,包括,
获取目标识别准确率;
根据每个识别网络输出结果中种子正常和病变的概率的比例得到每个识别网络输出结果的准确率,并剔除不符合目标识别准确率的所述识别网络;
根据每个种子特征对应的若干个识别网络中被剔除的比例得到每个种子特征的模型识别准确率,并剔除不符合目标识别准确率的所述种子特征;
根据每个种子特征对应的若干个识别网络的输出结果得到每个种子特征对应的若干个输出结果中正常和病变的累加概率;
根据每个种子特征对应的若干个输出结果中正常和病变的累加概率之间的比例得到每个种子特征的结果识别准确率,并剔除不符合目标识别准确率的所述种子特征;
筛选得到种子的可用种子特征和对应的可用识别网络。
CN202311079024.6A 2023-08-25 2023-08-25 一种种子病变粒识别方法及种子智能筛选系统 Active CN116994064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311079024.6A CN116994064B (zh) 2023-08-25 2023-08-25 一种种子病变粒识别方法及种子智能筛选系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311079024.6A CN116994064B (zh) 2023-08-25 2023-08-25 一种种子病变粒识别方法及种子智能筛选系统

Publications (2)

Publication Number Publication Date
CN116994064A CN116994064A (zh) 2023-11-03
CN116994064B true CN116994064B (zh) 2024-02-27

Family

ID=88524831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311079024.6A Active CN116994064B (zh) 2023-08-25 2023-08-25 一种种子病变粒识别方法及种子智能筛选系统

Country Status (1)

Country Link
CN (1) CN116994064B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684922A (zh) * 2018-11-20 2019-04-26 浙江大学山东工业技术研究院 一种基于卷积神经网络的多模型对成品菜的识别方法
EP3707642A1 (en) * 2017-12-03 2020-09-16 Seedx Technologies Inc. Systems and methods for sorting of seeds
EP3707641A2 (en) * 2017-12-03 2020-09-16 Seedx Technologies Inc. Systems and methods for sorting of seeds
CN114119540A (zh) * 2021-11-24 2022-03-01 西安铂力特增材技术股份有限公司 打印缺陷的识别方法及打印缺陷识别系统
CN114596468A (zh) * 2022-03-14 2022-06-07 瀚云科技有限公司 病虫害识别及模型训练方法、装置、电子设备及存储介质
CN114689539A (zh) * 2022-03-30 2022-07-01 南京农业大学 基于近红外高光谱图像的大豆种子病变粒识别方法及系统
CN115512232A (zh) * 2022-11-24 2022-12-23 浙江托普云农科技股份有限公司 一种农作物种子发芽情况识别模型、构建方法及其应用
CN116468961A (zh) * 2023-06-20 2023-07-21 中山市东润智能装备有限公司 一种图像分类方法及注塑产品智能瑕疵检测系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7474775B2 (en) * 2005-03-31 2009-01-06 University Of Iowa Research Foundation Automatic detection of red lesions in digital color fundus photographs
US20220254022A1 (en) * 2019-01-24 2022-08-11 Caide Systems, Inc. Method and system for automatic multiple lesion annotation of medical images

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3707642A1 (en) * 2017-12-03 2020-09-16 Seedx Technologies Inc. Systems and methods for sorting of seeds
EP3707641A2 (en) * 2017-12-03 2020-09-16 Seedx Technologies Inc. Systems and methods for sorting of seeds
CN109684922A (zh) * 2018-11-20 2019-04-26 浙江大学山东工业技术研究院 一种基于卷积神经网络的多模型对成品菜的识别方法
CN114119540A (zh) * 2021-11-24 2022-03-01 西安铂力特增材技术股份有限公司 打印缺陷的识别方法及打印缺陷识别系统
CN114596468A (zh) * 2022-03-14 2022-06-07 瀚云科技有限公司 病虫害识别及模型训练方法、装置、电子设备及存储介质
CN114689539A (zh) * 2022-03-30 2022-07-01 南京农业大学 基于近红外高光谱图像的大豆种子病变粒识别方法及系统
CN115512232A (zh) * 2022-11-24 2022-12-23 浙江托普云农科技股份有限公司 一种农作物种子发芽情况识别模型、构建方法及其应用
CN116468961A (zh) * 2023-06-20 2023-07-21 中山市东润智能装备有限公司 一种图像分类方法及注塑产品智能瑕疵检测系统

Also Published As

Publication number Publication date
CN116994064A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US10747999B2 (en) Methods and systems for pattern characteristic detection
Wu et al. Detection and counting of banana bunches by integrating deep learning and classic image-processing algorithms
CN110770752A (zh) 多尺度特征融合网络结合定位模型的害虫自动计数方法
Luo et al. Classification of weed seeds based on visual images and deep learning
CN110717903A (zh) 一种利用计算机视觉技术进行农作物病害检测的方法
OuYang et al. An automatic method for identifying different variety of rice seeds using machine vision technology
CN111815564B (zh) 一种检测丝锭的方法、装置及丝锭分拣系统
CN107610122B (zh) 一种基于Micro-CT的单籽粒谷物内部虫害检测方法
CN111462058B (zh) 一种水稻有效穗快速检测方法
CN110766690B (zh) 基于深度学习点监督思想的麦穗检测和计数方法
Ji et al. In-field automatic detection of maize tassels using computer vision
WO2023084543A1 (en) System and method for leveraging neural network based hybrid feature extraction model for grain quality analysis
Zhao et al. Deep‐learning‐based automatic evaluation of rice seed germination rate
CN114596509A (zh) 一种基于机器视觉的水稻秧苗叶龄期识别方法
Aznan et al. Rice seed varieties identification based on extracted colour features using image processing and artificial neural network (ANN)
CN116994064B (zh) 一种种子病变粒识别方法及种子智能筛选系统
Puno et al. Vision system for soil nutrient detection using fuzzy logic
Kolhar et al. Phenomics for Komatsuna plant growth tracking using deep learning approach
Abdullah et al. A portable rice disease diagnosis tool basedon bi-level color image thresholding
Rößle et al. Efficient Noninvasive FHB Estimation using RGB Images from a Novel Multiyear, Multirater Dataset
Zhang et al. Online Recognition of Small Vegetable Seed Sowing Based on Machine Vision
Singh et al. Machine vision-based color grading of Kinnow mandarin
Leiva et al. ScabyNet, a user-friendly application for detecting common scab in potato tubers using deep learning and morphological traits
Miranda et al. A novel image‐based approach for soybean seed phenotyping using machine learning techniques
Yang et al. Multi-Growth Period Tomato Fruit Detection Using Improved Yolov5

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
GR01 Patent grant
GR01 Patent grant