專利名稱:利用圖像的旋轉(zhuǎn)變體進行對象檢測的制作方法
背景技術(shù):
大多數(shù)現(xiàn)有技術(shù)水平的對象檢測算法能夠?qū)Ω鞣N對象的垂直、正面視圖進行檢測。此外,這些算法的一部分還能夠檢測有適度的平面內(nèi)旋轉(zhuǎn)的對象。然而,一旦固定了檢測算法,則這些算法的檢測性能難以改進,或不可能改進。換言之,不能在不增加與使用這些算法關聯(lián)的虛警率(false alarm rate)的情況下改進檢測率。這些對象檢測算法的性能還受到其基礎分類器容量的限制。更特別地,一旦達到了分類器的容量,傳統(tǒng)的檢測算法不能夠在不增加虛警率的情況下改進它們的檢測率,反之亦然。
從而,人們期望能夠以相對高的檢測率和相對低的虛警率來檢測對象。
發(fā)明內(nèi)容
公開一種在圖像中檢測預定的對象的方法。在本方法中,檢測圖像中潛在的預定對象。此外,對圖像的至少一部分加以旋轉(zhuǎn),并且確定在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象。而且,響應在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象的確定,確定潛在的預定對象是否是預定對象的精確檢測。
從以下參考附圖的說明中,本發(fā)明的特征對于所屬技術(shù)領域的專業(yè)人員來說將是顯而易見的,其中圖1A示出了根據(jù)本發(fā)明的一種實施例的對象檢測系統(tǒng)的方框圖;圖1B示出了根據(jù)本發(fā)明的另一種實施例的對象檢測系統(tǒng)的方框圖;圖2圖解了根據(jù)本發(fā)明的一種實施例的在圖像中檢測對象的方法的操作模式的流程圖;圖3圖解了根據(jù)本發(fā)明的另一種實施例的在圖像中檢測對象的方法的操作模式的流程圖;
圖4圖解了根據(jù)本發(fā)明的又一種實施例的在圖像中檢測對象的方法的操作模式的流程圖;圖5圖解了一種根據(jù)本發(fā)明的實施例的計算機系統(tǒng),其可以用于執(zhí)行以上所述的對象檢測系統(tǒng)的各種功能。
具體實施例方式
為了簡單和舉例說明的目的,本發(fā)明將主要通過參考其示例性實施例加以說明。在以下說明中,對許多特定的細節(jié)加以陳述以便提供對本發(fā)明的全面理解。然而,對于所屬技術(shù)領域的普通人員來說顯而易見的是,可以不受這些特定細節(jié)限制地實施本發(fā)明。在其它的實例中,眾所周知的方法和結(jié)構(gòu)并沒有詳細地加以說明,以便不會不必要地模糊本發(fā)明。
在此,公開了空間濾波算法來改進各種對象檢測算法的性能。通常,空間濾波算法被設計為,通過利用(leverage upon)圖像的多個旋轉(zhuǎn)變體(version)之間的空間冗余度來提高各種對象檢測算法的性能。此外,空間濾波算法并不與任何特定類型的對象檢測算法相聯(lián)接,因此可以與許多不同的對象檢測算法一起使用。
換而言之,在此公開的空間濾波算法設計為,通過產(chǎn)生和評估一個或多個圖像的多個旋轉(zhuǎn)變體來精確地檢測對象,例如,諸如人的面部、汽車、家居產(chǎn)品等。一方面,空間濾波算法可以確定在哪一個旋轉(zhuǎn)變體中檢測到了同一對象。若同一檢測對象出現(xiàn)在圖像的多個旋轉(zhuǎn)變體之中,則該潛在的檢測對象是圖像中的實際對象的概率會相對較高?;蛘?,若潛在的檢測對象并未出現(xiàn)在多個旋轉(zhuǎn)變體的至少之一中,則該潛在的檢測對象不是所期望的對象的概率會相對較高,因此對其可以忽略。在這點上,通過實現(xiàn)在此公開的空間濾波算法,各種對象檢測算法的檢測率可以得到改進,而且還不會提高它們的虛警率。
在此公開的空間濾波算法可以有相對較為廣泛的適用范圍,因此,可以與廣泛的各種對象檢測算法一起使用。例如,這些空間濾波算法可以與應用于基于面部的內(nèi)容分析、身份識別管理、圖像質(zhì)量評估和人工智能等方面的對象檢測算法一起使用。
首先,參考圖1A,其示出了對象檢測系統(tǒng)102的方框圖100。應該了解,以下對方框圖100的說明只是這種對象檢測系統(tǒng)102可以配置成的多種不同方式中的一種方式。此外,還應該了解,對象檢測系統(tǒng)102可以包括附加的元件,并且一些在此所述的元件可以移除和/或更改而不會脫離對象檢測系統(tǒng)102的范圍。例如,對象檢測系統(tǒng)102可以包括附加的輸入裝置、輸出裝置、存儲器和模塊等。
對象檢測系統(tǒng)102包括配置用于執(zhí)行對象檢測系統(tǒng)102的各種功能的控制器104。在這點上,控制器104可以包括計算裝置,例如計算機系統(tǒng)和服務器等。此外,控制器104可以包括配置用于執(zhí)行各種處理功能的微處理器、微控制器和專用集成電路(ASIC)等等。
控制器104可以與配置用于為控制器104供應信息(例如,諸如圖像數(shù)據(jù)等)的輸入裝置106對接(interface with)。輸入裝置106可以包括在裝有控制器104的計算裝置中的機器。在這點上,輸入裝置106可以包括諸如CD-ROM驅(qū)動器、軟盤驅(qū)動器和小型閃存讀卡器等的存儲裝置。此外,或另一選擇為,如圖1A中所繪制,輸入裝置106可以包括與控制器104分離的裝置。在這點上,例如,輸入裝置106可以包括外部驅(qū)動器、照相機、掃描儀和與內(nèi)部網(wǎng)或因特網(wǎng)的接口等。
不管怎樣,控制器104都可以通過輸入模塊108從輸入裝置106中接收圖像數(shù)據(jù)。輸入模塊108可以包括使從輸入裝置106到控制器104的消息和數(shù)據(jù)傳送能夠進行的一個或多個驅(qū)動器。此外,控制器104可以配置成通信并且把數(shù)據(jù)傳送回輸入裝置106,籍此控制輸入裝置106的某些操作。因此,例如,控制器104可以把消息發(fā)送到輸入裝置106,籍此接收圖像數(shù)據(jù)??刂破?04可以與輸入裝置106通信,其經(jīng)由以太網(wǎng)類型的連接或通過諸如IEEE 802.3等的有線協(xié)議,或諸如IEEE 802.11b、802.11g、無線串行連接和藍牙等的無線協(xié)議,或以上的組合。
從輸入裝置106接收到的圖像數(shù)據(jù)可以存儲在控制器104可訪問的存儲器110中。存儲器110可以包括傳統(tǒng)的存儲裝置,諸如易失或非易失存儲器,諸如DRAM、EEPROM和閃存及它們的組合等等。如在此之后更加詳細地公開,控制器104可以在存儲器110中存儲圖像數(shù)據(jù),以便可以檢索圖像數(shù)據(jù)以用于將來的操作和處理。此外,如在此之后所述,存儲器110可以存儲軟件、程序、算法和子程序,控制器104在執(zhí)行各種對象檢測算法的過程中可以訪問它們。
圖1A還示出了圖像旋轉(zhuǎn)模塊112,其配置用于操作圖像數(shù)據(jù)以使由圖像數(shù)據(jù)形成的圖像可以得到旋轉(zhuǎn)。雖然圖像旋轉(zhuǎn)模塊112圖示為包含在控制器104中,但是圖像旋轉(zhuǎn)模塊112可以包括存儲在存儲器110中的算法,控制器104可以訪問和執(zhí)行該算法。此外,圖像旋轉(zhuǎn)模塊112可以包括其它的配置成執(zhí)行以上所述功能的軟件或硬件。不管怎樣,圖像旋轉(zhuǎn)模塊112可以編程為把由圖像數(shù)據(jù)形成的圖像旋轉(zhuǎn)到相對于原始圖像成一個或更多個角度。因此,例如,圖像旋轉(zhuǎn)模塊112可以配置成在平面內(nèi)的方向上,以順時針或逆時針方向,從圖像的原始方位以大約1至5°的增量旋轉(zhuǎn)該圖像。例如,圖像旋轉(zhuǎn)增量的數(shù)量(number)可以基于所期望的對象檢測的精度級別。因此,圖像旋轉(zhuǎn)增量的數(shù)量越大,對象檢測的精度級別越高。然而,在某些情況下,旋轉(zhuǎn)到相對較高角度的圖像實際上可能降低檢測對象的精度,這是由于對象檢測模塊114可能無法在這些旋轉(zhuǎn)的圖像中精確地檢測所造成的。在這點上,圖像旋轉(zhuǎn)增量的數(shù)量可以基于基礎的對象檢測模塊114的特定的檢測特征來確定,例如,其可以為1-5增量左右。
對象檢測系統(tǒng)102還圖解為包括對象檢測模塊114,該對象檢測模塊配置用于在由圖像數(shù)據(jù)形成的圖像中檢測預定的對象。再者,雖然對象檢測模塊114圖示為包含在控制器104中,但是對象檢測模塊114可以包括存儲在存儲器110中的算法,控制器104可以訪問和執(zhí)行該算法。此外,對象檢測模塊114可以包括任何能夠在圖像中檢測對象的合適的常規(guī)算法。舉例來說,對象檢測模塊114可以包括Viola and Jones算法。對象檢測模塊114可以進一步包括其它的配置成執(zhí)行以上所述功能的軟件或硬件。
控制器104可以使用對象檢測模塊114來在原始圖像中和已經(jīng)由圖像旋轉(zhuǎn)模塊112旋轉(zhuǎn)的圖像中檢測預定的對象。此外,或者另一選擇為,對象檢測模塊114可以采用同一算法的不同參數(shù)配置,或者甚至不同的算法來處理旋轉(zhuǎn)到不同角度的圖像。圖像連同潛在對象的檢測定位都可以輸入到空間濾波模塊116中。空間濾波模塊116可以包括存儲在存儲器110中的算法,該算法可以由控制器104訪問和執(zhí)行。此外,空間濾波模塊116可以包括其它的配置成執(zhí)行在此所述的空間濾波模塊116的功能的軟件和硬件。
空間濾波模塊116通常工作來比較圖像(兩個或更多的旋轉(zhuǎn)圖像和原始圖像)以確定哪個圖像包含檢測對象。若在多個圖像中(例如,在原始圖像和一旋轉(zhuǎn)圖像中或在多個旋轉(zhuǎn)圖像中)檢測到對象,則空間濾波器116可以輸出已經(jīng)精確檢測到對象的指示。然而,對于更高的精確度,空間濾波模塊116可以比較多個旋轉(zhuǎn)圖像(在某些情況下和原始圖像)來確定旋轉(zhuǎn)圖像和原始圖像中哪些包含檢測對象。空間濾波器可以工作的一些方式將在此之后更詳細地加以說明。
空間濾波模塊116可以把關于所檢測的圖像的信息輸出到輸出裝置118。例如,輸出裝置118可以包括顯示圖像及檢測對象的定位的顯示器。此外,或者另一選擇為,例如,輸出裝置118可以包括配置成使用檢測對象信息的另一機器或程序。舉例來說,輸出裝置118可以包括對象識別程序,諸如圖像質(zhì)量評估程序、身份識別程序和機器人裝置的引導系統(tǒng)等。再舉一個例子,輸出裝置118可以包括一個或更多個上述與輸入裝置106有關的部件,在某些情況下,也可以包括輸入裝置106。
參考圖1B,其示出了對象檢測系統(tǒng)152的方框圖150。應該了解,以下對方框圖150的說明只是這種對象檢測系統(tǒng)152可以配置成的多種不同方式中的一種方式。此外,還應該了解,對象檢測系統(tǒng)152可以包括附加的元件,并且一些在此所述的元件可以移除和/或更改而不會脫離對象檢測系統(tǒng)152的范圍。例如,對象檢測系統(tǒng)152可以包括附加的輸入裝置、輸出裝置、模塊和存儲器等。
對象檢測系統(tǒng)152包含許多以上關于圖1A中所圖示的對象檢測系統(tǒng)102所述的相同的元件。照此,將不再關于對象檢測系統(tǒng)152,對具有與圖1A的對象檢測系統(tǒng)102中所示的那些元件相同的參考標號的元件提供詳細說明。而是,依靠以上對那些共有元件的說明,來為那些元件的充分理解提供了足夠公開。
圖1B中所圖示的對象檢測系統(tǒng)152與圖1A中所圖示的對象檢測系統(tǒng)102之間的一個主要區(qū)別是對象檢測系統(tǒng)152包括剪切(cropping)模塊154。剪切模塊154通常配置成剪切出(crop out),或者另外區(qū)分出由對象檢測模塊114檢測到的哪些對象是要檢測的潛在的預定對象。雖然剪切模塊154圖示為包含在控制器104中,但是剪切模塊154可以包括存儲在存儲器110中的算法,控制器104可以訪問和執(zhí)行該算法。此外,剪切模塊154可以包括任何能夠剪切各種圖像的合理適當?shù)某R?guī)算法。剪切模塊154可以進一步包括其它的配置成執(zhí)行在此所述的各種剪切功能的軟件或硬件。
對象檢測系統(tǒng)152中的對象檢測模塊114可以安排成,以相對較高的精確度檢測預定對象,同時犧牲增加虛警率的可能性。這類安排的原因是通過實現(xiàn)空間濾波模塊116,虛警可以從檢測結(jié)果中濾除。
不管怎樣,在對象檢測系統(tǒng)152中,由剪切模塊154剪切出來的包含潛在的預定對象的區(qū)域可以由圖像旋轉(zhuǎn)模塊112加以旋轉(zhuǎn)。對象檢測系統(tǒng)152中的圖像旋轉(zhuǎn)模塊112可以配置成把這些區(qū)域旋轉(zhuǎn)到相對于它們的原始位置的一個或更多的角度。因此,例如,圖像旋轉(zhuǎn)模塊112可以配置成在平面內(nèi)的方向上,以順時針或逆時針的方向,從圖像的原始方位以大約1至5°的增量旋轉(zhuǎn)該剪切區(qū)域。例如,剪切區(qū)域旋轉(zhuǎn)增量的數(shù)量可以基于所期望的檢測預定對象的精度級別。因此,剪切區(qū)域旋轉(zhuǎn)增量的數(shù)量越大,檢測預定對象的精度級別越高。然而,在某些情況下,旋轉(zhuǎn)到相對較高角度的剪切區(qū)域?qū)嶋H上可能降低檢測對象的精度,這是由于對象檢測模塊152可能無法在這些旋轉(zhuǎn)的剪切區(qū)域中精確地檢測對象所造成的。在這點上,剪切區(qū)域旋轉(zhuǎn)增量的數(shù)量可以基于基礎的對象檢測模塊114的特定的檢測特征來確定,例如,其可以為1-5增量左右。
對象檢測系統(tǒng)102與152之間的另一區(qū)別是對象檢測系統(tǒng)152包括配置用于在旋轉(zhuǎn)的圖像的剪切區(qū)域中檢測潛在對象的第二對象檢測模塊156。第二對象檢測模塊156可以包括對象檢測模塊114?;蛘撸诙ο髾z測模塊156可以包括配置成在圖像中檢測預定對象的完全不同的對象檢測模塊。如果第二對象檢測模塊156包括對象檢測模塊114,第二對象檢測模塊156可以包括與對象檢測模塊114不同的參數(shù)配置。
控制器104可以使用第二對象檢測模塊156來在已經(jīng)由圖像旋轉(zhuǎn)模塊112旋轉(zhuǎn)的剪切區(qū)域中檢測預定對象。該剪切區(qū)域可以輸入到空間濾波模塊116中??臻g濾波模塊116可以比較剪切區(qū)域(兩個或更多的旋轉(zhuǎn)的和原始的剪切區(qū)域)來確定哪個剪切區(qū)域包含檢測對象。若在多個剪切區(qū)域中(例如,在原始的剪切區(qū)域和一旋轉(zhuǎn)的剪切區(qū)域兩者中或在多個旋轉(zhuǎn)的剪切區(qū)域中)檢測到對象,則空間濾波器116可以輸出已經(jīng)精確檢測到對象的指示。然而,對于更高的精確度,空間濾波模塊116可以確定在多個旋轉(zhuǎn)的剪切區(qū)域(在某些情況下和原始的剪切區(qū)域)中的哪個檢測到了對象。如以上相對于對象檢測系統(tǒng)102所述,空間濾波模塊116可以把關于所檢測的剪切區(qū)域的信息輸出到輸出裝置118。
一方面,對象檢測系統(tǒng)152能夠以相對于對象檢測系統(tǒng)102較高的速度檢測預定對象。這可以是真實的,由于對象檢測系統(tǒng)152主要處理圖像的剪切部分,對象檢測系統(tǒng)152與對象檢測系統(tǒng)102相比可以處理更少的數(shù)據(jù)。
現(xiàn)在將對空間濾波模塊116加以更加詳細的說明。通常,空間濾波模塊116配置成尋找由對象檢測模塊114或156,基于圖像或剪切區(qū)域的多個旋轉(zhuǎn)變體所檢測到的結(jié)果之間的一致性。在第一個例子中,空間濾波模塊116基于一個概念,即原始圖像(I)中的真實的預定對象很可能在旋轉(zhuǎn)的圖像(Rm(I))中檢測到,其中m=1,2,...,n。這個例子還基于一個概念,即預定對象的虛警或假陽性不太可能在原始的圖像(I)和旋轉(zhuǎn)的圖像(Rm(I))中檢測到。這是真實的,因為虛警可以認為是隨機信號,其較少可能在多個旋轉(zhuǎn)的圖像中始終檢測到。
在圖1A和1B中,由對象檢測模塊114和156從各個圖像(原始的圖像和旋轉(zhuǎn)的圖像兩者)中所檢測到的結(jié)果可以包括多個對象。多個對象可以分解為Om={Om(1),Om(2),...,Om(n)}。在這個例子中,在執(zhí)行空間濾波模塊116之前,各個檢測的對象Om(j)(其中m表示圖像所處的各個角度,j表示各個對象)首先映射回原始的圖像,以便可以比較它們的空間關系。對于各個所檢測的對象Om(j),空間濾波模塊116在檢測結(jié)果Ok(k≠m)中搜索,試圖發(fā)現(xiàn)相應的涉及由Om(j)表示的同一對象的檢測結(jié)果。在這個處理中,對于各個對象“j”生成一致性矢量{v1,v2,...,vn},從而,若在旋轉(zhuǎn)的圖像Rm(I)上發(fā)現(xiàn)了相應的檢測結(jié)果,則矢量分量vm設置成1,否則矢量分量vm設置成0。最終的空間濾波模塊116的輸出由加權(quán)和來確定sum=w1*v1+w2*v2+...+wn*vn若“和”的值大于閾值“t”,則空間濾波模塊116的最終輸出被認為是有效檢測。否則,若“和”的值小于閾值“t”,則檢測可以認為是虛警。權(quán)重{w1,w2,...,wn}和相應的閾值“t”可以運用任何合適的傳統(tǒng)機器學習算法來設置,例如,諸如Y.Freund和R.Schapire在“A Short Introduction to Boosting”(Journal of JapaneseSociety for Artificial Intelligence,771-780頁,1999年9月)中所公開的Adaboost,該公開的全部內(nèi)容以引用的方式并入本文中。
此外,或另一選擇為,一致性矢量{v1,v2,..,vn}的各個分量可以包括由基礎的對象檢測模塊114和156所產(chǎn)生的真實值的信心指數(shù)(confidence indicator)。此外,各個分量的加權(quán)和還可以由基礎的對象檢測模塊114和156來計算。
在第二個例子中,空間濾波模塊116基于各種探索式的設計。這些探索式的設計可以以如“1-or”、“1-and”和“2-or”濾波器為特征?!?-or”濾波器可以定義為OD(R(I,a))||OD(R(I,-a))。
“1-and”濾波器可以定義為OD(R(I,a))&&OD(R(I,-a))。
“2-or”濾波器可以定義為[OD(R(I,a))&&OD(R(I,-a))]||[OD(R(I,-2a))&&OD(I,-a)]||[OD(R(I,2a))&&OD(I,a)]。
在以上所述的各個濾波器中,圖像或圖像的剪切區(qū)域由“I”表示,“R(I,a)”表示圖像或剪切區(qū)域的“a”角度的旋轉(zhuǎn)變體,其中“a”為確定旋轉(zhuǎn)角度的預定參數(shù),“&&”為“與”操作符,“||”為“或”操作符?!癘D()”表示返回二進制輸出的對象檢測模塊114和156。二進制輸出可以包括例如OD(R(I,a))=1,其指示在大小與原始的檢測對象區(qū)域相似的旋轉(zhuǎn)的圖像中檢測到了對象。否則,OD(R(I,a))=0指示在大小與原始的檢測對象相似的旋轉(zhuǎn)的圖像中沒有檢測到對象。
舉例來說,關于“1-and”濾波器,若d0是原始圖像或原始圖像的剪切區(qū)域中的潛在對象,d1是旋轉(zhuǎn)到角度“a”的圖像或剪切區(qū)域中的潛在對象,d2是旋轉(zhuǎn)到角度“-a”的圖像或剪切區(qū)域中的潛在對象,則若d1=1或d2=1,可以確定對象被正確地檢測到。更特別地,若d1與d0之間的比較表明d1的大小與d0相似,則d1可以等于1。此外,若d2與d0之間的比較表明d2的大小與d0相似,則d2可以等于1。否則,若d1和d2兩者都等于0,那么檢測為d0的潛在對象可以認為是虛警。
作為“1-and”濾波器的例子,若d1和d2都等于1,則可以確定對象被正確地檢測到。因此,若d1或d2等于0,那么檢測為d0的潛在對象可以認為是虛警。
舉例來說,關于“2-or”濾波器,d3是旋轉(zhuǎn)到另一角度“-2a”的圖像或剪切區(qū)域中的潛在對象,d4是旋轉(zhuǎn)到另一角度“2a”的圖像或剪切區(qū)域中的潛在對象。在此濾波器中,若d1和d2等于1、d3和d2等于1、d4和d1等于1、d2和d4等于1、d3和d4等于1或若d3和d1等于1,則可以確定對象被正確地檢測到。
雖然以上以特定數(shù)量的旋轉(zhuǎn)的圖像或圖像的剪切區(qū)域?qū)Ω鞣N濾波器作了說明,但應當理解,這些濾波器可以以任何合理適當?shù)臄?shù)量的旋轉(zhuǎn)的圖像或圖像的剪切區(qū)域起到作用。在這點上,以上所述的濾波器的例子并不意味著要限制為所述的旋轉(zhuǎn)的圖像或圖像剪切區(qū)域的數(shù)量,而是可以運用任何適當數(shù)量的旋轉(zhuǎn)的圖像或圖像剪切區(qū)域。
圖2圖解了在圖像中檢測對象的方法的操作模式200的流程圖。要了解,以下對操作模式200的說明只是實施操作模式200的多種不同方式中的一種方式。而且,對于所屬技術(shù)領域的普通人員來說顯而易見的是,操作模式200表示一般性的圖解說明,其它的步驟可以加入或已有的步驟可以去除、更改或重新安排而不會脫離操作模式200的范圍。
參考圖1A和1B中所圖解的方框圖100和150,對操作模式200進行說明,并且因此分別地參照其中所列舉的元件。然而,應該了解,操作模式200并不受限于在方框圖100和150中所陳述的元件。相反,應該了解,可以由與在方框圖100和150中所陳述的配置不同的對象檢測系統(tǒng)來實施操作模式200。
在步驟210,操作模式200可以通過由控制器104接收來自用戶的指令進行人工地初始化?;蛘撸僮髂J?00可以通過輸入裝置106的檢測等,響應接收到的各種信號,在預定時段后進行初始化。任何方面上,在步驟212,可以在圖像中檢測潛在的對象。潛在對象可以包括編程控制器104來檢測的預定的對象。
在步驟214,可以旋轉(zhuǎn)圖像的至少一部分。更特別地,在步驟214,可以旋轉(zhuǎn)一個或更多的剪切區(qū)域或整個圖像。可以旋轉(zhuǎn)圖像的至少一部分的方式,在此之前關于圖像旋轉(zhuǎn)模塊112更詳細地作了說明。
在步驟216,可以確定在旋轉(zhuǎn)的圖像的至少一部分中是否檢測到潛在的對象。如以上所述,在圖像的至少一部分中檢測潛在的對象可以由不同于步驟212檢測潛在對象所用的對象檢測模塊的對象檢測模塊來加以執(zhí)行,或者,可以由相同的對象檢測模塊來加以執(zhí)行。若使用相同的對象檢測模塊,則對象檢測模塊可以采用不同的參數(shù)配置來在旋轉(zhuǎn)的圖像的至少一部分中檢測潛在的對象。如步驟218所指示,基于在旋轉(zhuǎn)的圖像的至少一部分中是否檢測到潛在的對象的確定結(jié)果,可以確定潛在的對象是否是對象的精確檢測。
如步驟220所指示,操作模式200可以結(jié)束。對于操作模式200,結(jié)束條件可以與空閑模式相似,因為例如,當接收到另一個圖像要處理時,操作模式200可以重新初始化。
可以與操作模式200一起使用的附加的步驟將在以下相對于圖3和4來加以說明。
圖3圖解了在圖像中檢測對象的方法的操作模式300的流程圖。要了解的是,以下對操作模式300的說明只是可以實施操作模式300的各種不同方式中的一種方式。而且,對于所屬技術(shù)領域的普通人員來說顯而易見的是,操作模式300表示一般性的圖解說明,其它的步驟可以加入或已有的步驟可以去除、更改或重新安排而不會脫離操作模式300的范圍。
參考圖1A中所圖解說明的方框圖100,對操作模式300進行說明,并且因此參照其中所列舉的元件。然而,應該了解,操作模式300并不受限于在方框圖100中所陳述的元件。反而應該了解,可以由與在方框圖100中所陳述的配置不同的對象檢測系統(tǒng)來實施操作模式300。
在步驟310,操作模式300可以通過由控制器104接收來自用戶的指令進行人工地初始化?;蛘?,操作模式300可以通過輸入裝置106的檢測等,響應收到的各種信號,在預定時段后進行初始化。此外,在步驟312,控制器104可以接收來自輸入裝置106的輸入圖像數(shù)據(jù)??刂破?04可以接收圖像數(shù)據(jù)的各種方式,在此之前關于圖1A更詳細地作了說明。在步驟314,控制器104可以運行對象檢測模塊114,在由在步驟312接收到的圖像數(shù)據(jù)所表示的圖像中檢測潛在的預定對象。更特別地,對象檢測模塊114可以編程為,或者另外配置成在圖像中檢測預定的圖像。因此,對象檢測模塊114可以處理圖像來確定潛在的對象位于圖像中的位置或區(qū)域。一方面,對象檢測模塊114可以工作來產(chǎn)生圍繞潛在對象的方框或其它標識構(gòu)件以在圖像中標注它們的位置或區(qū)域。如步驟316所指示,對象檢測模塊114的結(jié)果可以輸入到空間濾波模塊116中。
如步驟318所指示,輸入的圖像還可以由圖像旋轉(zhuǎn)模塊112來加以旋轉(zhuǎn)。如以上所述,圖像旋轉(zhuǎn)模塊112可以在平面內(nèi)的方向上,以順時針或逆時針方向,從圖像的原始方位以大約1至5°的增量旋轉(zhuǎn)該圖像。因此,輸入的圖像可以由圖像旋轉(zhuǎn)模塊112旋轉(zhuǎn)到第一個角度。此外,在步驟320,控制器104可以運行對象檢測模塊114來在旋轉(zhuǎn)的圖像中檢測潛在的預定圖像。如在步驟314,對象檢測模塊114或不同的對象檢測模塊(未示出),可以配置成處理旋轉(zhuǎn)的圖像來確定潛在的對象位于旋轉(zhuǎn)的圖像中的位置或區(qū)域。再者,對象檢測模塊114或不同的對象檢測模塊,可以生成圍繞潛在對象的方框或其它的標識構(gòu)件以在旋轉(zhuǎn)的圖像中標注它們的位置或區(qū)域。在步驟322,對象檢測模塊114的結(jié)果再次輸入到空間濾波模塊116中。
如以下所述,對象檢測模塊可以在存儲器110中存儲結(jié)果,從而該結(jié)果可以由空間濾波模塊116訪問來處理圖像。在這點上,在步驟316和322,替代將結(jié)果輸入到空間濾波模塊116,可以將其輸入到存儲器110。
在步驟324,控制器104可以確定是否要獲得在旋轉(zhuǎn)的圖像上的附加的對象檢測。此確定可以基于所期望的在圖像中檢測對象的精確度的級別。例如,為了以更高的精確度來檢測所期望的對象,可以在規(guī)定的限度之內(nèi)分析較多的旋轉(zhuǎn)圖像?;蛘?,為了加快對象檢測的處理,可以分析較少的旋轉(zhuǎn)圖像??刂破?04可以用要分析的旋轉(zhuǎn)圖像的數(shù)量來加以編程,并且因此可以基于該編程確定是否要獲得附加的圖像旋轉(zhuǎn)。此外,圖像旋轉(zhuǎn)增量的數(shù)量可以基于基礎的對象檢測模塊114的特定的檢測特征來確定,例如,其可以為1-5增量左右。
若控制器104確定需要附加的圖像旋轉(zhuǎn),則可以重復步驟318-324。此外,步驟318-324可以一直重復,直到控制器104確定已經(jīng)處理了預定數(shù)量的旋轉(zhuǎn)圖像。在那一時刻,在步驟324,其等于“否”條件,在步驟326,空間濾波器116可以為一個或更多的旋轉(zhuǎn)的圖像處理對象檢測模塊114的結(jié)果。更特別地,空間濾波模塊116可以比較各種結(jié)果來確定預定對象在原始圖像中的位置,并且從檢測結(jié)果中去除虛警或假陽性??臻g濾波器116可以用來作出此確定的各種方式在此之前作了詳細說明。
在步驟328,來自空間濾波模塊116的結(jié)果還可以輸出到輸出裝置118。一方面,輸出裝置118可以包括顯示裝置,可以用于顯示所檢測到的預定對象的位置。另一方面,輸出裝置118可以包括另一配置成使用所檢測到的預定對象的信息的裝置或程序。
如步驟330所指示,操作模式300可以結(jié)束。對于操作模式300,結(jié)束條件可以與空閑模式相似,因為例如,當控制器104接收到另一個輸入圖像要處理時,操作模式300可以重新初始化。
圖4圖解了在圖像中檢測對象的另一方法的操作模式400的流程圖。要了解的是,以下對操作模式400的說明只是可以實施操作模式400的各種不同方式中的一種方式。而且,對于所屬技術(shù)領域的普通人員來說顯而易見的是,操作模式400代表一般性的圖解說明,其它的步驟可以加入或者已有的步驟可以去除、更改或重新安排而不會脫離操作模式400的范圍。
參考圖1B中所圖解的方框圖150,對操作模式400進行說明,并且因此參照其中所列舉的元件。然而,應該了解,操作模式400并不受限于在方框圖150中所陳述的元件。反而應該了解,可以由與在方框圖150中所陳述的配置不同的對象檢測系統(tǒng)來實施操作模式400。
操作模式400可以在步驟410,通過由控制器104接收來自用戶的指令進行人工地初始化。或者,操作模式400可以通過輸入裝置106的檢測等,響應收到的各種信號,在預定時段后進行初始化。此外,在步驟412,控制器104可以接收來自輸入裝置106的輸入圖像數(shù)據(jù)??刂破?04可以接收圖像數(shù)據(jù)的各種方式,已經(jīng)在之前相對于圖1A更詳細地作了說明。在步驟414,控制器104可以運行對象檢測模塊114在由在步驟412接收到的圖像數(shù)據(jù)所表示的圖像中檢測潛在的預定對象。更特別地,對象檢測模塊114可以編程,或者另外配置成在圖像中檢測預定的圖像。因此,對象檢測模塊114可以處理圖像來確定潛在的對象位于圖像中的位置或區(qū)域。一方面,對象檢測模塊114可以工作來生成圍繞潛在對象的方框或其它標識構(gòu)件以在圖像中標注它們的位置或區(qū)域。如步驟416所指示,對象檢測模塊114的結(jié)果可以輸入到剪切模塊154中。
在步驟418,剪切模塊154可以剪切由對象檢測模塊114檢測為潛在的預定對象的區(qū)域。此外,在步驟420,剪切模塊可以把剪切的區(qū)域輸入到空間濾波模塊116中。剪切模塊還可以把剪切的區(qū)域輸入到圖像旋轉(zhuǎn)模塊112中。在步驟422,圖像旋轉(zhuǎn)模塊112可以旋轉(zhuǎn)剪切的區(qū)域。如以上所述,圖像旋轉(zhuǎn)模塊112可以在平面內(nèi)的方向上,以順時針或逆時針的方向,從剪切區(qū)域的原始方位以大約1至5°的增量旋轉(zhuǎn)該剪切區(qū)域。因此,在步驟422,剪切的區(qū)域可以由圖像旋轉(zhuǎn)模塊112旋轉(zhuǎn)到第一個角度。
旋轉(zhuǎn)的剪切區(qū)域可以輸入到對象檢測模塊156中,如以上所述,該對象檢測模塊可以包括對象檢測模塊114或單獨的對象檢測模塊。此外,在步驟424,對象檢測模塊156可以運行來確定各個旋轉(zhuǎn)的剪切區(qū)域是否包含潛在的檢測對象。對象檢測模塊156可以配置成從那些由對象檢測模塊156不能夠檢測到潛在的預定對象的剪切區(qū)域中去除方框或其它的標識構(gòu)件。此外,在步驟426,對象檢測模塊156可以配置成把對象檢測的結(jié)果輸入到空間濾波器116中。
如以下所述,對象檢測模塊114、156可以在存儲器110中存儲各自的對象檢測的結(jié)果,從而該結(jié)果可以由空間濾波模塊116訪問來處理圖像。在這點上,在步驟420和426,取代于將結(jié)果輸入到空間濾波模塊116,可以輸入到存儲器110。
在步驟428,控制器104可以確定是否要獲得在旋轉(zhuǎn)的剪切區(qū)域中的附加的對象檢測。此確定可以基于所期望的在圖像中檢測對象的精確度的級別。例如,為了以更高的精確度來檢測所期望的對象,可以在規(guī)定的限度之內(nèi)分析較多的旋轉(zhuǎn)剪切區(qū)域?;蛘?,為了加快對象檢測的處理,可以分析較少的旋轉(zhuǎn)剪切區(qū)域??刂破?04可以用要分析的旋轉(zhuǎn)剪切區(qū)域的數(shù)量來加以編程,并且因此可以基于該編程確定是否要獲得附加的剪切區(qū)域旋轉(zhuǎn)。此外,圖像旋轉(zhuǎn)增量的數(shù)量可以基于基礎的對象檢測模塊114的特定的檢測特征來確定,例如,其可以為1-5增量左右。
若控制器104確定需要附加的剪切區(qū)域旋轉(zhuǎn),則可以重復步驟422-428。此外,步驟422-428可以一直重復,直到控制器104確定已經(jīng)處理了預定數(shù)量的旋轉(zhuǎn)剪切區(qū)域。在那一時刻,在步驟428,其等于“否”條件,在步驟430,空間濾波器116可以為一個或更多的旋轉(zhuǎn)的剪切區(qū)域處理對象檢測模塊114、156的結(jié)果。更特別地,空間濾波模塊116可以比較各種結(jié)果來確定預定對象在原始圖像中的位置,并且從檢測結(jié)果中去除虛警或假陽性??臻g濾波器116可以工作來作出此確定的各種方式的更詳細的說明在此之前作了陳述。
在步驟432,來自空間濾波模塊116的結(jié)果還可以輸出到輸出裝置118。一方面,輸出裝置118可以包括顯示裝置,可以用于顯示所檢測到的預定對象的位置。另一方面,輸出裝置118可以包括另一配置成使用所檢測到的預定對象的信息的裝置或程序。
如步驟434所指示,操作模式400可以結(jié)束。對于操作模式400,結(jié)束條件可以與空閑模式相似,因為例如,當控制器104接收到另一個輸入圖像要處理時,操作模式400可以重新初始化。
在操作模式200、300和400中所圖解說明的操作可以同應用程序、程序或子程序一樣,包含在任何所期望的計算機可訪問的介質(zhì)中。此外,操作模式200、300和400可以通過計算機程序來具體實現(xiàn),其能夠以激活和未激活的多種形式存在。例如,它們能夠以源代碼、目標代碼、可執(zhí)行代碼或其它格式的程序指令所組成的軟件程序形式存在。任意以上的形式都能夠以壓縮或未壓縮的形式,在計算機可讀的介質(zhì)上具體實現(xiàn),計算機可讀介質(zhì)包括存儲裝置和信號。
典型的計算機可讀存儲裝置包括常規(guī)的計算機系統(tǒng)的RAM、ROM、EPROM、EEPROM和磁盤或光盤或磁帶等。不論采用載波調(diào)制與否的示例性計算機可讀信號是駐留或運行該計算機程序的計算機系統(tǒng)能夠訪問的信號,其包括通過因特網(wǎng)或其它網(wǎng)絡下載的信號。前面所述的具體例子包括用CD ROM或通過因特網(wǎng)下載來進行的程序分發(fā)。在某種意義上,作為抽象的實體,因特網(wǎng)本身即是計算機可讀的介質(zhì)。通常,計算機網(wǎng)絡也是如此。因此,要了解,任何能夠執(zhí)行以上所述功能的電子裝置都可以執(zhí)行以上所列舉的那些功能。
圖5圖解了計算機系統(tǒng)500,它可以用來執(zhí)行以上所述的對象檢測系統(tǒng)102和152的各種功能。在這方面,計算機系統(tǒng)500可以作為一個平臺用來執(zhí)行以上相對于對象檢測系統(tǒng)102和152所述的一種或更多功能。
計算機系統(tǒng)500包括諸如處理器502的一個或更多的控制器。處理器502可以用于執(zhí)行在操作模式200、300和400中所述的一些或者全部步驟。在這點上,處理器502可以包括控制器104。來自處理器502的命令和數(shù)據(jù)通過通信總線504進行通信。計算機系統(tǒng)500還包括諸如隨機訪問存儲器(RAM)的主存儲器506(例如對象檢測系統(tǒng)102和152的程序代碼在運行期間可以在主存儲器中執(zhí)行)和輔助存儲器508。主存儲器506可以包括例如以上所述的存儲器110。
輔助存儲器508包括例如一塊或更多的硬盤驅(qū)動器510和/或代表軟盤驅(qū)動器、磁帶驅(qū)動器和光盤驅(qū)動器等的可移動的存儲驅(qū)動器512,其上可以存儲對象檢測系統(tǒng)102和152的程序代碼的拷貝。輔助存儲器508可以包括輸入裝置106和/或輸出裝置118。此外,雖然沒有示出,輸入裝置106可以包括單獨的例如諸如照相機、掃描儀等的外圍設備。輸入裝置106還可以包括諸如因特網(wǎng)的網(wǎng)絡。
可移動的存儲驅(qū)動器512以公知的方式讀和/或?qū)懣梢苿拥拇鎯卧?14。用戶輸入和輸出裝置可以包括鍵盤516、鼠標518和顯示器520,顯示器還可以包括輸出裝置118。顯示適配器522可以與通信總線504和顯示器520接口,可以從處理器502接收顯示數(shù)據(jù),并且把顯示數(shù)據(jù)轉(zhuǎn)換為顯示器520的顯示命令。此外,處理器502可以通過網(wǎng)絡適配器524在例如因特網(wǎng)和局域網(wǎng)等的網(wǎng)絡上進行通信。
對于所屬技術(shù)領域的普通人員來說顯而易見的是,在計算機系統(tǒng)500中可以加入或減去其它公知的電子元件。此外,計算機系統(tǒng)500可以包括用在數(shù)據(jù)中心中的機架內(nèi)的系統(tǒng)板或系統(tǒng)刀片、常規(guī)的“白盒”服務器或計算裝置等。圖5中的一種或更多的組件還可以是可選擇的(例如,用戶輸入裝置、輔助存儲器等)。
在此所說明和圖解的是本發(fā)明的優(yōu)選實施例連同其一些變化。在此所用的術(shù)語、說明和圖表僅是以示例的方式進行陳述,并不意味著限制。所屬技術(shù)領域的專業(yè)人員將會意識到,許多變化都可能落入意欲通過所附權(quán)利要求書和其等價物定義的本發(fā)明的精神和范圍之內(nèi),其中,除非另外指明,所有的術(shù)語都是其最廣的合理意義。
權(quán)利要求
1.一種在圖像中檢測預定對象的方法(200,300,400),所述方法(200,300,400)包括在圖像中檢測(212,314,414)潛在的預定對象;旋轉(zhuǎn)(214,318,422)圖像的至少一部分;確定(216,320,424)在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象;和響應在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象的確定結(jié)果,確定(218,326,430)該潛在的預定對象是否是預定對象的精確檢測。
2.根據(jù)權(quán)利要求1的方法(200,300,400),其中確定(218,326,430)潛在的預定對象是否是預定對象的精確檢測的步驟,包括將圖像中潛在的預定對象和在旋轉(zhuǎn)的至少一部分圖像中檢測到的潛在的預定對象的大小進行比較(326,430),所述方法進一步包括響應指示圖像中潛在的預定對象與旋轉(zhuǎn)的至少一部分圖像中潛在的預定對象的大小基本上相似的比較,輸出(328,432)潛在的預定對象是預定對象的精確檢測的指示;和響應指示圖像中潛在的預定對象與旋轉(zhuǎn)的至少一部分圖像中潛在的預定對象的大小不相似的比較,輸出(328,432)潛在的預定對象是虛警的指示。
3.根據(jù)權(quán)利要求1的方法(200,300,400),進一步包括把圖像的至少一部分旋轉(zhuǎn)(318,422)到多個角度;檢測(320,424)在多個旋轉(zhuǎn)的至少一部分圖像的一個或更多中是否檢測到潛在的預定對象;和響應在多個旋轉(zhuǎn)的至少一部分圖像的一個或更多中是否檢測到潛在的預定對象的檢測,確定(326,430)潛在的預定對象是否是預定對象的精確檢測。
4.根據(jù)權(quán)利要求1-3的任意之一的方法(200,300,400),進一步包括在包含潛在的預定對象的圖像中剪切(418)一區(qū)域,其中旋轉(zhuǎn)(422)圖像的至少一部分的步驟包括旋轉(zhuǎn)圖像的剪切區(qū)域。
5.根據(jù)權(quán)利要求4的方法(200,300,400),其中確定(430)潛在的預定對象是否是預定對象的精確檢測的步驟,進一步包括確定在旋轉(zhuǎn)的圖像的剪切區(qū)域中是否檢測到潛在的預定對象,所述的方法進一步包括響應在旋轉(zhuǎn)的圖像的剪切區(qū)域中檢測到潛在的預定對象,輸出(432)潛在的預定對象是預定對象的精確檢測的指示。
6.一種對象檢測系統(tǒng)(102,152)包括配置成在圖像中檢測潛在的預定對象的對象檢測模塊(114);配置成旋轉(zhuǎn)圖像的至少一部分的圖像旋轉(zhuǎn)模塊(112);配置成在旋轉(zhuǎn)的圖像的至少一部分中檢測潛在的預定對象的所述對象檢測模塊(114);空間濾波模塊(116),配置成比較來自圖像和旋轉(zhuǎn)的至少一部分圖像的對象檢測模塊(114)的檢測結(jié)果,以確定對象檢測模塊(114)檢測到的潛在的預定對象是否是預定對象的精確檢測。
7.根據(jù)權(quán)利要求6的對象檢測系統(tǒng)(102,152),其中空間濾波模塊(116)配置成,若在旋轉(zhuǎn)的至少一部分圖像中檢測到潛在的預定對象,則輸出對象檢測模塊(114)檢測到的潛在的預定對象是預定對象的精確檢測的確定結(jié)果。
8.根據(jù)權(quán)利要求6和7的任意之一的對象檢測系統(tǒng)(102,152),其中空間濾波模塊(116)配置成,若滿足以下公式,則輸出由對象檢測模塊(114)檢測到的潛在的預定對象是預定對象的精確檢測的指示sum=w1*v1+w2*v2+...+wn*vn,且sum>t,其中w1,w2,...,wn為權(quán)重,v1,v2,...,vn為通過對圖像與旋轉(zhuǎn)到多個角度的圖像的至少一部分的檢測結(jié)果之間進行比較所確定的一致性矢量,并且t是預定的閾值;和其中,若在圖像和旋轉(zhuǎn)到所述多個角度之一的至少一部分圖像二者中都檢測到潛在的預定對象,則一致性矢量v1,v2,...,vn的對于旋轉(zhuǎn)到該多個角度之一的該至少一部分圖像的檢測結(jié)果的矢量分量vm,設置為1;否則,一致性矢量v1,v2,...,vn的該矢量分量vm設置為0。
9.一種嵌入了一個或更多計算機程序的計算機可讀的存儲介質(zhì),所述一個或更多的計算機程序?qū)崿F(xiàn)在圖像中檢測對象的方法,所述一個或更多的計算機程序包括以下用途的指令集在圖像中檢測(212,314,414)潛在的預定對象;旋轉(zhuǎn)(214,318,422)圖像的至少一部分;檢測(216,320,424)在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象;響應在旋轉(zhuǎn)的至少一部分圖像中檢測到潛在的預定對象,輸出(328,432)在圖像中檢測到的潛在的預定對象是預定對象的精確檢測的指示。
10.根據(jù)權(quán)利要求9的計算機可讀的存儲介質(zhì),所述一個或更多的計算機程序進一步包括以下用途的指令集把圖像的至少一部分旋轉(zhuǎn)(214,318,422)到多個角度;檢測(216,320,424)在多個旋轉(zhuǎn)的至少一部分圖像的一個或更多中是否檢測到潛在的預定對象;和響應在多個旋轉(zhuǎn)的至少一部分圖像的至少一個中檢測到潛在的預定對象,輸出(328,432)在圖像中檢測到的潛在的預定對象是預定對象的精確檢測的指示。
全文摘要
一種在圖像中檢測預定的對象的方法(200,300,400),其包括在圖像中檢測(212,314,414)潛在的預定對象。在本方法中,旋轉(zhuǎn)(214,318,422)圖像的至少一部分,并且確定(216,320,424)在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象。此外,響應在旋轉(zhuǎn)的至少一部分圖像中是否檢測到潛在的預定對象的確定結(jié)果,確定(218,326,430)潛在的預定對象是否是預定對象的精確檢測。
文檔編號G06K9/00GK101052971SQ200580037899
公開日2007年10月10日 申請日期2005年11月4日 優(yōu)先權(quán)日2004年11月5日
發(fā)明者H·羅 申請人:惠普開發(fā)有限公司