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