高 渊,景鹏强,刘雨晴,董军堂
(延安大学,陕西 延安 716000)
随着电子技术水平的逐渐提升,电子产品的需求越来越大,电池的生产与使用量也日益增长,电池的应用已经遍及到生活的各个方面。人们在享受科技成果带来的便利时,也同样受到了废旧电池的危害[1]。电池使用后如果未能及时回收处理,会对环境造成极大的污染,为减少废电池对环境造成的危害,本文根据当下机器视觉的研究[2],设计了一种智能废电池回收系统,解决了回收废电池难的问题。
本文设计的智能废电池回收系统主要利用单片机STM32来控制红外检测模块、显示模块、语音播报模块等硬件电路,实现检测废品投入、显示并播报投入废电池的种类和数量的功能;TensorFlow训练树莓派进行机器视觉的深度学习,完成识别废电池的功能,其组成框图如图1所示。
图1 系统主电路框图
本设计采用树莓派4B,其特点是与前代产品相比具有更多更快的RAM,需要一个5 V/3 A的电源适配器进行供电[3]。树莓派由STM32控制,当检测电路检测到有物品投入,主控控制树莓派开启进行机器视觉识别,判断是否是废电池,并将判断结果返回给STM32[4]。
本设计采用STM32F107芯片,标准外设包括十个定时器、两个12位模数转换器和两个12位数模转换器、五个USART接口和三个SPI端口,可以满足本设计的主控需求。
本设计主要通过STM32控制红外检测模块、显示模块和语音播报模块。当检测电路传感器检测到有废品投入时,STM32控制树莓派开启机器视觉识别进行废电池的判断,并将判断结果返回给STM32,STM32通过判断树莓派返回信息控制显示和语音电路,显示并播报电池种类和数量[5]。
检测电路采用电感式传感器和光电耦合器进行红外检测,如图2所示。当传感器检测到有废品投入时,信号通过光电耦合器分离,74LS08驱动后进入STM32进行处理;当传感器检测到系统中废品数量已满时,单片机会控制语音播报模块发声提醒。
图2 检测电路
显示模块采用与STM32配套的TFT-LCD屏幕,主要用来显示本次投入废电池的种类和数量。TFT为薄膜晶体管液晶显示屏,主要的构成包括背光源、导光板、扩散膜、棱镜膜、配向膜、薄膜晶体管等,TFT屏幕的所有像素点都是由薄膜晶体管来驱动,显示色彩鲜艳逼真,生产经济环保[6]。TFT屏幕的组成结构如图3所示。
图3 TFT屏幕
语音模块主要实现播报投入废电池的种类和数量的功能,当检测电路检测到系统中废品数量已满时,语音模块也会进行蜂鸣提醒。
软件部分主要分为STM32控制和树莓派识别两个部分。当检测电路检测到有废品投入时,为提升识别速率,单片机控制树莓派启动,每隔2 s进行一次拍照识别,若识别是0即不是废电池,循环进行废品检测;若识别是1即是5号、7号、扣式电池等一次性干电池;若识别是2即是可充电的铅酸蓄电池、镍氢充电电池、锂离子电池等二次电池,树莓派将数据传给单片机,进而控制显示电路和语音电路显示并播报电池种类和数量。主程序流程如图4所示。
图4 主程序流程
TensorFlow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习、深度神经网络,具有强大的系统通用性,TensorFlow是Python的一个库,但与其他库不同,TensorFlow是一个专门用于表示抽象计算的框架。本设计利用TensorFlow结合其他库完成工作[7]。
本设计通过网络收集和自己拍摄图片组成废旧电池的数据集,选择了目标检测网络的YOLO v3框架[8],YOLO v3引入了RCNN的Anchor框架体系大幅提升map,虽丧失了部分精度,但对于全局信息有较好的表现。目标检测网络可以理解为是在传统神经网络上改进的,其结构如图5所示,主要由输入层、隐藏层、输出层组成。其中隐藏层一般不止一层,主要进行多层次的卷积特征提取。目标检测的具体流程为:采集数据、数据预处理、初步提取数据特征、迁移学习、识别测试。
图5 目标检测网络
智能型废品回收系统主要用来识别和分离废电池,在树莓派识别部分通过摄像头拍照和数据集载入两种方式输入图片,当识别为0,则不是废电池;当识别为1,则是一次性干电池;当识别为2,则是二次电池。单片机STM32部分主要实现了检测电路、显示电路、语音检测电路的功能交互。本设计使得识别时间不超过3 s,可以在大部分垃圾中识别出废电池,且对废电池的识别准确率可以达到90%[9-10],对jpg、png等图片格式都支持。本设计实现了检测废品投入、显示并播报投入废电池的种类和数量的功能,具有转向自由、无人管理等特点。利用该系统在人流量大、电子产品运用多的公共场所回收废品,可以方便高效地回收废电池等可再生的废品资源。