張遠(yuǎn)學(xué),陶青川,王維
(四川大學(xué)電子信息學(xué)院,成都 610065)
近些年來(lái),河流等場(chǎng)景下的智能視頻監(jiān)控在防止水災(zāi)、保護(hù)水資源、捕獲異常行為等方面發(fā)揮著重要作用[1],基于視頻圖像的垂釣的行為檢測(cè)能夠有效地避免因不文明、違規(guī)的垂釣行為引起的環(huán)境污染以及存在的安全隱患,在河長(zhǎng)制全面推行過(guò)程中具有巨大的應(yīng)用價(jià)值。
隨著人工智能技術(shù)的快速發(fā)展,目前實(shí)現(xiàn)本文提出的檢測(cè)非法垂釣檢測(cè)功能常見(jiàn)方法有兩種,其一為直接收集市面上各類魚竿的圖片樣本,通過(guò)深度學(xué)習(xí)的方法直接對(duì)樣本訓(xùn)練生成模型文件,然后利用我們的深度學(xué)習(xí)框架(TensorFlow、Caffe、PyTorch...)加載訓(xùn)練好的模型來(lái)實(shí)現(xiàn)對(duì)實(shí)時(shí)視頻流圖像中的釣竿識(shí)別從而判斷是否有垂釣事件發(fā)生;其二為直接對(duì)視頻流圖像進(jìn)行直線檢測(cè)從而判斷是否有垂釣事件發(fā)生。但是這兩類方法都存在各自的問(wèn)題,方法一中由于攝像機(jī)拍攝的戶外視頻場(chǎng)景通常比較開(kāi)闊,我們的魚竿在視頻圖像中更是比較細(xì)小,直接利用深度學(xué)習(xí)方法對(duì)釣竿等細(xì)小目標(biāo)的檢測(cè)的話效果往往不理想,另外目前國(guó)內(nèi)外還沒(méi)有人或單位發(fā)表過(guò)類似的檢測(cè)算法,市面上并不能找到魚竿的樣本,自己制作魚竿樣本的話會(huì)花費(fèi)大量的人力物力,故直接采用深度學(xué)習(xí)的方法是行不通的。在方法二中,采用傳統(tǒng)機(jī)器學(xué)習(xí)的方法直接檢測(cè)視頻流中直線的話會(huì)存在兩個(gè)嚴(yán)重缺陷,第一個(gè)缺陷為,由于監(jiān)控視頻的分辨率一般比較大(1280×720或更大的分辨率),而現(xiàn)有的邊緣檢測(cè)算法都比較耗時(shí),故在實(shí)時(shí)視頻監(jiān)控系統(tǒng)中實(shí)現(xiàn)這么耗時(shí)的算法是無(wú)法保證視頻的實(shí)時(shí)性的;第二個(gè)缺陷為,實(shí)際的河流區(qū)域場(chǎng)景千差萬(wàn)別,河流邊的樹枝,堤岸邊緣等非常多的物體都可被直線檢測(cè)算法檢測(cè)到,這些未知的含有直線形狀的物體會(huì)對(duì)我們的釣竿檢測(cè)造成巨大的干擾。故本文提出一種融入深度學(xué)習(xí)的垂釣檢測(cè)方法。
由于垂釣事件一定會(huì)伴隨著湖泊與人兩類目標(biāo),而人這類目標(biāo)在網(wǎng)絡(luò)上有非常多的樣本可以收集到,同時(shí)若有垂釣事件的話則魚竿一定位于湖泊和人之間的一定大小的區(qū)域內(nèi),且根據(jù)實(shí)際調(diào)查,釣魚場(chǎng)景下人與湖泊之間的一定比例范圍內(nèi)幾乎不會(huì)有除魚竿外的其他含直線類目標(biāo),故本文提出先采用深度學(xué)習(xí)方法實(shí)現(xiàn)湖泊與人的分割,然后結(jié)合傳統(tǒng)機(jī)器視覺(jué)方法對(duì)人與湖泊之間的一塊矩形區(qū)域做直線檢測(cè)從而實(shí)現(xiàn)本文提出的垂釣檢測(cè)功能。
實(shí)現(xiàn)本文垂釣行為檢測(cè)的第一步是先要從視頻場(chǎng)景中識(shí)別到同時(shí)存在人和河流這兩類目標(biāo)。本文采用從網(wǎng)上爬取大量類似場(chǎng)景下人員的圖片與自己實(shí)際采集的河流樣本制作的數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)模型訓(xùn)練,然后通過(guò)深度學(xué)習(xí)框架TensorFlow加載訓(xùn)練得到的模型對(duì)圖像進(jìn)行分割[2],得到每幀視頻圖像的分割圖。在分割圖中會(huì)用不同顏色標(biāo)識(shí)人、河流、背景這三類目標(biāo)。第二步是在同時(shí)存在人和河流的分割圖中按照一定比例劃取人與河流之間一個(gè)矩形區(qū)域,然后在該區(qū)域中采用本文提出的高精度高速率直線檢測(cè)算法EDLines來(lái)檢測(cè)劃取的矩形區(qū)域內(nèi)是否有直線。系統(tǒng)的整體流程如圖1所示。
本文采用基于圖像像素級(jí)預(yù)測(cè)的語(yǔ)義分割網(wǎng)絡(luò)deeplabV3+對(duì)水岸場(chǎng)景下的特定目標(biāo)進(jìn)行分割[3],相比于FCN等語(yǔ)義分割網(wǎng)絡(luò),本文所選用的網(wǎng)絡(luò)分割結(jié)果邊緣信息更精細(xì),分割速度更快。
圖1 垂釣行為檢測(cè)流程圖
(1)LTDNet網(wǎng)絡(luò)結(jié)構(gòu)
DeepLab V3+基于之前的模型架構(gòu),為了融入多尺度信息,使用與SegNet、FCN相同的encoder-decoder架構(gòu)。使用XCeption[4]作為深層卷積神經(jīng)網(wǎng)絡(luò),并在此網(wǎng)絡(luò)結(jié)構(gòu)中,首次使用深度可分離卷積提高計(jì)算速度,減少計(jì)算量[5]。本文研究的是一個(gè)三分類問(wèn)題,而原網(wǎng)絡(luò)中的最后一個(gè)卷積層的通道數(shù)是21,故將通道數(shù)替換為3,分別對(duì)應(yīng)的是背景,河流以及人。
圖2 網(wǎng)絡(luò)示意圖
由于本文研究的垂釣行為檢測(cè)是在實(shí)時(shí)的視頻下進(jìn)行的,為了使算法具有實(shí)時(shí)性,減少時(shí)間的消耗,在不影響算法的準(zhǔn)確度的情況下,本中將Xception模型中的entery flow添加一個(gè)新的block,Middle flow卷積層減少到24層,同時(shí)更改部分卷積的通道數(shù);在Decoder中,首先增加兩路low_level feature用于豐富細(xì)節(jié)信息,將連接后的特征map更改為一層128通道的3×3卷積處理,經(jīng)過(guò)簡(jiǎn)單的上采樣后輸出分割結(jié)果圖。
(2)DeepLab V3+分割結(jié)果
文中使用5124張不同像素的河邊垂釣圖像進(jìn)行離線訓(xùn)練上文提到的網(wǎng)絡(luò)模型,通過(guò)加載訓(xùn)練得到的pb模型文件對(duì)圖像進(jìn)行分割得到分割圖如圖3所示,其中黑色代表背景,黃色代表河流目標(biāo),綠色代表人。從效果圖中可以看出該深度學(xué)習(xí)網(wǎng)絡(luò)模型能夠非常準(zhǔn)確地實(shí)現(xiàn)目標(biāo)分割,知道了人與河流的位置之后,就可以在人與河流之間進(jìn)行釣竿檢測(cè)了。
圖3 深度學(xué)習(xí)分割效果圖
根據(jù)釣竿外形特征,因此對(duì)釣竿的檢測(cè)可以近似于對(duì)圖像中直線的檢測(cè)。現(xiàn)有的研究方法中幾乎都是采用canny、sobel等算子與Hough或(概率 Hough)變換相結(jié)合的直線檢測(cè)方案,該方案需要調(diào)節(jié)的參數(shù)比較多,且計(jì)算代價(jià)比價(jià)大,方法相對(duì)復(fù)雜。本文提出一種快速、無(wú)參數(shù)的線段檢測(cè)方法EDLines,可以產(chǎn)生穩(wěn)定,精確的檢測(cè)效果,其運(yùn)行速度比現(xiàn)在常用的直線檢測(cè)算法LSD還要快十倍,非常適合應(yīng)用于對(duì)實(shí)時(shí)性要求較高的監(jiān)控系統(tǒng)。另外還可通過(guò)亥姆霍茲原理Helmholtz principle來(lái)對(duì)該方法提取到的直線進(jìn)行驗(yàn)證,以消除虛假線段。
(1)ED算法簡(jiǎn)介
ED算法執(zhí)行邊緣檢測(cè)大致分為如下四個(gè)過(guò)程:
①使用高斯核對(duì)圖像進(jìn)行卷積以抑制噪聲并使圖像平滑,本文采用5×5且σ=1的高斯核。
②計(jì)算平滑圖像梯度大小和方向。這一步我們可以選擇一個(gè)常見(jiàn)的算子(如,Prewitt、sobel、Feldman)。
③從梯度幅度和方向圖中提取錨點(diǎn)。關(guān)于錨點(diǎn)的提取,不同的應(yīng)用可以有不同的提取方案,本文采用的提取方案為:以步驟2中梯度幅度圖的極大值(八鄰域內(nèi))作為錨點(diǎn)。
④通過(guò)設(shè)計(jì)好的智能路由算法結(jié)合梯度方向圖信息(邊界方向的法線方向與梯度方向重合)連接各錨點(diǎn)(注意:不一定所有的錨點(diǎn)會(huì)出現(xiàn)在最終的邊緣圖中)。
整個(gè)過(guò)程流程圖如圖4所示:
圖4 DS算法提取線特征過(guò)程
對(duì)應(yīng)于不同的實(shí)際場(chǎng)景可以選擇合適的高斯平滑濾波模板,由于實(shí)際垂釣事件發(fā)生時(shí)釣竿通常會(huì)與水平面成20°到60°夾角,故本研究的沿對(duì)角方向的邊緣是比較重要的,故本文采用了一個(gè)5×5的檢測(cè)對(duì)角邊緣的模板來(lái)做第一步的圖像平滑濾波。梯度幅值的計(jì)算中會(huì)設(shè)置一個(gè)閾值,低于該閾值的幅值都會(huì)被賦予零值,通過(guò)調(diào)節(jié)閾值的大小可以略掉那些變化平滑的邊緣和一些噪聲,只留下那些明顯的邊緣。在上面的最后一步完成錨點(diǎn)連接后可以判斷所提取到的線段長(zhǎng)度與角度是否滿足預(yù)期從何來(lái)確定是否保留該線段。
智能路由算法簡(jiǎn)介
此處先給出路由停止規(guī)則:
(1)當(dāng)我們移動(dòng)到邊緣的邊界處時(shí)(即當(dāng)前梯度幅值經(jīng)閾值處理后為零值)。
(2)路由過(guò)程中遇到一個(gè)先前被遍歷過(guò)的邊緣像素。
由于本文所研究對(duì)象對(duì)角方向的邊緣是比較重要的,故本文提出下圖5(b)與5(c)兩種路由方式。我們假設(shè)一水平邊界穿過(guò)錨點(diǎn)(x,y),下面給出其向左路由過(guò)程(向右同理,此處不再贅述):
我們的路由過(guò)程一直向左移動(dòng)一直到滿足上面給出的任意一條路由停止規(guī)則,在每一輪迭代循環(huán)過(guò)程中,我們只需關(guān)注左側(cè)三個(gè)直接相鄰的像素即可,例如,(x-1,y-1),(x-1,y),(x-1,y+1),然后選中三個(gè)像素值最大的一個(gè)。如果處理右側(cè),同理只需考慮(x+1,y-1),(x+1,y),(x+1,y+1)三個(gè)像素點(diǎn)即可。圖 5(a)給出了一個(gè)從(8,4)點(diǎn)開(kāi)始的詳細(xì)路由過(guò)程。
圖5
采用EDLines進(jìn)行釣竿的檢測(cè)的結(jié)果。如圖6所示,通過(guò)人和河流目標(biāo)的位置可以確定釣竿檢測(cè)矩形框區(qū)域b,通過(guò)邊緣提取得到c,d是經(jīng)過(guò)ED算法處理后的二值圖像,e是通過(guò)線段提取后得到的釣竿結(jié)果圖,即檢測(cè)的釣竿與實(shí)際的釣竿幾乎重合,滿足文中的要求。
圖6 結(jié)合深度學(xué)習(xí)的釣竿檢測(cè)
由于垂釣行為是一個(gè)持續(xù)性事件,故文中將河岸場(chǎng)景下垂釣視頻數(shù)據(jù)切分成單位時(shí)間為5秒的150個(gè)視頻片段進(jìn)行垂釣行為算法測(cè)試。若在5秒內(nèi)發(fā)出垂釣行為報(bào)警信息,則認(rèn)為算法正確,否則為漏報(bào)。同時(shí),準(zhǔn)備相同條件下的50個(gè)非垂釣視頻片段進(jìn)行EDLines算法檢測(cè)。結(jié)果如表1所示。
表1 垂釣行為檢測(cè)結(jié)果
通過(guò)表1中的檢測(cè)結(jié)果可以算出該算法的召回率為98.5%,這個(gè)精讀的檢測(cè)是非??捎^的。
選取3個(gè)不同場(chǎng)景下具有代表性的垂釣圖像與傳統(tǒng)的霍夫直線檢測(cè)、文獻(xiàn)[8]和傳統(tǒng)的最小二乘法進(jìn)行實(shí)驗(yàn)對(duì)比,為了方便進(jìn)行后期描述,分別將各自的算法設(shè)為算法1、算法2、算法3以及文中算法,最終的釣竿檢測(cè)結(jié)果如圖7所示。
由圖7的對(duì)比圖可以看出,在具有強(qiáng)波紋、波浪以及水面上具有浮萍等情況下,canny算子提取的邊緣存在無(wú)效邊緣的干擾,導(dǎo)致算法1,算法3幾乎無(wú)法進(jìn)行釣竿的檢測(cè);算法2先根據(jù)二值圖像中所有邊緣點(diǎn)梯度方向的統(tǒng)計(jì)分布特征確定釣竿的大致方向,再通過(guò)設(shè)定閾值消除無(wú)效的點(diǎn)集的干擾,得到的是一組直線集,但在強(qiáng)波紋或波浪情況下,檢測(cè)效果不是很好;在垂釣環(huán)境存在波紋等不可控因素干擾下,四個(gè)算法中,只有本文算法能夠較準(zhǔn)確地檢測(cè)到水面上的釣竿。
圖7 釣竿檢測(cè)效果對(duì)比圖
文中提出融入深度學(xué)習(xí)的河邊垂釣行為檢測(cè)方法,對(duì)不同河流場(chǎng)景的適應(yīng)性較強(qiáng),能夠克服紋波、水浪等不可控因素的干擾,實(shí)現(xiàn)了對(duì)河邊垂釣行為的準(zhǔn)確檢測(cè),為水利智能監(jiān)控提供了新的方法。本文提出的改進(jìn)的deeplabV3+網(wǎng)絡(luò)模型不僅可以應(yīng)用于人和河流的分割,還可以應(yīng)用在實(shí)際生活中的各類目標(biāo)分割,具有極大的推廣價(jià)值。另外本文提出的改進(jìn)的快速高精度EDLines直線檢測(cè)算法只需簡(jiǎn)單修改上文所提到的ED算法中的線段提取部分就可以應(yīng)用與許多其他需要提取直線的場(chǎng)合(如車道線、斑馬線、遙感影像直線等場(chǎng)合),這部分同樣具有極高的研究意義。