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