本發(fā)明屬于安防監(jiān)控技術(shù)領(lǐng)域,尤其涉及用于安防監(jiān)控領(lǐng)域的自動光圈控制方法及裝置。
背景技術(shù):
在安防監(jiān)控領(lǐng)域,尤其是道路監(jiān)控,隧道監(jiān)控等技術(shù)領(lǐng)域,不可避免地會出現(xiàn)環(huán)境亮暗變化劇烈的情況,為了適應(yīng)上述監(jiān)控過程中的光線變化,監(jiān)控攝像機(jī)的自動光圈控制功能基本會采用比例-積分-微分(PID)的控制策略,常用策略是傳統(tǒng)的位置式PID控制,或者類似位置式PID控制結(jié)合階梯變步長控制。
然而,上述自動光圈控制策略在面對環(huán)境亮度變化劇烈的情況時,多少都會出現(xiàn)自動光圈調(diào)節(jié)緩慢并且出現(xiàn)過調(diào)節(jié),使得光圈全關(guān)或者是來回劇烈震蕩,影響了安防監(jiān)控的視頻輸出效果。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了用于安防監(jiān)控領(lǐng)域的自動光圈控制方法及裝置,以解決現(xiàn)有技術(shù)在進(jìn)行自動光圈控制時會出現(xiàn)自動光圈調(diào)節(jié)緩慢并且出現(xiàn)過調(diào)節(jié),使得光圈全關(guān)或者是來回劇烈震蕩,影響了安防監(jiān)控的視頻輸出效果的問題。
第一方面,提供了一種用于安防監(jiān)控領(lǐng)域的自動光圈控制方法,包括:
獲取當(dāng)前的亮度誤差值,所述亮度誤差值為攝像機(jī)當(dāng)前獲取的實時畫面的平均亮度值與預(yù)設(shè)的目標(biāo)亮度值的差值;
基于所述亮度誤差值,采用非線性PID算法計算增量式PID控制算子;
導(dǎo)入所述增量式PID控制算子,計算得到驅(qū)動PWM的值;
根據(jù)所述驅(qū)動PWM的值對所述攝像機(jī)進(jìn)行自動光圈控制。
第二方面,提供了一種用于安防監(jiān)控領(lǐng)域的自動光圈控制裝置,包括:
獲取單元,用于獲取當(dāng)前的亮度誤差值,所述亮度誤差值為攝像機(jī)當(dāng)前獲取的實時畫面的平均亮度值與預(yù)設(shè)的目標(biāo)亮度值的差值;
第一計算單元,用于基于所述亮度誤差值,采用非線性PID算法計算增量式PID控制算子;
第二計算單元,用于導(dǎo)入所述增量式PID控制算子,計算得到驅(qū)動PWM的值;
控制單元,用于根據(jù)所述驅(qū)動PWM的值對所述攝像機(jī)進(jìn)行自動光圈控制。
在本發(fā)明實施例中,根據(jù)監(jiān)控攝像機(jī)當(dāng)前實時畫面的亮度誤差值來計算當(dāng)前需要的驅(qū)動PWM,以實現(xiàn)對攝像頭的自動光圈控制,在監(jiān)控攝像機(jī)遇到環(huán)境亮度劇烈變化的情況下能夠自動控制光圈開合,以達(dá)到適宜的曝光效果,且整個調(diào)節(jié)過程快速穩(wěn)定,提升了安防監(jiān)控的視頻輸出效果。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是安防監(jiān)控領(lǐng)域攝像機(jī)鏡頭的光圈控制原理示意圖;
圖2是本發(fā)明實施例提供的安防監(jiān)控領(lǐng)域攝像機(jī)鏡頭的光圈控制流程的示意圖;
圖3是本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制方法的實現(xiàn)流程圖;
圖4是本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制方法S302的具體實現(xiàn)流程圖;
圖5是本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制方法S403的具體實現(xiàn)流程圖;
圖6是本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制裝置的結(jié)構(gòu)框圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細(xì)節(jié),以便透徹理解本發(fā)明實施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
為了更好地闡述本發(fā)明實施例,首先對安防監(jiān)控領(lǐng)域攝像機(jī)鏡頭的光圈控制原理進(jìn)行描述:
如圖1所示,輸入直流電機(jī)驅(qū)動芯片的包括基準(zhǔn)脈沖寬度調(diào)制(Pulse Width Modulation,PWM)和驅(qū)動PWM,其中,基準(zhǔn)PWM由硬件電路預(yù)先設(shè)置好,其取值大小由硬件電路的具體結(jié)構(gòu)決定;主控制芯片基于前端鏡頭輸入圖像的亮度信息統(tǒng)計結(jié)果,根據(jù)內(nèi)部自動光圈控制算法計算驅(qū)動PWM并輸出給直流電機(jī)驅(qū)動芯片,直流電機(jī)驅(qū)動芯片轉(zhuǎn)換得到驅(qū)動電平,用來控制電機(jī)的轉(zhuǎn)動方向以及速度,從而達(dá)到控制鏡頭的光圈開合的目的。如圖2所示,在進(jìn)行光圈控制時,首先判斷當(dāng)前的光圈控制模式及曝光模式,以確定是否啟動相應(yīng)的自動光圈控制功能模塊,實現(xiàn)自動光圈控制。
圖3示出了本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制方法的實現(xiàn)流程,其中的技術(shù)方案主要用于實現(xiàn)對攝像機(jī)鏡頭自動光圈控制,詳述如下:
在S301中,獲取當(dāng)前的亮度誤差值,所述亮度誤差值為攝像機(jī)當(dāng)前獲取的實時畫面的平均亮度值與預(yù)設(shè)的目標(biāo)亮度值的差值。
其中,攝像機(jī)當(dāng)前獲取的實時畫面的平均亮度值,是指攝像機(jī)當(dāng)前獲取到的當(dāng)前圖像幀中像素亮度的平均值,而預(yù)設(shè)的目標(biāo)亮度值通常為監(jiān)控系統(tǒng)設(shè)置的能夠滿足用戶對畫面亮度需求的一個亮度值。
作為本發(fā)明的一個實施例,在獲取到亮度誤差值之后,執(zhí)行S302之前,所述方法還包括:
對所述亮度誤差值進(jìn)行預(yù)處理,包括將所述亮度誤差值除以一個預(yù)設(shè)因子。
由于亮度誤差值可以為正,也可以為負(fù),因此,亮度誤差值的正負(fù)分別對應(yīng)不同的預(yù)設(shè)因子,預(yù)設(shè)因子的大小可以根據(jù)實際情況進(jìn)行調(diào)節(jié),其作用是確定亮度的最小調(diào)節(jié)范圍,以助于光圈大小的穩(wěn)定性調(diào)節(jié)。
在S302中,基于所述亮度誤差值,采用非線性PID算法計算增量式PID控制算子。
在本發(fā)明實施例中,增量式PID控制算子由亮度誤差值來決定,具體地,如圖4所示:
在S401中,計算p_data、i_data和d_data,其中:
p_data=p_coef*luma_data[0]/p_div,luma_data[0]為當(dāng)前的所述亮度誤差值,p_div為預(yù)設(shè)常數(shù),p_coef為關(guān)于所述亮度誤差值的非負(fù)的單調(diào)遞增函數(shù);
i_data=i_data+i_coef*luma_data[0],luma_data[0]與i_coef呈反比;
d_data=Δerror=luma_data[0]-luma_data[1],luma_data[1]為上一次輸入的所述亮度誤差值。
對于p_data,p_coef為一個隨著亮度誤差值的大小實時變化的一個值,p_coef是亮度誤差值luma_data[0]的函數(shù),滿足p_coef=F(luma_data[0]),其中F(luma_data[0])可以是線性函數(shù),也可以是非線性函數(shù),但是必須保證其為luma_data[0]非負(fù)的單調(diào)遞增函數(shù),這樣使得程序更加簡化,只用兩條語句即可完成p_data的確定,并且p_data的大小嚴(yán)格按照luma_data[0]的變化趨勢迅速變化,調(diào)整的速度和平穩(wěn)度也得到了顯著提高,p_div為預(yù)設(shè)常數(shù),可以根據(jù)不同的自動光圈鏡頭進(jìn)行調(diào)整。
對于i_data,根據(jù)PID控制原理中積分控制的作用,將i_data的控制做階梯分段處理,所分階數(shù)n可以根據(jù)實際自行調(diào)整,具體思想為:亮度誤差值越小,i_data中的乘因子i_coef越大。其實現(xiàn)方式為,將luma_data[0]分為正負(fù)兩個方向,每個方向分為n個等級,每個等級的步長可自行設(shè)置,對應(yīng)的乘因子i_coef根據(jù)實際電路調(diào)試結(jié)果做相應(yīng)的設(shè)置,其中n以及各個i_coef都為大于0的常數(shù)。
對于d_data,其值為亮度誤差增量,即當(dāng)前的亮度誤差值與上一次輸入的亮度誤差值之差,在此,可以通過設(shè)置中間變量來保證當(dāng)前輸入的亮度誤差值不覆蓋上一次輸入的亮度誤差值,中間變量的設(shè)置可通過如下語句實現(xiàn):
luma_data[0]=luma_data;
luma_data[1]=luma_data[0]。
在S402中,將p_data、i_data和d_data導(dǎo)入Δduty=Δu=A*p_data+B*i_data+C*d_data。
在S403中,通過調(diào)試確定A、B、C的值,以得到所述增量式PID控制算子Δduty。
作為本發(fā)明的一個實施例,A、B、C的值可以通過圖5所示的方式調(diào)試得到:
在S501中,將B和C設(shè)置為0并調(diào)節(jié)A值,待所述攝像機(jī)的光圈達(dá)到第一預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的A值。
在S502中,將C設(shè)置為0,調(diào)節(jié)B值,待所述攝像機(jī)的光圈達(dá)到第二預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的B值。
在S503中,調(diào)節(jié)C值,待所述攝像機(jī)的光圈達(dá)到第三預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的C值。
在本實施例中,第一預(yù)設(shè)穩(wěn)定狀態(tài)、第二預(yù)設(shè)穩(wěn)定狀態(tài)、第三預(yù)設(shè)穩(wěn)定狀態(tài)分別對應(yīng)的光圈控制的穩(wěn)定程度依序升高,例如,首先,將B和C設(shè)置為0,單獨調(diào)節(jié)A值,待攝像機(jī)的光圈能夠快速調(diào)節(jié)到合適狀態(tài),并且出現(xiàn)振蕩較小時,確定當(dāng)前的A值;其次,將C設(shè)置為0,調(diào)節(jié)B值,待到攝像機(jī)的光圈調(diào)節(jié)到光圈幾乎不再振蕩時,確定當(dāng)前的B值;最后,調(diào)節(jié)C值,直到保證系統(tǒng)檢測到環(huán)境亮度發(fā)生劇烈變化的時候光圈能夠快速平穩(wěn)收斂,確定當(dāng)前的C值。
在S303中,導(dǎo)入所述增量式PID控制算子,計算得到驅(qū)動PWM的值。
在本發(fā)明實施例中,在增量式非線性PID算法中導(dǎo)入增量式PIID控制算子,以計算得到驅(qū)動PWM的值。
進(jìn)一步地,作為本發(fā)明的一個實施例,可以對傳統(tǒng)的增量式PID算法進(jìn)行改進(jìn),即:
將所述增量式PID控制算子導(dǎo)入u=u(ref)±Δduty,將得到的u值作為所述驅(qū)動PWM的值。其中,將傳統(tǒng)的增量式PID算法中的u(k-1)替換為u(ref),該u(ref)為與當(dāng)前的基準(zhǔn)PWM相關(guān)的值,根據(jù)具體電路來進(jìn)行設(shè)置,這樣,最終輸出的驅(qū)動PWM的值與上一次輸出的驅(qū)動PWM的值的關(guān)系就直接切斷了,當(dāng)前輸出的驅(qū)動PWM的值只與實際的硬件電路和當(dāng)前的亮度誤差值有關(guān),這樣一來,對攝像機(jī)的自動光圈控制實現(xiàn)起來更加簡單,調(diào)節(jié)速度更快,調(diào)節(jié)效果更加穩(wěn)定。
在S304中,根據(jù)所述驅(qū)動PWM的值對所述攝像機(jī)進(jìn)行自動光圈控制。
在本發(fā)明實施例中,根據(jù)監(jiān)控攝像機(jī)當(dāng)前實時畫面的亮度誤差值來計算當(dāng)前需要的驅(qū)動PWM,以實現(xiàn)對攝像頭的自動光圈控制,在監(jiān)控攝像機(jī)遇到環(huán)境亮度劇烈變化的情況下能夠自動控制光圈開合,以達(dá)到適宜的曝光效果,且整個調(diào)節(jié)過程快速穩(wěn)定,提升了安防監(jiān)控的視頻輸出效果。
應(yīng)理解,上述實施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
對應(yīng)于上文實施例所述的用于安防監(jiān)控領(lǐng)域的自動光圈控制方法,圖6示出了本發(fā)明實施例提供的用于安防監(jiān)控領(lǐng)域的自動光圈控制裝置的結(jié)構(gòu)框圖,為了便于說明,僅示出了與本實施例相關(guān)的部分。
參照圖6,該裝置包括:
獲取單元61,獲取當(dāng)前的亮度誤差值,所述亮度誤差值為攝像機(jī)當(dāng)前獲取的實時畫面的平均亮度值與預(yù)設(shè)的目標(biāo)亮度值的差值;
第一計算單元62,基于所述亮度誤差值,采用非線性PID算法計算增量式PID控制算子;
第二計算單元63,導(dǎo)入所述增量式PID控制算子,計算得到驅(qū)動PWM的值;
控制單元64,根據(jù)所述驅(qū)動PWM的值對所述攝像機(jī)進(jìn)行自動光圈控制。
可選地,所述裝置還包括:
預(yù)處理單元,對所述亮度誤差值進(jìn)行預(yù)處理,包括將所述亮度誤差值除以一個預(yù)設(shè)因子。
可選地,所述第一計算單元62具體用于:
計算p_data、i_data和d_data,其中:
p_data=p_coef*luma_data[0]/_div,luma_data[0]為當(dāng)前的所述亮度誤差值,p_div為預(yù)設(shè)常數(shù),p_coef為關(guān)于所述亮度誤差值的非負(fù)的單調(diào)遞增函數(shù);
i_datd=i_data+i_coef*luma_data[0],luma_data[0]與i_coef呈反比;
d_data=Δerror=luma_data[0]-luma_data[1],luma_data[1]為上一次輸入的所述亮度誤差值;
將p_data、i_data和d_data導(dǎo)入Δduty=Δu=A*p_data+B*i_data+C*d_data;
通過調(diào)試確定A、B、C的值,以得到所述增量式PID控制算子Δduty。
進(jìn)一步地,所述第一計算單元62具體用于:
將B和C設(shè)置為0并調(diào)節(jié)A值,待所述攝像機(jī)的光圈達(dá)到第一預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的A值。
將C設(shè)置為0,調(diào)節(jié)B值,待所述攝像機(jī)的光圈達(dá)到第二預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的B值;
調(diào)節(jié)C值,待所述攝像機(jī)的光圈達(dá)到第三預(yù)設(shè)穩(wěn)定狀態(tài)時,確定當(dāng)前的C值。
可選地,所述第二計算單元63具體用于:
將所述增量式PID控制算子導(dǎo)入u=u(ref)±Δduty,將得到的u值作為所述驅(qū)動PWM的值,u(ref)為與當(dāng)前的基準(zhǔn)PWM相關(guān)的值。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將所述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護(hù)范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明實施例各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。