專利名稱:圖像處理裝置、圖像處理系統及圖像處理方法
技術領域:
本發明涉及一種用于從拍攝裝置所拍攝的圖像中檢測規定的拍攝對象的圖像處理裝置、圖像處理系統及圖像處理方法。
背景技術:
目前,已經存在從攝像機等拍攝裝置所拍攝的圖像(拍攝圖像)中檢測規定的拍攝對象的技術。例如,非專利文獻I中記載了 在增強現實技術中,對用攝像機所拍攝到的拍攝圖像中包含的標記進行圖像識別處理的技術。具體而言,非專利文獻I中記載著通過用固定的閾值對拍攝圖像進行二值化處理,來提取連接區域,并從所提取出的連接區域中選擇大小及形狀合適的圖像作為標記候補,并對標記候補進行模式匹配,從而檢測出標記。然而,采用記載于非專利文獻I中的檢測標記的方法,在某些情況下(例如,明亮、昏暗、標記的一部分被用戶的手指等遮蔽、標記相對攝像機不朝向正面、強烈的光線被標記反射等情況下)不一定能夠以高精度或較小的處理負荷來檢測標記。并且,記載于非專利文獻I的檢測標記的方法不能防止標記的檢測位置的抖動。非專利文獻加藤博一,MarkBillinghurst,淺野浩一,橘啓八郎、「^ 一力一追跡C基3 <拡張現実感7 f A iQ々V」O — 3 >」(基于標記追蹤的增強現實系統及其校準)、日本^ U U f彳學會論文誌Vol. 4No. 4、1999年(日本虛擬現實學會論文雜志,Vol. 4No. 4,1999年)
發明內容
本發明的目的在于,提供一種能夠以較高的精度或較小的處理負荷來檢測出圖像中的規定物體或圖案的圖像處理裝置、圖像處理系統及圖像處理方法,或者能夠防止或減輕所檢測的規定物體或圖案的位置的微小抖動的圖像處理裝置、圖像處理系統及圖像處理方法。為了解決上述技術問題,本發明采用以下構成。本發明的第一構成例是一種圖像處理裝置,包括圖像獲取單元、檢測單元、移動量計算單元、比較單元、修改單元、虛擬攝像機設定單元、及顯示控制單元。上述圖像獲取單元依次獲取圖像。上述檢測單元從上述圖像中依次檢測規定物體或規定圖案的位置。上述移動量計算單元根據從上述圖像獲取單元所獲取的第一圖像中檢測出的規定物體或規定圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置,來計算該規定物體或規定圖案的移動量。上述比較單元將上述移動量與第一閾值進行比較。上述修改單元在上述移動量小于上述第一閾值的情況下,將從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置修改到從上述第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置。上述虛擬攝像機設定單元根據經上述修改單元修改過的位置,來設定配置于虛擬空間的虛擬攝像機。上述顯示控制單元使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用上述虛擬攝像機拍攝上述虛擬空間而得到的。根據上述構成例,能夠避免無意中發生的檢測位置的變動。并且,能夠避免虛擬空間圖像的抖動。另外,作為變形例,上述圖像處理裝置還可以包括大小計算單元和閾值修改單元,該大小計算單元計算在上述第一圖像或上述第二圖像上的上述規定物體或規定圖案的大小;該閾值修改單元根據上述大小計算單元所計算出的上述規定物體或規定圖案的大小來修改上述第一閾值。根據上述變形例,能夠相應于顯示在圖像中的物體或圖案的大小來設定合適的閾值。另外,作為其它變形例,也可以是,上述大小計算單元所計算出的上述規定物體或 規定圖案的大小越小,上述閾值修改單元將上述第一閾值設定得越小。根據上述變形例,能夠相應于顯示在圖像中的物體或圖案的大小來設定合適的閾值。另外,作為其它變形例,也可以是,在上述移動量大于或等于上述第一閾值的情況下,上述虛擬攝像機設定單元根據從上述第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置,來設定上述虛擬攝像機。根據上述變形例,能夠避免從圖像中檢測出的物體或圖案的位置大幅偏離顯示在畫面上的虛擬空間圖像的情況。另外,作為其它變形例,也可以是,在上述移動量大于或等于上述第一閾值、且小于第二閾值、該第二閾值大于上述第一閾值的情況下,上述修改單元將從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置修改到以規定的比率來對連接從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置、與從上述第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置的線段進行內分后得到的位置。根據上述變形例,能夠減輕無意中發生的檢測位置的變動。另外,作為其它變形例,也可以是,在上述移動量大于或等于上述第二閾值的情況下,上述虛擬攝像機設定單元根據從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置,來設定上述虛擬攝像機。根據上述變形例,能夠避免從圖像中檢測出的物體或圖案的位置大幅偏離顯示在畫面上的虛擬空間圖像的情況。另外,作為其它變形例,上述圖像處理裝置還可以包括運動向量計算單元和比率變更單元,該運動向量計算單元基于上述圖像依次計算表示規定物體或規定圖案的移動方向的運動向量;該比率變更單元根據上述運動向量來變更上述規定的比率。根據上述變形例,能夠在避免無意中發生的檢測位置的變動的同時,提高響應性。另外,作為其它變形例,上述比率變更單元也可以包括判斷部,該判斷部根據多個上述運動向量來判斷上述規定物體或規定圖案是否在一定方向上持續地移動,上述比率變更單元根據上述判斷部的判斷結果來變更上述規定的比率。根據上述變形例,在圖像上的規定物體或規定圖案在一定方向上移動的情況下,能夠提聞響應性。本發明的第二構成例是一種圖像處理方法,包括圖像獲取步驟、檢測步驟、移動量計算步驟、比較步驟、修改步驟、虛擬攝像機設定步驟、及顯示控制步驟。在上述圖像獲取步驟中依次獲取圖像;在上述檢測步驟中,從上述圖像中依次檢測規定物體或規定圖案的位置;在上述移動量計算步驟中,根據從上述圖像獲取步驟所獲取的第一圖像中檢測出的規定物體或規定圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置,來計算該規定物體或規定圖案的移動量;在上述比較步驟中,將上述移動量與第一閾值進行比較;在上述修改步驟中,在上述移動量小于上述第一閾值的情況下,將從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置修改到從上述第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置;在上述虛擬攝像機設定步驟中,根據在上述修改步驟中修改過的位置,來設定配置于虛擬空間的虛擬攝像機;在上述顯示控制步驟中,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用上述虛擬攝像機拍攝上述虛擬空間而得到的。本發明的第三構成例是一種具備圖像處理裝置和畫有圖案的標記的圖像處理系 統。其中,上述圖像處理裝置包括拍攝部、圖像獲取單元、檢測單元、移動量計算單元、比較單元、修改單元、虛擬攝像機設定單元、及顯示控制單元。上述拍攝部拍攝上述標記;上述圖像獲取單元從上述拍攝部依次獲取圖像;上述檢測單元從上述圖像中依次檢測上述標記或上述圖案的位置;上述移動量計算單元根據從上述圖像獲取單元所獲取的第一圖像中檢測出的上述標記或上述圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的上述標記或上述圖案在該圖像上的位置,來計算上述標記或上述圖案的移動量;上述比較單元將上述移動量與第一閾值進行比較;上述修改單元在上述移動量小于上述第一閾值的情況下,將從上述第一圖像中檢測出的上述標記或上述圖案在該圖像上的位置修改到從上述第二圖像中檢測出的上述標記或上述圖案在該圖像上的位置;上述虛擬攝像機設定單元根據經上述修改單元修改過的位置,來設定配置于虛擬空間的虛擬攝像機;上述顯示控制單元使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用上述虛擬攝像機拍攝上述虛擬空間而得到的。根據上述各構成例,能夠避免從圖像中檢測出的規定物體或圖案的位置的微小抖動。在參照附圖進行下述詳細的說明之后,本發明的各種目的、特征、方面、效果將會更加明確。
圖I是在開啟狀態下的游戲裝置10的正視圖。圖2A是閉合狀態下的游戲裝置10的左視圖。圖2B是閉合狀態下的游戲裝置10的正視圖。圖2C是閉合狀態下的游戲裝置10的右視圖。圖2D是閉合狀態下的游戲裝置10的后視圖。圖3是表示游戲裝置10的內部構成的方框圖。圖4是表示顯示在上部IXD22的屏幕上的圖像的圖。圖5是表示標記50的圖。圖6是表示由外側拍攝部(左)23a或外側拍攝部(右)23b拍攝的實拍圖像的圖。
圖7是表示實拍圖像中的注目像素的選擇順序的圖。圖8是用于說明邊界判斷閾值的確定方法的圖。圖9是用于說明邊界判斷閾值的確定方法的圖。圖10是用于說明邊界判斷閾值的確定方法的圖。圖11是用于說明邊界判斷閾值的確定方法的圖。圖12是用于說明邊界判斷閾值的確定方法的圖。圖13是用于說明邊界追蹤處理的圖。圖14是用于說明邊界追蹤處理的圖。圖15是用于說明邊界追蹤處理的圖。圖16是用于說明邊界追蹤處理的圖。圖17是用于說明邊界追蹤處理的圖。圖18是用于說明邊界追蹤處理的圖。圖19是用于說明邊界追蹤處理的圖。圖20是用于說明邊界追蹤處理的圖。圖21是用于說明邊界追蹤處理的圖。圖22是用于說明直線計算處理的圖。圖23是用于說明直線計算處理的圖。圖24是用于說明直線計算處理的圖。圖25是用于說明直線計算處理的圖。圖26是用于說明直線計算處理的圖。圖27是用于說明直線計算處理的圖。圖28是用于說明直線計算處理的圖。
圖29是用于說明直線計算處理的圖。圖30是用于說明直線計算處理的圖。圖31是用于說明直線計算處理的圖。圖32是用于說明直線計算處理的圖。圖33是用于說明直線計算處理的圖。圖34是用于說明直線計算處理的圖。圖35是用于說明直線計算處理的圖。圖36是用于說明直線計算處理的圖。圖37是用于說明直線統合處理的圖。圖38是用于說明直線統合處理的圖。圖39是用于說明直線統合處理的圖。圖40是用于說明直線選擇處理的圖。圖41是用于說明直線選擇處理的圖。圖42是用于說明頂點計算處理的圖。圖43是用于說明頂點計算處理的圖。圖44是用于說明粗略判別處理中的第一除外條件的圖。圖45是用于說明粗略判別處理中的第二除外條件的圖。
圖46是用于說明粗略判別處理中的第三除外條件的圖。圖47是用于說明粗略判別處理中的第四除外條件的圖。圖48是用于說明圖案判別處理中所使用的模式定義數據的圖。圖49是用于說明圖案判別處理中所使用的模式定義數據的圖。圖50是表示包含標記50的實拍圖像的圖。圖51是表示實拍圖像中的采樣點的位置的確定方法的一例的圖。圖52是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。 圖53是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖54是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖55是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖56是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖57是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖58是用于說明確定實拍圖像中的采樣點的位置的第一確定方法的圖。圖59是用于說明確定實拍圖像中的采樣點的位置的第二確定方法的圖。圖60是用于說明確定實拍圖像中的采樣點的位置的第二確定方法的圖。圖61是用于說明在當前的實拍圖像中未檢測出標記的輪廓及頂點的情況下執行的圖案判別處理的圖。圖62是用于說明在當前的實拍圖像中未檢測出標記的輪廓及頂點的情況下執行的圖案判別處理的圖。圖63是用于說明標記位置修改處理的圖。圖64是用于說明標記位置修改處理的圖。圖65是用于說明標記位置修改處理的圖。圖66是用于說明按照實拍圖像上的標記的大小而變更閾值Dl及閾值D2的大小的理由的圖。圖67是用于說明按照實拍圖像上的標記的大小而變更閾值Dl及閾值D2的大小的理由的圖。圖68是表示閾值Dl的確定方法的圖。圖69是表示閾值D2的確定方法的圖。圖70是用于說明標記位置修改處理的變形例的圖。圖71是用于說明標記位置修改處理的另一個變形例的圖。圖72是用于說明標記的對應關系的判別方法的圖。圖73是主存儲器32的存儲分配圖。圖74是表示圖像識別處理整體的流程的流程圖。圖75是表示輪廓檢測處理的流程的流程圖。圖76是表示頂點檢測處理的流程的流程圖。圖77是表示粗略判別處理的流程的流程圖。圖78是表不圖案判別處理的流程的流程圖。圖79是表示標記位置修改處理的流程的流程圖。
具體實施例方式〈游戲裝置的構成〉以下,對本發明的一個實施方式所涉及的游戲裝置進行說明。游戲裝置10是便攜式游戲裝置。如圖I及圖2A D所示,游戲裝置10包括下殼體11及上殼體21。下殼體11與上殼體21能夠開合(能夠折疊)地連接。〈下殼體的說明〉如圖I及圖2A D所示,在下殼體11上設置有下部IXD(Liquid CrystalDisplay :液晶顯示裝置)12、觸摸面板13、各個操作按鈕14A 14L、模擬搖桿15、LED16A 16B、插入口 17及傳聲器用孔18。觸摸面板13被裝設在下部IXD12的屏幕上。在下殼體11的上側面設置有用于收納觸控筆28的插入口 17(圖I及圖2D所示的虛線)。在下殼體11的內側面(主面)設置有十字按鈕14A(方向輸入按鈕14A)、按鈕14B、按鈕14C、按鈕14D、按鈕14E、電源按鈕14F、選擇按鈕14J、HOME按鈕14K及啟動按鈕14L。模擬搖桿15是指示方向的器件。在下殼體11的內側面設置有傳聲器用孔18。在傳聲器用孔18的下部設置有后述的作為聲音輸入裝置的傳聲器42 (參照圖3)。如圖2B及D所示,下殼體11的上側面設置有L按鈕14G及R按鈕14H。另外,如圖2A所示,在下殼體11的左側面設置有用于調節游戲裝置10所具備的揚聲器43 (參照圖3)的音量的音量按鈕141。如圖2A所示,在下殼體11的左側面設置有可開合的翻蓋部11C。該翻蓋部IlC的內側設置有用于實現游戲裝置10與數據保存用外部存儲器45之間的電連接的連接器。如圖2D所示,在下殼體11的上側面設置有用于插入外部存儲器44的插入口 11D。如圖I及圖2C所示,在下殼體11的下側面設置有向用戶通知游戲裝置10的電源的(^/0 狀況的第一1^016八,在下殼體11的右側面設置有向用戶通知游戲裝置10的無線通信的建立狀況的第二 LED16B。游戲裝置10與其它設備之間能夠進行無線通信,在下殼體11的右側面設置有使該無線通信的功能有效/無效的無線開關19 (參照圖2C)。〈上殼體的說明〉如圖I及如圖2所示,上殼體21設置有:上部LCD (Liquid Crystal Display :液晶顯示裝置)22、外側拍攝部23 (外側拍攝部(左)23a及外側拍攝部(右)23b)、內側拍攝部24、3D調整開關25及3D指示器26。上部IXD22是能夠顯示能夠產生立體視覺的圖像的顯示裝置。具體地,它是使用視差屏障方式的能夠產生裸眼立體視覺的顯示裝置。上部LCD22利用視差屏障,使用戶的左眼看到左眼用圖像,右眼看到右眼用圖像,由此能夠顯示對于用戶而言具有立體感的立體圖像(能夠產生立體視覺的圖像)。此外,上部IXD22能夠使上述視差屏障無效,在使視差屏障無效的情況下,能夠對圖像進行平面顯示。這樣,上部IXD22是能夠在顯示立體視覺圖像的立體顯示模式、與對圖像進行平面顯示(顯示平面視覺圖像)的平面顯示模式之間進行切換的顯示裝置。該顯示模式的切換例如可以通過后述的3D調節開關25來進行。外側拍攝部23是設置于上殼體21的外側面21D的兩個拍攝部(23a及23b)的總、稱。外側拍攝部(左)23a和外側拍攝部(右)23b根據游戲裝置10所執行的程序,能夠作為立體攝像機使用。內側拍攝部24被設置于上殼體21的內側面(主面)21B,并且是將該內側面的向內的法線方向作為拍攝方向的拍攝部。3D調節開關25是滑動開關,并且如上所述那樣是用于切換上部IXD22的顯示模式的開關。并且,3D調節開關25用于調節上部IXD22所顯示的能夠產生立體視覺的圖像(立體圖像)的立體感。3D調節開關25的滑塊25a能夠在規定方向(上下方向)上滑動到任何位置,根據該滑塊25a的位置來設定上部IXD22的顯示模式。并且,根據滑塊25a的位置來調節立體圖像的立體感。3D指示器26是表示上部IXD22是否是立體顯示模式的LED。另外,在上殼體21的內側面設置有揚聲器孔21E。從該揚聲器孔21E輸出來自后 述的揚聲器43的聲音。<游戲裝置10的內部構成>下面,參照圖3,說明游戲裝置10的內部電結構。如圖3所示,游戲裝置I除了上述的各個部以外,還具備信息處理部31、主存儲器32、外部存儲器接口(外部存儲器I/F) 33、數據保存用外部存儲器I/F34、數據保存用內部存儲器35、無線通信模塊36、局部通信模塊37、實時時鐘(RTC) 38、加速度傳感器39、電源電路40及接口電路(I/F電路)41等電子元件。信息處理部31包括用于執行規定的程序的中央處理器(Central ProcessingUnit :CPU) 311、進行圖像處理的圖形處理器(Graphics Processing Unit :GPU) 312、視頻RAM (Video RAM,VRAM) 313等。CPU311通過執行保存在游戲裝置10內的存儲器(例如連接于外部存儲器I/F33的外部存儲器44或數據保存用內部存儲器35)中的程序,來執行與該程序相應的處理。此外,由CPU311所執行的程序可以通過與其他設備進行通信而從其他設備獲得。GPU312按照來自CPU311的指令來生成圖像,并繪制到VRAM313。繪制到VRAM313的圖像被輸出到上部IXD22及/或下部IXD2,從而在上部IXD22及/或下部IXD2顯示該圖像。外部存儲器I/F33是用于與外部存儲器44拆卸自由地連接的接口。并且,數據保存用外部存儲器I/F34是用于與數據保存用外部存儲器45拆卸自由地連接的接口。主存儲器32是用作信息處理部31 (的CPU311)的工作區或緩沖區的易失性存儲
>J-U裝直。外部存儲器44是用于存儲信息處理部31所執行的程序等的非易失性存儲裝置。外部存儲器44例如由讀取專用型的半導體存儲器構成。數據保存用外部存儲器45由非易失性的可讀寫的存儲器(例如NAND閃存)構成,用于儲存任意的數據。數據保存用內部存儲器35由可讀寫的非易失性存儲器(例如NAND型閃存)構成,用于儲存規定的數據。例如,數據保存用內部存儲器35中保存有利用經由無線通信模塊36的無線通信而下載的數據或程序。無線通信模塊36具有例如采用基于IEEE802. 11. b/g規格的方式來接入無線LAN的功能。此外,局部通信模塊37具有通過規定的通信方式(例如,基于獨自的協議的通信或紅外通信),而在同種游戲裝置之間進行無線通信的功能。加速度傳感器39檢測沿三個軸(xyz軸)方向的直線方向的加速度(直線加速度)的大小。信息處理部31通過接收表示由加速度傳感器39檢測出的加速度的數據(加速度數據),能夠檢測出游戲裝置10的姿勢或動作。RTC38對時間進行計時,并將計時結果輸出給信息處理部31。信息處理部31基于RTC38的計時結果來計算當前時刻(日期)。電源電路40控制來自游戲裝置10所具有的電源(充電式電池)的電力,并向游戲裝置10的各個元件供電。I/F電路41上連接有觸摸面板13、傳聲器42以及揚聲器43。I/F電路41包括對傳聲器42及揚聲器43 (放大器)進行控制的聲音控制電路、以及對觸摸面板進行控制的觸摸面板控制電路。聲音控制電路對聲音信號進行A/D轉換以及D/A轉換,或將聲音信號轉換成規定格式的聲音數據。觸摸面板控制電路基于來自觸摸面板13的信號來生成規定格式的觸摸位置數據,并將該數據輸出給信息處理部31。信息處理部31通過獲取觸摸位置數據,能夠得知對觸摸面板13進行了輸入的位置。操作按鈕14包括上述各個操作按鈕14A 14L,從操作按鈕14向信息處理部31輸出表示對各個操作按鈕14A 141進行輸入的狀況(是否被按下)的操作數據。下部IXD12及上部IXD22連接于信息處理部31。具體地,信息處理部31連接于上部LCD22的LCD控制器(未圖示),并對該LCD控制器進行視差屏障的0N/0FF控制。當上部IXD22的視差屏障為ON時,信息處理部31的VRAM313中所儲存的右眼用圖像和左眼用圖像被輸出到上部LCD22。更具體地,LCD控制器通過交替地執行對右眼用圖像讀出縱向上的I列像素數據的處理、和對左眼用圖像讀出縱向上的I列像素數據的處理,來從VRAM313讀出右眼用圖像和左眼用圖像。由此,右眼用圖像和左眼用圖像被分割成像素在縱向按列排列的帶狀圖像,被分割后的右眼用圖像的帶狀圖像和左眼用圖像的帶狀圖像交替地配置的圖像被顯示在上部IXD22的屏幕上。由于用戶是隔著上部IXD22的視差屏障來看該圖像,所以右眼能夠看到右眼用圖像,左眼能夠看到左眼用圖像。從而,在上部IXD22的屏幕上所顯示的圖像能夠產生立體視覺。外側拍攝部23及內側拍攝部24按照信息處理部31的指示來拍攝圖像,并將所拍攝的圖像數據輸出給信息處理部31。3D調節開關25將相應于滑塊25a的位置的電信號發送給信息處理部31。信息處理部31控制3D指示器26的亮燈。例如,當上部IXD22是立體顯示模式時,信息處理部31使3D指示器26亮燈。<圖像處理的概要>下面,參照圖4 圖72,對于在游戲裝置10中所執行的圖像處理的概要進行說明。游戲裝置10中所執行的圖像處理包括圖像識別處理及圖像生成處理。圖像識別處理是檢測由攝像機(外側拍攝部(左)23a或外側拍攝部(右)23b)拍攝的圖像(實拍圖像)中所包含的標記的位置的處理。圖像生成處理是利用圖像識別處理的結果來生成應顯示在上部IXD22上的圖像的處理。 游戲裝置10的CPU311利用圖像識別處理的結果,在上部IXD22上顯示出猶如在現實世界中的標記的周圍(例如在標記上)實際存在虛擬對象那樣的圖像。例如,圖4的例中,在游戲裝置10的上部IXD22上,顯示出似乎在桌子上的標記50上實際存在模擬小狗的虛擬對象60的圖像。這樣的圖像是通過對攝像機所拍攝的實拍圖像與虛擬對象60的圖像(虛擬空間圖像)進行合成而得到的。虛擬空間圖像對應于配置于虛擬空間中的虛擬攝像機而被繪制,虛擬空間中的虛擬攝像機與虛擬對象之間的位置關系(相對位置及姿勢)被實時地控制為,和現實空間中的攝像機(外側拍攝部(左)23a或外側拍攝部(右)23b)與標記50之間的位置關系相一致。由此,可以得到虛擬對象60似乎實際存在于現實空間那樣的圖像。如圖5所示,標記50為方形,具有外周的白色區域和由白色區域圍繞的黑色區域,在黑色區域的內部畫出了規定的內部圖形(在此作為一個例子是箭頭)。此外,雖然在本實施方式中使用了如圖5所示的標記50,但是這只不過是一個例子,也可以使用其它形狀、其它圖樣、其它顏色的標記。例如,也可以是在外周的黑色區域的內部設有白色區域。另外,取代白色區域或黑色區域,也可以設定其它顏色的區域,但是,最好使用明暗對比度高的顏色組合,以便進行后述的輪廓檢測處理。圖6是攝像機(外側拍攝部(左)23a或外側拍攝部(右)23b)所拍攝的圖像(實拍圖像)的一例。實拍圖像例如由512像素(水平方向)X384像素(垂直方向)構成。 為了從如圖6所示的實拍圖像中檢測出標記50的位置,在本實施方式中進行如下所述的處理。(I)輪廓檢測處理(2)頂點檢測處理(3)粗略判別處理(4)圖案判別處理(5)標記位置修改處理〈輪廓檢測處理〉首先說明輪廓檢測處理。輪廓檢測處理是在實拍圖像中檢測畫在標記50上的圖案的輪廓(如圖5所示的白色區域和黑色區域的界線)的處理。本實施方式中,首先,在實拍圖像中,將(16,16)的坐標所示的像素作為注目像素,根據該注目像素的亮度值和從該注目像素的左鄰像素起向左數第八個像素(8,16)的亮度值,來判斷在該兩個像素之間的某處是否存在邊界(左側為白色區域而右側為黑色區域的邊界)(判斷方法的詳情將于后述)。然后,在判斷為不存在邊界的情況下,如圖7所示,將從當前的注目像素(16,16)的右鄰像素起向右數第八個像素(24,16)作為新的注目像素,并根據該注目像素的亮度值、和從該注目像素的左鄰像素起向左數第八個像素(即,之前的注目像素(16,16))的亮度值來判斷該兩個像素之間的某處是否存在邊界。以后,一邊依次更新注目像素,一邊進行同樣的處理。在Y坐標值為16的那一行上處理完畢之后,在從該行起向下數第16行(即Y坐標值為32的那一行)上進行同樣的處理。另外,上述的選擇注目像素的方法只不過是一例,不局限于此。以下說明中,將注目像素表示為像素P (n),將從注目像素的左鄰像素起向左數第k個像素表示為像素P(n-k),將從注目像素的右鄰像素起向右數第k個像素表示為像素P (n+k)。并且,將注目像素的亮度值表示為L (n),將從注目像素的左鄰像素起向左數第k個像素的亮度值表示為L(n-k),將從注目像素的右鄰像素起向右數第k個像素的亮度值表示為 L (n+k)。
如圖8所示,基于L(n_8)和L(n)來判斷在注目像素(即像素P(n))與從注目像素的左鄰像素起向左數第八個像素(即像素P(n-8))之間是否存在邊界。具體而言,根據L(n-8)-L(n)是否大于或等于規定值來作出判斷。然后,在L (n_8)-L (n)大于或等于規定值的情況下,判斷為這些像素之間的某處存在邊界。在此,本實施方式中假設用0 255的值來表示各個像素的亮度值,并將上述規定值作為60。但這些數字只不過是一例,并不局限于此。在判斷為像素P(n)與像素P(n-8)之間的某處存在邊界的情況下,接下來根據這兩個像素或者這兩個像素附近(周邊)的像素的亮度值,來計算用于檢測邊界的位置的邊界判斷閾值。下面,參照圖9 圖12,來說明邊界判斷閾值的計算方法。首先,如圖9 圖12所示,根據像素P(n-8)或者其附近的像素的亮度值,來確定 白色區域亮度值Lw。以下,對確定白色區域亮度值Lw的方法的一例進行說明。首先,判斷像素P(n_9)的亮度值是否小于像素P(n-8)的亮度值,在判斷為是的情況下,像素P(n-8)的亮度值成為白色區域亮度值Lw。例如,圖9、圖11及圖12的例中,像素P(n-9)的亮度值為210,像素P (n-8)的亮度值為220,因而作為像素P (n_8)的亮度值的220便成為白色區域亮度值Lw。在像素P(n_9)的亮度值大于或等于像素P(n-8)的亮度值的情況下,接下來判斷像素P(n-10)的亮度值是否小于像素P(n-9)的亮度值,在判斷為是的情況下,像素P(n-9)的亮度值便成為白色區域亮度值Lw。在像素P (n-9)的亮度值大于或等于像素P (n-8)的亮度值,而且像素P (n_10)的亮度值大于或等于像素P(n-9)的亮度值的情況下,接下來判斷像素P(n-ll)的亮度值是否小于像素P(n-10)的亮度值,在判斷為是的情況下,像素P (n-10)的亮度值便成為白色區域亮度值Lw。例如,圖10的例中,像素P(n-ll)的亮度值為210,像素P(n-10)的亮度值為220,因而作為像素P (n-10)的亮度值的220成為白色區域亮度值Lw。換言之,如上所述的處理是從像素P(n-8)向左方向依次參照像素的亮度值來查找亮度值的極大值(第一次出現的極大值)的處理。進一步,也可以說是在像素P(n-8)和其周邊的像素的亮度值之中檢測極大值的處理。通過進行上述處理,即使在如圖10所示那樣像素P(n-8)位于標記50的白色區域與黑色區域的界限處(實拍圖像中用灰色顯示)的情況下,也可以正確地將標記50的白色區域的亮度值設定為白色區域亮度值Lw。在此,雖然在本實施方式中如上所述那樣確定了白色區域亮度值Lw,但是這只不過是一例,確定白色區域亮度值Lw的方法不局限于此。例如,也可以將像素P(n-8)的亮度值與其周邊的像素中的任一個像素的亮度值進行比較,而在該周邊像素的亮度值更大的情況下,基于該周邊像素的亮度值來計算白色區域亮度值Lw。再例如,從像素P(n-8)向左方向依次參照像素的亮度值而查找亮度值的極大值(第一次出現的極大值)的處理的中途,若參照像素的亮度值超過了規定值(例如250),則中斷查找亮度值的極大值的處理,而基于該參照像素的亮度值來計算白色區域亮度值Lw。下面,如圖9 如圖12所示,基于像素P(n)或者其附近的像素的亮度值,來確定黑色區域亮度值Lb。以下,說明確定黑色區域亮度值Lb的方法的一例。首先,判斷像素P(n+2)的亮度值是否小于或等于像素P(n)的亮度值,在小于或等于像素P(n)的亮度值的情況下,像素P (n)的亮度值便成為黑色區域亮度值Lb。例如,在圖9及圖10的例中,像素P(n+2)的亮度值為100,像素P(n)的亮度值為100,因而作為像素P(n)的亮度值的100便成為黑色區域亮度值Lb。在像素P(n+2)的亮度值大于像素P(n)的亮度值的情況下,接下來判斷從白色區域亮度值Lw減去像素P(n+2)的亮度值的結果的值(即,Lw-L(n+2))是否大于或等于上述規定值(即,60)。然后,在該結果的值大于或等于60的情況下,像素P(n+2)的亮度值便成為黑色區域亮度值Lb,在該結果的值小于60的情況下,像素P(n)的亮度值便成為黑色區域亮度值Lb。例如,在圖11的例中,像素P(n)的亮度值為20,像素P(n+2)的亮度值為100,白色區域亮度值Lw為220。并且,Lw-L(n+2) = 120,因而作為像素P (n+2)的亮度值的100便成為黑色區域亮度值Lb。然而,在施加了邊界強調處理(輪廓強調處理,銳化處理)的實拍 圖像中,如圖11所示那樣,鄰接白色區域的黑色區域像素的亮度值會成為比原來的黑色區域的亮度值明顯小的值。于是,在本實施方式中,為了在這樣的情況下也能夠恰當地確定黑色區域亮度值Lb,而在滿足上述條件時,將像素P (n+2)的亮度值定為黑色區域亮度值Lb。另一方面,在圖12的例中,像素P (n)的亮度值為100,像素P (n+2)的亮度值為210,白色區域亮度值Lw為220。并且,由于Lw-L (n+2) = 10,因此作為像素P (n)的亮度值的100便成為黑色區域亮度值Lb。此外,雖然在本實施方式中,如上所述那樣確定了黑色區域亮度值Lb,但這只不過是一例,確定黑色區域亮度值Lb的方法不局限于此。如上所述那樣確定了白色區域亮度值Lw及黑色區域亮度值Lb之后,接下來根據這些白色區域亮度值Lw及黑色區域亮度值Lb來計算邊界判斷閾值。在本實施方式中,將白色區域亮度值Lw和黑色區域亮度值Lb的平均值確定為邊界判斷閾值。例如,在圖9 圖12的例中,邊界判斷閾值均為160。但是,這只不過是一例,計算邊界判斷閾值的方法不局限于此。如上所述那樣確定了邊界判斷閾值之后,利用該邊界判斷閾值來檢測在像素P (n)與像素P(n_8)之間的哪里存在邊界。具體而言,具有大于邊界判斷閾值的亮度值的像素被判斷為屬于白色區域,具有小于邊界判斷閾值的亮度值的像素被判斷為屬于黑色區域。然后,白色區域與黑色區域的界限被判斷為邊界。另外,在本實施方式中,檢測出與白色區域相鄰的黑色區域像素,并將其當作位于邊界上的(或者鄰接邊界的)“邊界像素”。例如,在圖9的例中,像素P(n-5)被判斷為邊界像素,在圖10的例中,像素P(n-7)被判斷為邊界像素,在圖11的例中,像素P(n)被判斷為邊界像素,在圖12的例中,像素P(n-6)被判斷為邊界像素。此外,在其它實施方式中,也可以檢測出與黑色區域相鄰的白色區域像素,并將其當作位于邊界上的“邊界像素”。實拍圖像的各個像素與表示該像素是否是邊界像素的標志(邊界標志)之間建立了對應,對于被判斷為邊界像素的像素,使邊界標志為0N。以下的說明中,將如上所述那樣檢測出的邊界像素稱為“起點邊界像素”。可以推測,起點邊界像素是畫在標記50上的圖案的輪廓(如圖5所示的白色區域與黑色區域的界線)的一部分。在起點邊界像素是畫在標記50上的圖案的輪廓的一部分的情況下,以該起點邊界像素為起點來依次追蹤相鄰的邊界像素,便能檢測出畫在標記50上的圖案(如圖5所示的白色區域與黑色區域的界線)的輪廓。
以下說明將起點邊界 像素作為起點來依次追蹤相鄰的邊界像素的處理(邊界追蹤處理)。首先,如圖13所示,以起點邊界像素作為中心,按左下方相鄰像素一下方相鄰像素一右下方相鄰像素一右方相鄰像素一右上方相鄰像素一上方相鄰像素一左上方相鄰像素的順序(即,以起點邊界像素為中心而從左方相鄰像素出發沿逆時針方向)搜索黑色區域像素,并將第一次檢測出的黑色區域像素當作繼起點邊界像素之后的新的邊界像素。關于各個相鄰像素是否是黑色區域像素,根據檢測起點邊界像素時所利用的邊界判斷閾值來進行判斷,具體而言,在相鄰像素的亮度值小于邊界判斷閾值的情況下,該相鄰像素被判斷為黑色區域像素。例如,在圖14的例中,作為新的邊界像素,檢測出左下方相鄰像素,在圖15的例中,作為新的邊界像素,檢測出右方相鄰像素。在邊界追蹤處理中,以起點邊界像素為起點而依次檢測出的邊界像素,作為一系列的邊界像素,其坐標值依次被存儲于主存儲器32。以下的說明中,將在邊界追蹤處理中最后檢測出的一個邊界像素稱為“前導邊界像素”,而將檢測出前導邊界像素之前檢測出來的倒數第二個邊界像素稱為“第二個邊界像素”。繼前導邊界像素之后的新的邊界像素是通過以前導邊界像素為中心,并以其相鄰像素為起點,沿著逆時針方向搜索黑色區域像素而被檢測出的像素,該相鄰像素位于從該前導邊界像素來看是第二個邊界像素的方向開始,沿逆時針方向回轉了 135度的方向(在其它實施方式中,也可以將位于按逆時針方向回轉了 45度的方向的相鄰像素作為起點,或者也可以將位于按逆時針方向回轉了 90度的方向的相鄰像素作為起點)。然后,該搜索中第一次檢測出的黑色區域像素被當作新的邊界像素(即,新的前導邊界像素)。例如,如圖16所示,在第二個邊界像素是前導邊界像素的右上方相鄰像素的情況下,以前導邊界像素為中心,從左方相鄰像素開始沿著逆時針方向搜索黑色區域像素。因此,在圖17的例中,前導邊界像素的下方相鄰像素作為新的邊界像素被檢測出。再例如,如圖18所示,在第二個邊界像素是前導邊界像素的左方相鄰像素的情況下,以前導邊界像素為中心,從右下方相鄰像素開始沿著逆時針方向搜索黑色區域像素。因此,在圖19的例中,前導邊界像素的右方相鄰像素作為新的邊界像素被檢測出。通過反復進行上述處理,便可依次檢測出新的邊界像素,當最終前導邊界像素到達起點邊界像素時,黑色區域的輪廓的檢測便結束(即,有關表示黑色區域的輪廓的一系列的邊界像素群的數據被存儲于主存儲器32)。另外,在本實施方式中,每當在邊界追蹤處理中檢測出新的邊界像素,都要基于上述邊界標志來判斷該新的邊界像素是否包括在已經檢測出來的一系列的邊界像素群中。然后,若連續三次判斷為新的邊界像素包括在已經檢測的一系列的邊界像素群中,則中斷邊界追蹤處理。例如,如圖20所示,若只是連續兩次判斷為新的邊界像素包括在已經檢測出來的一系列的邊界像素群中,則不會中斷邊界追蹤處理。然而,如圖21所示,若連續三次判斷為新的邊界像素包括在已經檢測出來的一系列的邊界像素群中,則中斷邊界追蹤處理。這是因為如圖21所示的黑色區域很有可能不是畫在標記50上的圖案的輪廓(即是標記50以外的物體的輪廓)。另外,就算是該黑色區域是畫在標記50上的圖案的輪廓,也很有可能無法正常進行后述的模式匹配處理等。由此,可以避免無用的處理。另外,次數為三次只不過是一例,也可以是其它次數。另外,雖然在上述說明中對以起點邊界像素為起點,沿著逆時針方向追蹤黑色區域的輪廓的例子進行了說明,但是在其它實施方式中,也可以以起點邊界像素為起點,沿著順時針方向追蹤黑色區域的輪廓。 如上所述,在輪廓檢測處理中,確定了白色區域亮度值Lw和黑色區域亮度值Lb,并根據這些白色區域亮度值Lw及黑色區域亮度值Lb,來計算邊界判斷閾值。因此,即使因實拍圖像的整體或者一部分的亮度發生變化,而導致實拍圖像中的標記50的白色區域及黑色區域的亮度也相應地變化,也可以使用合適的邊界判斷閾值來進行輪廓提取處理。因此,標記50的識別精度得到提聞。另外,雖然在上述輪廓檢測處理中,根據像素的亮度值來提取輪廓,但是不局限于亮度值,也可以根據其它任何像素值(具體而言是色值)來檢測輪廓。另外,雖然在上述輪廓檢測處理中,首先判斷在水平方向上分離的兩個像素(像素P(n)與像素P(n-8))之間是否存在邊界,但是選擇兩個像素的方法不局限于此。例如,可以判斷在垂直方向上分離的兩個像素之間是否存在邊界,也可以判斷在斜方向分離的兩個像素之間是否存在邊界。另外,雖然在上述輪廓檢測處理中,在L(n-8)_L(n)大于或等于規定值的情況下,判斷為像素P(n)與像素P(n-8)之間存在邊界(在此情況下,可以找到左側為白色區域、右側為黑色區域這樣的邊界),但是在其它實施方式中,也可以是,在L(n-8)-L(n)的絕對值大于或等于規定值的情況下,判斷為像素P (n)與像素P (n-8)之間存在邊界。在此情況下,除了左側為白色區域、右側為黑色區域這樣的邊界以外,還可以找到左側為黑色區域、右側為白色區域這樣的邊界。另外,雖然在上述輪廓檢測處理中,使用在檢測起點邊界像素時所利用的邊界判斷閾值來進行上述邊界追蹤處理,但是在其它實施方式中,也可以將該邊界判斷閾值用于從實拍圖像中的任何區域(例如,實拍圖像的整體)檢測邊界像素。例如,也可以根據上述邊界判斷閾值,來檢測在包含有起點邊界像素的行的下一行的邊界像素、或其它輪廓(包含有起點邊界像素的輪廓之外的)的邊界像素等。〈頂點檢測處理〉下面說明頂點檢測處理。頂點檢測處理是檢測實拍圖像中的標記50的黑色區域的4個頂點的處理,包括以下處理。 直線計算處理 直線統合處理 直線選擇處理 頂點計算處理在直線計算處理中,根據在上述輪廓檢測處理中存儲于主存儲器32的、有關表示黑色區域的輪廓的一系列的邊界像素群的數據,來計算多條直線。下面,參照圖22 圖36來對直線計算處理進行詳細的說明。在存儲于主存儲器32中的有關一系列的邊界像素群的數據中,對多個邊界像素分配了順序。下面,為了說明上的方便,將沿著逆時針方向追蹤黑色區域的輪廓的方向(即,若站在黑色區域面向白色區域的方向,則是左手方向)稱為前方,將沿著順時針方向追蹤黑色區域的輪廓的方向(即,若站在黑色區域面向白色區域的方向,則是右手方向)稱為后方。首先,如圖22所示,根據從起點邊界像素Pe(O)至該起點邊界像素Pe (0)的四個之前的邊界像素Pe (4)為止的五個邊界像素Pe(O) Pe (4),來生成最初的直線Li (0_4),而且將表示該直線Li (0-4)的數據存儲于主存儲器32。另外,作為根據多個邊界像素來生成直線的方法,可以采用各種方法,在本實施方式中采用最小二乘法來生成直線。下面,如圖23所示,根據與直線Li (0-4)對應的邊界像素Pe(O) Pe (4)的前方的五個邊界像素Pe (5) Pe (9),例如采用最小二乘法來生成假定直線,并判斷直線Li (0-4)和假定直線是否在同一直線上。該判斷例如可根據假定直線相對直線Li (0-4)的角度來作出。在本實施方式中,如圖24所示,若假定直線相對直線Li (0-4)的角度(將逆時針方向作為正方向)在-30° +30°的范圍內,則判斷為直線Li (0-4)和假定直線在同一直線上。在此,從-30°及+30°這些值只不過是一例,不局限于此。判斷為直線Li (0-4)和假定直線在同一直線上之后,根據對應于直線Li (0-4)的邊界像素Pe(O) Pe (4)、和對應于假定直線的邊界像素Pe (5) Pe (9)這十個邊界像素,例如采用最小二乘法,計算如圖25所示的直線Li (0-9),并將存儲于主存儲器32的、表示直線Li (0-4)的數據更新為表示直線Li (0-9)的數據。通過反復進行上述處理,來依次更新(延長)直線。另外,雖然在本實施方式中用五個邊界像素來生成一條假定直線,但是這只不過是一例,不局限于此。在圖26的例中,相對直線Li (0-14),假定直線(即,根據在直線Li (0-14)前方附近的五個邊界像素Pe (15) Pe (19)而生成的假定直線)的角度超過+30°,因而判斷為在直線Li (0-14)與假定直線的交點附近黑色區域呈凸角(即,在直線Li (0-14)與假定直線的交點附近黑色區域向外凸出)(參照圖24)。在此情況下,判斷為假定直線是與直線Li (0-14)不相同的新的直線,從而生成對應于該假定直線的新的直線Li (15-19)(參照圖27)。在此情況下,將表示直線Li (0-14)的數據依然保留于主存儲器32中,并將表示直線Li (15-19)的新的數據存儲于主存儲器32。接下來,如圖28所示,判斷直線Li (15-19)與根據與該直線Li (15-19)對應的邊界像素Pe (15) Pe (19)的前方的五個邊界像素Pe (20) Pe (24)而生成的假定直線是否在同一直線上。然后,若判斷為在同一直線上,則如圖29所示,根據邊界像素Pe(15) Pe (24),將直線 Li (15-19)更新為直線 Li (15-24)。通過反復進行上述處理,最后算出如圖30所示的多條直線(在圖30的例中,直線A 直線F的共六條線段)。另外,其中也可以包括如直線D那樣的較短的線段。
如上所述,在直線計算處理中,根據一系列的邊界像素中的在同一直線上的一部分邊界像素,可算出各條直線。另外,雖然在上述直線計算處理中,以起點邊界像素Pe(O)為起點來生成并更新直線,但是不局限于此,也可以以起點邊界像素Pe(O)以外的任何邊界像素為起點來生成并更新直線。另外,雖然在上述直線計算處理中,是在逆時針方向上生成并更新直線,但是不局限于此,也可以在順時針方向上生成并更新直線。
另外,雖然在上述直線計算處理中,判斷已經生成的直線與鄰接該直線的假定直線是否在同一直線上,并在判斷為在同一直線上的情況下,根據對應于這些直線及假定直線的多個邊界像素來計算直線,但是在其它實施方式中,也可以是,先生成多個假定直線之后,根據對應于該多個假定直線中的在同一直線上的多個假定直線的多個邊界像素,來計
算直線。另外,如圖31所示,在實拍圖像中以部分重疊在標記50的黑色區域的一邊的方式顯示黑色物體的情況下,在直線計算處理中,生成了直線A及直線B之后,如圖32所示,判斷直線B與假定直線是否在同一直線上,其中,該假定直線是根據與上述直線B對應的邊界像素群的前方的邊界像素群而算出的。由于假定直線相對直線B的角度小于-30°,因而判斷為在直線B與假定直線的交點附近黑色區域呈凹角(即,在直線B與假定直線的交點附近黑色區域向內側凹陷)(參照圖24)。但是,由于標記50的黑色區域的輪廓中不存在凹角(即,只存在凸角),因此在上述凹角被檢測出的情況下,可以推測為假定直線表示的是標記以外的其它物體的輪廓的一部分。如上所述,在直線計算處理中檢測出凹角的情況下,判斷為不能執行更新直線(延長線段)或重新生成直線的處理。然后,中斷對黑色區域沿著逆時針方向更新直線(延長線段)及重新生成直線的處理,接著,開始進行沿著與之前的方向相反的方向(即順時針方向)更新(延長)及重新生成直線的處理。例如,在圖31的例中,執行從起點邊界像素沿著順時針方向使直線A(線段)向后方延長的處理、及重新生成直線的處理。其結果,如圖33所示那樣,圖31的直線A被更新為直線A’,并且依次生成了直線C 直線E。另外,由于在直線E(線段)的后端檢測出凹角,因此到此為止該直線計算處理結束。其結果,算出了直線A’、直線B 直線E的共五條直線。另外,作為其它例子,如圖34所示,在實拍圖像中以部分重疊在標記50的黑色區域的一邊的方式顯示白色物體的情況下,在直線計算處理中,生成了直線A 直線C之后,檢測出凹角。然后,開始進行從起點邊界像素起沿著順時針方向將直線A向后方延伸的處理、及生成新的直線的處理,由此,將直線A更新為直線A’,進一步,依次生成直線D 直線G。其結果,算出了直線A’及直線B 直線G的共7條直線。作為另一個例子,如圖35所示,在實拍圖像中以重疊在標記50的黑色區域的一個頂點的方式顯示黑色物體的情況下,算出了直線A’及直線B 直線D的共四條直線。作為另一個例子,如圖36所示,在實拍圖像中以重疊在標記50的黑色區域的一個頂點的方式顯示白色物體的情況下,算出了直線A’及直線B 直線F的共六條直線。在直線計算處理完畢之后,接下來執行直線統合處理。直線統合處理是指,將在直線計算處理中算出的多條直線(線段)中的在同一直線上的同一方向的多條線段統合成一條線段的處理。例如,在圖30的例子中,直線A和直線F在同一直線上,而且朝向同一方向,因而如圖37所示,這兩條直線被統合成一條直線A+F。此外,例如在圖33的例子中,直線B和直線E在同一直線上,而且朝向同一方向,因而如圖38所示,這兩條直線被統合成一條直線B+E。此外,在例如圖34的例子中,直線B和直線F在同一直線上,而且朝向同一方向,因而如圖39所示,這兩條直線被統合成一條直線B+F。、
直線統合處理完畢之后,接下來執行直線選擇處理。直線選擇處理是指,從經過直線計算處理及直線統合處理而最終留下來的多條直線中,選擇與標記50的黑色區域的4個邊對應的直線的處理。在本實施方式中,在最終留下來的多條直線(線段)中選擇長度較長的四條直線(即,最長的直線、第二長的直線、第三長的直線及第四長的直線),來作為與標記50的黑色區域的4個邊分別對應的直線。在以下說明中,將所選擇出的四條直線按以其中任意一條直線為起點的逆時針方向順序分別稱為第一直線、第二直線、第三直線及第四直線。 例如在圖37的例子中,在直線選擇處理中,從直線A+F、直線B 直線E的五條直線中選擇直線A+F、直線B、直線C及直線E (參照圖40)。此外,例如在圖39的例子中,在直線選擇處理中,從直線A’、直線B+F、直線C 直線E、及直線G的六條直線中選擇直線A’、直線B+F、直線E及直線D。此外,例如在圖36的例子中,在直線選擇處理中,從直線A’、直線B 直線F的六條直線中選擇直線A’、直線B、直線E及直線D (參照圖41)。另外,由于在圖35及圖38的例子中只有四條直線,因此在直線選擇處理中選擇該四條直線。另外,在上述直線選擇處理中選擇了四條直線,這是因為標記50的黑色區域為四角形。然而,若標記50的黑色區域例如為六角形,則在直線選擇處理中則應選擇六條直線。在直線選擇處理結束之后,接下來執行頂點計算處理。在頂點計算處理中,根據在直線選擇處理中被選擇的四條直線(第一直線 第四直線),來計算標記50的黑色區域的4個頂點的位置。具體而言,第一直線和第二直線的交點的位置作為標記50的黑色區域的第一頂點的位置而被算出;第二直線和第三直線的交點的位置作為標記50的黑色區域的第二頂點的位置而被算出;第三直線和第四直線的交點的位置作為標記50的黑色區域的第三頂點的位置而被算出;第四直線和第一直線的交點的位置作為標記50的黑色區域的第四頂點的位置而被算出。例如在圖40的例子中,如圖42所示那樣計算第一頂點 第四頂點的位置。再例如,在圖41的例子,如圖43所示那樣計算第一頂點 第四頂點的位置。如上所述那樣,經過直線計算處理、直線統合處理、直線選擇處理及頂點計算處理,實拍圖像中的標記50的黑色區域的4個頂點可被檢測出來。如此檢測出的頂點的位置是基于在同一直線上的多個邊界像素而生成的直線的交點,因此具有很高的精度。例如,在將一系列的邊界像素中的任一個邊界像素確定為頂點的情況下,頂點的位置會因環境光等的影響而產生抖動,但是由于如上所述那樣檢測出的頂點的位置是根據多個邊界像素算出的,因此不會產生抖動。〈粗略判別處理〉下面,對粗略判別處理進行說明。粗略判別處理是指,在進行后述的圖案判別處理之前,根據通過頂點檢測處理而檢測出的4個頂點之間的位置關系來判斷該4個頂點是否是標記50的4個頂點的處理。在本實施方式中,在滿足如下所示的除外條件A D中任一個條件的情況下,判斷為通過頂點檢測處理而檢測出的4個頂點不是標記50的4個頂點。
除外條件A :任意的相鄰的2個頂點之間的距離太近的情況。具體是指,第一頂點與第二頂點之間的距離小于規定的閾值(第一最小容許距離)的情況;或者第二頂點與第三頂點之間的距離小于第一最小容許距離的情況;或者第三頂點與第四頂點之間的距離小于第一最小容許距離的情況;或者第四頂點與第一頂點之間的距離小于第一最小容許距離的情況。例如,在圖44的例子中,由于第一頂點與第二頂點之間的距離太近,因此判斷為第一頂點 第四頂點不是標記50的4個頂點。除外條件B :任一個頂點和與該頂點不相鄰的2個邊中的任一個邊之間的距離太近的情況。具體是指,第一頂點與第三直線之間的距離小于規定的閾值(第二最小容許距離)的情況;或者第一頂點與第四直線之間的距離小于第二最小容許距離的情況;或者第二頂點與第四直線之間的距離小于第二最小容許距離的情況;或者第二頂點與第一直線之間的距離小于第二最小容許距離的情況;或者第三頂點與第一直線之間距離小于第二最小容許距離的情況;或者第三頂點與第二直線之間的距離小于第二最小容許距離的情況;或者第四頂點與第二直線之間的距離小于第二最小容許距離的情況;或者第四頂點與第三直線之間的距離小于第二最小容許距離的情況。例如,在圖45的例子,由于第一頂點與第三 直線之間的距離太近,因此判斷為第一頂點 第四頂點不是標記50的4個頂點。除外條件C :任意的相向的2個邊的直線(向量)大致為同一方向的情況。具體是指,在第一直線(連接第四頂點和第一頂點的向量)和第三直線(連接第二頂點和第三頂點的向量)大致為同一方向的情況;或者第二直線(連接第一頂點和第二頂點的向量)和第四直線(連接第四頂點和第一頂點的向量)大致為同一方向的情況。例如,在圖44的例子中,由于第一直線(連接第四頂點和第一頂點的向量)和第三直線(連接第二頂點和第三頂點的向量)大致為同一方向,因此判斷為第一頂點 第四頂點不是標記50的4個頂點。在此,對于兩個向量是否大致為同一方向,例如可以根據如圖24所示的兩個向量所形成的角度來作出判斷。除外條件D :包括凹角的情況。具體是指,第一頂點 第四頂點之中的任一個頂點是凹角的情況。例如,在圖47的例子中,由于第二頂點為凹角,因此判斷為第一頂點 第四頂點不是標記50的4個頂點。另外,雖然在本實施方式中根據上述除外條件A 除外條件D來進行粗略判別處理,但是這只不過是一例,可以利用這些除外條件中的一個條件、或者多個條件,也可以使用與這些除外條件不相同的其它除外條件。在滿足上述除外條件A 除外條件D中的任一個條件的情況下,通過頂點檢測處理而檢測出的4個頂點被判斷為不是標記50的4個頂點,而且將其從后述的圖案判別處理的處理對象中排除。由此,圖案判別處理所需的處理負擔得到減輕。<圖案判別處理>下面,對圖案判別處理進行說明。圖案判別處理是指,用于判別顯示在以通過頂點檢測處理而檢測出的4個頂點為各角頂點而形成的區域中的圖案是否與畫在標記50上的圖案相同的處理。在圖案判別處理中,使用根據畫在標記50上的圖案而預先生成的模式定義數據,來判別顯示在以通過頂點檢測處理而檢測出的4個頂點為角頂點而形成的區域中的圖案是否與畫在標記50上的圖案相同。
模式定義數據是表示畫在標記50上的圖案的數據,本實施方式中,如圖48所示那樣,將標記50的各邊等分成16份而生成格子,并將格子之間形成的交叉點當作采樣點(S(l,l) S(15,15)),然后將對標記50上的各個采樣點的像素值進行了定義(參照圖49)的數據作為模式定義數據。另外,雖然在本實施方式中將標記50的各邊分割成16份,但這只不過是一例,不局限于分割成16份。另外,雖然在本實施方式中,將標記50的各邊等分而生成格子,并將該格子的交叉點當作采樣點,但是在其它實施方式中,也可以將由格子形成的四角形的中心當作采樣點。本實施方式中,將離標記50的左上頂點最近的交叉點當作采樣點S(l,I),將離標記50的左下頂點最近的交叉點當作采樣點S (1,15),將離標記50的右上頂點最近的交叉點當作采樣點S (15,I),將離標記50的右下頂點最近的交叉點當作采樣點S (15,15)。另外,雖然在圖49的例子中,像素值在表示像素值的欄中被定義為“黑”或“白”,但是在其它實施方式中,像素值也可以被定義為色值(RGB值)或亮度值。
圖50表示包含有標記50的實拍圖像。通過對該實拍圖像進行如上所述的輪廓檢測處理及頂點檢測處理,可算出第一頂點 第四頂點的位置。圖51表示將在實拍圖像中以第一頂點 第四頂點為各角頂點而形成的四角形的各邊等分成16份,以確定該四角形區域內的采樣點的位置的例子。在圖案判別處理中,通過將實拍圖像中的采樣點的像素值與模式定義數據進行核對(例如,計算相關性系數等),來判別在實拍圖像中以第一頂點 第四頂點為各角頂點而形成的區域中顯示的圖案是否是與畫在標記50上的圖案相同。然而,在利用圖51所示的方法來確定實拍圖像中的采樣點的情況下,存在著不能進行正確的判別的問題。例如,模式定義數據中的采樣點S(8,2)的像素值為“黑色”,而在圖51的實拍圖像中的采樣點S(8,2)的像素值卻為“白色”。此外,模式定義數據中的采樣點S(8,13)的像素值為“白色”,而在圖51的實拍圖像中的采樣點S(8,13)的像素值卻為“黑色”。其結果,有可能錯誤地判別為圖50的實拍圖像中不包含標記50。為解決上述問題,需要設法改進確定實拍圖像中的采樣點的位置的方法。下面,對確定實拍圖像中的采樣點的位置的方法的其它例子(第一確定方法及第二確定方法)進行說明。首先,參照圖52 圖58來說明確定實拍圖像中的采樣點的位置的第一確定方法。第一確定方法為,在以第一頂點 第四頂點為各角頂點而形成的四角形中,若相向的2個邊平行(包括大致平行的情況),則將該2個邊等分成16份,若相向的2個邊不平行,則將該2個邊不均等地分割成16份,并將由此生成的格子的交叉點當作采樣點。例如,在圖52的例子中,由于連接第一頂點和第四頂點的邊、與連接第二頂點和第三頂點的邊平行,因此連接第一頂點和第四頂點的邊、及連接第二頂點和第三頂點的邊分別被等分成16份。另一方面,由于連接第一頂點和第二頂點的邊、與連接第四頂點和第三頂點的邊不平行,因此連接第一頂點和第二頂點的邊、及連接第四頂點和第三頂點的邊未被等分成16份,而是被不均等地分割成16份。S卩,如圖52所示那樣,將連接第一頂點和第二頂點的邊分割成16份的各點(以下稱為分割點),與將該邊等分成16份的情況相比,分割點更偏向于第一頂點一側。并且,將連接第四頂點和第三頂點的邊分割成16份的各分割點,與將該邊等分成16份的情況相比,分割點更偏向于第四頂點一側。
下面,參照圖53 圖55,對在連接圖52中的第一頂點和第二頂點的邊上、及在連接第四頂點和第三頂點的邊上確定分割點的方法的一例進行說明。在以下說明中,將連接第一頂點和第二頂點的邊分割成16份的15個分割點,按照尚第一頂點近的順序被稱為第一分割點Ml、第二分割點M2、第三分割點M3、…、第15分割點M15。同樣地,將連接第四頂點和第三頂點的邊分割成16份的15個分割點,按照離第四頂點近的順序,被稱為第一分割點NI、第二分割點N2、第三分割點N3、…、第15分割點N15。首先,如圖53所示那樣確定第八分割點M8及第八分割點NS。具體而言,首先計算第一頂點與第四頂點之間的距離、和第二頂點與第三頂點之間的距離。然后,在將第一頂點與第四頂點之間的距離當作a,而將第二頂點與第三頂點之間的距離當作b的情況下,計算以a b的比率來分割第一頂點與第二頂點之間的距離的點、及以a b的比率來分割第四頂點與第三頂點之間的距離的點。然后,將所算出的前者確定為第八分割點M8,將所算出 的后者確定為第八分割點NS。其結果,第八分割點M8被確定在比第一頂點與第二頂點之間的中點更接近第一頂點的位置,第八分割點NS被確定在比第四頂點與第三頂點之間的中點更接近第四頂點的位置。下面,如圖54所示那樣確定第四分割點M4及第四分割點N4。具體而言,首先,計算第八分割點M8與第八分割點NS之間的距離。然后,在將該距離當作c的情況下,計算以a c的比率來分割第一頂點與第八分割點M8之間的距離的點、及以a c的比率來分割第四頂點與第八分割點NS之間的距離的點。然后,將所算出的前者確定為第四分割點M4,將所算出的后者確定為第四分割點N4。其結果,第四分割點M4被確定在比第一頂點與第八分割點M8之間的中點更靠近第一頂點的位置,第四分割點N4被確定在比第四頂點與第八分割點NS之間的中點更靠近第四頂點的位置。下面,如圖55所示那樣確定第二分割點M2及第二分割點N2。具體而言,首先,計算第四分割點M4與第四分割點N4之間的距離。然后,在將該距離當作d的情況下,計算以a d的比率來分割第一頂點與第四分割點M4之間的距離的點、及以a d的比率來分割第四頂點與第四分割點N4之間的距離的點。然后,將所算出的前者確定為第二分割點M2,將所算出的后者確定為第二分割點N2。其結果,第二分割點M2被確定在比第一頂點與第四分割點M4之間的中點更靠近第一頂點的位置,第二分割點N2被確定在比第四頂點與第四分割點N4之間的中點更靠近第四頂點的位置。以下,用同樣的方法來確定其它分割點(第一分割點Ml、第三分割點M3、第五分割點M5 第七分割點M7、第九分割點M9 第15分割點M15、第一分割點NI、第三分割點N3、第五分割點N5 第七分割點N7、第九分割點N9 第15分割點N15),最后得到如圖52所示的采樣點。另外,在第一確定方法中,若在以第一頂點 第四頂點為各角頂點而形成的四角形中,相向的2個邊平行,則將該2個邊等分成16份。下面,參照圖56 圖58來說明其理由。在從實拍圖像中檢測出如圖56所示的第一頂點 第四頂點的情況下,連接第一頂點和第四頂點的邊、與連接第二頂點和第三頂點的邊是平行的。在此情況下,假設用如圖53 圖55所示的方法來將這些邊分割成16份,則如圖57所示那樣,分割連接第一頂點和第四頂點的邊的分割點將整體上偏向于第一頂點的一側,而分割連接第二頂點和第三頂點的邊的分割點將整體上偏向于第二頂點的一側。然而,在實拍圖像中以如圖56所示的形狀顯示出標記50的情況下(S卩,連接第一頂點和第四頂點的邊、及連接第二頂點和第三頂點的邊是平行的情況下),攝像機與第一頂點之間的距離、和攝像機與第四頂點之間的距離是大致相同的。同樣地,攝像機與第二頂點之間的距離、和攝像機與第三頂點之間的距離是大致相同的。因此,在此情況下,為了將采樣點的位置確定在更合適的位置上,應如圖58所示那樣將連接第一頂點和第四頂點的邊及連接第二頂點和第三頂點的邊等分成16份。下面,參照圖59及圖60來說明確定實拍圖像中的采樣點的位置的第二確定方法。第二確定方法為,如圖59所示,首先延長以通過頂點檢測處理而檢測出的4個頂 點為各角頂點而形成的四角形的4個邊,并分別算出每一對相向的邊的交點(第一消失點及第二消失點)。在以下說明中,在通過頂點檢測處理而檢測出來的4個頂點中,將離連接第一消失點和第二消失點的直線(第一直線)最近的頂點稱為頂點A,從該頂點開始按逆時針方向將其它頂點依次稱為頂點B、頂點C、頂點D。接下來,計算通過頂點C而且與連接第一消失點和第二消失點的直線(第一直線)平行的直線(第二直線)。然后,計算通過頂點A及頂點B的直線與第二直線的交點(第一點)、及通過頂點A及頂點D的直線與第二直線的交點(第二點)。接下來,如圖60所示那樣,計算將第一點與頂點C之間的距離等分成16份的15個分割點,并將這些分割點與第二消失點連接。同樣地,計算將頂點C與第二點之間的距離等分成16份的15個分割點,并將這些分割點與第一消失點連接。然后,將由此生成的交叉點確定為實拍圖像中的采樣點。本發明的發明人的驗證結果表明,與第一確定方法相比,采用第二確定方法便能夠更合適地確定實拍圖像中的采樣點。然而,即使是第一確定方法也比圖51所示的方法更為有利,因而至于是采用第一確定方法還是第二確定方法,設計人可根據檢測精度的要求、或標記50的圖案的復雜程度等條件來適宜地決定。與圖51所示的方法相比,如上述第一確定方法或第二確定方法中所述那樣,通過將至少一對相向的2個邊中的各邊不均等地分割來確定實拍圖像中的采樣點,能夠更為正確地判別標記50。此外,作為將相向的2個邊中的各邊不均等地分割的方法,不局限于上述第一確定方法或第二確定方法,也可以采用其它方法。另外,由于剛結束頂點檢測處理時,還不知道通過頂點檢測處理而檢測出的第一頂點 第四頂點中哪一個頂點對應于標記5 0的左上頂點、左下頂點、右下頂點、右上頂點中的哪一個頂點,所以,可以考慮以下四種情況。即第一頂點對應于左上頂點的情況;第一頂點對應于左下頂點的情況;第一頂點對應于右下頂點的情況;第一頂點對應于右上頂點的情況。由此,在圖案判別處理中,對于這四種情況,分別進行與模式定義數據之間的核對。其結果,檢測出實拍圖像中的左上頂點的坐標、左下頂點的坐標、右下頂點的坐標及右上頂點的坐標,并將這些坐標作為標記位置信息而存儲于主存儲器32。另一方面,在游戲裝置10中,根據實時地從攝像機依次獲取的實拍圖像,以規定的周期(例如,以60分之I秒的周期)反復地執行如上所述的輪廓檢測處理、頂點檢測處理、粗略判別處理及圖案判別處理。由此,便能實時地檢測出實拍圖像中的標記50的位置。
然而,因照射到標記50上的光線的狀況等原因,有可能出現雖然在實拍圖像中顯示出標記50,但是實拍圖像中的標記50的輪廓及頂點的檢測暫時失敗的情況。若標記50的輪廓及頂點的檢測暫時失敗,則例如在圖4所示的狀態下,雖然用戶未移動游戲裝置10,但是虛擬對象60卻暫時消失。若虛擬對象60頻繁地消失或出現,則用戶會感到掃興。在本實施方式中,為了避免上述不良現象(標記位置無意中發生變動)發生,在當前的實拍圖像中的標記50的輪廓及頂點的檢測失敗的情況下,根據從前一個實拍圖像中檢測出的標記50的頂點(或者采樣點)的位置,來對當前的實拍圖像進行圖案判別處理。在此,“當前的實拍圖像”是指正在處理中的實拍圖像,而未必是用攝像機拍攝到的最新的實拍圖像。
具體而言,在當前的實拍圖像中的標記50的輪廓及頂點的檢測失敗的情況下,如圖61所示那樣,從存儲于主存儲器32的標記位置信息中,獲取從前一個實拍圖像中檢測出來的標記50的4個頂點(或者,基于該4個頂點而確定的采樣點)的位置。然后,如圖62所示那樣,根據從前一個實拍圖像中檢測出的標記50的4個頂點的位置,來確定當前的實拍圖像中的采樣點的位置,并使用這樣確定了的采樣點(或者,在前一次圖案判別處理中確定了的采樣點)的像素值,來進行圖案判別處理。然后,作為該圖案判別處理的結果,若判斷為當前的實拍圖像中的與前一個實拍圖像中的位置相同的位置上存在標記50,則將前一個實拍圖像中的標記50的4個頂點的坐標作為對應于當前的實拍圖像的標記位置信息而存儲于主存儲器32。通過如上所述的處理,在用戶不移動游戲裝置10的情況下,即使實拍圖像中的標記50的輪廓及頂點的檢測暫時失敗,也能夠檢測出標記50的位置。由此,如上所述,能夠避免用戶未移動游戲裝置10而虛擬對象60卻頻繁地消失或出現這樣的現象發生。另外,當前的實拍圖像中的標記50的位置有可能偏離前一個實拍圖像中的標記50的位置。于是,在其它實施方式中,除了前一個實拍圖像中的標記50的位置以外,還可以將前一個實拍圖像中的標記50的位置附近的范圍作為對象來進行圖案判別處理。例如,也可以將從前一個實拍圖像中檢測出的標記50的4個頂點的位置移動數次,每次執行圖案判別處理,然后將多次處理的結果中與模式定義數據的最接近的4個頂點的位置確定為當前的實拍圖像中的標記50的4個頂點的位置。另外,雖然在本實施方式中,在當前的實拍圖像中的標記50的輪廓及頂點的檢測失敗的情況下,根據從前一個實拍圖像檢測出的標記50的頂點(或者采樣點)的位置,來對當前的實拍圖像進行圖案判別處理,但是不局限于此,也可以根據從當前的實拍圖像之前的其它任何實拍圖像中檢測出來的標記50的頂點(或者采樣點)的位置(即,根據與已存儲于主存儲器32的、其它任何實拍圖像對應的標記位置信息),來對當前的實拍圖像進行圖案判別處理。另外,雖然在本實施方式中,在當前的實拍圖像中的標記50的輪廓及頂點的檢測失敗的情況下,根據從前一個實拍圖像中檢測出的標記50的頂點(或者采樣點)的位置,來對當前的實拍圖像進行圖案判別處理,但是上述處理不僅適用于利用如圖48 圖60所示的模式匹配手法來進行圖案判別處理的情況,也適用于利用公知的其它任何模式匹配手法來進行圖案判別處理的情況。<標記位置修改處理>
下面,說明標記位置修改處理。標記位置修改處理是指,適當地修改通過圖案判別處理而檢測出的標記50的位置(即,標記50的黑色區域的4個頂點的位置)的處理。對標記位置修改處理進行具體說明之前,首先說明不進行標記位置修改處理時有可能出現的不良現象。如上所述,根據對實拍圖像進行的輪廓檢測處理的結果,能夠檢測出實拍圖像中的標記50的位置。在該輪 廓檢測處理中,通過對比邊界判斷閾值與各個像素的亮度值來檢測邊界像素。在此,若存在具有非常接近邊界判斷閾值的亮度值的像素,例如,該像素有可能在某一個實拍圖像中被判斷為黑色區域,而在下一個實拍圖像中被判斷為白色區域。這樣的現象在完全不移動攝像機(即游戲裝置10)的情況下也會發生。其理由是,因為環境光等影響,各個像素的亮度值會隨時間的變化而略微發生變化。這樣,輪廓檢測處理的結果一有變化,最終檢測出的實拍圖像中的標記50的位置就會產生變化,因而,例如即使用戶未移動游戲裝置10,圖4所示的虛擬對象60的位置或方向也會有所變化。即,虛擬空間圖像產生抖動。為了避免(或改善)這一不良現象的發生,在本實施方式中進行標記位置修改處理。在標記位置修改處理中,首先,根據從前一個實拍圖像中檢測出的標記50的位置、及從當前的實拍圖像中檢測出的標記50的位置,計算出實拍圖像中的標記50的移動量。參照圖63來說明計算實拍圖像中的標記50的移動量的方法的一例。如圖63所示那樣,將從前一個實拍圖像中檢測出的標記50的左上頂點當作VpI,將左下頂點當作Vp2,將右下頂點當作Vp3,將右上頂點當作Vp4,將從當前的實拍圖像中檢測出的標記50的左上頂點當作Vcl,將左下頂點當作Vc2,將右下頂點當作Vc3,將右上頂點當作Vc4。然后,將Vpl與Vcl之間的距離當作a,將Vp2與Vc2之間的距離當作b,將Vp3與Vc3之間的距離當作C,將Vp4與Vc4之間的距離當作d,則實拍圖像中的標記50的移動量便成為a~2+b~2+c~2+cT2( 表示乘方)。在此,上述計算方法只不過是一例,計算在實拍圖像中的標記50的移動量的方法不局限于此。算出在實拍圖像中的標記50的移動量之后,接下來根據該移動量,對在圖案判別處理中檢測出的標記50的位置進行修改。參照圖64來說明標記50的位置的修改方法。在標記50的移動量小于Dl的情況下,將當前的實拍圖像中的標記50的各個頂點Vc (圖63的Vcl Vc4)的位置分別修改到前一次檢測出的各個頂點Vp (圖63的Vpl Vp4)的位置。在此,Dl是規定的閾值,如后述那樣,根據實拍圖像上的標記50的大小而相應地發生變化。在標記50的移動量大于或等于Dl且小于D2的情況下,將當前的實拍圖像中的標記50的各個頂點Vc (圖63的Vcl Vc4)的位置修改到用算式VpXA+VcX (I-A)算出的位置。在此,D2是大于Dl的規定的閾值,如后述那樣,按照在實拍圖像上的標記50的大小而相應地發生變化。此外,A是大于0且小于I的規定值,如后述那樣,根據標記50的運動向量而相應地發生變化。在標記50的移動量大于或等于D2的情況下,對當前的實拍圖像中的標記50的各個頂點Vc (圖63的Vcl Vc4)的位置不進行修改。如上所述,在標記50的移動量小于Dl的情況下(即,標記50的移動量非常小的情況下),視為標記50的位置與前一個實拍圖像中的標記50的位置完全相同。因此,能夠避免如上所述的無意中發生的標記位置的變動,其結果,能夠防止虛擬空間圖像抖動的現象。另外,在標記50的移動量大于或等于Dl且小于D2的情況下(即,標記50的移動量較小的情況下),如圖65所示,將標記50的位置修改到連接前一個實拍圖像中的標記50的位置與當前的實拍圖像中的標記50的位置的線段上的位置(S卩,以(I-A) A的比率對從Vp到Vc為止的線段進行內分后得到的點)。這樣,能夠改善如上所述的標記位置無意中發生變動,從而減輕虛擬空間圖像的抖動。另外,與標記50的移動量小于Dl的情況不同,修改后的標記50的位置比前一個實拍圖像中的標記50的位置更靠近當前的實拍圖像中的標記50的位置,因而當用戶略微(或者緩慢地)移動了游戲裝置10時,能夠在改善標記位置無意中發生變動的同時,根據游戲裝置10的移動而相應地更新標記50的位置(即,虛擬對象60的位置)。此外,在標記50的移動量大于或等于D2的情況下(即,標記50的移動量較大的 情況下),不修改標記50的位置。這樣,當用戶突然大幅移動游戲裝置10時,能夠立即響應突如其來的游戲裝置10的移動,而相應地更新標記50的位置。因此,例如圖4中所顯示的虛擬對象60不會大幅偏離標記50。下面,對確定上述閾值Dl及D2的方法進行說明。如上所述,上述閾值Dl及D2是用于判斷在實拍圖像中的標記50的移動量有多大(即,是非常小,是較小,還是很大)的閾值,優選根據實拍圖像中的標記50的大小來相應地變更這些閾值。下面,參照圖66及圖67來說明其理由。圖66示出的是,實拍圖像上的標記50較大的情況下(即,在現實世界中,標記50位于離攝像機較近的位置的情況下),將虛擬對象60顯示在前一個標記位置上的例子。在此,假設前一個標記位置與當前的標記位置之間的距離(在實拍圖像上的距離)為D。在此情況下,從用戶的角度來看,虛擬對象60似乎沒有大幅偏離當前的標記位置。圖67示出的是,實拍圖像上的標記50較小的情況下(即,在現實世界中,標記50位于離攝像機較遠的位置的情況下),將虛擬對象60顯示在前一個標記位置(即,前一個實拍圖像中的標記50的位置)上的例子。在此情況下,與圖66—樣,假設前一個標記位置與當前的標記位置之間的距離(在實拍圖像上的距離)為D。在此情況下,從用戶的角度來看,虛擬對象60似乎大幅偏離了當前的標記位置。從圖66及圖67可明顯看出,雖然前一個標記位置與當前的標記位置之間的距離(在實拍圖像上的距離)相同,但是從用戶的角度來看,實拍圖像上的標記50越小,前一個標記位置與當前的標記位置之間偏離看上去越大。所以,如圖68所示,優選在實拍圖像上的標記50較大的情況下將Dl的值設定得較大;而在實拍圖像上的標記50較小的情況下將Dl的值設定得較小。即,優選在實拍圖像上的標記50越小,將Dl的值設定得越小。同樣地,如圖69所示,優選在實拍圖像上的標記50較大的情況下將D2的值設定得較大;在實拍圖像上的標記50較小的情況下將D2的值設定得較小。即,優選在實拍圖像上的標記50越小,將D2的值設定得越小。另外,作為計算實拍圖像上的標記50的大小的方法,可以考慮各種方法。例如,可以將實拍圖像上的標記50的面積作為實拍圖像上的標記50的大小來進行計算。在其它實施方式中,也可以將實拍圖像上的標記50的兩個對角線的外積的大小作為實拍圖像上的標記50的大小來進行計算。此外,在其它實施方式中,也可以將內含在實拍圖像上的標記50的4個頂點的圓的直徑作為實拍圖像上的標記50的大小來進行計算。此外,在其它實施方式中,也可以根據實拍圖像上的標記50的X軸向的寬度及Y軸向的寬度,來計算實拍圖像上的標記50的大小。下面,對確定上述規定值A的方法進行說明。如上所述,在標記50的移動量大于或等于Dl且小于D2的情況下,如圖65所示,標記50的位置被修改到以(I-A) A的比率來對連接前一個實拍圖像中的標記50的位置與當前的實拍圖像中的標記50的位置的線段進行內分后得到的點。在此,在將A的值固定為較小的值(例如,0. I)的情況下,標記50的位置被修改到與前一個實拍圖像中的標記50的位置大致相同的位置。由此導致響應性降低,即使實拍圖像中的標記50的位置發生了變化,虛擬對象60的位置也不會發生太大的變化。因此,存在著以下問題例如,當用戶將游戲裝置10向希望的方向持續緩慢地移動時,用戶觀看到的虛擬對象60明顯偏離標記50。相反,在將A的值固定為較大的值(例如,0. 9)的情況下,標記50的位置被修改到與當前的實拍圖像中的標記50的位置大致相同的位置。所以,存在著以下問題雖然響應性得到提高,但是減輕如上所述的無意中發生的標記位置的變動的效果會大幅減弱。為解決上述兩個問題,在本實施方式中,根據標記50的運動向量來使A的值變化。具體而言,根據某一個實拍圖像中的標記50的位置(例如,標記50的各個頂點的位置)及其前一個實拍圖像中的標記50的位置,依次計算表示標記50向哪一個方向移動的運動向量,并將其結果依次存儲于主存儲器32。然后,根據新算出的運動向量及存儲于主存儲器32的過去已算出的運動向量,判斷標記50在實拍圖像中是否在一定方向(也可以是大致一定的方向)上持續地移動,若標記50是在一定方向上持續地移動,則將A的值設定為較大的值,若標記50不是在一定方向上持續地移動,則將A的值設定為較小的值。通過使A的值如上所述那樣變化,例如,在用戶將游戲裝置10向希望的方向緩慢持續地移動的期間,響應性得到提高,因而不會出現虛擬對象60看上去大幅偏離標記50的情況。并且,在除此之外的狀況下,響應性會降低,因而能夠充分發揮如上所述的改善不希望的標記位置的變動的效果。此外,雖然在本實施方式中,如圖64所示,在標記50的移動量小于Dl的情況下、在標記50的移動量大于或等于Dl且小于D2的情況下、以及標記50的移動量大于或等于D2的情況下,采用不同的方法來修改標記50的位置(例如4個頂點的位置),但這只不過是一例,修改標記50的位置的方法不局限于此。例如,作為其它實施方式,如圖70所示,在標記50的移動量小于D3的情況下,也可以將根據當前的實拍圖像檢測出的標記50的位置修改到前一個實拍圖像中的標記50的位置;在標記50的移動量大于或等于D3的情況下,也可以不修改根據當前的實拍圖像檢測出的標記50的位置而直接使用該位置。這樣能夠防止無意中發生的標記位置的變動。在此,D3是規定的閾值,但也可以根據實拍圖像上的標記50的大小而相應地改變其值。另外,作為其它實施方式,如圖71所示,在標記50的移動量小于D4的情況下,也可以將根據當前的實拍圖像而檢測出的標記50的位置修改到以(I-A) A的比率來對連、接前一個實拍圖像中的標記50的位置與當前的實拍圖像中的標記50的位置的線段進行內分后得到的點;在標記50的移動量大于或等于D4的情況下,也可以不修改根據當前的實拍圖像檢測出的標記50的位置而直接使用該位置。這樣能夠改善不希望的標記位置的變動。在此,D4是規定的閾值,但也可以根據實拍圖像上的標記50的大小而相應地改變其值。另外,雖然在標記位置修改處理中,如上所述那樣使用標記50的移動量或標記50的運動向量來進行處理,但是在實拍圖像中包含圖案相同的多個標記的情況下,需要分別判定其中哪一個標記移動到何處。例如,如圖72所示,在從前一個實拍圖像中檢測出圖案相同的多個標記(標記A、標記B),而且從當前的實拍圖像中也檢測出具有與這些標記相同的圖案的多個標記(第一標記、第二標記)的情況下,需要判別這些標記之間的對應關系。在本實施方式中,分別計算從前一個實拍圖像中檢測出的各個標記的代表點與從當前的實拍圖像中檢測出的各個標記的代表點之間的距離,并在該距離小于規定的閾值的情況下,判斷為該兩個標記是互相對應的。作為標記的代表點,例如可以利用通過對標記的4個頂點的坐標進行平均而得到的坐標。參照圖72來進行具體的說明,首先,計算從標記A的代表點到第一標記為止的距離,在該距離小于規定的閾值(較佳的是,在實拍圖像上的標記A或者第一標記越大,將該閾值設定得越大)的情況下,判斷為標記A與第一標記相對應。同樣地,計算出從標記A的代表點到第二標記為止的距離,在該距離小于規定的閾值(較佳的是,在實拍圖像上的標記A或者第二標記越大,將該閾值設定得越大)的情況下,判斷為標記A與第二標記相對應。并且,同樣計算出從標記B的代表點到第一標記為止的距離,在該距離小于規定的閾值(較佳的是,在實拍圖像上的標記B或者第一標記越大,將該閾值設定得越大)的情況下,判斷為標記B與第一標記相對應。并且,同樣計算出從標記B的代表點到第二標記為止的距離,在該距離小于規定的閾值(較佳的是,在實拍圖像上的標記B或者第二標記越大,將該閾值設定得越大)的情況下,便判斷為標記B與第二標記相對應。通過如上所述那樣判別標記之間的對應關系,即使在實拍圖像中包含有圖案相同的多個標記的情況下,也能夠計算出各個標記的移動量或運動向量。此外,在實拍圖像包含不同圖案的多個標記的情況下,能夠根據這些圖案來判別標記之間的對應關系。另外,雖然在上述標記位置修改處理中,根據從前一個實拍圖像中檢測出的標記50的位置、及從當前的實拍圖像中檢測出的標記50的位置,來計算實拍圖像中的標記50的移動量,但是不局限于此,例如,也可以根據從當前的實拍圖像之前已獲取的任何實拍圖像(例如,當前的實拍圖像的前兩個實拍圖像等)中檢測出的標記50的位置、及從當前的實拍圖像中檢測出的標記50的位置,來計算實拍圖像中的標記50的移動量。
如上所述,經過輪廓檢測處理、頂點檢測處理、粗略判別處理、圖案判別處理及標記位置修改處理,而從實拍圖像中檢測出標記50的位置(例如,標記50的黑色區域的4個頂點的位置)。然后,根據這樣檢測出來的標記50的位置,計算出現實空間中的攝像機(外側拍攝部(左)23a或外側拍攝部(右)23b)與標記50之間的位置關系,并根據該計算結果,來設定在虛擬空間中的虛擬攝像機與虛擬對象60之間的位置關系。然后,對應于該虛擬攝像機而生成虛擬空間圖像,在攝像機所拍攝的實拍圖像上合成虛擬空間圖像,并將該合成之后的圖像顯示在上部IXD22。下面,具體說明CPU311根據圖像識別程序而執行的圖像識別處理的流程。圖73表示存儲于主存儲器32的程序及數據。在主存儲器32中,存儲有圖像識別程序70、圖像生成程序71、虛擬對象數據72、虛擬攝像機數據73、模式定義數據74、實拍圖像數據75、邊界判斷閾值76、邊界像素信息77、直線信息78、頂點信息79、標記位置信 息80、運動向量信息81及各種變數82。圖像識別程序70是用于從實拍圖像中檢測標記的電腦程序,圖像生成程序71是用于根據標記的位置來在實拍圖像上合成虛擬空間圖像的電腦程序,該標記是根據圖像識別程序而檢測出來的。這些程序既可以從數據保存用內部存儲器35載入到主存儲器32中,又可以從外部存儲器44載入到主存儲器32中,也可以經由無線通信模塊36或局部通信模塊37從服務器裝置或其它游戲裝置下載到主存儲器32中。另外,至于CPU311根據圖像生成程序71而執行的圖像生成處理,可以利用現有技術,由于與本發明關連性不大,因此,本說明書中省略詳細的說明。另外,也可以將圖像識別程序70及圖像生成程序71構成為一個圖像處理程序。虛擬對象數據72是有關配置于虛擬空間的虛擬對象60的形狀、顏色和圖樣等的數據。虛擬攝像機數據73是有關配置于虛擬空間的虛擬攝像機的位置或姿勢等的數據。模式定義數據74是預先被存儲的、用于判別標記50并表示標記50的圖案的數據(圖 49)。實拍圖像數據75是攝像機(外側拍攝部(左)23a或者外側拍攝部(右)23b)所拍攝的實拍圖像的圖像數據。邊界判斷閾值76是用于判斷在輪廓檢測處理中,實拍圖像的各個像素是否是邊界像素的閾值。邊界像素信息77是在輪廓檢測處理中被判定為邊界像素的像素的信息。直線信息78是在直線計算處理中被生成及被更新的直線的信息。頂點信息79是在頂點計算處理中計算出的頂點的信息。標記位置信息80是通過頂點檢測處理而生成、且在標記位置修改處理中根據需要而被更新的信息,用于表示實拍圖像中的標記50的位置(標記50的黑色區域的4個頂點的位置)。標記位置信息80不僅包括表示從當前的實拍圖像中檢測出的標記50的位置的信息(80a),也包括表示從前一個實拍圖像中檢測出的標記50的位置的信息(80b)。運動向量信息81是表示運動向量的信息,該運動向量表示標記50移動的方向。各種變數82是執行圖像識別程序70或圖像生成程序71時所使用的各種變數(例如,白色區域亮度Lw、黑色區域亮度Lb、閾值D1、閾值D2及規定值A等)。首先,參照圖74來對CPU311根據圖像識別程序而執行的圖像識別處理的整體流程進行說明。步驟SI中,CPU311獲取攝像機(外側拍攝部(左)23a或者外側拍攝部(右)23b)所拍攝到的實拍圖像,并將其存儲于主存儲器32。
步驟S2中,CPU311進行輪廓檢測處理。對于輪廓檢測處理的具體流程,后述中將參照圖75來進行說明。步驟S3中,CPU311判斷在步驟S2的輪廓檢測處理中是否檢測出輪廓,若檢測出輪廓,則處理進入步驟S4 ;若未檢測出輪廓,則處理進入步驟S9。步驟S4中,CPU311進行頂點檢測處理。對于頂點檢測處理的具體流程,在后述中將參照圖76來進行說明。步驟S5中,CPU311判斷在步驟S4的頂點檢測處理中是否檢測出頂點,若檢測出頂點,則處理進入步驟S6 ;若未檢測出頂點,則處理進入步驟S9。步驟S6中,CPU311進行粗略判別處理。對于粗略判別處理的具體流程,在后述中將參照圖77來進行說明。步驟S7中,CPU311根據步驟S6的粗略判別處理的結果,判斷是否存在可以成為標記50的頂點的候補頂點,若檢測出可以成為標記50的頂點的候補頂點,則處理進入步驟S8 ;若未檢測出可以成為標記50的頂點的候補頂點,則處理進入步驟S12。步驟S8中,CPU311進行圖案判別處理。對于圖案判別處理的具體流程,在后述中將參照圖78來進行說明。步驟S9中,CPU311根據前一個實拍圖像中的標記50的位置(即,從前一個實拍圖像中檢測出來的頂點的位置或者在前一個實拍圖像中確定下來的采樣點的位置),來進行圖案判別處理。步驟SlO中,CPU311判斷在步驟S8或者步驟S9的圖案判別處理中是否檢測出標記50,若檢測出頂點,則處理進入步驟Sll ;若未檢測出頂點,則處理進入步驟S12。步驟SI I中,CPU311進行標記位置修改處理。對于標記位置修改處理的具體流程,在后述中將參照圖79來進行說明。步驟S12中,CPU311判斷是否要結束圖像識別處理,在要繼續進行圖像識別處理的情況下,返回步驟SI,在要結束圖像識別處理的情況下,結束圖像識別程序的執行。下面,參照圖75來說明CPU311根據圖像識別程序而執行的輪廓檢測處理的流程。步驟S21中,CPU311確定注目像素P(n)。步驟S22中,CPU311判斷L(n-8)-L(n)是否大于或等于60,若該值大于或等于60,則進入步驟S23 ;若該值小于60,則進入步驟S34。步驟S23中,CPU311將8作為初始值代入變數k。步驟S24 中,CPU311 判斷 L(n_k_l)是否小于 L (n_k),若 L (n_k_l)小于 L(n_k),則進入步驟S25 ;若L(n-k-l)不小于L(n-k),則進入步驟S26。步驟S25中,CPU311使變數k遞增。步驟S26中,CPU311將L(n-k)確定為白色區域亮度值Lw。步驟S27中,CPU311判斷L(n)是否小于L (n+2),若L (n)小于L (n+2),則進入步驟S28 ;若L(n)不小于L (n+2),則進入步驟S30。步驟S28中,CPU311判斷Lw_L(n+2)是否大于或等于60,若該值大于或等于60,則進入步驟S29 ;若該值小于60,則進入步驟S30。
步驟S29中,CPU311將L(n+2)確定為黑色區域亮度值Lb。步驟S30中,CPU311將L(n)確定為黑色區域亮度值Lb。
步驟S31中,CPU311將Lw和Lb的平均值確定為邊界判斷閾值。步驟S32中,CPU311根據邊界判斷閾值來檢測起點邊界像素。該起點邊界像素的坐標作為邊界像素信息被存儲于主存儲器32。步驟S33中,CPU311執行以起點邊界像素為起點來依次追蹤相鄰的邊界像素的邊界追蹤處理。該邊界追蹤處理中依次檢測出來的邊界像素的坐標作為邊界像素信息而被依次存儲于主存儲器32。步驟S34中,CPU311判斷是否存在下一個注目像素,若存在則返回步驟S21 ;若不存在(即,在關于實拍圖像的所有注目像素候補的處理完畢的情況下)則結束輪廓檢測處
理。 下面,參照圖76來對CPU311根據圖像識別程序而執行的頂點檢測處理的流程進行說明。步驟S41中,CPU311生成最初的直線(即,與從起點邊界像素Pe(O)到邊界像素Pe (5)為止的邊界像素相對應的直線Li (0-5)),并將表示該直線的數據存儲于主存儲器32。步驟S42中,CPU311根據假定直線相對直線的角度來判斷所生成的直線與假定直線是否在同一直線上(參照圖24),其中,上述假定直線是根據后繼于與該直線對應的邊界像素群的多個邊界像素而算出的。若在同一直線上,則進入步驟S43 ;若不在同一直線上,則進入步驟S44。步驟S43中,CPU311更新直線。具體而言,根據對應于直線的邊界像素群、及對應于假定直線的邊界像素群,并用最小二乘法計算出直線,并根據該計算結果來更新直線(即,更新存儲于主存儲器32的、表示該直線的數據)。步驟S44中,CPU311根據假定直線相對于直線的角度來判斷黑色區域是否在直線與假定直線的交點處呈凸角(參照圖24)。然后,若呈凸角則進入步驟S45;若不呈凸角則進入步驟S47。步驟S45中,CPU311重新生成與假定直線對應的直線,并將表示該新生成的直線的數據重新存儲于主存儲器32。步驟S46中,CPU311判斷是否沿著黑色區域的輪廓繞了一周(即,是否返回起點邊界像素),若已繞完一周,則進入步驟S49 ;若未繞完一周,則返回步驟S42。步驟S47中,CPU311判斷是否正沿著逆時針方向進行直線計算處理(即步驟S42 步驟S46的處理),若正沿著逆時針方向進行,則進入步驟S48 ;若未沿逆時針方向進行,則進入步驟S49。本實施方式中,當作首先應沿著逆時針方向開始直線計算處理。步驟S48中,CPU311將進行直線計算處理的方向從逆時針方向變更為順時針方向。步驟S49中,CPU311根據存儲于主存儲器32的表示多條直線的數據,判斷在該多條直線中是否存在位于同一直線上且朝向同一方向的多條線段,若存在則進入步驟S50 ;若不存在則進入步驟S51。步驟S50中,CPU311將位于同一直線上且朝向同一方向的多條線段統合成一條線段,并更新存儲于主存儲器32的有關多條直線的數據。步驟S51中,CPU311根據存儲于主存儲器32的有關多條直線的數據,從該多條直線中選出四條直線。具體而言,計算出各直線(線段)的長度,并選出最長的直線、第二長的直線、第三長的直線、及第四長的直線。步驟S52中,CPU311通過計算出上述四條直線間的交點的位置,來計算出黑色區域的4個頂點的位置。然后,將該4個頂點的位置存儲于主存儲器32,并結束頂點檢測處理。下面,參照圖77來對CPU311根據圖像識別程序而執行的粗略判別處理的流程進行說明。步驟S61中,CPU311判斷在頂點檢測處理中檢測出的4個頂點是否滿足除外條件
A。如上所述,除外條件A是任何相鄰的2個頂點之間的距離太近的情況。若上述4個頂點滿足除外條件A,則進入步驟S65 ;若上述4個頂點不滿足除外條件A,則進入步驟S62。 步驟S62中,CPU311判斷在頂點檢測處理中檢測出的4個頂點是否滿足除外條件
B。如上所述那樣,除外條件B是任何頂點與不與該頂點相鄰的2個邊中的任一邊之間的距離太近的情況。若4個頂點滿足除外條件B則進入步驟S65 ;若4個頂點不滿足除外條件B,則進入步驟S63。步驟S63中,CPU311判斷在頂點檢測處理中檢測出的4個頂點是否滿足除外條件
C。如上所述那樣,除外條件C是任何相向的2個邊的直線大致為同一方向的情況。若滿足除外條件C,則進入步驟S65 ;若不滿足除外條件C,則進入步驟S64。步驟S64中,CPU311判斷在頂點檢測處理中檢測出來的4個頂點是否滿足除外條件D。除外條件D是如上所述那樣包括凹角的情況。若滿足除外條件D,則進入步驟S65;若不滿足除外條件D,則結束粗略判別處理。步驟S65中,CPU311將在頂點檢測處理中檢測出的4個頂點從圖案判別處理的處理對象中排除(例如,將有關該4個頂點的數據從主存儲器32中刪除)。然后,結束粗略判別處理。下面,參照圖78來對CPU311根據圖像識別程序而執行的圖案判別處理的流程進行說明。步驟S71中,CPU311從以通過頂點檢測處理而檢測出的4個頂點為角頂點而形成的四角形的4個邊中,選擇任意相向的2個邊。步驟S72中,CPU311判斷在步驟S71選出的2個邊是否平行(包括大致平行的情況),若平行則進入步驟S73 ;若不平行則進入步驟S74。步驟S73中,CPU311將在步驟S71選出的2個邊中的各邊等分成16份。步驟S74中,CPU311將在步驟S71選出的2個邊中的各邊(例如,用圖53 圖55所示的方法)不均等地分割成16份。步驟S75中,CPU311在以通過頂點檢測處理而檢測出的4個頂點為角頂點而形成的四角形的4個邊中,選出在步驟S71中未選擇的相向的2個邊。步驟S76中,CPU311判斷在步驟S75選出的2個邊是否平行(包括大致平行的情況),若平行則進入步驟S77 ;若不平行則進入步驟S78。步驟S77中,CPU311將在步驟S75選出的2個邊中的各邊等分成16份。步驟S78中,CPU311將在步驟S75選出的2個邊中的各邊(例如,用圖53 圖55所示的方法)不均等地分割成16份。
步驟S79中,CPU311根據通過分割以4個頂點為角頂點而形成的四角形的4個邊而確定的采樣點的像素值、及在模式定義數據中定義的采樣點的像素值,來計算表示這些采樣點之間的類似程度的相關性系數,上述4個頂點是通過頂點檢測處理而檢測出的頂點。步驟S80中,CPU311根據在步驟S79計算出的相關性系數,來判別以通過頂點檢測處理而檢測出的4個頂點為角頂點而形成的區域上顯示出的圖案、與標記50的圖案是否一致,若一致則進入步驟S81 ;若不一致則結束圖案判別處理。步驟S81中,CPU311將實拍圖像中的標記50的4個頂點(左上頂點、左下頂點、 右下頂點、右上頂點)的坐標作為標記位置信息來存儲于主存儲器32。下面,參照圖79來對CPU311根據圖像識別程序而執行的標記位置修改處理的流程進行說明。步驟S91中,CPU311計算出實拍圖像上的標記50的大小,并將其結果存儲于主存儲器32。步驟S92中,CPU311判斷在前一個實拍圖像中是否存在與從當前的實拍圖像中檢測出的標記相同的標記,若存在則進入步驟S93 ;若不存在則結束標記位置修改處理(即,不修改從當前的實拍圖像中檢測出的標記的位置而直接使用該位置)。在此,至于在前一個實拍圖像中是否存在與從當前的實拍圖像中檢測出的標記相同的標記,例如可根據在步驟S91計算出的標記50的大小,并用參照圖72進行了說明的方法來作出判斷。步驟S93中,CPU311根據在步驟S91計算出的標記50的大小,來計算出閾值Dl及D2 (圖68、圖69),并將其存儲于主存儲器32。步驟S94中,CPU311判斷標記50的移動量是否小于D1,若小于Dl則進入步驟S95 ;若不小于Dl則進入步驟S96。步驟S95中,CPU311將在圖案判別處理中檢測出的標記50的位置修改到前一次已檢測出的標記的位置。然后,結束標記位置修改處理。步驟S96中,CPU311判斷標記50的移動量是否小于D2,若小于D2則進入步驟S97 ;若不小于D2則結束標記位置修改處理(S卩,不修改從當前的實拍圖像中檢測出的標記的位置而直接使用該位置)。步驟S97中,CPU311計算出標記50的運動向量,并根據該運動向量及過去的運動向量來確定規定值A。具體而言,根據這些運動向量,判斷在實拍圖像中標記50是否向一定方向持續移動,若標記50是向一定方向持續移動,則使A的值變大;若標記50不是向一定方向持續移動,則使A的值變小。在此計算出的運動向量作為運動向量信息81而被存儲于主存儲器32。步驟S98中,CPU311將標記50的位置修改到以(1_A) A的比率來對連接前一個實拍圖像中的標記50的位置與當前的實拍圖像中的標記50的位置的線段進行內分后得到的點。然后,結束標記位置修改處理。〈變形例〉另外,雖然在上述實施方式中,對于(I)輪廓檢測處理、(2)頂點檢測處理、(3)粗略判別處理、(4)圖案判別處理、及(5)標記位置修改處理,分別說明了具體的處理方法,但是也可以將這些處理中的一個以上的處理置換成現有技術中的處理。
另外,作為圖像識別處 理的處理對象的圖像不局限于從攝像機依次實時獲取的實拍圖像,例如,既可以是過去用攝像機拍攝并存儲于數據保存用內部存儲器35等的圖像,又可以是從其它裝置接收到的圖像,也可以是經由外部存儲媒體而獲取的圖像。另外,圖像識別處理的識別對象不局限于標記50的黑色區域,也可以是圖像中包含的任何物體(例如,人的臉或手)或者圖案。另外,圖像識別處理的處理結果不僅能夠應用于AR技術,也可以應用于其它任何用途。另外,雖然在本實施方式中,在游戲裝置10中執行圖像處理(圖像識別處理及圖像生成處理),但是不局限于此,也可以在固定型游戲裝置、個人電腦、手機等任何信息處理裝置(或者信息處理系統)中執行圖像處理。另外,雖然在本實施方式中,在I臺游戲裝置10中執行上述圖像處理,但是在其它實施方式中,也可以使互相能夠通信的多個信息處理裝置分擔執行該圖像處理。另外,雖然在本實施方式中,由一個CPU311執行圖像識別程序等,但是在其它實施方式中,也可以由多個CPU311來分擔執行圖像識別程序等。另外,雖然在本實施方式中,CPU311根據圖像識別程序等來執行上述圖像處理,但是在其它實施方式中,也可以讓CPU311以外的其它硬件來執行圖像處理的一部分。另外,雖然在上述實施方式中,在攝像機所拍攝的實拍圖像上合成虛擬空間圖像并將其顯示在上部LCD22 (視頻透視式(video see-through)),但是取代之,也可以采用光學透視方式(optical see-through),即在透射式的顯示畫面上顯示虛擬對象,以使用戶感覺到在通過該透射式的顯示畫面而看到的現實世界中似乎真的存在虛擬對象。以上對本發明進行了詳細說明,但上述說明只不過例示出了本發明的各個方面,并沒有限定其范圍。在不超出本發明范圍的情況下,當然也可以進行各種改良和變形。
權利要求
1.ー種圖像處理裝置,包括 圖像獲取単元,依次獲取圖像; 檢測單元,從所述圖像中依次檢測規定物體或規定圖案的位置; 移動量計算單元,根據從所述圖像獲取單元所獲取的第一圖像中檢測出的規定物體或規定圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來計算該規定物體或規定圖案的移動量; 比較單元,將所述移動量與第一閾值進行比較; 修改単元,在所述移動量小于所述第一閾值的情況下,將從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置修改到從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置; 虛擬攝像機設定單元,根據經所述修改単元修改過的位置,來設定配置于虛擬空間的虛擬攝像機;及 顯示控制単元,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用所述虛擬攝像機拍攝所述虛擬空間而得到的。
2.如權利要求I所述的圖像處理裝置,其特征在于,還包括 大小計算單元,計算在所述第一圖像或所述第二圖像上的所述規定物體或規定圖案的大小 '及 閾值修改単元,根據所述大小計算單元所計算出的所述規定物體或規定圖案的大小來修改所述第一閾值。
3.如權利要求2所述的圖像處理裝置,其特征在于,所述大小計算單元所計算出的所述規定物體或規定圖案的大小越小,所述閾值修改単元將所述第一閾值設定得越小。
4.如權利要求I 3中任一項所述的圖像處理裝置,其特征在于,在所述移動量大于或等于所述第一閾值的情況下,所述虛擬攝像機設定單元根據從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來設定所述虛擬攝像機。
5.如權利要求I 3中任一項所述的圖像處理裝置,其特征在于,在所述移動量大于或等于所述第一閾值、且小于第二閾值、該第二閾值大于所述第一閾值的情況下,所述修改單元將從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置修改到以規定的比率來對連接從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置、與從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置的線段進行內分后得到的位置。
6.如權利要求5所述的圖像處理裝置,其特征在于,在所述移動量大于或等于所述第ニ閾值的情況下,所述虛擬攝像機設定單元根據從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來設定所述虛擬攝像機。
7.如權利要求5或6所述的圖像處理裝置,其特征在于,還包括 運動向量計算單元,基于所述圖像依次計算表示規定物體或規定圖案的移動方向的運動向量;及 比率變更單元,根據所述運動向量來變更所述規定的比率。
8.如權利要求7所述的圖像處理裝置,其特征在于,所述比率變更單元包括判斷部,該判斷部根據多個所述運動向量來判斷所述規定物體或規定圖案是否在一定方向上持續地移動,所述比率變更單元根據所述判斷部的判斷結果來變更所述規定的比率。
9.ー種圖像處理方法,包括 圖像獲取步驟,依次獲取圖像; 檢測步驟,從所述圖像中依次檢測規定物體或規定圖案的位置; 移動量計算步驟,根據從所述圖像獲取步驟所獲取的第一圖像中檢測出的規定物體或規定圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來計算該規定物體或規定圖案的移動量; 比較步驟,將所述移動量與第一閾值進行比較; 修改步驟,在所述移動量小于所述第一閾值的情況下,將從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置修改到從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置; 虛擬攝像機設定步驟,根據在所述修改步驟中修改過的位置,來設定配置于虛擬空間的虛擬攝像機;及 顯示控制步驟,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用所述虛擬攝像機拍攝所述虛擬空間而得到的。
10.如權利要求9所述的圖像處理方法,其特征在于,還包括 大小計算步驟,計算在所述第一圖像或所述第二圖像上的所述規定物體或規定圖案的大小 '及 閾值修改步驟,根據在所述大小計算步驟中所計算出的所述規定物體或規定圖案的大小來修改所述第一閾值。
11.如權利要求10所述的圖像處理方法,其特征在于,在所述大小計算步驟中所計算出的所述規定物體或規定圖案的大小越小,在所述閾值修改步驟中將所述第一閾值設定得越小。
12.如權利要求9 11中任ー項所述的圖像處理方法,其特征在于,在所述移動量大于或等于所述第一閾值的情況下,在所述虛擬攝像機設定步驟中,根據從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來設定所述虛擬攝像機。
13.如權利要求9 11中任ー項所述的圖像處理方法,其特征在于,在所述移動量大于或等于所述第一閾值、且小于第二閾值、該第二閾值大于所述第一閾值的情況下,所述修改步驟將從所述第一圖像檢測出的所述規定物體或規定圖案在該圖像上的位置修改到以規定的比率來對連接從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置、與從所述第二圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置的線段進行內分后得到的位置。
14.如權利要求13所述的圖像處理方法,其特征在于,在所述移動量大于或等于所述第二閾值的情況下,在所述虛擬攝像機設定步驟中,根據從所述第一圖像中檢測出的所述規定物體或規定圖案在該圖像上的位置,來設定所述虛擬攝像機。
15.如權利要求13或14所述的圖像處理方法,其特征在于,還包括 運動向量計算步驟,基于所述圖像依次計算表示規定物體或規定圖案的移動方向的運動向量;及 比率變更步驟,根據所述運動向量來變更所述規定的比率。
16.如權利要求15所述的圖像處理方法,其特征在于,所述比率變更步驟包括判斷步驟,在該判斷步驟中,根據多個所述運動向量來判斷所述規定物體或規定圖案是否在一定方向上持續地移動, 在所述比率變更步驟中,根據所述判斷步驟的判斷結果來變更所述規定的比率。
17.ー種圖像處理系統,具備圖像處理裝置和畫有圖案的標記, 所述圖像處理裝置包括 拍攝部,拍攝所述標記; 圖像獲取単元,從所述拍攝部依次獲取圖像; 檢測單元,從所述圖像中依次檢測所述標記或所述圖案的位置; 移動量計算單元,根據從所述圖像獲取單元所獲取的第一圖像中檢測出的所述標記或所述圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的所述標記或所述圖案在該圖像上的位置,來計算所述標記或所述圖案的移動量; 比較單元,將所述移動量與第一閾值進行比較; 修改単元,在所述移動量小于所述第一閾值的情況下,將從所述第一圖像中檢測出的所述標記或所述圖案在該圖像上的位置修改到從所述第二圖像中檢測出的所述標記或所述圖案在該圖像上的位置; 虛擬攝像機設定單元,根據經所述修改単元修改過的位置,來設定配置于虛擬空間的虛擬攝像機;及 顯示控制単元,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過用所述虛擬攝像機拍攝所述虛擬空間而得到的。
18.如權利要求17所述的圖像處理系統,其特征在于,所述圖像處理裝置還包括 大小計算單元,計算在所述第一圖像或所述第二圖像上的所述標記或所述圖案的大小;及 閾值修改単元,根據所述大小計算單元所計算出的所述標記或所述圖案的大小來修改所述第一閾值。
19.如權利要求18所述的圖像處理系統,其特征在于,所述大小計算單元所計算出的所述標記或所述圖案的大小越小,所述閾值修改単元將所述第一閾值設定得越小。
20.如權利要求17 19中任一項所述的圖像處理系統,其特征在于,在所述移動量大于或等于所述第一閾值的情況下,所述虛擬攝像機設定單元根據從所述第二圖像中檢測出的所述標記或所述圖案在該圖像上的的位置,來設定所述虛擬攝像機。
21.如權利要求17 19中任一項所述的圖像處理系統,其特征在于,在所述移動量大于或等于所述第一閾值、且小于第二閾值、該第二閾值大于所述第一閾值的情況下,所述修改單元將從所述第一圖像檢測出的所述標記或所述圖案在該圖像上的的位置修改到以規定的比率來對連接從所述第一圖像中檢測出的所述標記或所述圖案在該圖像上的的位置、與從所述第二圖像中檢測出的所述標記或所述圖案在該圖像上的的位置的線段進行內分后得到的位置。
22.如權利要求21所述的圖像處理系統,其特征在干,在所述移動量大于或等于所述第二閾值的情況下,所述虛擬攝像機設定單元根據從所述第一圖像中檢測出的所述標記或所述圖案在該圖像上的位置,來設定所述虛擬攝像機。
23.如權利要求21或22所述的圖像處理系統,其特征在于,還包括 運動向量計算單元,基于所述圖像依次計算表示所述標記或所述圖案的的移動方向的運動向量;及 比率變更單元,根據所述運動向量來變更所述規定的 比率。
24.如權利要求23所述的圖像處理系統,其特征在于,所述比率變更單元包括判斷部,該判斷部根據多個所述運動向量來判斷所述標記或所述圖案的是否在一定方向上持續地移動,所述比率變更單元根據所述判斷部的判斷結果來變更所述規定的比率。
全文摘要
本發明涉及一種圖像處理裝置、圖像處理系統及圖像處理方法。從圖像中依次檢測規定物體或規定圖案的位置。然后,根據從第一圖像中檢測出的規定物體或規定圖案在該圖像上的位置、及從獲取該第一圖像之前已獲取的第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置,來計算該規定物體或規定圖案的移動量。最后,在上述移動量小于第一閾值的情況下,將從上述第一圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置修改到從上述第二圖像中檢測出的上述規定物體或規定圖案在該圖像上的位置。
文檔編號G01B11/02GK102651129SQ20111034589
公開日2012年8月29日 申請日期2011年11月2日 優先權日2011年2月24日
發明者尾迫悟 申請人:任天堂株式會社