摘 要:為解決中國視障人群出行困難的問題,設(shè)計(jì)了一種基于Jetson Nano的智能輔助導(dǎo)盲裝置,使視障人群能夠安全出行。采用攝像頭幫助視障人群探測周圍環(huán)境,將Jetson Nano作為主控板,通過視覺算法將攝像頭捕捉的畫面信息提取后,結(jié)合TFmini Plus激光測距雷達(dá)對視障人群前方物體進(jìn)行測距,視覺算法采用基于CNN卷積神經(jīng)網(wǎng)絡(luò)的YOLOv4目標(biāo)檢測算法,語音轉(zhuǎn)化模塊采用科大訊飛出品的六麥克風(fēng)陣列模塊。當(dāng)物體靠近視障人群前方一定距離時(shí),智能輔助導(dǎo)盲裝置會將攝像頭識別到的物體名稱通過語音形式反饋給視障人群。設(shè)計(jì)的智能輔助導(dǎo)盲裝置可以實(shí)現(xiàn)對周圍環(huán)境的實(shí)時(shí)檢測和識別,對常見的物體如車輛等都能夠準(zhǔn)確識別,提醒視障人士及時(shí)避讓,有效提高他們的出行安全。該裝置還有很大的發(fā)展空間和應(yīng)用前景,可以進(jìn)一步完善其功能,為更多視障人士服務(wù)。
關(guān)鍵詞:YOLOv4算法;目標(biāo)檢測算法;圖像識別;CNN卷積神經(jīng)網(wǎng)絡(luò);TOF激光測距雷達(dá);語音轉(zhuǎn)換模塊;Jetson Nano
中圖分類號:TP23;TB472 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2024)10-00-03
0 引 言
由于普通的嵌入式控制板無法滿足對智能導(dǎo)盲裝置功能的開發(fā)需求,因此,本文采用了由NVIDIA公司推出的邊緣型AI計(jì)算機(jī),該主控板成本低且功能強(qiáng)大,搭配基于Linux的Ubuntu操作系統(tǒng),具有很強(qiáng)的可塑性。該裝置的攝像頭利用機(jī)器視覺避障,采用基于卷積神經(jīng)網(wǎng)絡(luò)[1]的YOLO系列目標(biāo)檢測算法處理相關(guān)數(shù)據(jù)[2]??紤]到Jetson Nano的嵌入式平臺算力有限,比較了眾多目標(biāo)檢測算法模型后,選用了既兼顧準(zhǔn)確性又兼顧速度的YOLOv4輕量化模型—YOLOv4-tiny。由于攝像頭的可視范圍較大,本文選用TFmini Plus激光雷達(dá)對前方物體進(jìn)行掃描,當(dāng)攝像頭捕捉到物體且物體與視障人群存在一定距離時(shí)會觸發(fā)警報(bào)。同時(shí),結(jié)合訊飛科技公司的語音播報(bào)模塊,可以將視障人群前方的物體名稱通過語音反饋給視障人群。當(dāng)視障人群與障礙物距離過近時(shí),激光雷達(dá)檢測后迅速反饋,通過振動或蜂鳴器鳴響報(bào)警。本文裝置主體部分通過腰帶固定在腰部,其攝像頭安裝在衣領(lǐng)或墨鏡上進(jìn)行探測,視障人群無需手持該裝置即可使用。智能導(dǎo)盲裝置原理如圖1所示。
1 采用YOLOv4-tiny算法進(jìn)行實(shí)時(shí)監(jiān)測和圖像識別
1.1 YOLOv4-tiny算法簡介
YOLOv4-tiny是YOLOv4的精簡版,屬于輕量化模型,參數(shù)只有600萬,相當(dāng)于原模型的1/10,因此檢測速度得到大幅提升。網(wǎng)絡(luò)共有38層,使用了3個(gè)殘差單元,激活函數(shù)選用LeakyReLU[3],還使用2個(gè)特征層實(shí)現(xiàn)了目標(biāo)的分類與回歸,利用特征金字塔(FPN)網(wǎng)絡(luò)合并了有效特征層[4]。系統(tǒng)通過CSPnet對特征提取網(wǎng)絡(luò)進(jìn)行了通道分割,將經(jīng)過3×3卷積后輸出的特征層通道劃分為2部分[5]。
YOLOv4-tiny結(jié)構(gòu)如圖2所示。
1.2 用TensorRT[6]加速YOLOv4-tiny網(wǎng)絡(luò)模型
由于Jetson Nano的算力有限,部署于Jetson Nano的YOLOv4-tiny算法在進(jìn)行實(shí)時(shí)監(jiān)測時(shí)幀率較低。當(dāng)視障人群走動時(shí),實(shí)時(shí)監(jiān)測畫面處于動態(tài)變化過程中,若實(shí)時(shí)監(jiān)測畫面的更新速率過低,會使攝像頭捕捉物體的效果大打折扣。為了提升實(shí)時(shí)監(jiān)測的幀率,本文選用TensorRT對YOLOv4-tiny算法進(jìn)行優(yōu)化。TensorRT是NVIDIA針對自身平臺推出的加速包,TensorRT在訓(xùn)練了神經(jīng)網(wǎng)絡(luò)之后,可以對網(wǎng)絡(luò)進(jìn)行壓縮、優(yōu)化等操作,并且無其他(框架等)開銷。
操作方法:在Ubuntu18.04中下載TensorRT工程代碼,將訓(xùn)練好的YOLOv4-tiny權(quán)重文件放在./tensorrt_demos/yolo/文件夾下,在plugins文件夾中打開終端,輸入Make指令進(jìn)行編譯,在yolo文件夾目錄下輸入Python3 yolo_to_onnx.py-權(quán)重文件名稱,YOLOv4_tiny執(zhí)行腳本把.weights文件轉(zhuǎn)化為.onnx文件即可。
實(shí)驗(yàn)證明,用TensorRT加速優(yōu)化后的實(shí)時(shí)監(jiān)測幀率是未優(yōu)化幀率的2~3倍。
未用TensorRT優(yōu)化的監(jiān)測幀率如圖3所示。
用TensorRT優(yōu)化后的監(jiān)測幀率如圖4所示。
1.3 使用DarkNet框架和YOLOv4-tiny訓(xùn)練數(shù)據(jù)集
目前,大部分多目標(biāo)數(shù)據(jù)集完全可以滿足視障人群周圍環(huán)境的目標(biāo)檢測任務(wù),如果視障人群所處環(huán)境特殊,本文可以進(jìn)行自定義數(shù)據(jù)集訓(xùn)練。
DarkNet框架[7-8]的優(yōu)點(diǎn)是易于安裝、無依賴項(xiàng),可以方便地訓(xùn)練YOLOv3、YOLOv4、YOLOv3-tiny、YOLOv4-tiny[9]等網(wǎng)絡(luò)。
具體操作如下:
(1)下載DarkNet框架,配置Makefile文件,使用gedit makefile打開Makefile文件修改參數(shù)(圖5);
(2)編譯Makefile文件,生成可執(zhí)行的DarkNet文件夾,通過LableImage標(biāo)注工具給每張需要識別的物體照片加以標(biāo)記,所產(chǎn)生的目標(biāo)信息儲存于相對應(yīng)的XML文檔。
本文使用的是Pascal VOC格式的數(shù)據(jù)集[10],訓(xùn)練流程如圖6所示。
2 TFmini Plus激光雷達(dá)
2.1 TFmini Plus簡介
TFmini基于TOF設(shè)計(jì)而成。產(chǎn)品周期性地向外發(fā)出近紅外光調(diào)制波,調(diào)制波遇障礙物后反射。產(chǎn)品通過測量調(diào)制波往返相位差,得到飛行時(shí)間,計(jì)算出產(chǎn)品與被測目標(biāo)之間的距離。
2.2 TFmini Plus激光雷達(dá)在Linux系統(tǒng)(Ubuntu)上的部署
使用TTL轉(zhuǎn)USB轉(zhuǎn)接板將雷達(dá)連接在Jetson Nano的USB端口。本文在Ubuntu系統(tǒng)上通過Python編寫程序讀取并處理雷達(dá)數(shù)據(jù):
(1)配置Python環(huán)境,選用Ubuntu 18.04自帶的Python 3.6.9實(shí)現(xiàn)編程[11];
(2)安裝Python相關(guān)庫,通過PyCharm編譯軟件讀取雷達(dá)數(shù)據(jù),并將其轉(zhuǎn)化為距離。
Python腳本運(yùn)行結(jié)果如圖7所示。
3 科大訊飛語音合成模塊
3.1 語音合成技術(shù)簡介
語音合成(Text to Speech, TTS)技術(shù)[12-13]可自動將任意文字實(shí)時(shí)轉(zhuǎn)換為連續(xù)的自然語音,能夠在任何時(shí)間、地點(diǎn),向任何人提供語音信息服務(wù),非常符合信息時(shí)代海量數(shù)據(jù)、動態(tài)更新和個(gè)性化查詢的需求。
3.2 利用科大訊飛語音模塊進(jìn)行語音合成
文本轉(zhuǎn)語音實(shí)現(xiàn)界面如圖8所示。
生成合適的語音后,將語音文本添加到tensorrt_demos文件夾中,并在其中找到名為visualization.py的Python程序,在程序中添加TFmini激光雷達(dá)的測距函數(shù),并生成一個(gè)名為distance的變量用來表示雷達(dá)的探測距離,再在程序中找到PlaySound函數(shù)和visualization程序中名為BBoxVisualization的類,在里面找到cls_name變量。該變量用來存放識別物體后顯示的物體名稱,通過if等邏輯分支語句將cls_name變量、distance變量與語音文本連接起來,當(dāng)攝像頭捕捉到位于前方一定距離的物體時(shí),則執(zhí)行語音文本,通過麥克風(fēng)或耳機(jī)播報(bào)前方物體的具體名稱。
4 結(jié) 語
本文設(shè)計(jì)的基于Jetson Nano的智能輔助導(dǎo)盲裝置結(jié)合人工智能領(lǐng)域的兩大特色—視覺算法以及語音合成,同時(shí)本文又添加了激光雷達(dá)來輔助視覺算法,使裝置的準(zhǔn)確性大幅提升。同時(shí),語音模塊的加入也使該裝置相較于傳統(tǒng)導(dǎo)盲設(shè)備更加人性化。為了使裝置能更好地服務(wù)視障人群,本文正在為裝置研發(fā)路徑規(guī)劃功能[14-15],通過語音告知視障人群該如何前往目的地。后續(xù)還將添加語音互動功能,自動播報(bào)當(dāng)天天氣以及出門注意事項(xiàng)等,并開發(fā)相應(yīng)的APP使該裝置的操作更加便捷。
注:本文通訊作者為朱。
參考文獻(xiàn)
[1]曹敏.基于深度學(xué)習(xí)的遙感圖像識別技術(shù)應(yīng)用研究—評《基于深度神經(jīng)網(wǎng)絡(luò)的遙感圖像分割》[J].有色金屬工程,2021,11(12):132.
[2]王琳毅,白靜,李文靜,等. YOLO系列目標(biāo)檢測算法研究進(jìn)展[J/OL].計(jì)算機(jī)工程與應(yīng)用:1-17 [2023-06-28]. http://kns.cnki.net/kcms/detail/11.2127.tp.20230506.1523.014.html
[3]李海洲,徐秉錚.循環(huán)神經(jīng)網(wǎng)絡(luò)的語音識別算法[J].通信學(xué)報(bào),1992,13(5):76-79.
[4]張軒,王曉峰,張文尉,等.面向目標(biāo)檢測的尺度增強(qiáng)特征金字塔網(wǎng)絡(luò)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2023,32(1):127-134.
[5] TONG K,WU Y Q. Rethinking PASCAL-VOC and MS-COCO dataset for small object detection [J]. Journal of visual communication and image representation,2023,93.
[6]楊肖,袁銳波,李兆旭,等.改進(jìn)YOLOv4的蠶豆苗檢測算法及TensorRT加速[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2023,37(3):312-320.
[7]林海,龐妙珍,劉天成.基于改進(jìn)DarkNet網(wǎng)絡(luò)的輕量型車型識別方法[J].現(xiàn)代計(jì)算機(jī),2021,27(24):100-104.
[8]程陽,黃靈湛,陳立,等.基于改進(jìn)DarkNet框架的YOLO安全帽檢測模型[J].機(jī)器人技術(shù)與應(yīng)用,2022,35(1):29-34.
[9]何湘杰,宋曉寧.YOLOv4-Tiny的改進(jìn)輕量級目標(biāo)檢測算法[J/OL].計(jì)算機(jī)科學(xué)與探索:1-17 [2023-05-14]. http://kns.cnki.net/kcms/detail/11.5602.TP.20230310.0947.004.html
[10]李惜彤.基于深度學(xué)習(xí)的試卷錯號提取算法研究[D].西安:西安電子科技大學(xué),2021.
[11]李兵.基于Ubuntu 18.04版本的網(wǎng)絡(luò)配置及軟件源本地化研究[J].電子測試,2018,41(15):83.
[12]李乃寒.面向語音合成的深度學(xué)習(xí)算法研究與應(yīng)用[D].成都:電子科技大學(xué),2021.
[13]王智,劉銀華.基于深度學(xué)習(xí)的中文情感語音合成方法[J].自動化與儀器儀表,2022,42(9):10-15.
[14]宋鑫鵬,趙倩.基于ROS和SLAM的無人消殺機(jī)器人系統(tǒng)設(shè)計(jì)[J].自動化儀表,2023,44(1):61-65.
[15]薛光輝,李瑞雪,張鉦昊,等.基于3D激光雷達(dá)的SLAM算法研究現(xiàn)狀與發(fā)展趨勢[J].信息與控制,2023,52(1):18-36.
物聯(lián)網(wǎng)技術(shù)2024年10期