高 淵,景鵬強,劉雨晴,董軍堂
(延安大學,陜西 延安 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等圖片格式都支持。本設計實現了檢測廢品投入、顯示并播報投入廢電池的種類和數量的功能,具有轉向自由、無人管理等特點。利用該系統在人流量大、電子產品運用多的公共場所回收廢品,可以方便高效地回收廢電池等可再生的廢品資源。