基于决策树算法的水果分类识别
2024-02-27张粮王璇之
张粮 王璇之
摘 要:水果销售作为餐饮零售业的重要分支,正逐渐引入无接触服务的概念。通过非接触式水果销售机器人,消费者可以享受到安全、卫生、快速的购买体验,同时商家也因此获得更高效的销售方式和更为便捷的管理手段。在该系统中,基于图像处理的图像识别技术显得尤为关键。因此,该研究着眼于设计一款低成本的水果自动分类系统,并应用于TI AM5708工业派上。该设计通过工业相机采集实时视频流,提取图像特征制作数据集,并训练决策树分类模型。经过测试,该模型可准确快速识别水果,满足实际水果店销售需求。
关键词:OpenCV;决策树算法;水果识别;嵌入式系统;图像识别
中图分类号:TP391 文献标志码:A 文章编号:2095-2945(2024)06-0018-06
Abstract: As an important branch of catering retail, fruit sales is gradually introducing the concept of contactless service. Through the contactless fruit sales robot, consumers can enjoy a safe, hygienic and fast purchasing experience, and merchants thus get more efficient sales methods and more convenient management means. In this system, the image recognition technology based on image processing is particularly critical. Therefore, this study focuses on designing a low-cost automatic fruit classification system and applying it to TI AM5708 industry. In this design, the industrial camera collects the real-time video stream, extracts the image features to make the data set, and trains the decision tree classification model. Through testing, the model can accurately and quickly identify fruits and meet the actual sales needs of fruit stores.
Keywords: OpenCV; decision tree algorithm; fruit recognition; embedded system; image recognition
隨着科技不断进步,人工智能与嵌入式系统结合为餐饮零售业,尤其是水果销售领域带来前瞻性的发展机遇[1]。本研究旨在介绍一种基于决策树的水果实时分类算法,并应用于TI AM5708芯片,提供高效准确的自动分类解决方案[2]。
该算法在无接触式水果销售机器人中起关键作用。通过处理和分析水果图像,能精准辨识品种和品质,为消费者提供个性化购买选择,为商家提供便捷管理手段。决策树作为常用的机器学习算法,简单明了,适用于分类问题[3]。
为实现该算法,选择了TI AM5708芯片作为嵌入式平台[4]。该芯片计算能力强大,外设接口丰富,适合高效处理图像和视频数据,并能实时执行复杂算法。在该芯片上实现水果实时分类算法成本低,性能优异,为水果销售行业带来实际商业价值。
本研究详细介绍基于决策树的水果实时分类算法设计原理、实现方法和TI AM5708芯片特性。重点关注算法在嵌入式平台上的实时性能和准确度,并通过实验验证其可行性和可靠性。通过这项研究,旨在为水果销售行业提供高效实时分类算法,推动行业智能化发展,提升购物体验,为商家创造更多商业价值。
1 整体模块介绍
1.1 OpenCV和决策树图像识别
在图像识别方面,本研究使用传统的OpenCV算法[5]和决策树模型进行识别。首先将摄像头采集到的图像转成灰度图,通过合理阈值将其二值化,然后对二值化的图像进行多次膨胀滤波,滤除其他噪声对识别的影响,接着利用Canny滤波[6]进行轮廓提取,对提取的轮廓进行检测和剔除,提取出当前水果的轮廓,根据保留的轮廓得到当前水果HSV图像[7],进而得出当前水果的特征,最后将特征输入至实时分类算法中判断水果类型。水果识别示意图如图1所示。
实时分类算法采用归纳式机器学习中的决策树算法,其利用已知的训练样本构建树状模型,通过将提取出的水果特征输入进树状模型中进行预测。相比于其他图像识别算法而言,该算法的输入仅需几个特征参数,因此耗时较少,可以满足机器人高实时性的识别要求。
1.2 DSP加速单元
在上述图像识别部分完成之后,本研究还使用DSP加速单元对OpenCV图像处理部分进行硬件加速。ARM到DSP之间的通信采用MessageQ消息队列机制[8]。MessageQ用于实现多核之间的通信,消息通过消息队列发送和接收。每个消息队列只能有一个读取者,但可以有多个写入者。使用流程如下:ARM将数据写入共享内存,使用MessageQ通知DSP写入完成,通知信息包含共享内存的物理地址和数据长度。DSP从共享内存中读取数据并处理,处理完成后,DSP将数据写入共享内存,使用MessageQ通知ARM写入完成,通知信息包含共享内存的物理地址和数据长度。ARM从共享内存中读出数据并进行后续处理。DSP和ARM核间的通信示意图如图2所示。
通过多次测试发现,OpenCV图像处理操作中的膨胀操作的耗时是最长的,因此将膨胀操作转移到DSP加速单元中进行硬件加速。为了减少ARM核与DSP核之间的通信数据量,本研究压缩了字节和像素间的对应关系,将原本的1个字节对应1个像素压缩为1个字节对应8个像素,降低了核间通信所花费的时间。使用DSP核心进行硬件加速的流程如下。
1)ARM端通过OpenCV采集一帧图像,将图像转灰度和二值化操作之后,压缩字节和像素之间的对应关系,并将压缩后的图像数据存储到物理缓冲区,使用MessageQ将物理缓冲区首地址及长度信息发送给DSP。
2)DSP端通过MessageQ接收物理缓冲区的首地址及长度信息,然后读取缓冲区中的图像数据,对图像进行多次膨胀之后,将数据重新写回相同的缓冲区,然后MessageQ发送到ARM。
3)ARM端通过MessageQ接收物理缓冲区首地址及长度信息,读取缓冲区中的数据,将数据存储关系更改为1个字节对应1个像素后,进行后续的Canny边界提取和提取图像特征等操作。
为了验证DSP的加速效果,本研究设计了对比实验,一组单纯使用Cortex A15识别100张图片并计算每张图片平均消耗时间;另一组使用Cortex A15+DSP识别相同的100张图片并计算每张图片平均消耗时间。通过对比发现,使用DSP加速单元进行硬件加速后效率可达ARM端的150%以上。对比结果见表1。
2 决策树算法介绍
2.1 理论背景
当前数据分析领域中,机器学习是备受瞩目的研究领域,其中涵盖了多种可供选择的算法。常见的分类算法包括决策树、人工神经网络、遗传算法、KNN算法、支持向量机、朴素贝叶斯和Adaboosting等[9]。在这些算法中,决策树因其快速构建和分类速度等优势而备受关注,在实际应用层面相对于其他机器学习算法更具适用性[3]。
决策树分类模型是一种简单直观的机器学习算法。通过对数据逐步进行特征划分,构建一棵树状结构,用于分类任务。从根节点开始,根据特征值不断选择最优划分,直至达到叶子节点,完成分类。该模型易于理解和解释,适用于大规模数据集[10]。
在完成训练后,决策树生成了一棵类似于树的判别模型,通过每个节点的判决,最终得出正确的分类结果。图3呈现了一个简明的决策树示例。
在决策树的构建过程中,一个关键的任务是选择用于划分数据集的最优特征。对于分类问题,常用的指标是信息增益(Information Gain)或基尼不纯度(Gini Impurity)。信息增益衡量的是通过某个特征对数据集进行划分后,信息不确定性的减少程度,计算公式为
式中:Ent(D)表示数据集D的信息熵(Entropy),计算公式为
Ent(D)=-∑pilog2(pi) 。 (2)
对于回归问题,决策树使用方差作为衡量连续值预测的不确定性的指标。假设数据集D的连续值标签为y1,y2,…,yn,则方差的计算公式为
决策树的构建过程始于根节点,该节点包含训练集中的全部数据。通过对特征值的比较,决策树将数据集逐步划分成不同的子集,使得每个子集中的样本具有相似的特征。这个过程将继续递归地进行,直到满足某个停止条件,例如达到树的最大深度或子集中的样本数量过少。
决策樹具有易于理解和解释的优势,因为其能够生成清晰的树状结构,直观地展示了分类或回归的决策过程[11]。
2.2基于决策树的水果实时分类算法设计
本研究设计的决策树算法的核心思想如下。
1)提取水果的4个特征参数,包括面积、周长、似圆度和颜色,这些参数用于区分不同的水果类别。
2)在包含6种水果的根节点上,计算参数集的信息总量,以了解整个数据集的初始信息量。
3)计算每个属性在叶节点上的信息总量,同时根据每个属性,计算依据其划分后的信息需求。
4)逐个计算4个属性(面积、周长、似圆度和颜色)对应的信息增益,通过比较信息增益值来选择最优的属性进行数据划分。
5)选择具有最大信息增益的属性进行划分,从而在每次划分中都选择最具区分性的特征。
6)通过递归地继续划分,按照同样的步骤对子节点进行处理,直到所有叶节点都在单一类别上。
7)所有叶节点都指向单一类别时,停止划分,此时决策树构建完成。
3算法部署
3.1图像特征提取
物体识别流程如图4所示。具体实现方法如下。
首先,针对本研究实时获取的水果图像中可能包含大量冗余信息的问题,本研究只需对水果图像的部分进行识别分类,而不必处理整个图像。因此,在分类模块中本研究使用边缘分割法对水果图像进行分割。具体步骤如下:首先,采用阈值法来提取水果的轮廓;接着,根据检测到的水果轮廓,本研究绘制外接矩形,将该区域作为分割出的水果图像,传到下一个分类模块进行处理。
在本研究的图像分类中,图像特征是描述图像的原始属性,通常包括颜色、轮廓、纹理、形状和空间位置等。颜色特征可以通过提取RGB图像的3个通道来获取。而轮廓特征是形状特征中最易获取且具有良好分类效果的特征之一。本研究选择的轮廓特征是水果的周长、二维映射面积以及似圆度。在视频中水果所占面积并不一样,因此可以使用轮廓面积来判别。通过结合轮廓特征和颜色特征,本研究成功实现了对水果的实时分类,并经过测试证明,在水果分类的准确率上优于仅使用轮廓特征的方法[12]。
3.1.1面积特征
水果图像的面积通常定义为其轮廓的面积。通过在上一步获取的水果轮廓上计算水果图像的面积(Area)[7]。
3.1.2 周长特征
水果图像的周长是指其轮廓的周长;在上一步获取的水果轮廓上计算水果图像的周长(L)。
3.1.3 似圆度特征
似圆度表示闭合轮廓和圆形的接近程度。本研究定义计算公式如公式(4)所示
根据公式(4)可知,似圆度越接近1越圆,反之则越不接近圆形。
3.1.4 颜色特征
为了在水果分类中更好地处理光线变化的影响,本研究选择了HSV(色相、饱和度、明度)颜色空间作为颜色特征的提取方式。相对于RGB颜色空间,HSV颜色空间更加稳定,能够有效地表达色彩的明暗、色调和鲜艳程度,便于进行颜色间的对比。
在图像像素值的读取过程中,对饱和度(S)在43~255且明度(V)在46~255的像素视为彩色像素。对于这些彩色像素,本研究采取的方法是对于关键变量色调(H)进行控制,通过彩色对照表进行量化,再遍历每一个像素,将其分类保存。通过这种方法,能够更好地识别彩色像素并提取其色调信息。将色调进行非均匀量化有助于突出图像中的主要颜色分布,同时计算像素计数可以衡量不同色调的出现频率。由于计数最多的色调值反映了图像中占据主导地位的颜色特征,因此作为图像的颜色特征进行选取,有助于准确地表征图像的色彩特性。色调的量化公式如下
在颜色特征提取的过程中,本研究采取了对颜色的划分,将H值进行了非均匀量化。具体做法是将色调划分为0~6的7个区间,分别对应不同的颜色。首先遍历图像的三通道得到RGB数值,接着通过转换公式得到h、s、v数值。对于彩色像素,本研究对其h值进行非均匀量化,得到H值,并统计各个H值的像素点数量。在遍历过程中,记录每个H值对应的像素点数量,然后选择计数值最大的H值作为图像的颜色特征参数[7]。
本研究中将提取得到的参数进行了本地存储如图5所示。每一类水果的特征排布均相同,按照类别、面积、周长、似圆度及颜色的格式进行排布,方便后期读取。
3.2 决策树算法构建
本研究一共得到了600条数据作为样本,90%作为训练集,其余的作为测试集。
为了实现水果实时分类算法,本研究选择了WEKA软件作为工具。WEKA是一款开源的机器学习软件,提供丰富的数据挖掘和机器学习算法,适用于数据分析、模型构建和预测等任务[13]。利用WEKA软件,能够对训练集数据进行处理和分析,构建基于决策树的水果实时分类算法。
通过以上的处理,在计算机上成功构建了基于决策树的水果实时分类算法。这一算法利用600条特征值数据进行训练和测试,旨在实现对水果的实时分类,为后续的实验和研究工作提供可靠的分类基础。
在使用软件进行分类的过程中,首先通过样例存储样本训练集数据,确保数据的有效管理。其次,利用分类器定义通用的分类算法结构,为后续的机器学习方法提供了统一接口。再次,通过数据集加载工具加载数据文件,实现了数据集的导入和读取。在数据加载过程中,提前设定好水果类别。最后,通过分类器的J48决策树方法进行训练,为模型的构建奠定了坚实的基础。具体的模型构建流程如图6所示。
WEKA平台上构建了J48决策树分类器的实例,利用Classifier、Instance和ArffLoader方法,能够有效地操作和处理训练数据集。通过指定数据文件路径,本研究成功导入了训练数据,确保了后续训练过程的顺利进行。在导入数据集后,我们设定了标识列,以确保训练数据的正确标记。然后,本研究通过运用J48决策树算法对模型进行了训练,直到模型训练过程顺利完成。
针对之前获取的数据集,针对每种水果随机选择60条数据,共计540条数据作为训练集。在WEKA中基于该训练集构建了水果决策树分类模型。图7展示了构建的模型。
根据构建的决策树,本研究发现颜色分量在决策树中充当了根节点的划分属性,而该属性具有最大的信息增益。通过遍历叶子节点,可以得到决策树的判决规则。当分割模块将水果图像传入模型后,首先进行颜色判决,根据对应的结果送到不同的下一级叶节点。本研究根据决策树模型构建逻辑判断语句,最终确定唯一的结果。
4结果测试
将分类算法移植到工业派后,调用摄像头进行识别,部分结果截取如下。
由测试结果可知,识别结果播放帧率约为30 fps,正确率也极高,基本符合应用要求。
5 结束语
本研究旨在开发一个水果实时分类系统,该系统利用图像特征进行水果实时识别。通过深入研究水果的图像特征,选择了最适用于该系统的特征。在实时视频流中提取水果的关键特征,并将这些特征保存在本地,形成训练和测试的样本集。选择基于决策树的水果实时分类算法,并在WEKA中利用大量水果数据集对其进行训练。最终,成功构建了一个基于决策树的水果实时分类模型,该模型能够在实时场景中准确地对水果进行分类,为水果相关应用提供了有力支持。
本系统的水果自动分类算法基于监督学习的决策树算法设计,因此本研究可以通过增加水果参数集来扩充系统对水果种类的识别能力。然而,由于橙子和苹果具有相似性,当摄像头快速晃动时,系统的性能可能会受到一定影响。因此,未来的研究方向是改进特征参数的描述方法,采用更有效的水果特征,以提高系统的准确率。
参考文献:
[1] 孟祥枫,龚贤明.消费者参与无接触式配送的影响因素分析[J].中国集体经济,2022(27):124-128.
[2] 王壮飞,卢海林,耿文涛,等.基于OpenCV的水果采摘机器人目标检测与定位系统研究[J].电子技术与软件工程,2022(2):137-140.
[3] 何宇健.Python与机器学习实战 决策树、集成学习、支持向量机与神经网络算法详解及编程实现[M].北京:电子工业出版社,2017.
[4] 薛培康,杜红棉,王玮,等.基于AM5708的智能多目标跟踪监控系统设计[J].科学技术与工程,2021,21(4):1471-1476.
[5] 雷得超,任守华.基于OpenCV图像处理车牌识别系统分析研究[J].电脑与信息技术,2022,30(4):15-17.
[6] 安帅帅,李庆忠.基于改进Canny的彩色图像边缘检测算法[J].软件导刊,2023,22(2):8-14.
[7] 杨鸽,郑嘉龙,王莹.基于HSV与RGB颜色空间的人体检测与跟踪算法[J].自动化技术与应用,2022,41(9):17-20,28.
[8] WANG K, LIU S. RGBD Object Recognition and Flat Area Analysis Method for Manipulator Grasping[C]//2020 IEEE 9th Data Driven Control and Learning Systems Conference (DDCLS). IEEE, 2020: 729-734.
[9] 孙雨琛.基于机器学习的人脸表情识别与分析系统[D].贵阳:贵州大学,2020.
[10] 王宏,张强,王颖,等.基于ELM的改进CART决策树回归算法[J].计算机系统应用,2021,30(2):201-206.
[11] 郑力嘉,宋冰.決策树分类算法的预剪枝与优化[J].自动化仪表,2023,44(5):56-62.
[12] 陈贝文,陈淦.水果分类识别与成熟度检测技术综述[J].计算机时代,2022(7):62-65.
[13] 赵宁杰,李雪飞.基于Weka平台的分类算法比较分析[J].信息与电脑(理论版),2020,36(6):73-75.