(57)【要約】  正確性の高い目標画像を生成する。  入力画像生成部（１ａ）は、仮想空間（２）において対象物（３）を撮像したときの仮想撮像画像を生成し、仮想撮像画像を、画像処理プログラムを学習により生成するための入力画像（１１ａ）として出力する。目標画像生成部（１ｂ）は、対象物（３）の３次元形状を示す形状データ（１ｃ）の中から、対象物（３）における特徴部位（３ａ）に対応する特徴データの選択を受け付ける。目標画像生成部（１ｂ）は、入力画像（１１ａ）における特徴部位（３ａ）の投影位置を特徴データに基づいて算出し、入力画像（１１ａ）に対応する目標画像（１２ａ）を、算出された投影位置に基づいて生成する。
2017109918.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間において対象物を撮像したときの仮想撮像画像を生成し、前記仮想撮像画像を、画像処理プログラムを学習により生成するための入力画像として出力する入力画像生成部と、
前記対象物の３次元形状を示す形状データの中から、前記対象物における特徴部位に対応する特徴データの選択を受け付け、前記入力画像における前記特徴部位の投影位置を前記特徴データに基づいて算出し、前記入力画像に対応する目標画像を前記投影位置に基づいて生成する目標画像生成部と、
を有する画像処理装置。
【請求項２】
前記特徴データとして、前記対象物の形状を表すポリゴンの頂点のうち、前記特徴部位に対応する頂点のデータが選択される、
請求項１記載の画像処理装置。
【請求項３】
前記目標画像生成部は、前記対象物の形状を複数のポリゴンの組み合わせとして表すポリゴンモデルを表示装置に表示させ、前記ポリゴンモデル上の頂点の中から前記特徴部位に対応する対応頂点の選択を受け付ける、
請求項２記載の画像処理装置。
【請求項４】
前記目標画像生成部は、前記特徴データとして前記対応頂点の３次元座標を選択し、前記３次元座標を、前記対応頂点を前記入力画像に投影したときの投影座標に変換し、前記投影座標に基づいて前記特徴部位の領域を描画した前記目標画像を生成する、
請求項２または３記載の画像処理装置。
【請求項５】
前記入力画像生成部は、前記仮想撮像画像を撮像条件を変化させて複数生成することで、前記入力画像を複数出力し、
前記目標画像生成部は、複数の前記入力画像のそれぞれにおける前記投影位置を算出し、前記投影位置に基づいて、複数の前記入力画像にそれぞれ対応する複数の前記目標画像を生成する、
請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記入力画像生成部は、前記仮想空間において前記対象物が設置される設備を再現した仮想設備を構築し、前記仮想設備の状態を変化させることで前記入力画像を複数生成する、
請求項５記載の画像処理装置。
【請求項７】
前記仮想設備は、前記対象物を撮像するカメラを含み、
前記入力画像生成部は、前記カメラによる撮像パラメータを変化させる、
請求項６記載の画像処理装置。
【請求項８】
前記仮想設備は、前記対象物を証明する光源を含み、
前記入力画像生成部は、前記光源の状態を変化させる、
請求項６または７記載の画像処理装置。
【請求項９】
前記入力画像と前記目標画像とを用いた学習により前記画像処理プログラムを生成するプログラム生成部をさらに有する、
請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１０】
コンピュータが、
仮想空間において対象物を撮像したときの仮想撮像画像を生成し、前記仮想撮像画像を、画像処理プログラムを学習により生成するための入力画像として出力し、
前記対象物の３次元形状を示す形状データの中から、前記対象物における特徴部位に対応する特徴データの選択を受け付け、
前記入力画像における前記特徴部位の投影位置を前記特徴データに基づいて算出し、
前記入力画像に対応する目標画像を前記投影位置に基づいて生成する、
画像処理方法。
【請求項１１】
コンピュータに、
仮想空間において対象物を撮像したときの仮想撮像画像を生成し、前記仮想撮像画像を、画像処理プログラムを学習により生成するための入力画像として出力し、
前記対象物の３次元形状を示す形状データの中から、前記対象物における特徴部位に対応する特徴データの選択を受け付け、
前記入力画像における前記特徴部位の投影位置を前記特徴データに基づいて算出し、
前記入力画像に対応する目標画像を前記投影位置に基づいて生成する、
処理を実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
画像処理アルゴリズムは、専門のスキルを持つ者が知識と経験を基に試行錯誤的に生成するものであった。ところが近年では、遺伝的アルゴリズムや遺伝的プログラミング、ＳＡ（Simulated Annealing）などの最適化手法を用いることにより、目的の機能を有する画像処理プログラムを自動的に生成する技術が開発されている。この技術では、入力画像とその処理結果（例えば、目標画像）とを用いた学習が行われる。例えば、遺伝的プログラミングを用いた例としては、入力画像とその処理結果とを用いて、画像処理のための部分プログラム（例えば、画像フィルタのプログラム）を組み合わせて生成される画像処理プログラムが最適化される。【０００３】
また、対象物体の姿勢を推定する識別器の学習を行うためにこの識別器に与える学習用画像を生成する次のような情報処理装置が提案されている。この情報処理装置は、対象物体の形状モデルに少なくとも１つの視点を設定し、この視点から形状モデルを観察したときに、視点と形状モデルとが所定の条件を満たした場合に、この視点から形状モデルを見た形状モデルの画像を学習用画像とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１５７５０９号公報
【非特許文献】
【０００５】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８９０−８９２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、画像処理プログラムの自動生成に用いる目標画像は、例えば、対応する入力画像に対して、オペレータの操作によりレタッチなどの画像処理が施されることによって生成される。しかし、このような方法では、オペレータのスキルや性格によっては正確性の高い目標画像を生成することができず、その結果、生成された画像処理プログラムを用いた画像処理の精度が低下してしまうことがある。例えば、入力画像は、画像認識の対象とする特徴部位を含む対象物を、撮像パラメータや周囲の環境の条件を様々に変化させることで得られる。このため、入力画像によって特徴部位の写り方は様々であり、オペレータによって特徴部位の位置を正確に特定できないことも多い。その結果、正確性の高い目標画像を生成できなくなってしまう。【０００７】
１つの側面では、本発明は、正確性の高い目標画像を生成可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、入力画像生成部と、目標画像生成部とを有する画像処理装置が提供される。入力画像生成部は、仮想空間において対象物を撮像したときの仮想撮像画像を生成し、仮想撮像画像を、画像処理プログラムを学習により生成するための入力画像として出力する。目標画像生成部は、対象物の３次元形状を示す形状データの中から、対象物における特徴部位に対応する特徴データの選択を受け付け、入力画像における特徴部位の投影位置を特徴データに基づいて算出し、入力画像に対応する目標画像を投影位置に基づいて生成する。【０００９】
また、１つの案では、上記の画像処理装置と同様の処理がコンピュータによって実行される画像処理方法が提供される。
さらに、１つの案では、上記の画像処理装置と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、正確性の高い目標画像を生成できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る画像処理装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るプログラム生成装置のハードウェア構成例を示す図である。
【図３】プログラム生成装置の処理機能の例を示すブロック図である。
【図４】生成される画像処理プログラムによって実現される画像処理の例を示す図である。
【図５】入力画像の例を示す図である。
【図６】構築される仮想設備の例を示す図である。
【図７】生成される入力画像の例を示す図である。
【図８】学習データ生成部の処理手順の例を示すフローチャートである。
【図９】目標画像の生成処理の例を示すフローチャートである。
【図１０】目標画像の生成処理において生成される画像の例を示す図である。
【図１１】個体を構成する木構造の例を示す図である。
【図１２】個体を構成する木構造の他の例を示す図である。
【図１３】遺伝的プログラミングを用いた画像処理プログラムの生成処理手順の例を示すフローチャートである。
【図１４】入力画像および目標画像と、生成された画像処理プログラムを用いた画像処理についての第１の例を示す図である。
【図１５】入力画像および目標画像と、生成された画像処理プログラムを用いた画像処理についての第２の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る画像処理装置の構成例および処理例を示す図である。図１に示す画像処理装置１は、画像処理プログラムを学習により生成するための入力画像および目標画像を生成する装置である。画像処理装置１は、入力画像生成部１ａと目標画像生成部１ｂとを有する。入力画像生成部１ａおよび目標画像生成部１ｂの処理は、例えば、画像処理装置１が備えるプロセッサが所定のプログラムを実行することで実現される。
【００１３】
入力画像生成部１ａは、３次元の仮想空間２において対象物３を撮像したときの仮想撮像画像を、入力画像として出力する。図１の例では、仮想空間２上に設置されたカメラ４ａから対象物３を仮想的に撮像することで、入力画像１１ａが生成される。また、カメラ４ａとは異なる位置に設置されたカメラ４ｂから対象物３を仮想的に撮像することで、入力画像１１ｂが生成される。入力画像１１ａと入力画像１１ｂとの間では、対象物３が異なる方向を向いた状態で写っている。なお、入力画像は、少なくとも１枚生成されればよい。
【００１４】
目標画像生成部１ｂは、対象物３の３次元形状を示す形状データ１ｃを参照可能になっている。形状データ１ｃは、例えば、仮想空間２における対象物３の複数の部位の３次元座標を含む。なお、形状データ１ｃは、例えば、画像処理装置１が有する記憶部１ｄに記憶されている。記憶部１ｄは、画像処理装置１が備える記憶装置の記憶領域として実装される。
【００１５】
目標画像生成部１ｂは、形状データ１ｃの中から、対象物３における特徴部位３ａに対応する特徴データの選択を受け付ける。特徴部位３ａは、例えば、生成される画像処理プログラムによって画像の中から抽出される部位である。特徴データの選択は、例えば、次のようにして行われる。
【００１６】
目標画像生成部１ｂは、対象物３の形状を表すポリゴンの頂点のうち、特徴部位３ａに対応する頂点のデータの選択を受ける。より具体的な例としては、目標画像生成部１ｂは、対象物３の形状を複数のポリゴンの組み合わせとして表すポリゴンモデルを図示しない表示装置に表示させ、ポリゴンモデル上の頂点の中から、特徴部位３ａに対応する頂点の選択を受け付ける。目標画像生成部１ｂは、特徴データとして、選択された頂点についてのデータを形状データ１ｃから抽出する。
【００１７】
図１の例では、特徴部位３ａは対象物３上の直線状のエッジである。そして、対象物３のポリゴンモデルからエッジ上に存在する複数の頂点５ａ〜５ｃが選択される。この場合、特徴部位３ａに対応する特徴データは、例えば、頂点５ａ〜５ｃの３次元座標群として選択される。
【００１８】
あるいは、特徴部位３ａとして選択可能な部位にそれぞれ対応する形状データのリストの中から、所望の形状データが特徴データとして選択されてもよい。選択可能な部位としては、例えば、頂点、線分、ポリゴンなどがある。
【００１９】
目標画像生成部１ｂは、生成された入力画像１１ａにおける特徴部位３ａの投影位置を特徴データに基づいて算出する。目標画像生成部１ｂは、入力画像１１ａに対応する目標画像１２ａを、算出された投影位置に基づいて生成する。また、目標画像生成部１ｂは同様に、生成された入力画像１１ｂにおける特徴部位３ａの投影位置を特徴データに基づいて算出する。目標画像生成部１ｂは、入力画像１１ｂに対応する目標画像１２ｂを、算出された投影位置に基づいて生成する。
【００２０】
例えば、目標画像生成部１ｂは、頂点５ａ〜５ｃの各３次元座標を、頂点５ａ〜５ｃを入力画像１１ａに投影したときの投影座標に変換し、投影座標に基づいて特徴部位３ａの領域を描画した目標画像１２ａを生成する。図１の例では、入力画像１１ａと同じサイズの目標画像１２ａにおける投影座標が示す位置に、特徴領域３ａが描画されている。また、目標画像生成部１ｂは同様に、頂点５ａ〜５ｃの各３次元座標を、頂点５ａ〜５ｃを入力画像１１ｂに投影したときの投影座標に変換し、投影座標に基づいて特徴部位３ａの領域を描画した目標画像１２ｂを生成する。図１の例では、入力画像１１ｂと同じサイズの目標画像１２ｂにおける投影座標が示す位置に、特徴部位３ａが描画されている。
【００２１】
ここで、例えば入力画像１１ａに対応する目標画像を生成する方法としては、次のような方法が考えられる。例えば、オペレータの操作により入力画像１１ａから特徴部位３ａを抽出し、レタッチなどの画像処理を入力画像１１ａに施すことで、対応する目標画像を生成する方法が考えられる。しかし、入力画像１１ａは様々な撮像条件の下で撮像され得るので、入力画像１１ａに対象物３や特徴部位３ａが明瞭に写っていない場合がある。この場合、オペレータは特徴部位３ａの位置を正確に判断することができない。このため、生成される目標画像の品質が低下し、その結果、生成される画像処理プログラムに基づく画像処理精度が低下してしまう。
【００２２】
これに対して、第１の実施の形態に係る画像処理装置１では、対象物３の３次元形状を表す形状データ１ｃの中から、対象物３における特徴部位３ａに対応する特徴データが選択される。そして、入力画像１１ａにおける特徴部位３ａの投影位置が、選択された特徴データに基づいて算出され、算出された投影位置に基づいて、入力画像１１ａに対応する目標画像１２ａが生成される。これにより、入力画像１１ａにおける特徴部位３ａの写り方に関係なく、正確性の高い目標画像１２ａを生成することができる。
【００２３】
〔第２の実施の形態〕
次に、第２の実施の形態に係るプログラム生成装置について説明する。第２の実施の形態に係るプログラム生成装置は、図１に示した画像処理装置１と同様の入力画像および目標画像の生成機能に加えて、生成された入力画像および目標画像を用いて画像処理プログラムを自動生成する機能を備える。
【００２４】
図２は、第２の実施の形態に係るプログラム生成装置のハードウェア構成例を示す図である。第２の実施の形態に係るプログラム生成装置１００は、例えば、図２に示すようなコンピュータとして実現される。
【００２５】
プログラム生成装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２６】
プロセッサ１０１には、バス１０８を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、プログラム生成装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２７】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６および通信インタフェース１０７がある。
【００２８】
ＨＤＤ１０３は、プログラム生成装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００２９】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００３０】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３１】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３２】
通信インタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、プログラム生成装置１００の処理機能を実現することができる。
【００３３】
図３は、プログラム生成装置の処理機能の例を示すブロック図である。プログラム生成装置１００は、学習データ生成部１１０およびプログラム生成部１２０を有する。学習データ生成部１１０およびプログラム生成部１２０の処理は、例えば、それぞれ個別のアプリケーションプログラムがプロセッサ１０１によって実行されることで実現される。あるいは、学習データ生成部１１０およびプログラム生成部１２０の処理は、一体のアプリケーションプログラムを用いて実現されてもよい。
【００３４】
学習データ生成部１１０は、プログラム生成部１２０による画像処理プログラム１３０の生成処理において利用される学習データ２００を生成する。学習データ２００には、入力画像と、生成される画像処理プログラム１３０を用いて入力画像を処理した際の処理結果の目標を示す目標データとが含まれる。本実施の形態では例として、目標データは目標画像として生成されるものとするが、位置座標などの数値として生成されてもよい。
【００３５】
プログラム生成部１２０は、生成された１組以上の学習データ２００を用いた学習により、画像処理プログラム１３０を自動的に生成する。例えば、プログラム生成部１２０は、遺伝的プログラミングを用いて画像処理プログラム１３０を生成する。
【００３６】
ここで、図４は、生成される画像処理プログラムによって実現される画像処理の例を示す図である。画像処理プログラム１３０によって実現される画像処理としては、例えば、エッジ検出、領域検出、テンプレートマッチングなどがある。図４では、エッジ検出処理の一例を示している。
【００３７】
図４において、入力画像２０１は、生成された画像処理プログラム１３０を用いて処理される撮像画像であり、出力画像２０２は、その処理結果として出力される画像である。図４の例では、入力画像２０１に写っている撮像対象物２０１ａにおける特定のエッジ２０１ｂを示す直線２０２ａが検出される。なお、直線２０２ａのように画像全体を横切るような直線ではなく、画像２０１−２のようにエッジ２０１ｂの部分だけを示す線分２０１ｃが検出されてもよい。
【００３８】
また、エッジ検出としては、直線形状だけでなく、円形状のエッジが検出されてもよい。また、領域検出としては、例えば、図４中の撮像対象物２０１ａの外形が包含されるような矩形領域を検出する処理や、撮像対象物２０１ａに存在する欠損領域や傷のある領域を検出する処理などがある。また、テンプレートマッチングとしては、撮像対象物２０１ａの画像をテンプレートとして用い、撮像画像における撮像対象物２０１ａの基準点の位置座標を検出する処理などがある。
【００３９】
画像処理プログラム１３０の用途としては、例えば、ＦＡ（Factory Automation）分野において、製品や部品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、位置合わせを行う箇所を抽出する、欠陥が生じた箇所を抽出するといった用途が考えられる。
【００４０】
このような用途では、撮像対象物となる製品や部品が搭載される設備の設置環境の変化、あるいは、製品や部品の変更、改良などに応じて、画像処理アルゴリズムを最適化する必要がある。この最適化のためには、設備の環境変化や製品、部品の変化に応じた適切な学習データが必要となる。
【００４１】
一般的に、学習データに含まれる入力画像は、実際の設備または動作確認用の実験用設備を実際に設置し、そこに撮像対象物の実物またはその試作品を搭載した状態で、撮像対象物を撮像することによって用意される。しかし、実際に起こりうる様々な環境変化を実機を用いてすべて再現することは困難であるという問題がある。また、実機を用いて再現するための作業の手間が大きく、作業時間が長くなるという問題もある。
【００４２】
また、例えば、製品の生産設備において画像処理プログラム１３０を用いて製品の位置合わせや外観検査を行うケースでは、生産設備は、開発設計、立ち上げというプロセスを経た後に稼働される。通常は、生産設備の立ち上げの直前のタイミングで、画像処理プログラム１３０の検証が行われ、画像処理精度に問題がある場合には新たな入力画像および目標画像が追加されて再学習が行われ、画像処理プログラム１３０が最適化される。この再学習のための入力画像に長い時間がかかると、その分だけ生産設備の稼働が遅延してしまうという問題がある。
【００４３】
また、学習データに含まれる目標画像は、例えば、オペレータが、上記のように生成された入力画像の表示画面を見ながら、マウスなどの入力操作によって認識対象のエッジや領域の輪郭を指定していくことで生成される。あるいは、目標画像は、オペレータの操作によって、入力画像に様々な画像処理が施されることで生成される。図４の例では、入力画像２０１に対してエッジを検出する画像処理が施されることで、撮像対象物２０１ａの輪郭を示すエッジが抽出された画像２０１−１が得られている。そして、オペレータの操作により、画像２０１−１から必要なエッジ２０１ｂ以外の部分が消去されることで、線分２０１ｃのみを含む画像２０１−２が得られている。
【００４４】
しかし、このような方法では、オペレータの作業の手間が大きく、作業時間が長くなるという問題がある。また、オペレータのスキルや性格などにより目標画像の正確さにバラツキが発生し、その結果、生成された画像処理プログラム１３０による画像処理の精度が低下するという問題もある。さらに、次の図５に示す例のように、オペレータの操作ではそもそも正しい目標画像を生成するのが困難であるというケースもある。
【００４５】
図５は、入力画像の例を示す図である。図５（Ａ）に示す入力画像２１１、および図５（Ｂ）に示す入力画像２１２では、どちらも撮像対象物２１３が撮像されている。ただし、入力画像２１１はボケのない画像であるのに対して、入力画像２１２はボケが大きい画像となっている。オペレータは、このような入力画像２１２からは、撮像対象物２１３における特定のエッジ２１３ａがどこに存在するのかを正確に判断することができない。このため、入力画像２１２からオペレータの操作によって正しい目標画像を生成することは困難である。
【００４６】
そこで、本実施の形態において、学習データ生成部１１０は、ＣＡＤ（Computer Aided Design）データを用いて、撮像対象物が搭載される設備を仮想的に再現した仮想設備を構築する。また、学習データ生成部１１０は、仮想設備における光源の状態や可動部品の位置、撮像対象物の位置や姿勢、カメラパラメータなど、入力画像を仮想的に撮像する際の条件をどのように変化させるかを示す情報の入力を受ける。そして、学習データ生成部１１０は、仮想設備を入力された条件に合致する状態に設定するとともに、仮想設備上に撮像対象物を入力された条件に合致する状態で配置し、撮像対象物を仮想的なカメラによって撮像することで、入力画像を生成する。
【００４７】
これにより、実際の設備を使用することなく、設備の様々な状態を仮想的に再現し、それらの状態で撮像対象物を撮像した入力画像を得ることができる。したがって、入力画像を生成する作業効率を向上させることができ、その作業時間を短縮できる。
【００４８】
また、学習データ生成部１１０は、上記条件に基づく仮想設備および撮像対象物の状態設定とは別に、撮像対象物を示すＣＡＤデータの中から、撮像対象物における認識対象部位に対応するデータを指定するための入力を受け付ける。具体的には、学習データ生成部１１０は、撮像対象物のポリゴンモデルを表示装置１０４ａに表示させ、表示されたポリゴンモデル上の頂点の中から、認識対象部位に対応する頂点をオペレータに選択させる。これにより、選択された頂点の座標データが特定される。
【００４９】
学習データ生成部１１０は、特定された座標データに基づいて、選択された各頂点の入力画像での投影位置を算出し、この算出結果に基づいて、入力画像と同じサイズの画像上に各頂点が投影された投影画像を生成する。学習データ生成部１１０は、投影画像上の頂点の位置から直線や曲線、あるいは線で囲まれた領域を特定し、特定された線や領域を描画することで目標画像を生成する。
【００５０】
このような方法によれば、生成された入力画像から認識対象部位をオペレータに特定させるのではなく、認識対象部位の少なくとも一部を示すＣＡＤデータが選択される。そして、選択されたＣＡＤデータを基に入力画像の生成時と同様の投影変換が再度行われることで、目標画像が生成される。これにより、正確性の高い目標画像を生成することができる。
【００５１】
以下、図３に戻って説明を続ける。
学習データ生成部１１０は、入力部１１１、仮想設備構築部１１２、入力画像生成部１１３および目標画像生成部１１４を有する。また、学習データ生成部１１０は、記憶部１１５を参照可能になっている。記憶部１１５は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域として実現される。記憶部１１５には、部品データベース（ＤＢ）１４１、設備設定情報１４２および条件設定情報１４３が格納される。
【００５２】
部品データベース１４１には、仮想設備および撮像対象物を構成する各部品を示す部品データ１４１ａ，１４１ｂ，・・・が格納されている。部品データ１４１ａ，１４１ｂ，・・・のそれぞれには、部品の形状や外面の色、その反射率などのデータが含まれる。仮想設備を構成する部品としては、撮像対象物が設置される部品やその位置を変動させる駆動部、カメラ、光源などが含まれる。また、各部品は、その形状を示す複数のポリゴンの頂点についてのデータによって表される。
【００５３】
この部品データベース１４１は、例えば、ＣＡＤプログラムで利用されるデータベースである。この場合、学習データ生成部１１０を実現するプログラムは、ＣＡＤプログラムに内包されていてもよい。
【００５４】
設備設定情報１４２は、仮想空間上に仮想設備および撮像対象物が配置された状態を再現するためのデータであり、仮想設備および撮像対象物を構成する各部品の位置や姿勢、動作状態などのデータを含む。設備設定情報１４２においては、位置や動作などの状態が可変の部品については、その状態を示す値としてあらかじめ決められた代表的な値が設定される。
【００５５】
条件設定情報１４３は、入力画像を撮像する際の撮像条件を指定するための各種パラメータの設定値を含む。パラメータとしては、仮想設備の部品や撮像対象物の位置や姿勢、仮想設備の部品の動作状態、仮想設備または撮像対象物の外面の色や反射率などの光学条件などを示すパラメータがある。また、撮像対象物については、欠けや汚れの有無、サイズ、位置などを示すパラメータも適用可能である。
【００５６】
動作状態を示すパラメータとしては、光源に関する光源条件のパラメータや、カメラに関するカメラパラメータがある。光源条件としては、照明強度、照射角度、距離に対する照射強度の減衰率などがある。カメラパラメータとしては、像レンズの焦点距離、画角、焦点位置、カメラの画素数、画素サイズ、歪曲収差や色収差などのレンズ収差情報がある。
【００５７】
複数の入力画像が生成される場合、条件設定情報１４３には、各入力画像の撮像ごとに変化させる撮像条件の設定値について、その変動範囲が記述される。例えば、ある光源の照度を撮像ごとに変化させる場合、照度の変動範囲は「照度Ｘ１〜Ｘ２」あるいは「基準照度ＸからプラスマイナスＹ％」などのように設定される。この場合、例えば、ステップ数あるいは１ステップごとに変化させる値が設定されることで、変動範囲を何回に分けて値を設定するか、撮像ごとにどれだけ値を増減するかといった設定方法が決定される。また、他の例としては、ある撮像条件の設定値について、「Ｘ１，Ｘ２，Ｘ３」のように撮像ごとに設定される値が記述されていてもよい。
【００５８】
入力部１１１は、オペレータによる入力操作に応じて、設備設定情報１４２および条件設定情報１４３の入力や、目標画像を生成するための認識対象部位および画像処理種別の指定を受け付ける。
【００５９】
仮想設備構築部１１２は、設備設定情報１４２に基づき、部品データベース１４１内の必要な部品データを用いて３次元空間上に仮想設備を構築し、その仮想設備に撮像対象物を設置する。
【００６０】
入力画像生成部１１３は、仮想設備構築部１１２によって構築された仮想設備上の部品や撮像対象物の状態を、条件設定情報１４３に基づいて変化させながら、カメラによって撮像対象物を仮想的に撮像する。この撮像によって入力画像が生成される。この入力画像の生成では、例えば、フォトンマッピング法やレイトレーシング法などの物理ベースシミュレーションを用いて、３次元空間上のあるカメラ位置から撮像対象物を撮像したときの撮像画像が仮想的に生成される。生成された画像においては、例えば、照明と部品との位置関係や部品表面の反射率などによって、撮像対象物やその周囲への照明の当たり方が再現される。また、カメラパラメータの設定値に基づいて、画像のボケを再現することもできる。
【００６１】
目標画像生成部１１４は、撮像対象物についての部品データに基づいて、撮像対象物のポリゴンモデルを表示装置１０４ａに表示させる。そして、目標画像生成部１１４は、表示されたポリゴンモデルの頂点の中から、認識対象部位に対応する複数の頂点の指定を入力部１１１を介して受け付ける。目標画像生成部１１４は、部品データの中から、指定された各頂点の３次元座標を特定する。この３次元座標は、例えば、仮想設備が構築された仮想空間における座標である。また、目標画像生成部１１４は、生成対象の画像処理プログラムにしたがって実行される画像処理種別の指定を、入力部１１１を通じて受け付ける。
【００６２】
目標画像生成部１１４は、生成された各入力画像の撮像時のカメラパラメータを用いて、指定された各頂点の座標を、各頂点を各入力画像に投影したときの座標に変換する。目標画像生成部１１４は、変換後の各頂点の座標に基づいて、各入力画像と同じサイズの投影画像に対して、指定された画像処理種別に応じた処理を施すことにより、各入力画像に対応する目標画像を生成する。例えば、目標画像生成部１１４は、変換後の頂点の座標から直線や曲線、あるいは線で囲まれた領域を投影画像から特定し、特定された線や領域を描画することで目標画像を生成する。
【００６３】
入力画像生成部１１３によって生成された入力画像と、目標画像生成部１１４によって生成された目標画像は、学習データ２００として出力される。学習データ２００においては、入力画像とこれに対応する目標画像とが対応づけられている。学習データ２００は、例えば、プログラム生成装置１００内のＨＤＤ１０３などの記憶装置を介してプログラム生成部１２０に受け渡される。
【００６４】
次に、プログラム生成部１２０は、プログラム生成処理部１２１を有する。また、プログラム生成処理部１２１は、記憶部１２２を参照可能になっている。記憶部１２２は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域として実現される。
【００６５】
記憶部１２２には、学習データ生成部１１０によって生成された学習データ２００が記憶される。プログラム生成処理部１２１は、学習データ２００を用いて学習を行うことで、画像処理プログラム１３０を生成する。例えば、遺伝的プログラミングが用いられる場合、記憶部１２２には、画像処理プログラムを示す木構造の各ノードに設定可能な各種の部分プログラム（画像処理フィルタなど）が記憶される。プログラム生成処理部１２１は、学習データ２００を用いた学習により、木構造の各ノードに設定する部分プログラムの組み合わせを最適化する。これにより、所望の画像処理を実現する画像処理プログラム１３０が生成される。
【００６６】
図６は、構築される仮想設備の例を示す図である。図６に示す仮想設備３１０は、設置台３１１、駆動機構３１２、カメラ３１３、カメラ駆動機構３１４、支柱３１５、光源３１６，３１７を有する。
【００６７】
設置台３１１には、撮像対象物３００が設置される。駆動機構３１２は、設置台３１１の位置や傾きを変化させる。カメラ３１３は、撮像対象物３００を撮像する。カメラ駆動機構３１４は、カメラ３１３の位置や撮像方向を変化させる。支柱３１５には、光源３１６，３１７などの各種の部品が搭載される。光源３１６，３１７は、照明光を発光する。
【００６８】
なお、仮想設備３１０には、この他に例えば、光源３１６，３１７の位置や発光方向を変化させる駆動機構などが含まれてもよい。また、仮想空間には、例えば、仮想設備３１０が設置される部屋の壁、床、窓などが構築されてもよい。さらに、光源として部屋の外から光を照射する太陽が含まれてもよい。光源として太陽が含まれる場合、例えば、仮想設備３１０が使用される時刻が指定されると、その時刻に応じた光源の位置や照射方向、照射強度が設定されるようにすることで、太陽の状態変化に応じた入力画像を生成することもできる。
【００６９】
図７は、生成される入力画像の例を示す図である。
図７（Ａ）に示す入力画像２２１と図７（Ｂ）に示す入力画像２２２は、例えば、条件設定情報１４３に基づいて、カメラ３１３の位置（カメラ３１３と撮像対象物３００との距離）や姿勢を変化させることで生成される。あるいは、入力画像２２１，２２２は、撮像対象物３００が設置された設置台３１１の位置や回転角を変化させることで生成される。
【００７０】
また、図７（Ｃ）に示す入力画像２２３は、入力画像２２１に対してボケを発生させた画像である。この入力画像２２３は、例えば、合焦状態で入力画像２２１を撮像した状態から、カメラパラメータのうち焦点距離を変化させる、あるいは設置台３１１を移動させて撮像対象物３００とカメラ３１３との距離を変化させることで生成される。
【００７１】
また、図７（Ｄ）に示す入力画像２２４は、入力画像２２１を撮像したときとは照明の当たり方が異なる状態で撮像された画像である。具体的には、入力画像２２４では、照明の光量が強すぎるため、撮像対象物３００の表面の輝度が本来の輝度より大きくなっている。この入力画像２２４は、例えば、入力画像２２１を撮像した状態から、光源３１６または光源３１７からの光量を強くする、あるいは光源３１６または光源３１７を撮像対象物３００に近づけることで生成される。
【００７２】
図８は、学習データ生成部の処理手順の例を示すフローチャートである。
［ステップＳ１１］入力部１１１は、オペレータの操作に応じて設備設定情報１４２の入力を受け付け、設備設定情報１４２を記憶部１１５に格納する。仮想設備構築部１１２は、格納された設備設定情報１４２に基づいて、撮像対象物が設置された仮想設備を３次元空間上に構築する。
【００７３】
［ステップＳ１２］入力部１１１は、オペレータの操作に応じて条件設定情報１４３の入力を受け付け、条件設定情報１４３を記憶部１１５に格納する。
［ステップＳ１３］目標画像生成部１１４は、生成対象の画像処理プログラムにしたがって実行される画像処理種別の指定を、入力部１１１を通じて受け付ける。画像処理種別としては、例えば、直線エッジ検出、曲線エッジ検出、円エッジ検出、領域検出、テンプレートマッチングがある。直線エッジ検出とは、撮像対象物上の直線状のエッジを検出する処理である。曲線エッジ検出とは、撮像対象物上の曲線状のエッジを検出する処理である。円エッジ検出とは、撮像対象物上の円状または楕円状のエッジを検出する処理である。領域検出とは、撮像対象物における部品や欠損部、キズの領域などの特定の部位の領域を検出する処理である。テンプレートマッチングとは、テンプレート画像が写っている領域を検出する処理である。
【００７４】
［ステップＳ１４］目標画像生成部１１４は、撮像対象物の部品データに基づいて、撮像対象物をポリゴンの集合体として表したポリゴンモデルを表示装置１０４ａに表示させる。
【００７５】
［ステップＳ１５］目標画像生成部１１４は、表示されたポリゴンモデルに対する選択操作を入力部１１１を通じて受け付けることにより、撮像対象物上の認識対象部位の選択を受け付ける。この処理では、目標画像生成部１１４は、ステップＳ１３で指定された画像処理種別に応じた選択方法で認識対象部位の選択を受け付ける。
【００７６】
例えば、画像処理種別として直線エッジ検出、曲線エッジ検出、円エッジ検出が指定された場合、目標画像生成部１１４は、ポリゴンモデルの表示画像から、認識対象となるエッジ上の複数の頂点を選択させる。また、画像処理種別としてテンプレートマッチングが指定された場合、目標画像生成部１１４は、ポリゴンモデルの表示画像から、認識対象物の外縁における複数の頂点を選択させる。これらのケースでは、目標画像生成部１１４は、撮像対象物の部品データの中から、選択された各頂点の座標を抽出する。なお、これらのケースでは、目標画像生成部１１４は、ポリゴンモデルから、頂点の代わりにポリゴンの線分の選択を受け付けてもよい。この場合、選択された線分の両端の頂点の座標が抽出される。
【００７７】
一方、画像処理種別として領域検出が指定された場合、目標画像生成部１１４は、複数のポリゴンによって構成される部品や欠損部、キズの領域を単位として選択操作を受け付ける。例えば、撮像対象物に含まれるある部品が選択された場合、目標画像生成部１１４は、その部品の表示領域へのクリック操作を検出すると、その部品が選択されたと認識する。目標画像生成部１１４は、撮像対象物の部品データの中から、選択された部品や欠損部、キズの領域に含まれる各ポリゴンの頂点の座標を抽出する。
【００７８】
なお、ここではポリゴンモデルの表示画像から頂点などを選択させる例を示したが、例えば、撮像対象物を示す部品データの中から上記の頂点や部品、欠損部、キズの領域を示すデータが、部品データの一覧の中からオペレータによって直接的に選択されてもよい。
【００７９】
［ステップＳ１６］入力画像生成部１１３は、条件設定情報１４３において設定値を変化させるように記述された項目を特定する。複数の項目が特定された場合、入力画像生成部１１３は、特定された各項目についての設定値の組み合わせを１組選択する。また、項目が１つだけ特定された場合には、入力画像生成部１１３は、その項目についての設定値を１つ選択する。
【００８０】
［ステップＳ１７］入力画像生成部１１３は、仮想設備およびそこに設置された撮像対象物の状態を、ステップＳ１６で選択された設定値を反映した状態に設定する。入力画像生成部１１３は、この状態でカメラから撮像対象物を撮像した撮像画像を、例えば、フォトンマッピング法やレイトレーシング法などの物理ベースシミュレーションを用いて生成する。生成された画像が入力画像として出力される。
【００８１】
［ステップＳ１８］目標画像生成部１１４は、ステップＳ１５で特定された各頂点の３次元座標を、ステップＳ１７で生成された入力画像に投影したときの２次元座標に変換する。この変換では、ステップＳ１７での撮像において設定されたカメラパラメータのうち、少なくとも、カメラと撮像対象物との位置関係を示すパラメータを用いて行われる。
【００８２】
［ステップＳ１９］目標画像生成部１１４は、変換後の各頂点の座標に基づいて、入力画像と同じサイズの投影画像に対して、ステップＳ１３で指定された画像処理種別に応じた処理を施すことにより、各入力画像に対応する目標画像を生成する。
【００８３】
例えば、直線エッジ検出の場合、目標画像生成部１１４は、投影画像上の各頂点を結ぶ直線を算出する。曲線エッジ検出の場合、目標画像生成部１１４は、投影画像上の各頂点を結ぶ曲線を算出する。円エッジ検出の場合、目標画像生成部１１４は、投影画像上の各頂点を結ぶ円または楕円を算出する。これらの直線、曲線、円または楕円は、例えば、各頂点の２次元座標を基に最小二乗法を用いて近似することで算出される。
【００８４】
また、テンプレートマッチングの場合、目標画像生成部１１４は、投影画像上の各頂点を結ぶことにより、認識対象物の外形の形状を算出する。また、領域検出の場合、目標画像生成部１１４は、投影画像上の各頂点を結ぶことにより、認識対象の特定部位の外形の形状を算出した後、例えば、その形状を包含するような矩形領域の位置を算出する。
【００８５】
目標画像生成部１１４は、以上のようにして算出された直線、曲線、円、楕円、外形の形状、矩形領域を、その他の領域とは別の輝度値で描画した画像を、目標画像として生成する。なお、テンプレートマッチングや領域検出の場合には、目標画像の代わりに、認識された領域あるいは矩形領域の投影画像における位置を示す情報が、入力画像に対応する目標データとして出力されてもよい。
【００８６】
［ステップＳ２０］目標画像生成部１１４は、条件設定情報１４３において変化させるように記述された項目の設定値をすべて選択したかを判定する。未選択の設定値がある場合、ステップＳ１６の処理が実行される。該当するすべての設定値を選択済みの場合、学習データ２００の生成処理は終了する。
【００８７】
ここで、画像処理種別として直線エッジ検出が指定された場合の目標画像の生成処理の一例について、図９，図１０を用いて説明する。
図９は、目標画像の生成処理の例を示すフローチャートである。また、図１０は、目標画像の生成処理において生成される画像の例を示す図である。
【００８８】
［ステップＳ１５ａ］この処理は、図８のステップＳ１５に対応する。目標画像生成部１１４は、表示されたポリゴンモデルから、認識の対象とする直線状のエッジを構成する頂点の選択入力を受け付ける。図１０の画像４１０は、ポリゴンモデルが表示された画像の一例である。画像４１０において点線で示した部分がポリゴンの境界となる。画像４１０の例では、オペレータにより、エッジ部４１２を構成する頂点４１１ａ〜４１１ｅが選択されたものとする。
【００８９】
この後、図８のステップＳ１６，Ｓ１７が実行された後、次のステップＳ１８ａが実行される。ステップＳ１８ａは、図８のステップＳ１８に対応する。
［ステップＳ１８ａ］目標画像生成部１１４は、対応する入力画像の撮像時に設定されたカメラパラメータに基づいて、頂点４１１ａ〜４１１ｅの３次元座標を入力画像に投影したときの２次元座標に変換する。
【００９０】
次のステップＳ１９ａ〜Ｓ１９ｃは、図８のステップＳ１９の処理に対応する。
［ステップＳ１９ａ］目標画像生成部１１４は、変換された頂点４１１ａ〜４１１ｅの２次元座標に基づいて、最小二乗法などを用いて直線の式を算出する。
【００９１】
［ステップＳ１９ｂ］目標画像生成部１１４は、入力画像と同じサイズであり、単色の背景を有する投影画像に、算出された式に基づく直線を背景とは別の画素値で描画する。図１０の画像４２０は、入力画像と同じサイズであり、単色の背景を有する画像４２０に、算出された式に基づく直線４２１が描画されている。なお、この例では、対応する入力画像を撮像した際の視野には頂点４１１ｅが含まれていない。
【００９２】
［ステップＳ１９ｃ］目標画像生成部１１４は、直線４２１の画素のうち、認識対象とするエッジ部４１２の端部より外側の領域の画素と、画像４２０のウィンドウより外側の領域の画素とを、クリッピングする。これにより、図１０の画像４２０は画像４２０ａのように変換され、この画像４２０ａが目標画像として出力される。
【００９３】
なお、このステップＳ１９ｃの処理のうち、エッジ部の端部より外側の直線領域をクリッピングする処理は必須ではなく、この処理を実行するか否かはオペレータによって任意に設定可能である。
【００９４】
以上説明した学習データ生成部１１０の処理によれば、様々な撮像条件において撮像対象画像およびその周囲領域を撮像した入力画像を、効率的に生成することができ、その生成処理時間を短縮することができる。
【００９５】
また、オペレータの操作により対応する入力画像を変換することで目標画像を生成するのではなく、認識対象部位に相当するＣＡＤデータ（３次元座標）をオペレータに選択させる。これにより、例えば、入力画像に認識対象部位が明瞭に写っていない場合でも、認識対象部位が正確に選択される。そして、選択されたＣＡＤデータに基づく認識対象部位を入力画像に投影した結果を用いて、対応する入力画像に対応する目標画像が生成される。これにより、入力画像における撮像対象物の写り方に関係なく、対応する目標画像を正確に生成することができる。したがって、このように生成された目標画像を用いて画像処理プログラム１３０の生成のための学習が行われることで、高精度な画像処理を実現する画像処理プログラム１３０を生成することができる。
【００９６】
次に、プログラム生成部１２０の処理について説明する。ここでは例として、遺伝的プログラミングを用いて画像処理プログラム１３０を生成する場合について説明する。
図１１は、個体を構成する木構造の例を示す図である。遺伝的プログラミングを用いた画像処理プログラム１３０の生成処理では、個体は、１つ以上の部分プログラムを組み合わせて構成される。例えば、図１１に示すように、個体は木構造で定義される。また、個体に組み込むことが可能な複数の部分プログラムは、記憶部１２２にあらかじめ用意される。
【００９７】
以下の説明では例として、部分プログラムはそれぞれ画像フィルタであるものとするが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。図１１において、「Ｆ１」〜「Ｆ８」は画像フィルタを示し、「Ｉ」は入力端子を示し、「Ｏ」は出力端子を示す。図１１のような木構造を有する個体によれば、入力端子Ｉに画像を入力することにより、例えば、前述の画像処理種別のうち、直線エッジ検出、曲線エッジ検出、円エッジ検出、領域検出の各処理を実現することができる。
【００９８】
図１２は、個体を構成する木構造の他の例を示す図である。図１２では、テンプレートマッチングを実現する木構造の一例を示している。図１２の個体は、２つの入力端子Ｉ１，Ｉ２を備えている。入力端子Ｉ１には入力画像が入力され、入力端子Ｉ２にはテンプレート画像が入力される。これにより、例えば、入力画像におけるテンプレート画像の領域またはその位置情報が出力される。なお、「Ｆ１１」〜「Ｆ１７」は画像フィルタの一例であり、「Ｍ」は、画像フィルタＦ１７の出力画像と入力画像Ｉ２からのテンプレート画像とのマッチング処理を実行する部分プログラムである。
【００９９】
図１３は、遺伝的プログラミングを用いた画像処理プログラムの生成処理手順の例を示すフローチャートである。
［ステップＳ３１］プログラム生成処理部１２１は、母集団に含める複数の初期個体を生成する。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。
【０１００】
［ステップＳ３２］プログラム生成処理部１２１は、母集団の中からランダムに一定数の親個体を選択する。以下、例として２つの親個体が選択されるものとする。
［ステップＳ３３］プログラム生成処理部１２１は、選択された２つの親個体に対して進化過程の処理を施すことで、２以上の一定数の子個体を生成する。進化過程では、２つの親個体に対して交叉処理および突然変異処理が行われる。２つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、３つ以上の子個体が生成されてもよい。
【０１０１】
［ステップＳ３４］プログラム生成処理部１２１は、ステップＳ３２で選択された親個体、およびステップＳ３３で生成された子個体のそれぞれについて、適応度を計算する。この処理では、対象の個体それぞれを用いた画像処理が、学習データ２００に含まれる各入力画像に対して実行され、実行後の画像と対応する目標画像とが比較されることで適応度が計算される。学習データ２００に入力画像と目標画像とが複数組が存在する場合、個体それぞれについて、複数組の入力画像と目標画像とを用いて得られた適応度の平均値が算出される。
【０１０２】
なお、ステップＳ３１で母集団が生成された時点で母集団に含まれる初期個体の適応度が算出されてもよい。この場合、ステップＳ３４では、生成された子個体の適応度だけが算出される。
【０１０３】
［ステップＳ３５］プログラム生成処理部１２１は、生成された子個体および元の親個体のうちのいずれかの適応度が、所定の閾値より大きいかを判定する。いずれの適応度も閾値以下である場合には、ステップＳ３６の処理が実行される。１以上の適応度が閾値より大きい場合には、ステップＳ３７の処理が実行される。
【０１０４】
［ステップＳ３６］プログラム生成処理部１２１は、ステップＳ３２で選択された親個体、およびステップＳ３３で生成された子個体の中から、生存選択を行う。例えば、算出された適応度が最大の個体が第１の生存個体として選択され、さらに残りの個体の中から、適応度に応じた確率で第２の生存個体が選択される。プログラム生成処理部１２１は、母集団に含まれる個体のうち、ステップＳ３２で親個体として選択された２つの個体を、第１の生存個体および第２の生存個体に入れ替える。これにより、母集団の世代が更新される。
【０１０５】
［ステップＳ３７］プログラム生成処理部１２１は、ステップＳ３２で選択された親個体、およびステップＳ３３で生成された子個体のうち、適応度が最大の個体を最良個体として選択する。選択された最良個体が、最適化された画像処理プログラム１３０となる。プログラム生成処理部１２１は、選択された最良個体を示す木構造データを、記憶部１２２などの記憶領域に保存する。
【０１０６】
図１４は、入力画像および目標画像と、生成された画像処理プログラムを用いた画像処理についての第１の例を示す図である。図１４の例では、図７に示した入力画像２２１，２２２と、これらに対応する目標画像２２１ａ，２２２ａとが、学習データ生成部１１０によって生成されたものとする。目標画像２２１ａ，２２２ａには、撮像対象物２３１におけるエッジ部２３１ａに沿った直線２２１ｂ，２２２ｂがそれぞれ描画されている。プログラム生成部１２０は、これらの入力画像２２１，２２２および目標画像２２１ａ，２２２ａを用いて学習を行うことにより、画像処理プログラム１３０ａを生成する。
【０１０７】
画像３０１は、実際の設備においてカメラによって撮像対象物２３１が撮像された撮像画像の例である。この画像３０１を生成された画像処理プログラム１３０ａを用いて処理することで、エッジ部２３１ａに沿った直線３０２ａが正確に検出された画像３０２が出力される。
【０１０８】
図１５は、入力画像および目標画像と、生成された画像処理プログラムを用いた画像処理についての第２の例を示す図である。図１４の処理によって生成された画像処理プログラム１３０ａを用いて、図７の入力画像２２３のようにボケが生じた撮像画像を処理した場合には、撮像画像からエッジ部２３１ａが正確に検出されない可能性が高い。そこで、実際の設備において撮像画像にボケが生じやすくなった場合には、図１４の入力画像２２１，２２２および目標画像２２１ａ，２２２ａに加えて、例えば図７の入力画像２２３と、入力画像２２３に対応する目標画像２２３ａを用いて、画像処理プログラムの再学習が実行される。これにより、画像処理プログラム１３０ｂが生成される。
【０１０９】
画像３０３は、実際の設備においてカメラによって撮像対象物２３１が撮像された撮像画像の例である。この画像３０３を生成された画像処理プログラム１３０ｂを用いて処理することで、エッジ部２３１ａに沿った直線３０４ａが正確に検出された画像３０４が出力される。
【０１１０】
このように、画像処理プログラムの学習において、異なる条件下で撮像された多くの入力画像と、これらに対応する目標画像とが用いられるほど、ロバスト性の高い画像処理を実現する画像処理プログラムを生成することができる。そして、プログラム生成装置１００によれば、異なる条件下で撮像された多くの入力画像と、これらに対応する目標画像とを、短時間で効率的に生成することができる。また、これらの画像生成時のオペレータの作業負荷を軽減することができる。
【０１１１】
なお、上記の各実施の形態に示した装置（画像処理装置１およびプログラム生成装置１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１１４】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１１５】
１  画像処理装置
１ａ  入力画像生成部
１ｂ  目標画像生成部
１ｃ  形状データ
１ｄ  記憶部
２  仮想空間
３  対象物
３ａ  特徴部位
４ａ，４ｂ  カメラ
５ａ，５ｂ，５ｃ  頂点
１１ａ，１１ｂ  入力画像
１２ａ，１２ｂ  目標画像
【図１】
2017109918.tif 000003
【図２】
2017109918.tif 000004
【図３】
2017109918.tif 000005
【図４】
2017109918.tif 000006
【図５】
2017109918.tif 000007
【図６】
2017109918.tif 000008
【図７】
2017109918.tif 000009
【図８】
2017109918.tif 000010
【図９】
2017109918.tif 000011
【図１０】
2017109918.tif 000012
【図１１】
2017109918.tif 000013
【図１２】
2017109918.tif 000014
【図１３】
2017109918.tif 000015
【図１４】
2017109918.tif 000016
【図１５】
2017109918.tif 000017
【手続補正書】
【提出日】平成30年6月4日(2018.6.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８８８−８９４
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
例えば、目標画像生成部１ｂは、頂点５ａ〜５ｃの各３次元座標を、頂点５ａ〜５ｃを入力画像１１ａに投影したときの投影座標に変換し、投影座標に基づいて特徴部位３ａの領域を描画した目標画像１２ａを生成する。図１の例では、入力画像１１ａと同じサイズの目標画像１２ａにおける投影座標が示す位置に、特徴部位３ａが描画されている。また、目標画像生成部１ｂは同様に、頂点５ａ〜５ｃの各３次元座標を、頂点５ａ〜５ｃを入力画像１１ｂに投影したときの投影座標に変換し、投影座標に基づいて特徴部位３ａの領域を描画した目標画像１２ｂを生成する。図１の例では、入力画像１１ｂと同じサイズの目標画像１２ｂにおける投影座標が示す位置に、特徴部位３ａが描画されている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
図１２は、個体を構成する木構造の他の例を示す図である。図１２では、テンプレートマッチングを実現する木構造の一例を示している。図１２の個体は、２つの入力端子Ｉ１，Ｉ２を備えている。入力端子Ｉ１には入力画像が入力され、入力端子Ｉ２にはテンプレート画像が入力される。これにより、例えば、入力画像におけるテンプレート画像の領域またはその位置情報が出力される。なお、「Ｆ１１」〜「Ｆ１７」は画像フィルタの一例であり、「Ｍ」は、画像フィルタＦ１７の出力画像と入力端子Ｉ２からのテンプレート画像とのマッチング処理を実行する部分プログラムである。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
前記仮想設備は、前記対象物を照明する光源を含み、
前記入力画像生成部は、前記光源の状態を変化させる、
請求項６または７記載の画像処理装置。
【国際調査報告】
2017109918.tif 000018
2017109918.tif 000019
2017109918.tif 000020
2017109918.tif 000021