陳朝陽 高翔森 孫銘悅 董 巖 李澤宇
(1、北京建筑大學(xué) 測繪與城市空間信息學(xué)院,北京102616 2、北京市建筑遺產(chǎn)精細重構(gòu)與健康檢測重點實驗室,北京102616)
盲道是專門提供給盲人的道路,盲人可通過凹凸不平的盲道,來判斷前方道路情況。但是僅憑盲道的凹凸反饋,在磨損嚴重、盲道缺失的路段,很容易出現(xiàn)盲人迷路的情況容易造成安全隱患。盲人可通過盲杖、導(dǎo)盲犬和智能導(dǎo)盲設(shè)備解決這些問題,但是這些設(shè)備存在不宜攜帶、準(zhǔn)確度低等問題。
為了能夠更好的解決這些問題,幫助盲人出行,提出了許多新穎的方法,比如通過超聲波傳感器、顏色傳感器等。李子康[1]等人設(shè)計了一種借助超聲波與紅外傳感器的障礙物檢測;趙曉軍[2]等人設(shè)計了一種基于GPS 的導(dǎo)盲杖,為盲人的出行保駕護航。但是,這些方法都有其局限性。
本文的實驗平臺為Ubuntu-18.04.4 操作系統(tǒng),使用NVIDIA GeForce GTX 1660 Ti 顯卡,運行內(nèi)存為16GB,實驗環(huán)境完全滿足Yolo V3 算法。在盲道數(shù)據(jù)集的制作上,由于沒有可供選擇的數(shù)據(jù)集,采用自制的方式,在互聯(lián)網(wǎng)采集了1000 張盲道圖片,還采集了1000 張汽車圖片,以及1000 張行人圖片,通過精靈標(biāo)注助手標(biāo)注。其中90%作為訓(xùn)練集,10%作為測試集。
圖1 盲道
圖2 汽車
圖3 行人
在進行模型訓(xùn)練時,可供選擇的框架有Tensorflow 框架、Darknet 框架等,本文選擇使用Darknet 框架對YOLO V3 算法進行訓(xùn)練。Darknet 作為一個開源的輕量型深度學(xué)習(xí)框架,雖然沒有Tensorflow 強大,但是安裝容易,沒有任何依賴項,移植性高,方便操作。
在開始訓(xùn)練前,需要對四個文件進行設(shè)置,分別是detector.c、my_data.data、my_yolov3.cfg 和myData.names。detector.c 文件是Darknet 框架中自帶的YOLO 配置文件,用于訓(xùn)練模型和檢測,可以設(shè)置每迭代多少次后保存一次權(quán)重文件。my_data.data 記錄了訓(xùn)練模型讀取所需數(shù)據(jù)的路徑和記錄標(biāo)注目標(biāo)的名稱的文件路徑,以及斷點續(xù)訓(xùn)的backup 文件的保存路徑。my_yolov3.cfg文件中是有關(guān)卷積網(wǎng)絡(luò)的設(shè)計,以及輸入圖片的batch、學(xué)習(xí)率、最大迭代次數(shù)等設(shè)置,使用者可以通過結(jié)合自己訓(xùn)練的數(shù)據(jù)模型在此文件中修改參數(shù),使得后續(xù)訓(xùn)練出的權(quán)重文件在進行目標(biāo)檢測時有更好的效果。myData.names 文件中記錄了標(biāo)注信息的名字,分別為blind sidewalk、people 和car。
本文基于Darknet 框架來訓(xùn)練Yolo 網(wǎng)絡(luò)模型,首先將batchsize 設(shè)置為32,subdivision 設(shè)置為8,動量參數(shù)設(shè)置為0.9,動量衰減正則項設(shè)置為0.0005,學(xué)習(xí)率為0.001,max_batches(最大迭代次數(shù))為50200。
在訓(xùn)練完成后,利用記錄的loss 值的信息,繪制loss 變化曲線,圖4 記錄了模型訓(xùn)練時loss 值的變化情況。
圖4 loss 曲線
圖4 中的縱坐標(biāo)表示模型訓(xùn)練時的損失值(loss),橫坐標(biāo)表示模型進行的迭代次數(shù)。從圖中可以看到訓(xùn)練開始時loss 值下降的比較迅速,當(dāng)?shù)?0000 次時,loss 值下降的速度就比較緩慢了;當(dāng)?shù)竭_17000 次左右,loss 值曲線趨于平緩并上下輕微波動;當(dāng)達到20000 次后模型loss 值收斂于0.1,最終結(jié)束本次訓(xùn)練。在模型訓(xùn)練完成后,利用測試集進行了模型對盲道、行人、汽車三類目標(biāo)識別的準(zhǔn)確率以及召回率的測試。測試結(jié)果如圖5。
圖5 召回率測試
圖5 中的縱坐標(biāo)為精確率(Precision),表示預(yù)測的正樣本的正確率;橫坐標(biāo)為召回率(Recall),表示正樣本預(yù)測的正確率。平均準(zhǔn)確率(AP)是從準(zhǔn)確率與召回率這兩個角度去權(quán)衡檢測模型的準(zhǔn)確性,是模型準(zhǔn)確性的檢測的直接評價標(biāo)準(zhǔn),也可以進行分析模型對單個類別的檢測效果。從圖中可以直接看出模型在測試集中對各目標(biāo)檢測的準(zhǔn)確度,盲道檢測準(zhǔn)確性達到了87.46%,汽車檢測的準(zhǔn)確性達到了77.47%,行人檢測的準(zhǔn)確性達到了97.63%。通過對模型每一類目標(biāo)識別的AP,又計算了mAP 即對每類的平均準(zhǔn)確率再取平均值,圖6 為模型對目標(biāo)檢測的準(zhǔn)確率。
圖6 mAP 準(zhǔn)確率
縱坐標(biāo)表示該模型檢測的三類目標(biāo),橫坐標(biāo)表示平均準(zhǔn)確率,由圖中可以看出該模型對行人檢測的準(zhǔn)確率最高達到了98%,其次就是對盲道檢測的準(zhǔn)確率達到了87%,最后是對汽車檢測的準(zhǔn)確率達到77%。
傳統(tǒng)的盲道識別方法存在成本高、速度慢、精度低等問題。本文提出使用YoloV3 算法,對盲道進行識別,制作了盲道數(shù)據(jù)集,使用Darknet 框架訓(xùn)練了檢測模型,訓(xùn)練的模型對盲道的識別準(zhǔn)確率達到了87.46%,滿足對盲道的檢測需求,為視覺障礙者出行導(dǎo)航提供了新的思路。