(57)【要約】【課題】演算回路構成に汎用性を持たせて回路規模のスリム化を図るとともに、フィルタ回路の切り替えが多数回行われる木構造状の処理プログラムに対応する画像処理を高速化してリアルタイムに処理を行うことが可能な画像処理装置を提供する。【解決手段】画像処理装置１は、画像データＧ0を記憶する記憶手段５と、画像データＧ0に対して演算処理を行う複数のフィルタ回路６１と、木構造状の処理プログラムに対応して設定されたフィルタ回路の選択順序に関する情報Ａに基づいてフィルタ回路６１を順番に選択するレジスタコントローラ３とを備え、フィルタ回路６１はそれぞれの遅延クロック数で出力する処理済みの画像データＧ1の先頭の出力に同期して出力同期信号ofsyncを出力し、レジスタコントローラ３は出力同期信号ofsyncを受信すると画像データＧ0、Ｇ1のデータ数に相当するクロック数をカウントした後、次のフィルタ回路６１を選択する。【選択図】図１
2007140643.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶する記憶手段と、
前記記憶手段から読み出された画像データに対してそれぞれ決められた演算処理を行う複数のフィルタ回路と、
画像フィルタを木構造状に組み合わせた処理プログラムに対応して設定されたフィルタ回路の選択順序に関する情報に基づいて使用する前記フィルタ回路を順番に選択するレジスタコントローラと
を備え、
前記フィルタ回路は、それぞれのフィルタ回路に応じた遅延クロック数で出力する処理済みの画像データの先頭のデータ出力に同期して出力同期信号を出力し、
前記レジスタコントローラはカウンタを有しており、前記出力同期信号を受信するとクロック数のカウントを開始し、前記画像データのデータ数に相当するクロック数をカウントした後、次に使用されるフィルタ回路を選択することを特徴とする画像処理装置。
【請求項２】
前記記憶手段からの読み出しおよび前記記憶手段への書き込みの順序を指定する読み出し／書き込み情報に基づいて前記記憶手段に対して前記画像データの読み出しおよび前記処理済みの画像データの書き込みを行わせるメモリコントローラを備え、
前記メモリコントローラはカウンタを有しており、前記出力同期信号を受信するとクロック数のカウントを開始し、前記画像データのデータ数に相当するクロック数をカウントすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記憶手段は、複数のメモリを備え、
前記メモリコントローラは、前記読み出し／書き込み情報に基づいて２入力のフィルタ回路に入力されるべき２つの画像データが異なるメモリに記憶されているように前記処理済みの画像データの書き込みを行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記フィルタ回路は、前記画像データを構成する画素データのうちフィルタ回路がｎ×ｎ画素の画素データについて演算処理を行う場合に、少なくとも
ｍ＝（（画像データの１行分の画素データ数）＋１）×（ｎ−１）
で表されるｍ個の画素データを保持するラインバッファ機能を有し、１クロックごとに画素データをシフトさせながら入力された画素データを含むｎ×ｎ画素の画素データに対して演算処理を行うことを特徴とする請求項１から請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
ＦＰＧＡを用いて構成され、前記フィルタ回路は、ＦＰＧＡのコンフィギュレーションデータによりそのデータを書き換え可能とされていることを特徴とする請求項１から請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
前記フィルタ回路の選択順序に関する情報と前記読み出し／書き込み情報とを遺伝的プログラミングの手法を用いた学習により自動的に獲得する学習手段を備えることを特徴とする請求項２から請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
前記フィルタ回路のうち演算処理に閾値を用いるフィルタ回路について、その閾値を変更可能とされていることを特徴とする請求項１から請求項６のいずれか一項に記載の画像処理装置。
【請求項８】
前記フィルタ回路から出力された前記処理済みの画像データの画素データの輝度値の平均を算出しまたは前記画素データの輝度値のヒストグラムを作成し、算出された平均値または最頻値に基づいてフィルタ回路の閾値を変更する計算器を備えることを特徴とする請求項１から請求項７のいずれか一項に記載の画像処理装置。
【請求項９】
前記計算器は、算出した前記平均値または前記最頻値と前記処理済みの画像データの各画素データの輝度値との関係を示すフラグを各画素データごとに記録することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記計算器は、変更した前記フィルタ回路の閾値を前記処理済みの画像データにヘッダとして追加することを特徴とする請求項８または請求項９に記載の画像処理装置。
【請求項１１】
前記画像データのヘッダに、その画像データの元となった入力画像データとその画像データの演算処理に使用されたフィルタ回路の履歴を記憶することを特徴とする請求項１０に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に係り、特に、画像中から特定対象を抽出可能な画像処理装置に関する。
【背景技術】
【０００２】
近年、ＴＶカメラやＣＣＤカメラ等の画像入力手段で被写体や風景等を撮像し、得られた動画像に画像処理を施して、その画像の中から特定の対象、例えば、環境内を移動する物体やその動き等を抽出するための画像処理装置や画像処理方法の研究が盛んに行われている。
【０００３】
本出願人らは、静止画像に対する画像処理の分野で近年提案されている、各種画像フィルタを図１８に示すように木構造状に組み合わせた処理プログラムに基づいて入力画像に画像処理を施す画像処理技術（ＡＣＴＩＴ、非特許文献１参照）を動画像に適用できるように改良して、各種画像フィルタを木構造状に組み合わせた処理プログラムに動画像中の複数種類の画像に対して入力して画像処理を行い、動画像中から特定の対象を抽出する画像処理技術の開発を行っている。
【０００４】
具体的には、例えば、車両の前方風景を撮像して得られた動画像の時系列的に連続する複数の画像データから図１９（Ａ）、（Ｂ）に例示する抽出方法で所定数の入力画像データｔ〜ｔ−３を抽出し、それらを図２０に示すような木構造状に組み合わせた処理プログラムに入力して各フィルタ処理を施して、例えば、前方風景の中の歩行者のみを抽出した出力画像データを出力するような画像処理を行う。
【０００５】
なお、図１９（Ａ）では、動画像中から現在の時刻ｔの入力画像データｔおよびそれに時系列的に連続する３フレーム分の入力画像データｔ−１〜ｔ−３を抽出する方法が示され、図１９（Ｂ）では、動画像中から現在の時刻ｔの入力画像データｔおよびそれから一定のフレーム間隔をおいた３フレーム分の入力画像データｔ−１〜ｔ−３を抽出する方法が示されている。
【非特許文献１】青木紳也、外１名、「木構造状画像変換の自動構築法ＡＣＴＩＴ」、映像情報メディア学会誌、社団法人映像情報メディア学会、１９９９年、第５３巻、第６号、ｐ．８８８〜８９４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような画像処理技術を用いた画像処理装置を車両やロボット等に搭載して画像処理を行う場合、例えば、汎用コンピュータを用いて画像処理装置を構成し、前記処理プログラムをソフトウエア処理するように構成すると、処理に時間がかかり、画像データをリアルタイムで、すなわち実用的な時間内で処理することができない。
【０００７】
そのため、前記処理プログラムをハードウエア化することが必要となるが、画像処理装置で、例えば前方風景の中から歩行者を抽出する処理を行わせる場合、図２０に示した処理プログラム、或いはそれよりさらに複雑な処理プログラムに対応するようにフィルタ回路を木構造状に組み合わせて演算回路を構築するのでは手間がかかるうえ、組み合わされて構築された１つの演算回路は１つの演算処理、すなわちこの場合は歩行者を抽出する処理しか行うことができない。
【０００８】
そして、この画像処理装置に、さらに前方風景の中から対向車両を抽出する処理や道路面に標示された車線を抽出する処理等を行わせる場合には、それぞれの処理についてフィルタ回路を組み合わせて演算回路を構築するのでは、装置の回路規模の肥大化が避けられない。
【０００９】
従って、特に画像フィルタを木構造状の組み合わせた処理プログラムに対応する画像処理を行う画像処理装置は、予め演算回路内に設けられた各種のフィルタ回路を切り替えながら演算処理を行うような汎用性を有する回路構成とせざるを得ない。
【００１０】
しかし、このようにフィルタ回路の切り替えを行う回路構成では、通常、各演算回路間のタイミング調整やフィルタ回路の切り替えのために待ち時間が発生し、しかも特に画像フィルタを木構造状の組み合わせた処理プログラムに対応する画像処理を行う場合にはこのような遅延が１つの演算処理中に何度も生じることなどから、処理速度が遅くなり、期待されたほど処理速度の向上を図ることができない場合が多い。
【００１１】
本発明は、前記事情に鑑みてなされたものであり、演算回路構成に汎用性を持たせて回路規模のスリム化を図るとともに、フィルタ回路の切り替えが多数回行われる木構造状の処理プログラムに対応する画像処理を高速化してリアルタイムに処理を行うことが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
前記の問題を解決するために、第１の発明は、
画像処理装置は、
画像データを記憶する記憶手段と、
前記記憶手段から読み出された画像データに対してそれぞれ決められた演算処理を行う複数のフィルタ回路と、
画像フィルタを木構造状に組み合わせた処理プログラムに対応して設定されたフィルタ回路の選択順序に関する情報に基づいて使用する前記フィルタ回路を順番に選択するレジスタコントローラと
を備え、
前記フィルタ回路は、それぞれのフィルタ回路に応じた遅延クロック数で出力する処理済みの画像データの先頭のデータ出力に同期して出力同期信号を出力し、
前記レジスタコントローラはカウンタを有しており、前記出力同期信号を受信するとクロック数のカウントを開始し、前記画像データのデータ数に相当するクロック数をカウントした後、次に使用されるフィルタ回路を選択することを特徴とする。
【００１３】
第１の発明によれば、画像処理装置では、記憶手段から読み出された画像データがレジスタコントローラにより選択されたフィルタ回路に入力されて演算処理が行われ、フィルタ回路から出力された処理済みの画像データが記憶手段に書き込まれるという処理が繰り返され、レジスタコントローラがフィルタ回路の選択順序に関する情報に基づいてフィルタ回路を順番に選択して切り替えることでＡＣＴＩＴの画像フィルタを木構造状に組み合わせた処理プログラムと同様の処理を行う。その際、フィルタ回路がそれぞれのフィルタ回路に応じた遅延クロック数で出力する処理済みの画像データの先頭のデータ出力に同期して出力同期信号を出力し、レジスタコントローラがその出力同期信号を受信すると画像データのデータ数に相当するクロック数をカウントした後、処理済みの画像データが記憶手段に書き込まれたことを確認することなしに次に使用されるフィルタ回路を選択する。
【００１４】
第２の発明は、第１の発明の画像処理装置において、
前記記憶手段からの読み出しおよび前記記憶手段への書き込みの順序を指定する読み出し／書き込み情報に基づいて前記記憶手段に対して前記画像データの読み出しおよび前記処理済みの画像データの書き込みを行わせるメモリコントローラを備え、
前記メモリコントローラはカウンタを有しており、前記出力同期信号を受信するとクロック数のカウントを開始し、前記画像データのデータ数に相当するクロック数をカウントすることを特徴とする。
【００１５】
第２の発明によれば、読み出し／書き込み情報に基づいて画像データの記憶手段からの読み出しや記憶手段への書き込みを行うメモリコントローラも、フィルタ回路から送信されてくる出力同期信号を受信すると画像データのデータ数に相当するクロック数をカウントした後、処理済みの画像データが記憶手段に書き込まれたことを確認することなしに次の動作に移る。
【００１６】
第３の発明は、第２の発明の画像処理装置において、
前記記憶手段は、複数のメモリを備え、
前記メモリコントローラは、前記読み出し／書き込み情報に基づいて２入力のフィルタ回路に入力されるべき２つの画像データが異なるメモリに記憶されているように前記処理済みの画像データの書き込みを行うことを特徴とする。
【００１７】
第３の発明によれば、メモリコントローラは、読み出し／書き込み情報に基づいて２入力のフィルタ回路への入力となる２つの画像データを別々のメモリに書き込み、異なるメモリから２つの画像データが読みされるようにする。
【００１８】
第４の発明は、第１から第３の発明のいずれかの画像処理装置において、
前記フィルタ回路は、前記画像データを構成する画素データのうちフィルタ回路がｎ×ｎ画素の画素データについて演算処理を行う場合に、少なくとも
ｍ＝（（画像データの１行分の画素データ数）＋１）×（ｎ−１）
で表されるｍ個の画素データを保持するラインバッファ機能を有し、１クロックごとに画素データをシフトさせながら入力された画素データを含むｎ×ｎ画素の画素データに対して演算処理を行うことを特徴とする。
【００１９】
第４の発明によれば、フィルタ回路は、入力された画像データ中の少なくとも前記ｍ個の画素データを保持し、それらを１クロックごとにシフトさせながらｎ×ｎ画素の画素データに対して演算処理を行う。
【００２０】
第５の発明は、第１から第４の発明のいずれかの画像処理装置において、ＦＰＧＡ（Field Programmable Gate Array）を用いて構成され、前記フィルタ回路は、ＦＰＧＡのコンフィギュレーションデータによりそのデータを書き換え可能とされていることを特徴とする。
【００２１】
第５の発明によれば、画像処理装置を回路の書き換え可能なデバイスであるＦＰＧＡを用いて構成し、フィルタ回路を、ＦＰＧＡのコンフィギュレーションデータによりそのデータを書き換えることで追加し、改良する。
【００２２】
第６の発明は、第２から第５の発明のいずれかの画像処理装置において、前記フィルタ回路の選択順序に関する情報と前記読み出し／書き込み情報とを遺伝的プログラミングの手法を用いた学習により自動的に獲得する学習手段を備えることを特徴とする。
【００２３】
第６の発明によれば、画像処理装置は、学習手段で、レジスタコントローラに対してフィルタ回路の選択順序を指示するフィルタ回路の選択順序に関する情報と、メモリコントローラに対して画像データの記憶手段からの読み出しおよび記録手段への書き込みの順序を指定する読み出し／書き込み情報とを遺伝的プログラミングの手法を用いた学習で求め、最適化されたフィルタ回路の選択順序に関する情報と読み出し／書き込み情報とを自動的に獲得する。
【００２４】
第７の発明は、第１から第６の発明のいずれかの画像処理装置において、前記フィルタ回路のうち演算処理に閾値を用いるフィルタ回路について、その閾値を変更可能とされていることを特徴とする。
【００２５】
第７の発明によれば、画像処理装置のフィルタ回路のうち、演算処理に閾値を用いるフィルタ回路の閾値を変更して演算処理を行わせることができる。
【００２６】
第８の発明は、第１から第７の発明のいずれかの画像処理装置において、前記フィルタ回路から出力された前記処理済みの画像データの画素データの輝度値の平均を算出しまたは前記画素データの輝度値のヒストグラムを作成し、算出された平均値または最頻値に基づいてフィルタ回路の閾値を変更する計算器を備えることを特徴とする。
【００２７】
第８の発明によれば、画像処理装置では、フィルタ回路の下流に設けられた計算器で、フィルタ回路から出力された処理済みの画像データの各画素データについてそれらの輝度値の平均を算出し、またはそれらの輝度値のヒストグラムを作成し、その平均値や最頻値に基づいてフィルタ回路の閾値を変更する。
【００２８】
第９の発明は、第８の発明の画像処理装置において、前記計算器は、算出した前記平均値または前記最頻値と前記処理済みの画像データの各画素データの輝度値との関係を示すフラグを各画素データごとに記録することを特徴とする。
【００２９】
第９の発明によれば、画像処理装置では、フィルタ回路の下流に設けられた計算器で、算出した処理済みの画像データの各画素データの輝度値の平均値や輝度値のヒストグラムから算出された輝度値の最頻値に対して、例えば、処理済みの画像データの各画素データが平均値等以上であるかそれより小さいかに応じて各画素データごとにフラグを記録する。
【００３０】
第１０の発明は、第８または第９の発明の画像処理装置において、前記計算器は、変更した前記フィルタ回路の閾値を前記処理済みの画像データにヘッダとして追加することを特徴とする。
【００３１】
第１０の発明によれば、画像処理装置では、フィルタ回路の下流に設けられた計算器で、算出した処理済みの画像データの各画素データの輝度値の平均値や輝度値のヒストグラムから算出された輝度値の最頻値に基づいて変更したフィルタ回路の閾値を、その処理済みの画像データのヘッドに書き込む。
【００３２】
第１１の発明は、第１０の発明の画像処理装置において、前記画像データのヘッダに、その画像データの元となった入力画像データとその画像データの演算処理に使用されたフィルタ回路の履歴を記憶することを特徴とする。
【００３３】
第１１の発明によれば、画像処理装置は、ヘッダにその画像データの元となった入力画像データとその後の演算処理に使用されたフィルタ回路の履歴が記録された画像データに対して処理を行う。
【発明の効果】
【００３４】
第１の発明によれば、フィルタ回路の選択順序に関する情報に基づいて使用するフィルタ回路を順番に選択して切り替えながら処理を行うため、同一種のフィルタ回路を重複して備える必要がなく、装置を肥大化させないで汎用化することができ、装置の回路規模のスリム化を図ることが可能となる。
【００３５】
また、フィルタ回路の選択順序に関する情報に従って処理を行うことで、それに対応する画像フィルタを木構造状に組み合わせた処理プログラムによる画像処理を実現することが可能となるとともに、処理プログラムによるソフトウエア処理ではなく、それと同等のフィルタ回路の選択順序に関する情報に従ってハードウエア処理を行うため、画像処理装置の画像処理速度が格段に速くなる。
【００３６】
さらに、レジスタコントローラのタイミング制御をフィルタ回路からの出力同期信号とカウンタとでコントロールし、出力同期信号の入力後画像データの画素データ数に相当するクロック数をカウントした段階で、処理済みの画像データの記憶手段への書き込みの終了等を確認することなく次の演算処理を行うフィルタ回路を選択するため、画像データの記録手段からの読み出しや記録手段への書き込み等を監視し確認する必要がなく、タイムロスの発生なしに処理を実行することができ、装置の処理速度がより高速化し、装置の処理がリアルタイム化される。
【００３７】
第２の発明によれば、レジスタコントローラと同様に、メモリコントローラもそのタイミング制御をフィルタ回路からの出力同期信号とカウンタとでコントロールされ、出力同期信号の入力後画像データの画素データ数に相当するクロック数をカウントした段階で、処理済みの画像データの記憶手段への書き込みの終了等を確認することなく次の動作に移るため、画像データの記録手段からの読み出しや記録手段への書き込み等を監視し確認する必要がなく、タイムロスの発生なしに処理を実行することができ、前記第１の発明の効果がより的確に発揮される。
【００３８】
第３の発明によれば、２入力のフィルタ回路に対して異なるメモリから２つの画像データを読み出すため、同一のメモリから２つの画像データを読み出す際のタイムロスをなくすことができ、装置の処理速度をより高速化させることが可能となり、前記各発明の効果がより効果的に発揮される。
【００３９】
第４の発明によれば、前記各発明の効果に加え、非常に大きなデータ数を有する画像データの中から演算処理に必要な画素データをその都度入手せずにフィルタ回路に画像データを流し込むことで１クロックごとに１画素ずつ演算処理を行うことができ、演算速度の迅速化を図ることが可能となるとともにデータ処理のタイミング制御がより簡単になる。
【００４０】
第５の発明によれば、前記各発明の効果に加え、フィルタ回路の追加や改良を容易にかつ随時適切なタイミングで行うことが可能となり、装置のフィルタ処理機能を的確に変更することが可能となる。
【００４１】
第６の発明によれば、前記各発明の効果に加え、人為的に形成する場合には通常非常に手間がかかるフィルタ回路の選択順序に関する情報と読み出し／書き込み情報の形成を、前方風景の中から歩行者を抽出する等の装置が達成すべき目標にあった目標画像や重み画像を適切に作成し教師データとして学習手段に入力することで、容易に行うことが可能となり、しかも自動的に最適化されたフィルタ回路の選択順序に関する情報と読み出し／書き込み情報を得ることができる。
【００４２】
第７の発明によれば、フィルタ回路の演算機能を固定させないために１種類のフィルタ回路について閾値が異なる複数種類のフィルタ回路を設ける場合があるが、本発明のように閾値を可変とし、随時かつ適宜にその値を変更できるようにすることで、１個のフィルタ回路に複数種類のフィルタ回路の演算機能を奏させることができるため、フィルタ回路の数を減らすことが可能となり、装置の回路規模のスリム化を図るという点で前記各発明の効果をより有効に発揮させることができる。
【００４３】
第８の発明によれば、前記各発明の効果に加え、前記第７の発明等と同様に、１個のフィルタ回路に複数種類のフィルタ回路の演算機能を奏させることで、フィルタ回路の数を減らすことができ、装置の回路規模のスリム化を図ることが可能となるとともに、例えば、算出された輝度値の平均値や最頻値をフィルタ回路に還元してそれらの値を閾値とするように閾値の変更を行うことで、画像データが全体的に暗い画像であるような場合にBinarize（二値化）フィルタ回路でほとんどの画素の輝度値を０にしてしまうような演算処理が行われることを防止することができ、処理する画像データに対してその輝度値に応じて適切に演算処理を行うことが可能となる。
【００４４】
第９の発明によれば、その処理済みの画像データが記憶手段に記憶された後、広領域フィルタ等のグループ化を用いるフィルタ回路に入力された際に、フィルタ回路がそれらのフラグを参照してグループ化を行うことができるため、演算処理をより迅速化することが可能となり、前記各発明の効果をより効果的に発揮させることができる。
【００４５】
第１０の発明によれば、前記各発明の効果に加え、その処理済みの画像データが記憶手段に記憶された後、再びフィルタ回路に入力された際に、フィルタ回路がそのヘッダに記録された閾値を参照して自らの閾値を変更してその画像データに対して演算処理を行うことができ、それぞれの画像データの輝度値に応じて個別に適切な演算処理を行うことが可能となる。
【００４６】
第１１の発明によれば、例えば、フィルタ回路が現在入力されてきた画像データのヘッダを参照して、以前に同じ履歴を有する画像データに対して演算処理を行ったことがあれば、現在入力されてきた画像データに対する演算処理を行わずに、記憶手段に記憶されている同じ履歴を有しそのフィルタ回路により演算処理された以前の画像データを読み出して活用することが可能となり、演算時間が短縮され、装置の処理速度の高速化を図ることが可能となり、前記各発明の効果をより有効に発揮させることができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明に係る画像処理装置の実施の形態について、図面を参照して説明する。
【００４８】
本実施形態では、画像処理装置がＦＰＧＡ評価用ボード（ALTERA社製）上に構築された回路と外付けのＳＲＡＭ（Static RAM）とで構成される場合について述べるが、これに限定されない。
【００４９】
本実施形態では、画像処理装置１は、図１に示すように、プロセッサ２、レジスタコントローラ３、メモリコントローラ４、ＲＡＭ（Random Access Memory）５１およびＳＲＡＭ５２を備える記憶手段５、複数のフィルタ回路６１を備えるフィルタ手段６、および学習手段７を備えている。
【００５０】
本実施形態では、プロセッサ２には、ＦＰＧＡ内に構築することができる組み込み用プロセッサが用いられている。プロセッサ２は、装置外部から取り込んだ図１９（Ａ）、（Ｂ）に示したような複数の入力画像データｔ、ｔ−１、…、ｔ−ｎと予め設定されたそれらの入力画像データｔ、ｔ−１、…、ｔ−ｎを保存すべきＳＲＡＭ５２のアドレスとをメモリコントローラ４を介してＳＲＡＭ５２に送信してＳＲＡＭ５２の所定のアドレスに複数の入力画像データｔ、ｔ−１、…、ｔ−ｎを記憶させるようになっている。また、プロセッサ２は、画像処理が完了すると最終的な処理済みの画像データすなわち出力画像データＧeをメモリコントローラ４から受け取って装置外部に出力するようになっている。
【００５１】
また、プロセッサ２は、予め学習により得られた最適化されたフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂをレジスタコントローラ３に送信するようになっている。なお、フィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとを人為的に作成し装置外部からプロセッサ２を介してレジスタコントローラ３に入力するように構成することも可能である。
【００５２】
ここで、フィルタ回路の選択順序に関する情報Ａとは、例えば前述した図２０に示したような画像フィルタを木構造状に組み合わせた処理プログラムに従って画像処理を画像処理装置１に行わせるために、図２（Ａ）に示すように処理に用いられるフィルタ回路６１の順番をフィルタ回路６１の番号の数値列として配列されたものである。
【００５３】
また、読み出し／書き込み情報Ｂとは、記憶手段５からの画像データの読み出しおよび処理済みの画像データの記憶手段５への書き込みの順序を指定するための情報であり、本実施形態では、図２（Ｂ）に示すように記憶手段５であるＲＡＭ５１またはＳＲＡＭ５２のアドレスの列からなっている。
【００５４】
すなわち、本実施形態では、読み出し／書き込み情報Ｂは、図２（Ａ）に示したフィルタ回路の選択順序に関する情報Ａのそれぞれの番号に対応して、そのフィルタ回路６１に入力させる画像データＧ0が記憶されている記憶手段５の１つまたは２つのアドレス、すなわち読み出しアドレスと、フィルタ回路６１から出力された処理済みの画像データＧ1が書き込まれるべき記憶手段５のアドレス、すなわち書き込みアドレスとが１組とされて配列されている。また、本実施形態では、読み出し／書き込み情報Ｂの末尾には、図２（Ｂ）では−で示される終了信号が挿入されている。
【００５５】
図２の例では、図２（Ａ）の番号０、６、８、…のフィルタ回路はそれぞれ１入力のフィルタ回路であり、例えば、番号０のフィルタ回路には画像データＧ0が読み出しアドレス０から読み出されて入力され、番号０のフィルタ回路から出力された処理済みの画像データＧ1が書き込みアドレス４に書き込まれることを意味している。また、番号２３のフィルタ回路は２入力のフィルタ回路であり、読み出しアドレスであるアドレス４とアドレス７とからそれぞれ画像データＧ0が読み出されて番号２３のフィルタ回路に入力され、番号２３のフィルタ回路から出力された処理済みの画像データＧ1が書き込みアドレス５に書き込まれることを意味している。
【００５６】
このようにフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとを組み合わせることで、画像フィルタが木構造に組み合わされた処理プログラムを実行することと同じ画像処理を行うことができる。すなわち、例えば図２に示したフィルタ回路の選択順序に関する情報Ａおよび読み出し／書き込み情報Ｂに従って処理を行うと、図３に示すような木構造状の処理プログラムによる画像処理と同様の画像処理が実行される。
【００５７】
なお、図２では、フィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとを別体の数値列として記載したが、１つにまとめた数値列情報とすることも可能である。また、読み出し／書き込み情報Ｂは、装置の形態によっては、例えば記憶手段５を指定するスイッチ等の情報が含まれる場合もある。
【００５８】
レジスタコントローラ３は、プロセッサ２から前記のフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとが送信されてくると、それらを自らの図示しないレジスタに保存するようになっている。
【００５９】
また、レジスタコントローラ３は、フィルタ回路の選択順序に関する情報Ａに基づいて所定のタイミングで制御信号としてフィルタ回路６１の番号を順番にフィルタ手段６に送信してフィルタ手段６の中からその番号のフィルタ回路６１を選択するとともに、制御信号をフィルタ手段６に送信するごとに、それと同時に読み出し／書き込み情報Ｂの中からそのフィルタ回路６１に対応する読み出し／書き込みアドレスをメモリコントローラ４に送信するようになっている。
【００６０】
すなわち、前記図２の例で言えば、レジスタコントローラ３は、例えばフィルタ回路の選択順序に関する情報Ａの最初のフィルタ番号０を制御信号としてフィルタ手段６に送信すると同時に読み出し／書き込み情報Ｂの中のフィルタ番号０に対応する読み出し／書き込みアドレスである（０、４）をメモリコントローラ４に送信し、次にフィルタ番号６を送信するタイミングでは、それと同時にメモリコントローラ４にそのフィルタ番号６に対応する読み出し／書き込みアドレスである（４、５）を送信するようになっている。フィルタ番号２３を送信するタイミングでは、それと同時にメモリコントローラ４にそのフィルタ番号２３に対応する読み出し／書き込みアドレスである（４、７、５）を送信するようになっている。
【００６１】
メモリコントローラ４は、レジスタコントローラ３からの前記読み出し／書き出しアドレスを受信すると、その中の読み出しアドレスを記憶手段５に送信して所定の画像データＧ0を読み出してフィルタ手段６に出力させると同時に、書き込みアドレスを自らの図示しないレジスタに保存するようになっている。すなわち、読み出し／書き込みアドレスが２つのアドレスの組である場合には前のアドレスを読み出しアドレスとして送信して後のアドレスを書き込みアドレスとして保存し、また、読み出し／書き込みアドレスが３つのアドレスの組である場合には前の２つのアドレスを読み出しアドレスとしてそれぞれ送信して最後のアドレスを書き込みアドレスとして保存するようになっている。
【００６２】
また、メモリコントローラ４は、フィルタ回路６１から出力された処理済みの画像データＧ1を受信すると、レジスタから書き込みアドレスを読み出してその処理済みの画像データＧ1ととともに記憶手段５に送信して所定のアドレスへの書き込みを行わせるようになっている。
【００６３】
メモリコントローラ４は、レジスタコントローラ３から送信されてきた読み出し／書き出しアドレスの末尾が終了信号である場合には、フィルタ回路６１から出力されてきた処理済みの画像データＧ1を出力画像データＧeとしてプロセッサ２に送信するようになっている。
【００６４】
なお、画像データＧ0、Ｇ1の送信は、画像データＧ0、Ｇ1が例えば２５６×２５６画素の輝度値（０〜２５５）からなる画素データであれば、１クロックで１画素データの速度で、画像データＧ0、Ｇ1の第０行目の２５６個の画素データが第０列目、第１列目、…、第２５５列目の順に送信され、続いて第１行目の２５６個の画素データが順番に送信され、最終的に第２５５行目の２５６個の画素データが順番に送信されるようにして行われるようになっている。
【００６５】
記憶手段５は、メモリコントローラ４から送信されてくる処理済みの画像データＧ1を指定されたアドレスに書き込み、あるいは送信されてくるアドレスに記憶された画像データＧ0をフィルタ手段６に送信するようになっている。本実施形態では、記憶手段５であるＲＡＭ５１およびＳＲＡＭ５２にはデュアルポートＲＡＭ（dual port RAM）が用いられており、画像データＧ0、Ｇ1の書き込みと読み出しとを同時に行うことができるようになっている。
【００６６】
フィルタ手段６は、入力された画像データＧ0に対して決められた演算処理を行う複数のフィルタ回路６１や図示しないマルチプレクサ等で構成されている。本実施形態では、フィルタ手段６には、図４に示す各種のフィルタ回路が設けられており、これらのフィルタ回路の中でBinarize、LightEdge、DarkEdge 、LightPixel、DarkPixel、Inflation、Deflationの演算処理に閾値を用いる７個のフィルタ回路については、それぞれのフィルタ回路につき閾値が異なる３種類のフィルタ回路が設けられている。
【００６７】
なお、このようにそれぞれのフィルタ回路につき閾値が異なる複数のフィルタ回路を設ける代わりに、これらの閾値を装置外部からプロセッサ２を介してフィルタ手段６に入力して、フィルタ回路の閾値を変更するように構成することも可能である。また、フィルタ回路６１としては、この他にも広領域フィルタ等のグループ化を用いるフィルタや各種マスクフィルタ等の各種フィルタ回路を用いることができる。また、本実施形態では、３×３画素に対して演算処理を行うフィルタ回路６１が用いられているが、例えば５×５画素等に対して演算処理を行うフィルタ回路を用いてもよい。
【００６８】
また、本実施形態のように画像処理装置１がＦＰＧＡを用いて構成されていれば、ＦＰＧＡのコンフィギュレーションデータでフィルタ回路６１のデータを書き換えることで随時種々の機能を有するフィルタ回路を追加し或いは改良することが可能となる。
【００６９】
フィルタ手段６では、レジスタコントローラ３から順番に送信されてくる制御信号としてのフィルタ回路６１の番号に応じてその番号のフィルタ回路６１が選択され、その選択されたフィルタ回路６１が記憶手段５から送信されてくる画像データＧ0を演算処理するようになっている。
【００７０】
また、本実施形態のフィルタ手段６には、ラインバッファ機能を有する図示しない２つのシフトレジスタが設けられており、各フィルタ回路６１はこれらのシフトレジスタを用いて演算処理を行うようになっている。なお、１入力のフィルタ回路は１つのシフトレジスタを、２入力のフィルタ回路は同時に２つのシフトレジスタをそれぞれ用いて演算処理を行うようになっている。
【００７１】
本実施形態のフィルタ手段６における演算処理方法について、１入力のフィルタ回路６１の場合を例に具体的に説明すると、フィルタ手段６は、図５（Ａ）〜（Ｃ）に示すように、クロックごとに入力されてくる画像データＧ0の画素データを順々にシフトレジスタ８に入力するようになっており、シフトレジスタ８はこれらの画素データを順々にシフトさせるようになっている。なお、図５で００、０１、０２はそれぞれ画像データＧ0の第０行第０列目、第０行第１列目、第０行第２列目の画素データを表している。
【００７２】
フィルタ回路６１は、先頭の画素データが図６に示すシフトレジスタ８の５１３番地にシフトしたクロックタイミングで、２５６番地の画素データを中心に０、１、２５５、２５６、２５７、５１１、５１２、５１３の各番地の画素データとこのクロックタイミングでフィルタ手段６に入力された画素データとの３×３画素の画素データを用いて演算処理を行うようになっている。
【００７３】
また、フィルタ回路６１は、次のクロックにあわせて演算処理の結果を処理済みの画素データとして出力するとともに、１番地ずつシフトした画素データに対して前記と同番地の８個の画素データおよびそのクロックタイミングで入力された画素データを用いて演算処理を行う。このようにして１クロックごとに演算処理と処理済みの画素データの出力とが続けられるようになっている。
【００７４】
なお、本実施形態では、画像データＧ0の端部の画素データ、すなわち第０行目と第２５５行目および第０列目と第２５５列目の画素データに関しては３×３画素のフィルタ処理を行うことができないため、それらの画素データは例えば輝度値を２５５とする等の処理を施して出力するようになっている。
【００７５】
また、本実施形態では、図６に示したように、シフトレジスタ８は０番地から５１３番地まで５１４個の画素データを保持できるラインバッファ機能を有しているが、この５１４個の画素データ数は、本実施形態の画像データＧ0が２５６×２５６画素の大きさを持つことから、画像データＧ0の２行分の画素データ数（２５６×２）＋２に相当する。また、前述したように、フィルタ回路６１として例えば５×５画素に対して演算処理を行うフィルタ回路等を用いることも可能であり、フィルタ回路６１がｎ×ｎ画素の画素データについて演算処理を行うものであれば、図７に示すように、少なくとも
ｍ＝（画像データＧ0の１行分の画素データ数）×（ｎ−１）＋（ｎ−１）
＝（（画像データＧ0の１行分の画素データ数）＋１）×（ｎ−１）    …（１）
で表されるｍ個の画素データを保持するラインバッファ機能を有するシフトレジスタ８を設けることで前記と同様に１クロックごとに画素データをシフトさせながら入力された画素データを含むｎ×ｎ画素の画素データに対して演算処理を行うことが可能となる。
【００７６】
一方、各フィルタ回路６１は、画像データＧ0が入力されると、それぞれのフィルタ回路で決まった遅延クロック数を経た後、処理済みの画像データＧ1を出力するようになっている。そして、フィルタ回路６１から出力された処理済みの画像データＧ1はメモリコントローラ４に送信されるようになっている。
【００７７】
ここで、図８および図９に基づいて、本実施形態の画像処理装置１における処理タイミングを制御する入力同期信号および出力同期信号について説明する。なお、本実施形態では、この入力同期信号と出力同期信号は、前述した画像データＧ0、Ｇ1やアドレスとは別の経路で送信されるように構築されている。図１では入力同期信号と出力同期信号の経路が破線で示されている。
【００７８】
前述したように、フィルタ手段６のフィルタ回路６１は、レジスタコントローラ３から送信されてくる制御信号Ｓであるフィルタ回路の番号により選択され、画像データＧ0が入力されると、シフトレジスタ８を用いてそれぞれ決められた演算処理を行って処理済みの画像データＧ1を出力するが、本実施形態では、フィルタ回路６１は、画像データＧ0の先頭の画素データと同期して送信されてくる入力同期信号ifsyncの入力があって初めて演算処理を開始するようになっている。
【００７９】
この入力同期信号ifsyncは、メモリコントローラ４で生成される。すなわち、メモリコントローラ４は、記憶手段５に対して読み出しアドレスを送信した後、１クロック遅延させてフィルタ手段６に入力同期信号ifsyncを送信するようになっている。なお、この１クロック分の遅延は記憶手段５における画像データＧ0の読み出しにかかるクロック分の遅延であり、入力同期信号ifsyncが画像データＧ0の先頭の画素データと同期してフィルタ回路６１に入力するようにするための遅延である。また、メモリコントローラ４から読み出しアドレスを送信すると同時に入力同期信号ifsyncを出力し、フィルタ回路６１に入力される途中で１クロック分遅延させるように構成することも可能である。
【００８０】
フィルタ回路６１は、入力同期信号ifsyncが入力されるとそれと同期されて入力される画像データＧ0の演算処理を開始し、所定の遅延クロック数だけ遅延して処理済みの画像データＧ1の先頭の画素データを出力するようになっている。この遅延クロック数は、各フィルタ回路６１に応じて異なるクロック数であり、前記（１）式においてｍで表されるシフトレジスタ８内での画素データのシフトに要するクロック数と各フィルタ回路固有の処理クロック数とをあわせたクロック数である。
【００８１】
なお、このフィルタ回路固有の処理クロック数は、各フィルタ回路６１にそれぞれ記憶されている。また、画像データＧ0の先頭にヘッダがある場合には、遅延ブロック数には、さらにヘッダ分のクロック数が追加される。また、この場合、画像データＧ0の先頭または処理済みの画像データＧ1の先頭とは、それらの画像データのヘッダの先頭を意味する。
【００８２】
フィルタ回路６１は、処理済みの画像データＧ1の先頭の画素データが出力する際に、それと同期して出力同期信号ofsyncを出力するようになっている。この出力同期信号ofsyncは、図１に示すように、出力と同時にレジスタコントローラ３とメモリコントローラ４に入力されるようになっている。
【００８３】
メモリコントローラ４は、出力同期信号ofsyncを受信すると、前述したように、レジスタから書き込みアドレスを読み出して出力同期信号ofsyncと同期して送信されてくる処理済みの画像データＧ1とその書き込みアドレスとを記憶手段５に送信して所定のアドレスへの書き込みを行わせるようになっている。
【００８４】
また、メモリコントローラ４には、図示しないカウンタが設けられており、メモリコントローラ４は、出力同期信号ofsyncを受信すると前記処理を行うと同時にカウントを開始し、処理済みの画像データＧ1の画素データ数に相当するクロック数、すなわち２５６×２５６の画素データ数とヘッダ等のデータ数を合わせたデータ数に相当するクロック数をカウントし、前記所定のクロック数をカウントし終わった時点で書き込みが終了したと判断するようになっている。
【００８５】
レジスタコントローラ３も同様に図示しないカウンタを有しており、出力同期信号ofsyncを受信するとクロック数のカウントを開始し、画像データＧ0の画素データ数に相当するクロック数をカウントした後、前記フィルタ回路の選択順序に関する情報Ａに基づいて制御信号として次の演算処理を行うフィルタ回路６１の番号をフィルタ手段６に送信すると同時に、メモリコントローラ４に前記読み出し／書き込み情報Ｂの中からそのフィルタ回路６１に対応する読み出し／書き込みアドレスの情報を送信するようになっている。
【００８６】
メモリコントローラ４は、レジスタコントローラ３から読み出し／書き込みアドレスの情報が送信されてくると、自らのレジスタに書き込みアドレスを保存し、記憶手段５に対して読み出しアドレスを送信すると同時に或いは１クロック遅延させてフィルタ手段６に入力同期信号ifsyncを送信するようになっている。
【００８７】
本実施形態の画像処理装置１では、以上の処理が繰り返されて次々とフィルタ回路６１を切り替えながら画像処理が行われるようになっている。
【００８８】
ところで、本実施形態の画像処理装置１は、前述したように学習手段７を備えている。学習手段７は、以上に述べた画像処理装置１の実働に先立って予め遺伝的プログラミングの手法を用いて最適化された前記フィルタ回路の選択順序に関する情報Ａおよび前記読み出し／書き込み情報Ｂ、すなわち後述するＡsuit、Ｂsuitを自動的に獲得するための回路である。
【００８９】
図１０は、学習手段の構成を示すブロック図であり、学習手段７は、初期個体生成手段７１と、適応度評価手段７２と、終了判定手段７３と、親選択手段７４と、交叉手段７５と、突然変異手段７６とを備えている。
【００９０】
初期個体生成手段７１は、プロセッサ２を介して装置外部から受信した学習開始信号に応じて、まず複数のフィルタ回路６１をランダムに並べた図２（Ａ）に示したようなフィルタ回路の選択順序に関する情報Ａiを例えば１００個体等の一定数生成させ、続いてその各々の個体に対して整合性があるアドレス列をランダムに並べた図２（Ｂ）に示したような読み出し／書き込み情報Ｂiを生成させてそれぞれ対応するフィルタ回路の選択順序に関する情報Ａiに対応づけて、組個体（Ａi、Ｂi）を生成させるように構成されている。
【００９１】
フィルタ回路の選択順序に関する情報Ａiを生成、進化させる規則として、本実施形態では、初期個体のみならず進化過程を通じてフィルタ回路６１の番号の数が最大でも４０を超えないように設定されている。
【００９２】
また、読み出し／書き込み情報Ｂについての整合性があるアドレス列とは、１入力および２入力のフィルタ回路６１の番号に対応する読み出し／書き込みアドレスがそれぞれ２個および３個のアドレスからなること、１つのフィルタ回路６１の番号に対応する読み出し／書き込みアドレスが同一のアドレスでないこと、フィルタ回路６１の番号に対応する読み出しアドレスが入力画像データｔ〜ｔ−３を含む画像データＧ0が記憶されているアドレスであること、フィルタ回路６１の番号に対応する書き込みアドレスが上書き保存されることなく後のフィルタ回路６１への読み出しアドレスになっていること等の条件を満たすアドレス列であることを意味する。
【００９３】
なお、前述したように、本実施形態では、図１９（Ａ）または図１９（Ｂ）に示した抽出方法で動画像から抽出された複数の入力画像データｔ〜ｔ−３を保存すべきＳＲＡＭ５２のアドレスは予め設定されている。
【００９４】
初期個体生成手段７１には、適応度評価手段７２が接続されており、初期個体生成手段７１で生成された各組個体（Ａi、Ｂi）からなる初期個体が適応度評価手段７２に送信されるようになっている。
【００９５】
適応度評価手段７２では、各組個体（Ａi、Ｂi）について複数の入力画像データｔ〜ｔ−３を入力して最終的な処理済みの画像データＧiすなわち出力画像データＧeiを得るシミュレーションがそれぞれ実行され、シミュレーションにより得られた出力画像データＧeiと目標画像Ｔとが比較されて各組個体の適応度Ｅiの評価計算がそれぞれ行われるように構成されている。
【００９６】
ここでは、画像処理装置１が車両の前方風景の中から歩行者を抽出する装置であり、入力画像データｔ〜ｔ−３を図１９（Ａ）に示したように動画像中から抽出された連続する４フレーム分の画像データを入力画像データｔ〜ｔ−３とする場合を例として説明する。
【００９７】
適応度評価手段７２には、シミュレーションにおける処理対象となる図１１に示すような入力画像データｔ〜ｔ−３と、教師データとして入力画像データｔに基づいて予め作成された図１２に示すような目標画像Ｔと、適応度Ｅiの評価計算に用いられる図１３に示すような重み画像Ｗとが学習に先立って入力され、それらは適応度評価手段７１の図示しない記憶手段に記憶されるようになっている。なお、図１１では入力画像データｔおよび入力画像データｔ−３のみが示されている。
【００９８】
目標画像Ｔとは、フィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂの組が出力すべき画像をいう。図１２に示す目標画像Ｔでは、抽出領域の画素データの輝度値が２５５とされ、非抽出領域の画素データの輝度値が０とされている。
【００９９】
また、重み画像Ｗとは、出力画像データＧeiと目標画像Ｔとの距離｜Ｇei−Ｔ｜を画素ごとに重み付けするための重みが画素ごとに定義された画像をいい、画素ごとの重みは、構築すべき処理プログラムの目的により適宜決められる。通常、出力画像データＧeiが目標画像Ｔと一致することが強く求められる画素領域では大きな値が、また出力画像データＧeiと目標画像Ｔとの一致が強く要求されない画素領域では小さな値が設定され、本実施形態では、目標画像Ｔの抽出領域と非抽出領域の面積比の反比となるように、重み画像Ｗの抽出領域の画素については重みが１／１２、非抽出領域の画素については重みが１／２５６とされている。
【０１００】
適応度評価手段７２は、まず、入力画像データｔ〜ｔ−３とそれらを保存すべきＳＲＡＭ５２のアドレスとをプロセッサ２に出力してＳＲＡＭ５２に送信してＳＲＡＭ５２の所定のアドレスに入力画像データｔ〜ｔ−３を記憶させ、組個体（Ａi、Ｂi）をプロセッサ２を介してレジスタコントローラ３に送信して前記実働の場合と同様に画像処理を行わせ、メモリコントローラ４からプロセッサ２に送信されてきた出力画像データＧeiを受け取る。続いてＲＡＭ５１とＳＲＡＭ５２をリセットした後、次の組個体（Ａi+1、Ｂi+1）についても同様にして出力画像データＧei+1を得るという作業をすべての組個体（Ａi、Ｂi）について行うようになっている。なお、このように学習時にはプロセッサ２は出力画像データＧeiを装置外部には出力せず、学習手段７に送信するようになっている。
【０１０１】
また、適応度評価手段７２は、各組個体（Ａi、Ｂi）の出力画像データＧeiを受け取ると、各組個体（Ａi、Ｂi）について下記（２）式に基づいて適応度Ｅiの評価計算を行い、各組個体（Ａi、Ｂi）に適応度Ｅiを割り当てるようになっている。
【０１０２】
【数１】
2007140643.tif 000003
【０１０３】
なお、動画像中の他のフレーム部分から別の入力画像データのセットを作成して、複数の入力画像データのセットを遺伝的プログラミングによる学習に用いるように構成することも可能である。
【０１０４】
適応度評価手段７２には、終了判定手段７３が接続されており、適応度評価手段７２で適応度Ｅiが評価計算された各組個体（Ａi、Ｂi）が終了判定手段７３に送信されるようになっている。
【０１０５】
本実施形態では、終了判定手段７３には、予め目標適応度Ｅｑが入力されて保存されており、終了判定手段７３は、各組個体（Ａi、Ｂi）の中で適応度Ｅiが目標適応度Ｅｑを超えた組個体があるか否かを判定し、適応度Ｅiが目標適応度Ｅｑを超えた組個体（Ａi、Ｂi）があればそれらの組個体（Ａi、Ｂi）の中で適応度Ｅiが最も大きな組個体を最適化されたフィルタ回路の選択順序に関する情報Ａsuitおよび読み出し／書き込み情報Ｂsuitとしてプロセッサ２に出力して進化過程を終了するようになっている。
【０１０６】
また、終了判定手段７３は目標適応度Ｅｑを超える適応度Ｅiを有する組個体（Ａi、Ｂi）がないと判定すると、すべての組個体（Ａi、Ｂi）を終了判定手段７３に接続された親選択手段７４に送信するようになっている。
【０１０７】
親選択手段７４は、各組個体（Ａi、Ｂi）の中から適応度Ｅiの値が大きい単数または複数の組個体をエリートとして記憶手段７７に保存するとともに、それらの組個体を複製した組個体と他の組個体の中から適応度Ｅiに基づいてルーレット選択や期待値選択、ランキング選択、トーナメント選択等の方法で次世代に残すべき１００個体の組個体（Ａi、Ｂi）の選択およびそれらの処理プログラムの増殖を行うように構成されている。
【０１０８】
親選択手段７４で選択、増殖された１００個体の組個体（Ａi、Ｂi）は、次の交叉手段７５に送信されて交叉が行われるようになっている。交叉手段７５では、通常遺伝的プログラミングで行われる交叉方法により所定の割合で組個体（Ａi、Ｂi）の交叉が行われるようになっている。
【０１０９】
交叉手段７５で生成された１００個体の子世代の組個体（Ａi、Ｂi）は、次の突然変異手段７６に送信され、突然変異手段７６では、各組個体（Ａi、Ｂi）について通常遺伝的プログラミングで行われる突然変異の方法により所定の割合で組個体（Ａi、Ｂi）にフィルタ回路の番号やアドレスの変異、挿入、欠失等が発生するようになっている。
【０１１０】
なお、前記交叉手段７５および突然変異手段７６では、前述したように、フィルタ回路の選択順序に関する情報Ａiについてはフィルタ回路の番号の数が４０を超えるような交叉や突然変異が禁止され、また、読み出し／書き込み情報Ｂiについては対となるフィルタ回路の選択順序に関する情報Ａiとの整合性を失うような交叉や突然変異が禁止される等の制限が加わる。
【０１１１】
突然変異手段７６での処理を終えた各組個体（Ａi、Ｂi）は再び評価値算出手段７２に戻されて、シミュレーションにより適応度Ｅiが評価計算された後、終了判定手段７３に送られて、記憶手段７７に保存された前世代のエリート組個体とともに終了判定が行われるようになっている。
【０１１２】
学習手段７では、最適化されたフィルタ回路の選択順序に関する情報Ａsuitおよび読み出し／書き込み情報Ｂsuitが得られるまで以上の進化過程が繰り返されるようになっている。
【０１１３】
なお、本実施形態では、学習手段７で最適化されたフィルタ回路の選択順序に関する情報Ａsuitと読み出し／書き込み情報Ｂsuitとを自動的に獲得する場合について述べたが、フィルタ手段６のフィルタ回路６１のうち演算処理に閾値を用いるフィルタ回路については、前記と同様の方法を用いて学習手段７で最適化された閾値を自動的に獲得するように構成することも可能である。
【０１１４】
また、学習手段７は実際にはプロセッサ２内に構築されるが、上記の計算をすべてプロセッサ２で行うと計算負荷がかかるため、装置内にプロセッサ２とは別体のプロセッサ等の演算手段を設け、その演算手段で適応度評価手段７２における適応度の評価計算のみを実行させるように構成することも可能である。
【０１１５】
次に、本実施形態に係る画像処理装置１の作用について説明する。
【０１１６】
本実施形態の画像処理装置１のプロセッサ２、レジスタコントローラ３、メモリコントローラ４、記憶手段５としてのＲＡＭ５１およびＳＲＡＭ５２、フィルタ手段６およびフィルタ回路６１、および学習手段７のそれぞれの作用については、前述したそれぞれの構成において述べられているので、ここでは説明を省略する。
【０１１７】
画像処理装置１の実働時には、プロセッサ２は、装置外部から入力された複数の入力画像データｔ、ｔ−１、…、ｔ−ｎをＳＲＡＭ５２に送信し、装置外部或いは学習手段７から入力されたフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとをレジスタコントローラ３に送信した後は、レジスタコントローラ３に処理開始信号を発すること以外は、メモリコントローラ４から出力画像データＧeが送信されてくるまで画像データＧ0、Ｇ1の処理や送受信等の管理には関与しない。
【０１１８】
レジスタコントローラ３は、フィルタ手段６に制御信号Ｓであるフィルタ回路６１の番号を送信してフィルタ回路６１の動作を制御し、メモリコントローラ４には読み出し／書き込みアドレスの情報を発信して動作を制御し、自らはフィルタ回路６１からの出力同期信号ofsyncにより動作が制御される。
【０１１９】
メモリコントローラ４はフィルタ回路６１からの出力同期信号ofsyncとレジスタコントローラ３からの読み出し／書き込みアドレスの情報受信により動作が制御され、自ら入力同期信号ifsyncをフィルタ手段６に発してフィルタ回路６１の動作を制御する。
【０１２０】
このように、レジスタコントローラ３とメモリコントローラ４とフィルタ回路６１とが互いに制御し合うため、プロセッサ２は、レジスタコントローラ３等に指示を送ったり、画像データＧ0、Ｇ1の記憶手段５からの読み出しや記録手段５への書き込み、フィルタ回路６１への入力等を監視し確認する等の制御動作を行わない。
【０１２１】
また、レジスタコントローラ３は、出力同期信号ofsyncを受信するとクロック数のカウントを開始し、画像データＧ0の画素データ数に相当するクロック数をカウントした段階で、処理済みの画像データＧ1の記憶手段５への書き込みの終了等を確認することなく次の演算処理を行うフィルタ回路６１の番号を制御信号Ｓとしてフィルタ手段６に送信する。
【０１２２】
メモリコントローラ４も同様に、出力同期信号ofsyncを受信すると前記処理を行うと同時にカウントを開始し、画像データＧ0の画素データ数に相当するクロック数をカウントした段階で、処理済みの画像データＧ1の記憶手段５への書き込みの終了等を確認することなく画像データＧ1の記憶手段５への書き込みが終了したと判断して次の動作に移る。
【０１２３】
このように、レジスタコントローラ３とメモリコントローラ４のタイミング制御は、フィルタ回路６１から送信される出力同期信号ofsyncに基づいて行われ、レジスタコントローラ３自体やメモリコントローラ４自体は、画像データＧ0、Ｇ1の記録手段５からの読み出しや記録手段５への書き込み、フィルタ回路６１への入力等を確認したり監視したりする等のタイミング調整を行わない。
【０１２４】
また、学習手段７での遺伝的プログラミングの手法を用いた学習により最適化されたフィルタ回路の選択順序に関する情報Ａsuitおよび読み出し／書き込み情報Ｂsuitが自動的に獲得される。
【０１２５】
画像処理装置１の実働時に、学習手段７からプロセッサ２を介してレジスタコントローラ３に最適化されたフィルタ回路の選択順序に関する情報Ａsuitおよび読み出し／書き込み情報Ｂsuitを送信し、図１１に示した入力画像データｔ〜ｔ−３を装置外部から入力して画像処理を行うと、図１４に示すような歩行者を抽出した出力画像データＧeがプロセッサ２から装置外部に出力される。そして、例えばモニタ等の表示手段でこの出力画像データＧeと入力画像データｔとを重ね合わせて表示すると、図１５に示すような入力画像ｔから歩行者を抽出した画像が得られる。
【０１２６】
また、最適化されたフィルタ回路の選択順序に関する情報Ａsuitおよび読み出し／書き込み情報Ｂsuitは図１１に示した入力画像データｔ〜ｔ−３を処理対象として得られたものであるが、それらに基づいて他の入力画像データに対して画像処理を行うと、図１６（Ａ）、（Ｂ）に示すように、同様に画像中から歩行者等を抽出した画像が得られる。これは、画像フィルタを木構造状に組み合わせた処理プログラムを用いた前記画像処理技術ＡＣＴＩＴの特徴であり、本実施形態の画像処理装置１はその木構造状の処理プログラムの機能と同様の機能を奏することが分かる。
【０１２７】
以上のように、本実施形態に係る画像処理装置１によれば、フィルタ回路の選択順序に関する情報Ａに基づいて使用するフィルタ回路を順番に選択して処理を行うため、同一種のフィルタ回路を重複して備える必要がなく、すなわち各番号のフィルタ回路を１つずつ備えて汎用化することができるから、装置が肥大化せず、装置の回路規模のスリム化を図ることが可能となる。
【０１２８】
また、本実施形態の画像処理装置１では、図２に示したようなフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂに従って処理を行うことで、それに対応する図３に示したような画像フィルタを木構造状に組み合わせた処理プログラムによる画像処理を実現できるとともに、処理プログラムによるソフトウエア処理ではなく、それと同等のフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂに従ってハードウエア処理を行うため、画像処理装置１の画像処理速度が格段に速くなり、処理のリアルタイム化を図ることが可能となる。
【０１２９】
さらに、装置の実働時には、プロセッサ２は、装置外部から入力された複数の入力画像データｔ、ｔ−１、…、ｔ−ｎをＳＲＡＭ５２に送信し、装置外部或いは学習手段７から入力されたフィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとをレジスタコントローラ３に送信した後は、レジスタコントローラ３に処理開始信号を発すること以外は、メモリコントローラ４から出力画像データＧeが送信されてくるまで画像データＧ0、Ｇ1の処理や送受信等の管理には関与しない。
【０１３０】
そのため、プロセッサ２とレジスタコントローラ３等との間で情報の送受信を行わず、プロセッサ２による各演算回路の監視、各演算回路のタイミング調整等を行わないため、プロセッサ２由来のタイムロスの発生を回避することができる。
【０１３１】
また、レジスタコントローラ３のタイミング制御をフィルタ回路６１からの出力同期信号ofsyncとカウンタとでコントロールし、レジスタコントローラ３は出力同期信号ofsyncの入力によりクロック数のカウントを開始し、画像データＧ0の画素データ数に相当するクロック数をカウントした段階で、処理済みの画像データＧ1の記憶手段５への書き込みの終了等を確認することなく次の演算処理を行うフィルタ回路６１の番号を制御信号Ｓとしてフィルタ手段６に送信する等の次の動作に移るため、画像データＧ0、Ｇ1の記録手段５からの読み出しや記録手段５への書き込み等を監視し確認する必要がなく、タイムロスの発生なしに処理を実行することができる。
【０１３２】
また、メモリコントローラ４も同様に出力同期信号ofsyncとカウンタとでコントロールされれば、レジスタコントローラ３と同様にタイムロスの発生なしに処理を実行できるほか、レジスタコントローラ３の場合と同じ出力同期信号ofsyncで制御されるため、レジスタコントローラ４との間でタイミング調整を行う必要がなく、待ち時間の発生も防止することが可能となる。
【０１３３】
このようにして、本実施形態に係る画像処理装置１によれば、フィルタ回路の切り替えが多数回行われる木構造状の処理プログラムに対応する画像処理においても、タイムロスの発生を極力抑制することが可能となり、クロックに合わせた非常に高速な画像処理を実現することが可能となり、装置のリアルタイム化を図ることが可能となる。
【０１３４】
また、本実施形態では、演算処理に閾値を用いるフィルタ回路について閾値が異なる３種類のフィルタ回路を設ける場合について述べたが、前述したように、これらの閾値を装置外部から変更したり、学習によって自動的に決めるように構成すれば、１種類のフィルタ回路について閾値が異なる複数種類のフィルタ回路を設ける必要がなくなり装置の回路規模をさらにスリム化することができるとともに、閾値を変更することでフィルタ回路に異なる機能を持たせることができ、同じ回路構成で異なる機能を発揮させることが可能となる。
【０１３５】
これらの点を踏まえて、図１に示した本実施形態に係る画像処理装置１に更なる改良を行うことができる。
【０１３６】
例えば、図１７に示すようにフィルタ手段６から出力された処理済みの画像データＧ1を入力し、その画素データの各輝度値の平均値を計算してその平均値に基づいてフィルタ回路６１の閾値を変更する計算器９を設けることができる。例えば、計算器９で計算された平均値をそのままBinarize（二値化）フィルタ回路等に還元して閾値とするように閾値の変更を行えば、入力画像データｔ〜ｔ−ｎや画像データＧ0が全体的に暗い画像であるような場合にBinarizeフィルタ回路でほとんどの画素の輝度値を０にしてしまうような演算処理が行われることが防止でき、処理する画像データＧ0に輝度値に応じて適切に演算処理を行うことが可能となる。
【０１３７】
計算器９で処理済みの画像データＧ1の画素データの各輝度値の平均値を求める代わりに、輝度値のヒストグラムを作成して最頻値を計算し、その最頻値に基づいてフィルタ回路の閾値を変更するように構成することも可能である。
【０１３８】
また、計算器９で変更した閾値をその処理済みの画像データＧ1にヘッダとして追加し、その処理済みの画像データＧ1が記憶手段５に記憶された後、再び画像データＧ0としてフィルタ手段６に入力された際に、フィルタ回路６１がそのヘッダに記録された閾値を参照して自らの閾値を変更してその画像データＧ0に対して演算処理を行うように構成すれば、それぞれの画像データＧ0の輝度値に応じて個別に適切な演算処理を行うことが可能となる。
【０１３９】
さらに、例えば、計算器９で処理済みの画像データＧ1の各画素データの輝度値が算出された輝度値の平均値や最頻値以上であるかそれより小さいかに応じて各画素データごとに異なるフラグを記録するように構成すれば、その処理済みの画像データＧ1が記憶手段５に記憶された後、再び画像データＧ0としてフィルタ手段６に入力された際に、広領域フィルタ等のグループ化を用いるフィルタ回路がそれらのフラグを参照してグループ化を行うことができるため、演算処理をより迅速化することが可能となる。
【０１４０】
また、入力画像データｔ〜ｔ−ｎが最初にＳＲＡＭ５２に記憶される段階でそのヘッダに自らの入力画像データの番号ｔに記録し、フィルタ回路６１で処理が行われるたびにフィルタ回路６１や計算器９でフィルタ回路６１の番号をヘッダに追加更新して、画像データのヘッダにその画像データの元となった入力画像データと使用されたフィルタ回路の履歴を記憶するように構成すれば、例えば、フィルタ回路６１が現在入力されてきた画像データＧ0のヘッダを参照して、以前に同じ履歴を有する画像データＧ0に対して演算処理を行ったことがあれば、現在入力されてきた画像データＧ0に対する演算処理を行わずに、同じ履歴を有する以前の画像データＧ0に対する処理結果である記憶手段５に記憶されている処理済みの画像データＧ1を活用することが可能となり、演算時間を短縮することが可能となり、装置の処理速度の高速化を図ることができる。
【０１４１】
なお、本実施形態の画像処理装置１では、ＣＣＤカメラ等により撮像された動画像から図１９（Ａ）、（Ｂ）に示したような方法で抽出された複数の入力画像データｔ、ｔ−１、…、ｔ−ｎとそれらを保存すべきＳＲＡＭ５２のアドレスとが装置外からプロセッサ２に入力される場合について述べたが、動画像をそのままプロセッサ２に入力してプロセッサ２で複数の入力画像データｔ、ｔ−１、…、ｔ−ｎを抽出し、それらを保存すべきＳＲＡＭ５２のアドレスを決定してメモリコントローラ４に送信するように構成することも可能である。
【０１４２】
また、本実施形態の画像処理装置１のように、記憶手段５として複数のメモリを設けたうえで、記憶手段５から２入力のフィルタ回路に出力される２つの画像データＧ0が異なるメモリに記憶されているように処理済みの画像データＧ1の書き込みアドレスを指定するように読み出し／書き込み情報Ｂの読み出し／書き込みアドレスを形成すれば、同一のメモリから２つの画像データＧ0を読み出すことを回避することができ、装置の処理速度の高速化を図ることが可能となる。
【０１４３】
学習手段７でこのような読み出し／書き込み情報Ｂを形成するためには、読み出し／書き込み情報Ｂの初期個体の生成の際および進化過程において、例えば、入力画像データｔ〜ｔ−ｎ以外の画像データについて、２入力フィルタ回路に対応する読み出しアドレスが同一のメモリ上のアドレスになる場合、すなわち２入力フィルタ回路に対応する読み出し／書き出しアドレスの３つのアドレスのうち前２つのアドレスが同一のメモリ上のアドレスになる場合は排除されるように制限を加えて学習が行われるように構成すればよい。
【図面の簡単な説明】
【０１４４】
【図１】本実施形態に係る画像処理装置の制御構成を示すブロック図である。
【図２】フィルタ回路の選択順序に関する情報Ａ（Ａ）と読み出し／書き込み情報Ｂ（Ａ）の構成を示す図である。
【図３】フィルタ回路の選択順序に関する情報Ａと読み出し／書き込み情報Ｂとにより再現される木構造状の処理プログラムを示す図である。
【図４】本実施形態のフィルタ手段に設けられた各種フィルタ回路を示す表である。
【図５】シフトレジスタ内での画素データのシフトを説明する図である。
【図６】演算処理の対象となる３×３画素の画素データのシフトレジスタ内での番地を示す図である。
【図７】ｎ×ｎ画素に対する演算処理を行うには（１）式で示されるｍ個の画素データを保持するラインバッファ機能が必要であることを説明する図である。
【図８】フィルタ回路の制御構成を示すブロック図である。
【図９】フィルタ回路におけるタイミングチャートを示す図である。
【図１０】学習手段の構成を示すブロック図である。
【図１１】入力画像データの例を示す図であり、（Ａ）は入力画像データｔ、（Ｂ）は入力画像データｔ−３を表す。
【図１２】図１１（Ａ）の入力画像データｔに基づいて作成された目標画像を示す図である。
【図１３】図１１（Ａ）の入力画像データｔに基づいて作成された重み画像を示す図である。
【図１４】出力画像データの例を示す図である。
【図１５】図１１（Ａ）の入力画像ｔと図１４の出力画像とを重ね合わせて表示した画像を示した図である。
【図１６】本実施形態に用いた入力画像以外の入力画像に対して画像処理を行った場合の重ね合わせ画像の例を示す図である。
【図１７】フィルタ手段の下流側に設けられた計算器を示す図である。
【図１８】静止画像を用いる画像フィルタを木構造状に組み合わせた処理プログラムを説明する図である。
【図１９】動画像からの入力画像データの抽出方法を説明する図である。
【図２０】動画像を用いる画像フィルタを木構造状に組み合わせた処理プログラムを説明する図である。
【符号の説明】
【０１４５】
１  画像処理装置
３  レジスタコントローラ
４  メモリコントローラ
５  記憶手段
６１  フィルタ回路
７  学習手段
８  シフトレジスタ
９  計算器
Ａ  フィルタ回路の選択順序に関する情報
Ｂ  読み出し／書き込み情報
Ｅi  適応度
Ｇ0  画像データ
Ｇ1  処理済みの画像データ
Ofsync  出力同期信号
ｔ、ｔ−１、…、ｔ−ｎ  入力画像データ
【図１】
2007140643.tif 000004
【図２】
2007140643.tif 000005
【図３】
2007140643.tif 000006
【図４】
2007140643.tif 000007
【図５】
2007140643.tif 000008
【図６】
2007140643.tif 000009
【図７】
2007140643.tif 000010
【図８】
2007140643.tif 000011
【図９】
2007140643.tif 000012
【図１０】
2007140643.tif 000013
【図１１】
2007140643.tif 000014
【図１２】
2007140643.tif 000015
【図１３】
2007140643.tif 000016
【図１４】
2007140643.tif 000017
【図１５】
2007140643.tif 000018
【図１６】
2007140643.tif 000019
【図１７】
2007140643.tif 000020
【図１８】
2007140643.tif 000021
【図１９】
2007140643.tif 000022
【図２０】
2007140643.tif 000023