智能水果识别称重系统的设计与实现

2023-06-26 13:11杨江波孟小艳熊加起柯义新唐辉林
无线互联科技 2023年8期
关键词:树莓派图像识别

杨江波 孟小艳 熊加起 柯义新 唐辉林

摘要:近年来,计算机视觉技术不断发展,引起了人工智能的一股热潮。为了适应现代化市场发展的需求,减少人工成本,提高工作效率,文章设计利用人工智能中的图像识别技术,辅助摄像头、重力传感器、显示屏、语音播报等设备构成的智能电子秤,实现了对水果种类的识别、自动称重计价、语音播报和显示,解决了传统水果电子秤称重、支付方式的不足,减轻了人力让生活更智能。基于树莓派的智能电子秤由于低成本、易部署的特点,可以广泛用于生活领域。

关键词:树莓派;图像识别;称重传感器

中图分类号:TP391.41  文献标志码:A

0 引言

基于树莓派的智能水果识别系统在商场领域的发展已经比较成熟,但在小超市等水果销售中还有很大的发展空间。其开发成本随着嵌入式开发技术、人工智能技术以及物联网技术的成熟也在不断下降,使得智能水果识别计价器在小超市等水果销售中的应用成为一种趋势[1]。随着计算机视觉技术的发展,作为计算机视觉领域分支的图像识别技术也在不断提高[2]。智能水果识别可以减少大中小企业的人工成本,避免工作人员长期劳作造成的失误,极大地提高了工作效率。

图像识别技术的快速发展,也为智能电子秤的设计提供了更加智能化的发展方向。在不需要人为干预的情况下,自动对图像进行识别、提取等操作,并对提取的目标利用人工智能算法进行分析,当满足条件时进行计价[3]。当前,该方向的研究有很多,程望斌等[4]以嵌入式单片机STC89C52为主控制器,设计一款可实现物品价格的设定、物体重量的测量和自动计价等多功能智能电子秤。何静等[5]研究了基于单片机STM32F103C8T6控制的电子秤系统。杨霈[6]通过对水果图像进行相应的处理和Matlab GUI设计及一个水果识别系统界面结合,实现了对水果分类。刘朝辉等[7]利用深度学习理论以及调用机器学习开源软件库TensorFlow来实现水果识别。这也为本次设计提供了理论依据。

本设计设计的是一个基于图像识别技术的智能电子秤,是一个集果蔬识别、质量检测、后台计价技术于一体的称重体系。本文选择树莓派作为嵌入式开发核心,研究图像识别技术在嵌入式系统中的应用,具有一定的理论意义。

1 总体设计阐述

为了满足水果销售商以及消费者的需求,考虑价格和实用性等诸多因素之后,本设计将以树莓派为核心处理器、以图像识别技术为支撑,辅以USB摄像头、称重传感器、语音播报等设备。整体设计首先由重力感应器检测是否有重物放入,当有重物放入时,触发拍照功能进行拍照。根据拍的静态的图片进行特征的检测识别。根据检测出的水果种类对应出的相应单价与检测出的重量进行处理,得出最终的价格,最终显示出水果类别、单价、重量、总价,并进行语音播报。总体设计流程如图1所示。

2 硬件设计

本次设计用到的硬件设备有基于树莓派3代B+型开发板的核心控制模块、称重模块以及图片采集模块。通过树莓派接收称重传感器传来的水果重量的电信号,并对摄像头所拍照片进行水果种类的识别。如果是某一种水果,就其合成相应的文本,并调用百度AI语音合成,再通过调用Python中的Tkinter库进行相关信息的显示,并进行语音播报。

2.1 核心控制模块

本次设计中使用的树莓派版本是树莓派3代B+型开发板。由BCM2837B0型号CPU构建的树莓派3B+版本是升级后的3B版本博通处理器。更新后的版本优化了树莓派的性能和散热器,使其拥有的时钟频率更好、芯片温度更精准。相较于3B版本,树莓派3B+版本的处理器从1.2 GHz提升至1.4 GHz,不仅支持5 GHz WiFi频段、蓝牙版本Bluetooth 4.2、千兆以太网卡,还可以外接PoE供电(须配合独立的扩展板)的支持,使其性能更优,提升了lPXE网络稳定性和USB吞吐容量,增强了整体热管理能力(散热)。树莓派3B+版本中双频无线网卡和蓝牙采用了Cypress CYW43455“combo”芯片使其在2.4 GHz和5 GHz的频带有更加优异的表现,提高了200 MHz的峰值CPU时钟频率,有线和无线网络的吞吐量也提高了3倍左右,保持高性能的时间更长。

2.2 称重模块

本次设计因考虑经费等相关问题,所使用的称重传感器型号是HX711。此称重传感器可以将质量信号转变为可测量的电信号输出,在众多传感器中销量较好。HX711支持24位A/D转换是专业的高精度A/D芯片。该芯片集成了其他同类型芯片所需要的外围电路,如稳压电源、内时钟振荡器等,使其与同类型其他芯片相比,具有集成度高、响应速度快、抗干扰性强等优点,不仅降低了电子秤的成本,还提升了电子秤的性能和可靠性。该传感器内部含有2个应变片,应变片内有2个压力电阻,共4个。由这4个压力电阻组成的全桥式电路,可以有效提高测量精度。本次设计通过HX711称重传感器称出水果的重量,将数据传至树莓派,并触发USB摄像头进行拍照。

2.3 图片采集模块

本次设计使用的新型数据传输接口的USB数字摄像头进行图片的采集。該摄像头的USB接口传输速度远远高于串口、并口的速度,减少了图片采集的时间。在实际应用中,也会相应地减少称重和顾客等待的时间,有效提高交易效率。

3 软件设计

为了实现图像识别、语音播报及显示屏显示的功能,本研究重点进行了软件设计。首先,要准确判断出所拍摄照片是哪一种水果;其次,根据所识别的水果种类判断出该水果单价;最后,根据称重传感器所称重量和单价通过代码计算出总价,再进行语音播报。

3.1 图像识别模块设计

本次设计使用百度AI进行水果种类的识别。百度AI可以识别近千种水果,通过调用百度AI,读取相关图片文件,对文件中所示水果进行识别。当重量稳定时,程序输出c进行下一步,调用系统命令,进行拍照,并保存图片,命名为2.jpg,然后调用百度AI识别。拍照识别代码如下:

if(int(a)==zldata):

   print("c")

os.system("fswebcam /dev/video0 2.jpg")

request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient"

# 二進制方式打开图片文件

f = open('2.jpg', 'rb')

              img = base64.b64encode(f.read())

params = {"image": img}

access_token = '24.bb0be23e3998761531b109c0c015280c.2592000.1683091769.282335-27596940'

request_url = request_url + "?access_token=" + access_token

headers = {'content-type': 'application/x-www-form-urlencoded'}

response = requests.post(request_url, data=params, headers=headers)

if response:

a = response.json()

x = a['result'][0]['name']

print(x)

3.2 显示与语音播报模块设计

本次实验采用网页照片进行识别,用摄像头对准电脑上的实物图片,对其进行识别,且所称重量不是水果真实重量。本设计通过将重量信息与所拍摄照片识别结果结合,根据对应水果的单价和重量,算出总价,将其合成相应的文本,再通过调用百度AI语音合成,最后通过调用Python中的Tkinter库进行相关信息的显示,并进行语音播报。模块中设置了种类、重量、单价、总价和单位,以及它们的字体格式和大小,并显示。显示代码如下:

root = tk.Tk()

root.geometry('300x300+100+100')  # 设置窗口大小

root.title('智能电子称')  # 标题

l1 = tk.Label(root, text='种类', bg='white', font=('Arial', 12), width=8, height=2)

l5 = tk.Label(root, text=zonglei, bg='white', font=('Arial', 12), width=8, height=2)

l2 = tk.Label(root, text='重量', bg='white', font=('Arial', 12), width=8, height=2)

l6 = tk.Label(root, text=zldata/1000, bg='white', font=('Arial', 12), width=8, height=2)

l3 = tk.Label(root, text='单价', bg='white', font=('Arial', 12), width=8, height=2)

l7 = tk.Label(root, text=danjia, bg='white', font=('Arial', 12), width=8, height=2)

l4 = tk.Label(root, text='总价', bg='white', font=('Arial', 12), width=8, height=2)

l8 = tk.Label(root, text=zongjia, bg='white', font=('Arial', 12), width=8, height=2)

l9 = tk.Label(root, text='千克', bg='white', font=('Arial', 12), width=8, height=2)

l10 = tk.Label(root, text='元/千克', bg='white', font=('Arial', 12), width=8, height=2)

l11 = tk.Label(root, text='元', bg='white', font=('Arial', 12), width=8, height=2)

l1.place(x=0, y=0)

l5.place(x=100, y=0)

l2.place(x=0, y=50)

l6.place(x=100, y=50)

l3.place(x=0, y=100)

l7.place(x=100, y=100)

l4.place(x=0, y=150)

l8.place(x=100, y=150)

l9.place(x=200, y=50)

l10.place(x=200, y=100)

l11.place(x=200, y=150)

root.after(5000, root.destroy)  # 参数是ms

root.mainloop()  # 显示整个窗口

root.quit()

设置语音播报的相关内容以及生成相应的语音文件名。

合成加播代码如下:

text = '当前水果为'+zonglei+"当前重量为"+str(zldata/1000)+"千克"+"单价为"+str(danjia)+"元每千克"+"总价为"+str(zongjia)+"元"  # 需要合成的语音

result = client.synthesis(text, 'zh', 2, {'vol': 1, })

file_name = 'yy.mp3'

if not isinstance(result, dict):

with open(file_name, 'wb') as f:

f.write(result)

mixer.init()

mixer.music.load('yy.mp3')

mixer.music.play()

time.sleep(10)

mixer.music.stop()

4 測试及结果

本次测试,分别用摄像头对准对苹果、橘子和香蕉的照片进行识别。分别对应苹果、橘子、香蕉的识别结果,并显示出各自的重量、单价和总价,如图2—4所示。智能电子秤上所显示的结果如图5所示。

5 结语

本次设计实现了称重器的基本功能,也可在此基础上,通过机器学习等方式进行水果种类的识别与研究,对其进行相应的改进,达到更好的识别效果。电子秤在人们的日常生活中随处可见,它的实际应用很广泛。本次设计是以水果识别为主,也可将其拓展至其他领域。

参考文献

[1]薛帅.基于人体目标检测的家用智能监控系统[D].西安:西安科技大学,2018.

[2]李彪.基于双目立体视觉三维重建技术研究[D].西安:西安科技大学,2018.

[3]王秀伟.银行自助营业厅智能应用解决方案[J].中国公共安全,2017(5):137-138.

[4]程望斌,刘硕卿,王曾盛,等.多功能电子秤的优化设计与实现[J].湖南理工学院学报,2019(3):23-25.

[5]何静,艾利,金闯.智能称重系统的优化设计及应用[J].衡器,2021(7):15-17,25.

[6]杨霈.基于matlab GUI的水果识别系统[J].电子制作,2021(12):38-39.

[7]刘朝辉,王维高.基于TensorFlow的水果识别系统设计[J].电脑知识与技术,2021(3):190-191,203.

(编辑 姚 鑫)

Design and implementation of intelligent fruit recognition weighing system

Yang  Jiangbo, Meng  Xiaoyan*, Xiong  Jiaqi, Ke Yixin, Tang  Huilin

(School of Computer and Information Engineering, Xinjiang Agricultural University, Urumqi 830052, China)

Abstract:  In recent years, the continuous development of computer vision technology has caused an upsurge of artificial intelligence. In order to meet the needs of modern market development, reduce labor costs and improve work efficiency, this design uses the image recognition technology in artificial intelligence, intelligent electronic scales composed of auxiliary cameras, gravity sensors, display screens, voice broadcast and other equipment to realize the recognition of fruit types, automatic weighing and pricing, voice broadcast and display, and solve the shortcomings of traditional fruit electronic scales in weighing and payment methods, It can reduce manpower and make life more intelligent. The smart electronic scale based on Raspberry Pi can be widely used in the life field due to its low cost and easy deployment.

Key words: Raspberry Pi; image identification; weighing sensor

猜你喜欢
树莓派图像识别
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
浅谈模式识别在图像识别中的应用
智能安全防盗探测小车
基于嵌入式技术的农村医疗系统设计
基于多组合内容的图像识别机制