常財超 王穎



摘要:隨著信息技術(shù)的快速發(fā)展,傳統(tǒng)冶金和礦山企業(yè)正大力推動產(chǎn)業(yè)的智能化轉(zhuǎn)型。為提高機車行駛時 的安全性、增強輔助駕駛員對機車狀態(tài)的把握和提高企業(yè)運輸經(jīng)濟效益,開發(fā)出一種性能優(yōu)良、反應(yīng)信息 全面并且反饋速度快的機車安全輔助駕駛系統(tǒng)。該系統(tǒng)以 STM32F103ZET6 為核心處理器,通過串口與語 音報警、全球?qū)Ш叫l(wèi)星系統(tǒng)(global navigation satellite system,GNSS)定位裝置靈活結(jié)合,利用串口屏設(shè)置 系統(tǒng)頁面,全面反映行駛中的信息。將 RailSem19 數(shù)據(jù)集劃分為訓(xùn)練集和測試集,進行圖片標注,在基于 Tensorflow 框架的 YOLOv3 模型下進行遷移學習,并部署到邊緣計算芯片 K210 上,對軌道附近的行人和障 礙物進行識別。
關(guān)鍵詞:輔助駕駛;YOLOv3;目標檢測
中圖分類號:TP277;U463.6文獻標識碼:A
0 引言
隨著智能制造理念的興起,大型冶金企業(yè)紛紛 加大數(shù)字化、信息化、智能化的轉(zhuǎn)型升級力度,將 數(shù)字化技術(shù)引入有軌運輸線機車無人駕駛領(lǐng)域,這 是企業(yè)發(fā)展的必然趨勢。定位系統(tǒng)和圖像信息處理 是當下研究的熱點 [1]。安全防護系統(tǒng)是實現(xiàn)無人化 現(xiàn)代生產(chǎn)中至關(guān)重要的一環(huán)。傳統(tǒng)有軌機車在生產(chǎn) 過程中,往往存在以下問題。
(1)在機車行駛過程中,一方面,因線路固定 和速度緩慢,駕駛員易產(chǎn)生懈怠;另一方面,為了 提高企業(yè)的生產(chǎn)效率,駕駛員往往會出現(xiàn)超速行為。 超速行為違反了安全生產(chǎn)的規(guī)范,易引發(fā)罐裝鋼水 傾瀉等安全事故,造成大量經(jīng)濟損失甚至人員傷亡。
(2)運輸物料的機車體型龐大,存在很大的視 覺盲區(qū),同時工業(yè)園區(qū)內(nèi)往往環(huán)境嘈雜,駕駛員難 以準確地把握駕駛狀況,在高速行駛中,難以及時 做出躲避道路行人和避開障礙物的判斷,存在較大 的安全隱患。 因此,一種性能優(yōu)良、反應(yīng)信息全面并且反饋 速度快的機車輔助駕駛系統(tǒng)亟待研究。
1 研究現(xiàn)狀
通過分析當前安全輔助駕駛的情況,發(fā)現(xiàn)問題 主要集中在安置外部電子圍欄 [2],以及機車上裝載 的光電報警裝置 [3]。但是電子圍欄的設(shè)置不僅增加 了成本,還難以應(yīng)對突發(fā)狀況。而光電報警裝置檢 測范圍有限且精度低,無法對駕駛員進行有效預(yù)警。
2 系統(tǒng)總體方案與功能
為解決以上現(xiàn)有難題,滿足工業(yè)園區(qū)運輸物料 任務(wù)要求,符合現(xiàn)場工作環(huán)境的約束條件,本文設(shè) 計了一種機車的綜合信息采集和檢測系統(tǒng),系統(tǒng)結(jié) 構(gòu)示意圖如圖 1 所示,具體內(nèi)容包括以下 4 點。
(1)運用霍爾速度傳感器和北斗衛(wèi)星數(shù)據(jù)融合 的方式,實現(xiàn)機車在不同工作環(huán)境下的速度測量。
(2)可調(diào)節(jié)的速度閾值,當高于設(shè)定速度時, 語音模塊報警,提醒駕駛員減速。
(3)全方位的視覺感知,在機車行駛的盲區(qū)安 裝攝像頭,運行神經(jīng)網(wǎng)絡(luò),檢測到行人和軌道上的 障礙物后,立即報警,讓駕駛員準確把握行駛狀態(tài)。
(4)豐富的人機交互功能,行駛狀態(tài)的實時信 息包括機車實時速度、北斗衛(wèi)星校準的時間和攝像 頭處理的圖像信息,同步顯示在屏幕上,共同構(gòu)成 輔助安全系統(tǒng)。
該嵌入式系統(tǒng)可提高行駛機車的安全性,有利 于駕駛員對機車狀態(tài)進行完全把握,提高了企業(yè)運 輸經(jīng)濟效益。
3 硬件系統(tǒng)設(shè)計
本輔助安全駕駛系統(tǒng)硬件部分包括 STM32F103ZET6 主控芯片、速度處理裝置、全球 導(dǎo) 航 衛(wèi) 星 系 統(tǒng)(global navigation satellite system, GNSS)定位模塊、語音報警和周邊環(huán)境的圖像處 理裝置。
主控芯片負責計算處理測速傳感器的數(shù)據(jù),與 北斗衛(wèi)星信號進行融合。同時通過集成電路總線 (inter-integrated circuit,IIC)協(xié)議與圖像處理裝置 進行通信,控制報警裝置報警,最后把圖像和速度 顯示在屏幕上,實現(xiàn)智能輔助安全駕駛系統(tǒng)。
3.1 STM32 核心處理器
該系統(tǒng)的主控芯片是基于 ARM Cortex-M3 內(nèi) 核和 ARMv7 架構(gòu)的 32 位單片機,具有 72 MHz 的 工作頻率和多達 144 針的引腳。利用芯片上的多 種通信接口,串行外圍設(shè)備接口(serial peripheral interface,SPI)、 IIC 和通用同步 / 異步串行接 收 / 發(fā) 送 器(universal synchronous/asynchronous receiver/transmitter,USART)等協(xié)議被用于微控制 器與其他外設(shè)之間的通信和控制。
3.2 TTS 語音模塊應(yīng)用
語音報警裝置使用的芯片是 SNY6288,該從文 本到語音(text to speech,TTS)芯片可實現(xiàn)中文、 英文語音合成,可以識別 GB2312 和 Unicode 等編 碼體系,接受配置芯片功能的指令和文本打包的幀 命令,單幀命令包含的最大文本可達 200 個字節(jié)。 當機車超速或者檢測到周圍有行人等危險 狀況時,上位機通過通用異步收發(fā)器(universal asynchronous receiver/transmitter,UART)將幀命令 發(fā)送給語音模塊來合成語音,等待芯片回傳 0X4F, 完成處理。
3.3 速度檢測裝置
根據(jù)企業(yè)運輸部門的需求和現(xiàn)場環(huán)境的影響, 本文選擇北斗衛(wèi)星信號和接觸式測速傳感器數(shù)據(jù)融 合的方式進行測速。為得到線速度,通常采用更容 易轉(zhuǎn)化為電量的角速度的脈沖數(shù)字式傳感器。該方 式還選用帶有齒輪的霍爾磁編碼器,齒輪轉(zhuǎn)動傳遞 運動信息,每轉(zhuǎn)一圈脈沖為 1 024 線,通過單片機 捕獲脈沖信號,計算得到機車發(fā)動機和車輪軸不同位置的速度信息。衛(wèi)星信號是一種非接觸式的測速 方式,計算得到機車在工作空間的速度 [4],速度精 度可達到 0.1 m/s 之內(nèi),通過串口的方式,讀取衛(wèi)星 返回的信息。由于機車工作狀況多樣,單純的一種 速度檢測存在偏差,故采用卡爾曼濾波的方式,單 片機可將兩種速度信息進行融合,得到最優(yōu)速度。
3.4 圖像處理裝置
本系統(tǒng)采用的視覺處理單元是 K210,其具有 強大的模型推理能力,算力可以達到 1 TOPS,具 有浮點處理單元(floating point unit,F(xiàn)PU)等硬 件加速單元,可以對神經(jīng)網(wǎng)絡(luò)算子進行加速。當系 統(tǒng)進行實時檢測時,可以消除視覺盲區(qū),檢測行人 和軌道上的障礙物,對周圍環(huán)境存在的風險進行識 別,并進行報警。
4 軟件系統(tǒng)設(shè)計
4.1 系統(tǒng)軟件流程
系統(tǒng)程序流程如圖 2 所示。系統(tǒng)首先進行初始 化,完成各個外設(shè)的基礎(chǔ)配置,定時器捕獲來自霍 爾編碼器的脈沖,并對 A、B 兩相信號進行區(qū)分, 判斷正反轉(zhuǎn),根據(jù)圈數(shù)得到行駛速度。通過串口得 到北斗衛(wèi)星數(shù)據(jù),解析 RMC 報文(NMEA-0183 協(xié) 議的一種報文類型),獲取速度和時間信息。結(jié)合 兩個方面的數(shù)據(jù),判斷機車是否超速。K210 負責 加載模型,對攝像頭采集的圖像進行推理,將行人 和障礙物的信息通過串口返回給單片機。單片機綜 合處理完信息后,一方面把數(shù)據(jù)發(fā)送給串口屏,方 便駕駛員查看;另一方面把字符串和命令打包成 幀,然后以十六進制的形式發(fā)送給 TTS,等待返回 0X4F 表示發(fā)送成功,進行語音報警。
4.2 目標檢測算法和數(shù)據(jù)集處理
目標檢測算法在工業(yè)上常常被用來處理運動中 的物體,得出物體的類別和位置。YOLO 算法的全 稱是 You Only Look Once,這是一種實時目標檢測 算法。與基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(region-based convolutional neural networks,R-CNN)算法相比, YOLO 算法能利用整個圖像的信息,依賴單一網(wǎng)絡(luò) 完成目標檢測任務(wù),因此具有更高的速度 [5]。
結(jié)合使用到的硬件平臺和任務(wù)要求,本文 使用的算法是 YOLOv3,并把主干提取網(wǎng)絡(luò)從 Darknet-53 替換為更加輕量級的 MobileNetv2,減 少了使用的參數(shù)量和占用的內(nèi)存。
RailSem19 是一個在實際場景中遇到的行人和 軌道上的障礙物的語義分割數(shù)據(jù)集,包含行人、軌 道、火車等 19 個類別,共 8 500 張圖片。數(shù)據(jù)集內(nèi) 保存有灰度圖形式的標注圖片,根據(jù)像素值大小對 應(yīng)所屬類別(表 1),如代表行人輪廓的像素值為 11。使用 OpenCV 庫對標注圖片進行篩選,確定最 小輪廓面積為 1 000 像素,找出符合條件的圖片, 并進一步將輪廓信息轉(zhuǎn)為 YOLO 格式的標注數(shù)據(jù)。 為方便數(shù)據(jù)的讀取,以 VOC 數(shù)據(jù)集(一種目標檢 測的數(shù)據(jù)集格式)的格式來存放。
4.3 模型的訓(xùn)練和加載
為方便在嵌入式設(shè)備上進行部署,實驗選擇 TensorFlow+Keras 為平臺,導(dǎo)出 tflite 模型,并采用 開源的 K210_Yolo_framework 作為系統(tǒng)框架。由于 使用了預(yù)訓(xùn)練模型并且 YOLO 算法要求尺寸必須被 32 整除,因此設(shè)置模型輸入為 320×224,模型輸出 結(jié)果是兩個不同尺度的特征圖。
錨點是 YOLO 算法的重要內(nèi)容,可以幫助模 型預(yù)測物體的位置和大小。其通常通過統(tǒng)計的方 法獲得,使用 k 均值聚類算法(k-means clustering algorithm)將聚類中心作為錨點 [6],錨點分布如 圖 3 所示。
得到 tflite 文件后,經(jīng)過推理后得到圖 4,框 出目標位置和種類。為了在嵌入式平臺部署,使用 nncase 推理工具將其轉(zhuǎn)化為 Kmodel 模型文件,并 轉(zhuǎn)移到 K210 內(nèi)存中進行加載。
5 系統(tǒng)測試與優(yōu)化
基于以上功能,設(shè)置串口屏系統(tǒng)界面(圖 5),界 面信息包括衛(wèi)星校準的時間信息、限定的速度值和當 前的速度值、圖像處理檢測到的行人和障礙物信息等。
6 結(jié)語
該嵌入式系統(tǒng)以 STM32 單片機為核心,結(jié)合 了圖像采集及智能處理、衛(wèi)星定位、TTS 等技術(shù)。 神經(jīng)網(wǎng)絡(luò)使用 YOLOv3 算法,在行人檢測方面具有 良好的精度。駕駛員可以利用串口屏與各個部分進 行交互,從而實現(xiàn)安全輔助駕駛系統(tǒng)。
參考文獻
[1] 王瑞,姜正,陳廣泰,等 . HXD2 機車輔助駕駛?cè)藱C 交互單元設(shè)計及應(yīng)用 [J]. 鐵道機車車輛,2023,43 (3):79-85.
[2] 石曉林 . 電子圍欄安全防護系統(tǒng)在焦爐機車無人化中的 應(yīng)用 [J]. 冶金自動化,2023,47(增刊 1):258-262.
[3] 孫家林,鄧武勇,郝明智,等 . HXN3 型內(nèi)燃機車無 人警惕冗余聲光報警裝置設(shè)計 [J]. 鐵道機車與動車, 2023(11):34-36,6.
[4] 劉天琦,張浩,焦名 . 結(jié)合測速測距的衛(wèi)星定位法 研究 [J]. 鐵路通信信號工程技術(shù),2022,19(3): 17-20,43.
[5] 邵延華,張鐸,楚紅雨,等 . 基于深度學習的 YOLO 目標檢測綜述 [J]. 電子與信息學報,2022,44(10): 3697-3708.
[6] 陳科峻,張葉 . 基于 YOLO-v3 模型壓縮的衛(wèi)星圖 像船只實時檢測 [J]. 液晶與顯示,2020,35(11): 1168-1176.