(57)【要約】  画像処理プログラムの再学習に要する時間を短縮するため、決定部１２１は、複数の初期個体を決定して母集団１１に含め、抽出部１２２は、母集団１１から少なくとも２つの親個体を抽出する。また、生成部１２３は、遺伝的プログラミングに基づき、抽出した親個体から子個体を生成し、処理部１２４は、学習用データを用いて、子個体の適応度を算出し、算出した適応度に基づいて、画像処理に用いる画像処理プログラムを決定する、又は母集団１１を更新する。そして、決定部１２１は、直前に画像処理に用いる画像処理プログラムを決定したときに母集団１１に含まれていた個体の少なくとも一部を、再学習処理における初期個体の一部として決定する。
2019049365.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含める決定部と、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出する抽出部と、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成する生成部と、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する処理部と、を備え、
前記決定部は、前記処理部が過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理装置。
【請求項２】
前記決定部は、
前記第１の画像処理プログラムの適応度を、前記撮像装置により新たに撮像された画像に基づく学習用データを用いて算出し、
算出した前記適応度に基づいて、前記第１の画像処理プログラムの中から選択した画像処理プログラムを、前記初期の画像処理プログラムの一部として決定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数に基づいて、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択するか、抽出する画像処理プログラムの一部を前記第１の画像処理プログラムの中からランダムに選択し、その他の画像処理プログラムを前記画像処理プログラム群に含まれる前記第１の画像処理プログラム以外の画像処理プログラムの中からランダムに選択するか、を決定する処理を実行する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記抽出部は、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数が所定値より小さい場合に、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択する、と決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理方法であって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含め、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出し、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成し、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する、処理をコンピュータが実行し、
前記決定する処理では、過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理方法。
【請求項６】
前記初期の画像処理プログラムを決定する処理では、
前記第１の画像処理プログラムの適応度を、前記撮像装置により新たに撮像された画像に基づく学習用データを用いて算出し、
算出した前記適応度に基づいて、前記第１の画像処理プログラムの中から選択した画像処理プログラムを、前記初期の画像処理プログラムの一部として決定する、ことを特徴とする請求項５に記載の情報処理方法。
【請求項７】
前記抽出する処理では、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数に基づいて、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択するか、抽出する画像処理プログラムの一部を前記第１の画像処理プログラムの中からランダムに選択し、その他の画像処理プログラムを前記画像処理プログラム群に含まれる前記第１の画像処理プログラム以外の画像処理プログラムの中からランダムに選択するか、を決定する処理を実行する、ことを特徴とする請求項５又は６に記載の情報処理方法。
【請求項８】
前記抽出する処理では、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数が所定値より小さい場合に、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択する、と決定することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理プログラムであって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含め、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出し、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成し、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する、処理をコンピュータに実行させ、
前記決定する処理では、過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
工業製品の外観検査などでは、撮像装置を用いて工業製品の外観を撮影し、欠陥の有無を判定している。ここで、ＦＡ（Factory Automation）分野においては、現場の撮影環境に応じたノイズや、影、明るさの変動などが撮影画像に影響を与えることが多く、欠陥部を抽出する画像処理プログラムには、環境変化にロバストな処理の実現が望まれている。また、工業製品の外観を検査する外観検査装置を運用する場合、検査対象の変更や、外観検査装置の改良に起因して検査環境が変化したときに、画像処理プログラムの再構築が必要になることがある。そのため、外観検査装置においては、画像処理方法を容易に構築できることが求められている。【０００３】
外観検査装置に使用される画像処理装置では、カメラなどで撮影した画像を画像処理フィルタで画像処理することで出力画像を得ている。ここで、従来の画像処理装置では、画像処理フィルタを遺伝的プログラミング（Genetic Programming：GP）に基づいた進化的計算を行って自動生成する技術が知られている。この技術では、画像処理プログラムを示す個体は、それぞれが画像処理のプログラム要素（画像処理フィルタ）に対応する１以上のノードを有する木構造で表現されており、ある世代の親個体に基づいて子個体が生成され、学習用データとして与えられた入力画像を用いて、子個体に基づく画像処理が実行される。そして、その処理結果と、学習用データとして与えられた目標となる処理結果（例えば、目標画像）との比較によって、子個体の適応度が算出される。また、適応度に基づいて世代交代の際に入れ替える個体が選択されることで、画像処理プログラムが最適化されていく（例えば、非特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４１０２号公報
【特許文献２】特開２００８−２０４１０３号公報
【非特許文献】
【０００５】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８９０−８９２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
撮影環境の変化により画像処理プログラムの修正が必要になると、画像処理プログラムを遺伝的プログラミングに基づいて再度自動生成（再学習）する必要がある。この場合、環境変化後の撮影画像から新たに作成した学習データ（入力画像や目標画像）を用いることとなるが、基本的な学習の流れは環境変化前に行った自動生成と同様である。【０００７】
しかしながら、画像処理プログラムを再学習する場合、初期段階で行われる学習よりも迅速性が要求されることが多いことから、再学習に要する時間を短縮するための工夫が必要となる。【０００８】
１つの側面では、本発明は、画像処理プログラムの再学習に要する時間を短縮することが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、情報処理装置は、撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含める決定部と、前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出する抽出部と、遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成する生成部と、入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する処理部と、を備え、前記決定部は、前記処理部が過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定する情報処理装置である。
【発明の効果】
【００１０】
画像処理プログラムの再学習に要する時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る画像処理プログラム生成処理の概要を示す図である。
【図２】画像処理装置のハードウェア構成を示す図である。
【図３】画像処理装置の機能ブロック図である。
【図４】初期学習処理を示すフローチャートである。
【図５】再学習処理を示すフローチャートである。
【図６】画像処理プログラムの再学習処理の概要を示す図である。
【図７】一実施形態の作用効果について説明するための図である。
【発明を実施するための形態】
【００１２】
以下、情報処理装置の一実施形態について、図１〜図７に基づいて詳細に説明する。
【００１３】
まず、図１に基づいて、遺伝的プログラミングによる画像処理プログラムの生成処理の概要について説明する。
【００１４】
（画像処理プログラム生成処理の概要）
図１は、画像処理プログラムの生成処理手順の概要を示す図である。前提として、画像処理プログラムの生成処理の前に、１つ以上の学習用データ２０が用意される。学習用データ２０には、入力画像２１と、入力画像２１に対して画像処理を施したときの処理結果（本実施形態では目標画像２２）とが含まれる。入力画像２１は、例えば、カメラによって被写体を撮像することによって得られる。
【００１５】
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体（図１において白丸で表記）は、１つ以上の画像処理フィルタを組み合わせて構成される。例えば、図１の左上に示すように、個体は木構造で定義され、木構造の各ノードに画像処理フィルタが組み込まれる。なお、図１の左上において、“Ｆ”はノードに組み込まれた画像処理フィルタを示し、“Ｉ”は入力端子を示し、“Ｏ”は出力端子を示す。また、個体に組み込むことが可能な複数の画像処理フィルタも、あらかじめ用意される。
【００１６】
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、以下のように実行される。
【００１７】
まず、ステップＳ１において、母集団１１に含められる複数の初期個体が生成される。各初期個体のノードには、あらかじめ用意された複数の画像処理フィルタの中からランダムに選択された画像処理フィルタが組み込まれる。また、生成された各初期個体について、適応度が算出される。なお、適応度の算出処理の詳細については後述する。なお、算出された適応度の最大値が所定の閾値以上である場合には、適応度が最大の初期個体が最終的な画像処理プログラムとして出力される。
【００１８】
適応度の最大値が所定の閾値未満である場合、ステップＳ２において、母集団１１の中から、一定数（図１では、例えば２つ）の親個体がランダムに選択される。次いで、ステップＳ３では、選択された一定数（２つ）の親個体に対して進化過程の処理が施されることで、２以上の一定数の子個体が生成される。進化過程では、２つの親個体に対して交叉処理および突然変異処理が行われる。２つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、３つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団１１から選択される親個体の数以上となる。
【００１９】
次いで、ステップＳ４では、生成された各子個体について、適応度が算出される。
【００２０】
ここで、生成された子個体のいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。
【００２１】
一方、これらすべての子個体の適応度が所定の閾値未満であった場合には、ステップＳ５において、生成された各子個体および元の２つの親個体を含む個体群１２の中から、生存選択が行われる。この生存選択では、個体群１２の中から、算出された適応度が最大の個体が選択される。また、個体群１２内の残りの個体の中から、所定の方法で個体が１つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される（ルーレット選択）。
【００２２】
このような生存選択によって選択された２つの個体は、ステップＳ６において、母集団１１に含まれる個体のうち、親個体として選択された２つの個体と入れ替えられる。これにより、母集団１１に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
【００２３】
以上のような手順によって生成される画像処理プログラムの用途としては、例えば、ＦＡ（Factory Automation）分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
【００２４】
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理プログラムの再構築の必要が生じる場合がある。このため、画像処理プログラムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理プログラムを構築することが求められている。
【００２５】
遺伝的プログラミングを利用することで、入力画像２１とこれに対応する目標画像２２とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像２１と目標画像２２とのペア（学習用データ２０）を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理プログラムを自動生成することもできる。なお、以下においては、画像処理プログラムを最初に生成する処理を「初期学習処理」と呼び、撮像環境の変化などに伴って画像処理プログラムを再構築する処理を「再学習処理」と呼ぶものとする。
【００２６】
（画像処理装置の構成）
次に、上述した画像処理プログラムの生成処理（初期学習処理、再学習処理）を実施する情報処理装置としての画像処理装置１００の構成等について、図２に基づいて説明する。図２には、画像処理装置１００のハードウェア構成の一例が概略的に示されている。本実施形態に係る画像処理装置１００は、例えば、図２に示すようなコンピュータ（情報処理装置）として実現される。
【００２７】
画像処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。プロセッサ１０１には、バス１０９を介して、ＲＡＭ１０２と複数の機器（周辺機器）が接続されている。
【００２８】
ＲＡＭ１０２は、画像処理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２９】
バス１０９に接続される機器には、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６、通信インタフェース１０７、及びネットワークインタフェース１０８等が含まれる。
【００３０】
ＨＤＤ１０３は、画像処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００３１】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、表示装置１０４ａの画面に画像を表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００３２】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３３】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着可能となっている。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａには、光ディスク、光磁気ディスク、半導体メモリなどが含まれる。
【００３４】
通信インタフェース１０７は、接続された外部デバイスとの間でデータの送受信を行う。本実施形態では、通信インタフェース１０７に撮像装置としてのカメラ１０７ａが接続されており、通信インタフェース１０７は、カメラ１０７ａから送信された画像データをプロセッサ１０１に送信する。
【００３５】
ネットワークインタフェース１０８は、ネットワークを介して他の装置との間でデータの送受信を行う。
【００３６】
（画像処理装置１００が備える処理機能）
図３は、画像処理装置が備える処理機能の構成例を示すブロック図（機能ブロック図）である。画像処理装置１００は、画像取得部１１１、画像処理部１１２、プログラム生成部１２０、プログラム記憶部１３０、学習用データ記憶部１４１、を有する。画像取得部１１１、画像処理部１１２及びプログラム生成部１２０の処理は、例えば、画像処理装置１００のプロセッサ１０１が所定のプログラムを実行することで実現される。また、画像処理部１１２の処理の一部は、プログラム記憶部１３０に保存された画像処理プログラムを、画像処理装置１００のプロセッサ１０１が実行することで実現される。プログラム記憶部１３０、学習用データ記憶部１４１は、例えば、画像処理装置１００のＨＤＤ１０３の記憶領域として実現される。
【００３７】
画像取得部１１１は、カメラ１０７ａによって撮像された画像のデータをカメラ１０７ａから取得し、プログラム生成部１２０または画像処理部１１２に出力する。
【００３８】
プログラム生成部１２０は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部１３０に保存する。なお、プログラム生成部１２０の詳細については、後述する。
【００３９】
画像処理部１１２は、カメラ１０７ａによって撮像された画像のデータを画像取得部１１１を介して取得する。画像処理部１１２は、プログラム記憶部１３０に保存された最終的な画像処理プログラム（画像処理に用いるプログラム）にしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置１０４ａに表示される。
【００４０】
プログラム記憶部１３０は、プログラム生成部１２０によって学習時又は再学習時に生成された最終的な画像処理プログラム及び最終的な画像処理プログラムが生成されたときに母集団１１に含まれていた画像処理プログラムを記憶する。
【００４１】
学習用データ記憶部１４１は、それぞれ入力画像および目標画像の各データを含む学習用データを、１つ以上記憶する。学習用データに含まれる入力画像は、例えば、画像処理装置１００に接続されたカメラ１０７ａによって撮像された画像であってもよい。
【００４２】
なお、本実施形態では、一例として、生成される画像処理プログラムを用いた処理の結果として、画像が出力されるものとするが、処理の結果として画像以外の情報が出力されるようにしてもよい。そのような処理の結果としては、例えば、入力画像における領域を示す位置情報、入力画像の分類結果や評価結果などが考えられる。このように処理の結果が画像でない場合、学習用データには、目標となる処理結果を示す、画像以外の情報が、目標画像の代わりに含まれていてもよい。
【００４３】
プログラム生成部１２０は、図３に示すように、学習用データ設定部１２８、決定部１２１、抽出部１２２、生成部１２３、処理部１２４、を有する。
【００４４】
学習用データ設定部１２８は、学習用データの設定を行う。例えば、学習用データ設定部１２８は、学習用データ記憶部１４１に記憶された学習用データの中から、使用する学習用データを指定したり、あるいは、画像取得部１１１が取得した画像に基づいて、使用する学習用データを生成し、学習用データ記憶部１４１に登録したりする。
【００４５】
決定部１２１は、複数の初期個体（初期の画像処理プログラム）を決定し、母集団１１に含める（図１のＳ１）。なお、決定部１２１による初期個体の決定方法は、初期学習処理のときと、再学習処理のときとで異なるが、詳細については後述する。
【００４６】
抽出部１２２は、母集団１１から複数（例えば２つ）の親個体（画像処理プログラム）を抽出する（図１のＳ２）。なお、抽出部１２２による親個体の抽出方法は、初期学習処理のときと、再学習処理のときとで異なるが、詳細については後述する。
【００４７】
生成部１２３は、遺伝的プログラミングに基づき、抽出した複数（例えば２つ）の親個体から子個体を生成する（図１のＳ３）。
【００４８】
処理部１２４は、入力画像と目標となる処理結果とを含む学習用データを用いて、個体（次世代の画像処理プログラムの候補）を評価するための適応度を計算する（図１のＳ４）。具体的には、処理部１２４は、学習用データ記憶部１４１に記憶された学習用データを用いて、各画像処理プログラムの適応度を算出する。処理部１２４は、画像処理プログラムに従って、学習用データに含まれる入力画像に画像処理を施し、得られた画像と、画像処理された入力画像に対応する目標画像との類似度を、個体の適応度として算出する。また、処理部１２４は、計算した適応度に基づいて、次世代の画像処理プログラムを決定する、又は生成部１２３が生成した子個体により母集団１１を更新する（図１のＳ５、Ｓ６）。
【００４９】
（画像処理装置１００による初期学習処理）
図４は、画像処理装置１００により実行される、初期学習処理の詳細を示すフローチャートである。
【００５０】
図４のステップＳ１０において、学習用データ設定部１２８は、学習用データを設定する。例えば、学習用データ記憶部１４１に記憶された学習用データの中から、本処理で使用する学習用データを指定したり、あるいは、本処理で使用する学習用データを画像取得部１１１が取得した画像から生成して、学習用データ記憶部１４１に登録する。
【００５１】
次いで、ステップＳ１２では、決定部１２１が、母集団１１に含める所定個数（Ｐ個）の初期個体を生成する（図１のステップＳ１参照）。各初期個体は、木構造の各ノードに対して、画像処理フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
【００５２】
次いで、ステップＳ１４では、処理部１２４が、母集団１１に含まれる個体についての、学習用データを用いた適応度の算出を実行する。
【００５３】
次いで、ステップＳ１６では、処理部１２４が、ステップＳ１４で算出した各個体の適応度の最大値が、予め定められている閾値よりも大きいか否かを判断する。このステップＳ１６の判断が肯定された場合には、ステップＳ２６に移行し、適応度が最大の個体を最終的な画像処理プログラムとし、最終的な画像処理プログラムと母集団１１に含まれる個体とをプログラム記憶部１３０に格納する。その後は、図４の処理（初期学習処理）を終了する。
【００５４】
一方、ステップＳ１６の判断が否定された場合（現時点で、母集団１１に最終的な画像処理プログラムになりうる個体が存在しない場合）には、ステップＳ１８に移行し、抽出部１２２は、母集団１１に含まれる個体の中から、２つの親個体をランダムに選択する（図１のステップＳ２参照）。
【００５５】
次いで、ステップＳ２０では、生成部１２３が、進化過程の処理により子個体を生成する（図１のステップＳ３参照）。この場合、生成部１２３は、選択された２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。また、生成部１２３は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像処理フィルタを他の画像処理フィルタに置き換える。
【００５６】
次いで、ステップＳ２２では、処理部１２４が、学習用データを用いて、各子個体の適応度を算出する。ここでの処理は、上述したステップＳ１４の処理と同様である。
【００５７】
次いで、ステップＳ２４では、処理部１２４は、ステップＳ２２で算出された各子個体の適応度の中から、最大適応度を特定し、最大適応度が所定の閾値より大きいか否かを判定する。処理部１２４は、最大適応度が閾値より大きい場合、ステップＳ２６の処理に移行し、最大適応度が閾値以下の場合、ステップＳ２８の処理に移行する。
【００５８】
ステップＳ２８に移行すると、処理部１２４は、生存させる個体として、ステップＳ１８で選択された各親個体と、ステップＳ２０で生成された各子個体の中から、適応度が最大の個体を選択する（図１のステップＳ５参照）。さらに、処理部１２４は、残りの個体の中から生存させる個体を１つ選択する。この選択では、残りの個体それぞれの適応度に応じた確率で生存させる個体が選択される（ルーレット選択）。
【００５９】
次いで、ステップＳ３０では、処理部１２４が、母集団１１に含まれる個体のうちステップＳ１８で選択された親個体を、ステップＳ２８で選択された２つの個体に入れ替える（図１のステップＳ６参照）。これによって、母集団１１の世代が更新される。その後は、ステップＳ１８に戻り、上述したようにステップＳ１８以降の処理が実行されることになる。
【００６０】
一方、ステップＳ２４の判断が肯定され、ステップＳ２６に移行すると、処理部１２４は、ステップＳ２４で適応度が閾値より大きいと判定された個体（画像処理プログラム）をプログラム記憶部１３０に格納するとともに、母集団１１に含まれる個体（画像処理プログラム）をプログラム記憶部１３０に格納して、図４の処理（初期学習処理）を終了する。なお、プログラム記憶部１３０に格納された最終的な画像処理プログラムと母集団１１に含まれる個体は、次に実行される再学習処理において利用される。
【００６１】
（画像処理装置１００による再学習処理）
次に、図５のフローチャート及び再学習処理の概要を示す図６に基づいて、画像処理装置１００により実行される再学習処理の詳細について説明する。この再学習処理は、図４に示すような方法で決定された画像処理プログラムを用いて画像処理が繰り返し実行されている間に、撮影環境の変化等が生じて、画像処理プログラムの修正が必要になった段階で実行される処理である。
【００６２】
図５の処理では、まず、ステップＳ１１０において、学習用データ設定部１２８が、新規学習用データを設定する。この場合、学習用データ設定部１２８は、撮影環境の変化等が生じた後にカメラ１０７ａで撮影された画像を用いて、新規学習用データを生成して、学習用データ記憶部１４１に登録する。
【００６３】
次いで、ステップＳ１１２Ａでは、処理部１２４が、ステップＳ１１０において生成された新規学習用データを用いて、直前の学習処理の際にプログラムＤＢ１３０に格納された個体（直前の学習における最終的な画像処理プログラムと母集団１１に含まれていた個体）の適応度を算出する（図６のステップＳ２０１参照）。
【００６４】
次いで、ステップＳ１１２Ｂでは、処理部１２４は、適応度が上位Ｎ0個の個体を母集団１１に挿入する（図６のステップＳ２０２参照）。ここで、Ｎ0は、母集団１１の総個体数Ｐの５０％（Ｎ0＝０．５×Ｐ）などとすることができる。
【００６５】
次いで、ステップＳ１１２Ｃでは、処理部１２４が、Ｐ−Ｎ0個の個体をランダムに生成し、母集団１１に挿入する（図６のステップＳ２０３参照）。このステップＳ１１２Ｃの処理は、図４のステップＳ１２の処理と同様である。
【００６６】
次いで、ステップＳ１１４では、ステップＳ１１２Ｃにおいてランダムに生成された個体それぞれの適応度を算出する。
【００６７】
次いで、ステップＳ１１６では、処理部１２４が、ステップＳ１１２Ａ、Ｓ１１４で算出した各個体の適応度の最大値が、予め定められている閾値よりも大きいか否かを判断する。このステップＳ１１６の判断が肯定された場合には、ステップＳ１２６に移行し、適応度が最大の個体を最終的な画像処理プログラムとし、最終的な画像処理プログラムと母集団１１に含まれる個体とをプログラム記憶部１３０に格納する。その後は、図５の処理（再学習処理）を終了する。
【００６８】
一方、ステップＳ１１６の判断が否定された場合（母集団１１に最終的な画像処理プログラムになりうる個体が存在しない場合）には、ステップＳ１１８Ａに移行し、抽出部１２２は、Ｎi／ＰがＫよりも大きいか否かを判断する。ここで、Ｋは例えば０．１であるとする。Ｎiは、母集団に含まれる直前の学習で得られた個体の個数である。例えば、母集団に２０個の個体が含まれ、そのうちの１０個が直前の学習で得られた個体であるとすると、Ｎi／Ｐ＝１／２であるため、Ｋ（＝０．１）よりも大きいと判断され、ステップＳ１１８Ａの判断が肯定される。一方、直前の学習で得られた個体が後述するように親個体として選択されることで、母集団１１から減少し、Ｎi／ＰがＫよりも小さくなった場合には、ステップＳ１１８Ａの判断が否定される。ステップＳ１１８Ａの判断が肯定された場合には、ステップＳ１１８Ｂに移行し、否定された場合には、ステップＳ１１８Ｃに移行する。
【００６９】
ステップＳ１１８Ｂに移行した場合、抽出部１２２は、親個体の一方として母集団１１に含まれる直前の学習で得られた個体を選択し、他方として母集団１１に含まれる新規に生成された個体を選択する（図６のステップＳ２０４参照）。
【００７０】
一方、ステップＳ１１８Ｃに移行した場合には、抽出部１２２は、親個体の両方を母集団１１の中からランダムに選択する（図６のステップＳ２０４参照）。
【００７１】
次いで、ステップＳ１２０では、図４のステップＳ２０と同様、生成部１２３が、進化過程の処理により子個体を生成する（図６のステップＳ２０５参照）。次いで、ステップＳ１２２では、処理部１２４が、新規学習用データを用いて、各子個体の適応度を算出する（図６のステップＳ２０６参照）。
【００７２】
次いで、ステップＳ１２４では、ステップＳ２４と同様、処理部１２４は、ステップＳ１２２で算出された各子個体の適応度の中から、最大適応度を特定し、最大適応度が所定の閾値より大きいか否かを判定する。処理部１２４は、最大適応度が閾値より大きい場合、ステップＳ１２６の処理に移行し、最大適応度が閾値以下の場合、ステップＳ１２８の処理に移行する。
【００７３】
ステップＳ１２８に移行すると、処理部１２４は、生存させる個体として、ステップＳ１１８Ｂ又は１１８Ｃで選択された各親個体と、ステップＳ１２０で生成された各子個体の中から、適応度が最大の個体を選択する。さらに、処理部１２４は、残りの個体の中から生存させる個体を１つルーレット選択する（図６のステップＳ２０７参照）。
【００７４】
次いで、ステップＳ１３０では、処理部１２４が、母集団１１に含まれる個体のうちステップＳ１１８Ｂ又はＳ１１８Ｃで選択された親個体を、ステップＳ１２８で選択された２つの個体に入れ替える（図６のステップＳ２０８参照）。これによって、母集団１１の世代が更新される。その後は、ステップＳ１３２において、処理部１２４は、母集団１１に含まれる直前の学習で得られた個体の数Ｎiを更新する。なお、ｉは、図６に示すループ（Ｓ２１０４〜Ｓ２０８）を実行した回数を示す値である。例えば、ステップＳ１１８Ｂ又はＳ１１８Ｃにおいて選択された親個体の１つが直前の学習で得られた個体であった場合には、Ｎi+1はＮiよりも１減少する。また、親個体の両方が直前の学習で得られた個体であった場合には、Ｎi+1はＮiよりも２減少する。さらに親個体の両方が直前の学習で得られた個体でなかった場合には、Ｎi+1はＮiから変化しないようになっている。ステップＳ１３２の後は、ステップＳ１１８Ａに移行する。
【００７５】
一方、ステップＳ１２４の判断が肯定され、ステップＳ１２６に移行すると、処理部１２４は、ステップＳ１２４で適応度が閾値より大きいと判定された個体（画像処理プログラム）をプログラム記憶部１３０に格納する。また、処理部１２４は、母集団１１に含まれる個体（画像処理プログラム）をプログラム記憶部１３０に格納して、図５の処理（再学習処理）を終了する。なお、ステップＳ１２６においてプログラム記憶部１３０に格納された画像処理プログラムは、次の再学習の際に、ステップＳ１１２Ａにおいて利用される。
【００７６】
以上のように再学習処理では、直前の学習で得られた画像処理プログラムを再学習時の母集団１１の初期個体の一部として用いるので、早期に適応度の高い個体を探索することができる。また、直前の学習で得られた画像処理プログラムを再学習処理における初期個体の全部としては用いないため、直前の学習における過学習状態を防ぐこともできる。
【００７７】
図７は、再学習を図５と同様の方法により行った場合（比較例）と、図５の方法で行った場合（Ｎ0＝０．５×Ｐ、Ｋ＝０．１）における、世代数に対する適応度の変化を示すグラフである。なお、世代数は、母集団の入れ替えを行った回数を意味する。また、適応度はプログラム性能と同義であり、適応度の値が１に近いほどプログラム性能が高いことを意味する。すなわち、適応度の値が所定値（例えば１）になるまでの世代数が学習速度を意味する。
【００７８】
図７に示すように、比較例と比べると、図５の方法で再学習を行った場合には、学習の早期収束により再学習時間の短縮を図ることができることが分かった。より具体的には、図７の例では、学習速度がおよそ４倍程度になることが分かった。
【００７９】
以上、詳細に説明したように、本実施形態によると、決定部１２１は、複数の初期個体を決定して母集団１１に含め、抽出部１２２は、母集団１１から２つの親個体を抽出する。また、生成部１２３は、遺伝的プログラミングに基づき、抽出した親個体から子個体を生成し、処理部１２４は、学習用データを用いて、子個体の適応度を算出し、算出した適応度に基づいて、画像処理に用いる画像処理プログラムを決定する、又は母集団１１を更新する。この場合に、決定部１２１は、直前に画像処理に用いる画像処理プログラムを決定したときに母集団１１に含まれていた個体の少なくとも一部を、再学習処理における初期個体の一部として決定する。これにより、本実施形態では、直前の学習で得られた画像処理プログラムを再学習時の母集団１１の初期個体の一部として用いるので、すべての初期個体をランダムに生成する場合に比べ、早期に適応度の高い個体を探索することができる。また、直前の学習で得られた個体を再学習時の初期個体の全部としては用いないため、直前の学習における過学習状態を防ぐこともできる。
【００８０】
また、本実施形態では、決定部１２１は、新たな学習用データを用いて直前の学習で得られた画像処理プログラムの適応度を算出し、算出した適応度に基づいて、母集団１１に含める画像処理プログラムを決定する。これにより、再学習において、最初から高い適応度を示す画像処理プログラムを母集団１１に含めることができるため、最終的な画像処理プログラムを短時間で決定することが可能となる。
【００８１】
また、本実施形態では、抽出部１２２は、再学習時に母集団１１に含まれている直前の学習により得られた画像処理プログラムの割合に基づいて、親個体の一方として直前の学習の個体を選択し、他方として新規に生成された個体を選択する（Ｓ１１８Ｂ）か、親個体の両方をランダムに選択する（Ｓ１１８Ｃ）か、を決定する。これにより、母集団１１に直前の学習により得られた画像処理プログラムが多く含まれる場合には、直前の学習により得られた適応度の高い画像処理プログラムを積極的に親個体として選択することで、再学習に要する時間を短縮することができる。また、母集団１１に直前の学習により得られた画像処理プログラムが然程含まれない場合には、進化過程の繰り返しにより得られた画像処理プログラムを含む母集団１１からランダムに親個体を選択することで、再学習に要する時間を短縮することができる。
【００８２】
なお、上記実施形態では、直前の学習で得られた個体を再学習の初期個体の一部として用いる場合について説明したが、これに限られるものではない。すなわち、再学習の前に得られた個体であれば、直前の学習で得られた個体でなくてもよい。
【００８３】
なお、上記実施形態では、母集団１１から親個体を２つ抽出する場合について説明したが、これに限られるものではない。例えば抽出する親個体の数は３つ以上であってもよい。なお、３つ以上の親個体を抽出する場合には、ステップＳ１１８Ｂにおいて、進化過程の交叉に用いる一対の親個体の一方を直前の学習で得られた個体から選択された個体とし、他方を新規に生成された個体から選択された個体とすればよい。
【００８４】
なお、上記実施形態では、要求精度や要求処理時間を満足するように、図５のフローチャートで用いる値ＮiやＫを適宜調整してもよい。
【００８５】
なお、上記実施形態では、ステップＳ１１８Ａにおいて、母集団１１に含まれる直前の学習により得られた画像処理プログラムの割合に基づく判断を行ったが、これに限らず、例えば、母集団１１に含まれる直前の学習により得られた画像処理プログラムの数に基づく判断を行うこととしてもよい。また、図５のステップＳ１１８Ａでは、ループ（図６のＳ２０４〜Ｓ２０８）の繰り返し回数に基づいて、ステップＳ１１８Ｂ，Ｓ１１８Ｂのいずれを実行するかを判断してもよい。
【００８６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００８７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８９】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００９０】
１００  画像処理装置（情報処理装置）
１０７ａ  カメラ（撮像装置）
１２１  決定部
１２２  抽出部
１２３  生成部
１２４  処理部
【図１】
2019049365.tif 000003
【図２】
2019049365.tif 000004
【図３】
2019049365.tif 000005
【図４】
2019049365.tif 000006
【図５】
2019049365.tif 000007
【図６】
2019049365.tif 000008
【図７】
2019049365.tif 000009
【手続補正書】
【提出日】令和1年11月11日(2019.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含める決定部と、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出する抽出部と、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成する生成部と、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する処理部と、を備え、
前記決定部は、前記処理部が過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理装置。
【請求項２】
前記決定部は、
前記第１の画像処理プログラムの適応度を、前記撮像装置により新たに撮像された画像に基づく学習用データを用いて算出し、
算出した前記適応度に基づいて、前記第１の画像処理プログラムの中から選択した画像処理プログラムを、前記初期の画像処理プログラムの一部として決定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数に基づいて、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択するか、抽出する画像処理プログラムの一部を前記第１の画像処理プログラムの中からランダムに選択し、その他の画像処理プログラムを前記画像処理プログラム群に含まれる前記第１の画像処理プログラム以外の画像処理プログラムの中からランダムに選択するか、を決定する処理を実行する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記抽出部は、前記画像処理プログラム群に含まれる前記第１の画像処理プログラムの割合又は数が所定値より小さい場合に、抽出する画像処理プログラムの全部を、前記画像処理プログラム群の中からランダムに選択する、と決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理方法であって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含め、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出し、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成し、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する、処理をコンピュータが実行し、
前記決定する処理では、過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理方法。
【請求項６】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理プログラムであって、
複数の初期の画像処理プログラムを決定し、画像処理プログラム群に含め、
前記画像処理プログラム群から少なくとも２つの画像処理プログラムを抽出し、
遺伝的プログラミングに基づき、抽出した前記画像処理プログラムから次世代の画像処理プログラムの候補を生成し、
入力画像と目標となる処理結果とを含む学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を算出し、算出した適応度に基づいて、次世代の画像処理プログラムを決定する、又は前記画像処理プログラム群を更新する、処理をコンピュータに実行させ、
前記決定する処理では、過去に次世代の画像処理プログラムを決定した際に前記画像処理プログラム群に含まれていた第１の画像処理プログラムの少なくとも一部を、前記初期の画像処理プログラムの一部として決定することを特徴とする情報処理プログラム。
【国際調査報告】
2019049365.tif 000010
2019049365.tif 000011
2019049365.tif 000012
2019049365.tif 000013