亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

攝像頭人臉跟蹤系統(tǒng)及人臉跟蹤方法與流程

文檔序號:11254277閱讀:7967來源:國知局
攝像頭人臉跟蹤系統(tǒng)及人臉跟蹤方法與流程

本發(fā)明屬于機(jī)器人領(lǐng)域,尤其是涉及一種攝像頭人臉跟蹤系統(tǒng)及人臉跟蹤方法。



背景技術(shù):

舵機(jī)的控制方式一般采用pwm波的控制方式,不同占空比的pwm波對應(yīng)舵機(jī)不同的角度。要控制舵機(jī)運(yùn)行到指定角度,只要輸出對應(yīng)占空比的pwm波,舵機(jī)就會以一定的速度運(yùn)行到指定角度。因為,速度是舵機(jī)的特性指標(biāo),不能改變。

因此,機(jī)器人的頭部隨攝像頭的轉(zhuǎn)動為機(jī)械式的勻速轉(zhuǎn)動,不符合人體頭部轉(zhuǎn)動的運(yùn)動方式,需要提供使攝像頭的轉(zhuǎn)動更加的平滑的運(yùn)動方式。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明旨在提出一種攝像頭人臉跟蹤系統(tǒng)及人臉跟蹤方法,以使攝像頭的轉(zhuǎn)動更加的平滑,符合人體頭部轉(zhuǎn)動的運(yùn)動方式。

為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:

攝像頭人臉跟蹤系統(tǒng),包括主控制器、舵機(jī)控制板、x軸舵機(jī)和y軸舵機(jī),所述主控制器通過串口與舵機(jī)控制板通信連接,所述舵機(jī)控制板連接x軸舵機(jī)和y軸舵機(jī),所述x軸舵機(jī)和y軸舵機(jī)分別通過傳動結(jié)構(gòu)控制攝像頭水平和垂直方向的運(yùn)行。

上述攝像頭人臉跟蹤系統(tǒng)的人臉跟蹤方法,包括如下內(nèi)容:

步驟1,通過人臉識別算法,獲得當(dāng)前人臉在畫面中的區(qū)域坐標(biāo);

步驟2,根據(jù)人臉區(qū)域坐標(biāo),判斷x軸舵機(jī)和y軸舵機(jī)是否需要轉(zhuǎn)動;

步驟3,若x軸舵機(jī)和或y軸舵機(jī)需要轉(zhuǎn)動,則進(jìn)行人臉區(qū)域坐標(biāo)到相應(yīng)舵機(jī)控制信息的轉(zhuǎn)換,具體為,計算出控制相應(yīng)舵機(jī)運(yùn)動的速度和方向,速度是弧度每秒,方向就是正反轉(zhuǎn);

步驟4,在接收到運(yùn)行指令后,主控制器會根據(jù)舵機(jī)當(dāng)前速度、期望運(yùn)行速度、加速度、目標(biāo)角度,計算出減速點;其中,期望運(yùn)行速度為步驟3中得到的控制相應(yīng)舵機(jī)運(yùn)動的速度和方向;

步驟5,控制相應(yīng)舵機(jī)進(jìn)行先從當(dāng)前速度運(yùn)行到期望運(yùn)行速度,當(dāng)舵機(jī)運(yùn)行到減速點時,開始減速,減速完成時同時到達(dá)目標(biāo)角度,實現(xiàn)舵機(jī)的平滑運(yùn)動。

在步驟1中,獲取到的人臉區(qū)域坐標(biāo)為:區(qū)域左上角坐標(biāo)xf,yf,區(qū)域?qū)挾葁f,高度hf,畫面寬度w,畫面高度h,參考點坐標(biāo)xref,yref。

在步驟2中,分別判斷參考點坐標(biāo)xref,yref是否在人臉區(qū)域中判斷方法為:

如果xref>xf并且xref<xf+wf,在人臉區(qū)域中,則不對x軸進(jìn)行調(diào)整;如果不在區(qū)域中,則對x軸進(jìn)行調(diào)整;

如果yref>yf并且yref<yf+hf,在人臉區(qū)域中,則不對y軸進(jìn)行調(diào)整;如果不在區(qū)域中,則對y軸進(jìn)行調(diào)整。

在步驟3中,人臉區(qū)域坐標(biāo)到相應(yīng)舵機(jī)控制信息的轉(zhuǎn)換方法包含如下步驟:

1)計算人臉區(qū)域中心點相對于參考坐標(biāo)點的偏移距離;

2)根據(jù)偏移距離占總畫面寬度w的百分比,乘以最大可增加速度vmax,算出增加的速度v+;

3)在基準(zhǔn)速度上加上v+的絕對值,得到控制x軸舵機(jī)和y軸舵機(jī)的速度vx和vy,然后,根據(jù)增速v+的正負(fù),判斷轉(zhuǎn)動方向。

在步驟4中,減速點的計算方法如下:

s=v*t+1/2*a*t*t

s=v*(ve-v)/a+1/2*a*(ve-v)/a*(ve-v)/a

s=(ve-v)*(ve+v)/a/2

式中:v表示當(dāng)前速度,ve表示期望運(yùn)行速度,a為加速度,t為時間,s為加速距離;

根據(jù)上述公式計算出以當(dāng)前速度、加速度,運(yùn)行到期望運(yùn)行速度總共所需運(yùn)行的加速距離s,也為s減速距離;

再根據(jù)當(dāng)前弧度和目標(biāo)弧度,計算出剩下能夠運(yùn)行的距離s剩,即目標(biāo)點距離se;

1)若剩下能夠運(yùn)行的距離s剩大于加速和減速所需路程之和,減速點則為目標(biāo)點距離se減去減速所需距離;

2)若剩下的距離s剩小于加速和減速所需路程之和,則比較加速距離和減速距離:

21)若加速距離等于減速距離的話,則剩余路程的中點即為減速點;

22)若加速距離不等于減速距離的話,則計算從當(dāng)前速度立刻減速到0時所需的路程:

221)若此路程小于剩余路程,則減速點為

s減速點=se–(s立刻減速+((se–s立刻減速)/2))

222)若此路程大于等于剩余路程,則需要立刻減速。

相對于現(xiàn)有技術(shù),本發(fā)明系統(tǒng)及方法具有以下優(yōu)勢:

本發(fā)明為了使攝像頭的轉(zhuǎn)動更加的平滑,符合人體頭部轉(zhuǎn)動的運(yùn)動方式,在對舵機(jī)的控制上,加入了對舵機(jī)速度和加速度的控制。實現(xiàn)攝像頭的一個流暢的運(yùn)行過程。

附圖說明

構(gòu)成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1為本發(fā)明實施例所述攝像頭人臉跟蹤系統(tǒng)的框圖;

圖2為本發(fā)明實施例所述舵機(jī)控制板的電路圖。

具體實施方式

需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。

下面將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。

攝像頭人臉跟蹤系統(tǒng),如圖1所示,包括主控制器、舵機(jī)控制板、水平舵機(jī)、垂直舵機(jī),所述主控制器通過串口與舵機(jī)控制板通信連接,所述舵機(jī)控制板連接水平舵機(jī)和垂直舵機(jī),所述水平舵機(jī)和垂直舵機(jī)分別通過傳動結(jié)構(gòu)控制攝像頭水平和垂直方向的運(yùn)行。本實施例由工控機(jī)作為主控制器,如圖2所示,舵機(jī)控制板的型號為stm32f103rc。

為了使攝像頭的轉(zhuǎn)動更加的平滑,符合人體頭部轉(zhuǎn)動的運(yùn)動方式,在對舵機(jī)的控制上,加入了對舵機(jī)速度和加速度的控制。因為速度是舵機(jī)的特性指標(biāo),不能改變。所以,想要進(jìn)行調(diào)速,只能通過控制器控制pwm波占空比的變化速度,來變化舵機(jī)運(yùn)行的速度。

想要實現(xiàn)攝像頭的一個流暢的運(yùn)行過程,需要使舵機(jī)逐漸加速到指定速度運(yùn)行,在快要到達(dá)指定目標(biāo)角度時,逐漸將速度減速到停止,同時運(yùn)行到指定角度位置。

舵機(jī)運(yùn)行的速度,在控制上相當(dāng)于對舵機(jī)角度的變化進(jìn)行細(xì)分,設(shè)定一個最小變化角度,根據(jù)一定的周期,以最小變化角度為單位,每個周期增加或減少一個最小角度,直到達(dá)到指定角度。具體實施時,最小變化角度相當(dāng)于是一個參數(shù),舵機(jī)控制板初始化時設(shè)定好,每次變化多少角度,根據(jù)這個角度去設(shè)置速度定時器的周期,一般這個設(shè)置成舵機(jī)最小旋轉(zhuǎn)角度,或者是他的倍數(shù),數(shù)值越小肯定變化的越平滑,相當(dāng)于微分的更細(xì),類似于分辨率。

只需要根據(jù)設(shè)定的速度,去計算這個變化的周期,就能實現(xiàn)對舵機(jī)運(yùn)行速度的控制。

舵機(jī)運(yùn)行的加速度,能夠使舵機(jī)的運(yùn)行能夠有一個加速和減速的過程,在控制上,只需要再設(shè)定一個最小變化速度,根據(jù)一定周期,以最小變化速度為單位,每個周期增加或減少一個最小速度,直到達(dá)到指定速度。根據(jù)設(shè)定的加速度,計算速度改變的周期,就能實現(xiàn)對舵機(jī)加速度的控制。具體實施時,最小變化速度也相當(dāng)于是一個參數(shù),舵機(jī)控制板初始化時設(shè)定好,每次變化多少速度,根據(jù)這個角度去設(shè)置加速度定時器的周期,數(shù)值越小肯定變化的越平滑,相當(dāng)于微分的更細(xì),類似于分辨率。

上述攝像頭人臉跟蹤系統(tǒng)的人臉跟蹤方法,包括如下步驟:

步驟1,通過人臉識別算法,獲得當(dāng)前人臉在畫面中的區(qū)域坐標(biāo);

步驟2,根據(jù)人臉區(qū)域坐標(biāo),判斷x軸舵機(jī)和y軸舵機(jī)是否需要轉(zhuǎn)動;

步驟3,若x軸舵機(jī)和或y軸舵機(jī)需要轉(zhuǎn)動,則進(jìn)行人臉區(qū)域坐標(biāo)到相應(yīng)舵機(jī)控制信息的轉(zhuǎn)換,具體為,計算出控制相應(yīng)舵機(jī)運(yùn)動的速度和方向,速度是弧度每秒,方向就是正反轉(zhuǎn);

以此速度(人臉距離畫面中心越遠(yuǎn),轉(zhuǎn)動速度越快),朝向人臉位置運(yùn)動一小段時間(例如20ms),逐漸逼近人臉位置。因為人體移動相對較快,圖像識別出每一幀人臉的區(qū)域坐標(biāo)都在不斷變化,所以使舵機(jī)直接轉(zhuǎn)到人臉?biāo)诮嵌炔⒉荒芎芊€(wěn)定的使攝像頭對準(zhǔn)人臉,攝像頭會隨著人體移動出現(xiàn)左右擺動的現(xiàn)象。所以采用了根據(jù)每一幀的人臉區(qū)域數(shù)據(jù),朝向人臉的方向運(yùn)動一小段距離。這樣使運(yùn)動過程細(xì)分,能夠及時的響應(yīng)人臉位置的變化,也能更準(zhǔn)確平滑的實現(xiàn)跟蹤的過程。

步驟4,在接收到運(yùn)行指令后,主控制器會根據(jù)舵機(jī)當(dāng)前速度、期望運(yùn)行速度、加速度、目標(biāo)角度,計算出減速點;其中,期望運(yùn)行速度為步驟3中得到的控制相應(yīng)舵機(jī)運(yùn)動的速度和方向;

步驟5,控制相應(yīng)舵機(jī)進(jìn)行先從當(dāng)前速度運(yùn)行到期望運(yùn)行速度,當(dāng)舵機(jī)運(yùn)行到減速點時,開始減速,減速完成時同時到達(dá)目標(biāo)角度,實現(xiàn)舵機(jī)的平滑運(yùn)動。

在步驟1中,獲取到的人臉區(qū)域坐標(biāo)為:區(qū)域左上角坐標(biāo)(xf,yf),區(qū)域?qū)挾葁f,高度hf,畫面寬度w,畫面高度h,參考點坐標(biāo)(xref,yref)。

在步驟2中,分別判斷參考點坐標(biāo)xref,yref是否在人臉區(qū)域中。例如,首先,判斷x軸上參考點xref坐標(biāo)是否在人臉區(qū)域中:

如果xref>xf并且xref<xf+wf,在人臉區(qū)域中,則不對x軸進(jìn)行調(diào)整,x軸舵機(jī)不需轉(zhuǎn)動;

如果不在區(qū)域中,則對x軸進(jìn)行調(diào)整,x軸舵機(jī)需轉(zhuǎn)動。

在步驟3中,人臉區(qū)域坐標(biāo)到相應(yīng)舵機(jī)控制信息的轉(zhuǎn)換方法包含如下步驟(以x軸舵機(jī)調(diào)整為例):

1)計算人臉區(qū)域中心點相對于參考坐標(biāo)點的偏移距離xoffset:

xoffset=xref–(xf+wf/2);

2)根據(jù)偏移距離xoffset占總畫面寬度w的百分比,乘以最大可增加速度(vmax),算出增加的速度v+:

v+=vmax*(xoffset/w);

3)在基準(zhǔn)速度v上加上v+的絕對值,得到控制x軸舵機(jī)的速度vx,然后,根據(jù)增速v+的正負(fù),判斷轉(zhuǎn)動方向,決定vx的正負(fù)。

如果v+為正,則vx=v+|v+|,如果v+為負(fù),則vx=-v-|v+|。

如果y軸上需要轉(zhuǎn)動,對y軸的上參考點yref進(jìn)行同樣的計算,算出速度vy。

在步驟4中,控制器只要收到目標(biāo)角度()和運(yùn)行速度輸入值,控制器就能控制舵機(jī)以期望值平滑運(yùn)行,但在實際操作中,由于用戶指令的變化,舵機(jī)運(yùn)行狀態(tài),舵機(jī)角度限位等因素,也許不能平滑的實現(xiàn)用戶期望的動作,在這時控制器就要對運(yùn)行動作進(jìn)行調(diào)整,計算合適的減速點,保證舵機(jī)運(yùn)行的速度降到0的同時運(yùn)行到目標(biāo)角度,根據(jù)期望速度和運(yùn)行時間算目標(biāo)角度為現(xiàn)有技術(shù)。

減速點的計算是舵機(jī)平滑運(yùn)行的關(guān)鍵點,控制器會根據(jù)舵機(jī)當(dāng)前速度、期望運(yùn)行速度、加速度、期望目標(biāo)角度等參數(shù),計算出減速點,控制舵機(jī)的運(yùn)行。舵機(jī)的運(yùn)行速度以弧度每秒為單位,目標(biāo)角度以弧度表示。

其中,加速度a就是舵機(jī)啟動和停止時的加速度,單位是弧度/s2,這個是在舵機(jī)控制器初始化的時候設(shè)置的一個參數(shù),在控制速度的指令中不涉及到這個參數(shù)。

其中,目標(biāo)角度是舵機(jī)控制板根據(jù)收到的指令設(shè)定的,望期轉(zhuǎn)到的角度,或者指定設(shè)定期望運(yùn)動的時間和速度,根據(jù)時間和速度算出來期望的目標(biāo)角度。

減速點的計算方法如下:

s=v*t+1/2*a*t*t

s=v*(ve-v)/a+1/2*a*(ve-v)/a*(ve-v)/a

s=(ve-v)*(ve+v)/a/2

式中:v表示當(dāng)前速度,ve表示期望運(yùn)行速度,a為加速度,t為時間,s為加速距離。

根據(jù)上述公式計算出以當(dāng)前速度、加速度,運(yùn)行到期望運(yùn)行速度總共所需運(yùn)行的加速距離s(也為s減速距離)。再根據(jù)當(dāng)前弧度和目標(biāo)弧度,計算出剩下能夠運(yùn)行的距離s剩(s剩就是當(dāng)前位置距離目標(biāo)弧度se的距離)。

1)若剩下能夠運(yùn)行的距離s剩大于加速和減速所需路程之和,則說明中間有勻速運(yùn)行時段,減速點則為目標(biāo)點距離se減去減速所需距離(s減速距離,單位為弧度),其中目標(biāo)點距離se為目標(biāo)角度,單位為弧度;

s減速點=se-s減速距離

2)若剩下的距離s剩小于加速和減速所需路程之和,則說明剩下路程不夠使舵機(jī)達(dá)到指定速度。需要重新計算一個能夠達(dá)到的最大速度,保證能夠在目標(biāo)點降速到0。在這種情況下,

21)若加速距離等于減速距離的話,則剩余路程的中點即為減速點;

s減速點=se–(s剩/2)

22)若加速距離不等于減速距離的話,則計算一下,從當(dāng)前速度立刻減速到0時所需的路程(s立刻減速),

s立刻減速=(ve-v)*(ve+v)/2a

v等于當(dāng)前速度,ve等于0,a數(shù)值等于負(fù)a,即:

s立刻減速=(0-v)*(0+v)/(-a)/2=v2/2a;

221)若此路程小于剩余路程,則減速點為

s減速點=se–(s立刻減速+((se–s立刻減速)/2))

222)若此路程大于等于剩余路程,則需要立刻減速。

本發(fā)明通過人臉識別算法,獲得當(dāng)前人臉在畫面中的區(qū)域坐標(biāo),根據(jù)坐標(biāo)來控制水平和垂直兩個方向上的x軸舵機(jī)和y軸舵機(jī),根據(jù)vx,vy兩個速度去控制x軸舵機(jī)和y軸舵機(jī)的轉(zhuǎn)動。保證參考點坐標(biāo)(xref,yref)始終在人臉區(qū)域中,達(dá)到人臉跟隨的功能。實現(xiàn)保持人臉在畫面的中心區(qū)域,實現(xiàn)攝像頭對人臉的高效跟蹤。

以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1