周 曼,劉志勇,應(yīng)正波,楊魯江,裘 坤
(浙江中控技術(shù)股份有限公司,杭州 310053)
在流程工業(yè)現(xiàn)場中,存在大量需要通過運(yùn)動(dòng)檢測(cè)來進(jìn)行視覺監(jiān)控的應(yīng)用場景,例如傳送帶運(yùn)行狀態(tài)監(jiān)測(cè)、透明視鏡中的液體流動(dòng)狀態(tài)監(jiān)測(cè)等。運(yùn)動(dòng)目標(biāo)檢測(cè)是計(jì)算機(jī)視覺應(yīng)用的基礎(chǔ)技術(shù),在許多領(lǐng)域尤其在智能視頻監(jiān)控系統(tǒng)中有著廣泛的應(yīng)用。
光流(optical flow)是描述相對(duì)于觀測(cè)者的運(yùn)動(dòng)所造成的觀測(cè)目標(biāo)、表面或邊緣的運(yùn)動(dòng),由于它包含了目標(biāo)運(yùn)動(dòng)的信息,因此可以被觀測(cè)者用于確定目標(biāo)的運(yùn)動(dòng)狀況。光流是James J.Gibson在1950年首先提出來的,它是空間運(yùn)動(dòng)物體在觀測(cè)成像平面上的像素運(yùn)動(dòng)的瞬時(shí)速度,是利用圖像序列中像素的強(qiáng)度數(shù)據(jù)在時(shí)域上的變化,以及相鄰幀之間的相關(guān)性來獲取上一幀與當(dāng)前幀之間的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息。一般而言,光流是由于相機(jī)的運(yùn)動(dòng)、場景中前景目標(biāo)本身的移動(dòng),或者兩者的共同運(yùn)動(dòng)所產(chǎn)生的。光流法在樣型識(shí)別、計(jì)算機(jī)視覺,以及其他影像處理領(lǐng)域的應(yīng)用非常廣泛,可用于運(yùn)動(dòng)檢測(cè)、物件切割、碰撞時(shí)間與物體膨脹的計(jì)算、運(yùn)動(dòng)補(bǔ)償編碼,或者通過物體表面與邊緣進(jìn)行立體測(cè)量等。
光流計(jì)算最初是在1981年由美國學(xué)者Horn和Sehunck提出的,他們根據(jù)圖像灰度守恒原理推導(dǎo)出基本光流約束方程[1]。光流法在目標(biāo)檢測(cè)、運(yùn)動(dòng)估計(jì)、目標(biāo)跟蹤等領(lǐng)域有著非常廣泛地應(yīng)用。使用光流法來檢測(cè)運(yùn)動(dòng)目標(biāo),其基本思想是賦予圖像中的每一個(gè)像素點(diǎn)一個(gè)速度矢量,從而形成該圖像的運(yùn)動(dòng)場。圖像上的點(diǎn)和三維物體上的點(diǎn)在某一特定的運(yùn)動(dòng)時(shí)刻是一一對(duì)應(yīng)的,根據(jù)各像素點(diǎn)的速度矢量特征對(duì)圖像進(jìn)行動(dòng)態(tài)的分析。若圖像中不存在運(yùn)動(dòng)目標(biāo),那么光流矢量在整個(gè)圖像區(qū)域則是連續(xù)變化的,而當(dāng)物體和圖像背景中存在相對(duì)運(yùn)動(dòng)時(shí),運(yùn)動(dòng)物體所形成的速度矢量則必然不同于鄰域背景的速度矢量,從而將運(yùn)動(dòng)物體的位置檢測(cè)出來。
常用的光流計(jì)算方法有5種:基于梯度的計(jì)算方法、基于區(qū)域匹配的計(jì)算方法、基于能量的計(jì)算方法、基于相位的計(jì)算方法以及基于神經(jīng)動(dòng)力學(xué)的計(jì)算方法[7]。其中,最著名的是基于梯度的計(jì)算方法,即常說的微分法,該方法是對(duì)相鄰的圖像幀做差,對(duì)結(jié)果進(jìn)行閾值濾波后便可得到運(yùn)動(dòng)目標(biāo)。它利用圖像序列亮度的時(shí)空微分計(jì)算2D速度場,通過取時(shí)空梯度函數(shù)的全局能量泛函數(shù)的最小值來求得像素運(yùn)動(dòng)矢量。最經(jīng)典的基于梯度的算法有Gunnar Farneback算法、霍恩·山克算法(Horn Schunck method)、盧卡斯-卡納德算法(Lucas-Kanade method)[8]等。在此采用著名的Gunnar Farneback算法來計(jì)算光流。
Gunnar Farneback光流算法[2-3]是計(jì)算全局性的稠密光流算法(即圖像上所有像素點(diǎn)的光流都計(jì)算出來)。它是一種基于梯度的方法,假設(shè)圖像梯度恒定且假設(shè)局部光流恒定。在最優(yōu)值處的導(dǎo)數(shù)為零,進(jìn)行時(shí)間離散化并做后向差分,然后取該像素點(diǎn)的一個(gè)鄰域(通常以該像素為中心的方形區(qū)域),利用這些像素點(diǎn)的值和坐標(biāo)進(jìn)行系數(shù)的估計(jì),估計(jì)的算法采用加權(quán)最小二乘法。因?yàn)樵卩徲騼?nèi)距中心越近的像素點(diǎn)與中心像素具有更大的相關(guān)性,而越遠(yuǎn)的點(diǎn)所提供的信息越少。因此,需要進(jìn)行加權(quán)計(jì)算以減小誤差,將鄰域以外的像素點(diǎn)的權(quán)重都置為零,然后構(gòu)建目標(biāo)函數(shù)來優(yōu)化并求得位移。在實(shí)際情況中,未加權(quán)的算法求得的結(jié)果中噪聲太多,因此通常情況下針對(duì)興趣像素點(diǎn)的鄰域內(nèi),使用加權(quán)的目標(biāo)函數(shù)來減小噪音的影響。
光流場是由光流引申出來的,它指的是物體中可見像素點(diǎn)的三維速度矢量在成像表面投影形成的二維瞬時(shí)速度場,也就是三維速度場在二維成像平面上的投影??臻g中的運(yùn)動(dòng)場轉(zhuǎn)移到圖像上就表示為光流場,光流場反映了圖像上每一點(diǎn)的灰度變化趨勢(shì)。光流場包含了被觀測(cè)物體的運(yùn)動(dòng)信息,以及有關(guān)景物豐富的三維結(jié)構(gòu)信息。圖片中的每個(gè)像素都有一個(gè)X方向和Y方向的位移,所以計(jì)算后得到的光流是與原來圖像大小相等的雙通道數(shù)據(jù),無法直觀地顯示。在此,采用最常用的孟塞爾(Munsell)顏色系統(tǒng)將其顯性可視化為RGB圖片。
孟塞爾顏色系統(tǒng)(Munsell color system)是美國藝術(shù)家Albert H.Munsell在1898年創(chuàng)制的顏色描述系統(tǒng)。彩色編碼圖用于可視化的顯示光流的2個(gè)分量,孟塞爾顏色空間將顏色劃分為明度(value)、色相(hue)、色度(chroma)3個(gè)屬性,如圖1所示。
圖1 孟塞爾顏色系統(tǒng)空間Fig.1 Munsell color system space
圖中,位于中間的圓柱為明度,其值從全暗(0)直至全亮(10);以中軸為中心的圓周被分為10等份,其中5份表示主色調(diào),另外5份表示中間色調(diào)。圓周上一特定顏色與中軸的距離為該顏色的色度,數(shù)值從0至無窮。色相和色度位于一個(gè)平面內(nèi),該平面與圖像平面相對(duì)應(yīng)。因此,圖像每個(gè)像素的光流值都能夠在色相、色度平面上找到對(duì)應(yīng)的顏色表示。在光流場中,用色相表示光流的方向,色度表示光流的大小,從而實(shí)現(xiàn)光流數(shù)據(jù)的可視化。
AlexNet[4-5]是Hinton及其學(xué)生 Alex Krizhevsky在2012年的ImageNet競賽時(shí)所設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò),這一結(jié)果贏得此屆大賽冠軍。
在此,用工業(yè)視頻中獲取的圖像進(jìn)行可視化后的光流圖作為輸入圖片,將在ImageNet數(shù)據(jù)集上訓(xùn)練好的AlexNet模型參數(shù)遷移到新的數(shù)據(jù)集上進(jìn)行訓(xùn)練,保留了前5個(gè)卷積層和相應(yīng)池化層以及3個(gè)全連接的參數(shù),其它參數(shù)采用隨機(jī)初始化,最后一層為用于分類的Softmax層,其神經(jīng)元個(gè)數(shù)為被分類任務(wù)的數(shù)據(jù)集的圖像類別數(shù)目,通過在新數(shù)據(jù)集上的訓(xùn)練微調(diào)得到新的訓(xùn)練模型[6]。
在此,以工業(yè)現(xiàn)場的透明視鏡中反應(yīng)物流動(dòng)狀況檢測(cè)和水泥傳送帶運(yùn)行狀態(tài)檢測(cè)為例,運(yùn)用Gunnar Farneback光流法獲得光流,并用孟塞爾顏色系統(tǒng)進(jìn)行可視化后得到光流圖,最后用AlexNet遷移學(xué)習(xí)來訓(xùn)練這些光流圖,得到遷移學(xué)習(xí)微調(diào)后的訓(xùn)練模型,用以檢測(cè)和識(shí)別原始視頻中的目標(biāo)的運(yùn)動(dòng)狀態(tài)。
將工業(yè)視頻按照一定的時(shí)間間隔來截取1幀,然后調(diào)用OpenCV中的calcOpticalFlowFarneback(prev,next,flow,pyr_scale,levels,winsize,iterations,poly_n,poly_sigma,flags)函數(shù)計(jì)算相鄰幀的光流,再將兩通道的光流數(shù)據(jù)轉(zhuǎn)化為RGB圖像數(shù)據(jù),將圖像存檔。在calcOpticalFlowFarneback函數(shù)中,進(jìn)行以下設(shè)置:
金字塔上下兩層之間的尺度關(guān)系pyr_scale值為0.5;
金字塔層數(shù)levels為3層;
均值窗口大小winsize為15;
迭代次數(shù)iterations為3;
像素鄰域范圍大小poly_n為5;
高斯標(biāo)準(zhǔn)差poly_sigma為1.2;
計(jì)算方法包括OPTFLOW_USE_INITIAL_FLOW(用1表示)和OPTFLOW_FARNEBACK_GAUSSIAN(用0表示),F(xiàn)lags為0,即采用高斯平滑原理來更新光流。
對(duì)透明視鏡反應(yīng)物流動(dòng)視頻每秒截取1幀,然后調(diào)用calcOpticalFlowFarneback函數(shù)獲取光流數(shù)據(jù),再通過孟塞爾顏色系統(tǒng)轉(zhuǎn)化為可視的RGB圖片并存檔。由其中相鄰的2幀圖片計(jì)算出的光流及可視化后的結(jié)果如圖2所示。
圖2 透明視鏡反應(yīng)物流動(dòng)視頻圖像及對(duì)應(yīng)的光流圖Fig.2 Original image and optical flow image of reactant flow in sight glass
將可視化后獲得的光流圖標(biāo)識(shí)為運(yùn)動(dòng)和靜止2種狀態(tài),其中91438張運(yùn)動(dòng)圖片和13848張靜止圖片,然后從每種狀態(tài)中隨機(jī)選擇20%作為測(cè)試集,余下80%作為訓(xùn)練集。由此得到73150張運(yùn)行光流圖和11078張靜止光流圖,經(jīng)過對(duì)這2種類別的圖片采用AlexNet遷移學(xué)習(xí)模型進(jìn)行訓(xùn)練,運(yùn)行500步后得到98.73%的準(zhǔn)確率。接著將模型在包含18288張運(yùn)行圖和2770張靜止圖的測(cè)試集上進(jìn)行驗(yàn)證,其準(zhǔn)確率為98.27%。
對(duì)水泥傳送帶運(yùn)行視頻采用每秒截取1幀,然后調(diào)用calcOpticalFlowFarneback函數(shù)獲取光流數(shù)據(jù),再通過孟塞爾顏色系統(tǒng)轉(zhuǎn)化為可視的RGB圖片存檔。由其中相鄰的2幀圖片計(jì)算出的光流及可視化后的結(jié)果如圖3所示。
圖3 水泥傳送帶運(yùn)行視頻圖像及對(duì)應(yīng)的光流圖Fig.3 Original image and optical flow image of conveyor belt in cement plant
將可視化后獲得的光流圖標(biāo)識(shí)為運(yùn)動(dòng)和靜止2種狀態(tài),其中139836張運(yùn)動(dòng)圖片和125677張靜止圖片,從每種狀態(tài)中隨機(jī)選擇20%作為測(cè)試集,余下80%作為訓(xùn)練集,可以得到111869張運(yùn)行光流圖和100542張靜止光流圖。然后對(duì)這2種類別的圖片采用AlexNet遷移學(xué)習(xí)模型進(jìn)行訓(xùn)練,運(yùn)行200步后得到99.98%的準(zhǔn)確率。接著將模型在包含27967張運(yùn)行光流圖和25135張靜止光流圖的測(cè)試集上進(jìn)行驗(yàn)證,其準(zhǔn)確率為99.93%。
光流法作為傳統(tǒng)機(jī)器視覺中運(yùn)動(dòng)圖像分析的重要技術(shù),其算法原理簡潔有效,得到了廣泛的應(yīng)用。以深度卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)技術(shù)在圖像分類上表現(xiàn)異常突出,越來越成為現(xiàn)代圖像智能識(shí)別的主流技術(shù)。文中對(duì)實(shí)際工業(yè)現(xiàn)場的大量實(shí)拍視頻先進(jìn)行光流計(jì)算,并利用孟塞爾顏色系統(tǒng)將其可視化,再基于預(yù)訓(xùn)練的AlexNet模型進(jìn)行參數(shù)微調(diào)訓(xùn)練,得到可用于工業(yè)現(xiàn)場部署的運(yùn)動(dòng)檢測(cè)識(shí)別模型。在實(shí)際工業(yè)應(yīng)用中,該方法能夠有效地識(shí)別目標(biāo)的運(yùn)動(dòng)或變化狀態(tài),同時(shí)具備較強(qiáng)的環(huán)境適應(yīng)能力。隨著智能制造領(lǐng)域里的各種應(yīng)用突破和推進(jìn),傳統(tǒng)機(jī)器視覺技術(shù)與深度學(xué)習(xí)方法相互融合的技術(shù),將越來越成為能夠解決實(shí)際生產(chǎn)問題的利器。