图像识别装置、图像识别系统及图像识别方法

文档序号:6437529阅读:320来源:国知局
专利名称:图像识别装置、图像识别系统及图像识别方法
技术领域
本发明涉及一种用于从拍摄装置所拍摄的图像中检测规定的拍摄对象的图像识别装置、图像识别系统及图像识别方法。
背景技术
目前,已经存在从摄像机等拍摄装置所拍摄的图像(拍摄图像)中检测规定的拍摄对象的技木。例如,非专利文献I中记载了 在增强现实技术中,对用摄像机所拍摄到的拍摄图像中包含的标记进行图像识别处理的技木。具体而言,非专利文献I中记载着通过用固定的阈值对拍摄图像进行ニ值化处理,来提取连接区域,并从所提取出的连接区域中选择大小及形状合适的图像作为标记候补,并对标记候补进行模式匹配,从而检测出标记。然而,采用记载于非专利文献I中的检测标记的方法,在某些情况下(例如,明亮、昏暗、标记的一部分被用户的手指等遮蔽、标记相对摄像机不朝向正面、強烈的光线被标记反射等情况下)不一定能够以高精度或较小的处理负荷来检测标记。并且,记载于非专利文献I的检测标记的方法不能防止标记的检测位置的抖动。非专利文献加藤博一,MarkBillinghurst,浅野浩一,橘啓八郎、「マーカー追跡に基づく拡張現実感システムとそのキヤリブレーシヨン」(基于标记追踪的增强现实系统及其校准)、日本バーチヤルリアリテイ学会論文誌Vol. 4No. 4、1999年(日本虚拟现实学会论文杂志,Vol. 4No. 4,1999年)

发明内容
本发明的目的在于,提供一种能够以较高的精度或较小的处理负荷来检测出图像中的规定物体或图案的图像识别装置、图像识别系统及图像识别方法,或者能够防止或减轻所检测的规定物体或图案的位置的微小抖动的图像识别装置、图像识别系统及图像识别方法。为了解决上述技术问题,本发明采用以下构成。本发明的第一构成例是ー种图像识别装置,包括图像获取単元、差值计算単元、阈值计算単元、及边界像素检测单元。上述图像获取単元用于获取图像。上述差值计算単元计算第一像素的像素值与第ニ像素的像素值之间的差值,其中,上述第一像素的像素值是上述图像中的像素,上述第二像素是与上述第一像素相隔n个像素的位置上存在的像素,n为规定的整数。上述阈值计算单元根据上述差值大于或等于规定值时的上述第一像素或者其附近的像素的像素值、及对应于该第一像素的上述第二像素或者其附近的像素的像素值,来计算边界判断阈值。上述边界像素检测单元通过将位于上述第一像素和上述第二像素之间的各个像素的像素值与上述边界判断阈值进行比较,来检测出与存在于上述第一像素和上述第二像素之间的边界对应的边界像素。根据上述构成例,能够使用与图像的整体或一部分的亮度相应的合适的边界判断阈值来检测出边界像素。另外,作为变形例,上述阈值计算单元还可以包括第一检测部和第一计算部,该第ー检测部从上述第一像素和上述第二像素中像素值较大的像素、及其周边的像素的像素值之中检测出极大值,该第一计算部根据上述第一检测部所检测出的极大值来计算上述边界判断阈值。根据上述变形例,即使在第一像素(或第二像素)是边界附近的像素的情况下,也能够算出合适的边界判断阈值。 另外,作为其它变形例,上述第一检测部也可以通过从上述第一像素和上述第二像素中像素值较大的像素起沿着背朝像素值较小的像素的方向,依次判断相邻的2个像素之间的像素值的大小关系,来检测上述极大值。另外,作为其它变形例,上述阈值计算单元也可以包括第二判断部和第二计算部,该第二判断部判断特定附近像素的像素值是否满足规定条件,该特定附近像素是指,从上述第一像素和上述第二像素中像素值较小的像素来看,在背朝像素值较大的像素的ー侧,且与该像素值较小的像素相隔m个像素的位置上存在的像素,m为规定的整数;该第二计算部在上述第二判断部判断为上述规定条件被满足的情况下,根据上述特定附近像素的像素值来计算上述边界判断阈值。根据上述变形例,即使在上述图像是被施加了边界强调处理之后的图像的情况下,也能够算出合适的边界判断阈值。另外,作为其它变形例,也可以在上述第一像素和上述第二像素中像素值较小的像素的像素值小于上述特定附近像素的像素值,而且上述第一像素和上述第二像素中像素值较大的像素或者其附近的像素的像素值、与上述特定附近像素的像素值之间的差值大于或等于上述规定值的情况下,上述第二判断部判断为上述规定条件被满足。另外,作为其它变形例,上述阈值计算单元也可以将上述第一像素或者其附近的像素的像素值与上述第二像素或者其附近的像素的像素值的平均值作为上述边界判断阈值算出。另外,作为其它变形例,上述图像识别装置还可以包括其它边界像素检测单元,该其它边界像素检测单元根据上述边界判断阈值来检测出其他部分的边界像素,该其他部分的边界像素是指,位干与上述边界像素检测单元所检测出的边界像素相对应的那一部分边界之外的边界上的像素。根据上述变形例,能够高效率地检测出多个边界像素。另外,作为其它变形例,上述其它边界像素检测单元也可以根据上述边界判断阈值,从与已检测出的边界像素相邻的多个像素中检测出与该边界像素相连的新的边界像素。另外,作为其它变形例,上述图像识别装置还可以包括相同判断単元,该相同判断単元判断上述其它边界像素检测单元所检测出的新的边界像素是否是与已检测出来的任何边界像素相同;若上述相同判断单元连续规定次数地判断为上述其它边界像素检测单元依次检测出的新的边界像素与已检测出来的任何边界像素相同,则上述其它边界像素检测単元也可以中止依次检测新的边界像素的处理。根据上述变形例,能够避免对不正常的轮廓进行无用的处理。
另外,作为其它变形例,在上述第一像素和上述第二像素中像素值较大的像素的像素值小于其周边的像素的像素值的情况下,上述阈值计算单元也可以根据该周边的像素的像素值来计算上述边界判断阈值。
根据上述变形例,即使在第一像素(或第二像素)是边界附近的像素的情况下,也能够算出合适的边界判断阈值。本发明的第二构成例是ー种图像识别方法,包括图像获取步骤、差值计算步骤、阈值计算步骤、及边界像素检测步骤。在上述图像获取步骤中获取图像;在上述差值计算步骤中,计算第一像素的像素值与第二像素的像素值之间的差值,其中,上述第一像素是上述图像中的像素,上述第二像素是与第一像素相隔n个像素的位置上存在的像素,n为规定的整数;在上述阈值计算步骤中,根据上述差值大于或等于规定值时的上述第一像素或者其附近的像素的像素值、及对应于该第一像素的上述第二像素或者其附近的像素的像素值,来计算边界判断阈值;在上述边界像素检测步骤中,通过将位于上述第一像素和上述第二像素之间的各个像素的像素值与上述边界判断阈值进行比较,来检测出与存在于上述第一像素和上述第二像素之间的边界对应的边界像素。本发明的第三构成例是ー种具备图像识别装置和标记的图像识别系统。上述图像识别装置包括拍摄部、图像获取単元、差值计算単元、阈值计算单元、及边界像素检测单元,上述拍摄部拍摄上述标记;上述图像获取单元从上述拍摄部获取图像;上述差值计算単元计算第一像素的像素值与第二像素的像素值之间的差值,其中,上述第一像素是上述图像中的像素,上述第二像素是与上述第一像素相隔n个像素的位置上存在的像素,n为规定的整数;上述阈值计算单元根据上述差值大于或等于规定值时的上述第一像素或者其附近的像素的像素值、及对应于该第一像素的上述第二像素或者其附近的像素的像素值,来计算边界判断阈值;上述边界像素检测单元通过将位于上述第一像素和上述第二像素之间的各个像素的像素值与上述边界判断阈值进行比较,来检测出与存在于上述第一像素和上述第ニ像素之间的边界对应的边界像素。根据本发明的上述各构成例,能够以较高的精度检测出图像中的规定物体或图案的轮廓。在參照附图进行下述详细的说明之后,本发明的各种目的、特征、方面、效果将会更加明确。


图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)的工作区或缓冲区的易失性存储装置。外部存储器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的共七条直线。作为另ー个例子,如图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个边中的各边不均等地分割的方法,不局限于上述第一确定方法或第二确定方法,也可以采用其它方法。另外,由于刚结束顶点检测处理时,还不知道通过顶点检测处理而检测出的第一顶点 第四顶点中哪ー个顶点对应于标记50的左上顶点、左下顶点、右下顶点、右上顶点中的哪ー个顶点,所以,可以考虑以下四种情況。即第一顶点对应于左上顶点的情況;第ー顶点对应于左下顶点的情况;第一顶点对应于右下顶点的情况;第一顶点对应于右上顶点的情況。由此,在图案判别处理中,对于这四种情况,分别进行与模式定义数据之间的核对。其结果,检测出实拍图像中的左上顶点的坐标、左下顶点的坐标、右下顶点的坐标及右上顶点的坐标,并将这些坐标作为标记位置信息而存储于主存储器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所述的图像识别装置,其特征在于,所述第一检测部通过从所述第一像素和所述第二像素中像素值较大的像素起沿着背朝像素值较小的像素的方向,依次判断相邻的2个像素之间的像素值的大小关系,来检测所述极大值。
4.如权利要求I 3中任ー项所述的图像识别装置,其特征在干, 所述阈值计算单元包括 第二判断部,判断特定附近像素的像素值是否满足规定条件,该特定附近像素是指,从所述第一像素和所述第二像素中像素值较小的像素来看,在背朝像素值较大的像素的一侦||,且与该像素值较小的像素相隔m个像素的位置上存在的像素,m为规定的整数;及 第二计算部,在所述第二判断部判断为所述规定条件被满足的情况下,该第二计算部根据所述特定附近像素的像素值来计算所述边界判断阈值。
5.如权利要求4所述的图像识别装置,其特征在于,在所述第一像素和所述第二像素中像素值较小的像素的像素值小于所述特定附近像素的像素值,而且所述第一像素和所述第二像素中像素值较大的像素或者其附近的像素的像素值、与所述特定附近像素的像素值之间的差值大于或等于所述规定值的情况下,所述第二判断部判断为所述规定条件被满足。
6.如权利要求I 5中任一项所述的图像识别装置,其特征在于,所述阈值计算单元将所述第一像素或者其附近的像素的像素值与所述第二像素或者其附近的像素的像素值的平均值作为所述边界判断阈值算出。
7.如权利要求I 6中任ー项所述的图像识别装置,其特征在于,还包括其它边界像素检测单元,该其它边界像素检测单元根据所述边界判断阈值来检测出其他部分的边界像素,该其他部分的边界像素是指,位干与所述边界像素检测单元所检测出的边界像素相对应的那一部分边界之外的边界上的像素。
8.如权利要求7所述的图像识别装置,其特征在于,所述其它边界像素检测单元根据所述边界判断阈值,从与已检测出的边界像素相邻的多个像素中检测出与该边界像素相连的新的边界像素。
9.如权利要求7或8所述的图像识别装置,其特征在于,还包括相同判断単元,该相同判断単元判断所述其它边界像素检测单元所检测出的新的边界像素是否与已检测出来的任何边界像素相同; 若所述相同判断单元连续规定次数地判断为所述其它边界像素检测单元依次检测出的新的边界像素与已检测出来的任何边界像素相同,则所述其它边界像素检测单元中止依次检测新的边界像素的处理。
10.如权利要求I所述的图像识别装置,其特征在于,在所述第一像素和所述第二像素中像素值较大的像素的像素值小于其周边的像素的像素值的情况下,所述阈值计算单元根据该周边的像素的像素值来计算所述边界判断阈值。
11.ー种图像识别方法,包括 获取图像的图像获取步骤; 差值计算步骤,计算第一像素的像素值与第二像素的像素值之间的差值,其中,所述第一像素是所述图像中的像素,所述第二像素是与所述第一像素相隔η个像素的位置上存在的像素,η为规定的整数; 阈值计算步骤,根据所述差值大于或等于规定值时的所述第一像素或者其附近的像素的像素值、及对应于该第一像素的所述第二像素或者其附近的像素的像素值,来计算边界判断阈值 '及 边界像素检测步骤,通过将位于所述第一像素和所述第二像素之间的各个像素的像素值与所述边界判断阈值进行比较,来检测出与存在于所述第一像素和所述第二像素之间的边界对应的边界像素。
12.如权利要求11所述的图像识别方法,其特征在干, 所述阈值计算步骤包括 第一检测步骤,从所述第一像素和所述第二像素中像素值较大的像素、及其周边的像素的像素值之中检测出极大值;及 第一计算步骤,根据所述第一检测步骤中检测出的极大值来计算所述边界判断阈值。
13.如权利要求12所述的图像识别方法,其特征在于,所述第一检测步骤中,通过从所述第一像素和所述第二像素中像素值较大的像素起沿着背朝像素值较小的像素的方向,依次判断相邻的2个像素之间的像素值的大小关系,来检测所述极大值。
14.如权利要求11 13中任ー项所述的图像识别方法,其特征在干, 所述阈值计算步骤包括 第二判断步骤,判断特定附近像素的像素值是否满足规定条件,该特定附近像素是指,从所述第一像素和所述第二像素中像素值较小的像素来看,在背朝像素值较大的像素的一侦||,且与该像素值较小的像素相隔m个像素的位置上存在的像素,m为规定的整数;及 第二计算步骤,在所述第二判断步骤判断为所述规定条件被满足的情况下,该第二计算步骤根据所述特定附近像素的像素值来计算所述边界判断阈值。
15.如权利要求14所述的图像识别方法,其特征在于,在所述第一像素和所述第二像素中像素值较小的像素的像素值小于所述特定附近像素的像素值,而且所述第一像素和所述第二像素中像素值较大的像素或者其附近的像素的像素值、与所述特定附近像素的像素值之间的差值大于或等于所述规定值的情况下,所述第二判断步骤中判断为所述规定条件被满足。
16.如权利要求11 15中任ー项所述的图像识别方法,其特征在于,在所述阈值计算步骤中,将所述第一像素或者其附近的像素的像素值与所述第二像素或者其附近的像素的像素值的平均值作为所述边界判断阈值算出。
17.如权利要求11 16中任ー项所述的图像识别方法,其特征在于,还包括其它边界像素检测步骤,在该其它边界像素检测步骤中,根据所述边界判断阈值来检测出其他部分的边界像素,该其他部分的边界像素是指,位干与所述边界像素检测步骤中检测出的边界像素相对应的那一部分边界之外的边界上的像素。
18.如权利要求17所述的图像识别方法,其特征在于,在所述其它边界像素检测步骤中,根据所述边界判断阈值,从与已检测出的边界像素相邻的多个像素中检测出与该边界像素相连的新的边界像素。
19.如权利要求17或18所述的图像识别方法,其特征在于,还包括相同判断步骤,在该相同判断步骤中,判断所述其它边界像素检测步骤中检测出的新的边界像素是否与已检测出来的任何边界像素相同; 若在所述相同判断步骤中连续规定次数地判断为所述其它边界像素检测步骤中依次检测出的新的边界像素与已检测出来的任何边界像素相同,则在所述其它边界像素检测步骤中,中止依次检测新的边界像素的处理。
20.如权利要求11所述的图像识别方法,其特征在于,在所述第一像素和所述第二像素中像素值较大的像素的像素值小于其周边的像素的像素值的情况下,所述阈值计算步骤中根据该周边的像素的像素值来计算所述边界判断阈值。
21.—种图像识别系统,具备图像识别装置和标记, 所述图像识别装置包括 拍摄部,拍摄所述标记的; 图像获取単元,从所述拍摄部获取图像; 差值计算単元,计算第一像素的像素值与第二像素的像素值之间的差值,其中,所述第一像素是所述图像中的像素,所述第二像素是与上述第一像素相隔η个像素的位置上存在的像素,η为规定的整数; 阈值计算单元,根据所述差值大于或等于规定值时的所述第一像素或者其附近的像素的像素值、及对应于该第一像素的所述第二像素或者其附近的像素的像素值,来计算边界判断阈值 '及 边界像素检测单元,通过将位于所述第一像素和所述第二像素之间的各个像素的像素值与所述边界判断阈值进行比较,来检测出与存在于所述第一像素和所述第二像素之间的边界对应的边界像素。
22.如权利要求21所述的图像识别系统,其特征在干, 所述阈值计算单元包括 第一检测部,从所述第一像素和所述第二像素中像素值较大的像素、及其周边的像素的像素值之中检测出极大值;及第一计算部,根据所述第一检测部所检测出的极大值来计算所述边界判断阈值。
23.如权利要求22所述的图像识别系统,其特征在于,所述第一检测部通过从所述第一像素和所述第二像素中像素值较大的像素起沿着背朝像素值较小的像素的方向,依次判断相邻的2个像素之间的像素值的大小关系,来检测所述极大值。
24.权利要求21 23中任一项所述的图像识别系统,其特征在干, 所述阈值计算单元包括 第二判断部,判断特定附近像素的像素值是否满足规定条件,该特定附近像素是指,从所述第一像素和所述第二像素中像素值较小的像素来看,在背朝像素值较大的像素的一侦||,且与该像素值较小的像素相隔m个像素的位置上存在的像素,m为规定的整数;及 第二计算部,在所述第二判断部判断为所述规定条件被满足的情况下,该第二计算部根据所述特定附近像素的像素值来计算所述边界判断阈值。
25.如权利要求24所述的图像识别系统,其特征在于,在所述第一像素和所述第二像素中像素值较小的像素的像素值小于所述特定附近像素的像素值,而且所述第一像素和所述第二像素中像素值较大的像素或者其附近的像素的像素值、与所述特定附近像素的像素值之间的差值大于或等于所述规定值的情况下,所述第二判断部判断为所述规定条件被满足。
26.如权利要求21 25中任一项所述的图像识别系统,其特征在于,所述阈值计算单元将所述第一像素或者其附近的像素的像素值与所述第二像素或者其附近的像素的像素值的平均值作为所述边界判断阈值算出。
27.如权利要求21 26中任一项所述的图像识别系统,其特征在干,图像识别装置还包括其它边界像素检测单元,该其它边界像素检测单元根据所述边界判断阈值来检测出其他部分的边界像素,该其他部分的边界像素是指,位干与所述边界像素检测单元所检测出的边界像素相对应的那一部分边界之外的边界上的像素。
28.如权利要求27所述的图像识别系统,其特征在于,所述其它边界像素检测单元根据所述边界判断阈值,从与已检测出的边界像素相邻的多个像素中检测出与该边界像素相连的新的边界像素。
29.如权利要求27或28所述的图像识别系统,其特征在于,所述图像识别装置还包括相同判断単元,该相同判断単元判断所述其它边界像素检测单元所检测出来的新的边界像素是否与已检测出来的任何边界像素相同; 若所述相同判断单元连续规定次数地判断为所述其它边界像素检测单元依次检测出的新的边界像素与已检测出来的任何边界像素相同,则所述其它边界像素检测单元中止依次检测新的边界像素的处理。
30.如权利要求21所述的图像识别系统,其特征在于,在所述第一像素和所述第二像素中像素值较大的像素的像素值小于其周边的像素的像素值的情况下,所述阈值计算单元根据该周边的像素的像素值来计算所述边界判断阈值。
全文摘要
本发明涉及一种图像识别装置、图像识别系统及图像识别方法。首先,计算出图像中的第一像素的像素值、与位于与该第一像素相隔规定个数的像素的位置的第二像素的像素值之间的差值。然后,在该差值大于或等于规定值的情况下,根据第一像素或者其附的近像素的像素值、和第二像素或者其附近的像素的像素值,来计算出边界判断阈值。最后,通过将位于第一像素和第二像素之间的各个像素的像素值与边界判断阈值进行比较,来检测出与存在于第一像素和第二像素之间的边界对应的边界像素。
文档编号G06K9/20GK102651064SQ20111034589
公开日2012年8月29日 申请日期2011年11月2日 优先权日2011年2月24日
发明者尾迫悟 申请人:任天堂株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1