于佳圓,張 雷,張凱博
(北京建筑大學(xué) 電氣與信息工程學(xué)院,北京 100044)E-mail:yujiayuan1010@163.com
隨著計算機性能的不斷提高以及深度學(xué)習(xí),人工智能等技術(shù)的快速蓬勃發(fā)展,機器人開始進入家庭,為人類提供各種各樣的服務(wù).為了使機器人能夠在家居環(huán)境中與人類自然共居、和諧共處,機器人需要以人類可接受的方式運行和工作,特別是要避免與人類的沖突和碰撞.保證人的絕對安全是服務(wù)機器人進入人類生活空間,并能得到廣泛應(yīng)用的基本前提[1-3].
Christian Vogel等[4]將投影儀放置在機器人工作區(qū)域上方,在機器人周圍形成光柵,光柵的某一區(qū)域產(chǎn)生變化就認(rèn)為有人進入該區(qū)域,機器人對人進行避讓,保證人機安全,但機器人移動過程中可能會出現(xiàn)其他物體遮擋光柵,導(dǎo)致該方法魯棒性較低.Weiquan Ye等[5]利用安裝在機器人本體上的OptiTrack相機和Kinect相機實現(xiàn)人體捕捉和追蹤,但目前OptiTrack相機造價高昂,機器人成本過高,不利于推廣.Mengmeng Wang等[6]利用單目相機和超聲波傳感器實現(xiàn)實時機器人三維人體跟蹤和避讓系統(tǒng),但由于單目相機安裝在機器人的前部,其他方向會存在視覺盲區(qū).
總的來說,目前大多數(shù)移動機器人僅依賴自身傳感器來實現(xiàn)人體檢測和避讓,但在實際應(yīng)用中,這會導(dǎo)致機器人存在一部分檢測盲區(qū),為了解決這個問題,通常人們會在檢測盲區(qū)加裝傳感器,但這無疑會增加機器人的生產(chǎn)成本.而且在多數(shù)情況下,同一空間中會存在多個機器人,在這種情況下,將傳感器安裝在空間中而不是機器人身上可以大大降低總體成本,是更加合理的選擇[7].
針對現(xiàn)存方法存在的諸多不足,本文研究智能空間中,基于全局視覺的機器人自主避讓控制系統(tǒng),通過全局視覺對人和機器人進行檢測、定位和追蹤.提出基于深度圖像和人體骨骼模型的人體檢測方法和改進KCF算法的人體追蹤方法,以及一種基于顏色標(biāo)記特征的機器人檢測和定位方法.系統(tǒng)通過設(shè)置合適的人機安全距離[8,9],并根據(jù)檢測到的人機相對位置和運動軌跡,實時控制機器人的運動,以實現(xiàn)機器人對人的避讓.
本文提出的機器人自主避讓控制系統(tǒng)結(jié)構(gòu)如圖1所示.該系統(tǒng)主要由視覺檢測系統(tǒng)(包括深度相機Kinect和PC機)、室內(nèi)全方位移動機器人、服務(wù)器和無線網(wǎng)絡(luò)構(gòu)成.
圖1 人機避讓控制系統(tǒng)示意圖
視覺檢測系統(tǒng)通過Kinect相機實時采集環(huán)境圖像,對人體和機器人的位置進行實時三維定位和軌跡追蹤.根據(jù)人體和機器人的相對位置以及二者的運動狀態(tài),視覺檢測系統(tǒng)得出相應(yīng)的機器人避讓控制策略,并通過無線網(wǎng)將控制策略數(shù)據(jù)傳輸給服務(wù)器.服務(wù)器接收這些數(shù)據(jù)并利用無線網(wǎng)絡(luò)將控制指令實時發(fā)送給機器人,同時將數(shù)據(jù)存儲到數(shù)據(jù)庫中.機器人收到指令并執(zhí)行相應(yīng)的運動,從而實現(xiàn)對人的避讓.
人體檢測對于圖像和視頻的語義理解,視頻監(jiān)控,輔助駕駛系統(tǒng)等有重要的研究意義和應(yīng)用價值.近年來,圖像和視頻中的人體檢測是計算機視覺和機器學(xué)習(xí)領(lǐng)域的熱門研究話題.目前對于圖像和視頻中的人體檢測,主要有三種方法[10]:基于DPM算法的方法主要通過對人體輪廓進行建模,根據(jù)輪廓特征對人體進行檢測;基于統(tǒng)計學(xué)習(xí)的方法通過提取特征訓(xùn)練分類器模型,特征主要有 Hear特征[11]、HOG特征[12,13]等;基于深度學(xué)習(xí)的方法通過訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)(如CNN)實現(xiàn)人體檢測.
由于人機共居環(huán)境的復(fù)雜性和多變性,目前還沒有一種可普遍適用的成熟算法能夠完全解決這種環(huán)境下的人體檢測和定位問題.上述方法都是基于2D的圖像和視頻進行人體檢測,不能對人體位置進行三維空間中的定位.近幾年,飛行時間相機(Time-of-Flight cameras)和其他深度傳感器的出現(xiàn)為推動該領(lǐng)域的發(fā)展創(chuàng)造了新的機遇[14,15].本文使用的深度相機為Microsoft Kinect v2,Kinect SDK中包含了一種使用大量標(biāo)記數(shù)據(jù)訓(xùn)練的骨骼估計模型,可以進行實時骨骼追蹤.因此,本文提出一種基于全局視覺的方法實現(xiàn)人體檢測和定位,
為了提高系統(tǒng)的實時性,減少圖像處理過程中的計算量,首先對深度圖像進行預(yù)處理,深度圖像中的每個像素都包含自身的深度信息,將深度小于一定的閾值的像素視為感興趣區(qū)域(ROI),即可能存在人體的區(qū)域,將這些像素提取出來.然后采用關(guān)節(jié)點模型與得到的可能包含人體的區(qū)域進行匹配,獲取圖像中人體各個關(guān)節(jié)點的位置.具體過程如下:
首先,提取包含人體對象的深度數(shù)據(jù)幀,對于深度圖像中的指定像素x,計算它的特征:
(1)
得到人體關(guān)節(jié)點的位置信息后,需要通過坐標(biāo)變換將其映射到彩色圖像中,為了確定深度相機和彩色相機之間的關(guān)系,將深度相機的相機中心設(shè)置為原點.
CDepth=KDepth[RDepth|tDepth]=KDepth[I|0]
(2)
其中I是單位矩陣,0是空向量,KDepth是深度相機的校準(zhǔn)矩陣,彩色相機的校準(zhǔn)矩陣為KRGB,彩色相機相對于深度相機產(chǎn)生的旋轉(zhuǎn)為RRGB,產(chǎn)生的變換為tRGB.
CRGB=KRGB[RRGB|tRGB]
(3)
深度圖像中坐標(biāo)為xh的點x,可以通過原點投影為世界坐標(biāo)系中的一條直線L.
(4)
通過深度圖像中點x的ix值,可以得到該點在直線上的相應(yīng)位置.
(5)
然后,就可以將世界坐標(biāo)系中坐標(biāo)為Xh的點X,投影到彩色攝像機上.
xRGB=CRGBXh
(6)
通過上述坐標(biāo)變換,可以得到深度圖中檢測出的人體在彩色圖中的對應(yīng)位置.如圖2所示,圖2(a)為原始彩色圖像,圖2(b)為原始深度圖像,圖2(c)為將關(guān)節(jié)點映射到彩色圖像中的結(jié)果,圖2(d)為最終的人體檢測結(jié)果.
圖2 人體檢測結(jié)果
已知人體關(guān)節(jié)點的位置和深度信息,就可以得到人體在三維空間內(nèi)的位置.由于人體在運動過程中,其脊柱中心點的位置變化幅度較小,所以以脊柱中心點為人體代表點,把該點在環(huán)境中的位置記為人體在環(huán)境中的位置.
通過上述方法檢測和定位到人體目標(biāo)后,接下來需要對不斷運動的人體目標(biāo)進行實時追蹤.傳統(tǒng)的目標(biāo)追蹤方法,如光流法、meanshift算法、粒子濾波算法等已經(jīng)比較成熟,在很多領(lǐng)域都獲得了廣泛的應(yīng)用.但由于人機共居環(huán)境比較復(fù)雜,環(huán)境中的人體運動狀態(tài)是隨機的,并且很難預(yù)測,上述方法的追蹤效果將會受到很大影響.近年來,深度學(xué)習(xí)在計算機視覺領(lǐng)域的成功,使得用于視覺跟蹤的深層架構(gòu)成為一種趨勢.但是,這些基于深度學(xué)習(xí)的跟蹤器具有相同的缺陷,即實時性能差且具有高復(fù)雜性[16,17],不適用于本文的應(yīng)用場景.
KCF 核相關(guān)濾波算法是由Henriques等人在2014年所提出[18],是對2012年提出的CSK核循環(huán)結(jié)構(gòu)檢測跟蹤算法[19]的改進,使用多通道的梯度方向直方圖(HOG)特征代替原來的單通道灰度特征,并利用核嶺回歸,使得計算復(fù)雜度大大降低,大幅提升了相關(guān)濾波跟蹤的準(zhǔn)確度.KCF算法相比于傳統(tǒng)目標(biāo)跟蹤算法,擁有更高的準(zhǔn)確性,相比于深度學(xué)習(xí)方法,擁有更高的實時性,本文基于KCF算法對運動人體目標(biāo)進行實時追蹤.
典型的相關(guān)濾波過程如圖3所示,首先,在輸入視頻第t幀中的目標(biāo)位置Pt周圍進行采樣和特征提取,訓(xùn)練一個可以計算響應(yīng)的分類器.然后,在第t+1幀,在前一幀的目標(biāo)位置Pt周圍進行采樣,用訓(xùn)練好的分類器計算每個樣本的響應(yīng).最后,將響應(yīng)最大的樣本位置作為當(dāng)前幀(第t+1幀)的目標(biāo)位置Pt+1.
圖3 相關(guān)濾波原理
1)核相關(guān)濾波
通常,相關(guān)濾波器w的目的是找到一個函數(shù)f(z)=wTz,使得在相同大小的高斯函數(shù)標(biāo)簽y上的具有M×N個像素點的圖像塊z上采樣樣本的平方誤差最小,即:
(7)
其中,i∈{0,1,…,M-1}×{0,1,…,N-1},λ是一個非負(fù)正則化參數(shù).由于訓(xùn)練不僅需要正例,還需要負(fù)例,因此相關(guān)濾波器通常采用循環(huán)移位的方法來近似采樣窗口的位移.
使用核方法,可以將非線性回歸轉(zhuǎn)換為線性回歸,目標(biāo)函數(shù)可以寫成w=∑iαiφ(xi),這樣所需優(yōu)化的變量就從w變成了α.將目標(biāo)函數(shù)替換為核函數(shù),得到了新的訓(xùn)練函數(shù).
(8)
其中,k(z,xi)表示訓(xùn)練樣本xi與測試樣本z之間的核函數(shù),文獻[20]給出了嶺回歸的核化版本的解決方案:α=(K+λI)-1y,由于矩陣K和矩陣I都是循環(huán)矩陣,得益于循環(huán)矩陣的特性,可以通過離散傅里葉變換(DFT)將其對角化.
(9)
其中,F(xiàn)和F-1分別表示離散傅里葉變換以及它的逆變換.
在視頻的第一幀中對分類器進行訓(xùn)練之后,通過計算如下的響應(yīng),在下一幀中對相同大小的圖像塊z進行位置估計.
f(z)=F-1(F(a)⊙F(k(z,x)))
(10)
其中,⊙表示元素乘積,選擇使得f(z)獲得最大值的位置作為當(dāng)前幀的目標(biāo)位置.
2)循環(huán)矩陣
為了提取更多的訓(xùn)練樣本,克服傳統(tǒng)隨機采樣存在的采樣重復(fù)等缺點,KCF算法使用循環(huán)矩陣對圖像進行密集采樣,循環(huán)矩陣C(x)如式(11)所示:
(11)
可以看出,循環(huán)矩陣中的每一行元素都是由上一行元素向右平移一位得到,這樣可以保證每個循環(huán)矩陣都可以對角化,且進過傅里葉變換后都是對角矩陣,矩陣C(x)的傅里葉變化矩陣F為:
(12)
可以看出F是一個對稱酉矩陣,則循環(huán)矩陣C(x)可對角化表示為:
(13)
對比傳統(tǒng)的隨機采樣,利用循環(huán)矩陣進行密集采樣可以提取更多的訓(xùn)練樣本,能夠提取目標(biāo)的全部信息,這對目標(biāo)跟蹤過程的實現(xiàn)是至關(guān)重要的.
3)目標(biāo)檢測與分類器更新
在KCF目標(biāo)追蹤的過程中,首先讀取視頻的第一幀圖像,圖像中包含所需追蹤的目標(biāo)位置,用密集采樣的方法提取目標(biāo)以及背景的HOG特征,將其作為初始樣本對分類器進行初始化.然后讀取下一幀圖像,從上一幀圖像中的目標(biāo)位置提取圖像塊,單個候選圖像塊z應(yīng)的分類器響應(yīng)為:
(14)
其中,ai為分類器在第i幀的參數(shù),xi為第i幀的目標(biāo)模板,將候選圖像塊z與上一幀更新的目標(biāo)模板xi-1進行循環(huán)移位,生成循環(huán)矩陣,得到:
Kz=C(kxi-1z)
(15)
其中,kxi-1z為候選圖像塊z與目標(biāo)模板xi-1的核相關(guān),得到z循環(huán)移位后的輸出為:
f(z)=(Kz)Ta
(16)
找到使式(16)取得最大響應(yīng)值的位置,即得到當(dāng)前幀的目標(biāo)位置x′.
y=F-1(F(kxi-1z)F(a))
(17)
最后,將檢測到當(dāng)前幀的目標(biāo)位置做循環(huán)移位,對分類器和目標(biāo)模板進行更新:
xi=(1-β)xi-1+x′ai=(1-β)ai-1+ax′
(18)
其中β是更新系數(shù),xi-1為上一幀的目標(biāo)模板,ai-1為上一幀的分類器的系數(shù).通過對分類器系數(shù)和目標(biāo)模板的不斷更新,實現(xiàn)視頻序列的實時目標(biāo)追蹤.
KCF算法的一個明顯優(yōu)勢是在保證追蹤精度和準(zhǔn)確性的同時,能達到很快的追蹤速度,但當(dāng)運動目標(biāo)被完全遮擋時,會導(dǎo)致追蹤目標(biāo)丟失,無法繼續(xù)追蹤.為了彌補KCF算法在目標(biāo)被遮擋情況下會導(dǎo)致追蹤失敗的不足,本文將檢測模塊加入到目標(biāo)追蹤的過程中,當(dāng)追蹤目標(biāo)丟失時,啟動檢測模塊,以保證及時重新找到目標(biāo)并繼續(xù)追蹤,流程如圖4所示.
圖4 改進KCF算法流程圖
檢測模塊濾波器Rd的訓(xùn)練模板選擇,對于目標(biāo)丟失時重新檢測的成功與否至關(guān)重要,如果僅用初始幀來訓(xùn)練濾波器,在追蹤過程中,隨著目標(biāo)的外觀不斷發(fā)生改變,濾波器的性能將不斷降低.因此,本文設(shè)計一個能量函數(shù)對每一幀進行評估,當(dāng)目標(biāo)出現(xiàn)遮擋時,能量函數(shù)的值會減小.而當(dāng)目標(biāo)外觀出現(xiàn)改變時,能量函數(shù)的值會增大.將能量函數(shù)與相關(guān)響應(yīng)綜合考慮,來評判每一幀的質(zhì)量.在追蹤過程中,我們可以將目標(biāo)被遮擋的幀忽略掉,不更新追蹤模塊的濾波器Rt,避免由于遮擋導(dǎo)致的漂移.同時,不斷用質(zhì)量更高的幀對檢測模塊的濾波器Rd進行持續(xù)更新,提高檢測模塊的魯棒性.
具體過程如下,對于給定的一幀圖像,跟蹤濾波器Rt和檢測濾波器Rt的相關(guān)響應(yīng)最大值分別為:
βt=max(ft(z))
(19)
βd=max(fd(z))
(20)
設(shè)定閾值Tγ,如果追蹤模塊和檢測模塊的濾波器相關(guān)響應(yīng)均大于該閾值,即βt>Tγ&&βd>Tγ,那么我們認(rèn)為該幀圖像質(zhì)量達到要求,用公式(18)更新檢測濾波器Rd,通過對幀的能量評估更新追蹤濾波器,能量函數(shù)定義為:
E=2R+G
(21)
其中R表示檢測濾波器Rd的相關(guān)響應(yīng),G表示R的梯度.應(yīng)用該能量函數(shù),可以使得追蹤目標(biāo)有遮擋的幀得到低能量值,如果當(dāng)前幀的能量值E大于設(shè)定閾值Tη,即E>Tη,用公式(18)更新追蹤濾波器.
通過上述方法的改進,追蹤濾波器更新時會忽略掉大部分存在目標(biāo)遮擋的幀.但當(dāng)出現(xiàn)目標(biāo)運動過快等情況時,還是會導(dǎo)致追蹤失敗,此時就需要啟動檢測模塊.在追蹤過程中,當(dāng)檢測濾波器的相關(guān)響應(yīng)值βd小于設(shè)定閾值Ts時,我們認(rèn)為此時發(fā)生跟蹤丟失,立即啟動檢測模塊.由于連續(xù)兩幀中,目標(biāo)的位置以及外觀形態(tài)不會出現(xiàn)非常大的變化,因此,為了節(jié)約計算成本,不在整張圖片上對目標(biāo)進行重新檢測,而是使用追蹤丟失前一幀的分類器,對目標(biāo)位置周圍的8個圖像塊進行滑動窗口搜索,直到重新檢測到目標(biāo).
與人體檢測過程中人體運動不確定性強的特征不同,一般情況下,人機共居環(huán)境中機器人的運動狀態(tài)是經(jīng)過人為設(shè)定的,是可控的,而且機器人的數(shù)量是一定的,因此機器人在圖像中的狀態(tài)相對穩(wěn)定.本文同樣采用基于全局視覺的方法對機器人進行檢測和定位.由于基于顏色特征的檢測方法對于目標(biāo)位置變化的影響有較強的適應(yīng)性,且對形變、噪聲等影響具有很好的魯棒性.因此,本文采用基于目標(biāo)顏色特征的方法對機器人進行檢測和定位.
首先,利用全局相機Kinect采集的RGB圖像進行機器人檢測.RGB顏色空間由紅(Red)、綠(Green)、藍(Blue)三原色組成,具有簡單直觀、處理方便等優(yōu)點,目前被廣泛應(yīng)用于圖像處理領(lǐng)域.但是RGB顏色空間很容易受到光照的影響,導(dǎo)致圖像顏色失真,檢測失敗.由于人機共居的光照是不斷變化的,在RGB空間中無法對顏色特征進行準(zhǔn)確檢測,因此有必要進行顏色空間的轉(zhuǎn)換.
將RGB顏色空間轉(zhuǎn)換到HSV顏色空間進行處理,因為HSV顏色空間對于光照變化和陰影的影響具有很好的魯棒性,適用于基于顏色進行目標(biāo)檢測的任務(wù),
接下來,設(shè)置合適的顏色閾值,對圖像進行顏色分割.保留圖像中符合顏色閾值的像素點,并將所有不符合的像素點都去除,得到包含顏色標(biāo)記的位置信息的二值圖像,如圖5所示.圖5(a)為原始圖像,圖5(b)為經(jīng)過顏色分割后得到的二值圖像,對二值圖像進行形態(tài)學(xué)變換,消除干擾像素點,只保留目標(biāo)區(qū)域,最終結(jié)果如圖5(c)所示.
圖5 顏色分割結(jié)果
檢測到機器人在彩色圖像中的位置后,需要得到深度信息,從而實現(xiàn)機器人的定位.對經(jīng)過顏色分割后的二值圖像進行邊緣檢測,邊緣檢測的核心是采用編碼的方式確定圖像中存在的邊界.找到邊界后,繪制矩形框來表示檢測到的機器人,將矩形框中心的像素坐標(biāo)記為(xrec,yrec).利用Kinect彩色圖像坐標(biāo)和深度圖像坐標(biāo)的轉(zhuǎn)換方法,將該像素坐標(biāo)轉(zhuǎn)換到深度空間中,得到對應(yīng)深度圖像上的深度信息,從而得到機器人在空間中的三維坐標(biāo)(x,y,z).
得到人和機器人在環(huán)境中的實時位置后,接下來要判斷機器人此時是否應(yīng)該對人進行避讓,如何避讓.如圖6所示,視覺檢測系統(tǒng)檢測到人體和機器人(圖6(a)),并得到了位置信息,圖6(b)為空間內(nèi)人和機器人的位置圖,人機距離可由兩點之間的距離公式計算得到.
圖6 視覺系統(tǒng)的檢測和定位結(jié)果
設(shè)定符合人類心理需求的,合適的人機安全距離,對于保證人機共居環(huán)境中人的安全性和舒適度是非常必要的[20].在工業(yè)生產(chǎn)中,為了防止正在運行的設(shè)備、表面尖銳的生產(chǎn)工具等危險物品對人體健康及生命安全造成傷害,規(guī)定兩者之間必須保持一定的安全距離.而在人機共居環(huán)境中,人機安全距離的設(shè)定更應(yīng)該考慮人的心理需求.本文根據(jù)機器人與人的位置、距離、各自的運動狀態(tài)來設(shè)定當(dāng)前的安全距離,當(dāng)二者間距離小于安全距離時,向機器人發(fā)送相應(yīng)的避讓指令,實現(xiàn)實時準(zhǔn)確的避讓控制.
為了驗證本文設(shè)計的機器人自主避讓控制系統(tǒng),通過實驗對其中采用的方法和整個系統(tǒng)的有效性,實時性和準(zhǔn)確性進行驗證.
由于人機共居環(huán)境中,人體的運動具有隨機性,不同時刻的人體正面平面與攝像頭平面之間的角度是不同的,如正面,背面,側(cè)面等不斷變化,這會給人體檢測和定位造成很大影響.為了驗證本文提出的人體檢測和定位方法的有效性,在實驗室環(huán)境中,設(shè)計如下實驗:空間中的人體按照“口”字型軌跡持續(xù)運動,這樣全局?jǐn)z像頭就可以捕捉到人體的不同側(cè)面.實驗結(jié)果如圖7所示,上面的四張圖片為人體檢測結(jié)果,下面對應(yīng)的四張圖片為對應(yīng)的位置軌跡.可以看出,無論人體與攝像頭的角度如何變化,檢測系統(tǒng)都能對人體進行準(zhǔn)確檢測和定位,驗證了人體檢測和定位方法的有效性.
圖7 人體檢測和定位實驗結(jié)果
在同一場景下,將本文提出的人體檢測方法與基于HOG特征的方法、高斯背景建模法、以及基于Haar-like特征方法這三種人體檢測方法進行檢測時間的對比,記錄每種方法處理每一幀圖像所需的時間.實驗結(jié)果如圖8所示,從左到右依次為高斯背景建模法、基于Haar-like特征方法、基于HOG特征的方法以及本文提出的方法進行人體檢測時,單幀所消耗的時間.
圖8 檢測方法對比實驗結(jié)果
由實驗結(jié)果可以看出,本文提出的人體檢測方法每幀消耗的時間均少于其他幾種算法,這是由于基于Kinect深度圖像的人體骨骼提取實時性較高,且在人體運動緩慢或靜止?fàn)顟B(tài)也能快速檢測.
為了驗證本文提出的人體追蹤方法的實時性和準(zhǔn)確性,在實驗室環(huán)境中,設(shè)計如下實驗:環(huán)境中有兩個人體目標(biāo),一人靜止不動,另一個人在后方不斷走動,實驗對后面的人進行實時追蹤,視覺系統(tǒng)的追蹤實驗結(jié)果如圖9所示,為了便于觀察實驗結(jié)果,整個過程將前面的人用矩形框框選出來.可以看到,在圖9(a)中,前面的人對后面的人有部分遮擋,依然可以成功追蹤.在圖9(b)中,前面的人完全遮擋住后面的人,追蹤目標(biāo)丟失.在圖9(c)中,后面的人重新出現(xiàn),追蹤方法及時找到丟失的追蹤目標(biāo),并繼續(xù)追蹤,證明了追蹤方法的有效性.
圖9 人體追蹤實驗結(jié)果
將本文提出的人體追蹤方法與Camshift算法、MIL算法以及CSRT算法進行實時性和準(zhǔn)確性對比,實驗結(jié)果如圖10所示,其中從左到右依次為Camshift算法、本文算法、MIL算法以及CSRT算法進行人體追蹤時,單幀消耗的時間.
圖10 追蹤算法消耗時間對比
追蹤算法的成功率對比如表1所示,由實驗結(jié)果可以看出,本文提出的改進KCF算法以及Camshift算法在目標(biāo)追蹤過程中消耗的時間較少,且改進KCF的方法在保證高實時性的同時,可以實現(xiàn)最高的追蹤成功率.這是由于傳統(tǒng)的KCF算法實時性很高,改進的方法僅在目標(biāo)出現(xiàn)遮擋時啟動檢測模塊,可以在追蹤目標(biāo)被遮擋的情況下快速進行重新檢測,找到丟失目標(biāo),同時保證整個系統(tǒng)的高實時性.
表1 追蹤算法準(zhǔn)確度對比
在實驗室環(huán)境中,控制移動機器人按照“口”字型軌跡運動,視覺系統(tǒng)對機器人進行實時檢測和定位.實驗結(jié)果如圖11所示,上面的四張圖為機器人的檢測結(jié)果,下面四張圖為相應(yīng)的位置軌跡.可以看出,無論機器人對相機的朝向如何變化,視覺系統(tǒng)都能實時準(zhǔn)確檢測和定位,驗證了本文提出的機器人檢測與定位方法的有效性.
圖11 機器人檢測和定位實驗結(jié)果
為了測試整個避讓控制系統(tǒng)的性能,設(shè)計如下實驗:機器人和人同時在室內(nèi)環(huán)境中,設(shè)置人機安全距離為0.5米,在不同光照條件:白天的自然光照和夜晚的燈光照明,人體朝向全局相機的不同角度:正面朝向、左側(cè)面朝向、右側(cè)面朝向和背面朝向這八種情況下進行機器人避讓控制實驗.
圖12所示為夜晚燈光照明條件下,人體右側(cè)朝向全局相機的實驗場景以及人機距離的變化.可以看到,當(dāng)人機距離小于一定值時,機器人開始運動,人機距離增大.這是因為系統(tǒng)檢測到人機距離小于安全距離,向機器人發(fā)出向右避讓的指令,機器人收到指令后向右移動.
圖12 機器人避讓實驗
每種情況下進行十次實驗,記錄機器人避讓的平均反應(yīng)時間,即檢測人機距離為0.5米的時刻與機器人執(zhí)行避讓指令的時間差,實驗結(jié)果如表2所示.
表2 機器人避讓控制實驗結(jié)果
由實驗結(jié)果可以看出,無論光照以及人體對于全局相機的朝向如何變化,機器人均能在檢測到人機距離達到設(shè)定值后的300ms內(nèi),執(zhí)行避讓指令,實現(xiàn)對人的避讓.實驗結(jié)果驗證了整個機器人避讓控制系統(tǒng)的實時性和有效性.
本文構(gòu)建了一套完整的基于全局視覺的機器人避讓控制系統(tǒng),提出高實時性高準(zhǔn)確性的人體檢測與定位方法和改進KCF的人體追蹤方法,以及一種基于顏色特征的室內(nèi)全方位移動機器人檢測和定位方法,實現(xiàn)了人機共居環(huán)境中,機器人對人的自主避讓控制.經(jīng)過一系列的實驗,驗證了整個系統(tǒng)的準(zhǔn)確性和實時性.