一种鸽蛋品质识别方法

文档序号:27048340发布日期:2021-10-24 07:34阅读:215来源:国知局
一种鸽蛋品质识别方法

1.本发明涉及目标检测技术领域,尤其涉及一种鸽蛋品质识别方法。


背景技术:

2.农产品包装或出货前需要对其品质进行把控,仅依靠人工对外观进行检测难免会出现漏检、误检的现象,而且长时间工作还会产生视觉疲劳,影响检测效率。利用机器学习的目标识别和分类技术被广泛应用于产品检测领域,鸽子蛋等蛋类产品从养殖车间至包装车间的过程中容易破裂,导致变质,在包装前需要找出有细小裂纹的蛋品并剔除;同时受精蛋的检测识别也很重要,受精蛋可以作为种蛋来售卖,特别是对于一些蛋品来说尤为重要,如鸽蛋,由于鸽子是一夫一妻制,鸽蛋只有百分之十几的蛋才能孵化出小鸽子,如不区分受精与否直接进行孵化,不仅浪费了鸽蛋,而且浪费了鸽子的孵化时间,因而有必要预先从蛋品中挑选出受精蛋。因此,养殖场中的鸽子蛋在包装前首先要经过挑选、分类,先挑选出受精蛋,再剔除非受精蛋中蛋壳破损的鸽蛋,避免受精蛋和破损蛋混入普通的蛋种中,如依靠人工来进行剔除和分类,工作效率低,误检率高,利用现代的目标识别技术可大大提高检测的效率,也提高蛋类产品的质量。


技术实现要素:

3.本发明的目的是克服上述现有技术的缺点,提供一种识别速度快、适用于流水生产线的鸽蛋品质识别方法。
4.本发明是通过以下技术方案来实现的:
5.一种鸽蛋品质识别方法,包括如下步骤:
6.s1、拍摄并收集不同品质的鸽蛋的图片,采用labelimg对图片中各种品质的鸽蛋进行标注,构建数据集,将数据集按照8:1的比例分为训练集和验证集。
7.由于只要不是蛋壳和壳膜都明显缺失的严重破损(而破损严重的鸽蛋在收集时已经剔除),受精蛋无论破损与否都可以拿去孵化器孵化,因此进一步地,不同品质的鸽子蛋分为受精蛋和非受精蛋,而非受精蛋又分为外壳破损和外壳完好两类。采用摄像机拍摄得到鸽子蛋的图片,将图片中的蛋按照其破损和受精与否标注为受精蛋、完好非受精蛋和破损非受精蛋这三个类别,得到用于模型训练的训练集和验证集。
8.鸽子蛋图片的拍摄方法可为:在暗室环境下,将鸽蛋放置于底部具有光源的检测位置处,摄像头放置于鸽蛋的上方,对不同方位(正面、侧面、底面等)的鸽蛋进行拍摄。摄像头可采用海康威视网络摄像头,型号为ds

2cd5026efwd,帧率25fps/s,视频分辨率为1920*1680。
9.使用labelimg对图片进行标注,标注后的文件以xml作为后缀,文件名和图片名称一致。本发明可使用nvidia 2080ti的显卡进行运算。
10.s2、分别将训练集和验证集中的图片输入yolov5s网络模型进行模型训练,得到yolov5s网络模型的最佳权重数据;
11.s3、将最佳权重数据加载到yolov5s网络模型中,输入待识别的图片,输出识别的蛋品的品质。
12.待识别的图片的获取方法可为:通过传输装置将待识别的鸽蛋依次传输至检测位置处,检测位置处于暗室环境,检测位置的底部设置有光源,摄像头位于检测位置的正上方,由摄像头对输送至检测位置上的鸽蛋拍摄得到待识别的图片。所述yolov5网络模型包括输入端、focus模块、neck模块、head模块以及输出端,所述s2步骤中分别将训练集和验证集中的图片输入yolov5s网络模型进行模型训练的方法为:
13.s2

1、图片预处理:图片进入输入端,输入端对图片进行预处理,整个过程包括mosaic数据增强、自适应锚框计算和自适应图片缩放;
14.s2

2、特征提取:输入预处理后的图片数据到yolov5s的focus模块,得到不同大小的特征图,然后输入到yolov5s的neck模块;
15.s2

3、特征融合:yolov5s的head模块将不同大小的特征图进行融合,最终得到三个尺度的特征图,并将特征图传递到输出端;
16.s2

4、输出:yolov5s的输出端对detect结构输出的三个特征张量进行预测,生成预测框的位置、类别和置信度;
17.s2

5、模型优化:计算yolov5s的损失函数,使用反向传播算法进一步训练yolov5s网络,优化模型参数;
18.s2

6、测试图片:导出yolov5s模型的权重数据,将测试图片输入到权重数据,查看测试结果。
19.进一步地,采用yolov5s网络模型的初始锚框设定为[116,90,156,198,373,326]、[30,61,62,45,59,119]、[10,13,16,30,33,23],网络模型在初始锚框的基础上训练得到预测框,并和真实框进行比较,根据差值反向更新,迭代调整网络模型参数。
[0020]
进一步地,所述yolov5s网络模型的训练中通过cache

images来缓存图像以加快训练速度,通过rect进行矩形训练,通过multi

scale进行多尺度训练,以上的参数设置和evolve进化超参数均设置为默认值,使用默认的初始学习率lr0=0.01、lrf=0.2,动量momentum=0.937。
[0021]
进一步地,focus结构的关键步骤为切片操作,该结构的主要思想是通过lice操作来对输入图片进行裁剪。所述s2

2步骤中预处理后的图片尺寸为640
×
640
×
3,经过focus模块的切片操作之后输出一个160
×
160
×
12的特征图,再进行一次32个卷积核操作,输出160
×
160
×
32的特征图。
[0022]
进一步地,s2

2中的特征图m1、m2、m3的大小分别为80
×
80、40
×
40、20
×
20;neck模块采用了fpn+pan的结构,特征金字塔fpn(feature pyramid networks)是自上而下的,利用上采样的方式对信息进行传递融合,获得预测的特征图。
[0023]
具体方法可为:
[0024]
neck网络模块将特征图m3进行上采样,然后和特征图m2特征融合,得到40
×
40的特征图f1;特征图f1再经过上采样和特征图m1特征融合,得到80
×
80的特征图f2;特征图f2经过步长为2的conv结构,和特征图f1特征融合,得到40
×
40的特征图p1;特征图p1经过步长为2的conv结构,和特征图m3特征融合,得到20
×
20的特征图p2,如此可得到三个尺度的特征图f2、p1、p2。
[0025]
进一步地,输出端的detect结构中,三张特征图f2、p1、p2输入到detect结构后得到80
×
80
×
(b
×
(5+c))、40
×
40
×
(b
×
(5+c))、40
×
40
×
(b
×
(5+c))这三个特征张量,其中c为数据集分类数,b为每个特征张量的锚框数量,b=3,c=2。
[0026]
每个特征张量为(t
x
,t
y
,t
w
,t
h
,p
o
,p
c1
,p
c2
)
×
3,其中t
x
、t
y
是预测框目标中心点相对于该点所在网格左上角的偏移量,t
w
、t
h
分别是预测框相对于锚框在宽度和高度上的缩放尺度,p
o
为置信度信息,(p
c1
,p
c2
)为类别信息;以图片每个网格的中心作为锚框的中心基点,通过(t
x
,t
y
,t
w
,t
h
)和锚框的宽高,可以得出预测框的位置;假设某一网格距离图片左上角的边距为(c
x
,c
y
),该网格对应的锚框的宽和高分别为(p
w
,p
h
),则预测框的位置信息就可以表示为:
[0027]
b
x
=2σ(t
x
)

0.5+c
x
[0028]
b
y
=2σ(t
y
)

0.5+c
y
[0029]
b
w
=p
w
(2σ(t
w
))2[0030]
b
h
=p
h
(2σ(t
h
))2[0031]
其中,b
x
、b
y
分别为预测框的中心点坐标,b
w
、b
h
分别为预测框的宽度和高度,σ是sigmoid函数,预测框的置信度为σ(p
o
),预测框的类别为(σ(p
c1
),σ(p
c2
))。
[0032]
进一步地,所述s2

4中在训练阶段,将预测框与真实框进行匹配得出正负样本,包括:
[0033]
采用跨网格匹配,即从真实框所在网格的上下左右的四个网格中找到离真实框中心点最近的两个网格,再加上真实框所在网格共三个网格进行匹配,计算真实框和这三个网格的所有锚框的宽高比,当真实框的宽与锚框的宽的比值、真实框的高与锚框的高的比值均大于1/4且小于4,则认为匹配,否则则为不匹配,即匹配需同时满足下列公式:
[0034][0035][0036]
hyp=4
[0037]
其中,gt_w是真实框的宽,gt_h是真实框的高,anchor_w是锚框的宽,anchor_h是锚框的高。
[0038]
匹配的锚框通过预测框的回归公式得出匹配的预测框的位置信息,预测框的回归公式如下:
[0039]
b
x
=2σ(t
x
)

0.5+c
x
[0040]
b
y
=2σ(t
y
)

0.5+c
y
[0041]
b
w
=p
w
(2σ(t
w
))2[0042]
b
h
=p
h
(2σ(t
h
))2[0043]
其中,b
x
、b
y
分别为预测框的中心点坐标,b
w
、b
h
分别为预测框的宽度和高度,σ是sigmoid函数,预测框的置信度为σ(p
o
),预测框的类别为(σ(p
c1
),σ(p
c
2))。
[0044]
匹配的预测框作为正样本,计算与真实框的定位损失、置信度损失和分类损失,正样本匹配的真实框的置信度为真实框和正样本的交并比;不匹配的预测框则作为负样本,
只计算与真实框的置信度损失,而负样本匹配的真实框的置信度为0。
[0045]
进一步地,所述head模块中采用giou_loss做bounding box的损失函数。
[0046]
进一步地,所述损失函数包括分类损失函数loss(class)、定位损失函数loss(box)和置信度损失函数loss(obj),损失函数loss的定义如下:
[0047]
loss=loss(box)+loss(obj)+loss(class)
[0048][0049][0050][0051]
loss(giou)=1

giou
[0052][0053][0054][0055]
式中的参数有以下定义:网格为s
×
s,每个网格产生b个锚框,a为真实框矩形面积,b为预测框矩形面积,c为真实框与预测框形成的最小外接矩形面积,即同时包含了预测框和真实框的最小框的面积;iou指交并比,预测框和真实框的交集和并集的比值;表示第i个网格的第j个预测框匹配上了这个目标,如果匹配,否则为0;表示第i个网格的第j个预测框不匹配该目标;是第i个网格边界框的真实置信度,c是第i个网格边界框预测的置信度;是真实的条件类别概率,p
i
(c)是网络预测的条件类别概率;loss(bce)是指二元交叉熵损失;λ
box
是指定位损失的权重系数,λ
class
是指分类损失的权重系数;而置信度损失由两部分组成,正样本置信度损失和负样本置信度损失,λ
obj
是指正样本置信度损失的权重系数,λ
noobj
是指负样本置信度损失的权重系数。
[0056]
本发明通过视觉识别技术,采用yolov5网络模型对鸽蛋产品是否受精和破损进行识别,模型尺寸小,检测速度快,部署方便快速,方便根据识别结果对鸽蛋产品进行剔除和分类,检测效率高,保证准确识别出受精蛋,剔除破损的;通过在暗示环境下对鸽蛋进行特定光照进行拍照得到鸽蛋的透光照片,根据透光照片的特征进行识别,识别准确率高;建立预测模型后,待测样本只需通过传送带输送至特定的检测位置,适合于规模化产品检测,不仅适用于对鸽蛋品质的识别,还可应用于其它蛋类及其它品类产品品质的检测。
附图说明
[0057]
图1为本发明实施例中数据集的标注示意图。
[0058]
图2为本发明实施例中随机读取的四张图片。
[0059]
图3为对图2中的图片进行mosaic数据增强后的训练集图片。
[0060]
图4为本发明实施例中bottleneckcsp模型的结构图。
[0061]
图5为本发明实施例中bottleneck模型的结构图。
[0062]
图6为本发明实施例中neck网络的特征融合过程图。
[0063]
图7为本发明实施例中yolov5网络的学习率变化图。
[0064]
图8为本发明实施例的识别结果图。
[0065]
图9为本发明实施例中目标检测的结果示意图。
具体实施方式
[0066]
一种鸽蛋品质识别方法,包括如下步骤:
[0067]
s1、建立数据集:拍摄并收集不同品质的鸽蛋的图片,采用labelimg对图片中各种品质的鸽蛋进行标注,构建数据集,将数据集按照一定的比例分为训练集和验证集。
[0068]
不同品质的鸽蛋分为受精蛋和非受精蛋,非受精蛋又分为外壳破损和外壳完好两类,故本发明中将识别的鸽蛋分为三类。采用摄像机拍摄得到鸽蛋的图片,将图片中的鸽蛋按照其破损和受精与否标注为受精蛋、完好非受精蛋和破损非受精蛋这三个类别,得到用于模型训练的训练集和验证集。
[0069]
鸽子蛋图片的拍摄方法可为:在暗室环境下,将鸽蛋放置于底部具有光源的检测位置处,摄像头放置于鸽蛋只的上方,对不同方位(正面、侧面、底面等)的鸽蛋进行拍摄。检测位置底部放置光源,可增加蛋类图像的亮度,减少外界光源干扰。所述摄像头可为海康威视网络摄像头,型号为ds

2cd5026efwd,帧率25fps/s,视频分辨率为1920*1680。
[0070]
在实际生产中,可通过传输装置(传动带等)将鸽蛋传送至检测位置以提高检测效率,故s3步骤中待识别的图片的获取方法为:通过传输装置将蛋只依次传输至检测位置处,检测位置处于暗室环境,检测位置的底部设置有光源,摄像头位于检测位置的上方,由摄像头对输送至检测位置上的蛋只拍摄得到待识别的图片。可单纯拍摄得到照片,也可拍摄成视频,再通过opencv程序等提取关键帧得到图片。
[0071]
使用labelimg对图片进行标注,标注后的文件以xml作为后缀,文件名和图片名称一致;使用nvidia 2080ti的显卡进行运算。标注如图1所示,标签0为破损的非受精鸽蛋,标签1为受精的鸽蛋,标签2为完好的非受精鸽蛋,对图片的标注务必要准确无误,特别是受精蛋和非受精蛋的识别要准确。将标注后的图片随机按照一定比例(如8:1)分为训练集和验证集,也可分出一部分来作为测试集,以测试训练模型的效果。为操作方便,对于训练集、验证集和测试集中的鸽蛋样本,可去养殖场、实验基地等场所去实地收集,如破损鸽蛋样本难以获取,可人工破碎蛋壳,按照上下前后左右将每个鸽蛋拍摄出6张样本。
[0072]
本实施例采取如下运行环境:windows10操作系统,选用pytorch架构,使用nvidia 2080ti的显卡进行运算,cpu为intel(r)core(tm)e5,python3.7语言,cuda10.0加速环境。
[0073]
s2、模型训练:分别将训练集和验证集中的图片输入yolov5s网络模型进行模型训练,得到yolov5s网络模型的最佳权重数据。
[0074]
s3、目标识别:将最佳权重数据加载到yolov5s网络模型中,输入待测试的图片,输出识别的蛋品的品质。
[0075]
本发明采用yolov5(you only look once)进行目标识别,yolov5的图像推理速度最快达0.007s,即每秒可处理140帧,满足视频图像实时检测需求,同时结构更为小巧,yolov5s版本的权重数据文件为yolov4的1/9,大小为27mb。所述yolov5网络模型包括输入端、focus模块、neck模块、head模块以及输出端,所述s2步骤中分别将训练集和验证集中的图片输入yolov5s网络模型进行模型训练的方法为:
[0076]
s2

1、图片预处理:图片进入输入端,输入端对图片进行预处理,整个过程包括mosaic数据增强、自适应锚框计算和自适应图片缩放。
[0077]
图片预处理是将输入的图像缩放到网络的输入大小,并进行归一化等操作。yolov5网络模型采用mosaic数据增强方法对图像进行预处理,这种数据增强的方法通过四张图片拼接在一起变相提高batch_size,从而丰富检测物体的背景,提高检测的精度,mosaic数据增强的基本流程为首先随机读取四张图片,然后分别对四张图片进行裁剪、翻转、缩放、色域变化等,并且按照四个方向位置摆好,最后再进行图片的组合。图2和图3分别为mosaic数据增强前和数据增强后的训练集图片。
[0078]
本实施例中,图片预处理后的尺寸为640
×
640
×
3,yolov5网络模型的初始锚框设定为[116,90,156,198,373,326]、[30,61,62,45,59,119]、[10,13,16,30,33,23],网络模型在初始锚框的基础上训练得到预测框,并和真实框进行比较,根据差值反向更新,迭代调整网络模型参数。
[0079]
下述yolov5s网络模型的训练中通过cache

images来缓存图像以加快训练速度,通过rect进行矩形训练,通过multi

scale进行多尺度训练,以上的参数设置和evolve进化超参数均设置为默认值,使用默认的初始学习率lr0=0.01、lrf=0.2,动量momentum=0.937。
[0080]
s2

2、特征提取:输入预处理后的图片数据到yolov5s的focus模块,得到不同大小的特征图,然后输入到yolov5s的neck模块。
[0081]
focus结构的关键步骤为切片操作,该结构的主要思想是通过slice操作来对输入图片进行裁剪。本实施例中,s2

2步骤中预处理后的图片尺寸为640
×
640
×
3,经过focus模块的切片操作之后输出一个160
×
160
×
12的特征图,再进行一次32个卷积核操作(仅针对的是yolov5s结构,其它结构会有相应的变化),输出160
×
160
×
32的特征图。
[0082]
s2

3、特征融合:yolov5s的head模块将不同大小的特征图进行融合,最终得到三个尺度的特征图,并将特征图传递到输出端。
[0083]
采用bottleneckcsp(true)结构提取图像特征。输入预处理后的图片数据到yolov5的bottleneckcsp中,得到不同大小的特征图。如图4,bottleneckcsp模型结构由4个bottleneck和标准卷积层组成,其中bottleneck的模型结构如图5,是残差学习的主要结构,其中两个1x1fliter分别用于降低和升高特征维度,从而减少参数的数量及计算量,通过降维提高数据训练和特征提取的效率。nn.conv2d模块是标准卷积层,该层是给bottleneck模块添加shortcut连接,实现resnet模块。s2

2中的特征图m1、m2、m3的大小分别为80
×
80、40
×
40、20
×
20;neck模块采用了fpn+pan的结构,特征金字塔fpn(feature pyramid networks)是自上而下的,利用上采样的方式对信息进行传递融合,获得预测的特
征图。如图6,s2

3步骤中三个尺度的特征图分别为f2、p1、p2;所述neck网络将特征图m3进行上采样,然后和特征图m2特征融合,得到40
×
40的特征图f1;特征图f1再经过上采样和特征图m1特征融合,得到80
×
80的特征图f2;特征图f2经过步长为2的conv结构,和特征图f1特征融合,得到40
×
40的特征图p1;特征图p1经过步长为2的conv结构,和特征图m3特征融合,得到20
×
20的特征图p2。
[0084]
yolov5网络模型在neck网络部分构建pan网络结构,通过在fpn结构的基础上增加一条自下而上的路径,缩短了底层特征图信息与顶层特征图信息融合的路径,整个特征图融合的过程均使用concat拼接完成。head输出端部分根据提取的特征预测目标,通过在三个不同尺度的特征图上,分别对应使用三种不同大小的锚框预测目标。
[0085]
s2

4、输出:yolov5s的输出端对detect结构输出的三个特征张量进行预测,生成预测框的位置、类别和置信度。
[0086]
s2

5、模型优化:计算yolov5s的损失函数,使用反向传播算法进一步训练yolov5s网络,优化模型参数。
[0087]
s2

6、测试图片:导出yolov5s模型的权重数据,将测试图片输入到权重数据,查看测试结果。
[0088]
yolov5不同的层使用不同的学习率调整方法,分别分为权重层(weight),偏执层(bias),和归一化层(batchnorm2d),单独调整不同层的学习率可以使得模型训练的更好。由于刚开始训练时,模型的权重是随机初始化的,此时若选择一个较大的学习率,可能带来模型的不稳定,选择预热学习率的方式,可以使得开始训练的迭代次数内学习率较小,在预热的小学习率下,模型可以慢慢趋于稳定,等模型相对稳定后在选择预先设置的学习率进行训练,使得模型收敛速度变得更快,模型效果更佳。小学习率的范围为0到初始学习率,即0到0.01。yolov5在对学习率更新就采用了warm

up的方法预热学习率,在warm

up阶段以后采用的余弦退火算法来对学习率进行更新。
[0089]
本实施例中,所述yolov5网络模型为yolov5s模型,设置训练的数据集最大迭代次数为100次,每次模型训练的输入图片数量为16,模型初始学习率为0.01;前50次迭代次数采取预热更新学习率,之后采用余弦退火算法更新学习率。图7为三类学习率的调整变化图(lr表示学习率,learning rate,lr0,lr1,lr2分别代表三类学习率,lr0是归一化层学习率,lr1是权重层学习率,lr2是偏执层学习率),x轴是迭代次数(epoch),y轴为学习率,图7中的2e

3代表2*10^(

3),即0.002。前50次迭代次数采取预热更新学习率,之后的采用余弦退火算法去更新学习率。依据此模型配置,输入待识别的图片进行测试,测试结果如图8所示,图8中的good代表完好的非受精鸽蛋,crack代表破损的非受精鸽蛋,fertile代表受精的鸽蛋。
[0090]
输出端的detect结构中,三张特征图f2、p1、p2输入到detect结构后得到80
×
80
×
(b
×
(5+c))、40
×
40
×
(b
×
(5+c))、40
×
40
×
(b
×
(5+c))这三个特征张量,其中c为数据集分类数,b为每个特征张量的锚框数量,b=3,c=2。
[0091]
每个特征张量为(t
x
,t
y
,t
w
,t
h
,p
o
,p
c1
,p
c2
)
×
3,其中t
x
、t
y
是预测框目标中心点相对于该点所在网格左上角的偏移量,t
w
、t
h
分别是预测框相对于锚框在宽度和高度上的缩放尺度,p
o
为置信度信息,(p
c1
,p
c2
)为类别信息;以图片每个网格的中心作为锚框的中心基点,通过(t
x
,t
y
,t
w
,t
h
)和锚框的宽高,可以得出预测框的位置;假设某一网格距离图片左上角的
边距为(c
x
,c
y
),该网格对应的锚框的宽和高分别为(p
w
,p
h
),则预测框的位置信息就可以表示为:
[0092]
b
x
=2σ(t
x
)

0.5+c
x
[0093]
b
y
=2σ(t
y
)

0.5+c
y
[0094]
b
w
=p
w
(2σ(t
w
))2[0095]
b
h
=p
h
(2σ(t
h
))2[0096]
其中,b
x
、b
y
分别为预测框的中心点坐标,b
w
、b
h
分别为预测框的宽度和高度,σ是sigmoid函数,预测框的置信度为σ(p
o
),预测框的类别为(σ(p
c1
),σ(p
c2
))。
[0097]
真实框和预测框的匹配:
[0098]
在训练阶段,将预测框与真实框进行匹配得出正负样本,包括:
[0099]
采用跨网格匹配,即从真实框所在网格的上下左右的四个网格中找到离真实框中心点最近的两个网格,再加上真实框所在网格共三个网格进行匹配,计算真实框和这三个网格的所有锚框的宽高比,当真实框的宽与锚框的宽的比值、真实框的高与锚框的高的比值均大于1/4且小于4,则认为匹配,否则则为不匹配,即匹配需同时满足下列公式:
[0100][0101][0102]
hyp=4
[0103]
其中,gt_w是真实框的宽,gt_h是真实框的高,anchor_w是锚框的宽,anchor_h是锚框的高。
[0104]
匹配的锚框通过预测框的回归公式得出匹配的预测框的位置信息,预测框的回归公式如下:
[0105]
b
x
=2σ(t
x
)

0.5+c
x
[0106]
b
y
=2σ(t
y
)

0.5+c
y
[0107]
b
w
=p
w
(2σ(t
w
))2[0108]
b
h
=p
h
(2σ(t
h
))2[0109]
其中,b
x
、b
y
分别为预测框的中心点坐标,b
w
、b
h
分别为预测框的宽度和高度,σ是sigmoid函数,预测框的置信度为σ(p
o
),预测框的类别为(σ(p
c1
),σ(p
c2
))。
[0110]
匹配的预测框作为正样本,计算与真实框的定位损失、置信度损失和分类损失,正样本匹配的真实框的置信度为真实框和正样本的交并比;不匹配的预测框则作为负样本,只计算与真实框的置信度损失,而负样本匹配的真实框的置信度为0。
[0111]
所述head模块中采用giou_loss做bounding box的损失函数。
[0112]
所述损失函数包括分类损失函数loss(class)、定位损失函数loss(box)和置信度损失函数loss(obj),损失函数loss的定义如下:
[0113]
loss=loss(box)+loss(obj)+loss(class)
[0114]
[0115][0116][0117]
loss(giou)=1

giou
[0118][0119][0120][0121]
式中的参数有以下定义:网格为s
×
s,每个网格产生b个锚框,a为真实框矩形面积,b为预测框矩形面积,c为真实框与预测框形成的最小外接矩形面积,即同时包含了预测框和真实框的最小框的面积;iou指交并比,预测框和真实框的交集和并集的比值;表示第i个网格的第j个预测框匹配上了这个目标,如果匹配,否则为0;表示第i个网格的第j个预测框不匹配该目标;是第i个网格边界框的真实置信度,c是第i个网格边界框预测的置信度;是真实的条件类别概率,p
i
(c)是网络预测的条件类别概率;loss(bce)是指二元交叉熵损失;λ
box
是指定位损失的权重系数,λ
class
是指分类损失的权重系数;而置信度损失由两部分组成,正样本置信度损失和负样本置信度损失,λ
obj
是指正样本置信度损失的权重系数,λ
noobj
是指负样本置信度损失的权重系数。
[0122]
map(mean average precision)表示平均准确率均值,取值在[0,1]之间,map越大,模型检测性能越高,是评价目标检测算法性能的最重要指标之一。将检测图像中,对某一个类别的所有目标检测框的置信度由大到小排序,逐个计算累计至每个检测框时的准确率及召回率,并绘制precision

recall曲线。ap即为单个类别precision

recall曲线与精度、召回率坐标轴围成的面积,map为多个类别ap的平均值。如图9所示的测试结果,在模型训练过程中,其准确率和召回率的提升稳定,模型达到饱和后,其准确率(precision)可保持在0.95左右,召回率(recall)可稳定在100%附近,map@0.5经过100个epoch后在1.0附近趋于稳定,map@0.5:0.95在经过150个epoch后在0.8附近趋于稳定。
[0123]
多次测试表明,用本发明的方法训练的yolov5s模型的目标识别准确,识别率高,yolov5s算法能实现传送带上多种禽蛋类是否破损与受精的检测,准确率和检测速度均能满足生产场景需求,为禽蛋类产品的品质检测提供技术支撑。
[0124]
上列详细说明是针对本发明可行实施例的具体说明,该实施例并非用以限制本发明的专利范围,凡未脱离本发明所为的等效实施或变更,均应包含于本案的专利范围中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1