打印
[FPGA]

参赛作品分享-基于PYNQ的智能垃圾分类箱

[复制链接]
795|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1.系统组成及功能说明 /System Construction & Function Description
系统介绍

图1 系统流程图
本系统主要由 Xilinx Zynq-7000 系列的 PYNQ-Z2 开发板作为主控中心,主要包含:摄像头采集模块、图像处理模块、实时显示模块、实时数据采集模块、信息提醒发送模块、驱动控制模块组成。总体结构如图1 所示。
流程图讲解:
主控 PYNQ 开发板主要为提供神经网络的加速识别,搭载 USB 的网络摄像头进行数据的采集和功能参数的显示,同时在这个 ARM+FPGA 平台,为了最大化主控板优势,我们针对软件算法进行了相应的硬件实现进行提速,解决了在有限的资源内实现了资源利用和效率的最大化,同时在 PYNQ 端,为了保证产品的功能完整性,设计了两种识别
模式,图像识别模式和语音识别模式。待识别完成后,我们将通过设置的通信协议进行数据的传输,使得辅助开发板可以进行自动投递。
辅助开发板主要对各种传感器进行数据采集、数据分析、数据处理、控制设备的驱动、以及串口通信,实现不同开发板之间信息传输。接收所识别垃圾的信息,控制数字舵机的转动,将垃圾投入相应垃圾桶内。通过 FPGA 开发板将温度传感器测得的垃圾桶内温度值、超声波测得的桶内垃圾含量、是否存在有害气体、是否检测到火焰等数据经过处理发送给显示模块,最终在显示终端显示摄像头采集得到的照片、垃圾桶内温度、桶内垃圾含量、系统目前状态等数据。当检测到火焰,有害气体以及满桶警告时,将通过短信模块给管理员发送短信提醒。
垃圾桶内部空间大,外部结构稳定,设置安全提示和自我保护功能,超声波和红外传感器实现智能检测桶内环境,遇到特殊情况,系统将自动发送信息至管理员进行相应的处理。
实现功能

图2实物完成图
本系统由摄像头模块、显示器模块、语音识别和语音播报模块、电机驱动模块、传感器等共同组成。具有摄像头拍照识别垃圾种类、实时检测温度、火焰、有害气体、垃圾含量多少、满桶警告、特殊情况短信提醒、语音播报、语音识别以及屏幕实时显示等功能,同时附加了语音识别和语音播报功能增加识别的准确率。市民将垃圾投入到垃圾桶后,桶内的摄像头会对垃圾进行拍照,通过数据库对比识别垃圾的种类,判定结果通过开发板回传至垃圾桶,控制舵机转动隔板完成分类。
可实现功能:(1)在图像识别模式下,可以对可回收垃圾进行二次分类回收利用,可识别塑料、金属、玻璃、硬纸板、废纸并进行分类;(2)在语音识别模式下,可以直接对一些生活中常见垃圾进行可回收垃、厨余垃分类圾、其他垃圾、有害垃圾四种分类,投入相应垃圾桶内。
目前,两个功能均已实现且可以随意切换使用,各模块之间依功能连接。
传感器采集得到的数据经过处理之后发送给显示器模块,在串口屏显示终端显示垃圾桶内垃圾含量、系统安全性以及传感器实时监控环境数据。
两种垃圾识别模式:语音识别模式和图像识别模式(1)使用图像识别,可以对可回收垃圾进行二次识别;(2)使用语音识别模式,可以直接对一些生活中常见垃圾进行可回收垃、厨余垃圾、其他垃圾、有害垃圾四种识别。
将传感器检测一氧化碳、火焰传感器、红外温度的数据经过分析过后作是否开启的报警提示信号。
系统还可以根据垃圾桶内垃圾的含量、是否出现火焰、存在有害气体等,通过短信发送给管理员进行及时处理。
实现原理
本项目的核心是在ARM9端实现神经网络,其中可以有两种办法,一种是装TensorFlow的lite版本,但是对于高级的网络结构来说相对速度较慢,另外一种是使用赛灵思的ZYNQ的优势,进行把神经网络进行硬件化实现,我们的项目正是采用的这种。我们将卷积和池化的运算单元进行封装,在vivado 的Black Design中进行部署,部署完成后,即可在PYNQ上进行调用。
关键技术
在使用 PYNQ 核心板作为主要处理器处理数据时,使用 hls 对卷积和池化层的硬件电路设计,实现了 cnn 卷积神经网络在 pynq 的复现。
对于已经训练的垃圾进行识别其准确率可达 90%以上。
增加了语音识别和图像识别两种模式,两种操作随意切换,适用于不同场景,对应相同的功能,增加识别精准度。
增加自启动功能。
使用硬件加速,提高了识别速度。
增加卷积和池化的硬件电路设计,增强网络实现的效率。
增加传感器进行环境监测,数据实时显示,保证出现异常情况进行报警,数据及时反馈给管理员。
利用摄像头采集垃圾的图像后 PYNQ 使用在 PC 端训练并保存的神经网络在该数据集下的权值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝