(57)【要約】      （修正有）【課題】画像内の物体の位置、サイズを特定できるとともに、色違いで同一形状の物体の識別を可能とする。【解決手段】入力データ３０４を色情報にもとづいて領域分割部３０１により複数の領域に分割するとともに、領域情報作成部３０２により分割された領域ごとにその領域の色、位置、サイズ、パターン情報を含む領域情報を作成し、この領域情報を画像全体に関してリスト化した領域情報リスト３０７を検索用データベースの情報と比較する。比較に用いられる検索用データベースはオブジェクト情報データベース３０８として、物体を複数の領域の組み合わせとして保持し、物体を構成する各領域について複数の色情報、ならびにパターン、領域間の相対位置、相対サイズを保持する。【選択図】図２
2017033359.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を色情報にもとづいて複数の領域に分割するとともに、その分割された領域ごとにその領域の色、位置、サイズ、パターン情報を含む領域情報を作成し、この領域情報を画像全体に関してリスト化した領域情報リストを、検索用データベースの情報と比較することを特徴とする画像認識装置。
【請求項２】
前記検索用データベースは物体を複数の領域の組み合わせとして保持し、物体を構成する各領域について複数の色情報、ならびにパターン、領域間の相対位置、相対サイズ、を保持することを特徴とする請求項１の画像認識装置。
【請求項３】
前記検索用データベースは一つの物体について必要に応じて複数のオブジェクト情報を保持できることを特徴とする請求項２の画像認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識装置に関するものである。
【背景技術】
【０００２】
画像中の特定の物体の有無と画像中のその位置を検出する画像認識アルゴリズムが多数開発されている。このような画像認識では、認識したい対象が画像内のどの位置にあっても、どのようなサイズであっても、また、どのような向きあっても認識できることが好ましい。さらには、一部が別の物体の陰に隠れていても認識できることが好ましい。このような要件に対して良好な結果をもたらす画像認識アルゴリズムとしてＳＨＩＦＴがあげられる。しかしながら、ＳＨＩＦＴをはじめたとした多くの画像認識アルゴリズムではグレー画像を用いた処理となっており、同一形状の異なる色の物体を識別することが困難である。特に、複数の色の組み合わせによりできている物体の色違いを正確に認識することは極めて困難であった。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】藤吉弘亘、山下隆義、岡田和典、前田英作、ノジク・ヴァンソン、石川尋代、ドゥソルビエ・フランソワ「コンピュータビジョン最先端ガイド２」 アドコム・メディア  ２０１０年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
解決しようとする問題点は、色違いを認識できない点である。
【０００５】
本発明は上記問題点を解決するためになされたものであり、画像内の物体の位置、サイズを特定できるとともに、色違いで同一形状の物体を識別できる。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、まず第１に、入力画像を色情報にもとづいて複数の領域に分割するとともに、その分割された領域ごとにその領域の色、位置、サイズ、パターン情報を含む領域情報を作成し、この領域情報を画像全体に関してリスト化した領域情報リストを検索用データベースの情報と比較する。これにより、色情報を有効に活用した検索が可能となる。また、比較に用いられる検索用データベースはオブジェクト情報として、物体を複数の領域の組み合わせとして保持し、物体を構成する各領域について複数の色情報、ならびにパターン、領域間の相対位置、相対サイズ、を保持する。領域の情報を位置、サイズ、パターンに分離して作成し、検索用データベースと比較することにより、対象物体の画像内のサイズによらず物体を識別できる。また、オブジェクト情報が複数の領域の組み合わせで構成されていることにより、部分によって異なる色をした物体を認識できる。また、 オブジェクト情報が複数の領域の組み合わせで構成されていることにより、対象物体の一部が隠蔽されたばあいにも物体を認識できる。また、オブジェクト情報が色情報を複数もつことにより、光源の具合による色のみえ方の違いに対応できる。
【０００７】
第２に、本発明は、上記第１の構成において、検索用データベースには一つの物体について必要に応じて複数のオブジェクト情報を保持できる。これにより、いろいろな方向から見た場合のオブジェクト情報を保持することにより画像内の対象物体がどの向きで写っていても検出できる。
【発明の効果】
【０００８】
本発明によれば、画像内の物体の位置、サイズを特定できるとともに、色違いで同一形状の物体を識別できる。また、一部が隠れた物体も認識できる。
【図面の簡単な説明】
【０００９】
【図１】図１は本発明の一実施形態に係る画像処理システムの構成を示すブロック図である。
【図２】図２は本発明の画像処理アルゴリズムのブロック図である。
【図３】図３は入力データの例である。
【図４】図４は図３を領域分割した結果である。
【図５】図５は領域分割結果データの例である。
【図６】図６は領域情報の構成である。
【図７】図７は形状情報の例
【図８】図８は形状情報作成のフローチャートである。
【図９】図９は検索手順のフローチャートである。
【図１０】図１０はオブジェクト情報の構成である。
【図１１】図１１はオブジェクト部品情報の構成である。
【図１２】図１２はオブジェクト情報に合致する部分を領域情報リストが含むかの判定アルゴリズムのフローチャートの前半である。
【図１３】図１２はオブジェクト情報に合致する部分を領域情報リストが含むかの判定アルゴリズムのフローチャートの後半である。
【図１４】図１３は二つの多ビット情報間の不一致ビットを数え上げるアルゴリズム例のＣ言語ソースコードである。
【発明を実施するための形態】
【００１０】
以下、発明を実施するための形態について説明する。図１は、本発明の第１の実施の形態に係る画像処理システムの構成を示すブロック図である。図１において、情報処理装置としてのホスト装置１００は、パーソナルコンピュータなど外部接続されたカメラ２０１などのセンサー類からの情報を取り込み、また外部接続されているロボットハンド２０２などのアクチュエーターを制御するものである。このホスト装置１００は、ＣＰＵ１０１、メモリ１０２と、外部記憶装置１０３、ディスプレイ１０４やキーボード、マウスなどの入力部１０５、外部機器との通信のためのインターフェース１０６とを備えている。ＣＰＵ１０１は、メモリ１０２に格納されたプログラムに従い、以下で説明される処理など種々の処理を実行するものである。
【００１１】
ホスト装置１００は、例えば、入力部１０５により、ボールを箱に入れるようにとのユーザーから指示があるとインターフェース１０６を経由してカメラ２０１から画像データを取り込み、後述する画像処理によりボール、箱の位置を認識し、その結果に基づいてロボットハンド２０２へインターフェース１０６を経由して指示を送る。
【００１２】
図２は本発明の画像処理アルゴリズム１のブロック図である。画像処理アルゴリズムは領域分割部３０１、領域情報作成部３０２、オブジェクト情報検索部３０３からなり、それらのブロックがアクセスするデータ領域として、入力データ３０４、領域分割結果データ３０５、領域マップ３０６、領域情報リスト３０７、オブジェクト情報データベース３０８がある。
【００１３】
画像処理アルゴリズム１に入力データ３０４としてカラー画像データが入力された場合は、まず、領域分割部３０１を起動し、その処理が完了すると、引き続き、領域情報作成部３０２を起動し、領域情報リスト３０７を作成する。一方、画像処理アルゴリズム１に情報検索要求が出されるとオブジェクト情報部３０３が領域情報リスト３０７とオオブジェクト情報データベース３０８を比較して、検索結果を出力する。
【００１４】
入力データ３０４はカラー画像データである。色表現の形式はここではＨＳＶとするが、ＲＧＢなど他の表現でも構わない。ロボット制御プログラムなどの上位のプログラムから画像処理アルゴリズム１にカラー画像データが入力されると、画像処理アルゴリズム1はこのデータを入力データ３０４に格納し、領域分割部３０１を駆動する。領域分割部３０１は入力データ３０４を各ピクセルの色情報に基づいて幾つかの領域に分割する。
【００１５】
図３に入力データの例を示す。図３の右のボールは赤く、左のボールは青い。また、奥の立方体は黄色く、手前の立方体は緑である。図４に図３のデータを領域分割した結果を示す。図４では図３の入力データが領域１から領域 １１の計１１の領域に分割されている。このように領域分割する手法としてはＫ−Ｍｅａｎ法やＩＳＯＤＡＴＡ法などがある。また、特開２０１４−１７９０９０にも方法が開示されている。領域分割にはこのような公知の手法を用いてよい。
【００１６】
また図３では入力データのすべてのピクセルがいずれかの領域に含まれているが、必ずしも入力画像のすべてのピクセルがいずれかの領域に含まれる必要はなく、いずれの領域にも含まれないピクセルが存在しても構わない。
【００１７】
領域分割部３０１は領域分割した結果を領域分割結果データ３０５に格納する。領域分割結果データ３０５は各領域の領域番号とその領域に属するピクセルの一覧表をすべての領域に対して記したものである。図５に領域分割結果データ３０５の一例を示す。このように領域番号とされに対応するピクセルを羅列したものが全領域に対して示される。
【００１８】
また、領域分割部は分割結果を領域マップ３０６にも出力する。領域マップ３０６は入力画像３０４の幅、高さと同じ幅、高さの二次元整数配列で各ピクセルが含まれる領域番号を示したものである。図５の例に照らし合わせると入力画像あ３０４の（１，１）は領域１に属するため、領域マップ３０６の（１，１）には１が設定される。また、入力画像３０４の（３００，２００）は図５の例に照らし合わせると領域７に属するので、領域マップ３０６の（３００，２００）には７が設定される。このように領域分割部は領域マップに値を設定する。なお、どの領域にも該当しないピクセルに対応する部分については０を設定する。
【００１９】
画像処理アルゴリズム１は領域分割部３０１が作業を完了すると、引き続き、領域情報作成部３０２を駆動する。領域情報作成部３０２は入力情報３０４と領域分割結果データ３０５、領域マップ３０６に基づいて領域情報４００を領域分割結果データ３０５に格納されている領域のうち、領域に含まれる全ピクセルを含む最小の長方形の面積が領域サイズ閾値４１０以上のすべての領域に対して作成し、領域情報リスト３０６に格納する。領域サイズ閾値４１０の値は、画面に映っている主要な物体のみについて認識したい場合は大きな値を設定するのが好ましい。また、領域サイズ閾値４１０を大きい値に設定すると、後述する情報検索が高速に完了する利点がある。これは検索する対象領域数が少なくなるためである。
【００２０】
領域情報４００は図６に示すように、領域色情報４０１、領域領域位置・サイズ情報４０２、領域形状情報４０３、ステータスフラグ４０４からなる。
【００２１】
領域色情報４０１はその領域を代表する色を示す３次元ベクトルである。この代表色はその領域のピクセルの平均的な色であることが好ましい。入力データ３０４がＨＳＶ形式である場合、もしくは入力データがＨＳＶ形式に変換可能な形式である場合の色情報の求め方の一例を以下に示す。ここで、領域に含まれるピクセルがピクセル１からピクセルｎのｎ個であるする。またピクセルｉのＨ、Ｓ、Ｖ値をそれぞれＨｉ、Ｓｉ、Ｖｉとする。このとき、この領域の色情報ベクトルの成分Ｘ、Ｙ、Ｚは以下のように表される。
【数１】
2017033359.tif 000003
【００２２】
領域領域位置・サイズ情報４０２は領域に属するピクセルすべてを含有する最小の長方形の位置、サイズ情報である。具体的にはその長方形の長方形の中心座標と横幅、縦幅を格納する。その代わりにその右上座標と左下座標でもよい。これは右上座標の値と左下座標の値があれば中心座標と横幅、縦幅を容易に求めることができるためである。
【００２３】
領域形状情報４０３は領域の形状を表すＭｘＭのビットの配列である。より具体的には、領域に外接する長方形の内部をＭｘＭの小領域に分割し、各小領域の中心点が領域に含まれる場合に対応するビットを１に、そうでない場合には０を設定したＭｘＭのビットの配列である。各小領域の中心点が領域に含まれるかの判定には領域マップを使用する。具体的には、領域マップの、小領域の中心点座標に対応するピクセルの値がその領域値であればその小領域は領域に含まれると判定される。Ｍ＝８の場合について、図４の領域６を例として示したものが図７である。また、この手順をフローチャートとして示したのが図８である。
【００２４】
以下で、領域に外接する長方形の左上座標を（Ｘ０，Ｙ０）とする。また、領域領域位置・サイズ情報４０２のうち中心座標を（ＸＣ，ＹＣ）、横幅をＷＸ、縦幅をＷＹとする。このときＸ０，Ｙ０は以下のように表される。
【数２】
2017033359.tif 000004
また、作成中の領域の領域番号をＩＤとする。
【００２５】
形状情報作成手順はまず、ステップＳ１０１で小領域の縦方向座標を規定する変数ｉに一番上の小領域の横座標を表す１を代入する。次に、ステップＳ１０２で小領域の横方向座標を規定する変数ｊに一番右の小領域の横座標を表す１を代入する。これにより、処理するビットが（ｊ，ｉ）に規定される。
【００２６】
次に、ステップＳ１０３ で領域マップ３０６における小領域のビット（ｊ，ｉ）の中心座標を以下の式により求める。
【数３】
2017033359.tif 000005
ここで、ＩＮＴ［］はカッコ内の値の小数部を切り捨てて整数化する処理を表す。
【００２７】
次に、ステップＳ１０４で座標（Ｘ，Ｙ）が領域ＩＤに属しているかを領域マップ３０６の座標（Ｘ，Ｙ）の値がＩＤかどうかにより判断する。座標（Ｘ，Ｙ）が領域ＩＤに属している、すなわち、領域マップ３０６の座標（Ｘ，Ｙ）の値がＩＤに等しい場合はステップＳ１０５に進む。一方、座標（Ｘ，Ｙ）が領域ＩＤに属していない、すなわち、領域マップ３０６の座標（Ｘ，Ｙ）の値がＩＤに等しくない場合はステップＳ１０６に進む。ステップＳ１０５では形状情報のビット（ｊ，ｉ）に１を代入し、ステップＳ１０７へと進む。一方、ステップＳ１０６では形状情報のビット（ｊ，ｉ）に０を代入し、ステップＳ１０７へと進む。
【００２８】
ステップＳ１０７では変数ｊの値を１だけ増大させる。次に、ステップＳ１０８でｊが形状情報の横方向の最大値Ｍ以下であるか判定し、ｊがＭ以下の場合はステップＳ１０３へ進み、そうでない場合はステップＳ１０９へ進む。
【００２９】
ステップＳ１０９では変数ｉの値を１だけ増大させる。次に、ステップＳ１１０でｉが形状情報の縦方向の最大値Ｍ以下であるか判定し、ｉがＭ以下の場合はステップＳ１０２へ進み、そうでない場合はステップＳ１１１へ進み処理を終了する。
【００３０】
このようにして、領域分割結果データ３０５に格納されている領域のうち、領域サイズ閾値４１０以上のすべての領域に対して領域情報４００を作成し終えると、画像処理アルゴリズム１は画像が入力された場合の処理を完了する。
【００３１】
次に、画像処理アルゴリズム１に情報検索要求が出された場合の処理について説明する。ここでの情報検索要求とは、指定の物体が画像内にあるかどうか、画像データ内を検索する要求をさす。物体を指定する方法としては、物体の名称を指し示すテキスト情報を検索要求時に画像アルゴリズム１に入力することによる。以降、このテキスト情報を対象名称１０とする。
【００３２】
画像処理アルゴリズム１は情報検索要求が出されると、入力された対象名称１０をオブジェクト情報検索部３０３に入力し、オブジェクト情報検索部３０３を起動する。
【００３３】
オブジェクト検索情報部３０３は起動されると、以下に示される手順で検索を実行し、結果を出力する。図９はこの手順を示したフローチャートである。オブジェクト検索情報部３０３はまずステップＳ２０１で、対象情報名称１０を検索キーとしてオブジェクト情報データベース３０８を検索し、その結果をオブジェクト情報テーブル７００に格納する。
【００３４】
オブジェクト情報データベース３０８はオブジェクト情報５００の配列である。オブジェクト情報５００は、特定の物体の画像情報に関連した情報で、図１０に示すようにオブジェクト名称５０１、横サイズ閾値５０２、縦サイズ閾値５０３、距離閾値５０４、オブジェクト部品情報配列５０５からなる。オブジェクト名称５０１はそのオブジェクトの名称を示すテキストデータである。横サイズ閾値５０２、縦サイズ閾値５０３、距離閾値５０４は検索で使用される判定閾値で数値情報である。どのように使用されるかについては後述する。
【００３５】
オブジェクト部品情報配列５０５はオブジェクト部品情報６００の配列である。オブジェクト部品情報６００は、上述の特定の物体を構成する各部品に関する情報であり、図１１に示すように色情報配列６０１、オブジェクト部品位置・サイズ情報６０２、オブジェ特部品形状情報６０３、キーフラグ６０４、色閾値６０５、パターン閾値６０６、アスペクト閾値６０７で構成される。色情報配列６０１は色情報６００ａの配列である。色情報６００ａは領域色情報４０１と同じフォーマットで表現される、その部品を代表する色を示す３次元ベクトルである。オブジェクト部品位置・サイズ情報６０２はオブジェクト全体に対するこの部品の位置、サイズを示す情報で、中心座標と横幅、縦幅を格納する。その代わりにその右上座標と左下座標でもよい。オブジェ特部品形状情報６０３は領域形状情報４０３と同じフォーマットで部品の形状を表すビットの配列である。配列サイズは領域形状情報４０３と同一である。キーフラグ６０４はブール値で、この部品がオブジェクトを構成する主要な部品である場合はＴＲＵＥをそうでない場合はＦＡＬＳＥをとる。キーフラグ６０３はひとつのオブジェクトを構成する複数の部品でＴＲＵＥと設定することが可能であるが、後述するように一つか少数の部品のみでＴＲＵＥとすることが好ましい。一つの部品のみでＴＲＵＥとする場合、そのオブジェクトを構成する部品のうち最も大きい部品にＴＲＵＥを設定することが好ましい。色閾値６０５、パターン閾値６０６、アスペクト閾値６０７はいずれも数値情報で、どのように使用されるかについては後述する。
【００３６】
ステップＳ２０１では、オブジェクト情報データベース３０８オブジェクト内の各オブジェクト情報５００のオブジェクト名称５０１を対象情報名称１０と比較し、対象情報名称１０とオブジェクト名称５０１が同一であるオブジェクトをオブジェクト情報テーブル７００に記録する。以降、オブジェクト情報テーブル７００に格納されたオブジェクト情報５００のそれぞれについて、合致する領域が領域情報リスト３０７にあるか判定してゆく。
【００３７】
ステップＳ２０２ではオブジェクト情報テーブル７００内のオブジェクト情報５００の番号を示す変数ｉ２に１を代入する。次のステップＳ２０３で、オブジェクト情報テーブル７００内のｉ２番目のオブジェクト情報５００に合致する部分を領域情報リスト３０７が含むか判定する（判定Ｊ１）。判定Ｊ１の内容については後述する。判定が満たされた場合には、ステップＳ２０４にすすみ、指定された物体が画像内に存在すると判断し、結果を出力し、ステップＳ２０８へ進み処理を終了する。判定Ｊ１の具体的内容については後述する。一方、判定が満たされない場合はステップＳ２０５へ進み、ｉ２をインクリメントし、次のステップＳ２０６でｉ２がテーブル７００内のオブジェクト情報数（Ｎ１とする）以下である場合は、ステップＳ２０３へ進み、次のオブジェクト情報５００についての判定へとすすむ。一方、ステップＳ２０６でｉ２がＮ１より大きい場合は、ステップＳ２０７へ進み、指定された物体が画像内に存在しないと判断し、結果を出力し、ステップＳ２０８で処理を終了する。
【００３８】
次に、判定Ｊ１の具体的な内容について述べる。図１２、図１３は判定Ｊ１のアルゴリズムを示すフローチャートである。まずステップＳ３０１で該当するオブジェクト情報５００のオブジェクト部品情報配列５０５内でのオブジェクト部品情報６００の番号を示す変数ｉ３に１を設定する。次にステップＳ３０２でｉ３番目のオブジェクト部品情報のキーフラグ６０４がＴＲＵＥであるか否かを確認し、ＴＲＵＥである場合はｉ３番目のオブジェクト部品情報に合致する領域情報４００が存在するか判定するためにステップＳ３０３へ進み、そうでない場合はその判定とそれに続く一連の判定をスキップしてステップＳ３１９へと進む。
【００３９】
ステップＳ３０３では領域情報リスト３０７内での領域情報４００の番号を示す変数ｊ３に１を代入し、ステップＳ３０４へ進む。
【００４０】
ステップＳ３０４では領域情報リスト３０７内のすべての領域情報４００について、そのステータスフラグを０に設定する（クリアする）。次のステップＳ３０５ではｉ３番目のオブジェクト部品情報６００とｊ３番目の領域情報４００に対して、後述する判定Ｊ２による判定を行い、合致しているか判定する。判定が満たされる場合はステップＳ３０６へ、そうでない場合はステップＳ３１７へ進む。
【００４１】
判定Ｊ２は以下の判定Ｊ３、判定Ｊ４、判定Ｊ５すべてが満たされた場合に、部品情報６００と領域情報４００が合致しているとみなし、満たされると判定し、それ以外の場合は判定Ｊ２は満たされないと判定する。
【００４２】
判定Ｊ３は色の類似性に関する判定である。領域色情報４０１との差分が色閾値６０５以下となる色情報６０１ａが色情報配列６０１内に存在する場合は判定Ｊ３は満たされたと判断される。そうでない場合は満たされないと判断される。領域色情報４０１を（Ｘ１，Ｙ１，Ｚ１）、色情報６０１ａを（Ｘ２，Ｙ２，Ｚ２）と表すと、その差分ＤＣは以下の式で表される。
【数４】
2017033359.tif 000006
【００４３】
判定Ｊ４はアスペクト比の類似性に関する判定である。領域領域位置・サイズ情報４０２とオブジェクト部品位置・サイズ情報６０２のアスペクト比の差分がアスペクト閾値６０７以下である場合は判定Ｊ４は満たされたと判断される。そうでない場合は満たされないと判断される。領域領域位置・サイズ情報４０２の横幅をＷＸ１、縦幅をＷＹ１、またオブジェクト部品位置・サイズ情報６０２横幅をＷＸ２、縦幅をＷＹ２とすると、スペクト比の差分ＤＡは以下のように表される。
【数５】
2017033359.tif 000007
【００４４】
判定Ｊ５はパターン形状の類似性に関する判定である。領域形状情報４０３とオブジェ特部品形状情報６０３を比較し、その差分（以下、形状差分と呼ぶ）がパターン閾値６０６以下である場合は判定Ｊ５は満たされたと判断される。そうでない場合は満たされないと判断される。ここで、領域形状情報４０３とオブジェ特部品形状情報６０３の配列サイズをＭｘＭとすると、１≦ｉ，ｊ≦Ｍのすべての（ｉ，ｊ）について、領域形状情報４０３とオブジェ特部品形状情報６０３のビット（ｉ，ｊ）の値が不一致となるビット数を数えあげ、その不一致ビット数を領域形状情報４０３とオブジェ特部品形状情報６０３の差分とする。なお、この不一致ビットを数え上げる処理にはこれを高速に行うアルゴリズムが存在するため、判定を高速に行うことができる。この高速処理アルゴリズム一例を示すｃ言語のソースコードが図１４である。ここではＭ＝１６の場合について３２ビットＣＰＵをもちい、３２ビットの整数変数のサイズ８の配列Ｄａｔａ，ＲｅｆＤａｔａに格納されているビット情報同士を比較している。
【００４５】
このように、判定Ｊ２ではオブジェクト部品情報と領域情報を比較し、色、アスペクト比、パターン形状のいずれもが類似しているか否かを判定する。
【００４６】
ステップＳ３０６ではｊ番目の領域情報４００のステータスフラグ４０４に２を設定する。これはこの領域情報はある部品情報と合致していることを示すためで、後述の工程で、一つの領域情報を同一オブジェクト情報５００内の複数のオブジェクト部品情報６００と合致させないための処理である。その後、ステップＳ３０７へと進む。
【００４７】
ステップＳ３０７ではｊ３番目の領域情報４００を基に、オブジェクト情報５００を以下のように規格化する。以下、ｉ３番目の部品情報６００とｊ３番目の領域情報４００をそれぞれ、キー部品情報６５０、キー領域情報４５０とする。キー領域情報４５０の横幅をＷＸ３、縦幅をＷＹ３、キー部品情報６５０の横幅をＷＸ４、縦幅をＷＹ４とする。このとき規格化定数ＫＸ，ＫＹを以下のように求める。
【数６】
2017033359.tif 000008
そして、オブジェクト情報５００内のすべてのオブジェクト部品情報６００の位置・サイズ情報６０２について、その横幅と中心座標のＸ座標をＫＸ倍し、その縦幅と中心座標のＹ座標をＫＹ倍する。これにより、キー部品情報６５０とキー領域情報４５０のサイズが同一となる。
【００４８】
この規格化は後述の判定Ｊ６において、キー部品情報６５０に対するその他のオブジェクト部品情報６００のサイズ関係とキー領域情報４５０とその他の領域情報４００間のサイズ関係の類似性、ならびに、キー部品情報６５０に対するその他のオブジェクト部品情報６００の位置関係とキー領域情報４５０とその他の領域情報４００間の位置関係の類似性の判定を有効に行うためである。この規格化を行った上で、以降のステップでキー部品情報６５０以外のオブジェクト部品情報６００に合致する領域情報の有無を調べる。
【００４９】
ステップＳ３０８では該当するオブジェクト情報５００のオブジェクト部品情報配列５０５内でのオブジェクト部品情報６００の番号を示す変数ｋ３を準備し、ｋ３に１を設定し、ステップＳ３０９へと進む。
【００５０】
ステップＳ３０９ではｉ３＝ｋ３が満たされるか判定し、満たされる場合はｋ３番目のオブジェクト部品情報６００はキー部品情報６５０と同一のため、合致する領域情報探索をスキップしてステップＳ３１４へ進み、ｉ３＝ｋ３が満たされない場合はステップＳ３１０へ進む。
【００５１】
ステップＳ３１０ではｋ３番目のオブジェクト部品情報６００と領域情報リスト３０７内の各領域情報４００のそれぞれに対して、以下に示す判定Ｊ６を行い、判定Ｊ６を満たす領域情報４００が何個存在するか数え上げ、一つでも存在する場合はステップＳ３１１へ進み、そうでない場合はステップＳ３１７へ進む。
【００５２】
判定Ｊ６ではオブジェクト部品情報６００と領域情報４００について、色、サイズ、パターン形状、キーオブジェクト情報６５０もしくはキー領域情報４５０との関係、のすべてにおいて類似するか判定する。具体的には、判定Ｊ６は先に述べた判定Ｊ３、Ｊ４、Ｊ５と、以下に示す判定Ｊ７、Ｊ８、Ｊ９のすべてが満たされた場合に、判定Ｊ６が満たされたと判定し、それ以外の場合には満たされないと判定する。
【００５３】
判定Ｊ７はキー部品情報６５０とオブジェクト部品情報６００の位置関係と、キー領域情報４５０と領域情報４００の、位置関係の類似性に関する判定である。以下の距離差分ＤＤが該当するオブジェクト情報５００の距離閾値５０４以下の場合に満たされると判定し、それ以外の場合に満たされないと判定する。距離差分ＤＤは
【数７】
2017033359.tif 000009
と合わせされる。ここで、領域情報４００とキー領域情報４５０の中心座標の差分ベクトルのＸ成分をＶ１Ｘ，Ｙ成分をＶ１Ｙ、部品情報６００とキー部品情報６５０の中心座標の差分ベクトルのＸ成分をＶ２Ｘ，Ｙ成分をＶ２Ｙとする。
【００５４】
判定Ｊ８はオブジェクト部品情報５００と領域情報４００のサイズの類似性に関する判定である。横サイズ差分ＤＳＸが該当するオブジェクト情報５００の横サイズ比率閾値５０３以下で、かつ、縦サイズ差分ＤＳＹが該当するオブジェクト情報５００の縦サイズ比率閾値５０４以下の場合に満たされると判定し、それ以外の場合に満たされないと判定する。ＤＳＸ，ＤＳＹは以下のように表される。
【数８】
2017033359.tif 000010
ここで、領域情報４００の横幅をＷＸ１、縦幅をＷＹ１、キー領域情報４５０の横幅をＷＸＫ１、縦幅をＷＹＫ１、部品情報６００の横幅をＷＸ２、縦幅をＷＹ２、キー部品領域情報６５０の横幅をＷＸＫ２、縦幅をＷＹＫ２とする。
【００５５】
判定Ｊ９はこの領域情報４００がまだいずれのオブジェクト部品情報とも合致すると判定されていないことの確認判定である。領域情報４００のステータスフラグ４０４が０の場合は満たされ、そうでない場合は満たされないと判定する。
【００５６】
ステップＳ３１１では上記の判定Ｊ６を満たした領域情報が一つであるか、複数であるか判定し、一つの場合はステップＳ３１２へと進み、そうでない場合はステップＳ３１３へと進む。
【００５７】
ステップＳ３１２では複数存在する上記の判定Ｊ６を満たした領域情報４００のうち、形状差分が一番小さかった領域情報４００のステータスフラグを２に設定し、ステップＳ３１４へと進む。一方、ステップＳ３１３では上記の判定Ｊ６を満たした領域情報４００が一つしかないため、その領域情報４００のステータスフラグを２に設定し、ステップＳ３１４へと進む。
【００５８】
ステップＳ３１４ではｋ３を１だけインクリメントしステップＳ３１５へすすむ。ステップＳ３１５ではｋ３が該当オブジェクト情報５００内のオブジェクト部品情報数Ｎ２以下か判定し、Ｎ２以下の場合はステップＳ３０９へ進む。そうでない場合は該当オブジェクト情報５００内のすべてのオブジェクト部品情報について合致する領域情報が見つかったので、ステップＳ３１６へ進み、判定Ｊ１は満たされると判定する。そして、情報検検索アルゴリズムはステータスフラグ４０４が２に設定されている領域情報の一覧表を作成し、これを合致領域リスト８００として保持する。
【００５９】
他方、ステップＳ３１７では、ｊ３を１だけインクリメントして、ステップＳ３１８へ進む。ステップＳ３１８ではｊ３が領域情報リスト３０７内の領域情報数（これをＮ３とする）以下であるかを判定し、ｊ３がＮ３以下の場合はステップＳ３０４へ進み、次の領域情報についての判定Ｊ２を行う。一方、ＪがＮ３以下でない場合はｉ３番目のオブジェクト部品情報６００をキー部品情報としてオブジェクト情報５００内のすべてのオブジェクト部品情報に対して合致する領域情報４００を見つけ出すことはできなかったため、ステップＳ３１９へ進む。
【００６０】
ステップＳ３１９ではｉ３を１だけインクリメントしステップＳ３２０へと進み、ステップＳ３２０ではｉ３が該当オブジェクト情報５００内のオブジェクト部品情報数（これをＮ２とする）以下か判定し、Ｎ２以下の場合はステップＳ３０２へ進み、そうでない場合はステップＳ３２１へと進む。
【００６１】
ステップＳ３２１では判定Ｊ１は満たされなかったと判定する。
【００６２】
オブジェクト情報テーブル７００に含まれるオブジェクト情報５００のうちのいずれかについて判定Ｊ１が満たされた場合、オブジェクト情報検索部３０３は指定の物体が画像内にあると判断し、補足情報として、合致領域リスト８００を出力する。この合致領域リストを利用することにより、上位のアルゴリズムは指定の物体が画像内のどの部分に存在するかなどの情報を得ることができる。一方、オブジェクト情報テーブル７００に含まれるオブジェクト情報５００のいずれについても判定Ｊ１が満たされない場合は、オブジェクト情報検索部３０３は指定の物体が画像内に存在しないと判断する。
【００６３】
一つのオブジェクト情報５００はオブジェクト名称５０１で示される特定の物体について、ある方向から見た場合の画像情報を格納したものである。このため、それぞれのの方向から見た場合についてオブジェクト情報５００を作成し、オブジェクト情報データベース３０８に格納することにより、入力画像に写っている対象物体がどの方向からみたものであっても情報検索部が見つけ出すことができるようになる。
【００６４】
こごではひとつの物体を指定して検索する例について述べたが、複数の物体を指定して検索することも可能である。その場合、画像処理アルゴリズムは指定された物体のそれぞれについて上述の処理を行う。また、検索要求として画像データ内に何があるかという要求を出すことも可能である。この場合、画像処理アルゴリズム１はオブジェクト情報データベース３０８内のすべてのオブジェクト情報について画像データ内に存在するかを検索し、その結果を出力する。
【００６５】
また、ここではオブジェクト部品情報５０５に格納されているすべてのオブジェクト部品情報６００について、合致する領域情報４００がみつかった場合にのみ指定の物体が見つかったと判定したが、オブジェクト部品情報５０５に格納されているオブジェクト部品情報６００のうちの一定の割合について合致する領域情報４００がみつかった場合に指定の物体が見つかったと判定してもよい。この場合、一部が別の物体の陰に隠れていても物体を認識できる。
【産業上の利用可能性】
【００６６】
ロボットによる画像認識を利用したハンドリング作業などに利用できる。
【符号の説明】
【００６７】
１      アルゴリズム
１０    対象名称
１００  ホスト装置
１０１  ＣＰＵ
１０２  メモリ
１０３  外部記憶装置
１０４  ディスプレイ
１０５  入力部
１０６  インターフェース
２０１  カメラ
２０２  ロボットハンド
３０１  領域分割部
３０２  領域情報作成部
３０３  オブジェクト情報検索部
３０４  入力データ
３０５  領域分割結果データ
３０６  領域マップ
３０７  領域情報リスト
３０８  オブジェクト情報データベース
４００  領域情報
４０１  領域色情報
４０２  領域位置・サイズ情報
４０３  領域形状情報
４０４  ステータスフラグ
４１０  領域サイズ閾値
４５０  キー領域情報
５００  オブジェクト情報
５０１  オブジェクト名称
５０２  横サイズ閾値
５０３  縦サイズ閾値
５０４  距離閾値
５０５  オブジェクト部品情報配列
６００  オブジェクト部品情報
６０１  色情報配列
６０２  オジェクト部品位置・サイズ情報
６０３  オブジェ特部品形状情報
６０４  キーフラグ
６０５  色閾値
６０６  パターン閾値
６０７  アスペクト閾値
６５０  キー部品情報
７００  オブジェクト情報テーブル
８００  合致領域リスト
【図１】
2017033359.tif 000011
【図２】
2017033359.tif 000012
【図４】
2017033359.tif 000013
【図５】
2017033359.tif 000014
【図６】
2017033359.tif 000015
【図７】
2017033359.tif 000016
【図８】
2017033359.tif 000017
【図９】
2017033359.tif 000018
【図１０】
2017033359.tif 000019
【図１１】
2017033359.tif 000020
【図１２】
2017033359.tif 000021
【図１３】
2017033359.tif 000022
【図１４】
2017033359.tif 000023
【図３】
2017033359.tif 000024