这是用户在 2024-10-21 22:53 为 https://app.immersivetranslate.com/pdf-pro/f7beedf0-8cd1-4370-b030-2e3083fa1651 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
  1. 问题 5 的模型建立和解决方案31
    模型建立与问题 5 的解决 31
    9.1 建立改进的苹果识别模型。…31
    问题 5 的模型建立和解决方案 31 9.1 建立改进的苹果识别模型。…31

    9.1.1 VGG19 网络原理概述31
    9.1.1 VGG19 网络的原理概述 … 31
    9.1.2 VGG19 网络的应用 ...33
    9.1.1 VGG19 网络原理概述 31 9.1.2 VGG19 网络的应用 ...33

    9.2 所有 Apple 图像 ID 号的结果和直方图...34
    9.2 所有苹果图像 ID 号码的结果和直方图 … 34
  2. 模型评估和进一步讨论。…35
    模型评估与进一步讨论。… 35
    10.1 优点 ...35 10.1 优点 … 35
    10.2 缺点35 10.2 缺点 … 35 10.3 改进措施 ...36
    10.2 缺点 35 10.3 改进措施 ...36
  3. 引用。。。36 参考文献 … 36
  4. 附录。。。38 附录 … 38 附录 … 38

I. 引言 一. 引言

1.1 问题背景

苹果采摘机器人已成为最近的热点。过去,苹果收获主要依靠体力劳动,在苹果成熟期需要大量劳动力工作数天。然而,随着农村劳动力老龄化和年轻人离开农村工作的趋势,许多地方在苹果收获季节出现劳动力短缺。为了解决这个问题,人们已经开始开发苹果采摘机器人。但由于果园环境和受控实验的变化,各种苹果采摘机器人在全球范围内的广泛采用和应用并不理想。
同时,现有的机器人大多无法实现对树叶、树枝、水果等障碍物的精确识别。直接收割可能会损坏水果甚至收割设备,从而影响效率和水果质量。此外,针对不同收获果实的识别和区分技术存在不足,使得苹果的采后鉴定具有挑战性。
因此,建立高效准确的苹果图像识别模型至关重要。本文利用图像分割和识别技术、数学模型和深度学习网络,分析了苹果图像中苹果的数量、位置、成熟度和质量等特征,然后提出了一种可行的苹果图像识别算法来应对这些挑战。

1.2 问题重述

考虑到问题陈述中的背景信息和限制条件,应解决以下问题:
问题 1:对附件 1 中的图像数据集进行预处理,分析苹果数量与图像数据集中各种参数的关系,确定所需的图像特征,建立数学模型,统计每张图像中的苹果数量。然后绘制苹果数量分布的直方图以可视化数据。
问题 2:在上一个问题中,我们已经确定了苹果的数量。接下来,我们需要确定图像中每个苹果的位置。我们建立一个笛卡尔坐标系,以图像的左下角为原点。由于一张图片可能包含多个苹果,我们需要为每个苹果分配一个唯一的编号,并存储所有苹果的坐标信息。然后,我们将绘制苹果坐标的散点图以可视化数据。
问题 3:在这个问题中,我们需要找到一种合理的方法来计算苹果的成熟度,然后应用这种方法进行计算。应通过创建代表所有苹果成熟度分布的直方图来可视化结果,以可视化数据。
问题 4:在问题 1 和 2 中,我们已经确定了苹果的数量和位置。现在,我们需要根据这些信息计算苹果的二维面积。关键在于确定苹果的边界。此外,我们还需要估计苹果的质量。由于我们无法直接测量质量,因此只能获得估计值。因此,我们需要建立
问题 4:在问题 1 和 2 中,我们已经确定了苹果的数量和位置。现在,我们需要根据这些信息计算苹果的二维面积。关键在于确定苹果的边界。此外,我们还需要估算苹果的质量。由于我们无法直接测量质量,因此只能获得一个估计值。因此,我们需要建立苹果的二维面积与质量之间的关系。
图像中苹果的二维面积与其质量之间的关系,以便进行估计。随后,我们将通过创建直方图来可视化所有苹果的质量分布。
问题 5:在这个问题中,任务是从各种水果图像中识别苹果。这涉及更深入地提取特定于苹果的图像特征,训练苹果识别模型,并应用它来确定附件 3 中的哪些图像包含苹果。随后,他们的 ID 号的分布将通过创建用于数据分析的直方图来可视化。

II. 问题分析

2.1 问题一分析

在问题 1 中,根据附件 1 中提供的苹果图像数据,我们旨在确定可以帮助我们识别有关苹果相关信息的特征。据观察,成熟的苹果表现出红色和近似球形外观的特征(在二维图像中可以被认为是圆形的)。基于这两个特征,我们可以识别图像中的苹果。在建立模型之前,我们需要对图像数据进行预处理。
在这里,我们将原始 RGB 图像转换为 Lab 图像。随后,我们过滤 a a a^(**)\mathrm{a}^{*}组件(表示从绿色到红色的光谱变化)以获取 Lab 色彩空间中的 A 通道图像。我们对这个 A 通道图像进行二值化,并应用高斯滤波来降低噪声。接下来,利用圆形特征,我们采用改进的 Hough 圆变换来检测和计算图像中的圆圈数量。此外,我们还会合并高度重叠的圆圈。最后,我们求解附件 1 中的数据并绘制直方图。

2.2 问题二分析
2.2 问题二的分析

在问题 2 中,我们需要确定每张图像中苹果的位置。在对问题 1 中所有图像进行预处理并获得每个图像中的苹果数量的基础上,我们可以使用问题 1 中开发的模型粗略地确定苹果的位置,并在对它们进行编号后获得质心。但是,经过分析和比较,我们发现苹果的几何中心与从 Hough 圆得到的质心之间仍然存在一定的偏差。
在问题 2 中,我们需要识别每张图像中苹果的位置。在问题 1 中对所有图像进行预处理并获得每张图像中苹果的数量的基础上,我们可以使用在问题 1 中开发的模型,结合编号后的质心,大致确定苹果的位置。然而,经过分析和比较,我们发现苹果的几何中心与从霍夫圆获得的质心之间仍然存在一定的偏差。
因此,我们采用了一种基于深度学习的新识别方法,使用 YOLOv4 网络来确定每个苹果的坐标。我们首先使用具有清晰和独特特征的图像来训练模型,然后将经过训练的模型应用于附件 1 中的所有图像。最后,我们将识别结果与训练结果和问题 1 的结果进行比较,对模型进行敏感性分析,并绘制所有苹果几何坐标的散点图。
因此,我们采用了一种基于深度学习的新识别方法来确定每个苹果的坐标,使用 YOLOv4 网络。我们首先使用具有清晰和独特特征的图像训练模型,然后将训练好的模型应用于附件 1 中的所有图像。最后,我们将识别结果与训练结果和问题 1 的结果进行比较,对模型进行敏感性分析,并绘制所有苹果的几何坐标散点图。

2.3 问题三分析
2.3 问题三的分析

在问题 3 中,我们可以遵循问题 2 中使用的方法,利用 YOLOv4 网络进行模型训练。但是,在训练期间,有必要用苹果的成熟状态(成熟、半成熟和未成熟)注释手动添加的边界框。随后,对模型进行训练,并应用训练后的模型来识别
在问题 3 中,我们可以采用问题 2 中使用的方法,利用 YOLOv4 网络进行模型训练。然而,在训练过程中,有必要对手动添加的边界框进行标注,标注苹果的成熟状态(成熟、半成熟和未成熟)。随后,模型进行训练,并将训练好的模型应用于识别每个苹果的成熟状态。
图像中每个苹果的成熟状态。我们获取有关每个已识别苹果的成熟度、状态和置信度的信息。根据这些信息,我们可以设计一个函数来测量苹果的成熟度,从而允许我们计算每个苹果的成熟度。最后,生成描述所有苹果成熟度分布的直方图以供进一步分析。
图像。我们获取每个识别出的苹果的成熟状态和置信水平的信息。基于这些信息,我们可以设计一个函数来测量苹果的成熟度,从而计算每个苹果的成熟度。最后,生成一个直方图,描绘所有苹果的成熟度分布,以便进行进一步分析。

2.4 问题四分析
2.4 问题四的分析

在问题 4 中,我们要解决的问题是计算二维图像的面积并估计苹果的质量。对于面积问题,我们不妨使用我们在第一个问题中获得的半径 rad 来计算它作为一个简单的估计。正如我们在假设中所说,我们假设苹果的密度在发育周期中没有显著变化,这是一个固定值,可以记录为 ρ ρ rho\rho.此外,我们团队注意到附录 1 中的图像存在明显的差异 大 近 和 远 小 的问题 导致 错误 结果 即 对于 图像 中的 某些 苹果 ,实际 的 苹果 更大 而 图像 中的 苹果 更小。为此,我们的团队回顾了有关通过二维平面图像计算物体实际距离的相关文献。不幸的是,文献中回顾的方法并不适用于我们团队面临的困境。经过讨论,我们最终提出了一种新的方法 - 亮度估计法,以近似估计苹果的实际大小。在这种方法中,我们需要知道相机在拍摄时的焦距,最后我们绘制所有苹果的质量分布直方图。
在问题 4 中,我们想要解决的问题是计算二维图像的面积并估算苹果的质量。对于面积问题,我们不妨使用在第一个问题中获得的半径 rad 来进行简单估算。正如我们在假设中所说,我们假设苹果的密度在发育周期中没有显著变化,这是一个固定值,可以记录为 ρ ρ rho\rho 。此外,我们团队注意到附录 1 中的图像存在明显差异,近大远小的问题导致某些苹果的实际大小与图像中的苹果大小不符。为此,我们团队回顾了通过二维平面图像计算物体实际距离的相关文献。不幸的是,文献中回顾的方法并不适用于我们团队面临的困境。经过讨论,我们最终提出了一种新方法——亮度估计法,以大致估算苹果的实际大小。 在这种方法中,我们需要知道拍摄时相机的焦距,最后我们绘制所有苹果的质量分布直方图。

2.5 问题五分析
问题五的分析 2.5

这个问题需要我们将苹果与图像中的其他水果区分开来,这需要我们提取更多关于苹果的信息特征,而不是像前面的问题那样计算苹果的位置、成熟度、质量等。如果我们继续使用 YOLOv4 网络,当训练次数高的时候,时间复杂度会太高。因此,我们应该选择卷积层更多、计算速度更快的深度学习算法,这样才能更准确。并有效地识别苹果。同时,考虑到 Apple ID 号太多,我们选择每 1000 个连续 ID 进行聚类,统计这 1000 个 ID 内的苹果图片数量,然后绘制直方图。
这个问题需要我们将苹果与图像中的其他水果区分开来,这需要我们提取更多关于苹果的信息特征,而不是像前面的问题那样计算苹果的位置、成熟度、质量等。如果我们继续使用 YOLOv4 网络,当训练次数高的时候,时间复杂度会太高。因此,我们应该选择卷积层更多、计算速度更快的深度学习算法,这样才能更准确,并有效地识别苹果。同时,考虑到 Apple ID 号太多,我们选择每 1000 个连续 ID 进行聚类,统计这 1000 个 ID 内的苹果图片数量,然后绘制直方图。

III. 模型假设 III. 模型假设

3.1 假设 1 3.1 假设 1

图像背景中通常有小而多的苹果,很难计数。为了保证图像识别的速度和准确性,我们将忽略图像中的小苹果。
图像背景中常常有许多小苹果,数量众多,难以计数。为了确保图像识别的速度和准确性,我们将忽略图像中的小苹果。
解释:这个假设是合理且充分的。对于假设的情况,在现实生活中,你可以通过靠近以缩短距离、拍摄部分图像和改变拍摄角度来更好地识别苹果,而不是将其强加在背景中数量众多且难以计数的苹果上。检测,无法保证识别的速度和准确性。
解释:这个假设是合理且充分的。在假设的情况下,在现实生活中,您可以通过靠近以缩短距离、拍摄部分图像和改变拍摄角度来更好地识别苹果,而不是强迫在背景中众多且难以计数的苹果上进行检测,这无法保证识别的速度和准确性。

3.2 假设 2 3.2 假设 2

苹果的果实体积和密度在果实成熟期基本没有变化。如果忽略小误差,则可以将其视为固定值。
苹果的果实体积和密度在果实的成熟期基本保持不变。如果忽略小误差,可以视为固定值。
解释: 一般来说,果实在结果期发育,整体形状继续扩大。当果实形状基本稳定时,开始进入果实成熟阶段。果实在成熟阶段的外部表现主要是果皮颜色的变化。它的形状和质量基本没有变化,它的密度也可以认为没有变化。
解释:一般来说,果实在结果期发育,整体形状继续扩大。当果实形状基本稳定时,开始进入果实成熟阶段。果实在成熟阶段的外部表现主要是果皮颜色的变化。它的形状和质量基本没有变化,它的密度也可以认为没有变化。

3.3 假设 3 3.3 假设 3

所有的苹果都是红苹果。青苹果被认为是未成熟的红苹果,我们认为它们的成熟程度与苹果从绿色到红色的渐变程度呈线性关系。
所有苹果都是红苹果。绿苹果被视为未成熟的红苹果,我们认为它们的成熟度与苹果从绿到红的渐变程度呈线性关系。
说明:青苹果和未成熟的红苹果的外观非常相似,由于我们能获得的图像数据只是像素较低的二维图像,因此我们无法准确区分两者。考虑到大多数图像数据类型都是红苹果,我们可以认为所有的苹果类型都是红苹果,而苹果的成熟度只能通过颜色来区分,所以假设苹果的颜色变化和成熟度变化是线性的,相关的让我们更容易构建模型, 而且与实际情况的差距很小。
说明:青苹果和未成熟的红苹果的外观非常相似,由于我们能获得的图像数据只是像素较低的二维图像,因此我们无法准确区分两者。考虑到大多数图像数据类型都是红苹果,我们可以认为所有的苹果类型都是红苹果,而苹果的成熟度只能通过颜色来区分,所以假设苹果的颜色变化和成熟度变化是线性的,相关的让我们更容易构建模型,而且与实际情况的差距很小。

3.4 假设 4 3.4 假设 4

在给出的图像数据中,所有照片都是在自然光下以均匀柔和的光线拍摄的。拍摄的物体都是静物,拍摄过程中没有产生重影。所用拍摄设备的焦距相同。
在给定的图像数据中,所有照片都是在自然光下拍摄的,光线均匀柔和。拍摄的对象都是静物,拍摄过程中没有产生重影。使用的拍摄设备的焦距相同。
说明:摘苹果的时间一般在白天,所以不需要其他强光源,强光源对成像影响很大,影响识别结果。我们认为光线是均匀柔和的自然光,很容易消除干扰因素。一般情况下,苹果的位置不会因为外界环境的影响而发生太大变化。至少我们可以认为苹果在拍摄时是静止的,消除了成像过程中鬼影对识别结果的干扰。而且由于拣选机器人的成像设备是相同的,因此在实际应用中我们可以认为所有图片的拍摄焦距都是相同的。
说明:采摘苹果的时间通常是在白天,因此不需要其他强光源,强光源会对成像产生很大影响,并影响识别结果。我们认为光线是均匀柔和的自然光,容易消除干扰因素。在正常情况下,苹果的位置由于外部环境的影响变化不大。至少我们可以认为在拍摄时苹果是静止的,从而消除成像过程中鬼影对识别结果的干扰。而且由于采摘机器人的成像设备是相同的,在实际应用中我们可以认为所有图片的拍摄焦距是相同的。

IV. 符号 IV. 符号

γ γ gamma\gamma
H ~ H ~ widetilde(H)\widetilde{H}
W img W img  W_("img ")W_{\text {img }}
G m × n G m × n G_(m xx n)quadG_{m \times n} \quad表示大小为 mxn 的二维灰度图像上像素的灰度值矩阵
G m × n G m × n G_(m xx n)quadG_{m \times n} \quad Represents the grayscale value matrix of pixels on a 2D grayscale image of size mxn

A A ||A||\|A\|
用于描述两个圆圈之间重叠率的参数 用于衡量成熟度的加权因子 用于表示苹果成熟度的
函数 用于表示平均成熟度的参数 函数用于表示平均成熟度的参数
二维灰度图像上某个区域的平均亮度
对矩阵 A 的所有元素求和

五、模型建立与问题1的解决 五、模型建立与问题 1 的解决

5.1 苹果识别计数模型的建立

5.1.1 图像数据预处理

首先,我们需要对附件 1 中提供的图像数据进行预处理。我们观察到提供的图像数据是 RGB 格式。为了过滤掉图像中苹果的红色,我们绘制了 R 通道图像。但是,我们注意到,由于其他颜色的干扰(比如树枝的棕色),二值化后得到的图像并不理想,如下图所示:
图 1 原始图像与 RGB 灰度图像的比较
在查阅了相关文献并进行了分析后,我们确定在 Lab 色彩空间中选择 A 通道图像(以下简称 A 通道图像)是一个更可取的选择。这是因为 A 通道图像中的 a* 分量表示从绿色到红色的光谱变化,它可以有效地适应主要由绿色叶子组成的背景。此外,它还有助于减轻来自其他颜色的干扰。
以下是将原始图像的 RGB 参数转换为 Lab 参数的过程。由于 RGB 参数不能直接转换为 Lab 参数,因此我们选择使用 XYZ 参数作为中间步骤,即 RGB XYZ RGB XYZ RGBrarrXYZrarr\mathrm{RGB} \rightarrow \mathrm{XYZ} \rightarrow实验室。换算公式如下:
第 1 部分 : (RGB 到 XYZ) 假设 r , g r , g r,g\mathrm{r}, \mathrm{g},b 是三个通道的像素值,范围为 [0,255],转换公式如下:
{ R = gamma ( r 255.0 ) G = gamma ( g 255.0 ) B = gamma ( b 255.0 ) R = gamma r 255.0 G = gamma g 255.0 B = gamma b 255.0 {[R=gamma((r)/( 255.0))],[G=gamma((g)/( 255.0))],[B=gamma((b)/( 255.0))]:}\left\{\begin{array}{l} R=\operatorname{gamma}\left(\frac{r}{255.0}\right) \\ G=\operatorname{gamma}\left(\frac{g}{255.0}\right) \\ B=\operatorname{gamma}\left(\frac{b}{255.0}\right) \end{array}\right.
gamma ( x ) = { ( x + 0.055 1.055 ) 2.4 ( x > 0.04045 ) x 12.92 ( otherwise ) gamma ( x ) = x + 0.055 1.055 2.4 ( x > 0.04045 ) x 12.92 (  otherwise  ) gamma(x)={[((x+0.055)/(1.055))^(2.4),(x > 0.04045)],[(x)/( 12.92),(" otherwise ")]:}\operatorname{gamma}(x)=\left\{\begin{array}{cc} \left(\frac{x+0.055}{1.055}\right)^{2.4} & (x>0.04045) \\ \frac{x}{12.92} & (\text { otherwise }) \end{array}\right.
Gamma 函数用于图像中的非线性色调映射,目的是增强对比度。上面提到的表达式表示常用的 Gamma 函数。
[ X Y Z ] = M [ R G B ] X Y Z = M R G B [[X],[Y],[Z]]=M[[R],[G],[B]]\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]=M\left[\begin{array}{l} R \\ G \\ B \end{array}\right]
其中,变换矩阵 M 由下式给出
M = ( 0.4124 0.3576 0.1805 0.2126 0.7152 0.0722 0.0193 0.1192 0.9505 ) M = 0.4124      0.3576      0.1805 0.2126      0.7152      0.0722 0.0193      0.1192      0.9505 M=([0.4124,0.3576,0.1805],[0.2126,0.7152,0.0722],[0.0193,0.1192,0.9505])M=\left(\begin{array}{lll} 0.4124 & 0.3576 & 0.1805 \\ 0.2126 & 0.7152 & 0.0722 \\ 0.0193 & 0.1192 & 0.9505 \end{array}\right)
第 2 部分:(XYZ 到 Lab)
第 2 部分:(XYZ 到实验室)
L = 116 f ( Y / Y n ) 16 a = 500 [ f ( X / X n ) f ( Y / Y n ) ] b = 200 [ f ( Y / Y n ) f ( Z / Z n ) ] L = 116 f Y / Y n 16 a = 500 f X / X n f Y / Y n b = 200 f Y / Y n f Z / Z n {:[L^(**)=116 f(Y//Y_(n))-16],[a^(**)=500[f(X//X_(n))-f(Y//Y_(n))]],[b^(**)=200[f(Y//Y_(n))-f(Z//Z_(n))]]:}\begin{aligned} L^{*} & =116 f\left(Y / Y_{n}\right)-16 \\ a^{*} & =500\left[f\left(X / X_{n}\right)-f\left(Y / Y_{n}\right)\right] \\ b^{*} & =200\left[f\left(Y / Y_{n}\right)-f\left(Z / Z_{n}\right)\right] \end{aligned}
f ( t ) = { t 1 3 if t > ( 6 29 ) 3 1 3 ( 29 6 ) 2 t + 4 29 otherwise f ( t ) = t 1 3       if  t > 6 29 3 1 3 29 6 2 t + 4 29       otherwise  f(t)={[t^((1)/(3))," if "t > ((6)/(29))^(3)],[(1)/(3)((29)/(6))^(2)t+(4)/(29)," otherwise "]:}f(t)=\left\{\begin{array}{lr} t^{\frac{1}{3}} & \text { if } t>\left(\frac{6}{29}\right)^{3} \\ \frac{1}{3}\left(\frac{29}{6}\right)^{2} t+\frac{4}{29} & \text { otherwise } \end{array}\right.
在上面的两个公式中, L , a L , a L^(**),a^(**)\mathrm{L}^{*}, \mathrm{a}^{*} b b b^(**)\mathrm{b}^{*}表示最终 Lab 颜色空间中三个通道的值。X、Y、Z 是将 RGB 转换为 XYZ 后计算的值,并且 Xn , Yn , Zn Xn , Yn , Zn Xn,Yn,Zn\mathrm{Xn}, \mathrm{Yn}, \mathrm{Zn}通常设置为默认值 95.047 , 100.0 95.047 , 100.0 95.047,100.095.047,100.0和 108.883 。
基于上述原则,我们实现了通过代码将 RGB 转换为 Lab 的过程。然后,在 MATLAB 中,对于获得的 Lab 图像,我们过滤了 a* 分量并根据 L 值绘制了其二值化图像。结果是 Lab 色彩空间中 A 通道的二进制图像,如下所示:
图 2 通道图
经过比较,我们可以观察到,使用 Lab 色彩空间获得的二值化图像确实比使用 RGB 色彩空间获得的图像具有更好的结果。
然而,仅凭这一点是不够的。通过放大和对比图像,可以明显看出图像中有许多杂色点,并且边缘处有明显的锯齿效果,这可能是由于图像的分辨率较低。这对后续的 Hough Circle Transform 不利。因此,我们需要应用去噪技术来使图像相对平滑。
这里,我们采用高斯滤波的方法: 以下是对高斯滤波方法的简要介绍:
这里,我们采用高斯滤波的方法:以下是对高斯滤波方法的简要介绍:

高斯滤波是整个图像的加权平均过程。每个像素的值是通过取其自身值与其邻域中其他像素值的加权平均值来获得的。它是一种线性平滑滤波器,通常用于消除高斯噪声。高斯滤波广泛应用于图像处理的去噪过程。
一维高斯分布 : 一维高斯分布:
G ( x ) = 1 2 π σ e x 2 2 σ 2 G ( x ) = 1 2 π σ e x 2 2 σ 2 G(x)=(1)/(sqrt(2pi)sigma)e^(-(x^(2))/(2sigma^(2)))G(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{x^{2}}{2 \sigma^{2}}}
Two - dimensionalGaussiandistribution :
二维高斯分布:
G ( x , y ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 G ( x , y ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 G(x,y)=(1)/(2pisigma^(2))e^(-(x^(2)+y^(2))/(2sigma^(2)))G(x, y)=\frac{1}{2 \pi \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}
Where σ σ sigma\sigma is typically chosen as 1 . The following is a schematic diagram of the Gaussian distribution.
哪里 σ σ sigma\sigma 通常选择为 1。以下是高斯分布的示意图。

我们在这里采用二维高斯滤波。
我们在这里采用二维高斯滤波。
调试后,我们选择合适的高斯内核,对之前获得的 a* 通道图像进行高斯滤波。与原始图像相比,生成的去噪图像看起来明显更平滑。

图 3 高斯滤波前后对比图
至此,我们已经完成了对图像数据的预处理。

5.1.2 识别图像中苹果的方法
5.1.2 图像中识别苹果的方法

完成图像数据的预处理后,下一步是设计一种方法来识别处理后的图像中的苹果并确定苹果的边界,以便于后续的计数和统计。
在完成图像数据的预处理后,我们的下一步是设计一种方法来识别处理过的图像中的苹果,并确定苹果的边界,以便于后续的计数和统计。
考虑到二维图像中苹果的近圆形特征,我们采用了一种改进的霍夫圆变换方法来识别图像中的苹果。以下是 Hough 圆变换的简要说明:
考虑到二维图像中苹果的近圆形特征,我们采用了一种改进的霍夫圆变换方法来识别图像中的苹果。以下是霍夫圆变换的简要说明:
霍夫圆变换是经典霍夫变换的扩展,用于检测图像中的线条。原理如下:
霍夫圆变换是经典霍夫变换的扩展,后者用于检测图像中的直线。其原理如下:
  1. 我们可以使用 ( a , b , r ) ( a , b , r ) (a,b,r)(a, b, r)使用中心定义圆 ( a , b ) ( a , b ) (a,b)(a, b)和 radius r r rr.
    我们可以使用 ( a , b , r ) ( a , b , r ) (a,b,r)(a, b, r) 使用中心定义圆 ( a , b ) ( a , b ) (a,b)(a, b) 和半径 r r rr .
  2. 如果圆穿过该点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right),则它满足以下方程:
    如果一个圆通过点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right) ,那么它满足以下方程:
( x 1 a ) 2 + ( y 1 b ) 2 = r 2 x 1 a 2 + y 1 b 2 = r 2 (x_(1)-a)^(2)+(y_(1)-b)^(2)=r^(2)\left(x_{1}-a\right)^{2}+\left(y_{1}-b\right)^{2}=r^{2}
  1. 因此,所有圆都通过该点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right)可以表示为 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right)哪里 r 1 ( 0 , + ) r 1 ( 0 , + ) r_(1)in(0,+oo)r_{1} \in(0,+\infty).每个 i i ii对应于不同的圆,而 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right)表示通过该点的无限个圆集 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right).
    因此,所有经过点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right) 的圆可以表示为 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right) ,其中 r 1 ( 0 , + ) r 1 ( 0 , + ) r_(1)in(0,+oo)r_{1} \in(0,+\infty) 。每个 i i ii 的值对应一个不同的圆,而 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right) 表示一个无限的圆集,经过点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right)
  2. 通过该点的所有圆 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right)可以表示为 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right),则所有圆都通过该点 ( x 2 , y 2 ) x 2 , y 2 (x_(2),y_(2))\left(x_{2}, y_{2}\right)可以表示为 ( a 2 ( i ) , b 2 ( i ) , r 2 ( i ) ) a 2 ( i ) , b 2 ( i ) , r 2 ( i ) (a_(2)(i),b_(2)(i),r_(2)(i))\left(a_{2}(i), b_{2}(i), r_{2}(i)\right)以及通过该点的所有圆 ( x 3 , y 3 ) x 3 , y 3 (x_(3),y_(3))\left(x_{3}, y_{3}\right)可以表示为 ( a 3 ( i ) , b 3 ( i ) , r 3 ( i ) ) a 3 ( i ) , b 3 ( i ) , r 3 ( i ) (a_(3)(i),b_(3)(i),r_(3)(i))\left(a_{3}(i), b_{3}(i), r_{3}(i)\right).如果这三个点位于同一个圆上,则存在一组值 ( a 0 , b 0 , c 0 ) a 0 , b 0 , c 0 (a_(0),b_(0),c_(0))\left(a_{0}, b_{0}, c_{0}\right)使得 a 0 = a 0 = a_(0)=a_{0}= a 1 ( k ) = a 2 ( k ) = a 3 ( k ) , b 0 = b 1 ( k ) = b 2 ( k ) = b 3 ( k ) a 1 ( k ) = a 2 ( k ) = a 3 ( k ) , b 0 = b 1 ( k ) = b 2 ( k ) = b 3 ( k ) a_(1)(k)=a_(2)(k)=a_(3)(k),b_(0)=b_(1)(k)=b_(2)(k)=b_(3)(k)a_{1}(k)=a_{2}(k)=a_{3}(k), b_{0}=b_{1}(k)=b_{2}(k)=b_{3}(k) r 0 = r 1 ( k ) = r 2 ( k ) = r 3 ( k ) r 0 = r 1 ( k ) = r 2 ( k ) = r 3 ( k ) r_(0)=r_(1)(k)=r_(2)(k)=r_(3)(k)r_{0}=r_{1}(k)=r_{2}(k)=r_{3}(k),这意味着这三个点同时位于圆上 ( a 0 , b 0 , c 0 ) a 0 , b 0 , c 0 (a_(0),b_(0),c_(0))\left(a_{0}, b_{0}, c_{0}\right).
    所有经过点 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right) 的圆都可以表示为 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right) ,所有经过点 ( x 2 , y 2 ) x 2 , y 2 (x_(2),y_(2))\left(x_{2}, y_{2}\right) 的圆都可以表示为 ( a 2 ( i ) , b 2 ( i ) , r 2 ( i ) ) a 2 ( i ) , b 2 ( i ) , r 2 ( i ) (a_(2)(i),b_(2)(i),r_(2)(i))\left(a_{2}(i), b_{2}(i), r_{2}(i)\right) ,所有经过点 ( x 3 , y 3 ) x 3 , y 3 (x_(3),y_(3))\left(x_{3}, y_{3}\right) 的圆都可以表示为 ( a 3 ( i ) , b 3 ( i ) , r 3 ( i ) ) a 3 ( i ) , b 3 ( i ) , r 3 ( i ) (a_(3)(i),b_(3)(i),r_(3)(i))\left(a_{3}(i), b_{3}(i), r_{3}(i)\right) 。如果这三点在同一个圆上,则存在一组值 ( a 0 , b 0 , c 0 ) a 0 , b 0 , c 0 (a_(0),b_(0),c_(0))\left(a_{0}, b_{0}, c_{0}\right) 使得 a 0 = a 0 = a_(0)=a_{0}= a 1 ( k ) = a 2 ( k ) = a 3 ( k ) , b 0 = b 1 ( k ) = b 2 ( k ) = b 3 ( k ) a 1 ( k ) = a 2 ( k ) = a 3 ( k ) , b 0 = b 1 ( k ) = b 2 ( k ) = b 3 ( k ) a_(1)(k)=a_(2)(k)=a_(3)(k),b_(0)=b_(1)(k)=b_(2)(k)=b_(3)(k)a_{1}(k)=a_{2}(k)=a_{3}(k), b_{0}=b_{1}(k)=b_{2}(k)=b_{3}(k) ,并且 r 0 = r 1 ( k ) = r 2 ( k ) = r 3 ( k ) r 0 = r 1 ( k ) = r 2 ( k ) = r 3 ( k ) r_(0)=r_(1)(k)=r_(2)(k)=r_(3)(k)r_{0}=r_{1}(k)=r_{2}(k)=r_{3}(k) ,这意味着这三点同时位于圆 ( a 0 , b 0 , c 0 ) a 0 , b 0 , c 0 (a_(0),b_(0),c_(0))\left(a_{0}, b_{0}, c_{0}\right) 上。
  3. 分析通过该点的所有圆 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right)什么时候 r 1 ( i ) r 1 ( i ) r_(1)(i)r_{1}(i)确定后,其轨迹为 ( a 1 ( i ) , b 1 ( i ) ) a 1 ( i ) , b 1 ( i ) (a_(1)(i),b_(1)(i))\left(a_{1}(i), b_{1}(i)\right)是一个圆 ( x 1 , y 1 , r 1 ( i ) ) x 1 , y 1 , r 1 ( i ) (x_(1),y_(1),r_(1)(i))\left(x_{1}, y_{1}, r_{1}(i)\right)和 radius r 1 ( i ) r 1 ( i ) r_(1)(i)r_{1}(i).因此,所有圆圈 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right)在 处形成顶点的圆锥体 ( x 1 , y 1 , 0 ) x 1 , y 1 , 0 (x_(1),y_(1),0)\left(x_{1}, y_{1}, 0\right)和 90 度的锥角。三个圆锥体的交点 A 是同时通过这三个点的圆。具有最高累积计数的点 A 是圆的潜在中心。
    分析通过该点的所有圆 ( x 1 , y 1 ) x 1 , y 1 (x_(1),y_(1))\left(x_{1}, y_{1}\right) 什么时候 r 1 ( i ) r 1 ( i ) r_(1)(i)r_{1}(i) 确定后,其轨迹为 ( a 1 ( i ) , b 1 ( i ) ) a 1 ( i ) , b 1 ( i ) (a_(1)(i),b_(1)(i))\left(a_{1}(i), b_{1}(i)\right) 是一个圆 ( x 1 , y 1 , r 1 ( i ) ) x 1 , y 1 , r 1 ( i ) (x_(1),y_(1),r_(1)(i))\left(x_{1}, y_{1}, r_{1}(i)\right) 和半径 r 1 ( i ) r 1 ( i ) r_(1)(i)r_{1}(i) .因此,所有圆圈 ( a 1 ( i ) , b 1 ( i ) , r 1 ( i ) ) a 1 ( i ) , b 1 ( i ) , r 1 ( i ) (a_(1)(i),b_(1)(i),r_(1)(i))\left(a_{1}(i), b_{1}(i), r_{1}(i)\right) 在处形成顶点的圆锥体 ( x 1 , y 1 , 0 ) x 1 , y 1 , 0 (x_(1),y_(1),0)\left(x_{1}, y_{1}, 0\right) 和 90 度的锥角。三个圆锥体的交点 A 是同时通过这三个点的圆。具有最高累积计数的点 A 是圆的潜在中心。

图 4 霍夫圆变换图(图片来自互联网)。
霍夫圆变换可以准确识别图像中可能存在的一些圆圈。但是,这种方法涉及大量的计算负载,导致代码执行速度变慢。因此,我们选择了一种更高效、更灵活的霍夫梯度方法。与标准 Hough 圆变换相比,此方法显著降低了计算负载,并产生了良好的结果。
霍夫圆变换可以准确识别图像中可能存在的一些圆圈。但是,这种方法涉及大量的计算负载,导致代码执行速度变慢。因此,我们选择了一种更高效、更灵活的霍夫梯度方法。与标准霍夫圆变换相比,此方法显著降低了计算负载,并产生了良好的结果。
以下是用于圆检测的 Hough 梯度方法的实现说明:
  • Step1:对获取到的二值图像进行 Canny 边缘检测,识别图像中边缘点的位置。
    步骤 1:对获取到的二值图像进行 Canny 边缘检测,识别图像中边缘点的位置。
  • Step2:对于边缘图像中的每个非零点,使用 imgradientxy () 函数计算其局部梯度,计算 x 和 y 方向的一阶导数,得到梯度。
    步骤 2:对于边缘图像中的每个非零点,使用 imgradientxy()函数计算其局部梯度,计算 x 和 y 方向的一阶导数,得到梯度。
  • 步骤 3:根据得到的边点的梯度,沿着斜率指定的线(其中斜率从定义的最小值到最大值)累积器数组中的每个点。
  • Step4:在每次累积的同时,标记边缘图像中每个非零像素的位置。
    步骤 4:在每次累积的同时,标记边缘图像中每个非零像素的位置。
  • Step5:然后,从二维累加器中的这些点中选择候选中心,确保这些中心都大于给定的阈值,并且大于它们的所有邻居。这些候选中心根据其累积值按降序排列,便于首先显示支持像素最多的中心。
    步骤 5:然后,从二维累加器中的这些点中选择候选中心,确保这些中心都大于给定的阈值,并且大于它们的所有邻居。这些候选中心根据其累积值按降序排列,便于首先显示支持像素最多的中心。
  • Step6:然后根据这些像素与中心的距离对这些像素进行排序。从最小距离开始到最大半径,选择包含所有非零像素的最合适半径。
    步骤 6:然后根据这些像素与中心的距离对这些像素进行排序。从最小距离开始到最大半径,选择包含所有非零像素的最合适半径。
  • Step7:如果一个中心从边缘图像中的非零像素获得足够的支持,并且与之前选择的中心有足够的距离,那么它将被保留。
    步骤 7:如果一个中心从边缘图像中的非零像素获得足够的支持,并且与之前选择的中心有足够的距离,那么它将被保留。
最终保留的点是通过霍夫梯度方法找到的苹果圆的中心。根据图像中中心的数量,我们可以初步估计图像中苹果的大致数量。
以下是使用此方法获得的苹果计数结果。
这是我们整个苹果识别和计数算法的流程图:
图 5 Apple 识别算法的流程图。

5.1.3 计算苹果的统计方法及其改进

在上一节中,我们找到了一种识别图像中苹果的方法。然而,经过实际比较,我们发现由于光线和拍摄角度等因素,得到的苹果数量可能与实际数量不同,导致结果存在显著差异。
通过分析,我们确定苹果并不是完美的圆形,而是显示为多个圆圈的组合。因此,该算法容易出现一个苹果被识别为多个苹果的情况,尤其是在边界处。为了解决这个问题,我们提出了一种基于苹果圈重叠面积比的原始模型的优化。
我们提出了以下改进的方法来解决这个问题:
  1. 基于先前获得的所有圆心数据 ( x i , y i ) x i , y i (x_(i),y_(i))\left(x_{i}, y_{i}\right)及其半径 r i r i r_(i)r_{i}我们计算距离 d i j ( i j ) ( 0 , r i + r j ) d i j ( i j ) 0 , r i + r j d_(ij)(i!=j)in(0,r_(i)+r_(j))d_{i j}(i \neq j) \in\left(0, r_{i}+r_{j}\right).
    基于先前获得的所有圆心数据 ( x i , y i ) x i , y i (x_(i),y_(i))\left(x_{i}, y_{i}\right) 及其半径 r i r i r_(i)r_{i} 我们计算距离 d i j ( i j ) ( 0 , r i + r j ) d i j ( i j ) 0 , r i + r j d_(ij)(i!=j)in(0,r_(i)+r_(j))d_{i j}(i \neq j) \in\left(0, r_{i}+r_{j}\right)
  2. 为了便于讨论,让我们表示 R 1 = max ( r i , r j ) , R 2 = min ( r i , r j ) , d = d i j R 1 = max r i , r j , R 2 = min r i , r j , d = d i j R_(1)=max(r_(i),r_(j)),R_(2)=min(r_(i),r_(j)),d=d_(ij)R_{1}=\max \left(r_{i}, r_{j}\right), R_{2}=\min \left(r_{i}, r_{j}\right), d=d_{i j}.
  3. 接下来,我们介绍参数 γ = R 1 d R 2 ( 0 , 1 ) γ = R 1 d R 2 ( 0 , 1 ) gamma=(R_(1)-d)/(R_(2))in(0,1)\gamma=\frac{R_{1}-d}{R_{2}} \in(0,1) γ γ gamma\gamma旨在帮助我们确定在两个圆圈重叠的情况下是否应消除其中一个圆圈。
  4. 为此,我们需要找到一个阈值 λ λ lambda\lambda什么时候 γ > λ γ > λ gamma > lambda\gamma>\lambda,我们认为两个圆的重叠度比较高,我们去掉半径 N 较小的圆。
  5. 保留的圆圈数是优化的苹果计数。使用 Count 函数执行计数。
图 6 消除重复圆圈的优化模型流程图。
接下来,我们来搜索 λ λ lambda\lambda
当将识别图像与原始图像进行比较时,我们观察到当 γ < 0 γ < 0 gamma < 0\gamma<0即,当 R 1 < d R 1 < d R_(1) < dR_{1}<d,则两个圆的中心都不在另一个圆内。在这种情况下,要么没有重叠,要么重叠区域非常小。我们可以将它们视为两个独立的苹果,而无需进一步讨论。什么时候 γ > 1 γ > 1 gamma > 1\gamma>1,较小的圆圈完全被较大的圆圈包围,我们可以将其视为一个苹果。
因此, λ λ lambda\lambdawe are seek 的值应大于 0 且小于 1。
因此, λ λ lambda\lambda 我们寻求的值应大于 0 且小于 1。

图 7 两个圆圈重叠的示意图
什么时候 γ ( 0 , 1 ) γ ( 0 , 1 ) gamma in(0,1)\gamma \in(0,1),我们可以观察到两个圆之间有两个交点。通过将较小圆的中心与这两个交点连接起来,我们可以得到一个角度 θ θ theta\theta.我们可以发现,当 R 1 R 1 R_(1)R_{1} R 2 R 2 R_(2)R_{2}都是已知的,则重叠区域与 θ θ theta\theta和呈负相关(即较小的 θ θ theta\theta,则重叠区域越大)。从图像中,我们可以
图 8 更大的
图 9 较小的还观察到,由于 γ γ gamma\gamma增加,则它们之间的距离 d 减小,并且 θ θ theta\theta也继续减少。
图 10 重叠区域 i 估计图
由此,我们可以推断出参数 γ γ gamma\gamma与重叠区域呈正相关。
在这种情况下,我们选择 λ = 0.5 λ = 0.5 lambda=0.5\lambda=0.5作为确定两个圆是否重叠的阈值。什么时候 γ = 0.5 γ = 0.5 gamma=0.5\gamma=0.5、角度 θ θ theta\theta 120 120 120^(@)120^{\circ}.通过计算,我们发现此时,两个圆的重叠度在上方 70 % 70 % 70%70 \%.所以我们认为重叠相对较高,并且两个圆圈被标识为一个苹果。

5.2 苹果分布的结果和直方图

优化前后结果的对比如下所示:
图 11 校正前后效果比较
由此可以看出,改进的模型确实提高了识别准确性,并且识别结果与原始图像中苹果的分布和数量非常吻合。这可以用来计算苹果的数量。
根据此模型,我们将使用条形图绘制获得的结果,如下所示:
图 12 附件 1 中所有苹果分布的直方图
在直方图的基础上,我们绘制了一条拟合曲线,并观察到该曲线呈现出近似的正态分布。由于提供的苹果图像是随机的,没有特定的模式,我们可以认为得到的结果是令人满意的,表明模型具有很高的稳定性。

六、问题 2 的模型建立与解决

6.1 苹果位置确定模型的建立

从问题 1 的解决方案中,我们观察到使用 Hough Circle Transform 方法可以确定每个 Hough 圆的中心。但是,圆心位置与苹果簇的实际中心位置之间可能存在一定的偏差。为了提高模型的准确性,我们采用了 YOLOv4 网络,并采用了深度学习方法来确定苹果的坐标。可以将结果与问题 1 的结果进行比较,以评估模型的准确性和合理性。以下是 YOLOv4 网络的介绍。

6.1.1 YOLOv4 网络原理概述

YOLOv4 对象检测网络是一个单阶段对象检测网络,由三个主要部分组成:Backbone、Neck 和 Head。
YOLOv4 对象检测网络是一个单阶段对象检测网络,由三个主要部分组成:主干、颈部和头部。

图 13 YOLOv4 的组成。
通过图 16,我们可以清楚地看到它的过程。以下是详细说明:
  • YOLO v4 网络使用 CSPDarkNet-53 作为从输入图像中提取特征的主干。主干网有 5 个残差块模块,残差块模块输出的特征图在 YOLO v4 网络的颈部融合。
  • neck 中的 SPP 模块连接低分辨率特征图的最大池化输出,以提取最具代表性的特征。SPP 模块使用大小为 1×1、5×5、9×9 和 13×13 的内核进行最大池化操作。stride 值设置为 1 。
    颈部中的 SPP 模块连接低分辨率特征图的最大池化输出,以提取最具代表性的特征。SPP 模块使用大小为 1×1、5×5、9×9 和 13×13 的内核进行最大池化操作。步幅值设置为 1。
连接特征图增加了骨干特征的感受野,并提高了网络检测小目标的准确性。SPP 模块中的级联特征图使用 PAN 与高分辨率特征图融合。PAN 使用上采样和下采样操作来设置自下而上和自上而下的路径,以组合低级和高级功能。
图 14 YOLOv4 网络算法流程图。
  • PAN 模块输出一组聚合的特征图以用于预测。YOLO v4 网络有三个检测头。每个检测头都是一个 YOLO v3 网络,用于计算最终预测。YOLO v4 网络输出具有大小为 19 x 19、38 x 38 和 76 x 76 的地图,用于预测边界框、分类分数和对象性分数。
  • Tiny YOLO v4 网络是 YOLO v4 网络的轻量级版本,具有较少的网络层数。微小的 YOLO v4 网络使用特征金字塔网络作为颈部,并有两个 YOLO v3 检测头。网络输出具有大小为 13 x 13 和 26 x 26 的地图,用于计算预测。
    Tiny YOLO v4 网络是 YOLO v4 网络的轻量级版本,具有更少的网络层。Tiny YOLO v4 网络使用特征金字塔网络作为颈部,并具有两个 YOLO v3 检测头。该网络输出 13x13 和 26x26 的特征图用于计算预测。

6.1.2 YOLOv4 网络的应用及导致该问题
6.1.2 YOLOv4 网络在此问题中的应用及结果

在使用 YOLOv4 网络训练模型之前,我们需要从附件 1 中提供的苹果图像数据中选择样本并预处理这些数据。选择样品和预处理的过程概述如下:
在使用 YOLOv4 网络训练模型之前,我们需要从附件 1 提供的苹果图像数据中选择样本并对这些数据进行预处理。选择样本和预处理的过程如下所述:


我们随机选择了 100 张图像作为训练样本。在这里,我们提供了一些来说明所选的苹果图像表现出各种独特的特征。
然后,我们利用 MATLAB 中的 Image Labeler 工具箱,通过边界框手动注释所选样本,其中每个框代表包含苹果的区域。经过处理,我们得到了一个 90x2 的表格。第一列保存图像的路径,第二列存储每个图像中所有边界框的坐标。
然后我们在 MATLAB 中使用图像标注工具箱手动为选定的样本进行标注,使用边界框,其中每个框代表包含苹果的区域。处理后,我们得到了一个 90x2 的表格。第一列包含图像的路径,第二列存储每个图像中所有边界框的坐标。
添加边界框后的结果如下。同样,我们提供了这些添加了边界框的图像示例:
添加边界框后的结果如下。同样,我们提供了这些添加了边界框的图像示例:

(a)
(d)

(b)
(e)
©

(f)
图 16 添加了边界框的结果
完成注释后,所有框坐标都将被标记并记录下来,以便随后计算每个苹果的位置。
然后,我们选取选定的 100 张处理后的样本图像,并将它们随机分成三组 8 : 1 : 1 8 : 1 : 1 8:1:18: 1: 1ratio 使用 rand ( ) rand ( ) rand()\operatorname{rand}()功能。这些集分别称为训练集 K 1 、 验证集 K2 和测试集 K3 。
至此,我们已经完成了训练样本的预处理。

  1. 1 1 ^(1){ }^{1}使用 VOLOv4 算法时,我们参考了 MATLAB 帮助中的参考资料,链接如下