図1は、本発明を適用した最適化装置の一実施の形態の構成例を示している。最適化装置は、入力信号に対して所定の処理(信号処理)を実行した後、その処理の結果得られる信号を出力信号として出力する。ユーザは、この出力信号を吟味(定性的に評価)して、自らの好みの出力信号ではない場合、ユーザの好みに対応した操作信号を最適化装置に入力する。最適化装置は、この操作信号に基づいて、処理の内容、および、処理の構造を変更し、再び入力信号に所定の処理を施し、出力信号を出力する。最適化装置は、このようにユーザの操作により入力される操作信号に対応して、処理の内容、および、処理の構造の変更を繰り返しながら、最適な処理(ユーザにとって最適な処理)を入力信号に施し、ユーザの好みにより近い出力信号を出力する。
図2は、図1の最適化装置の第1の詳細構成例を示している。
この最適化装置1においては、ユーザの操作を、ユーザが知らないうちに学習することにより、そのユーザにとって最適な処理を行うようになっている。即ち、最適化装置では、ユーザの操作に応じて供給される操作信号がモニタされ、学習に用いることができるかどうかが判定される。そして、操作信号が、学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づいて、入力信号を補正する規範である補正規範が学習される。一方、入力信号は、学習により得られた補正規範に基づいて補正され、その補正後の信号が、出力信号として出力される。
最適化装置1は、補正部21と学習部22からなる処理部11から構成されており、そこには、処理の対象となる入力信号の他、ユーザの操作に対応した操作信号が供給されるようになっている。
操作信号は、操作部2から供給されるようになっている。即ち、操作部2は、例えば、ロータリ型やスライド型のつまみや、スイッチ、ポインティングデバイス等で構成されており、ユーザの操作に対応した操作信号を、最適化装置1を構成する処理部11に供給する。
最適化装置1を構成する補正部21には、例えば、ディジタルの入力信号が供給されるとともに、学習部22から、入力信号を補正する補正規範としての、例えば、補正パラメータが供給されるようになっている。補正部21は、入力信号を、補正パラメータに基づいて補正(信号処理)し、その補正後の信号を、出力信号として出力する。
学習部22には、操作部2からの操作信号が供給されるとともに、必要に応じて、入力信号または出力信号が供給されるようになっている。学習部22は、操作信号をモニタし、学習に用いることができるかどうかを判定する。そして、学習部22は、操作信号が、学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づき、入力信号を補正するのに用いられる補正パラメータを、必要に応じて、入力信号や出力信号を用いて学習し、補正部21に供給する。
なお、学習部22は、学習用データメモリ53と学習情報メモリ55とを内蔵しており、学習用データメモリ53は、学習に用いられる学習用データを記憶し、学習情報メモリ55は、学習によって得られる、後述する学習情報を記憶する。
次に、図3のフローチャートを参照して、図2の最適化装置1が行う処理(最適化処理)について説明する。
まず最初に、ステップS1において、学習部22は、操作部2から学習用操作信号を受信したかどうかを判定する。ここで、ユーザは、操作部2を操作する場合、最初は、適当な操作を行い、その操作に応じて出力される出力信号を確認しながら、細かな操作を行って、最終的に最適であると思った出力信号が得られた時点で、操作を停止するのが一般的である。この、ユーザが最適であると思った出力信号が得られた時点における、操作部2の位置に対応する操作信号が、学習用操作信号であり、このため、学習部22は、操作部2の操作が所定時間以上続いた後に、その操作が停止された場合に、その停止されたときの操作信号を、学習用操作信号と判定するようになっている。
ステップS1において、学習用操作信号を受信していないと判定された場合、即ち、例えば、ユーザが操作部2を操作していないか、あるいは、操作していても、最適な位置を探しているような操作をしている場合、ステップS2乃至S10をスキップして、ステップS11に進み、補正部21は、入力信号を、既に設定されている補正パラメータにしたがって補正し、その補正結果としての出力信号を出力して、ステップS1に戻る。
また、ステップS1において、学習用操作信号を受信したと判定された場合、ステップS2に進み、学習部22は、その学習用操作信号に基づいて、学習に用いる学習用データを取得し、ステップS3に進む。ステップS3では、学習用データメモリ53が、ステップS2で取得された最新の学習用データを記憶する。
ここで、学習用データメモリ53は、複数の学習用データを記憶することのできる記憶容量を有している。また、学習用データメモリ53は、その記憶容量分だけの学習用データを記憶すると、次の学習用データを、最も古い記憶値に上書きする形で記憶するようになっている。従って、学習用データメモリ53には、複数の学習用データであって、最近のものが記憶される。
ステップS3で学習用データメモリ53に学習用データを記憶した後は、ステップS4に進み、学習部22は、学習用データメモリ53に記憶された最新の学習用データと、学習情報メモリ55に記憶された学習情報とを用いて学習を行い、補正パラメータを求めて、ステップS5に進む。ステップS5では、学習部22は、ステップS4の学習の途中で得られる新たな学習情報によって、学習情報メモリ55の記憶内容を更新し、ステップS6に進む。
ステップS6では、学習部22は、ステップS4で求めた補正パラメータの適正さを表す、後述するような適正度を求め、ステップS7に進み、その適性度に基づいて、ステップS4で求めた補正パラメータが適正であるかどうかを判定する。
ステップS7において、補正パラメータが適正であると判定された場合、ステップS8およびS9をスキップして、ステップS10に進み、学習部22は、その適正であると判定した補正パラメータを、補正部21に出力して、ステップS11に進む。従って、この場合、それ以降は、補正部21において、ステップS4の学習で求められた新たな補正パラメータにしたがって、入力信号が補正される。
一方、ステップS7において、補正パラメータが適正でないと判定された場合、ステップS8に進み、学習部22は、学習用データメモリ53に記憶された学習用データのうちの、最近の学習用データのみを用いて学習を行い、補正パラメータを求めて、ステップS9に進む。ステップS9では、学習部22は、ステップS8の学習の途中で得られる新たな学習情報によって、学習情報メモリ55の記憶内容を更新し、ステップS10に進む。この場合、ステップS10では、学習部22は、ステップS8で最近の学習用データのみから得られた補正パラメータを、補正部21に出力して、ステップS11に進む。従って、この場合、それ以降は、補正部21において、ステップS8の学習で求められた新たな補正パラメータにしたがって、入力信号が補正される。
次に、図4は、図2の処理部11を、例えば、画像信号や音声信号からノイズを除去するNR回路に適用した場合の詳細構成例を示している。
重みメモリ31は、学習部22の、後述する選択部41から供給される補正パラメータとしての重み(係数)W(例えば、0以上1以下の値)を記憶する。重みメモリ32は、演算器33から供給される重み1−Wを記憶する。
演算器33は、学習部22の選択部41から供給される重みWを、1.0から減算した減算値1−Wを、重みとして、重みメモリ32に供給する。演算器34は、入力信号と、重みメモリ32に記憶された重み1−Wとを乗算し、その乗算値を、演算器36に供給する。演算器35は、重みメモリ31に記憶された重みWと、ラッチ回路37に記憶(ラッチ)された出力信号とを乗算し、その乗算値を、演算器36に供給する。演算器36は、演算器34,35の両者の出力を加算し、その加算値を、出力信号として出力する。
ラッチ回路37は、演算器36が出力する出力信号をラッチし、演算器35に供給する。
図4の実施の形態では、以上の重みメモリ31および32、演算器33,34,35、および36、並びにラッチ回路37によって、処理部11の補正部21が構成されている。
選択部41は、重み補正部46が出力する重み、または操作信号処理部50が出力する重みのうちのいずれか一方を選択し、補正パラメータとして、補正部21に供給する。
入力信頼度計算部42には、入力信号が供給されるようになっており、その入力信号の信頼性を表す入力信頼度を求めて、出力信頼度計算部43と重み計算部45に出力する。出力信頼度計算部43は、入力信頼度計算部42からの入力信頼度に基づいて、出力信号の信頼性を表す出力信頼度を求め、ラッチ回路44と重み計算部45に供給する。ラッチ回路44は、出力信頼度計算部43からの出力信頼度を記憶(ラッチ)し、出力信頼度計算部43および重み計算部45に供給する。
重み計算部45は、入力信頼度計算部42からの入力信頼度と、出力信頼度計算部43からの出力信頼度とから、重みを計算し、重み補正部46に出力する。重み補正部46には、重みの他、パラメータ制御データメモリ57から、補正パラメータとしての重みを制御するパラメータ制御データが供給されるようになっており、重み補正部46は、重みを、パラメータ制御データによって処理(補正)し、選択部41に供給する。
操作信号処理部50には、操作部2(図2)から操作信号が供給されるようになっており、操作信号処理部50は、そこに供給される操作信号を処理し、その操作信号に対応する重みを、選択部41、教師データ生成部51、および生徒データ生成部52に供給する。さらに、操作信号処理部50は、操作信号が、上述した学習用操作信号かどうかを判定し、操作信号が学習用操作信号である場合には、その旨のフラグ(以下、適宜、学習フラグという)を、出力する重みに付加する。
教師データ生成部51は、操作信号処理部50から、学習フラグ付きの重みを受信すると、学習の教師となる教師データを生成し、学習用データメモリ53に供給する。即ち、教師データ生成部51は、学習フラグが付加されている重みを、教師データとして、学習用データメモリ53に供給する。
生徒データ生成部52は、操作信号処理部50から学習フラグ付きの重みを受信すると、学習の生徒となる生徒データを生成し、学習用データメモリ53に供給する。即ち、生徒データ生成部52は、例えば、上述の入力信頼度計算部42、出力信頼度計算部43、ラッチ回路44、および重み計算部45と同様に構成され、そこに供給される入力信号から重みを計算しており、学習フラグ付きの重みを受信したときに入力信号から計算された重みを、生徒データとして、学習用データメモリ53に供給する。
学習用データメモリ53は、教師データ生成部51から供給される、学習用操作信号に対応する重みとしての教師データと、生徒データ生成部52から供給される、その学習用操作信号を受信したときの入力信号から計算される重みとしての生徒データとのセットを、1セットの学習用データとして記憶する。なお、上述したように、学習用データメモリ53は、複数の学習用データを記憶することができ、さらに、その記憶容量分だけの学習用データを記憶すると、次の学習用データを、最も古い記憶値に上書きする形で記憶するようになっている。従って、学習用データメモリ53は、基本的に、最近の学習用データの幾つかが、常に記憶されている状態にある。
パラメータ制御データ計算部54は、判定制御部56の制御の下、学習用データメモリ53に記憶された学習用データとしての教師データおよび生徒データ、さらには、必要に応じて、学習情報メモリ55に記憶された学習情報を用いて、所定の統計的な誤差を最小にするパラメータ制御データを、新たな学習情報を演算することにより学習し、判定制御部56に供給する。また、パラメータ制御データ計算部54は、学習によって得られた新たな学習情報によって、学習情報メモリ55の記憶内容を更新する。学習情報メモリ55は、パラメータ制御データ計算部54からの学習情報を記憶する。
判定制御部56は、パラメータ制御データ計算部54から供給されるパラメータ制御データの適正さを、学習用データメモリ53に記憶された最近の学習用データを参照することにより判定する。また、判定制御部56は、パラメータ制御データ計算部54を制御し、パラメータ制御データ計算部54から供給されるパラメータ制御データを、パラメータ制御データメモリ57に供給する。パラメータ制御データメモリ57は、その記憶内容を、判定制御部56から供給されるパラメータ制御データによって更新し、重み補正部46に供給する。
図4の実施の形態では、以上の選択部41乃至重み補正部46、および操作信号処理部50乃至パラメータ制御データメモリ57によって、処理部11の学習部22が構成されている。
以上のように構成されるNR回路としての最適化装置1の処理部11では、次のようにして、入力信号におけるノイズが除去される。
即ち、例えば、いま、説明を簡単にするために、図5Aに示すような、真値が一定で、かつ時間的に変動するノイズが重畳された入力信号について、その平均をとることで、時間的に変動するノイズを除去することを考えると、ノイズの度合いとしての、例えば、ノイズのレベルが大きい入力信号(従って、S/Nの悪い信号)については、その重みを小さくし(あまり考慮しないようにする)、ノイズのレベルの小さい入力信号(従って、S/Nの良い信号)については、その重みを大きくすることにより、ノイズを効果的に除去することができる。
そこで、図4のNR回路では、入力信号の評価値として、例えば、図5Bに示すような、入力信号の、真値に対する近さ、即ち、入力信号が真値であることの信頼性を表す入力信頼度を求め、その入力信頼度に対応した重み付けを入力信号に対して行いながら、その平均を計算することで、ノイズを効果的に除去するようになっている。
従って、図4のNR回路では、入力信号について、その入力信頼度に対応した重みを用いた重み付け平均が求められ、出力信号として出力されるが、いま、時刻tにおける入力信号、出力信号、入力信頼度を、それぞれx(t),y(t),αx(t)と表すと、次式にしたがって、出力信号y(t)が求められることになる。
なお、ここでは、入力信頼度αx(t)が大きいほど、大きな重みを与えることとしている。
式(1)から、現在時刻tから1サンプル前の出力信号y(t−1)は、次式で求められる。
また、出力信号y(t)についても、その出力信号y(t)の評価値として、真値に対する近さ、即ち、出力信号y(t)が真値であることの信頼性を表す出力信頼度αy(t)を導入し、現在時刻tから1サンプル前の出力信号y(t−1)の出力信頼度αy(t-1)を、次式で定義する。
この場合、式(1)乃至(3)から、出力信号y(t)およびその出力信頼度αy(t)は、次のように表すことができる。
また、時刻tにおいて、出力信号y(t)を求めるのに用いる重みを、w(t)と表し、これを、次式で定義する。
式(6)から、次式が成り立つ。
式(6)および(7)を用いると、式(4)における出力信号y(t)は、次のような乗算と加算による重み付け平均によって表すことができる。
なお、式(8)で用いる重みw(t)(および1−w(t))は、式(6)から、1サンプル前の出力信号y(t−1)の出力信頼度αy(t-1)と、現在の入力信号x(t)の入力信頼度αx(t)とから求めることができる。また、式(5)における現在の出力信号y(t)の出力信頼度αy(t)も、その1サンプル前の出力信号y(t−1)の出力信頼度αy(t-1)と、現在の入力信号x(t)の入力信頼度αx(t)とから求めることができる。
ここで、入力信号x(t)の入力信頼度αx(t)、または出力信号y(t)の出力信頼度αy(t)として、それぞれの分散σx(t) 2、またはσy(t) 2の逆数を用いることとすると、即ち、入力信頼度αx(t)、出力信頼度αy(t)を、式
・・・(9)
とおくと、式(6)における重みw(t)と、式(7)における重み1−w(t)は、次式で求めることができる。
なお、σy(t) 2は、次式で求めることができる。
図4のNR回路は、基本的には、式(6)にしたがい、重みw(t)としての補正パラメータを演算する補正パラメータ演算処理を行い、その重みw(t)を用いて、式(8)にしたがい、1サンプル前の出力信号y(t−1)と、現在の入力信号x(t)との重み付け平均を計算することで、入力信号x(t)に含まれるノイズを効果的に除去する補正処理を行う。
ところで、式(6)にしたがって求められた重みw(t)による入力信号の補正処理の結果得られる出力信号が、必ずしも、ユーザが最適と感じるとは限らない。そこで、図4のNR回路は、ユーザによる操作部2の操作を学習することにより、補正パラメータとしての重みw(t)を制御(補正)するパラメータ制御データを求める制御データ学習処理を行い、そのパラメータ制御データによって補正した重みを用いて、入力信号の補正処理を行うようになっている。
制御データ学習処理は、次のようにして行われるようになっている。
即ち、ユーザが操作部2を操作することによって、i回目に与えられた学習用操作信号に対応する重みWiは、その学習用操作信号が与えられたときに入力された入力信号に対して、ユーザが最適なものと考えているとみることができ、従って、制御データ学習処理では、式(6)にしたがって求められる重みw(t)を、学習用操作信号に対応する重みWiに近い値(理想的には、同一の値)に補正することのできるパラメータ制御データを求めれば良い。
そこで、いま、式(6)にしたがって求められる重みw(t)を、学習の生徒となる生徒データとするとともに、学習用操作信号に対応する重みWiを、学習の教師となる教師データとして、生徒データとしての重みw(t)から、例えば、次式に示すような、パラメータ制御データaとbによって定義される一次式によって予測される、教師データとしての重みWiの予測値Wi’を求めることを考える。
Wi’=awi+b
・・・(13)
なお、式(13)において(後述する式(14)、式(16)乃至(21)においても、同様)、wiは、教師データとしての学習用操作信号に対応する重みWiが与えられたときに入力された入力信号に対して、式(6)にしたがって求められる生徒データとしての重みw(t)を表す。
式(13)から、教師データとしてのWiと、その予測値Wi’との誤差(予測誤差)eiは、次式で表される。
・・・(14)
いま、式(14)の予測誤差eiの、次式で表される自乗(2乗)誤差の総和
・・・(15)
を最小にするパラメータ制御データaとbを、最小自乗法(最小自乗誤差法ともいう)により求めることを考える。なお、式(15)において(後述する式(16)乃至(21)においても、同様)、Nは、教師データと生徒データのセット数を表す。
まず、式(15)の自乗誤差の総和を、パラメータ制御データaとbで、それぞれ偏微分すると、次式が得られる。
式(15)の自乗誤差の総和の最小値(極小値)は、式(16)と(17)の右辺を0にするaとbによって与えられるから、式(16)と(17)の右辺を、それぞれ0とおくと、式(16)からは式(18)が、式(17)からは式(19)が、それぞれ得られる。
式(19)を、式(18)に代入することにより、パラメータ制御データaは、次式によって求めることができる。
また、式(19)と(20)から、パラメータ制御データbは、次式によって求めることができる。
図4のNR回路では、以上のようにして、パラメータ制御データaとbを求める制御データ学習処理を行うようになっている。
次に、図6乃至図8のフローチャートを参照して、図4のNR回路が行う補正処理、補正パラメータ演算処理、および制御データ学習処理について説明する。
まず最初に、図6のフローチャートを参照して、補正処理について説明する。
学習部22の選択部41から、補正部21に対して、補正パラメータとしての重みw(t)が供給されると、補正部21の重みメモリ31は、その重みw(t)を上書きする形で記憶する。さらに、補正部21の演算器33は、重みw(t)を1.0から減算し、重み1−w(t)を求め、重みメモリ32に供給して、上書きする形で記憶させる。
そして、入力信号x(t)が供給されると、ステップS21において、演算器34は、その入力信号x(t)と、重みメモリ32に記憶された重み1−w(t)との積を演算し、演算器36に供給する。さらに、ステップS21では、演算器35が、重みメモリ31に記憶された重みw(t)と、ラッチ回路37にラッチされた1サンプル前の出力信号y(t−1)との積を演算し、演算器36に供給する。
そして、ステップS22に進み、演算器36は、入力信号x(t)および重み1−w(t)の積と、重みw(t)および出力信号y(t−1)の積とを加算し、これにより、入力信号x(t)と出力信号y(t−1)の重み付け加算値(1−w(t))x(t)+w(t)y(t−1)を求めて、出力信号y(t)として出力する。この出力信号y(t)は、ラッチ回路37にも供給され、ラッチ回路37は、出力信号y(t)を上書きする形で記憶する。その後、ステップS21に戻り、次のサンプルの入力信号が供給されるのを待って、以下、同様の処理が繰り返される。
次に、図7のフローチャートを参照して、補正パラメータ演算処理について説明する。
補正パラメータ演算処理では、まず最初に、ステップS31において、入力信頼度計算部42が、例えば、入力信号の分散に基づく入力信頼度αx(t)を求める。
即ち、入力信頼度計算部42は、現在の入力信号のサンプルx(t)の他、その過去数サンプルをラッチすることができる、図示せぬFIFO(First In First Out)メモリを内蔵しており、現在の入力信号のサンプルx(t)と、その過去数サンプルとを用いて、それらの分散を計算し、その逆数を、入力信頼度αx(t)として求め、出力信頼度計算部43および重み計算部45に供給する。なお、入力信号の入力が開始された直後においては、分散を計算するのに必要な数の入力信号のサンプルが存在しない場合があるが、この場合には、例えば、デフォルトの値が、入力信頼度αx(t)として出力される。
その後、ステップS32に進み、重み計算部45は、入力信頼度計算部42からの入力信頼度αx(t)を用い、式(6)にしたがって、重みw(t)を求める。
即ち、入力信頼度計算部42から重み計算部45に対して、入力信頼度αx(t)が供給されるタイミングにおいては、ラッチ回路44において、出力信頼度計算部43が1サンプル前に出力した出力信頼度αy(t-1)がラッチされており、重み計算部45は、ステップS32において、入力信頼度計算部12からの入力信頼度αx(t)と、ラッチ回路44にラッチされている出力信頼度αy(t-1)とを用い、式(6)にしたがって、重みw(t)を求める。この重みw(t)は、重み補正部46に供給される。
その後、ステップS33に進み、重み補正部46は、パラメータ制御データメモリ57からパラメータ制御データを読み出し、ステップS34に進む。ステップS34では、重み補正部46は、パラメータ制御データメモリ57から読み出したパラメータ制御データが、重みw(t)を補正しないモード、即ち、ユーザによる操作部2の操作に関係なく、重み計算部45において、入力信頼度と出力信頼度から、いわば自動的に求められる重みw(t)を、そのまま入力信号x(t)を補正するための重みWとして用いるモード(以下、適宜、オートモードという)を表すオートモードデータとなっているかどうかを判定する。
ステップS34において、パラメータ制御データがオートモードデータでないと判定された場合、ステップS35に進み、重み補正部46は、重み計算部45から供給される重みw(t)を、パラメータ制御データメモリ57から供給されるパラメータ制御データaとbによって定義される式(13)の一次式にしたがって補正し、ステップS36に進む。ステップS36では、重み補正部46が、補正後の重みを、選択部41に供給し、ステップS37に進む。ここで、式(13)において、wiが、重み計算部45から供給される重みw(t)に相当し、Wi’が、補正後の重みWに相当する。
一方、ステップS34において、パラメータ制御データがオートモードデータであると判定された場合、ステップS35をスキップして、ステップS36に進み、重み補正部46は、重み計算部45からの重みw(t)を、そのまま選択部41に供給し、ステップS37に進む。
ステップS37では、出力信頼度計算部43は、出力信頼度を更新する。即ち、出力信頼度計算部43は、直前のステップS31で入力信頼度計算部42が計算した入力信頼度αx(t)と、ラッチ回路44がラッチしている1サンプル前の出力信頼度αy(t-1)とを、式(5)にしたがって加算することで、現在の出力信頼度αy(t)を求め、ラッチ回路44に上書きする形で記憶させる。
そして、ステップS38に進み、選択部41は、操作信号処理部50の出力から、操作部2がユーザによって操作されているかどうかを判定する。ステップS38において、操作部2が操作されていないと判定された場合、ステップS39に進み、選択部41は、重み補正部46から供給された重み(以下、適宜、補正重みという)を選択し、補正部21に出力して、ステップS31に戻る。
また、ステップS38において、操作部2が操作されていると判定された場合、ステップS40に進み、選択部41は、その操作に応じて、操作信号処理部50が出力する重みを選択し、補正部21に出力して、ステップS31に戻る。
従って、図7の補正パラメータ演算処理においては、操作部2が操作されていない場合は、補正重みが、補正部21に供給され、また、操作部2が操作されている場合は、その操作信号に対応する重みが、補正部21に供給される。その結果、補正部21では、操作部2が操作されていない場合は、補正重みによって、入力信号が補正され、操作部2が操作されている場合には、その操作信号に対応する重みによって、入力信号が補正される。
さらに、図7の補正パラメータ演算処理においては、オートモードの場合は、操作部2の操作に関係なく、入力信頼度と出力信頼度のみから、補正処理に用いられる重みが求められ、オートモードでない場合には、操作部2の操作に基づく、後述する図8の制御データ学習処理による学習によって得られるパラメータ制御データを用いて、補正処理に用いられる重みが求められる。
次に、図8のフローチャートを参照して、制御データ学習処理について説明する。
制御データ学習処理では、まず最初に、ステップS41において、操作信号処理部50が、学習用操作信号を、操作部2から受信したかどうかを判定し、受信していないと判定した場合、ステップS41に戻る。
また、ステップS41において、操作部2から、学習用操作信号を受信したと判定された場合、即ち、例えば、操作部2が、その操作の開始後、第1の時間t1以上の間隔をあけることなく、第2の時間t2以上連続して操作され、その後、第3の時間t3以上連続して、その操作が停止された場合や、操作部2の操作の開始後、第3の時間t3以上連続して、その操作が停止された場合など、ユーザが、所望の出力信号を得られるように、操作部2の操作を行ったと判定することができる場合、ステップS42に進み、教師データ生成部51が教師データを生成するとともに、生徒データ生成部52が生徒データを生成する。
即ち、操作信号処理部50は、学習用操作信号を受信した場合、その学習用操作信号に対応する重みW(例えば、操作部2の操作量や、操作部2としてのつまみやレバーなどの位置に対応した重みW)を、学習フラグとともに、教師データ生成部51および生徒データ生成部52に供給する。教師データ生成部51は、学習フラグ付きの重みWを受信すると、その重みWを、教師データとして取得し、学習用データメモリ53に供給する。また、生徒データ生成部52は、学習フラグ付きの重みを受信すると、そのときの入力信号に対応する重みwを、生徒データとして求め、学習用データメモリ53に供給する。
ここで、入力信号に対応する重みwとは、式(6)にしたがい、入力信頼度と出力信頼度とから、いわば自動的に求められる重みを意味し、上述したように、生徒データ生成部52は、この入力信号に対応する重みwを、入力信号から計算している。
学習用データメモリ53は、教師データ生成部51から教師データWを受信するとともに、生徒データ生成部52から生徒データwを受信すると、ステップS43において、その最新の教師データWと生徒データwのセットを記憶し、ステップS44に進む。
ステップS44では、パラメータ制御データ計算部54が、教師データと生徒データを対象として、最小自乗法における足し込みを行う。
即ち、パラメータ制御データ計算部54は、式(20)や(21)における生徒データwiと教師データWiとの乗算(wiWi)とサメーション(ΣwiWi)に相当する演算、生徒データwiのサメーション(Σwi)に相当する演算、教師データWiのサメーション(ΣWi)に相当する演算、生徒データwiどうしの積のサメーション(Σwi 2)に相当する演算を行う。
ここで、例えば、いま、既に、N−1セットの教師データと生徒データが得られており、最新の教師データと生徒データとして、Nセット目の教師データと生徒データが得られたとすると、その時点では、パラメータ制御データ計算部54において、N−1セットの教師データと生徒データを対象とした足し込みが、既に行われている。従って、Nセット目の教師データと生徒データについては、既に行われているN−1セットの教師データと生徒データを対象とした足し込み結果を保持してあれば、その足し込み結果に、Nセット目の教師データと生徒データを足し込むことにより、最新の教師データと生徒データを含む、Nセットの教師データと生徒データの足し込み結果を得ることができる。
そこで、パラメータ制御データ計算部54は、前回の足し込み結果を、学習情報として、学習情報メモリ55に記憶させておくようになっており、この学習情報を用いて、Nセット目の教師データと生徒データについての足し込みを行うようになっている。なお、足し込みには、いままでの足し込みに用いた教師データと生徒データのセット数Nも必要であり、学習情報メモリ55は、このセット数Nも、学習情報として記憶するようになっている。
パラメータ制御データ計算部54は、ステップS44において足し込みを行った後、その足し込み結果を、学習情報として、学習情報メモリ55に上書きする形で記憶させ、ステップS45に進む。
ステップS45では、パラメータ制御データ計算部54が、学習情報メモリ55に記憶された学習情報としての足し込み結果から、式(20)および(21)によって、パラメータ制御データaおよびbを求めることが可能であるかどうかを判定する。
即ち、教師データと生徒データのセットを、以下、適宜、学習対というものとすると、少なくとも、2つの学習対から得られた学習情報が存在しなければ、式(20)および(21)から、パラメータ制御データaおよびbを得ることができない。そこで、ステップS45では、学習情報から、パラメータ制御データaおよびbを求めることが可能であるかどうかが判定される。
ステップS45において、パラメータ制御データaおよびbを求めることが可能でないと判定された場合、パラメータ制御データ計算部54は、その旨を、判定制御部56に供給し、ステップS49に進む。ステップS49では、判定制御部56は、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS41に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データaおよびbを求めることができるだけの学習情報が存在しない場合には、図7で説明したように、入力信頼度と出力信頼度から自動的に求められる重みw(t)が、そのまま入力信号x(t)の補正に用いられることになる。
一方、ステップS45において、パラメータ制御データaおよびbを求めることが可能であると判定された場合、ステップS46に進み、パラメータ制御データ計算部54は、学習情報を用い、式(20)および(21)を計算することで、パラメータ制御データaおよびbを求め、判定制御部56に供給して、ステップS47に進む。
ステップS47では、判定制御部56は、パラメータ制御データ計算部54からのパラメータ制御データaおよびbによって定義される式(13)の一次式にしたがい、学習用データメモリ53に記憶された各生徒データから、対応する教師データの予測値を求め、その予測値の予測誤差(学習用データメモリ53に記憶されている教師データに対する誤差)の、式(15)で表される自乗誤差の総和を求める。さらに、判定制御部56は、その自乗誤差の総和を、例えば、学習用データメモリ53に記憶されている学習対の数で除算した正規化誤差を求め、ステップS48に進む。
ステップS48では、判定制御部56は、正規化誤差が、所定の閾値S1より大(以上)であるかどうかを判定する。ステップS48において、正規化誤差が所定の閾値S1より大であると判定された場合、即ち、パラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合、ステップS49に進み、判定制御部56は、上述したように、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS41に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データaおよびbを求めることができても、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、パラメータ制御データaおよびbを求めることができるだけの学習情報が存在しない場合と同様に、入力信頼度と出力信頼度から自動的に求められる重みw(t)が、そのまま入力信号x(t)の補正に用いられることになる。
一方、ステップS48において、正規化誤差が所定の閾値S1より大でないと判定された場合、即ち、パラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合、ステップS50に進み、判定制御部56は、パラメータ制御データ計算部54からのパラメータ制御データaおよびbによって定義される式(13)の一次式で表される回帰直線と、学習用データメモリ53に記憶された最新の教師データおよび生徒データで規定される点との間の誤差(距離)εを求める。
そして、ステップS51に進み、判定制御部56は、誤差εの大きさが、所定の閾値S2より大(以上)であるかどうかを判定し、大でないと判定した場合、ステップS52をスキップして、ステップS53に進み、判定制御部56は、ステップS46で求められたパラメータ制御データaおよびbを、パラメータ制御部データメモリ37に出力する。パラメータ制御データメモリ57は、判定制御部56からのパラメータ制御データaおよびbを上書きする形で記憶し、ステップS41に戻る。
一方、ステップS51において、誤差εの大きさが、所定の閾値S2より大であると判定された場合、ステップS52に進み、判定制御部56は、パラメータ制御データ計算部54を制御することにより、学習用データメモリ53に記憶された最近の教師データと生徒データとしての、最新の学習対から所定数の過去の学習対のみを用いて(学習情報メモリ55の学習情報を用いずに)、パラメータ制御データaおよびbを再計算させる。そして、ステップS53に進み、判定制御部56は、ステップS52で求められたパラメータ制御データaおよびbを、パラメータ制御部データメモリ37に出力し、上書きする形で記憶させ、ステップS41に戻る。
従って、パラメータ制御データaおよびbを求めることができ、かつ、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合には、ユーザによる操作部2の操作に基づいて得られる学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbによって定義される式(13)にしたがって、入力信頼度と出力信頼度から求められる重みw(t)が補正され、その補正によって得られる補正重みWが、入力信号x(t)の補正に用いられることになる。
ここで、ステップS46で求められたパラメータ制御データaおよびbによって定義される式(13)の一次式で表される回帰直線は、図9Aに示すように、Nセットの教師データと生徒データによって規定されるN個の点との自乗誤差(の総和)を最小にする直線であるが、ステップS50では、この直線と、最新の教師データおよび生徒データで規定される点との間の誤差εが求められる。
そして、この誤差εの大きさが、閾値S2より大でない場合には、ステップS46で求められたパラメータ制御データaおよびbによって定義される式(13)の一次式で表される回帰直線は、最新の教師データと生徒データで規定される点も含め、いままでに与えられた教師データと生徒データで規定される点のいずれも、比較的精度良く近似していると考えられる。
しかしながら、誤差εの大きさが、閾値S2より大の場合には、即ち、最新の教師データと生徒データで規定される点(図9Bにおいて○印で示す)が、図9Bに示すように、ステップS46で求められたパラメータ制御データaおよびbによって定義される式(13)の一次式で表される回帰直線から大きく離れている場合には、何らかの原因で、ユーザが、いままでとは異なる傾向の操作部2の操作を行ったと考えられる。
そこで、この場合、判定制御部56は、パラメータ制御データ計算部54を制御することにより、ステップS52において、学習用データメモリ53に記憶された学習対のうちの、最近の学習対のいくつかのみを用いて、パラメータ制御データaおよびbを再計算させる。
即ち、この場合、パラメータ制御データ計算部54は、学習情報メモリ55に記憶された過去の足し込み結果としての学習情報を用いずに(忘却して)、最近の幾つかの教師データと生徒データのセットのみを用いて、それらの教師データと生徒データによって規定される点の集合を最も良く近似する式(13)の直線を定義するパラメータ制御データaおよびbを再計算する。
具体的には、パラメータ制御データ計算部54は、例えば、図9Cに示すように、最新の教師データと生徒データによって規定される点(図9Cにおいて○印で示す)と、その1回前に与えられた教師データと生徒データによって規定される点(図9Cにおいて△印で示す)とを通る直線を定義するパラメータ制御データa’およびb’を求める。
以上のように、ユーザの操作に応じて供給される操作信号が、学習に用いることができるかどうかを判定し、学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づいて、入力信号を補正する重みを補正するパラメータ制御データaおよびbを学習するようにしたので、ユーザの操作を、ユーザが知らないうちに学習することができ、その結果、その学習結果に基づいて、ユーザにとって、徐々に適切な処理が行われるようになり、最終的には、ユーザにとって最適な処理が行われることになる。
これは、ユーザ側からみれば、ユーザが操作部2を通常操作していると、そのうちに、操作を行わなくても、各種の入力信号に対して、ユーザにとって最適なノイズ除去結果が得られることを意味し、従って、装置が、いわば手になじんでくることを意味する。そして、この手になじんでくる段階では、ユーザが、所望の出力信号を得られるように、操作部2の操作を行うことから、ユーザにおいては、操作部2の操作と、入力信号の補正に用いられる重みWとの関係が、徐々に明確に認識されていくことになり、最終的には、ユーザによる操作部2の操作と、入力信号の補正に用いられる重みWとが、定性的に関係付けられることになる。
また、図4のNR回路においては、ユーザによる操作部2の操作にしたがい、補正部21で行われる補正処理(図6)で用いられる重みWが、ユーザにとって所望の出力信号が得られるように変更される。即ち、ユーザが操作部2を操作すると、操作信号処理部50は、その操作に対応した操作信号が表す重みを出力し、選択部41は、その重みを選択して、補正部21に供給する。この場合、補正部21では、ユーザの操作に対応した重みを用いて、式(8)で表される補正処理が行われる。そして、ユーザの操作により式(8)の重みw(t)が変更される場合には、当然に、式(8)で表される処理(補正処理)の内容も変更することとなるから、図4のNR回路では、ユーザの操作にしたがい、その「処理の内容」が、ユーザにとって所望の出力信号が得られるように変更されているということができる。
さらに、図4のNR回路では、パラメータ制御データaおよびbを求めることができない場合や、求めることができても、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、入力信頼度と出力信頼度とから自動的に求められる重みが、補正部21における補正処理に用いられる。一方、パラメータ制御データaおよびbを求めることができ、かつ、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合には、ユーザによる操作部2の操作に基づいて得られる学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbによって定義される式(13)にしたがって、入力信頼度と出力信頼度から求められる重みが補正され、その補正によって得られる補正重みが、補正部21による補正処理に用いられる。
即ち、図4のNR回路では、ユーザから十分な数の学習対が入力されていない場合や、精度の高い近似が可能な学習対が入力されていない場合には、入力信頼度と出力信頼度とから自動的に求められる重みが、補正部21における補正処理に用いられ、ユーザから精度の高い近似が可能な学習対が入力された場合には、その学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbによって求められる補正重みが、補正部21における補正処理に用いられる。
従って、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合と、精度の高い近似が可能な学習対が得られた場合とでは、やはり、式(8)の重みw(t)が変化し、その結果、その式(8)で表される補正処理の内容も変更することとなるから、かかる観点からも、図4のNR回路では、ユーザの操作にしたがい、その「処理の内容」が、ユーザにとって所望の出力信号が得られるように変更されているということができる。
さらに、図4のNR回路では、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合と、精度の高い近似が可能な学習対が得られた場合とで、補正処理に用いられる重みを算出する体系が変化する。
即ち、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合には、ユーザの操作に関係なく、入力信頼度と出力信頼度から、重みが求められる。一方、精度の高い近似が可能な学習対が得られた場合には、ユーザの操作に基づいて得られた学習対を用いた学習によって求められたパラメータ制御データに基づいて、重みが求められる。
従って、この場合、ユーザの操作にしたがい、重みを算出する処理体系、つまり、重みの求め方のアルゴリズムが、ユーザにとって所望の出力信号が得られるように変更されているということができる。
ここで、重みを求める処理を、関数Fで表すこととすると、上述の「処理の内容」の変更というのは、関数Fが変更されることに相当する。そして、関数Fが変更される場合としては、大きく分けて関数Fそれ自体の形が変わる場合(例えば、F=xからF=x2に変わる場合など)と、関数Fそれ自体の形は変わらないが、関数Fを定義する係数が変わる場合(例えば、F=2xからF=3xに変わる場合など)とがある。
いま、「処理の内容」の変更のうち、その処理を表す関数Fそれ自体の形が変わる場合を、「処理の構造」の変更というものとすると、上述のように、重みを算出する処理体系、すなわち、重みの求め方のアルゴリズムが変わることは、「処理の構造」の変更ということができる。
従って、図4のNR回路では、ユーザの操作にしたがい、その「処理の内容」も、さらには、その「処理の構造」も変更され、これにより、ユーザにとって所望の出力信号が得られるようになっている。
なお、入力信号としては、画像信号や音声信号は勿論、その他の信号を用いることが可能である。但し、入力信号が画像信号の場合は、入力信頼度は、処理しようとしている画素に対して、空間的または時間的に近い位置にある複数の画素から求められる分散に基づいて計算することになる。
また、上述の場合には、説明を簡単にするため、学習部22において、入力信頼度等から求められる重みwを、パラメータ制御データaおよびbによって定義される式(13)の一次式によって、補正重みWに補正するようにしたが、重みwの補正は、実際には、より高次の式によって行うのが望ましい。また、その高次の式の次数は、例えば、最適化装置が適用されるアプリケーション等に基づいて適切な値に設定するのが望ましい。
さらに、重みwから、補正重みWを求める式(以下、適宜、補正重み算出式という)としては、式(13)の1次式W=aw+bの他に、例えば、2次式W=aw2+bw+cや、3次式W=aw3+bw2+cw+dなどの複数を用意しておき(a,b,c,dは、所定の係数)、その複数の補正重み算出式のうちの、正規化誤差が最小になるものを採用するようにすることが可能である。なお、この場合、ユーザの操作によって得られる学習対から求められる正規化誤差が最小になる補正重み算出式が選択され、その選択された補正重み算出式によって、補正重みが求められることになる。即ち、ユーザの操作にしたがい、補正重みの求め方のアルゴリズムが変更されることになる。従って、この場合も、ユーザの操作にしたがい、「処理の構造」が変更されているということができる。
次に、図10は、図4の最適化装置1の処理部11を、NR回路に適用した場合の他の詳細構成例を示している。なお、図中、図4における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図10のNR回路は、重み補正部46が設けられておらず、入力信頼度計算部42と生徒データ生成部52に替えて、入力信頼度計算部61と生徒データ生成部62がそれぞれ設けられている他は、基本的に、図4における場合と同様に構成されている。
入力信頼度計算部61は、入力信号の入力信頼度を、入力信号の複数のサンプルと、パラメータ制御データメモリ57に記憶されたパラメータ制御データとから計算し、出力信頼度計算部43と重み計算部45に供給する。
生徒データ生成部62は、入力信号と、出力信頼度計算部43が出力する出力信頼度とを生徒データとして取得し、学習用データメモリ53に供給する。
なお、図10の実施の形態では、重み補正部46が設けられていないため、重み計算部45において求められた重みが、そのまま、選択部41に供給されるようになっており、選択部41は、この重み計算部45が出力する重みと、操作信号処理部50が出力する重みのうちのいずれか一方を、図4における場合と同様にして選択して出力するようになっている。
また、図10の実施の形態では、パラメータ制御データは、入力信頼度を制御するデータとして機能する。
図10のNR回路でも、図4のNR回路と同様に、補正処理、補正パラメータ演算処理、および制御データ学習処理が行われる。なお、補正処理としては、図6で説明した処理と同様の処理が行われるため、図10のNR回路については、補正処理の説明は省略し、補正パラメータ演算処理および制御データ学習処理について説明する。
即ち、図10のNR回路では、補正処理で用いられる、式(6)に示した重みを規定する入力信頼度αx(t)が、例えば、次式で定義されるものとして、補正パラメータ演算処理および制御データ学習処理が行われる。
但し、式(22)において、a1,a2,・・・,aNは、パラメータ制御データであり、x1,x2,・・・,xNは、いま処理を施そうとしている入力信号のサンプル(注目サンプル)と所定の関係にある入力信号のサンプルである。ここで、入力信号が、例えば、画像信号である場合には、x1,x2,・・・,xNとしては、例えば、注目サンプルとしての画素(図11において×印で示す)と、その画素から、空間的または時間的に近い位置にある画素(図11に○印で示す)を用いることができる。
式(22)から、式(6)で与えられる重みw(t)は、式(23)に示すように表すことができる。
従って、入力信号x1,x2,・・・,xNが入力された場合に、ユーザから与えられた重みWを得るためには、式(23)から、次式を満たすようなパラメータ制御データa1,a2,・・・,aNを求めれば良いことになる。
そこで、式(24)を変形すると、式(25)を得ることができる。
式(25)を常時満たすパラメータ制御データa1,a2,・・・,aNを求めることは、一般に困難であるため、ここでは、例えば、式(25)の左辺と右辺の自乗誤差の総和が最小になるパラメータ制御データa1,a2,・・・,aNを、最小自乗法により求めることを考える。
ここで、式(25)の左辺と右辺の自乗誤差の総和を最小にするということは、式(23)によって与えられる重みw(t)と、ユーザによって与えられる重みWとの自乗誤差を最小にすること、即ち、ユーザによって与えられる重みWを教師データとするとともに、式(23)の重みw(t)を定義する入力信号x1,x2,・・・,xN、および出力信頼度αy(t-1)を生徒データとして、その生徒データから、式(23)によって計算される重みw(t)と、ユーザによって与えられる教師データとしての重みWとの自乗誤差を最小にすることと等価であり、そのようなパラメータ制御データa1,a2,・・・,aNと、生徒データとから式(23)によって計算される重みw(t)は、教師データWとの誤差が小さいものとなる。
式(25)の左辺と右辺の自乗誤差e2は、式(26)で与えられる。
自乗誤差e2を最小にするパラメータ制御データa1,a2,・・・,aNは、式(26)の自乗誤差e2を、a1,a2,・・・,aNそれぞれで偏微分したものが0となるという条件、即ち、次式によって与えられる。
式(27)に、式(26)を代入して計算すると、式(28)が得られる。
従って、行列X,A,Yそれぞれを、式(29)に示すように定義すると、これらの行列X,A,Yには、式(28)から、式(30)の関係が成立する。
但し、式(29)におけるサメーション(Σ)は、入力信号x1乃至xNと、その入力信号x1乃至xNが入力されたときにユーザから与えられた重みWとのセットの数についてのサメーションを意味する。
式(30)は、例えば、コレスキー法などによって、行列(ベクトル)A、即ち、パラメータ制御データa1,a2,・・・,aNについて解くことができる。
図10のNR回路は、以上のように、ユーザによって与えられる重みWを教師データとするとともに、式(23)の重みw(t)を定義する入力信号x1,x2,・・・,xN、および出力信頼度αy(t-1)を生徒データとして、その生徒データから、式(23)によって計算される重みw(t)と、ユーザによって与えられる教師データとしての重みWとの自乗誤差を最小にするパラメータ制御データa1,a2,・・・,aNを、最小自乗法により学習する制御データ学習処理を行う。さらに、図10のNR回路は、そのパラメータ制御データa1乃至aNで定義される式(22)から入力信頼度αx(t)を求め、さらに、その入力信頼度αx(t)と出力信頼度αy(t-1)から、式(23)にしたがって、補正パラメータとしての重みを求める補正パラメータ演算処理を行う。
そこで、図12のフローチャートを参照して、図10のNR回路による補正パラメータ演算処理について説明する。
補正パラメータ演算処理では、まず最初に、ステップS61において、入力信頼度計算部61が、パラメータ制御データメモリ57からパラメータ制御データを読み出し、ステップS62に進む。ステップS62では、入力信頼度計算部61は、パラメータ制御データメモリ57から読み出したパラメータ制御データが、入力信頼度をパラメータ制御データを用いずに求めるモード、即ち、ユーザによる操作部2の操作に関係なく、入力信頼度を、入力信号だけから、いわば自動的に求めるモード(このモードも、以下、適宜、オートモードという)を表すオートモードデータとなっているかどうかを判定する。
ステップS62において、パラメータ制御データがオートモードデータでないと判定された場合、ステップS63に進み、入力信頼度計算部61は、パラメータ制御データメモリ57から読み出したパラメータ制御データa1乃至aNによって定義される式(22)の一次式にしたがい、そこに供給される最新のN個の入力信号のサンプルx1乃至xNを用いて求め、出力信頼度計算部43および重み計算部45に供給して、ステップS65に進む。
また、ステップS62において、パラメータ制御データがオートモードデータであると判定された場合、ステップS64に進み、入力信頼度計算部61は、例えば、図7のステップS31における場合と同様に、入力信号のみを用い、その分散に基づく入力信頼度αx(t)を求め、出力信頼度計算部43および重み計算部45に供給する。
そして、ステップS65では、重み計算部45は、入力信頼度計算部61からの入力信頼度αx(t)と、ラッチ回路44においてラッチされた、出力信頼度計算部43が1サンプル前に出力した出力信頼度αy(t-1)とを用い、式(23)にしたがって、重みw(t)を求める。この重みw(t)は、重み計算部45から選択部41に供給される。
その後、ステップS66に進み、出力信頼度計算部43は、図7のステップS37における場合と同様に、入力信頼度計算部61から供給された入力信頼度αx(t)と、ラッチ回路44がラッチしている1サンプル前の出力信頼度αy(t-1)とを、式(5)にしたがって加算することで、出力信頼度αy(t)を更新し、ラッチ回路44に上書きする形で記憶させる。
そして、ステップS67に進み、選択部41は、操作信号処理部50の出力から、操作部2がユーザによって操作されているかどうかを判定する。ステップS67において、操作部2が操作されていないと判定された場合、ステップS68に進み、選択部41は、重み計算部45から供給された重みを選択し、補正部21に出力して、ステップS61に戻る。
また、ステップS67において、操作部2が操作されていると判定された場合、ステップS69に進み、選択部41は、その操作に応じて、操作信号処理部50が出力する重みを選択し、補正部21に出力して、ステップS61に戻る。
従って、図12の補正パラメータ演算処理においては、操作部2が操作されていない場合は、入力信頼度に基づいて算出された重みが、補正部21に供給され、また、操作部2が操作されている場合は、その操作信号に対応する重みが、補正部21に供給される。その結果、補正部21では、操作部2が操作されていない場合は、入力信頼度に基づく重みによって、入力信号が補正され、操作部2が操作されている場合には、その操作信号に対応する重みによって、入力信号が補正される。
さらに、図12の補正パラメータ演算処理においては、オートモードの場合は、操作部2の操作に関係なく、入力信号の分散に基づく入力信頼度から、補正処理に用いられる重みが求められ、オートモードでない場合には、操作部2の操作に基づいて、後述する図13の制御データ学習処理による学習によって得られるパラメータ制御データを用いて求められる入力信頼度から、補正処理に用いられる重みが求められる。
次に、図13のフローチャートを参照して、図10のNR回路が行う制御データ学習処理を説明する。
制御データ学習処理では、まず最初に、ステップS71において、図8のステップS41における場合と同様に、操作信号処理部50が、学習用操作信号を、操作部2から受信したかどうかを判定し、受信していないと判定した場合、ステップS71に戻る。
また、ステップS71において、操作部2から、学習用操作信号を受信したと判定された場合、即ち、例えば、操作部2が、その操作の開始後、第1の時間t1以上の間隔をあけることなく、第2の時間t2以上連続して操作され、その後、第3の時間t3以上連続して、その操作が停止された場合や、操作部2の操作の開始後、第3の時間t3以上連続して、その操作が停止された場合など、ユーザが、所望の出力信号を得られるように、操作部2の操作を行ったと判定することができる場合、ステップS72に進み、教師データ生成部51が教師データを生成するとともに、生徒データ生成部62が生徒データを生成する。
即ち、操作信号処理部50は、学習用操作信号を受信した場合、その学習用操作信号に対応する重みWを、学習フラグとともに、教師データ生成部51および生徒データ生成部62に供給する。教師データ生成部51は、学習フラグ付きの重みWを受信すると、その重みWを、教師データとして取得し、学習用データメモリ53に供給する。
一方、生徒データ生成部62は、入力信号をバッファリングするバッファ(図示せず)を内蔵しており、入力信号を、そのバッファに、その記憶容量分だけ常に記憶しており、学習フラグ付きの重みを受信すると、そのときに入力された入力信号のサンプルと所定の位置関係にある入力信号のサンプルx1乃至xNを、その内蔵するバッファから読み出す。さらに、生徒データ生成部62は、出力信頼度計算部43から、出力信頼度αy(t-1)を読み出す。そして、生徒データ生成部62は、これらの入力信号のサンプルx1乃至xNと、出力信頼度αy(t-1)とを、生徒データとして、学習用データメモリ53に供給する。
学習用データメモリ53は、教師データ生成部51から教師データWを受信するとともに、生徒データ生成部62から生徒データx1乃至xNおよびαy(t-1)を受信すると、ステップS73において、その最新の教師データWと生徒データx1乃至xNおよびαy(t-1)のセット(学習対)を記憶し、ステップS74に進む。
ステップS74では、パラメータ制御データ計算部54が、教師データと生徒データを対象として、最小自乗法における足し込みを行う。
即ち、パラメータ制御データ計算部54は、式(29)における行列XとYの要素となっている生徒データどうしの積、および生徒データと教師データの積、並びにそれらのサメーションに相当する演算を行う。
なお、ステップS74における足し込みは、図8のステップS44における場合と同様に行われる。即ち、学習情報メモリ55には、前回の足し込み結果が、学習情報として記憶されており、パラメータ制御データ計算部54は、この学習情報を用いて、最新の教師データと生徒データについての足し込みを行う。
パラメータ制御データ計算部54は、ステップS74において足し込みを行った後、その足し込み結果を、学習情報として、学習情報メモリ55に上書きする形で記憶させ、ステップS75に進み、パラメータ制御データ計算部54が、学習情報メモリ55に記憶された学習情報としての足し込み結果から、式(30)を、行列Aについて解くことが可能であるかどうか、即ち、パラメータ制御データa1乃至aNを求めることが可能であるかどうかを判定する。
即ち、式(30)は、所定数以上の学習対から得られた学習情報が存在しなければ、行列Aについて解くことができず、その要素となっているパラメータ制御データa1乃至aNを求めることができない。そこで、ステップS75では、学習情報から、パラメータ制御データa1乃至aNを求めることが可能であるかどうかが判定される。
ステップS75において、パラメータ制御データa1乃至aNを求めることが可能でないと判定された場合、パラメータ制御データ計算部54は、その旨を、判定制御部56に供給し、ステップS79に進む。ステップS79では、判定制御部56は、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS71に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データa1乃至aNを求めることができるだけの学習情報が存在しない場合には、図12で説明したように、入力信号の分散に基づく入力信頼度から求められる重みが、入力信号x(t)の補正に用いられることになる。
一方、ステップS75において、パラメータ制御データを求めることが可能であると判定された場合、ステップS76に進み、パラメータ制御データ計算部54は、学習情報を用い、式(30)を、行列Aについて解くことで、その要素となっているパラメータ制御データa1乃至aNを求め、判定制御部56に供給して、ステップS77に進む。
ステップS77では、判定制御部56は、パラメータ制御データ計算部54からのパラメータ制御データa1乃至aNによって定義される式(23)にしたがい、学習用データメモリ53に記憶された各生徒データから、対応する教師データの予測値を求め、その予測値の予測誤差(学習用データメモリ53に記憶されている教師データに対する誤差)の、式(26)で表される自乗誤差の総和を求める。さらに、判定制御部56は、その自乗誤差の総和を、例えば、学習用データメモリ53に記憶されている学習対の数で除算した正規化誤差を求め、ステップS78に進む。
ステップS78では、判定制御部56は、正規化誤差が、所定の閾値S1より大(以上)であるかどうかを判定する。ステップS78において、正規化誤差が所定の閾値S1より大であると判定された場合、即ち、パラメータ制御データa1乃至aNによって定義される式(23)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合、ステップS79に進み、判定制御部56は、上述したように、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS71に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データa1乃至aNを求めることができても、そのパラメータ制御データa1乃至aNによって定義される式(23)が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、パラメータ制御データa1乃至aNを求めることができるだけの学習情報が存在しない場合と同様に、入力信号の分散に基づく入力信頼度から求められる重みが、入力信号x(t)の補正に用いられることになる。
一方、ステップS78において、正規化誤差が所定の閾値S1より大でないと判定された場合、即ち、パラメータ制御データa1乃至aNによって定義される式(23)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合、ステップS80に進み、判定制御部56は、パラメータ制御データ計算部54で求められたパラメータ制御データa1乃至aNによって定義される式(23)の面(線)と、学習用データメモリ53に記憶された最新の教師データおよび生徒データで規定される点との間の誤差(距離)εを求める。
そして、ステップS81に進み、判定制御部56は、誤差εの大きさが、所定の閾値S2より大(以上)であるかどうかを判定し、大でないと判定した場合、ステップS82をスキップして、ステップS83に進み、判定制御部56は、ステップS76で求められたパラメータ制御データa1乃至aNを、パラメータ制御部データメモリ37に出力する。パラメータ制御データメモリ57は、判定制御部56からのパラメータ制御データa1乃至aNを上書きする形で記憶し、ステップS71に戻り、以下、同様の処理が繰り返される。
一方、ステップS81において、誤差εの大きさが、所定の閾値S2より大であると判定された場合、ステップS82に進み、判定制御部56は、パラメータ制御データ計算部54を制御することにより、学習用データメモリ53に記憶された最近の教師データと生徒データのみを用いて、パラメータ制御データa1乃至aNを再計算させる。そして、ステップS83に進み、判定制御部56は、ステップS82で求められたパラメータ制御データa1乃至aNを、パラメータ制御データメモリ57に出力し、上書きする形で記憶させ、ステップS71に戻る。
即ち、図13の実施の形態においても、図8の実施の形態における場合と同様に、ステップS82において、いままでに与えられた教師データおよび生徒データから求められたパラメータ制御データa1乃至aNから式(23)で定義される面と、最新の教師データおよび生徒データで規定される点との間の誤差εが求められる。
そして、この誤差εの大きさが、閾値S2より大でない場合には、ステップS76で求められたパラメータ制御データa1乃至aNによって定義される式(23)の面が、最新の教師データと生徒データで規定される点も含め、いままでに与えられた教師データと生徒データで規定される点のいずれも、比較的精度良く近似していると考えられるため、そのパラメータ制御データa1乃至aNが、パラメータ制御データメモリ57に記憶される。
一方、誤差εの大きさが、閾値S2より大の場合には、ステップS76で求められたパラメータ制御データa1乃至aNによって定義される式(23)の面から、最新の教師データと生徒データで規定される点が比較的大きく離れていると考えられるため、判定制御部56は、パラメータ制御データ計算部54を制御することにより、ステップS82において、学習用データメモリ53に記憶された最近の教師データと生徒データのみを用いて、パラメータ制御データa1乃至aNを再計算させる。
図10のNR回路では、入力信頼度計算部61において、以上のようにして求められたパラメータ制御データa1乃至aNから、式(22)にしたがい、入力信頼度αx(t)が計算される。
従って、この場合も、ユーザの操作に応じて供給される学習用操作信号に基づいて、式(22)の入力信頼度αx(t)を規定するパラメータ制御データa1乃至aNの学習が行われるので、ユーザの操作を、ユーザが知らないうちに学習することができ、さらに、その学習結果を用いて、ユーザにとって最適な処理を行うことが可能となる。
また、図10のNR回路も、図4のNR回路と同様に、ユーザが操作部2を操作すると、操作信号処理部50は、その操作に対応した操作信号が表す重みを出力し、選択部41は、その重みを選択して、補正部21に供給する。この場合、補正部21では、ユーザの操作に対応した重みを用いて、式(8)で表される補正処理が行われる。そして、ユーザの操作により式(8)の重みw(t)が変更される場合には、当然に、式(8)で表される処理(補正処理)の内容も変更することとなるから、図10のNR回路でも、ユーザの操作にしたがい、その「処理の内容」が、ユーザにとって所望の出力信号が得られるように変更されているということができる。
さらに、図10のNR回路では、パラメータ制御データa1乃至aNを求めることができない場合や、求めることができても、そのパラメータ制御データa1乃至aNによって定義される式(23)が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、入力信号の分散に基づく入力信頼度から求められる重みが、補正部21における補正処理に用いられる。一方、パラメータ制御データa1乃至aNを求めることができ、かつ、そのパラメータ制御データa1乃至aNによって定義される式(23)が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合には、ユーザによる操作部2の操作に基づいて得られる学習対を用いて学習が行われることにより求められたパラメータ制御データa1乃至aNによって定義される式(23)にしたがって、入力信号およびパラメータ制御データa1乃至aN(から算出される入力信頼度)と出力信頼度とから求められる重みが、補正部21による補正処理に用いられる。
即ち、図10のNR回路も、図4のNR回路における場合と同様に、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合と、精度の高い近似が可能な学習対が得られた場合とで、補正処理に用いられる重みを算出するアルゴリズムが変更されている。
従って、図10のNR回路でも、ユーザの操作にしたがい、その「処理の内容」も、さらには、その「処理の構造」も変更され、これにより、ユーザにとって所望の出力信号が出力されることになる。
なお、上述の場合においては、出力信頼度αy(t-1)を生徒データとして用いて、パラメータ制御データa1乃至aNを求めているが、この出力信頼度αy(t-1)は、式(5)に示したように、入力信頼度αx(t-1)から求められる。そして、入力信頼度αx(t)は、図13の制御データ学習処理が行われることにより、徐々に、ユーザが希望する重みが得られるように改善されていくから、あわせて、出力信頼度αy(t-1)も改善されていくことになる。
また、上述の場合には、出力信頼度を既知の値とするとともに、入力信頼度を、パラメータ制御データa1乃至aNによって規定し、ユーザが希望する重みが得られるようなパラメータ制御データa1乃至aNを求めるようにしたが、これとは逆に、入力信頼度を既知の値とするとともに、出力信頼度を、パラメータ制御データa1乃至aNによって規定し、ユーザが希望する重みが得られるようなパラメータ制御データa1乃至aNを求めることも可能である。
さらに、例えば、出力信頼度を既知の値とするとともに、入力信頼度を、パラメータ制御データa1乃至aNによって規定し、ユーザが希望する重みが得られるようなパラメータ制御データa1乃至aNを求め、さらに、そのパラメータ制御データa1乃至aNによって得られる入力信頼度を既知の値とするとともに、出力信頼度を、パラメータ制御データa1’乃至aN’によって規定し、ユーザが希望する重みが得られるようなパラメータ制御データa1’乃至aN’を求めること、即ち、2セットのパラメータ制御データa1乃至aNおよびa1’乃至aN’を求めるようにすることも可能である。
また、上述の場合には、重みを、式(6)に示したように、入力信頼度αx(t)と出力信頼度αy(t-1)で定義して、パラメータ制御データa1乃至aNを求めるようにしたが、その他、重みを、例えば、式(31)に示すように、入力信頼度αx(t)と出力信頼度αy(t-1)の他、入力信頼度αx(t)または出力信頼度αy(t-1)の補正項△αをも用いて定義して、パラメータ制御データa1乃至aNと補正項△αを求めるようにすることが可能である。
さらに、入力信頼度を、パラメータ制御データによって定義する式は、式(22)に限定されるものではない。
次に、図14は、図1の最適化装置の第2の詳細構成例を示している。図14の最適化装置1においては、図2の最適化装置1に内部情報生成部71が新たに設けられて構成されており、処理部11の構成は図2の場合と同様であるのでその説明は省略する。尚、図14の実施の形態では、最適化装置1の外部に表示部81が設けられている。
内部情報生成部71は、処理部11の内部情報を読出し、画像情報に変換した後、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)からなる表示部81に出力して、表示させる(呈示させる)。より詳細には、表示部81は、内部情報をそのまま数値的に表示するようにしても良いし、例えば、レベルゲージのような表示画面を設定し、内部情報の値に応じてレベルゲージが変動するような表示にしても良い。また、表示部81は、これに限るものではなく、視覚的に内部情報を表示(呈示)するものであればこれ以外の表示方法であってもよい。尚、内部情報とは、例えば、補正部21の重みメモリ31や32に記憶される重みや、学習部22の学習用データメモリ53や学習情報メモリ55の記憶内容その他を採用することができる。また、内部情報は、表示以外の呈示(提示)方法、すなわち、音などによって、ユーザに呈示しても良い。
次に、図15のフローチャートを参照して、図14のNR回路の最適化処理について説明する。この処理は、図3のフローチャートを参照して説明した、最適化処理と基本的には同様であり、内部情報生成部71による内部情報を表示する処理が加えられている点が異なる。すなわち、ステップS91乃至S101において、図3のステップS1乃至S11とそれぞれ同様な処理が行われ、ステップS102に進む。
ステップS102において、表示部81に、重みWが表示される。すなわち、内部情報生成部71は、例えば、重みメモリ31に記憶されている重みWの値を、内部情報として読出し、表示部81で表示可能な画像信号に変換して表示部81に出力し、重みWを表示(呈示)させ、ステップS91に戻る。
図15のフローチャートを参照して説明した処理により、処理部11において実際に実行している処理に関する内部情報としての重みWが、ユーザに表示(呈示)され、その結果、ユーザは、その内部情報の表示を見ながら最適な出力信号を得ることができるように操作部2を操作することが可能となる。尚、内部情報生成部71では、上述した重みなどの内部情報の他、例えば、学習部22のパラメータ制御データメモリ37(図4,図10)よりパラメータ制御データa,bを読み出して表示するようにしても良い。また、選択部41(図4,図10)により選択された重みが、学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbから求められた重みであるのか、若しくは、入力信頼度と出力信頼度から求められる重みであるのかを表す画像情報を内部情報として生成するようにしても良い。
次に、図16は、図1の最適化装置を適用した、自動車の自動走行装置の一実施の形態の構成例を示している。
自動走行装置においては、自動車の位置座標(X,Y)や走行方向θが求められ、所定の軌跡に沿って、自動車を走行させるようになっている。しかしながら、自動走行装置において求められる座標(X,Y)や走行方向θには、誤差が含まれる場合が多く、この場合には、自動車が、所定の軌跡からはずれて走行することがある。そこで、図16の自動走行装置においては、ユーザの操作を、ユーザが知らないうちに学習し、その学習結果に基づいて、自動車を、所定の軌跡に沿って走行させるようになっている。即ち、自動車が、所定の軌跡からはずれて走行しだした場合、一般に、ユーザは、自動車を所定の軌跡に沿って走行させるように、ハンドルやアクセルなどを操作する。そこで、図16の自動走行装置では、そのようなユーザの操作を、ユーザが知らないうちに学習し、その学習結果に基づいて、自動車を、徐々に、所定の軌跡に沿って走行させるように制御する。
ジャイロセンサ91は、自動車のヨーレートrを検知し、演算部93に供給する。車輪パルサ92は、自動車の車輪の回転角度に応じた数の電気パルスを、演算部93に供給する。
演算部93は、ジャイロセンサ91と車輪パルサ92の出力から、例えば、次式にしたがって、自動車の座標(X,Y)と走行方向θを演算し、最適化装置94に供給する。
但し、式(32)において、θ(0)は自動車の走行開始時の方向を表し、(X(0),Y(0))は、自動車の走行開始時の座標を表す。なお、θ(0)や(X(0),Y(0))は、例えば、図示せぬGPS(Global Positioning System)等を利用して求めることができる。また、Vrは、自動車の走行速度を表し、βは、自動車の重心点のスリップアングルを表す。
ここで、上述のようにして、自動車の座標(X,Y)と走行方向θを求める方法は、例えば、特開平10-69219号公報に開示されている。
最適化装置94は、処理部101から構成され、ユーザによる操作部98の操作を学習し、即ち、ユーザが操作部98を操作することにより供給される操作信号に基づいて学習を行い、その学習結果に基づき、演算部93からの座標(X,Y)や走行方向θを、ユーザが所望する走行が行われるように補正し、自動走行制御部95に供給する。
自動走行制御部95は、地図データと、自動走行すべき、あらかじめ設定された軌跡(以下、適宜、設定軌跡という)を記憶している。そして、自動走行制御部95は、最適化装置94の処理部101から供給される座標(X,Y)と走行方向θから、自動車の現在位置と走行方向を認識し、自動車が設定軌跡に沿って走行するように、後述する駆動部97を制御する制御信号を生成して、選択部96に出力する。
選択部96には、自動走行制御部95から制御信号が供給される他、操作部98から操作信号が供給されるようになっている。そして、選択部96は、自動走行制御部95からの制御信号と、操作部98からの操作信号のうちの操作信号を、優先的に選択し、駆動部97に出力する。即ち、選択部96は、通常は、自動走行制御部95からの制御信号を選択し、駆動部97に出力するが、操作部98からの操作信号を受信すると、その操作信号を受信している間は、自動走行制御部95からの制御信号の出力を停止して、操作部98からの操作信号を、駆動部97に出力する。
駆動部97は、選択部96からの制御信号または操作信号にしたがい、自動車の図示せぬエンジンや、車輪、ブレーキ、クラッチ等の、走行に必要な各機構を駆動する。操作部98は、例えば、ハンドルや、アクセルペダル、ブレーキペダル、クラッチペダル等で構成され、ユーザの操作に対応した操作信号を、最適化装置94および選択部96に供給する。
以上のように構成される自動走行装置では、演算部93において、ジャイロセンサ91と車輪パルサ92の出力から、自動車の現在の座標(X,Y)と走行方向θが演算され、最適化装置94の処理部101を介して、自動走行制御部95に供給される。自動走行制御部95は、そこに供給される座標(X,Y)と走行方向θから、自動車の現在位置と走行方向を認識し、自動車が設定軌跡に沿って走行するように、後述する駆動部97を制御する制御信号を生成して、選択部96を介して、駆動部97に供給する。これにより、自動車は、自動走行制御部95が出力する制御信号にしたがって自動走行する。
一方、ユーザが操作部98を操作すると、その操作に対応した操作信号が、選択部96を介して、駆動部97に供給され、これにより、自動車は、ユーザによる操作部98の操作にしたがって走行する。
さらに、ユーザが操作部98を操作することにより、操作部98が出力する操作信号は、最適化装置94の処理部101にも供給される。最適化装置94は、ユーザが操作部98を操作することにより供給される操作信号に基づいて学習を行う。そして、最適化装置94の処理部101は、ユーザが操作部98の操作を停止すると、演算部93から供給される座標(X,Y)や走行方向θを、学習結果に基づき、ユーザが所望する走行としての設定軌跡に沿った走行が行われるように補正し、自動走行制御部95に供給する。
次に、図17は、図16の最適化装置94の処理部101の構成例を示している。なお、図中、図4の処理部11における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図17の処理部101は、選択部41が設けられておらず、操作信号処理部50と教師データ生成部51に替えて、操作信号処理部110と教師データ生成部111がそれぞれ設けられている他は、基本的に、図4の処理部11と同様に構成されている。
ここで、以下においては、説明を簡単にするため、演算部93から最適化装置94の処理部101に供給される座標(X,Y)と走行方向θのうち、走行方向θにだけ注目して、説明を行う。但し、座標(X,Y)についても、以下で説明する走行方向θに対する処理と同様の処理を行うことが可能である。
操作信号処理部110は、操作部98からの操作信号を受信し、学習用操作信号かどうかを判定する。そして、操作信号処理部110は、操作信号が学習用操作信号である場合には、その旨を表すメッセージを、生徒データ生成部52と教師データ生成部111に供給する。
教師データ生成部111には、操作信号処理部110から、操作信号が学習用操作信号である旨のメッセージ(以下、適宜、学習メッセージという)が供給される他、入力信号としての、演算部93からの走行方向θが供給されるようになっている。さらに、教師データ生成部111には、補正部21(演算器36)が出力する出力信号としての、演算部93からの走行方向θを補正したもの(以下、適宜、補正走行方向という)も供給されるようになっている。教師データ生成部111は、学習メッセージを受信したときに供給される入力信号としての走行方向θと、出力信号としての補正走行方向とから、学習用操作信号に対応する重みWを求め、教師データとして、学習用データメモリ53に供給する。
即ち、いまの場合、教師データとしては、自動車が所定の方向に向くように、ユーザが、ハンドルとしての操作部98を操作した後に、自動車が所定の方向を向いたときの重みWを求める必要がある。つまり、教師データとしては、ユーザが、ハンドルとしての操作部98を操作し、自動車が所望の方向を向くようになった直後の、その走行方向θを表す入力信号x(t)の補正に用いられる重みWを採用する必要がある。この、操作部98の操作直後の入力信号x(t)は、式(8)にしたがい、その入力信号x(t)と、操作部98の操作直前に出力される出力信号y(t−1)との重み付け加算によって、補正走行方向としての、操作部98の操作直後の出力信号y(t)に補正されることから、操作部98の操作直後の入力信号x(t)の補正に用いられる重みWは、式(8)から、操作部98の操作直後の入力信号x(t)並びに操作部98の操作直後の出力信号y(t)および操作部98の操作直前のy(t−1)によって求めることができる。そこで、教師データ生成部111は、学習メッセージを受信した直後に供給される入力信号x(t)としての走行方向θ、および学習メッセージを受信した直前と直後にそれぞれ供給される出力信号y(t−1)とy(t)としての補正走行方向から、教師データとしての重みWを求め、学習用データメモリ53に供給する。
なお、生徒データ生成部52は、学習メッセージを受信すると、その直前までに供給された入力信号としての走行方向から求められている重みwを、生徒データとして、学習用データメモリ53に供給する。即ち、生徒データ生成部52は、図4で説明したように、入力信頼度計算部42、出力信頼度計算部43、ラッチ回路44、および重み計算部45と同様に構成され、そこに供給される入力信号としての走行方向から重みw(重み計算部45で求められるのと同一の重みw)を計算しており、学習メッセージを受信する直前において計算された重みwを、生徒データとして、学習用データメモリ53に供給する。
従って、パラメータ制御データ計算部54では、ユーザが操作部98を操作して、走行方向が、ユーザが所望する方向となったときの重みWを教師データとするとともに、ユーザが操作部98を操作する直前に重み計算部45が出力したのと同一の重みwを生徒データとして、式(20)および(21)に示したパラメータ制御データaおよびbの計算が行われる。
そして、重み補正部46では、そのパラメータ制御データaおよびbを用いて、式(13)にしたがい、重み計算部45で求められた重みwが補正され、補正部21に供給される。
その結果、パラメータ制御データaおよびbは、ユーザが操作部98を操作する直前の走行方向を、ユーザが操作部98を操作した直後の走行方向に補正するように、重み計算部45で求められた重みwを補正するものとなるから、自動車は、設定軌跡に沿って自動走行するようになることになる。
即ち、ユーザが操作部98を操作するということは、ジャイロセンサ91の誤差や、その出力に含まれるノイズ、演算部93における演算誤差等に起因して、演算部93が出力する走行方向θが誤差を含み、自動車の真の走行方向を表していないために、自動車の実際の走行方向が、設定軌跡からはずれている状態になっていると考えられる。さらに、この場合におけるユーザによる操作部98の操作は、自動車の実際の走行方向を、設定軌跡に沿った方向にするものであると考えられる。従って、ユーザが操作部98を操作し、自動車の実際の走行方向が、設定軌跡に沿ったものとなったときにおける重みWを教師データとするとともに、ユーザが操作部98を操作する直前に重み計算部45で求められた重みw、即ち、設定軌跡からはずれている状態での重み計算部45が出力する重みwを生徒データとして学習を行うことにより、設定軌跡からはずれている状態での走行方向を、設定軌跡に沿った方向に補正するように、式(6)の重みを補正する式(13)のパラメータ制御データaおよびbが求められることになる。
次に、図17の最適化装置94の処理部101の処理について説明する。なお、図17の最適化装置94の処理部101では、図4のNR回路の処理部11と同様に、入力信号x(t)としての演算部93が出力する走行方向θを補正する補正処理、その補正処理に用いられる補正パラメータとしての重みを求める補正パラメータ演算処理、およびユーザによる操作部98(図16)の操作を学習することにより、補正パラメータとしての重みを制御(補正)するパラメータ制御データを求める制御データ学習処理が行われるが、補正処理は、図7で説明した図4のNR回路による補正処理と同一であるため、ここでは、図17の最適化装置94の処理部101が行う補正パラメータ演算処理と生徒データ学習処理について説明する。
まず、図18のフローチャートを参照して、図17の最適化装置94の処理部101が行う補正パラメータ演算処理について説明する。
補正パラメータ演算処理では、まず最初に、ステップS111において、入力信頼度計算部42が、図7のステップS31における場合と同様に、入力信号としての演算部93(図16)からの走行方向θの分散に基づく入力信頼度αx(t)を求め、出力信頼度計算部43および重み計算部45に供給する。
その後、ステップS112に進み、重み計算部45は、入力信頼度計算部42からの入力信頼度αx(t)を用い、式(6)にしたがって、重みw(t)を求め、重み補正部46に供給し、ステップS113に進む。
ステップS113では、重み補正部46は、パラメータ制御データメモリ57からパラメータ制御データを読み出し、ステップS114に進む。ステップS114では、重み補正部46は、パラメータ制御データメモリ57から読み出したパラメータ制御データが、重みw(t)を補正しないモード、即ち、ユーザによる操作部98(図16)の操作に関係なく、重み計算部45において、入力信頼度と出力信頼度から、いわば自動的に求められる重みw(t)を、そのまま入力信号x(t)を補正するための重みWとして用いるモード(オートモード)を表すオートモードデータとなっているかどうかを判定する。
ステップS113において、パラメータ制御データがオートモードデータでないと判定された場合、ステップS115に進み、重み補正部46は、重み計算部45から供給される重みw(t)を、パラメータ制御データメモリ57から供給されるパラメータ制御データaとbによって定義される式(13)の一次式にしたがって補正し、ステップS116に進む。ステップS116では、重み補正部46が、補正後の重みを、補正パラメータとして、補正部21に供給し、ステップS117に進む。
一方、ステップS114において、パラメータ制御データがオートモードデータであると判定された場合、ステップS115をスキップして、ステップS116に進み、重み補正部46は、重み計算部45からの重みw(t)を、補正パラメータとして、そのまま補正部21に供給し、ステップS117に進む。
ステップS117では、出力信頼度計算部43は、出力信頼度を更新する。即ち、出力信頼度計算部43は、直前のステップS31で入力信頼度計算部42が計算した入力信頼度αx(t)と、ラッチ回路44がラッチしている1サンプル前の出力信頼度αy(t-1)とを、式(5)にしたがって加算することで、現在の出力信頼度αy(t)を求め、ラッチ回路44に上書きする形で記憶させる。
ステップS117の処理後は、ステップS111に戻り、以下、同様の処理が繰り返される。
以上のように、図18の補正パラメータ演算処理においては、オートモードの場合は、操作部98の操作に関係なく、入力信頼度と出力信頼度から、補正処理に用いられる重みが求められ、オートモードでない場合には、操作部98の操作に基づいて、後述する図19の制御データ学習処理による学習によって得られるパラメータ制御データを用いて、補正処理に用いられる重みが求められる。
次に、図19のフローチャートを参照して、図17の最適化装置94の処理部101が行う制御データ学習処理について説明する。
制御データ学習処理では、まず最初に、ステップS131において、操作信号処理部110が、学習用操作信号を、操作部98(図16)から受信したかどうかを判定し、受信していないと判定した場合、ステップS101に戻る。
また、ステップS101において、操作部98から、学習用操作信号を受信したと判定された場合、即ち、例えば、操作部98としてハンドルなどが、その操作の開始後、第1の時間t1以上の間隔をあけることなく、第2の時間t2以上連続して操作され、その後、第3の時間t3以上連続して、その操作が停止された場合や、操作部98としてのハンドルの操作の開始後、第3の時間t3以上連続して、その操作が停止された場合など、自動車が所望の方向を向くように、ユーザが操作部98としてのハンドルの操作を行ったと判定することができる場合、ステップS132に進み、教師データ生成部111が教師データを生成するとともに、生徒データ生成部52が生徒データを生成する。
即ち、操作信号処理部110は、学習用操作信号を受信したと判定すると、学習メッセージを、教師データ生成部111および生徒データ生成部52に供給する。教師データ生成部111は、操作信号処理部110から学習メッセージを受信すると、ステップS132において、演算部93から供給される入力信号としての走行方向θと、補正部21(演算器36)が出力する出力信号としての、演算部93からの走行方向θを補正したもの(補正走行方向)とから、学習用操作信号に対応する重みWを求める。
具体的には、教師データ生成部111は、ユーザが、ハンドルとしての操作部98を操作し、自動車が所望の方向を向くようになった直後の、その走行方向θを表す入力信号x(t)を、演算部93(図16)から受信する。さらに、教師データ生成部111は、補正部21が出力する現在の出力信号y(t)と、その1時刻だけ前の出力信号y(t−1)、即ち、操作部98の操作直前の出力信号y(t−1)を保持するようになっており、これらの入力信号x(t)、並びに出力信号y(t)およびy(t−1)を用いて、式(8)にしたがい、学習用操作信号が与えられたときに補正部21で用いられた重みW(学習用操作信号に対応する重み)を求める。
なお、ここでは、説明を簡単にするために、ユーザによる操作部98としてのハンドルの操作が、t−1からtまでの1時刻の間に、瞬時に完了するものとする。
教師データ生成部111は、以上のようにして、学習用操作信号に対応する重みWを求めると、その重みWを、教師データとして、学習用データメモリ53に供給する。
さらに、ステップS132では、操作信号処理部110から学習メッセージを受信した生徒データ生成部52が、その直前までに、演算部93(図16)から供給された入力信号としての走行方向から求められる入力信頼度と出力信頼度を用いて計算された、重み計算部45が出力するのと同一の重みwを、生徒データとして、学習用データメモリ53に供給する。
従って、学習データメモリ33には、ユーザが操作部98を操作して、自動車の実際の走行方向が、ユーザが所望する方向となったときに補正部21で用いられた重みWを教師データとするとともに、ユーザが操作部98を操作する直前に、入力信頼度と出力信頼度から求められていた重みwを生徒データとする学習対が供給される。
学習用データメモリ53は、教師データ生成部111から教師データWを受信するとともに、生徒データ生成部52から生徒データwを受信すると、ステップS133において、その最新の教師データWと生徒データwのセットを記憶し、ステップS134に進む。
ステップS134では、パラメータ制御データ計算部54が、図8のステップS44における場合と同様に、学習用データメモリ53に記憶された最新の教師データと生徒データ、および学習情報メモリ55に記憶されている学習情報を対象として、最小自乗法における足し込みを行う。さらに、ステップS134では、パラメータ制御データ計算部54は、その足し込み結果を、学習情報として、学習情報メモリ55に上書きする形で記憶させ、ステップS135に進む。
ステップS135では、図8のステップS45における場合と同様に、パラメータ制御データ計算部54が、学習情報メモリ55に記憶された学習情報としての足し込み結果から、式(20)および(21)によって、パラメータ制御データaおよびbを求めることが可能であるかどうかを判定する。
ステップS135において、パラメータ制御データaおよびbを求めることが可能でないと判定された場合、パラメータ制御データ計算部54は、その旨を、判定制御部56に供給し、ステップS139に進む。ステップS139では、判定制御部56は、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS131に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データaおよびbを求めることができるだけの学習情報が存在しない場合には、重み計算部45(図17)において、入力信頼度と出力信頼度から自動的に求められる重みw(t)が、そのまま入力信号x(t)の補正に用いられることになる。
一方、ステップS135において、パラメータ制御データaおよびbを求めることが可能であると判定された場合、ステップS136に進み、パラメータ制御データ計算部54は、学習情報を用い、式(20)および(21)を計算することで、パラメータ制御データaおよびbを求め、判定制御部56に供給して、ステップS137に進む。
ステップS137では、判定制御部56は、パラメータ制御データ計算部54からのパラメータ制御データaおよびbによって定義される式(13)の一次式にしたがい、学習用データメモリ53に記憶された各生徒データから、対応する教師データの予測値を求め、その予測値の予測誤差(学習用データメモリ53に記憶されている教師データに対する誤差)の、式(15)で表される自乗誤差の総和を求める。さらに、判定制御部56は、その自乗誤差の総和を、例えば、学習用データメモリ53に記憶されている学習対の数で除算した正規化誤差を求め、ステップS138に進む。
ステップS138では、判定制御部56は、正規化誤差が、所定の閾値S1より大(以上)であるかどうかを判定する。ステップS138において、正規化誤差が所定の閾値S1より大であると判定された場合、即ち、パラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合、ステップS139に進み、判定制御部56は、上述したように、パラメータ制御データとして、オードモードを表すオートモードデータを、パラメータ制御データメモリ57に供給して記憶させる。そして、ステップS131に戻り、以下、同様の処理が繰り返される。
従って、パラメータ制御データaおよびbを求めることができても、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、パラメータ制御データaおよびbを求めることができるだけの学習情報が存在しない場合と同様に、入力信頼度と出力信頼度から自動的に求められる重みw(t)が、そのまま入力信号x(t)の補正に用いられることになる。
一方、ステップS138において、正規化誤差が所定の閾値S1より大でないと判定された場合、即ち、パラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合、ステップS140に進み、判定制御部56は、パラメータ制御データ計算部54からのパラメータ制御データaおよびbによって定義される式(13)の一次式で表される回帰直線と、学習用データメモリ53に記憶された最新の教師データおよび生徒データで規定される点との間の誤差(距離)εを求める。
そして、ステップS141に進み、判定制御部56は、誤差εの大きさが、所定の閾値S2より大(以上)であるかどうかを判定し、大でないと判定した場合、ステップS142をスキップして、ステップS143に進み、判定制御部56は、ステップS136で求められたパラメータ制御データaおよびbを、パラメータ制御部データメモリ37に出力する。パラメータ制御データメモリ57は、判定制御部56からのパラメータ制御データaおよびbを上書きする形で記憶し、ステップS131に戻る。
一方、ステップS141において、誤差εの大きさが、所定の閾値S2より大であると判定された場合、ステップS142に進み、判定制御部56は、パラメータ制御データ計算部54を制御することにより、学習用データメモリ53に記憶された最近の教師データと生徒データとしての、最新の学習対から所定数の過去の学習対のみを用いて(学習情報メモリ55の学習情報を用いずに)、パラメータ制御データaおよびbを再計算させる。そして、ステップS143に進み、判定制御部56は、ステップS142で求められたパラメータ制御データaおよびbを、パラメータ制御部データメモリ37に出力し、上書きする形で記憶させ、ステップS131に戻る。
従って、パラメータ制御データaおよびbを求めることができ、かつ、そのパラメータ制御データaおよびbによって定義される式(13)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合には、ユーザによる操作部2の操作に基づいて得られる学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbによって定義される式(13)にしたがって、入力信頼度と出力信頼度から求められる重みw(t)が補正され、その補正によって得られる補正重みWが、入力信号x(t)の補正に用いられることになる。
以上のように、図16の自動走行装置でも、ユーザの操作に応じて供給される操作信号が、学習に用いることができるかどうかが判定され、学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づいて、入力信号を補正する重みを補正するパラメータ制御データaおよびbが学習されるので、ユーザの操作を、ユーザが知らないうちに学習することができ、その結果、その学習結果に基づいて、ユーザにとって、徐々に適切な処理が行われるようになり、最終的には、ユーザにとって最適な処理が行われることになる。
即ち、ユーザが、走行方向を、設定軌跡に沿ったものに修正するように、操作部98を操作しているうちに、自動車は、徐々に、設定軌跡に沿って自動走行するようになる。
また、図17の最適化装置94の処理部101においても、図4のNR回路と同様に、ユーザによる操作部98の操作にしたがい、自動車の実際の走行方向が設定軌跡に沿ったものにあるように、補正部21で行われる補正処理(図6)で用いられる重みWが変更される。即ち、自動車の走行方向が所望の方向となるように、ユーザが操作部98を操作すると、演算部93(図16)が出力する入力信号としての走行方向θが変化し、その走行方向θから求められる入力信頼度、さらには、その入力信頼度から求められる出力信頼度も変化する。この入力信頼度および出力信頼度の変化によって、重み計算部45で求められる重みも変化し、この変化した重みは、重み補正部46を経由して、補正部21に供給される。そして、補正部21では、このようにして供給される重みを用いて、式(8)で表される補正処理が行われる。従って、ユーザが操作部98を操作した場合には、そのユーザの操作により式(8)の重みが変更され、図4のNR回路で説明した場合と同様に、当然に、式(8)で表される処理(補正処理)の内容も変更することとなるから、図17の最適化装置94の処理部101でも、ユーザの操作にしたがい、その「処理の内容」が、ユーザにとって所望の走行方向が得られるように変更されているということができる。
さらに、図17の最適化装置94の処理部101でも、図4のNR回路と同様に、ユーザから十分な数の学習対が入力されていない場合や、精度の高い近似が可能な学習対が入力されていない場合には、入力信頼度と出力信頼度とから自動的に求められる重みが、補正部21における補正処理に用いられ、ユーザから精度の高い近似が可能な学習対が入力された場合には、その学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbによって求められる補正重みが、補正部21における補正処理に用いられる。即ち、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合と、精度の高い近似が可能な学習対が得られた場合とで、補正処理に用いられる重みを算出するアルゴリズムが変更されている。
従って、図17の最適化装置94の処理部101でも、図4のNR回路と同様に、ユーザの操作にしたがい、その「処理の内容」も、さらには、その「処理の構造」も変更され、これにより、設定軌跡に沿った走行方向に、自動車が自動走行するようになっている。
なお、例えば、特開平7-13625号公報には、田植機等の作業車の走行制御装置が開示されており、この走行制御装置においては、ユーザの操作状態と、ジャイロセンサ等の検出結果に基づく情報との差が少なくなるように、自動操縦状態における制御パラメータの補正量が演算されるようになっている。従って、図16の自動走行装置は、ユーザの操作に基づいて、自動走行(自動操縦)のためのパラメータの補正量が変化する点において、特開平7-13625号公報に記載の走行制御装置と共通する。
しかしながら、図16の自動走行装置は、ユーザの操作に応じて供給される操作信号が、学習に用いることができるかどうかを判定する点、操作信号が学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づいて、入力信号を補正する重みを補正するパラメータ制御データを学習する点において、スイッチを手動で切り替えて、手動操縦制御モードとした場合にのみ、自動操縦状態における制御パラメータの補正量が演算される特開平7-13625号公報に記載の走行制御装置と大きく異なる。
かかる相違がある結果、特開平7-13625号公報に記載の走行制御装置では、ユーザが、適切な自動操縦が行われていないと感じるたびに、スイッチを切り替え、手動操縦制御モードとし、制御パラメータの補正量の演算の終了後に、再び、スイッチを切り替え、自動操縦制御モードとしなければならず、従って、ユーザに煩わしさを感じさせるおそれがある。
これに対して、図16の自動走行装置では、ユーザの操作に応じて供給される操作信号が、学習に用いることができるかどうかを判定し、さらに、学習に用いることのできる学習用操作信号である場合には、その学習用操作信号に基づいて、入力信号を補正する重みを補正するパラメータ制御データを学習するようにアルゴリズムが変更されるので、ユーザが、上述のようなスイッチの切り替えを行わなくても、適切な自動走行が行われるようになる。即ち、ユーザが知らないうちに、ユーザの操作の学習が行われるので、ユーザが走行方向を修正する操作をしているうちに、学習が進み、徐々に、ユーザが操作を行わなくても、自動車が設定軌跡に沿って走行するようになる。
さらに、図16の自動走行装置は、ユーザの操作に対応して、処理の構造が変化するが、その点においても、特開平7-13625号公報に記載の走行制御装置と異なる。
次に、図20は、図16の最適化装置94の処理部101の他の実施の形態を示している。なお、図中、図17における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図4および図10のNR回路の処理部11、並びに図17の最適化装置94の処理部101においては、ユーザの操作に基づいて得られる学習対を用いて、補正パラメータを制御するパラメータ制御データの学習が行われるようになっていたが、図20の処理部101では、ユーザの操作に基づいて得られる学習対を用いて、補正パラメータ自体の学習が行われるようになっている。
即ち、図20の実施の形態では、補正部21は、補正量計算部141と演算器142で構成され、学習部22は、学習用データメモリ53、学習情報メモリ55、判定制御部56、操作信号処理部110、教師データ生成部143、生徒データ生成部144、補正パラメータ計算部145、および補正パラメータメモリ146から構成されている。
補正量計算部141には、学習部22の補正パラメータメモリ146から、後述するような補正パラメータが供給されるようになっており、補正量計算部141は、その補正パラメータを用いて、入力信号としての走行方向θを補正する補正量を計算し、演算器142に供給する。
演算器142には、補正量計算部141から補正量が供給される他、入力信号としての走行方向θが、演算部93(図16)から供給されるようになっており、演算器142は、入力信号としての走行方向θを、それに補正量を加算することで補正し、その補正後の走行方向(補正走行方向)を、出力信号として、自動走行制御部95(図16)に出力する。
教師データ生成部143は、操作信号処理部110から学習メッセージを受信した直後に供給される入力信号としての走行方向を、教師データとして、学習用データメモリ53に供給する。生徒データ生成部144は、操作信号処理部130から学習メッセージを受信した直前に供給される入力信号としての走行方向を、生徒データとして、学習用データメモリ53に供給する
補正パラメータ計算部145は、判定制御部56の制御の下、学習用データメモリ53に記憶された学習用データとしての教師データおよび生徒データ、さらには、必要に応じて、学習情報メモリ55に記憶された学習情報を用いて、所定の統計的な誤差を最小にする補正パラメータを、新たな学習情報を演算することにより学習し、判定制御部56に供給する。また、補正パラメータ計算部145は、学習によって得られた新たな学習情報によって、学習情報メモリ55の記憶内容を更新する。
補正パラメータメモリ146は、判定制御部56が出力する補正パラメータを記憶する。
以上のように構成される最適化装置94では、演算部93から供給される走行方向θが、次のように補正される。
即ち、ジャイロセンサ91(図16)が出力する時刻tのヨーレートを、r’とすると、演算部93では、走行方向が、式(32)におけるrを、r’に置き換えた式から計算される。
いま、ジャイロセンサ91が出力するヨーレートr’に含まれる誤差をerとするとともに、真のヨーレートをrとすることとすると、ジャイロセンサ91が出力するヨーレートr’は、次式で表される。
演算部93において、ジャイロセンサ91が出力するヨーレートr’から計算される走行方向θ’は、式(32)と(33)から、次のようになる。
従って、演算部93で求められる走行方向θ’と、真のヨーレートrから求められる真の走行方向θとの関係は、次式で示すようになる。
ジャイロセンサ91が出力するヨーレートr’に含まれる誤差erが白色である場合には、式(35)の右辺第2項は、長期的にみれば、次式に示すように0になるから、特に問題はない。なお、短期的には、式(35)の右辺第2項は0にならないが、この場合は、図17の最適化装置94の処理部101によって対処することができる。
しかしながら、誤差erが有色である場合には、時間tの経過とともに、誤差erが蓄積され、演算部93で求められる走行方向θ’は、真の走行方向θから大きくずれることになる。
即ち、いま、説明を簡単にするために、ある一定方向に直進する自動走行を考えると、自動走行制御部95(図16)では、演算部93で求められる走行方向θ’が、図21に点線で示すように、一定となるような制御信号が生成される。
しかしながら、演算部93で求められる走行方向θ’に含まれる誤差erが有色である場合には、時間tの経過とともに、誤差erが蓄積されることから、演算部93で求められる走行方向θ’が、例えば、図21において実線で示すような曲線の軌跡を描くときが、自動車が真に直進しているときとなる。
このため、図20の最適化装置94の処理部101は、入力信号として供給される演算部93からの走行方向θ’が、図21において実線で示す軌跡を描くように、その走行方向θ’を補正する補正パラメータa0,a1,・・・,aNを、ユーザからの学習用操作信号に基づいて学習する補正パラメータ学習処理を行い、その補正パラメータa0乃至aNを用いて、演算部93からの走行方向θ’を補正する補正処理を行うようになっている。
そこで、図22および図23を参照して、図20の最適化装置94の処理部101が行う補正処理と補正パラメータ学習処理について説明する。なお、図18の実施の形態では、一定方向に直進する自動走行を行うこととしたが、図20の最適化装置94の処理部101は、任意の軌跡に沿った自動走行に適用することが可能である。
まず最初に、図22のフローチャートを参照して、図20の最適化装置94の処理部101が行う補正処理について説明する。
補正処理では、ステップS151において、補正量計算部141が、補正パラメータメモリ146に記憶された補正パラメータa0乃至aNを用いて、補正量を計算する。
即ち、ここでは、例えば、真の走行方向θが、補正パラメータa0乃至aNと、入力信号としての演算部93からの走行方向θ’とを用いて、式(37)に示すように表されることとして、補正量が計算される。
従って、式(37)から、補正量計算部141では、a0+a1t1+a2t2+・・・+aNtNが、補正量として計算される。この補正量は、演算器142に供給される。
演算器142では、ステップS152において、入力信号としての演算器53からの走行方向θ’と、補正量とが加算され、その加算値(式(37)のθ)が、出力信号として出力され、次の入力信号のサンプルが供給されるのを待って、ステップS151に戻り、以下、同様の処理が繰り返される。
次に、図23のフローチャートを参照して、図20の最適化装置94の処理部101が行う補正パラメータ学習処理について説明する。
補正パラメータ学習処理では、まず最初に、ステップS161において、操作信号処理部110が、学習用操作信号を、操作部98(図16)から受信したかどうかを判定し、受信していないと判定した場合、ステップS161に戻る。
また、ステップS161において、操作部98から、学習用操作信号を受信したと判定された場合、即ち、例えば、操作部98が、その操作の開始後、第1の時間t1以上の間隔をあけることなく、第2の時間t2以上連続して操作され、その後、第3の時間t3以上連続して、その操作が停止された場合や、操作部98の操作の開始後、第3の時間t3以上連続して、その操作が停止された場合など、ユーザが、自動車が所望の走行方向を向くように、操作部98の操作を行ったと判定することができる場合、ステップS162に進み、教師データ生成部143が教師データを生成するとともに、生徒データ生成部144が生徒データを生成する。
即ち、操作信号処理部110は、学習用操作信号を受信した場合、その旨の学習メッセージを、教師データ生成部143および生徒データ生成部144に供給する。教師データ生成部143は、学習メッセージを受信すると、その直後に供給される入力信号としての走行方向を、教師データとして取得し、学習用データメモリ53に供給する。
即ち、いまの場合、教師データとしては、自動車が所望の方向に向くように、ユーザが、ハンドルとしての操作部98を操作した後の走行方向を用いる必要がある。そこで、教師データ生成部143は、学習メッセージを受信した後に供給される入力信号としての走行方向θを、教師データとして、学習用データメモリ53に供給する。
また、生徒データ生成部52は、学習メッセージを受信すると、その直前に供給された入力信号としての走行方向、即ち、自動車が所望の方向を向く直前の走行方向を、生徒データとして、学習用データメモリ53に供給する。
その後、ステップS163に進み、学習用データメモリ53は、教師データ生成部51から教師データと生徒データのセットを記憶し、ステップS164に進む。
ステップS164では、補正パラメータ計算部145が、教師データと生徒データを対象として、式(22)乃至式(30)で説明した場合と同様の最小自乗法における足し込みを行う。
なお、ステップS164における足し込みは、上述した場合と同様に、学習情報メモリ55に記憶されている学習情報としての前回の足し込み結果を用いて行われる。また、ここでは、式(37)のθ’として、生徒データを用いて計算される式(37)のθとしての教師データの予測値と、対応する教師データとの自乗誤差の総和を最小にする補正パラメータa0乃至aNを求めるための足し込みが行われる。
補正パラメータ計算部145は、ステップS164において足し込みを行った後、その足し込み結果を、学習情報として、学習情報メモリ55に上書きする形で記憶させ、ステップS165に進む。
ステップS165では、補正パラメータ計算部145が、学習情報メモリ55に記憶された学習情報としての足し込み結果から、補正パラメータa1乃至aNを求めることが可能であるかどうかを判定する。
ステップS165において、補正パラメータa1乃至aNを求めることが可能でないと判定された場合、補正パラメータ計算部145は、その旨を、判定制御部56に供給し、ステップS169に進む。ステップS169では、判定制御部56は、補正パラメータとして、補正の禁止を表すディセーブル(disable)データを、補正パラメータメモリ146に供給して記憶させる。そして、ステップS161に戻り、以下、同様の処理が繰り返される。
従って、補正パラメータa1乃至aNを求めることができるだけの学習情報が存在しない場合には、補正部21では、入力信号の補正は行われない。即ち、入力信号の補正量は0とされる。
一方、ステップS165において、補正パラメータを求めることが可能であると判定された場合、ステップS166に進み、補正パラメータ計算部145は、学習情報を用いて、補正パラメータa0乃至aNを求め、判定制御部56に供給して、ステップS167に進む。
ステップS167において、判定制御部56は、補正パラメータ計算部145からのパラメータ制御データa1乃至aNによって定義される式(37)にしたがい、学習用データメモリ53に記憶された各生徒データから、対応する教師データの予測値を求め、その予測値の予測誤差(学習用データメモリ53に記憶されている教師データに対する誤差)の自乗和を求める。さらに、判定制御部56は、その予測誤差の自乗和を、例えば、学習用データメモリ53に記憶されている学習対の数で除算した正規化誤差を求め、ステップS168に進む。
ステップS168において、判定制御部56は、正規化誤差が、所定の閾値S1より大(以上)であるかどうかを判定する。ステップS168において、正規化誤差が所定の閾値S1より大であると判定された場合、即ち、補正パラメータa1乃至aNによって定義される式(37)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合、ステップS169に進み、判定制御部56は、上述したように、補正パラメータとして、ディセーブルデータを、補正パラメータメモリ146に供給して記憶させる。そして、ステップS161に戻り、以下、同様の処理が繰り返される。
従って、補正パラメータa1乃至aNを求めることができても、その補正パラメータa1乃至aNによって定義される式(37)が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似していない場合には、補正パラメータa1乃至aNを求めることができるだけの学習情報が存在しない場合と同様に、入力信号x(t)の補正量は0とされる。
一方、ステップS168において、正規化誤差が所定の閾値S1より大でないと判定された場合、即ち、補正パラメータa1乃至aNによって定義される式(37)の一次式が、学習用データメモリ53に記憶された生徒データと教師データとの関係を、精度良く近似している場合、ステップS170に進み、判定制御部56は、補正パラメータ計算部145からの補正パラメータa0乃至aNによって定義される式(37)の面と、学習用データメモリ53に記憶された最新の教師データおよび生徒データで規定される点との間の誤差εを求める。
そして、ステップS171に進み、判定制御部56は、誤差εの大きさが、所定の閾値S2より大(以上)であるかどうかを判定し、大でないと判定した場合、ステップS172をスキップして、ステップS173に進み、判定制御部56は、ステップS166で求められた補正パラメータa0乃至aNを、補正パラメータメモリ146に出力する。この場合、補正パラメータメモリ146は、判定制御部56からの補正パラメータa0乃至aNを上書きする形で記憶し、ステップS161に戻る。
一方、ステップS171において、誤差εの大きさが、所定の閾値S2より大であると判定された場合、ステップS172に進み、判定制御部56は、補正パラメータ計算部145を制御することにより、学習用データメモリ53に記憶された最近の教師データと生徒データのみを用いて、補正パラメータa0乃至aNを再計算させる。そして、ステップS173に進み、判定制御部56は、ステップS172で求められた補正パラメータa0乃至aNを、パラメータ制御部データメモリ37に出力して、上書きする形で記憶させ、ステップS161に戻る。
即ち、図23の実施の形態においても、図8の実施の形態における場合と同様に、ステップS170において、いままでに与えられた教師データおよび生徒データから求められた補正パラメータa0乃至aNから式(37)で定義される面と、最新の教師データおよび生徒データで規定される点との間の誤差εが求められる。
そして、この誤差εの大きさが、閾値S2より大でない場合には、ステップS166で求められた補正パラメータa0乃至aNによって定義される式(37)の面が、最新の教師データと生徒データで規定される点も含め、いままでに与えられた教師データと生徒データで規定される点のいずれも、比較的精度良く近似していると考えられるため、その補正パラメータa0乃至aNが、補正パラメータメモリ146に記憶される。
一方、誤差εの大きさが、閾値S2より大の場合には、ステップS166で求められた補正パラメータa0乃至aNによって定義される式(37)の面から、最新の教師データと生徒データで規定される点が比較的大きく離れていると考えられるため、判定制御部56は、ステップS172において、学習用データメモリ53に記憶された最近の教師データと生徒データのみを用いて、補正パラメータa0乃至aNを再計算させる。
従って、この場合も、ユーザの操作に応じて供給される学習用操作信号に基づいて、式(37)の補正パラメータa0乃至aNの学習が行われるので、ユーザの操作を、ユーザが知らないうちに学習することができ、さらに、その学習結果を用いて、ユーザにとって最適な処理を行うことが可能となる。
さらに、この場合、演算部93(図16)が出力する走行方向に含まれる誤差が有色であるときに、所定の設定軌跡に沿って、自動車を自動走行させることが可能となる。
また、図20の最適化装置94の処理部101では、ユーザによる操作部98の操作にしたがい、自動車の実際の走行方向が設定軌跡に沿ったものにあるように、補正部21で行われる補正処理(図6)で用いられる補正パラメータが変更される。即ち、自動車の走行方向が所望の方向となるように、ユーザが操作部98を操作すると、演算部43(図16)が出力する、操作部98の操作直前と直後の入力信号としての走行方向θそれぞれを、それぞれ生徒データと教師データとして、補正パラメータの学習が行われ、これにより、補正パラメータが変更される。この変更された補正パラメータは、補正部21に供給され、補正部21では、その補正パラメータを用いて補正量が計算され、その補正量によって、入力信号の補正処理(図22)が行われる。従って、ユーザが操作部98を操作した場合には、そのユーザの操作により式(37)の補正パラメータが変更されることにより、当然に、式(37)で表される処理(補正処理)の内容も変更することとなるから、図20の最適化装置94の処理部101でも、ユーザの操作にしたがい、その「処理の内容」が、ユーザにとって所望の走行方向が得られるように変更されているということができる。
さらに、図20の最適化装置94では、ユーザから十分な数の学習対が入力されていない場合や、精度の高い近似が可能な学習対が入力されていない場合には、補正部21における入力信号の補正量が0とされ、ユーザから精度の高い近似が可能な学習対が入力された場合には、その学習対を用いて学習が行われることにより求められた補正パラメータによって求められる補正量によって、入力信号の補正が行われる。即ち、十分な数の学習対や、精度の高い近似が可能な学習対が得られていない場合と、精度の高い近似が可能な学習対が得られた場合とで、補正部21の補正処理に用いられる重みを算出するアルゴリズムが変更される。
従って、図20の最適化装置94の処理部101でも、ユーザの操作にしたがい、その「処理の内容」も、さらには、その「処理の構造」も変更され、これにより、設定軌跡に沿った走行方向に、自動車が自動走行するようになっている。
ここで、図23の実施の形態では(図8および図13の実施の形態おいても同様)、ステップS170において、補正パラメータ計算部145からの補正パラメータa0乃至aNによって定義される式(37)の面と、最新の教師データおよび生徒データで規定される点との間の誤差εを求め、以降の処理を行うようにしたが、ステップS170では、最近の複数の教師データと生徒データが供給される前にステップS166で求められた補正パラメータa0乃至aNによって定義される式(37)の面と、最近の複数の教師データおよび生徒データで規定される点それぞれとの間の誤差εを求め、その複数の誤差εに基づいて、以降の処理を行うようにすることも可能である。
なお、図16の最適化装置94の処理部101は、図17や図20に示した他、例えば、図10に示した最適化装置1の処理部11を利用して構成することも可能である。
次に、図24は、図1の最適化装置を適用した自動走行装置の他の実施の形態の構成例を示している。尚、図中、図16における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。すなわち、図24の自動走行装置は、最適化装置94に内部情報生成部161が新たに設けられ、さらに、表示部171は新たに設けられている他は、図16における場合と同様に構成されている。
内部情報生成部161は、図14の内部情報生成部171と同様に、処理部11からその内部情報を読出し、画像情報に変換して、表示部171に出力する。表示部171は、内部情報生成部161から供給される内部情報を、所定の表示形式で表示する。
図24の実施の形態において、処理部101は、図17や図20に示したように構成することができる。図24の処理部101が、図17に示したように構成される場合においては、補正パラメータ演算処理を除き、図17における場合と同様の処理が行われる。そこで、図25のフローチャートを参照して、図24の処理部101が、図17に示したように構成される場合の補正パラメータ演算処理について説明する。
ステップS191乃至S197では、図18のステップS111乃至S117における場合とそれぞれ同様な処理が行われる。
ステップS197の処理の後は、ステップS198に進み、表示部171において、内部情報が表示される。すなわち、より詳細には、内部情報生成部161が、例えば重みメモリ31(図17)に記憶されている重みWを、内部情報として読出し、表示部171で表示可能な画像信号に変換し、表示部171に出力して表示(呈示)させる。ステップS198の処理の後は、ステップS111に戻り、以下、同様の処理が繰り返される。
図25のフローチャートで説明した処理により、処理部101の処理に関する内部情報としての重みWが、表示部171で表示(提示)され、その結果、ユーザは、その表示を見ながら、最適な自動走行が行われるように、操作部98を操作することが可能となる。
また、上述の場合においては、重みWを表示するようにしていたが、内部情報生成部161では、その他の内部情報を表示部171に表示(呈示)させるようにしても良く、例えば、パラメータ制御データメモリ37よりパラメータ制御データa,bを読み出して表示するようにしても良い。また、選択部41により選択された重みが、学習対を用いて学習が行われることにより求められたパラメータ制御データaおよびbから求められた重みであるのか、若しくは、入力信頼度と出力信頼度から求められる重みであるのかを表す内部情報を表示するようにしても良い。
次に、図24の処理部101が、図20に示したように構成される場合においては、補正パラメータ学習処理を除き、図20における場合と同様の処理が行われる。そこで、図26のフローチャートを参照して、図24の処理部101が、図20に示したように構成される場合の補正パラメータ学習処理について説明する。
ステップS211乃至S223において、図23のステップS161乃至S172における場合とそれぞれ同様の処理が行われる。
ステップS219およびステップS223の処理後は、ステップS224に進み、内部情報生成部161は、例えば、補正パラメータメモリ101に記憶された補正パラメータa0乃至aNを、内部情報として読出し、表示部171で表示可能な画像信号に変換して、表示部171に表示させる。このとき、補正パラメータa0乃至aNは、複数のパラメータから構成されているので、図27で示すように、各パラメータを横軸として、各値を縦軸として、例えば、棒グラフ状にして表示するようにしても良い。また、補正パラメータa0乃至aNは、例えば、図28に示すように、任意の2つの補正パラメータaiとajをそれぞれ横軸と縦軸にとって表示するようにしても良い。尚、横軸と縦軸にする補正パラメータは、ユーザが選択可能なようにすることが可能である。
この後、ステップS211に戻り、以下、同様の処理が繰り返される。
以上のように、図26のフローチャートを参照して説明した補正パラメータ処理により、補正パラメータa0乃至aNが表示されることにより、図24の最適化装置94の処理部101では、補正パラメータa0乃至aNが内部情報として表示され、その結果、ユーザは、その表示を見ながら、最適な自動走行が行われるように、操作部98を操作することが可能となる。
尚、内部情報生成部161では、補正パラメータa0乃至aN以外の内部情報を表示するようにしても良い。
また、図26の実施の形態において、ステップS219の処理の後に、ステップS224に進んだ場合には、内部情報としての補正パラメータa0乃至aNは、0であるとして、その表示が行われる。
次に、図29を参照して、図1の最適化装置のその他の実施の形態としての最適化装置201について説明する。最適化装置201は、処理部211から構成されており、入力信号としての、例えば、画像信号などからノイズを除去し、表示される画像信号の最適化を図るものである。尚、この例においては、画像信号を主な入力信号の例として説明するが、画像信号に限らずその他の信号であっても良い。
処理部211は、学習部221とマッピング処理部222から構成されている。処理部211の学習部221には、操作部202からの操作信号が供給され、学習部221は、その操作信号に基づいて、マッピング処理部222の処理で必要となる係数セットを学習し、係数メモリ235に記憶させる。学習部211の学習の規範(学習規範)としては、例えば、最小N乗誤差法(最小N乗法)を用いることができる。尚、最小N乗誤差法による解法については後述する。
マッピング処理部222は、入力信号を所定の出力信号にマッピング(変換)するマッピング処理を行う。すなわち、マッピング処理部222は、出力信号としての画像信号のうち、今から得ようとする画素を注目画素として、その注目画素に対応するタップ(処理に必要な少なくとも1以上の画素であり、サンプルとも称する)を、入力信号としての画像信号から抽出し、係数メモリ235に記憶された係数セットとの積和演算処理を実行することにより、注目画素を求める。マッピング処理部222は、出力信号としての画像信号を構成する画素について同様の処理(マッピング)を行い、これにより出力信号としての画像信号を生成して表示部203に出力し、表示させる。
操作部202は、ユーザによって操作され、その操作に対応する操作信号を、学習部221に供給する。表示部203は、マッピング処理部202が出力する出力信号としての画素信号を表示する。
次に、図30を参照して、図29の学習部221の詳細な構成について説明する。教師データ生成部231は、入力信号より、学習の教師となる教師データを生成し、最小N乗誤差法係数演算部234に出力する。生徒データ生成部232は、入力信号から学習の生徒となる生徒データを生成し予測タップ抽出部233に出力する。この教師データと生徒データは、例えば、入力信号に対して教師データ231が何の処理も施さないことにより、また、生徒データ生成部232が、所定の間引き処理、または、LPF(Low Pass Filter)などにより入力データを劣化させるなどして生成されるものであり、生徒データが教師データに対して劣化したものとして生成されれば上述の構成に限るものではない。従って、上記の他にも、例えば、教師データ生成部231が、入力信号に対して所定の間引きやLPFによる処理を施す時には、生徒データ生成部232は、教師データ生成部231で施される以上に大きな程度の間引きやLPFによる処理が施されればよい。また、例えば、教師データとしては、入力信号とそのまま用い、生徒データとしては、入力信号にノイズを重畳したものを用いることも可能である。
予測タップ抽出部233は、教師データとしての画像信号を構成する画素を、順次、注目画素として、その注目画素と所定の位置関係にある少なくとも1個以上の画素(タップ)を、生徒データとしての画像信号から予測タップとして抽出し、最小N乗誤差法係数演算部234に出力する。
最小N乗誤差法係数演算部234は、操作部202より入力される最小N乗法誤差法係数演算処理に必要な、指数Nの値を指定する情報を表す操作信号に基づいて、予測タップと教師データから最小N乗誤差法により係数セットを演算して、係数メモリ235に出力し、記憶させる(適宜上書き記憶させる)。
係数メモリ235は、最小N乗誤差法係数演算部234より供給される係数セットを記憶し、マッピング処理部222に適宜出力する。
次に、図31を参照して、図29のマッピング処理部222の構成について説明する。マッピング処理部222のタップ抽出部251は、出力信号としての画像信号を構成する画素を、順次注目画素として、その注目画素に対して、所定の位置関係にある画素(の画素値)を予測タップとして、入力信号としての画像信号から抽出することにより、図30の予測タップ抽出部233が構成するのと同一のタップ構造の予測タップを構成し、積和演算部252に出力する。積和演算部252は、タップ抽出部251より入力されてくる、抽出された予測タップ(画素)の値と、学習部221の係数メモリ235に記憶されている係数セットとの積和演算を行うことにより、注目画素を生成し、表示部203(図29)に出力する。
ここで、図30の最小N乗誤差法係数演算部234の最小N乗誤差法による係数演算について説明する。最小N乗誤差法における指数N=2の場合が、一般に、最小自乗誤差法(最小2乗誤差法)と呼ばれるものである。すなわち、注目画素としての教師データをyと、予測タップを構成するM個の生徒データをxi(i=1,2,…,M)と、所定のM個の係数をwiと、それぞれ表し、教師データyの予測値y'を、予測タップxiと所定の係数wiとの線形1次結合(積和演算)w1x1+w2x2+…+wMxMであることとする場合においては、図32で示すように、黒丸で示す教師データyと、図中の白丸で示す予測値y'との誤差(図中矢印で示される教師データとしての真値yとその予測誤差y'との差分の絶対値)の2乗の和を最小にする係数セットw1,w2,…,wMが求められる。
最小N乗誤差法における指数Nの値を変化させる場合、例えば、指数Nが大きくなるとき、誤差が大きい予測値y'の誤差は、N乗誤差の和に対する影響が大きくなるため、最小N乗誤差法によれば、結果として、そのような大きな誤差の予測値y'が救済される方向の係数(大きな誤差の予測値y'の誤差を小さくする係数)が求められる。但し、誤差が小さい予測値y'の誤差は、N乗誤差の和に対しての影響も小さいため、あまり考慮されず、結果として無視されやすくなる。逆に、指数Nが小さくなるとき、誤差が大きい予測値y'の誤差は、N乗誤差の和に対する影響力が指数Nが大きいときと比べて小さくなり、誤差が小さい予測値y'の誤差は、N乗誤差の和に対する影響がより小さくなることになる。その結果、最小N乗誤差法によれば、指数Nが大きい場合に比較して誤差が小さい予測値の誤差をより小さくする方向の係数が求められる。
尚、上述のような予測値y'の誤差の、N乗誤差の和に対する影響の変化は、予測値y'の誤差をN乗することによりものであり、以下、適宜、N乗誤差の性質という。
上述のように、指数Nにより、最小N乗誤差法で求められる係数セットの定性的な傾向が見られるので、指数Nを変化させて、最小N乗誤差法により係数セットを求めるようにすることで、ユーザに好みのマッピング処理を実行するための係数セットを求めることができる(入力信号に対してマッピングされる出力信号をユーザ好みのものとする係数セットを求めることができる)。しかしながら、実際には、最小2乗誤差法以外の方法、すなわち、指数N=2以外の方法では、予測値y'のN乗誤差の和を最小にする係数セットの演算が極めて困難である。
ここで、最小2乗誤差法以外の方法では、予測値y'のN乗誤差の和を最小にする係数セットの演算が困難となる理由について説明する。
予測値y'の誤差のN乗の総和(N乗誤差の和)は、式(38)で表すことができる。
ここで、Eは、教師データとしての真値yと予測値y'との誤差eのN乗のサンプル数分の総和を示す。
一方、本実施の形態では、上述したように、真値yの予測値y'は、予測タップxiと、所定の係数wiとの線形1次結合、すなわち、以下の式(39)により定義される。
ここで、係数w1,w2,w3…,wMを、以下、適宜、予測係数という。この予測係数のセットが図30の係数メモリ235に記憶される係数セットである。また、予測タップx1,x2,x3…,xMとしては、教師データとしての画像の画素(真値)yに対応する生徒データとしての画像の位置から、空間的、または、時間的に近い位置にある画素を採用することができる。
この場合、式(38)の誤差eは、以下に示す式(40)で表すことができる。
最小N乗誤差法では、式(40)から導かれる以下の式(41),式(42)で示すN乗誤差の総和Eを最小にする予測係数w1,w2,w3…,wMを求める必要がある。尚、式(41)は、指数Nが奇数のときの総和Eを示す式であり、式(42)は、指数Nが偶数のときの総和Eを示す式である。
ここで、式(41)の場合、すなわち、指数Nが奇数の場合、総和Eは、真値yとその予測値y'との差分y−y'の大きさの和が同一の値であれば、差分y−y'の符号に関わらず、同一の値となり、結果として総和Eを最小にする予測係数w1,w2,w3…,wMを求めることができない。すなわち、総和Eは、絶対値を含む関数であり、例えば、図33に示すような関数となる。このため、全探索以外では、総和Eの最小値を与える予測係数w1,w2,w3…,wMを求めることができない。尚、図33は、指数N=1のときの、ある予測係数wiと、総和Eの変化を示している。
一方、式(42)の場合、すなわち、指数Nが偶数の場合、総和Eは、必ずE≧0を満たすので、以下の式(43)で示すように、式(42)の総和Eを各予測係数wiで偏微分した式を0とおくことにより、極小値を求めることができる。
従って、式(43)より、以下の式(44)で示す方程式を解くことで解、すなわち、N乗誤差の総和Eを最小にする予測係数w1,w2,w3…,wMが求められることになる。
この式(44)について、例えば、指数NがN=2の場合、すなわち、いわゆる最小2乗誤差法により解を求める場合、式(44)の指数Nに2を代入して、以下の式(45)を解けばよいことになる。
式(45)の方程式は、以下の式(46)で示すように、行列式の形で表現することができ、正規方程式と呼ばれる。また、指数N=2のときは、総和Eの極小値が一意に決まり、その最小値は、総和Eの最小値となる。式(45)の正規方程式により、予測係数w1,w2,w3…,wMの数と同数(今の場合M個)の連立一次方程式が構成されれば、この連立一次方程式は、例えば、コレスキー法などにより解くことができ、予測係数w1,w2,w3…,wMを求めることができる。
尚、式(46)の正規方程式を解くには、式(46)における左辺の予測タップ同士の積xixjの総和(Σxixj)をコンポーネントとする行列が、正則であることが必要である。
指数Nが偶数で、かつ、4以上である場合、式(42)は、以下の式(47)のように表すことができる。
式(47)で示される方程式は、高次の連立方程式となるため、指数NがN=2である場合のように連立一次方程式を解くようにして、予測係数w1,w2,w3…,wMを求めることができない。
以上のように、指数NがN=2以外のとき、式(38)で示すN乗誤差の和を最小にする予測係数w1,w2,w3…,wMは、一般には、容易に求めることができない。
そこで、学習部221の最小N乗誤差法係数演算部234は、以下に示す2つの最小N乗誤差法により予測係数を演算する。尚、2つの最小N乗誤差法のうちのいずれを採用するかは、例えば、ユーザが操作部202(図29)を操作することにより指定可能である。
まず、第1の方法(以下、直接法とも称する)について説明する。以下の式(48)で示すように、誤差e2の項に重みαSを乗じたものの総和Eを、N乗誤差法の和として式(38)に替えて定義する。
すなわち、N乗誤差eNを、重みαSと、2乗誤差e2との積によって定義する。
この場合、式(48)の重みαSを、例えば、以下の式(49)で示すように、指数NがN=2のときに求められる予測係数w1,w2,w3…,wMから、式(39)の線形1次式によって得られる予測値y'の関数とすることにより、式(48)のN乗誤差の総和Eを最小にする予測係数w1乃至wMを求めることができる。
重みαSとしては、様々な関数が考えられるが、式(48)で定義されるN乗誤差eN=αSe2が、上述のN乗誤差の性質を満たすようなものとなる関数を採用する必要があり、例えば、以下の式(50)で示す関数を採用することができる。
ここで、xSは、最小2乗誤差法により求められる予測係数w1乃至wMから、式(39)によって演算される予測値y'の誤差(以下、適宜、最小2乗規範による誤差という)を、0乃至1.0の範囲に正規化した値を表し、この予測値y'の誤差xSの関数として、定義される式(50)の重みαSは、図34に示すようになる。
係数aは、最小2乗規範による誤差xSが、N乗誤差eNに与える影響を制御する項であり、係数aがa=0のとき、重みαSは、図34において、その傾きが0の水平方向の直線となる。この場合、最小2乗規範による誤差xSがN乗誤差eNに与える影響は、最小2乗規範による誤差xSの大小に関わらず一定となり、式(48)の総和Eを最小にする予測係数wiは、理論的には、最小2乗誤差法により求められるものと同一となる。従って、a=0とすることにより、実質的に最小2乗誤差法が実現される。また、係数a>0のときは、
最小2乗規範により誤差xSが、式(48)のN乗誤差eNに与える影響は、誤差xSが大きいほど大きくなり、誤差xSが小さいほど小さくなる。一方、a<0のときは、最小2乗規範による誤差xSが、式(48)のN乗誤差eNに与える影響は、誤差xSが大きいほど小さくなり、誤差xSが小さいほど大きくなる。
すなわち、式(48)のN乗誤差eNは、係数aを正とした場合には、指数Nを大としたときと同様の性質を有し、係数aを負とした場合には、指数Nを小としたときと同様の性質を有する。従って、式(48)のN乗誤差eNは、式(38)のN乗誤差eNと同様の性質を有するから、式(48)のN乗誤差の総和Eを最小にする予測係数は、実質的に式(38)のN乗誤差の総和Eを最小にする予測係数となる。
尚、係数aが0の場合は、上述したように、最小2乗誤差法が実現される。すなわち、指数Nが2の場合となるが、係数aが正の場合は、指数NがN>2の場合となり、係数aが負の場合は、指数NがN<2の場合となる。この係数aは、後述する係数cと同様に最小N乗誤差法の指数Nに大きく影響する。
係数bは、補正項であり、係数bの値によって、図34の関数値(重みαS)が、全体として上下方向に変化する。尚、係数bは、最小N乗誤差法の指数Nにそれ程大きな影響を与えない。
係数cは、軸のスケーリングを変換させる項、すなわち、最小2乗規範による誤差xSに対する重みαSの割り当て方を変更する項であり、係数cの値が大きくなればなる程、重みαSの変化は、急峻なものとなり、逆に、係数cの値が小さくなればなる程、重みαSの変化は、緩やかなものとなる。従って、係数cが変化することにより、最小2乗規範により誤差xSが式(48)のN乗誤差eNに与える影響は、係数aが変化する場合と同様であるから、係数cによっても、式(48)のN乗誤差eNには、式(38)のN乗誤差eNと同様の性質を与えることができる。すなわち、係数cによって、最小N乗誤差法の指数Nに影響を与えることができる。
尚、図34中の直線は、c=1、a>0の場合(bは任意)を示しており、図34中の曲線は、c≠1,a>0の場合(bは任意)を示している。
式(50)の重みαSを規定する係数a,b,cは、ユーザが操作部202を操作(設定)することで、変化させることができ、係数a,b,cが変化することで、式(50)の重みαSが変化する。重みαSの変化により、式(48)のαSe2は、所定の指数NについてのN乗誤差eNとして、実質的(等価的)に機能することとなり、その結果、式(50)のN乗誤差の和Eを最小にする予測係数、すなわち、最小N乗誤差法による規範の予測係数wiを求めることができる。
また、以上の第1の方法では、重みαSを決定する係数a,b,cを様々に変化させることにより、実質的に指数Nを変化させて最小N乗誤差法により予測係数を求めるようにしたので、指数Nは、整数に限らず、例えば、指数N=2.2といった指数Nが小数などのその他の実数の場合の予測係数を求めることが可能である。
次に、最小N乗誤差法により予測係数を演算する第2の方法(以下、再帰法=リカーシブ法とも称する)について説明する。第1の方法においては、式(48)に示したように、2乗誤差e2に対して重みαSを乗算したものをN乗誤差として採用したが、第2の方法では、低次の最小N乗誤差法で求められた解を使用して、再帰的な手法でより高次の最小N乗誤差法による解が求められる。
すなわち、以下に示す式(51)の2乗誤差の和Eを最小にする予測係数wiは、上述のように最小2乗誤差法により求めることができるが、この最小2乗誤差法によって得られる予測係数wiを用いて式(39)により演算される予測値y'をy1(以下、適宜、最小2乗規範による予測値という)と表す。
次に、例えば、以下に示す式(52)で表される3乗誤差の和Eについて考える。
式(52)の3乗誤差の和Eを最小にする予測係数wiを求めることは、最小3乗誤差法により解を得ることになるが、このとき式(52)で示すように、3乗誤差|e3|を、2乗誤差e2、および、最小2乗規範による予測値y1と真値yとの誤差|y−y1|の積で表す。式(52)の|y−y1|は、定数として求めておくことができるから、式(52)の3乗誤差の和Eを最小にする予測係数wiは、実際には最小2乗誤差法により得ることが可能となる。
同様にして、式(53)で表される4乗誤差の和Eについて考える。
式(53)の4乗誤差の和Eを最小にする予測係数wiを求めることは、最小4乗誤差法により解を得ることになるが、今、式(52)の3乗誤差の和Eを最小にする予測係数wiを用いて式(39)により演算される予測値y'を、y2(以下、適宜、最小3乗規範による予測値という)を表すと、4乗誤差e4は、式(53)に示すように、2乗誤差e2、および、最小3乗規範による予測値y2と真値yとの誤差の2乗(以下、適宜、最小3乗規範による2乗誤差という)|y−y2|2の積で表すことができる。式(53)の最小3乗規範による2乗誤差|y−y2|2は、定数として求めておくことができるから、式(53)の4乗誤差の和Eを最小にする予測係数wiは、実際には最小2乗誤差法により得ることが可能となる。
さらに、以下の式(54)についても同様である。
すなわち、式(54)は、5乗の総和Eを最小にする予測係数wiを求めることが最小5乗誤差法により解を得ることになる。今、式(53)の4乗誤差の和Eを最小にする予測係数wiを用いて式(39)により演算される予測値y'を、y3(以下、適宜、最小4乗規範による予測値という)と表すと、5乗誤差e5は、式(54)に示すように、2乗誤差e2、および、最小4乗規範による予測値y3と真値yとの誤差の3乗(以下、適宜、最小4乗規範による3乗誤差という)|y−y3|3の積で表すことができる。式(54)の最小4乗規範による3乗誤差は、定数として求めておくことができるから、式(54)の5乗誤差の和Eを最小にする予測係数wiも、実際には最小2乗誤差法により得ることが可能である。
指数Nが6次以上の最小N乗誤差法の場合も、以下、同様にして、その解(予測係数wi)を求めることが可能である。
以上のように、第2の方法では、高次の最小N乗誤差法により解を求めるのに、低次の最小N乗誤差法により求められた予測係数を用いて演算される予測値(の予測誤差)を使用し、これを再帰的に、繰り返すことで、より高次の最小N乗誤差法による解を得ることができる。
尚、上述の場合には、最小N乗誤差法による解を、それより1次だけ低い最小N−1乗誤差法により求められた予測係数を用いて演算される予測値を使用して求めるようにしたが、最小N乗誤差法による解は、それより低次の任意の最小N乗誤差法により求められた予測係数を用いて演算される予測値を使用して求めることが可能である。すなわち、式(53)の場合、|y−y2|の代わりに|y−y1|を使用してもよいし、式(54)の場合、|y−y3|の代わりに|y−y2|や|y−y1|を使用してもよい。
また、第2の方法においては、N乗誤差eNが、2乗誤差e2と、N−2乗誤差|y−y'|N-2との積で表されるから、第1の方法と同様に、例えば、指数NがN=2.2といった指数Nが任意の実施の最小N乗誤差法による解を求めることができる。
次に、図35のフローチャートを参照して、図29の最適化装置201による画像最適化処理について説明する。画像最適化処理は、学習処理とマッピングからなる。
学習処理では、ステップS230において、ユーザが操作部202を操作したかどうかが判定され、操作していないと判定された場合、ステップS230に戻る。また、ステップS230において、操作部202が操作されたと判定された場合、ステップS231に進む。
ステップS231において、学習部221の教師データ生成部231は、入力信号より教師データを生成して最小N乗誤差法係数演算部234に出力すると共に、生徒データ生成部232は、入力信号より生徒データを生成し予測タップ抽出部233に出力し、ステップS232に進む。
尚、生徒データと教師データを生成するのに、用いるデータ(以下、適宜、学習用データという)としては、例えば、現在から、所定時間だけ過去に遡った時点までに入力された入力信号を採用することができる。また、学習用データとしては、入力信号を用いるのではなく、予め専用のデータを記憶しておくことも可能である。
ステップS232において、予測タップ抽出部233は、各教師データを注目画素として、その各注目画素について生徒データ生成部232より入力された生徒データより予測タップを生成し、最小N乗誤差法係数演算部234に出力して、ステップS233に進む。
ステップS233において、最小N乗誤差法係数演算部234は、操作部202よりリカーシブ法(第2の方法)による最小N乗誤差法で係数セットを演算することを指定する操作信号が入力されたか否かがを判定し、例えば、ユーザにより操作部202が操作されて、リカーシブ法ではない、すなわち、直接法(第1の方法)が指定されたと判定された場合、ステップS234に進み、式(50)の重みαSを指定する(指数Nを指定する)係数a,b,cが入力されたか否かが判定され、入力されるまでその処理が繰り返され、例えば、ユーザによって操作部202が操作され、係数a,b,cを指定する値が入力されたと判定された場合、その処理は、ステップS235に進む。
ステップS235において、最小N乗誤差法係数演算部234は、重みαSを入力された係数a,b,cの状態で、上述した式(48)を最小にするという問題を実質的には最小2乗誤差法により解くことにより、重みαSに対応する指数Nの最小N乗誤差法による解としての予測係数w1,w2,w3…,wM、すなわち、係数セットを求めて係数メモリ235に記憶させ、ステップS230に戻る。
一方、ステップS233において、リカーシブ法が選択されたと判定された場合、その処理は、ステップS236に進む。
ステップS236において、最小N乗誤差法係数演算部234は、指数Nを指定する情報が入力されたか否かを判定し、指数Nが入力されるまでその処理を繰り返し、例えば、ユーザが操作部202を操作することにより指数Nを指定する情報が入力されたと判定した場合、その処理は、ステップS237に進む。
ステップS237において、最小N乗誤差法係数演算部234は、基礎となる最小2乗誤差法による解法により係数セットを求める。ステップS238において、最小N乗誤差法係数演算部234は、最小2乗誤差法により求められた係数セットから得られる予測値を用い、式(51)乃至式(54)を参照して説明したように再帰的に指数Nに、操作部202から入力された対応する最小N乗誤差法による係数セットを求め、係数メモリ235に記憶させ、ステップS231に戻る。
次に、マッピング処理では、ステップS241において、マッピング処理部222のタップ抽出部251は、現在の入力信号としての画像フレームに対応する出力信号としての画像のフレームを注目フレームとして、その注目フレームの画素のうち、例えば、ラスタスキャン順で、まだ注目画素としていないものを注目画素として、その注目画素について、入力信号より予測タップを抽出し、積和演算部252に出力する。
そして、ステップS242において、積和演算部252は、学習部221の係数メモリ235の予測係数を読出し、式(39)に従いタップ抽出部251より入力された予測タップと係数メモリ235から読み出した予測係数との積和演算処理を実行する。これにより、積和演算部252は、注目画素の画素値(予測値)を求める。その後、ステップS243に進み、タップ抽出部251は、注目フレームの全ての画素を注目画素としたかどうかを判定し、まだしていないと判定した場合、ステップS241に戻り、注目フレームのラスタスキャン順でまだ注目画素としていない画素を新たに注目画素として、以下、同様の処理を繰り返す。
また、ステップS243において、注目フレームの全ての画素を注目画素としたと判定された場合、ステップS244に進み、表示部203は、積和演算部252で求められた画素でなる注目フレームを表示する。
そして、ステップS241に戻り、タップ抽出部251は、次のフレームを新たに注目フレームとして、以下、同様の処理を繰り返す。
図35の画像最適化処理によれば、ユーザは、マッピング処理において、表示部203に表示された画像をみて、自らの好みに合うものではなかった場合、操作部202を操作して、直接法やリカーシブ法を指定し、さらには、最小N乗誤差法の指数Nを指定し、これにより学習処理において、最小N乗誤差法により求められる予測係数が変更され、マッピング処理で求められる出力信号としての画像をユーザ自身の好みに合うものにさせていくことができる。
ここで、図36は、式(50)の重みαSの係数a,b,cの値を変化させる直接法において、例えば、係数a,b,cをa=40,b=0.1,c=1とすることにより、最小N乗誤差法により求められる最小N乗規範の係数セットを用いて演算される予測値の誤差の総和と、一般的な最小2乗誤差法により求められる最小2乗規範の係数セットを用いて演算される予測値の誤差の総和を示している。ここでは、誤差の総和としては、2乗誤差と3乗誤差の総和を示してある。また、係数a,b,cが上述の値の場合は、式(48)のN乗誤差eNの指数Nが2より大の場合に相当する。図36においては、2乗誤差の総和は、最小2乗規範の係数セットによる場合は、10160281となり、最小N乗規範の係数セットによる場合は、10828594となっており、最小2乗規範の係数セットによる場合の方が、最小N乗規範の係数セットによる場合よりも小さくなっている。一方、3乗誤差の総和は、最小2乗規範の係数セットによる場合は、165988823となり、最小N乗規範の係数セットによる場合は、161283660となっており、最小N乗規範の係数セットによる場合の方が、最小2乗規範の係数セットによる場合よりも小さくなっている。
従って、最小2乗規範の係数セットを用いて、マッピング処理(式(39)の積和演算)を行うことにより、2乗規範の総和がより小さい出力信号としての画像を得ることができ、また、上述の値の係数a,b,cを用いて、求められる最小N乗規範の係数セットを用いてマッピング処理を行うことにより、3乗誤差の総和がより小さい出力信号としての画像を得ることができる。
尚、図35の画像最適化処理では、ユーザが操作部202を操作することにより指数Nが変更され(直接法においては、指数Nを指定する係数a,b,cが変更され、また、リカーシブ法においては、指数Nそのものが変更され)、これにより予測係数(係数セット)の学習規範(学習の体系)として、どのような指数Nの最小N乗誤差法を採用するかが設定される。すなわち、予測係数を求める学習アルゴリズム自体が変更されている。従って、「処理の構造」が、ユーザの好みの画像が得られるように変更されているということが言える。
次に、図37は、図1の最適化装置の他の構成例を示している。図37の最適化装置201においては、内部情報生成部261が設けられた以外の構成は、図29の最適化装置201と同様であるので、その説明は省略する。
内部情報生成部261は、処理部211の内部乗法として、例えば、係数メモリ235に記憶されている予測係数を読出し、その予測係数の情報を画像信号に変換して表示部203に出力し、表示させる。
次に、図38のフローチャートを参照して、図37の最適化装置201による画像最適化処理について説明する。図38の画像最適化装置も、図35における場合と同様に学習処理とマッピング処理からなる。そして、学習処理では、ステップS250乃至S258において、図35のステップS230乃至S238における場合とそれぞれ同様の処理が行われる。
さらに、学習処理では、ステップS255およびS258の処理後、ステップS259に進み、内部情報生成部261は、係数メモリ235に記憶されている係数セットを、内部情報として読出し、係数セットに含まれる各値に基づいて表示可能な画像信号を生成して、表示部203に出力し、表示させる。
このとき、内部情報生成部261により生成され表示部203に表示される画像は、例えば、図39で示すような3次元分布図や、または、図40で示した2次元分布図のような形式などとすることができる。すなわち、図39では、入力信号から抽出される予測タップの位置に相当する座標がTap Position(x)およびTap Position(y)としてxy平面上の位置として示されており、各予測タップの位置に対応する座標上に、その予測タップとしての画素値と積をとる予測係数(Coeff)が示されている。また、図40では、図39が等高線図状に表現されている。
ここで、図38のフローチャートの説明に戻る。
ステップS259の処理後は、ステップS250に戻り、以下、同様の処理が繰り返される。
一方、マッピング処理では、ステップS261乃至S264において、図35のステップS241乃至S244における場合とそれぞれ同様の処理が行われる。
以上の処理により、処理部211の係数メモリ235に記憶された係数セットの各値(各係数値)が処理に関する内部情報として表示(呈示)され、ユーザは、この係数セットの分布と、出力信号としての処理部211の処理結果を見ながら自らの好みに合う出力信号としての画像が得られるように、操作部202を操作して、指数Nが変更され(直接法においては、指数Nを指定する係数a,b,cが変更され、また、リカーシブ法においては、指数Nそのものが変更され)、これにより予測係数(係数セット)の学習規範(学習の体系)として、どのような指数Nの最小N乗誤差法を採用するかが設定される。すなわち、予測係数を求める学習アルゴリズム自体が変更されているので、「処理の構造」が変更されているということができる。また、以上の例においては、係数セットを表示させるようにしたが、例えば、現在の最小N乗誤差法が直接法であるのか、または、リカーシブ法であるのかといった、処理に関する内部情報を表示するようにしてもよい。
図41は、最適化装置のその他の構成例を示している。図41の最適化装置301は、処理部311より構成され、操作部202より入力された操作信号に基づいて、入力信号を最適化し表示部202に表示する。なお、図中、上述の実施の形態における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図41の処理部311の係数メモリ321は、図30の係数メモリ235と基本的には同様のものであり、マッピング処理部222がマッピング処理を実行するのに必要な係数セットを記憶する。この係数セットは、基本的には、後述する図43の学習装置341により生成された係数セット(初期値としての係数セット)であるが、係数変更部322により適宜変更されて、上書き記憶される。従って、上書きが繰り返されていくうち、係数セットは、やがて学習装置341により生成されたものとは異なるものとなる。尚、初期値としての係数セットは、図示せぬメモリに保持しておき、操作部202の操作に対応して、係数メモリ321の記憶内容を、初期値の係数セットに戻すようにすることが可能である。
係数変更部322は、操作部202から入力される操作信号に基づいて、係数メモリ321に記憶された係数セット(予測係数)を読出し、各予測タップに対応する予測係数(各予測タップと積算される予測係数)の値を変更して、再び係数メモリ321に上書き記憶させる。
次に、図42を参照して、係数変更部322の構成について説明する。係数変更部322の係数読出書込部331は、変更処理部332により制御され、係数メモリ321に記憶された係数セットを読出し、変更処理部332に出力すると共に、変更処理部332により値が変更された予測係数を係数メモリ321に上書き記憶させる。変更処理部332は、係数読出書込部331により係数メモリ321から読み出された予測係数を、操作信号に基づいて変更する。
ここで、図43を参照して、係数メモリ321に記憶される係数セットを学習処理により生成する学習装置341について説明する。学習装置341の教師データ生成部351は、図30の学習装置221の教師データ生成部231と同様のものであり、予め用意された学習データとしての画像信号より教師データを生成し、教師データを正規方程式生成部354に出力する。生徒データ生成部352は、図30の生徒データ生成部232と同様のものであり、学習用データから生徒データを生成し予測タップ抽出部353に出力する。
予測タップ抽出部353は、図30の予測タップ抽出部233と同様のものであり、教師データのうちの今から処理しようとするものを注目画素として、その注目画素について、図41のマッピング処理部222を構成するタップ抽出部251(図31)が生成するのと同一のタップ構造の予測タップを生徒データから抽出し、正規方程式生成部354に出力する。
正規方程式生成部354は、教師データ生成部351より入力された注目画素としての教師データyと予測タップx1,x2,…,xMから、式(46)の正規方程式を生成する。そして、正規方程式生成部354は、全ての教師データを注目画素として、式(46)の正規方程式を求めると、その正規方程式を係数決定部355に出力する。係数決定部355は、入力された正規方程式(上述の式(46))を例えば、コレスキー法などにより解いて係数セットを求める。
次に、図44のフローチャートを参照して、図43の学習装置341による係数決定処理(学習処理)について説明する。ステップS271において、教師データ生成部351は、学習用データから教師データを生成し、正規方程式生成部354に出力すると共に、生徒データ生成部352は、学習用データから生徒データを生成し、予測タップ抽出部353に出力して、ステップS272に進む。
ステップS272において、予測タップ抽出部352は、各教師データを順次注目画素として、各注目データについて、生徒データより予測タップを抽出し、正規方程式生成部354に出力して、ステップS273に進む。
ステップS273において、正規方程式生成部354は、各教師データと予測タップのセットを用いて、式(46)における左辺の行列の各コンポーネントとなっているサメーション(Σ)と、右辺のベクトルの各コンポーネントとなっているサメーション(Σ)を演算することにより、正規方程式を生成し、係数決定部355に出力する。
そして、ステップS274に進み、係数決定部355は、正規方程式生成部354より入力された正規方程式を解いて、いわゆる最小2乗誤差法により係数セットを求め、ステップS275において、係数メモリ321に記憶させる。
以上の処理により、係数メモリ321に基礎となる係数セット(初期値としての係数セット)が記憶される。尚、以上の例においては、係数セットは、最小2乗誤差法により求められる場合について説明してきたが、その他の方法で求められた係数セットであってもよく、上述の最小N乗誤差法により求められる係数セットであってもよい。
次に、図41の係数変更部322の変更処理部332による係数セットの変更について説明する。係数セットは、上述の図44のフローチャートの処理により、係数メモリ321に予め記憶されているものであるが、係数変更部322は、この予め演算により設定されている係数セットの各予測係数を操作部202から入力される操作信号に基づいて変更する。
例えば、生徒データから抽出される予測タップが、図45に示すように、7タップ×7タップ(横×縦が7×7画素)の合計49タップであった場合、各予測タップに対応する予測係数も同一の数だけ存在する。すなわち、この場合、係数メモリ321に記憶されている係数セットは、49個の予測係数からなる係数セットである。このとき、各予測タップの位置(タップ位置)を横軸として(例えば、各予測タップに番号を付して、その番号の値を横軸として)、各タップ位置の予測タップと乗算される予測係数の係数値を縦軸とした時の分布が、図46で示すようになっているものとする。いま、ユーザに、係数セットの各係数値を全て変更させようとすると49個もの各係数の係数値を操作する必要がる。各係数の値は、入力信号と、その入力信号と予測係数で処理して得られる出力信号とのゲインが同一となるように、正規化(係数全ての値の合計で個々の係数を割ったもの)されたもの、すなわち、係数の値の合計が1である必要があるが、さらに、その合計が1となるように、個々の係数を操作することは、困難である。
すなわち、例えば、図47中で矢印で示された予測タップに対応する係数の係数値だけを引き上げることを考えると、タップ位置と係数値の分布は、図48で示すようなものとなる。尚、図48中タップ位置tは、図47中の矢印で指定されたタップ位置である。
このように、ある特定の予測タップに対応する係数の係数値だけを引き上げる(増加させる)と、その他のタップ位置の係数の係数値を減少させるなどして、その合計が1となるように操作する必要があるが、その操作は困難である。さらに、これ以上の数の予測タップに対応する係数の係数値を変化させる場合も同様に、その合計を1とする操作は困難である。
そこで、変更処理部332は、操作信号が図49の矢印で示される1つのタップ位置に対応する係数の係数値を、所定の閾値S11よりも大きく変化させる(変化量が閾値S11より大きく変化する)ものであるとき、他の係数の係数値を図46で示すような分布から、図50で示すような分布に変更する。すなわち、変更処理部332は、値が変化された係数に対応するタップ位置からの距離に応じて、係数値の分布がバネのようなモデルとして変化するように、各タップ位置に対応する係数の係数値を変化させる。すなわち、変更処理部332は、学習で求められた係数セットの分布が図46のような分布であった場合、操作部202が図50で示すように、タップ位置tに対応する値を引き上げるように操作されたとき、その他の値については、タップ位置tから近い位置の係数値を、その位置が近いほど大きく変化するように増加させ、逆にタップ位置tから遠い位置のタップに対応する係数の係数値を、その位置が遠いほど大きく減少するように変更させ、さらに係数値の合計が1となるようにする。ここで、以下においては、図50のようにバネ状に分布が変化するモデルをバネモデルと称する。尚、バネモデルによれば、あるタップ位置tの係数を引き下げるように、操作部202が操作された場合は、タップ位置tから近い位置の係数値は、その位置の近さに応じて引き下げられ、逆にタップ位置tから遠い位置の係数値は、その位置の遠さに応じて引き上げられる。
また、係数の係数値の変化量が所定の閾値S11より小さいとき、変更処理部332は、図51で示すようにタップ位置tの係数の変化量に応じて、タップ位置tの係数と同じ極性の極値をとる係数値は、タップ位置tの係数と同じ方向に変更させ、タップ位置tの係数と異なる極性の極値をとる係数値は、タップ位置tの係数と逆方向に変更させ(操作された係数が持つ極値の方向と同じ極値の係数は、操作された係数と同じ方向にシフトし、操作された係数が持つ極値の方向と異なる極値の係数は、操作された係数と逆方向にシフトさせられ)、全体として分布のバランスを均衡に保つようにして係数値の合計を1となるように変化させる。尚、以下においては、図51のように全体としたバランスを均衡に保ちながら係数値を変化させるモデルを均衡モデルと称するものとする。また、均衡モデルは、このように変化することからHPF(High Pass Filter)やLPF(Low Pass Filter)として近似的に(等価的に)機能する。
尚、上述においては、均衡モデルにおいて、正の値の係数値が、引き上げられた場合について説明してきたが、例えば、正の値の係数値が引き下げられた場合、すなわち、負の方向に変化された場合、正の値は、負方向に変更させ、負の値の係数値は、正の方向に変更させる。さらに、負の値の係数値が、引き上げられた場合、正の値の係数値は、負方向に変更させ、負の係数は、正方向に変更させ、また、負の値の係数値が引き下げられた場合、正の係数値は、正方向に変更させ、負の係数値は、負方向に変更させる。均衡モデルにおいては、いずれにおいても、全体としてバランスが均衡に保たれる方向に係数の値が変更される。
以上のように、変更処理部332は、変更された係数値の変化量が閾値S11より大きいときは、図50で示すバネモデルによりその他のタップに対応する係数値を変化させ、係数値の変化量が閾値S11よりも小さいときは、図51で示す均衡モデルによりその他のタップに対応する係数の係数値を変化させる。これは、1個の係数の変化量が大きい時には、各係数値全体のバランスから見て影響が大きいものとなるので全体のバランスを維持する変化をさせるのは不自然なものとなるためバネモデルを採用し、変化量が小さい場合には、その係数の変化は全体のバランスへの影響が小さいので、全体としてバランスを維持するように変化させるためである。
尚、操作部202が操作されることにより、変更された係数値以外の係数の変化のモデルはこれに限るものではなく、全体として、係数値の合計が1となるように変化させるものであれば良い。また、上述の場合には、操作部202が操作されることにより変更された係数の変化量の大小に応じて、他の係数を変化させるモデルを切り替えるようにしたが、他の係数を変化させるモデルは、固定することも可能である。
次に、図52のフローチャートを参照して、図41の最適化装置301の画像最適化処理について説明する。尚、この画像最適化処理は、係数変更処理と、マッピング処理からなるマッピング処理は、図35や図38で説明したマッピング処理と同一であるため、ここでは、係数変更処理についてのみ説明する。
ステップS291において、係数変更部322の変更処理部332(図42)は、係数値を操作する操作信号が操作部202より入力されたか否かを判定する。すなわち、ユーザは、表示部203に表示された画像をみて自らの好みに合うものであるとみなした場合、いま、係数メモリ321(図41)に記憶されている係数セットによるマッピング処理を実行させるが、自らの好みに合うものではないと判定した場合、マッピング処理に使用される係数メモリ321に記憶されている係数セットを変更する操作を行う。
例えば、ステップS291において、係数を操作する操作信号が入力されたと判定された場合、すなわち、係数メモリ321に記憶された係数のうちいずれか1個の係数値を変更するように、操作部202が操作された場合、ステップS292に進む。
ステップS292において、変更処理部332は、係数読出書込部331を制御して、係数メモリ321に記憶されている係数セットを読み出させ、ステップS293に進む。ステップS293において、変更処理部332は、操作信号として入力された係数値が係数セットに予め含まれている値と比べて所定の閾値S11以上に変化しているか否かを判定する。例えば、ステップS293において、操作信号として入力された値と係数メモリ321に記憶されていた係数セットの値との変化が閾値S11以上であると判定された場合、その処理は、ステップS294に進む。
ステップS294において、変更処理部332は、係数セットに含まれる各係数の値を、図50で示したようにバネモデルによって変更し、その処理は、ステップS295に進む。
一方、ステップS293において、操作信号として入力された値と係数メモリ321に記憶されていた係数セットの値との変化が閾値S11以上ではないと判定された場合、その処理は、ステップS296に進む。
ステップS296において、変更処理部332は、係数セットに含まれる各係数の値を、図51で示したように均衡モデルによって変更し、その処理は、ステップS295に進む。
ステップS295において、変更処理部332は、係数読出書込部331を制御して、変更した係数セットの値を係数メモリ321に上書き記憶させ、その処理は、ステップS291に戻り、それ以降の処理が繰り返される。
そして、ステップS291において、係数値が操作されていないと判定された場合、すなわち、ユーザが表示部203に表示された画像がユーザの好みの画像であると判定された場合、ステップS291に戻り、以下、同様の処理が繰り返される。
以上の係数変更処理により、ユーザは、マッピング処理に用いられる係数セットを変化させ、ユーザにとって最適な処理を実行させることが可能となる。尚、係数セットの各係数の値を変更することは、マッピング処理部311によるマッピング処理の「処理の内容」が変更されることになる。
また、図52の係数変更処理では、係数の変化の大きさが所定の閾値S11以上のときには、操作された係数の値に応じて、係数セットの全ての係数値をバネモデルで変更させ、閾値S11よりも小さいときは、係数セットの全ての係数値を均衡モデルで変更させるため、係数セットを変更させるアルゴリズムが変化する。従って、図41の最適化装置301の処理部311でも、ユーザの操作に従い、その「処理の内容」も、さらには、その「処理の構造」も変更され、これによりユーザにとって最適な信号処理が行われているということができる。
また、上述のように、係数メモリ321に記憶される係数セットが、最小N乗誤差法により求められるものである場合、例えば、複数の指数Nに対応する係数セットを予め係数メモリ321に記憶させておき、係数変更部322が、ユーザの操作に基づいた操作部202からの操作信号に従って、指定された指数Nに対応する係数セットに変更させるようにしても良い。この場合、係数メモリ321に記憶される各係数セットは、ユーザの操作に基づいて操作部202から入力される指数Nに対応した最小N乗誤差法により生成されたものに変更される、すなわち、異なる係数セット生成アルゴリズムにより生成された係数セットに変更されるから、「処理の構造」が変更されているということができる。
次に、図53を参照して、図41の最適化装置301に内部情報生成部371を設けた実施の形態について説明する。尚、図53においては、内部情報生成部371が設けられた以外の点については、図41で示した最適化装置301と同様のものである。
内部情報生成装置371は、処理部311の内部情報として、例えば、係数メモリ321に記憶されている係数セットを読み出して、表示部203に表示可能な画像信号に変換した後、表示部203に出力して、表示させる。
次に、図54のフローチャートを参照して、図53の最適化装置301の画像最適化処理について説明する。この画像最適化処理も、図41の最適化処理301が行う画像最適化処理と同様に、係数変更処理と、マッピング処理からなるが、マッピング処理は、図35や図38で説明したマッピング処理と同一であるため、ここでは、係数変更処理についてのみ説明する。
係数変更処理では、ステップS311乃至S315において、図52のステップS291乃至S296における場合と、それぞれ同様の処理が行われる。
そして、ステップS315において、図52のステップS295における場合と同様に、変更後の係数セットが係数メモリ321に記憶された後は、ステップS317に進み、内部情報生成部371は、係数メモリ321に記憶されている係数セットの各係数値を読出し、表示部203で表示可能な画像信号に変換して、表示部203に出力して表示させる。このとき、表示部203には、例えば、上述の図39で示したような3次元分布図や、または、図40で示した2次元分布図のような形式にして、係数セットの各係数値を表示するようにすることができる。
ステップS317の処理後は、ステップS311に戻り、以下、同様の処理が繰り返される。
図54の係数変更処理によれば、係数メモリ321に記憶された係数セットの値が、内部情報として表示されるので、ユーザは、この係数セットを見ながらユーザにとって最適な処理を実行する係数セットが得られるように、操作部202を操作することが可能となる。
尚、マッピング処理部222の積和演算部252(図31)では、式(39)の1次式ではなく、2次以上の高次の式を演算することによって、出力信号を求めるようにすることが可能である。
次に、図55を参照して、入力信号としての画像信号からテロップ部分を抽出する最適化装置401の構成例について説明する。
最適化装置401の特徴量検出部411は、操作部402より入力される操作信号に基づいて、例えば、指定された2種類の特徴量を入力信号としての画像信号の各画素について検出し、検出した特徴量の情報を処理決定部412に出力する。また、特徴量検出部411は、入力された画像信号よりテロップが抽出されるまでの間、内部のバッファ421に入力信号としての画像信号を記憶し、処理部413に出力する。操作部402は、図41や図53の操作部202と同様のものである。尚、特徴量検出部411は、指定された2種類の特徴量を入力信号としての画像信号の各画素について検出するだけのものに限らず、例えば、複数種類の特徴量を同時に検出し、その中から指定された2種類の特徴量を出力するものでも良いし、2種類以上の特徴量を同時に検出し、同時に出力するものでも良い。
処理決定部412は、特徴量検出部411より入力された特徴量に基づいて、後段の処理部413が画像信号に対して施す処理を、例えば、画素単位で決定し、決定した処理内容を処理部413に出力する。
処理部413は、バッファ421より読み出した入力信号としての画像信号に、処理決定部412より入力された処理内容の処理を画素単位で施し、表示部403に出力し、表示させる。
次に、図56を参照して、特徴量検出部411の構成について説明する。特徴量検出部411のバッファ421は、入力信号としての画像信号を一時的に記憶して、処理部413に供給する。特徴量抽出部422は、特徴量選択部423により選択された2種類の特徴量を、入力信号としての画像信号から抽出し、処理決定部412に出力する。特徴量選択部423は、操作部402より入力される操作信号に基づいて特徴量抽出部422に対して入力信号から抽出すべき特徴量を指定する情報を供給する。選択可能な特徴量としては、例えば、画像信号の各画素毎の輝度値、ラプラシアン、ソーベル、フレーム間差分、フィールド間差分、背景差分、および、所定範囲内の各特徴量から得られる値(総和、平均、ダイナミックレンジ、最大値、最小値、中央値、または、分散など)などであるが、それ以外の特徴量であっても良い。
次に、図57を参照して、処理決定部412の構成について説明する。処理決定部412の特徴量認識部431は、特徴量検出部421より入力されてくる複数の特徴量の種類を認識し、認識した特徴量の種類を示す情報と共に、その特徴量そのものを処理内容決定部432に出力する。処理内容決定部432は、特徴量認識部431より入力される特徴量の種類を示す情報と、特徴量そのものに基づいて、処理内容データベース433に記憶されている各特徴量毎に予め設定されている処理内容を決定し、決定した処理内容を処理部413に出力する。
次に、図58を参照して、処理部413の構成について説明する。処理部413の処理内容認識部441は、処理決定部412より入力されてくる処理内容を認識し、認識した処理を実行するように処理実行部442に対して指令する。処理実行部442は、処理内容認識部441からの各画素毎の指令に基づいて、バッファ421を介して入力される入力信号に対して、指定された処理を施し、表示部202で表示可能な画像信号に変換して表示部403に出力し、表示させる。
尚、図55の最適化装置401は、画像信号よりテロップを抽出するものであるので、処理内容は、各画素毎にテロップ部分として抽出するか否か(表示させるか否か)の処理となるが、それ以外の処理を画像信号に施すようにさせても良いし、テロップ部分と認識された画素については、入力信号がそのまま出力され、テロップ部分以外と認識された画素については、出力しないようにする処理であっても良い。また、ここでは、説明を簡単にするために、入力信号として入力される画像が1フレームの静止画であるものとする。但し、図55の最適化装置401は、動画にも適用可能である。
次に、図59のフローチャートを参照して、図55の最適化装置によるテロップ抽出最適化処理について説明する。
ステップS331において、特徴量検出部411の特徴量抽出部422は、特徴量選択部423より2種類の特徴量が選択されたか否かを判定し、選択されるまでその処理を繰り返す。すなわち、ユーザが、操作部402を操作することにより入力されてくる特徴量の種類に応じた操作信号に基づいて、特徴量選択部423が選択された特徴量を示す情報を特徴量抽出部422に入力するまで、ステップS331の処理が繰り返される。例えば、特徴量選択部423より特徴量を選択する情報が入力されたと判定された場合、すなわち、ユーザが操作部402を操作して、2種類の特徴量を選択したと判定した場合、その処理は、ステップS332に進む。
ステップS332において、特徴量抽出部422は、選択された2種類の特徴量を入力信号としての画像信号より各画素毎に抽出し、処理決定部412に出力する。このとき、バッファ421には、入力信号としての画像信号が記憶される。
ステップS333において、処理決定部412は、入力された2種類の特徴量に基づいて各画素毎に処理内容を決定して処理部413に出力する。より詳細には、特徴量認識部431が、入力された2種類の特徴量を識別して、識別した特徴量の種類と、特徴量そのものを処理決定部412に出力する。さらに、処理決定部412は、各画素毎に入力された2種類の特徴量から処理内容を決定する。より具体的には、処理内容データベース433には、任意の2種類の特徴量Aと特徴量Bの組合せとして(特徴量A,特徴量B)毎に、その特徴量AとBの各値と、その特徴量AとBを有する画素に対する処理内容(今の場合、テロップであるか無いかの情報)とを対応付けたLUT(Look Up Table)と呼ばれるテーブルが記憶されており、処理内容決定部432は、いま処理しようとしている注目画素の(特徴量A,特徴量B)の組合せに基づいて、LUTを参照し、対応する処理、すなわち、テロップとして処理するか否かを決定して処理部413に出力する。尚、このLUTは、例えば、予めテロップのみの画像から、複数の特徴量を抽出し、その組合せをテロップであるという情報に対応付けることによって生成される。また、LUTの詳細については後述する。
ステップS334において、処理部413は、処理決定部412より入力された処理内容に従ってバッファ421を介して入力される入力信号としての画像信号を処理し、表示部403に表示可能な画像信号に変換して、表示部403に出力して、表示させる。より詳細には、処理部413の処理内容認識部441は、処理決定部412より入力された処理内容を認識して、対応する画素に対して決定された処理を実行するように処理実行部442に指令する。処理実行部442は、バッファ421に記憶された入力信号としての画像信号を読出し、各画素毎に対応する処理を実行した後、表示部403で表示可能な画像信号に変換して、表示部403に出力すると共に表示させる。
ステップS335において、特徴量検出部411は、テロップが抽出されているとみなされているか否かを判定する。すなわち、ユーザが、表示部403に表示された画像を見て、テロップが抽出されていると判断されないとき、再度特徴量の組合せを変更してテロップ抽出処理をしようとするように操作部402を操作する。この操作に対応する操作部402からの操作信号が入力されたとき、その処理は、ステップS331に戻り、それ以降の処理が繰り返される。
一方、ユーザの主観によりテロップが抽出されていると判定されるとき、ユーザが、操作部402を操作することにより処理の終了を示す操作信号が特徴量検出部421に入力され、このとき、処理は終了する。
すなわち、上述の処理により、ユーザが、表示部403に表示される画像を見て、テロップが抽出されていると判断できるまで、ステップS331乃至S335の処理が繰り返されることにより、ユーザにとって最適な特徴量の組合せを設定し、入力信号としての画像信号からテロップを抽出させるようにすることができる。尚、上述において、処理内容を決定するために、2種類の特徴量を用いていたが、それ以外の数の種類の特徴量により処理内容を決定するようにしても良い。また、ステップS331の処理においては、ユーザによる操作部402の所定の操作(例えば、アップダウンを指定するボタン操作など)に対応した操作信号により、所定の順序で複数の特徴量の組合せが、順次切り替わるようにして、ユーザが特に特徴量の種類を意識しなくても特徴量を切替えて入力することができるようにしてもよい。
以上の処理においては、ユーザによる操作部402の操作に応じて、特徴量検出部411で検出される特徴量の種類が、処理部413においてテロップが検出されるように変更される。この特徴量検出部411で検出される特徴量の種類の変更は、処理決定部における処理内容の決定アルゴリズムの変更を示すことになるので、特徴量検出部411においても「処理の構造」が変更されているといえる。
また、特徴量検出部411では、上述したように、各種の特徴量の検出が可能であるが、この特徴量の中には、その検出を行うのに、例えば、ラプラシアンなどのように、フィルタ係数などのパラメータの設定が必要なものが存在する。特徴量の検出のためのパラメータは、操作部402の操作に対応して変更可能なようにすることができるが、このパラメータの変更によれば、特徴量検出部411で検出される特徴量の種類自体は変わらないが、検出される特徴量の値は変化する。従って、この特徴量の検出のためのパラメータの変更は、特徴量検出部411の「処理の内容」の変更と言うことができる。
次に、図60を参照して、図55の最適化装置401に内部情報生成部511を設けた最適化装置501の構成について説明する。図60の最適化装置501においては、内部情報生成部511を設けた以外の構成については、基本的に図55の最適化装置401と同様である。
最適化装置501の内部情報生成部511は、内部情報として、例えば、特徴量検出部411の特徴量選択部423より出力される特徴量選択情報を抽出し、今現在選択された特徴量の種類を表示部403に表示させる。
ここで、図61のフローチャートを参照して、最適化装置501によるテロップ抽出最適化処理について説明する。
尚、この処理は、図59のフローチャートを参照して説明した、図55の最適化装置401によるテロップ抽出最適化処理と基本的には同様の処理であり、選択された特徴量の種類を示す情報が表示される処理が加えられた点が異なる。
すなわち、ステップS341において、特徴量検出部411の特徴量抽出部422は、特徴量選択部423より2種類の特徴量が選択されたか否かを判定し、選択されるまでその処理を繰り返す。例えば、特徴量選択部423より特徴量を選択する情報が入力されたと判定された場合、すなわち、ユーザが操作部402を操作して、2種類の特徴量を選択したと判定した場合、その処理は、ステップS342に進む。
ステップS342において、内部情報生成部511は、選択された2種類の特徴量の種類を示す情報を特徴量選択部423より抽出し、選択された2種類の特徴量の種類の名称を表示部403に表示させる。
以下、ステップS343乃至S346において、図59のステップS332乃至S335における場合と、それぞれ同様の処理が行われる。
図61の処理によれば、特徴量検出部411の処理に関する内部情報である現在選択されている特徴量の種類が表示(呈示)されるので、ユーザは、現在選択されている特徴量の種類を把握しながら、入力信号としての画像信号からテロップを精度良く抽出することができるような最適な特徴量の組合せを設定することができる。
尚、内部情報生成部511では、例えば、特徴量検出部411で検出された各画素のついての2種類の特徴量の値の分布を、内部情報として生成し、表示部403において、後述する図65や図67に示すように表示させるようにすることが可能である。
また、上述したように、操作部402の操作に応じて、特徴量の検出のためのパラメータを変更する場合には、内部情報生成部511では、そのパラメータを内部情報として、表示部403に表示(呈示)させるようにすることも可能である。
次に、図62を参照して、図60の内部情報生成部511に替えて、処理決定部412から内部情報を生成する内部情報生成部611を設けるようにした最適化装置601の構成例について説明する。
図62の最適化装置601は、図60の内部情報生成部511に替えて、内部情報生成部611を設けたこと以外は、図60の最適化装置501と同様に構成されている。
内部情報生成部611は、内部情報として、例えば、処理決定部412の処理内容決定部432により決定された処理内容と、実際に検出された2種類の特徴量に基づいて、2種類の特徴量を軸とした時のテロップ抽出された画素と、テロップ抽出されなかった画素の分布図(例えば、図65,図67)を生成し、表示部403に表示させる。
次に、図63のフローチャートを参照して、図62の最適化装置601によるテロップ抽出最適化処理について説明する。
尚、この処理は、図61のフローチャートを参照して説明した、図60の最適化装置501によるテロップ抽出最適化処理と基本的には同様の処理であり、選択された2種類の特徴量を軸とした、画素がテロップ抽出されたか否かの分布が表示される処理が加えられた点が異なる。
すなわち、ステップS351において、特徴量検出部411の特徴量抽出部422は、特徴量選択部423より2種類の特徴量が選択されたか否かを判定し、選択されるまでその処理を繰り返す。例えば、特徴量選択部423より特徴量を選択する情報が入力されたと判定された場合、すなわち、ユーザが操作部402を操作して、2種類の特徴量を選択したと判定した場合、その処理は、ステップS352に進む。
ステップS352において、特徴量抽出部422は、選択された2種類の特徴量を入力信号としての画像信号より各画素毎に抽出し、処理決定部412に出力する。このとき、バッファ421には、入力信号としての画像信号が記憶される。
ステップS353において、処理決定部412は、入力された2種類の特徴量に基づいて各画素毎に処理内容を決定して処理部413に出力する。
ステップS354において、処理部413は、処理決定部412より入力された処理内容に従ってバッファ421より読み出される入力信号としての画像信号を処理し、表示部403に表示可能な画像信号に変換して、表示部403に出力して、表示させる。
ステップS355において、内部情報生成部611は、処理決定部412の処理内容決定部により決定された処理内容を、2種類の特徴量を軸として、プロットした分布図を、内部情報として生成し、表示部403に表示させる。
ステップS356において、特徴量検出部411は、テロップが抽出されているとみなされているか否かを判定する。ステップS356において、ユーザの操作に対応する操作部202からの操作信号が入力され、テロップが抽出されていないとみなされたとき、その処理は、ステップS351に戻り、それ以降の処理が繰り返される。
一方、ステップS356において、ユーザが、操作部402を操作することにより処理の終了を示す操作信号が特徴量検出部421に入力されたとき、処理は終了する。
すなわち、例えば、図64で示すような入力信号としての画像信号が入力されたものとする。図64においては、背景画像(ここでは、テロップでない部分)に対して、図中中央に「タイトルABC」がテロップとして表示されている。
ステップS355においては、内部情報生成部611は、図64で示すような画像信号から検出された2種類の特徴量をそれぞれ軸としてテロップとして抽出されたか否かを示す分布を、例えば、図65で示すような2次元分布図として表示する。
図65の例では、特徴量として選択されたものは、ラプラシアンとフレーム間差分の2種類となっており、図中丸印がテロップ抽出された画素を示し、バツ印がテロップ抽出されなかった画素を示す。図65の例では、テロップ抽出された画素と、テロップ抽出されなかった画素が分布上境目のない状態になっている(テロップの画素とテロップではない画素との分布が分かれていない)。このような分布となっている場合、テロップは背景画像から抽出されていないことが多く、例えば、図66で示すように、テロップ部分が境界ではなく、その周りに、境界621,622が生じるような状態となる。
このようなとき、ユーザは、テロップが抽出されていないと判定することに成り、結果として、ステップS351乃至S356の処理が繰り返されることになる。そして、この処理が繰り返されることにより、例えば、選択された特徴量がラプラシアン和(17画素×17画素)(注目画素を中心とした17画素×17画素範囲の画素の各ラプラシアンの総和)と輝度DR(各画素の輝度値の注目画素を中心とした17画素×17画素範囲の画素のダイナミックレンジ)となったとき、図67で示すように、分布図が生成されたとする。このとき、図67においては、テロップとして抽出された画素の分布と、テロップとして抽出されなかった画素の分布が視覚的に分かれた状態となっている。すなわち、特徴量としてラプラシアン和と輝度DRの組合せを選択した時に、入力画像のテロップとそれ以外の部分が分かれるように分布することが示されている。このような分布が得られた時、各画素から検出された特徴量としてのラプラシアン和と輝度DRを閾値処理等することにより、図68で示すように、テロップ部分を精度良く抽出することができる。
このように、上述の処理により、ユーザが、表示部403に表示される画像と共に、選択された2種類の特徴量を軸とした2次元分布を見て、テロップが抽出されていると判断できるまで、ステップS351乃至S356の処理が繰り返されることにより、処理決定部412の処理に関する内部情報としての特徴量からみたテロップと検出された画素と、背景画素との分布が表示されることにより、ユーザは、特徴量からみたテロップと検出された画素と、背景画素との分布を把握しながら、入力信号としての画像信号からテロップを精度良く抽出することができるように操作部402を操作して、ユーザにとって最適な特徴量の組合せを設定することができる。
次に、図69を参照して、図62で示した最適化装置601の処理決定部412に替えて、処理決定部711を設けた最適化装置701の構成について説明する。最適化装置701においては、処理決定部412に替えて、処理決定部711が設けられた以外の構成は、図62で示した最適化装置601と同様である。
処理決定部711は、操作部702(操作部402と同じもの)からの操作信号に基づいて、処理内容データベース433のLUTの内容を変更すると共に、特徴量検出部411より入力された特徴量に基づいて、後段の処理部413が画像信号に対して施す処理を画素単位で決定し、決定した処理内容を処理部413に出力する。
次に、図70を参照して、処理決定部711について説明する。基本的な構成は、図50の処理決定部412と同様であるが、処理内容決定部432に替えて、処理内容決定部721が設けられている。処理内容決定部721は、操作部702より入力された操作信号に基づいて、処理内容データベース433に記憶された2種類の特徴量の組合せ毎に処理内容が決定されているLUTを変更する。より詳細には、入力信号としての画像信号をそのまま表示した状態で、操作部202によりテロップとして指定された領域の画素の特徴量をテロップとみなし、それ以外の領域をテロップ以外の処理をするようにLUTを設定する。
LUTが変更された後、処理内容決定部721は、特徴量認識部431より入力される特徴量を識別する情報と、特徴量そのものに基づいて、処理内容データベース433に記憶されている各特徴量毎に予め設定されている処理内容を決定し、決定した処理内容を処理部413に出力する。
次に、図71のフローチャートを参照して、図69の最適化装置701によるテロップ抽出最適化処理について説明する。
ステップS361において、入力信号としての画像信号がそのまま表示部403に表示される。より詳細には、特徴量検出部411のバッファ421が、入力信号としての画像信号を受信して記憶し、処理部413が、バッファ421に記憶されている入力信号としての画像信号をそのまま読出し、処理すること無く、そのまま表示部403に出力して、表示させる。
ステップS362において、処理決定部711の処理内容決定部721は、操作部702よりテロップと背景が指示されたか否かを判定する。すなわち、例えば、ステップS361の処理で、図72で示すように処理されていない画像信号が表示されていたものとする。このとき、ユーザが操作部702を介してポインタ741を操作して(ドラッグ、または、クリックするなどして)、範囲742などにより大雑把にテロップ部分を指定するなどして、例えば、図73で示すように、テロップ部752と図72の範囲742の外側部分の背景部751が指定されるまでその処理を繰り返し、テロップと背景部が指示されたとき、指示されたそれぞれの対応する画素位置を内蔵するメモリ(図示せず)に記憶し、その処理は、ステップS363に進む。
ステップS363において、特徴量検出部421の特徴量選択部423は、操作部202より所定の2種類の特徴量を選択する操作信号が入力されたか否かを判定し、所定の2種類の特徴量が指定されるまでその処理を繰り返し、所定の2種類の特徴量が選択されたとき、その処理は、ステップS364に進む。
ステップS364において、特徴量抽出部422は、特徴量選択部423に入力された特徴量の種類を選択する情報に基づいて、入力信号から選択された2種類の特徴量を抽出して処理決定部711に出力する。
ステップS365において、内部情報生成部611は、処理決定部711に入力された2種類の特徴量と、テロップと背景に指定された画素位置の情報に基づいて、2種類の特徴量を軸とした2次元分布図を生成し、ステップS366において、その2次元分布図を表示部403に表示する。より詳細には、処理決定部711の特徴量認識部431が特徴量の種類を認識し、その種類を示す情報と特徴量そのものを処理内容決定部721に出力し、処理内容決定部721が、特徴量とその種類を示す情報に加えて、テロップと背景に指定された画素位置を示す情報を内部情報生成部611に出力することにより、内部情報生成部611が、テロップと背景に指定された画素位置を示す情報に基づいて、例えば、図74で示すような特徴量の2次元分布図を生成する。すなわち、図74の例では、ラプラシアンとフレーム間差分が特徴量として選択されている例が示されているが、図中丸印がテロップの画素を示し、図中バツ印が背景として指定された画素を示している。図74の2次元分布図においては、例えば、所定の画素について、ラプラシアンがXという値で検出され、フレーム間差分がYという値で検出され、その画素がテロップとして指定されているとき、2次元分布上の(X,Y)の位置に丸印が表示されるようになっており、背景が指定されているとき、同位置にバツ印が表示されるようになっている。
ステップS367において、処理内容決定部721は、テロップと背景が分離されていると判定されたことを示す操作信号が入力されたか否かを判定する。すなわち、例えば、図74で示すような2次元分布の場合、テロップを示す丸印の分布と、背景を示すバツ印の分布は、完全に分離されているとは言えない状態のため、当然のことながら表示画面上でもテロップが抽出されていることが期待できず、例えば、図73で示すように、背景部751とテロップ部752とは別に境界753が生じるなどして、背景とテロップが分かれていない状態であることが多い。このようにユーザからみてテロップが抽出できていないと判定される場合、ユーザが再度特徴量を変更しようとするとき、ユーザの操作に応じて操作部702は、分離されていないことを示す操作信号を処理決定部711の処理内容決定部721に出力する。この場合、ステップS367において、テロップと背景が分離されていると判定されたことを示す操作信号が入力されなかったと判定され、その処理は、ステップS363に戻り、それ以降の処理が繰り返される。この処理により、再び、2種類の特徴量が選択されることになる。
また、ステップS366の処理により、例えば、図75で示すように、テロップ部を示す丸印と、背景を示すバツ印がある程度分離された状態となった時、操作部702は、ユーザにより操作され、分離されていることを示す操作信号を処理決定部711の処理内容決定部721に出力する。この場合、ステップS367において、テロップと背景が分離されていると判定されたことを示す操作信号が入力されたと判定され、その処理は、ステップS368に進む。
ステップS368において、処理内容決定部721は、2次元分布上でテロップ部分が指示されたか否かを判定する。すなわち、図75で示すように、表示された分布上にポインタ741によりテロップを示す丸印が多く分布する範囲として、例えば、範囲761などを指定する操作信号が操作部702より入力されたか否かを判定し、範囲が指定されるまでその処理を繰り返し、指定されたと判定された場合、その処理は、ステップS369に進む。
ステップS369において、処理内容決定部721は、操作部702より入力された図75の範囲761を指定する操作信号に基づいて、各特徴量の組合せに対応するテロップ抽出の有無を示すLUT上の処理内容を変更し、変更されたLUTに応じて処理内容を決定して処理部413に出力すると共に、処理部413は、入力された処理内容に従って、バッファ421を介して入力された入力信号としての画像信号からテロップを抽出して表示部403に表示させる。より詳細には、処理内容決定部721は、操作部702より入力された、図75で示すような2次元分布上の範囲を示す情報に基づいて、指定された範囲に分布する画素に対応する2種類の特徴量の組合せをテロップとして抽出するように、処理内容データベース433のLUTを更新し、更新したLUTに従って、各画素の処理内容を決定し、処理部413に出力する。
ステップS370において、処理内容決定部721は、テロップが抽出されていると判定されているか否かを判定する。すなわち、ユーザからみてテロップが抽出されていると判断しているか、または、テロップが抽出されていないと判断しているかを判定する。例えば、図76で示すように、ステップS369の処理によって、表示部403に出力画像が表示されているとき、テロップ部と背景部の境界771,772は、テロップそのものではないので、完全にテロップが抽出されているとは言えない。そこで、ユーザからみて、このようにテロップが抽出されていないと判断されるとき、ユーザは、操作部702を操作して、テロップが抽出されていないことを示す操作信号を入力する。処理決定部711の処理内容決定部721は、この操作信号を受信したとき、ステップS370において、テロップが抽出されていないと判定し、その処理は、ステップS371に進む。
ステップS371において、2次元分布上のテロップの範囲を指定し直すか否かが判定され、2次元分布上のテロップの範囲を指定し直さないことが選択されたと判定された場合、その処理は、ステップS368に戻り、それ以降の処理が繰り返される。
一方、ステップS370において、例えば、ステップS371の処理で、テロップの範囲を指定し直すことが選択された場合、ステップS368において、図77で示すように、図75の範囲761に比べて、テロップを示す丸印の分布の存在する部分をより小さく絞り込んだ範囲781(よりテロップとして抽出された丸印を多く含む部分を絞り込んだ範囲)を設定する。すなわち、図75において、特徴量の分布上の範囲761をテロップ部分として設定しても、結果として、図76に示すように、テロップ部と背景部の境界771,772は、テロップそのものではないので、完全にテロップが抽出されなかったことになる。
そこで、ユーザは、操作部702を操作することにより、特徴量の分布上の範囲として(テロップ部分として指定する部分の範囲として)、範囲761よりも、狭い範囲781を設定する。このように範囲を設定することで、テロップとして抽出される特徴量の分布上の範囲は、絞り込まれたことになる、すなわち、より背景部分が排除されやすくなる。ただし、テロップとして抽出される範囲を狭くしすぎると、テロップ自身も抽出されにくくなるので、ユーザは、抽出されたテロップを見ながら、このような処理を繰り返すことにより最適なテロップの抽出状態を模索する。
そして、例えば、図78で示すようにテロップが抽出された状態となったとき、ステップS370において、ユーザが、テロップが抽出されたものと判定したときは、ユーザにより操作部702が操作されて、テロップが抽出されていると判断していることを示す操作信号が、処理決定部711の処理内容決定部721に入力されることになるので、テロップが抽出されていると判定し、その処理は、終了する。
また、ステップS371において、テロップの範囲を指定するのではないと判定された場合、その処理は、ステップS363に戻り、それ以降の処理が繰り返される。
このような処理により、まず、ユーザが入力信号としての画像信号上でテロップと背景部と、2種類の特徴量を選択し、さらに、選択されたテロップと背景が、選択された特徴量を2軸としたときにどのように2次元分布するかを見て、2次元分布上でテロップの範囲を変えるか(絞り込むか)、または、選択する2種類の特徴量を変えて、さらに、抽出されるテロップをみながら、ユーザの好みの状態となるまで、処理を繰り返すことにより、ユーザの好みに合ったテロップ抽出処理を実現することができる。尚、ステップS362の処理で、テロップと背景処理が指示されたと判定されるとき、テロップと背景の範囲の指定は、その後、2種類の特徴量の選択や、2次元分布のテロップの絞込みの雛型となる情報を生成することができれば良いので、その範囲は、大雑把なもので良い。
以上の処理においては、ユーザにより選択された2種類の特徴量の組合せに応じて、テロップであるか、または、背景であるかの処理に分かれることになるので、ユーザの操作により「処理の内容」が変更されることになる。
また、以上の処理においては、操作部402において、2種類の特徴量を指定することにより特徴量の種類が決定されたが、例えば、図79で示すように、操作部702の所定の操作ボタンによりアップまたはダウンの指示を操作信号として送るだけで2種類の特徴量の組合せを変えられるようにしても良い。すなわち、初期状態として、状態Aで示す特徴量a,bの組合せにより処理を実行し、次に、ダウンを指示すると、状態Bで示す特徴量b,cの組合せにより処理を実行し、さらに、ダウンを指示すると、状態Cで示す特徴量c,dの組合せで処理を実行し、例えば、状態Cのとき、アップを指定すると状態Bに戻り、さらに、状態Bのとき、アップを指定すると状態Aに戻るようにしても良い。このようにすることで、ユーザは、特徴量の種類について、特に意識することなく、次々と特徴量を変えていくことができるので、効率的にテロップ抽出するための特徴量の組合せを絞り込むことが可能となる。
次に、図80を参照して、図55の最適化装置401の特徴量検出部411に替えて、既存の特徴量から新たな特徴量を生成することができる特徴量検出部811を設けた最適化装置801の構成について説明する。図80においては、図55の最適化装置401の特徴量検出部411に替えて、特徴量検出部811を設けた以外の構成については同様である。
尚、操作部802は、操作部402と同様のものである。
図81を参照して、図80の特徴量検出部811の構成について説明する。特徴量検出部811においては、バッファ421、および、特徴量抽出部422は、図56で示した特徴量検出部411と同様である。特徴量選択部821は、操作部802から入力される特徴量を指定する操作情報に基づいて、特徴量抽出部422を制御して、予め用意された特徴量のうち指定された2種類の特徴量を抽出して、処理決定部413に出力させるか、または、特徴量データベース823に予め記憶されている特徴量を処理決定部413に出力する。より詳細には、特徴量データベース823には、特徴量の種類と、その特徴量の検出方法についての特徴量情報が記憶されている。特徴量抽出部422は、この特徴量情報に基づいて、特徴量選択部821により選択された特徴量の種類に対応する特徴量情報を特徴量データベース823から読み出して、その特徴量情報に記録されている特徴量の検出方法に従って、入力信号から選択された特徴量を検出する。
予め用意された特徴量情報としては、各画素についての輝度値、ラプラシアン、ソーベル、フレーム間差分(例えば、注目画素(x,y)のフレーム間差分fS(x,y)は、fS(x,y)=f0(x,y)−f1(x,y)で表され、ここで、f0(x,y)は、現在の注目画素を示し、f1(x,y)は、空間上の同じ位置の1フレーム前の画素を示す)、フィールド間差分、背景差分、微分値(例えば、注目画素(x,y)の微分値fb(x,y)は、fb(x,y)=4×f0(x,y)−f0(x−1,y)−f0(x+1,y)−f0(x,y+1)−f0(x,y−1)で表され、ここで、f0(x,y)は、現在の注目画素を示し、f0(x−1,y),f0(x+1,y),f0(x,y+1),f0(x,y−1)は、それぞれ空間上のx,y方向に1画素ずつ離れた画素を示す)、および、所定範囲内の各特徴量から得られる値(総和、平均、ダイナミックレンジ、最大値、最小値、中央値、または、分散など)などがあるが、これ以外のものであっても良い。
特徴量加工部822は、ユーザから入力された操作信号に基づいて、特徴量データベース823に記憶された特徴量から新たな特徴量を生成する。より詳細には、特徴量加工部822は、ユーザから入力された操作信号に基づいて、特徴量データベース823に記憶された特徴量情報から新たな特徴量情報を生成し、その特徴量情報に基づいて特徴量抽出部422が新たな特徴量を抽出する。
また、特徴量データベース823に特徴量の種類として特徴量A,B,Cの特徴量情報が記憶されているものとすると、特徴量AのDR(ダイナミックレンジ:注目画素に対して所定の位置に存在する複数の画素の特徴量Aの値を読出し、その最小値と最大値の差分となる値を各画素毎に求めることにより生成される値)を新たな特徴量A'に対応した特徴量情報としてもよいし、同様にして、最大値、中央値、最小値、和、分散、閾値以上の値をとる画素数(閾値も設定することが可能である)、または、複数の特徴量間の線形一次結合を求めて、新たな特徴量情報としてもよい。尚、複数の特徴量間の線形一次結合とは、例えば、所定の画素についてのラプラシアンがxa、ソーベルがxb,フレーム間差分がxcであり、この3種類の特徴量を線形一次結合させるとき、この3種類の各特徴量に係数を乗じて和を取ったもの、すなわち、A×xa+B×xb+C×xcが、この画素の新たな特徴量とするものである。ここで、A,B,Cは、係数であるが、この係数は、例えば、テロップ抽出の場合、操作部802によりテロップ部を大雑把に指定した範囲の画素を教師データとし、複数の特徴量を生徒データとした学習処理により、図43、および、図44で説明したようにして求めることができる。尚、図81においては、特徴量データベース823に記憶された特徴量は、特徴量A乃至Cが特徴量抽出部422により抽出された特徴量の種類を示し、特徴量A'乃至C'が、特徴量加工部822により特徴量A乃至Cから加工された特徴量の種類であるものとする(実際に記憶されているのは、とそれぞれの特徴量情報(特徴量の種類と、その検出方法を示す情報)である)。
特徴量データベース823に記憶される特徴量情報は、特徴量抽出部422により抽出されるタイミングで指定されたものを記憶させるようにしても良いし、予め特徴量データベース823に記憶されていた特徴量情報が特徴量加工部822により加工されたものであっても良いし、それ以外の方法で予め記憶させておくものであってもよい。
次に、図82のフローチャートを参照して、図80の最適化装置801によるテロップ抽出最適化処理について説明する。ステップS381において、特徴量検出部411の特徴量抽出部422は、特徴量選択部821より2種類の特徴量が選択されたか否かを判定し、選択されない場合、その処理はステップS386に進む。また、例えば、特徴量選択部423より特徴量を選択する情報が入力されたと判定された場合、すなわち、ユーザが操作部802を操作して、2種類の特徴量を選択したと判定した場合、その処理は、ステップS382に進む。
ステップS382において、特徴量抽出部422は、選択された2種類の特徴量を入力信号としての画像信号より各画素毎に抽出し、処理決定部412に出力する。このとき、バッファ421には、入力信号としての画像信号が記憶される。
ステップS383において、処理決定部412は、入力された2種類の特徴量に基づいて各画素毎に処理内容を決定して処理部413に出力する。
ステップS384において、処理部413は、処理決定部412より入力された処理内容に従ってバッファ421を介して入力される入力信号としての画像信号を処理し、表示部403に表示可能な画像信号に変換して、表示部403に出力して、表示させる。
ステップS385において、特徴量検出部411は、テロップが抽出されているとみなされているか否かを判定する。すなわち、ユーザが、表示部403に表示された画像を見て、テロップが抽出されていると判断されないとき、再度特徴量の組合せを変更してテロップ抽出処理をしようとするように操作部802を操作する。この操作に対応する操作部802からの操作信号が入力されたとき、その処理は、ステップS386に進む。
ステップS386において、特徴量検出部811の特徴量加工部822は、特徴量の加工が指示されたか否かを判定し、特徴量の加工の指示が無い時、その処理は、ステップS381に戻る。一方、ステップS386において、特徴量加工部822は、操作部802より特徴量の加工を指示する操作信号が入力されたと判定した場合、その処理は、ステップS387に進む。
ステップS387において、特徴量加工部822は、基礎となる特徴量が指定されたか否かを判定し、基礎となる特徴量を指定する情報が入力されるまでその処理を繰り返す。例えば、操作部802が操作されて、特徴量Aを指示する操作信号が入力されると、入力信号としての画像信号の特徴量Aを基礎となる特徴量が入力されたと判定し、その処理は、ステップS388に進む。
ステップS388において、特徴量加工部822は、加工処理内容が指示されたか否かを判定し、加工処理内容が指示されるまでその処理を繰り返す。例えば、操作部802が操作されて、DRを指示する操作信号が入力されると、加工処理内容が指定されたと判定し、その処理は、ステップS389に進む。
ステップS389において、特徴量加工部822は、指定された特徴量を、指定された加工処理内容で加工し新たな特徴量を求め、特徴量データベース823に記憶させ、その処理は、ステップS381に戻る。すなわち、今の場合、特徴量加工部822は、特徴量データベース823より特徴量Aを読み出して、指定された加工処理内容であるDRを取得することにより、新たな特徴量A'を生成し、特徴量データベース823に記憶させ、その処理は、ステップS381に戻る。
一方、ステップS385において、ユーザの主観によりテロップが抽出されていると判定されるとき、ユーザは、操作部802を操作することにより処理の終了を示す操作信号が特徴量検出部421に入力され、このとき、処理は終了する。
すなわち、上述の処理により、ユーザが、表示部403に表示される画像を見て、テロップが抽出されていると判断できるまで、ステップS381乃至S389の処理が繰り返されることにより、ユーザにとって最適な特徴量の組合せを設定し、入力信号としての画像信号からテロップを抽出させるようにすることができ、さらに、ユーザが選択する特徴量の種類を増やすことにより、さらに、多くの特徴量の組合せを設定することが可能となり、ユーザにとって最適な処理を実行させるようにすることができる。
以上の処理においては、ユーザにより指定された2種類の特徴量に応じて、処理内容が決定されて、入力信号としての画像信号からテロップを抽出するようにしているので、ユーザの操作に従い、その「処理の内容」が、ユーザにとって所望の出力信号が得られるように変更されているといえる。また、ユーザの操作に従い、特徴量の2軸(選択される2種類の特徴量)が切替えられると共に、新たな特徴量も設定される(特徴量の種類が増える)ことになり、これらの特徴量の組合せにより、処理内容(例えば、テロップとして処理するか否か)を決定するアルゴリズムが変更されることになるので、「処理の内容」のうち、「処理の構造」も変更されているといえる。
また、テロップ抽出は、試行錯誤により抽出する特徴量の種類を切替えていくことにより得られるものであるが、特徴量を固定的に用いた方法では、想定する特徴量を変化させるには、プログラムを書き換えたり、システムそのものを作り直す必要があったため、テロップ抽出のための最適なアルゴリズムを発見的に得るためには、何度もシステムを作り直す必要があり、現実的にはかなり困難なものであった。これに対して、本発明の最適化装置では、リアルタイムで新たな特徴量を抽出させることが可能であり、その特徴量分布の提示も可能であるため、ユーザにより行われる試行錯誤も容易なものとなり、テロップ抽出に最適な特徴量を見出す可能性を向上させることができる。
次に、図83を参照して、図80の最適化装置801に特徴量検出部911と内部情報生成部912を設けるようにした最適化装置901の構成について説明する。図83の最適化装置901においては、特徴量検出部811に替えて特徴量検出部911が設けられ、さらに、新たに内部情報生成部912が設けられた以外の構成は、図80で示した最適化装置801と基本的には同様である。
次に、図84を参照して特徴量検出部911の構成について説明する。特徴量検出部911は、図81の特徴量検出部811と基本的に同様の構成であるが、特徴量選択部821に替えて、特徴量選択部921を、特徴量加工部822に替えて、特徴量加工部922を設けている。いずれも、基本的な機能は同様であるが、特徴量選択部911は、選択された特徴量の種類の情報を内部情報生成部912に供給している点が異なる。また、特徴量加工部922は、表示部403に加工内容の指示に関する画像情報を出力している点が異なる。
内部情報生成部912は、図60の内部情報生成部511と同様のものである。また、操作部902は、操作部402と同様のものである。
次に、図85のフローチャートを参照して、図83の最適化装置901によるテロップ抽出最適化処理について説明する。尚、この処理は基本的に図82のフローチャートを参照して説明した処理と同様であるが、内部情報生成部912により選択された特徴量を表示する点が異なる。
すなわち、ステップS391において、特徴量検出部911の特徴量抽出部422は、特徴量選択部921より2種類の特徴量が選択されたか否かを判定し、選択されない場合、その処理は、ステップS397に進む。また、例えば、特徴量選択部921より特徴量を選択する情報が入力されたと判定された場合、その処理は、ステップS392に進む。
ステップS392において、内部情報生成部912は、選択された2種類の特徴量の種類を示す情報を特徴量選択部921より抽出し、選択された2種類の特徴量の種類の名称を表示部403に表示させる。
ステップS393において、特徴量抽出部422は、選択された2種類の特徴量を入力信号としての画像信号より各画素毎に抽出し、処理決定部412に出力する。このとき、バッファ421には、入力信号としての画像信号が記憶される。
ステップS394において、処理決定部412は、入力された2種類の特徴量に基づいて各画素毎に処理内容を決定して処理部413に出力する。
ステップS395において、処理部413は、処理決定部412より入力された処理内容に従ってバッファ421を介して入力される入力信号としての画像信号を処理し、表示部403に表示可能な画像信号に変換して、表示部403に出力して、表示させる。
ステップS396において、特徴量検出部411は、テロップが抽出されているとみなされているか否かを判定する。すなわち、ユーザが、表示部403に表示された画像を見て、テロップが抽出されていると判断されないとき、再度特徴量の組合せを変更してテロップ抽出処理をしようとするように操作部902を操作する。この操作に対応する操作部902からの操作信号が入力されたとき、その処理は、ステップS397に進む。
ステップS397において、特徴量検出部911の特徴量加工部922は、特徴量の加工が指示されたか否かを判定し、特徴量の加工の指示が無い時、その処理は、ステップS391に戻る。一方、ステップS397において、特徴量加工部922は、操作部902より特徴量の加工を指示する操作信号が入力されたと判定した場合、その処理は、ステップS398に進む。
ステップS398において、特徴量加工部922は、例えば、図86で示すような加工内容の指示画面を表示する。図86においては、図中左側には、基礎特徴量表示部931が設けられ、基礎となる特徴量として、今現在特徴量データベース823に記憶されている特徴量が表示されている。今の場合、特徴量A乃至C、および、A'乃至C'が表示されている。また、その右側には、加工処理内容選択欄932が表示されている。今の場合、DR、最大値、最小値、中央値、最小値、和、分散、閾値以上の値をとる画素数、または、線形一次結合が表示されており、閾値以上の値を取る画素数については、閾値を設定する欄932aが設けられており、さらに、線形一次結合を選択する場合に選択される特徴量を選択する欄932bも設けられている。さらに、各値のスケールを設定するスケール設定欄933が表示される。スケール値とは、注目画素を中心としたときの領域を示すものであり、例えば、DRを検出する際に、必要な画素を3画素×3画素や、5画素×5画素といったようにして示す画素の領域を示す値である。
ステップS399において、特徴量加工部922は、基礎となる特徴量が指定されたか否かを判定し、基礎となる特徴量を指定する情報が入力されるまでその処理を繰り返す。例えば、操作部902が操作されて、特徴量Aを指示する操作信号が入力されると、入力信号としての画像信号の特徴量Aを基礎となる特徴量が入力されたと判定し、その処理は、ステップS400に進む。
ステップS400において、特徴量加工部922は、加工処理内容が指示されたか否かを判定し、加工処理内容が指示されるまでその処理を繰り返す。例えば、操作部902が操作されて、DRを指示する操作信号が入力されると、加工処理内容が指定されたと判定し、その処理は、ステップS401に進む。
ステップS401において、特徴量加工部922は、指定された特徴量を、指定された加工処理内容で加工し、特徴量データベース823に記憶させ、その処理は、ステップS391に戻る。
一方、ユーザの主観によりテロップが抽出されていると判定されるとき、ユーザは、操作部902を操作することにより処理の終了を示す操作信号が特徴量検出部421に入力され、このとき、処理は終了する。
すなわち、上述の処理により、ユーザは、表示されているベースとなる特徴量や、加工処理内容を見ながら操作することにより、最適な処理が行える特徴量を認識することが可能となる。さらに、その後は、ユーザにとって最適な処理を実現できる特徴量を直ぐに指定することが可能となる。また、新しい特徴量を生成する際に必要な入力情報を表示画面に従って入力することにより、ユーザが選択する特徴量の種類を増やすことができるので、多くの特徴量の組合せを効率よく設定することが可能になる。
以上の処理においては、ユーザにより指定された2種類の特徴量に応じて、処理内容が決定されて、入力信号としての画像信号からテロップを抽出するようにしているので、ユーザの操作に従い、その「処理の内容」が、ユーザにとって所望の出力信号が得られるように変更されているといえる。また、ユーザの操作に従い、特徴量の2軸(選択される2種類の特徴量)が切替えられると共に、新たな特徴量も設定される(特徴量の種類が増える)ことになり、これらの特徴量の組合せにより、処理内容(例えば、テロップとして処理するか否か)を決定するアルゴリズムが変更されることになるので、「処理の内容」のうち、「処理の構造」も変更されているといえる。
次に、図87を参照して、図83の最適化装置901の内部情報生成部912に替えて、内部情報生成部1011を設けた最適化装置1001の構成について説明する。図87においては、内部情報生成部912を内部情報生成部1011に替え、さらに、処理決定部412を図69の処理決定部711に替えた以外の構成は、図83の最適化装置901と同様である。
内部情報生成部1011は、基本的には、内部情報生成部912と同様のものであるが、さらに、処理決定部412の処理内容決定部432により決定された各画素に決定した処理内容の情報を読出し、表示部403に表示させる(図69の内部情報生成部611の機能が加えられている)。
尚、操作部1002は、操作部402と同様のものである。
次に、図88のフローチャートを参照して、図87の最適化装置1001によるテロップ抽出最適化処理について説明する。
ステップS411において、特徴量検出部911のバッファ421が、入力信号としての画像信号を受信して記憶し、処理部413が、バッファ421に記憶されている入力信号としての画像信号をそのまま読出し、処理すること無く、そのまま表示部403に出力して、表示させる。
ステップS412において、処理決定部711の処理内容決定部721は、操作部1002よりテロップと背景が指示されたか否かを判定し、テロップと背景が指示されるまでその処理を繰り返し、テロップと背景が指示されると、その処理は、ステップS413に進む。
ステップS413において、特徴量検出部911の特徴量抽出部422は、特徴量選択部921より2種類の特徴量が選択されたか否かを判定し、選択されない場合、その処理は、ステップS421に進む。また、例えば、特徴量選択部921より特徴量を選択する情報が入力されたと判定された場合、その処理は、ステップS414に進む。
ステップS414において、内部情報生成部912は、選択された2種類の特徴量の種類を示す情報を特徴量選択部921より抽出し、選択された2種類の特徴量の種類の名称を表示部403に表示(呈示)させる。
ステップS415において、特徴量抽出部422は、選択された2種類の特徴量を入力信号としての画像信号より各画素毎に抽出し、処理決定部412に出力する。このとき、バッファ421には、入力信号としての画像信号が記憶される。
ステップS416において、処理決定部711は、入力された2種類の特徴量に基づいて各画素毎に処理内容を決定して処理部413に出力する。
ステップS417において、内部情報生成部1011は、処理決定部711に入力された2種類の特徴量と、テロップと背景に指定された画素位置の情報に基づいて、2種類の特徴量を軸とした2次元分布図を生成し、ステップS418において、その2次元分布図を表示部403に表示する。より詳細には、処理決定部711の特徴量認識部431が特徴量の種類を認識し、その種類を示す情報と特徴量そのものを処理内容決定部721に出力し、処理内容決定部721が、特徴量とその種類を示す情報に加えて、テロップと背景に指定された画素位置を示す情報を内部情報生成部1011に出力することにより、内部情報生成部1011が、テロップと背景に指定された画素位置を示す情報に基づいて、例えば、図74で示すような特徴量の2次元分布図を生成する。
ステップS419において、処理部413は、処理決定部711より入力された処理内容に従ってバッファ421を介して入力される入力信号としての画像信号を処理し、表示部403に表示可能な画像信号に変換して、表示部403に出力して、表示させる。
ステップS420において、特徴量検出部911は、テロップが抽出されているとみなされているか否かを判定する。すなわち、ユーザが、表示部403に表示された画像を見て、テロップが抽出されていると判断されないとき、再度特徴量の組合せを変更してテロップ抽出処理をしようとするように操作部1002を操作する。この操作に対応する操作部1002からの操作信号が入力されたとき、その処理は、ステップS421に進む。
ステップS421において、特徴量検出部911の特徴量加工部922は、特徴量の加工が指示されたか否かを判定し、特徴量の加工の指示が無い時、その処理は、ステップS413に戻る。一方、ステップS421において、特徴量加工部922は、操作部1002より特徴量の加工を指示する操作信号が入力されたと判定した場合、その処理は、ステップS422に進む。
ステップS422において、特徴量加工部922は、加工内容の指示画面を表示する(図86)。
ステップS423において、特徴量加工部922は、基礎となる特徴量が指定されたか否かを判定し、基礎となる特徴量を指定する情報が入力されるまでその処理を繰り返す。入力信号として基礎となる特徴量が入力されたと判定した場合、その処理は、ステップS424に進む。
ステップS424において、特徴量加工部922は、加工処理内容が指示されたか否かを判定し、加工処理内容が指示されるまでその処理を繰り返す。加工処理内容が入力されたと判定された場合、その処理は、ステップS425に進む。
ステップS425において、特徴量加工部922は、指定された基礎となる特徴量を、指定された加工処理内容で加工し、特徴量データベース823に記憶させ、その処理は、ステップS413に戻る。
一方、ステップS420において、ユーザの主観によりテロップが抽出されていると判定されるとき、ユーザは、操作部1102を操作することにより処理の終了を示す操作信号が特徴量検出部421に入力され、このとき、処理は終了する。
すなわち、上述の処理により、ユーザが、表示部403に表示される画像を見て、テロップが抽出されていると判断できるまで、ステップS411乃至S425の処理が繰り返されることにより、ユーザにとって最適な特徴量の組合せを設定し、入力信号としての画像信号からテロップを抽出させるようにすることができ、ユーザが選択可能な特徴量の種類を増やすことにより、さらに、多くの特徴量の組合せを設定することが可能となり、ユーザにとって最適な処理を実行させるようにすることができる。また、既存の特徴量を加工して新しい特徴量を生成する際に必要な加工指示画面を表示するようにしたので、ユーザは、その表示に従って効率よく加工処理を実行することができる。また、その際、画素の特徴量上のテロップと背景の分離状態を見ながら特徴量を変化させながら、繰り返しテロップの抽出処理を実行することができるので、精度の高いテロップ抽出が可能な特徴量を容易に選択することが可能となる。
次に、図89を参照して、図55の最適化装置401の特徴量検出部411、処理決定部412、および操作部402に替えて、特徴量検出部1111、処理決定部1112、および、操作部1102を設けたときの最適化装置1101の構成について説明する。図89においては、特徴量検出部1111、処理決定部1112、および、操作部1102が新たに設けられた以外の構成については、図55の最適化装置401と同様である。
特徴量検出部1111は、図56の特徴量検出部411の構成のうち、特徴量選択部423が設けられておらず、特徴量抽出部422が予め設定された2種類の特徴量を抽出する以外の構成は同様である。
処理決定部1112は、処理内容データベース433に記憶されたLUTが更新される履歴情報を記憶し、その履歴情報に対応してLUTを変更する。尚、処理決定部1112の構成については、図90を参照して後述する。
尚、操作部1102は、操作部402と同様のものである。
ここで、図90を参照して、処理決定部1112の構成について説明する。図90の処理決定部1112は、図57の処理決定部412の処理内容決定部432に替えて、処理内容決定部1121を設け、さらに、履歴メモリ1122が追加されている点が以外は処理決定部412と同様の構成である。
処理内容決定部1121は、処理内容データベース433に記憶されたLUTを変更させる操作の履歴情報を履歴メモリ1122に記憶させ、履歴情報に基づいてLUTを変更させる。これ以外の機能については、図57の処理決定部412の処理内容決定部432と同様のものである。
次に、図91のフローチャートを参照して、図89の最適化装置1101によるテロップ抽出最適化処理について説明する。
ステップS431において、特徴量検出部1111の特徴量抽出部411は、入力信号としての画像信号より所定の2種類の特徴量を抽出し、処理決定部1112に出力する。このとき、バッファ421には、入力信号としての画像信号を記憶する。
ステップS432において、処理決定部1112の処理内容決定部1121は、特徴量認識部431より入力される特徴量の種類と特徴量に基づいて、処理内容データベース433に記憶されたLUTを参照して、各画素毎に処理内容を決定し処理部413に出力する。
ステップS433において、処理部413は、処理決定部1112より入力された処理内容に従って各画素を処理して、表示部403に出力して、表示させる。
ステップS434において、処理決定部1112の処理内容決定部1121は、LUTを変更する操作信号が操作部1102より入力されたか否かを判定する。すなわち、ユーザは、表示部403に表示された画像をみて、ユーザの好みの処理がなされているかを主観的に判断し、その判断結果に基づいて、ユーザにより操作部1102が操作され、対応する操作信号が入力されることになる。例えば、ユーザの好みに合う処理がなされていない場合(ユーザの好みの画像が表示部403に表示されていない場合)、処理決定部1121の処理内容データベース433のLUTを変更するために、LUTの変更の要求が入力されることになる。
ステップS434において、LUTの変更を要求する操作信号が入力された、すなわち、ユーザの好みの処理がなされていない場合、その処理は、ステップS435に進む。
ステップS435において、LUTの変更処理をオートLUT変更処理により実行することができるか否かが判定される。ここで、LUTの変更処理は、マニュアルLUT変更処理とオートLUT変更処理が存在する。オートLUT変更処理が可能であるか否かの判定の詳細については後述する。
例えば、ステップS435において、オートLUT変更処理が可能ではないと判定された場合、その処理は、ステップS436に進み、マニュアルLUT変更処理が実行される。
ここで、LUTの変更処理の説明にあたり、LUTの詳細について説明しておく。LUTは、図92で示すように。2つの特徴量の組合せ毎に決定されている処理内容を示したテーブルである。図92においては、2種類の特徴量として特徴量A,Bの場合について示されており、この例では、各特徴量が8段階(合計64クラス)で分類される例が示されている。尚、図92においては、特徴量が0乃至1.0の値に正規化されたものであるものとし、特徴量Aの値Vaについては、左から0≦Va<1/8、1/8≦Va<2/8、2/8≦Va<3/8、3/8≦Va<4/8、4/8≦Va<5/8、5/8≦Va<6/8、6/8≦Va<7/8、7/8≦Va≦8/8、特徴量Bの値Vbについては、上から0≦Vb<1/8、1/8≦Vb<2/8、2/8≦Vb<3/8、3/8≦Vb<4/8、4/8≦Vb<5/8、5/8≦Vb<6/8、6/8≦Vb<7/8、7/8≦Vb≦8/8の範囲に分離されている。各処理内容は、図中では、それぞれの範囲の特徴量の組合せによりX,Y,Zの3種類に分類されており、図92の場合、0≦Va≦3/8、かつ、0≦Vb≦3/8の範囲では処理内容X、4/8≦Va<6/8、または、4/8≦Va<6/8の範囲では処理内容Y、それ以外の範囲では、処理内容Zとなっている。また、処理内容は、様々な指定ができる。例えば、図93乃至図95で示すように、注目画素に対して、処理部413で処理に用いられる予測タップを指定することができる。
すなわち、図93においては、処理内容Xを示しており、注目画素をP0として、空間的にx方向に注目画素P0を中心として、フィルタタップP1,P2を設定し、y方向にも同様に注目画素P0を中心として、タップP3,P4を設定し、さらに、時間的に注目画素P0を中心として、その前後にタップP5,P6(例えば、同じ画素位置の1フレーム前のタップP6と1フレーム後のP5)を設定している。すなわち、処理内容Xは、いわゆる時空間フィルタの処理である。
また、図94においては、処理内容Yを示しており、図93の時空間フィルタからタップP3,P4に替えて、時間方向にタップP6よりもさらに前のタイミングのタップP12と、タップP5よりもさらに後のタップP11を設定している。すなわち、処理内容Yは、いわゆる時間フィルタの処理である。
さらに、図95においては、処理内容Zを示しており、図93の時空間フィルタからタップP5,P6に替えて、x方向にタップP1よりもさらに注目画素よりも離れた位置にタップP21と、タップP2よりもさらに注目画素よりは離れた位置にタップP22を設定している。すなわち、処理内容Zは、いわゆる空間フィルタの処理である。
尚、処理内容は、その種類も図92の例のように3種類に限られるものではなく、当然のことながらそれ以外の数の種類に分けても良く、例えば、全ての画素を白色か、または、黒色に分けるような2値化処理をさせるようにしても良い。また、この2値化処理は、例えば、上述の例のように、テロップ部として抽出する画素であるか否かの2値化処理を指定するものであってもよい。逆に、処理内容の種類が、3種類以上であってもよい。
次に、図96のフローチャートを参照して、図91のステップS436におけるマニュアルLUT変更処理について説明する。
ステップS441において、処理内容決定部1121は、操作部1102より操作信号として、画素位置が指定され、処理内容が指定されたか否かを判定し、操作部1102より操作信号として、画素位置が指定され、処理内容が指定されるまでその処理を繰り返す。すなわち、例えば、図97で示す画面が表示部403に表示されていた場合、ユーザは、表示部403に表示された画像上でポインタ1131を操作して、処理の変更を加えたい画素位置で所定の処理を実行して、例えば、図97で示すようにドロップダウンリスト1132を表示させ、さらに、ドロップダウンリスト1132に表示された処理内容X,Y,Zのいずれかを指定することができる。ステップS441においては、この指定がなされたとき、画素位置が指定され、処理内容が指定されたと判断され、その処理は、ステップS442に進む。今の場合、図97で示すように、画素位置P41が選択され、処理内容Xが選択されている。
ステップS442において、処理内容決定部1121は、指定された画素位置から対応する2種類の特徴量の組合せを読み出す。より詳細には、処理内容決定部1121は、特徴量検出部1111により検出された特徴量のうち、指定された画素に対応する2種類の特徴量の組合せを読み出す。
ステップS443において、処理内容決定部1121は、対応する特徴量の組合せに該当する処理内容を、ステップS441において指定された処理内容に変更する。
ステップS444において、処理内容決定部1121は、変更された画素位置と、処理内容を履歴メモリ1122に記憶させる。
ステップS445において、処理内容決定部1121は、他にLUTの変更が有るか無いかを判定し、まだ、引き続きLUTを変更させる処理がされると判定した場合、すなわち、操作部1102よりその他のLUTの変更を指示する操作信号が入力された場合、その処理は、ステップS441に戻り、引き続きLUTを変更させる処理がないと判定した場合、すなわち、操作部1102よりLUTの変更の終了を示す操作信号が入力された場合、その処理は終了する。
以上のマニュアルLUT変更処理では、LUTの変更が次のように行われる。すなわち、ステップS442において、得られた画素位置P41の画素の特徴量が、例えば、(Va,Vb)=(0.52,0.27)の場合、図98中LUTの(左からの位置,上からの位置)=(5,3)の位置(LUT上の位置については、以下においても同様に示す)については、図98においては、処理内容Yが設定されている。いま、ステップS443において、図97で示すように、処理内容がXに変更されたとすると、図99で示すように、ステップS443において、LUTの(5,3)の位置の処理が処理内容Yから処理内容Xに変更される。
図96のマニュアルLUT変更処理が終了した後、その処理は、図91のフローチャートのステップS432の処理に戻り、それ以降の処理が繰り返されることになる。この場合、LUTが上述のように変更されているときは、2種類の特徴量の組合せが、図99で示すように、LUTの(5,3)となる画素では、処理内容Yに対応する処理が実行されることになる。結果として、図97で示した画像のうち、画素位置P41と同様の特徴量を有する画素、すなわち、LUTの(5,3)に属する画素に対応する処理が変更され、例えば、図100に示すように、その部分に図97における場合と異なる処理が施された画像が表示される。尚、図100では、図97の画素位置P41の画素と同様の特徴量を有する画素が白色になった例を示している。
図96のフローチャートを参照して説明した処理の例では、選択された画素の特徴量の組合せにより指定されるLUT(上の処理内容)だけが変更される例について説明したが、LUTの変更はこれに限るものではない。すなわち、例えば、LUT上で変更が指定された位置から見て、近い部分を全て変更された処理内容とするようにしても良い。すなわち、例えば、図101で示すように、LUTの初期状態として、全ての処理内容がZとして設定されていた場合(LUTの初期状態は、いわゆるデフォルトの設定であって、全ての処理内容がZでない状態であっても良い)、図96のフローチャートの処理により、図102Aで示すように、LUT上の(4,2)の位置の処理内容がXに、(5,2)の位置の処理内容がYに変更されたとき、図102Bで示すように、変更されたLUT上の位置から近い領域をXまたはYに変化させるようにしても良い。すなわち、図102Bの場合、LUT上の全ての位置で、LUT上の(4,2)の位置からの距離と、(5,2)の位置からの距離を比較し、近い位置の処理内容に全てが変更されている。結果として、図102Bでは、左半分の領域が処理内容Xにされ、右半分の領域が処理内容Yにされている。
同様にして、図103Aで示すように、LUT上の(4,2),(7,7)の位置の特徴量の組合せの処理内容がXに、LUT上の(5,2),(4,5)の位置の特徴量の組合せの処理内容がYに変更された場合、図103Bで示すように、LUT上の(1,1),(2,1),(3,1),(4,1),(1,2),(2,2),(3,2),(4,2),(1,3),(2,3),(3,3),(4,3),(5,7),(5,8),(6,6),(6,7),(6,8),(7,5),(7,6),(7,7),(7,8),(8,4),(8,5),(8,6),(8,7),(8,8)では、処理内容がXとなり、LUT上のそれ以外の位置では、処理内容がYとなる。
さらに、同様にして、図104Aで示すように、LUT上の(4,2),(7,7)の位置の特徴量の組合せの処理内容がXに、LUT上の(2,3),(5,2),(4,5),(7,4)の位置の特徴量の組合せの処理内容がYに変更された場合、図104Bで示すように、LUT上の(3,1),(3,2),(4,1),(4,2),(4,3),(5,7),(5,8),(6,6),(6,7),(6,8),(7,6),(7,7),(7,8),(8,6),(8,7),(8,8)では、処理内容がXとなり、LUT上のそれ以外の位置では、処理内容がYとなる。
このようにLUTを変更させるようにすることで、1回の処理で複数の特徴量の組合せの処理内容を、比較的類似した特徴量の組合せで、一括して変更させることが可能となる。
ここで、図91のフローチャートの説明に戻る。
ステップS435において、オートLUT変更処理が可能であると判定された場合、ステップS437に進み、オートLUT変更処理が実行される。
ここで、図105のフローチャートを参照して、オートLUT変更処理について説明する。ステップS461において、処理内容決定部1121は、履歴メモリ1122に記憶されている更新履歴の分布の各処理内容毎に存在する群を求める。すなわち、履歴メモリ1122には、図106で示すように、例えば、上述のマニュアルLUT変更処理により変更が指定されたLUT上の位置と、指定された処理内容が記録されたLUTとは異なる履歴テーブルを記憶している。図106で示す履歴テーブルでは、LUT上の(3,3),(8,3),(2,5),(6,6)の処理内容に変更が指示されたことが示されており、それぞれ、処理内容X,X,X、およびYが指示されたことが示されている。
ここで、処理内容毎の群とは、履歴テーブル上の各処理内容が所定の密度以上に存在し、所定の面積以上となっている領域を指す。
例えば、群が存在すると、図107で示すように、履歴テーブル上に群1151が形成され、処理内容決定部1121は、この群1151を求める。尚、図107においては、群1151は、処理内容Xの群であり、その他の処理内容毎にも群が求められる。
また、群は、マニュアルLUTの処理がある程度の回数実行されて、更新履歴が履歴メモリ1122に記憶されていて、かつ、ある程度、LUT上のまとまった位置で、同じ処理内容への変更処理が実行されていないと存在しない。尚、図91のステップS435では、この処理内容の群が存在するか否かによって、オートLUT変更処理が可能であるかが判定される。すなわち、処理内容毎の群が存在する場合には、オートLUT変更処理が可能であると判定され、存在しない場合には、オートLUT変更処理が可能ではないと判定される。
ステップS462において、処理内容決定部1121は、ステップS461で求められた群の重心位置を検出する。
すなわち、例えば、図107の場合、群1151が形成されているが、その重心位置は、処理内容Xが指定された全ての履歴テーブル上の位置から求められる。図107の場合、群1161内の処理内容Xが指定された全ての履歴テーブル上の位置の重心1161が求められる。
ステップS463において、処理内容決定部1121は、群の重心位置から所定の範囲内に存在する履歴テーブル上の位置の処理内容に対応して、それぞれの画素の特徴量の組合せに対応するLUT上のマス目の処理内容を、群を構成する画素の特徴量の組合せに対応する履歴テーブル上のマス目の処理内容に変更し、その処理は、終了する。すなわち、図107において、重心位置1161を中心とする所定の半径の円の範囲である範囲1162のなかに存在する履歴テーブル上の位置に対応するLUT上の全ての処理内容が、群を構成する処理内容Xに変更される。
すなわち、例えば、図107で示すように履歴テーブルが、図108に示すようなLUTが構成されている状態で生成されたものであるとすると、図107で示すように、重心1161から所定の距離内の範囲1162内の履歴テーブル上の(2,3)、(3,4)は、群を構成する処理内容Xとは異なる処理内容Yが履歴情報として記憶されているので、履歴テーブル上の(2,3)、(3,4)に対応するLUT上の(2,3)、(3,4)の処理内容をXに変更する。従って、図108に示すようにLUTが構成されていた場合、処理内容決定部1121は、LUT上の(2,3)が、処理内容がYであるので、図109で示すように、LUT上の(2,3)を処理内容をXに変更する。また、図108の場合、処理内容決定部1121は、LUT上の(3,4)が、処理内容がXであるので、図109で示すように、LUT上の(3,4)を、そのままの状態に維持する。
この処理により、LUT上の処理内容(マス目の情報)は、自動的に変更される。尚、この処理は、ユーザによりLUTの変更処理が指示されるタイミングのみならず、所定の時間間隔で繰り返し実行されるようにしても良い。
ここで、図91のフローチャートの説明に戻る。
ステップS434において、LUTの変更が指示されていないと判定された場合、すなわち、ユーザが、表示部403に表示された画像を見て、ユーザの好みの画像が生成されていると判定された場合、その処理は終了する。
以上の処理により、ユーザの操作に従い、LUTの変更を繰り返すことにより、LUTの各マス目に登録される処理内容を変更することで、ユーザの好みの画像が生成させるようにすることができる。
以上においては、ユーザの操作に対応して、LUT上の処理内容が変更されるので、「処理の内容」が変更されていると言える。また、ユーザの処理に応じて、処理内容毎の群が求められるか否かにより、群の重心位置からLUTの処理内容が変更される処理体系か、または、図101乃至図104で示したように、指定されたLUT上の位置の処理内容に対応して、その他のLUT上の位置のLUT上の処理内容が変更されるという処理体系かの何れかにに変更される。すなわち、LUTの変更アルゴリズムが変更されるので、ユーザの操作に対応して、「処理の内容」のうちの「処理の構造」も変更しているといえる。
次に、図110を参照して、図89の最適化装置1101の処理決定部1112に替えて、処理決定部1181を設け、新たに内部情報生成部1182を設けたときの最適化装置1101のその他の構成例について説明する。図110においては、処理決定部1181と内部情報生成部1182が新たに設けられた以外の構成については、図89の最適化装置1101と同様である。
処理決定部1181は、処理内容データベース1191(図111)に記憶されたLUTが更新される履歴情報を記憶し、その履歴情報に対応してLUTを変更すると共に、処理内容データベース1191に記憶されているLUTを内部情報生成部1182に供給する。
内部情報生成部1182は、処理内容データベース1191に記憶されたLUTを読出し、表示部403で表示可能な情報に変換して、表示部403に出力し、表示させる。
次に、図111を参照して、処理決定部1181の構成について説明する。図111の処理決定部1181は、図90の処理内容データベース433に替えて、処理内容データベース1191を設けている点が以外は処理決定部1112と同様の構成である。
処理内容データベース1191は、LUT記憶すると共に、必要に応じてLUTの情報を内部情報生成部1182に供給する。これ以外の機能については、図90の処理内容データベース433と同様のものである。
次に、図112のフローチャートを参照して、図110の最適化装置1101によるテロップ抽出最適化処理について説明する。尚、図112のテロップ抽出最適化処理は、図91のフローチャートを参照して説明した処理と、基本的には同様であり、図112のステップS471乃至S473、および、S475乃至S478の処理は、図91のステップS431乃至S437に対応する処理であり、ステップS473の処理の後、ステップS474において、内部情報生成部1182は、処理決定部1181の処理内容データベース1191のLUTを読出し、表示部403で表示可能な画像信号に変換して表示部403に出力し、表示(呈示)させ、ステップS475に進み、それ以降の処理が繰り返される。
このような処理により、LUTが表示(呈示)されるので、表示部403に表示された画像から入力信号としての画像信号に施された処理と、LUTの変化認識しながらLUTを変更させることが可能となる。
尚、以上においては、マニュアルLUT変更処理で、表示部403に表示されたLUTに登録された処理内容で処理された画像上の画素と処理内容を指定することによりLUTを変更する例について説明してきたが、内部情報生成部1182が、処理内容データベース1191に記憶されているLUTを読み出して、例えば、操作部1102でLUT上の処理内容を直接操作可能な状態で表示部403に表示させ、LUT上の処理内容を直接変更できるようにしても良い。
ここで、図113のフローチャートを参照して、図110の最適化装置1101が上述のLUT上の値を直接変更させるマニュアルLUT変更処理について説明する。
ステップS481において、処理内容決定部1121は、LUT上の位置が指定されたか否かを判定し、指定されるまでその処理を繰り返す。例えば、図114で示すように、表示部403に表示されたLUT上の(5,3)の位置の処理内容がYとして設定されている位置が指定されると、LUT上の位置が指定されたと判定し、その処理は、ステップS482に進む。
ステップS482において、内部情報生成部1182は、指定されたLUT上の位置を示す表示を表示部403にする。すなわち、図114の場合、位置表示枠1192が、指定された(5,3)に表示される。
ステップS483において、処理内容決定部1121は、処理内容が指定されたか否かを判定し、処理内容が指定されるまでその処理を繰り返す。例えば、図114で示すように、ポインタ1191が操作された位置で、(例えば、操作部1102としてのマウスの右クリックなどにより)ドロップダウンリスト1193を表示させて、その中に表示される処理内容X,Y,Zのいずれかを、ユーザが操作部1102を操作することにより指定すると処理内容が指定されたと判定し、その処理は、ステップS484に進む。
ステップS484において、処理内容決定部1121は、処理内容を指定された処理内容に変更して処理を終了する。すなわち、図114の場合、ドロップダウンリスト1193に表示された「X」が選択されているので、図115で示すように、LUT上の(5,3)は、処理内容がYからXに変更されることになる。
以上の処理により、LUT上に設定された処理内容を直接変更させるようにすることができるので、LUTに登録された処理内容で処理された画像を見ながら、LUTを操作することで、ユーザの好みとなる処理内容を容易に設定することが可能となる。
図110の最適化装置1101においては、マニュアルLUT変更処理で、ユーザの操作により指定されるLUT上のマス目上の処理内容が変更されるので、ユーザの操作により「処理の内容」が変更されているといえる。また、履歴メモリ1122に記憶される変更履歴がある程度蓄積され、群が検出されると、LUTを変更するアルゴリズムがマニュアルLUT変更処理からオートLUT変更処理へと変更されるので、「処理の構造」が変更されている。
さらに、処理決定部1112の処理に関する内部情報としてLUTが表示されると共に、表示されたLUTを見ながらLUT上の処理内容を変更させることができるので、ユーザは、LUT上の内容と表示部403に表示をする画像との対応関係を認識することが可能となる。
次に、図116を参照して、図55の最適化装置401の特徴量検出部411と処理部413に替えて、特徴量検出部1111と処理部413を設けるようにした他の実施例として最適化装置1201の構成について説明する。
特徴量検出部1111は、図89の最適化装置1101の構成と同様のものである。
処理部1211は、処理決定部413より入力された処理内容の情報に基づいて、バッファ421より読み出される入力信号を、例えば、学習により得られた係数セットを用いてマッピング処理し、表示部403に出力し、表示する。処理決定部413は、操作部1202からの操作信号に基づいて、係数セットの学習方法を変更する。尚、操作部1202は、操作部402と同様のものである。
次に、図117を参照して、処理部1211の構成について説明する。
学習装置1221は、特徴量検出部1111のバッファ421より読み出される入力信号としての画像信号に基づいて、マッピング処理部1222のマッピング処理に必要な係数セットを処理内容毎に、最小N乗誤差法により学習し、係数メモリ1237に記憶させる。また、学習装置1221は、操作部1202より入力される操作信号に基づいて、最小N乗誤差法の指数Nの値を変更させて係数セットを学習する。
マッピング処理部1222は、処理決定部412より入力される処理内容に基づいて、学習装置1221の係数メモリ1237から対応する係数セットを読出し、特徴量検出部1111のバッファ421より読み出される入力信号としての画像信号をマッピング処理し表示部403に出力して表示させる。
次に、図118を参照して学習装置1221の詳細な構成について説明する。教師データ生成部1231は、図30の教師データ生成部231と同様のものであり、学習用データとしての入力信号より教師データを生成し、最小N乗誤差法係数演算部1236に出力する。生徒データ生成部1232は、図30の生徒データ生成部232と同様のものであり、学習用データとしての入力信号より教師データを生成し、特徴量抽出部1233、および、予測タップ抽出部1235に出力する。
特徴量抽出部1233は、特徴量検出部1111の特徴量抽出部422と同様のものであり、生徒データから特徴量を抽出して処理決定部1234に出力する。処理決定部1234は、処理決定部412と同様のものであり、特徴量検出部1233より入力された特徴量に基づいて処理内容を決定し、最小N乗誤差法係数演算部1236に出力する。予測タップ抽出部1235は、予測タップ抽出部233と同様のものであり、教師データを順次注目画素として各注目画素について予測タップとなる画素を生徒データから抽出し、最小N乗誤差法係数演算部1236に出力する。
最小N乗誤差法係数演算部1236は、基本的な構成と処理内容において、図30の最小N乗誤差法係数演算部234と同様であり、操作部1202より入力される最小N乗法誤差法係数演算処理に必要な、指数Nの値を指定する情報に基づいて、予測タップ抽出部1235より入力された予測タップと教師データから、最小N乗誤差法により係数セットを演算し、係数メモリ1237に出力し、上書き記憶させる。但し、図118の最小N乗誤差法係数演算部1236は、処理決定部1234より入力される処理内容毎に係数セットを生成する点が、図30の最小N乗誤差法係数演算部234と異なる。係数メモリ1237は、処理内容毎に最小N乗誤差法係数演算部1236より出力されてくる係数セットを処理内容毎に記憶する。図118中では、処理内容毎に係数セットA乃至Nが記憶されていることが示されている。
次に、図119を参照して、マッピング処理部1222の構成について説明する。タップ抽出部251は、図31のマッピング処理部222と同様のものであり、注目画素について、バッファ421から供給される入力信号から予測タップを抽出し、積和演算部1251に出力する。積和演算部1251は、図31の積和演算部252と同様のものであり、予測タップ抽出部251より入力されてくる、抽出された予測タップ(画素)の値と、学習装置1221の係数メモリ1237に記憶されている係数セットを用いて積和演算処理を実行し、注目画素を生成し、これらを全画素に施して出力信号として表示部403に出力し、表示させる。但し、積和演算部1251は、積和演算処理において、係数メモリ1237に記憶されている係数セットA乃至Nのうち、処理決定部412から供給される処理内容に対応した係数セットを用いるようになっている。
次に、図120のフローチャートを参照して、図116の最適化装置1201による画像最適化処理における学習処理について説明する。
ステップS501において、ユーザが操作部202を操作したかどうかが判定され、操作していないと判定された場合、ステップS501に戻る。また、ステップS501において、操作部1202が操作されたと判定された場合、ステップS502に進む。
ステップS502において、学習装置1221の教師データ生成部1231は、入力信号より教師データを生成して最小N乗誤差法係数演算部1236に出力すると共に、生徒データ生成部1232は、入力信号より生徒データを生成し、特徴量抽出部1233、および、予測タップ抽出部1235に出力し、ステップS503に進む。
尚、生徒データと教師データを生成するのに、用いるデータ(以下、適宜、学習用データという)としては、例えば、現在から、所定時間だけ過去に遡った時点までに入力された入力信号を採用することができる。また、学習用データとしては、入力信号を用いるのではなく、予め専用のデータを記憶しておくことも可能である。
ステップS503において、特徴量抽出部1233は、注目画素(教師データ)に対応する位置の生徒データより特徴量を抽出し、処理決定部1234に出力する。
ステップS504において、処理決定部1234は、特徴量抽出部1233より入力された特徴量に基づいて注目画素についての処理内容を決定し、最小N乗誤差法係数演算部1236に出力する。例えば、処理決定部1234は、特徴量抽出部1233より1または複数の特徴量をベクトル量子化し、その量子化結果を処理内容の情報とするようにしてもよい。但し、この場合、図89の処理決定部1112のようにLUTなどは記憶されていない。
ステップS505において、予測タップ抽出部1235は、各教師データを注目画素として、その各注目画素について生徒データ生成部1232より入力された生徒データより予測タップを生成し、最小N乗誤差法係数演算部1234に出力して、ステップS506に進む。
ステップS506において、最小N乗誤差法係数演算部1236は、操作部202よりリカーシブ法(第2の方法)による最小N乗誤差法で係数セットを演算することを指定する操作信号が入力されたか否かを判定し、例えば、ユーザにより操作部1202が操作されて、リカーシブ法ではない、すなわち、直接法(第1の方法)が指定されたと判定された場合、ステップS507に進み、式(50)の重みαSを指定する(指数Nを指定する)係数a,b,cが入力されたか否かが判定され、入力されるまでその処理が繰り返され、例えば、ユーザによって操作部1202が操作され、係数a,b,cを指定する値が入力されたと判定された場合、その処理は、ステップS507に進む。
ステップS507において、最小N乗誤差法係数演算部1236は、重みαSが入力された係数a,b,cの状態で、上述した式(48)を最小にするという問題を実質的には最小2乗誤差法により解くことにより、重みαSに対応する指数Nの最小N乗誤差法による解としての予測係数w1,w2,w3…,wM、すなわち、係数セットを、処理決定部1234より入力された処理内容毎に求めて係数メモリ1237に記憶させ、ステップS501に戻る。
一方、ステップS506において、リカーシブ法が選択されたと判定された場合、その処理は、ステップS509に進む。
ステップS509において、最小N乗誤差法係数演算部1236は、指数Nを指定する情報が入力されたか否かを判定し、指数Nが入力されるまでその処理を繰り返し、例えば、ユーザが操作部1202を操作することにより指数Nを指定する情報が入力されたと判定した場合、その処理は、ステップS510に進む。
ステップS510において、最小N乗誤差法係数演算部1236は、基礎となる最小2乗誤差法による解法により係数セットを求める。ステップS511において、最小N乗誤差法係数演算部1236は、最小2乗誤差法により求められた係数セットから得られる予測値を用い、式(51)乃至式(54)を参照して説明したように再帰的に指数Nに、操作部1202から入力された対応する最小N乗誤差法による係数セットを、処理決定部1234より入力された処理内容毎に求め、係数メモリ1237に記憶させ、ステップS501に戻る。
以上の処理により、処理内容毎に、係数セットが係数メモリ1237に学習されていく。
次に、図121のフローチャートを参照して、図116の最適化装置1201による画像最適化処理におけるマッピング処理について説明する。
ステップS521において、特徴量検出部1111は、入力信号としての画像信号より注目画素(出力信号)に対応する位置の入力信号の画素の特徴量を検出し、検出した特徴量を処理決定部412に出力する。
ステップS522において、処理決定部412は、特徴量検出部1111より入力された特徴量に基づいて、処理内容を決定し、処理部1211に出力する。処理決定部412の処理は、図118の処理決定部1234と同一の処理を行うことにより処理内容を決定する。従って、上述のように、処理決定部1234が、特徴量抽出部1233より1または複数の特徴量をベクトル量子化し、その量子化結果を処理内容の情報とするようにする場合、図116の処理部412には、図89の処理決定部1112のようなLUTなどは記憶されないことになる。
ステップS523において、処理部1211のマッピング処理部1222のタップ抽出部251は、現在の入力信号としての画像フレームに対応する出力信号としての画像のフレームを注目フレームとして、その注目フレームの画素のうち、例えば、ラスタスキャン順で、まだ注目画素としていないものを注目画素として、その注目画素について、入力信号より予測タップを抽出し、積和演算部1251に出力する。
ステップS524において、マッピング処理部1222の積和演算部1251は、処理決定部412より入力される処理内容に対応する係数セットを学習装置1221の係数メモリ1237より読み出す。
そして、ステップS525において、積和演算部1251は、学習装置1221の係数メモリ1237より読み出している、処理内容に対応した予測係数を用いて、式(39)に従いタップ抽出部251より入力された予測タップと係数メモリ1237から読み出した係数セットとの積和演算処理を実行する。これにより、積和演算部1251は、注目画素の画素値(予測値)を求める。その後、ステップS526に進み、タップ抽出部251は、注目フレームの全ての画素を注目画素としたかどうかを判定し、まだしていないと判定した場合、ステップS521に戻り、注目フレームのラスタスキャン順でまだ注目画素としていない画素を新たに注目画素として、以下、同様の処理を繰り返す。
また、ステップS526において、注目フレームの全ての画素を注目画素としたと判定された場合、ステップS527に進み、表示部403は、積和演算部1251で求められた画素からなる注目フレームを表示する。
そして、ステップS521に戻り、特徴量検出部1111は、入力信号としての画像信号より注目画素(出力信号)に対応する位置の入力信号の画素の特徴量を検出し、次のフレームを新たに注目フレームとして、以下、同様の処理を繰り返す。
尚、図116の最適化装置1201では、ユーザが操作部1202を操作することにより指数Nが変更され(直接法においては、指数Nを指定する係数a,b,cが変更され、また、リカーシブ法においては、指数Nそのものが変更され)、これにより予測係数(係数セット)の学習規範(学習の体系)として、どのような指数Nの最小N乗誤差法を採用するかが設定される。すなわち、係数を求める学習アルゴリズムが変更されている。従って、「処理の構造」が、ユーザの好みの画像が得られるように変更されているということが言える。
次に、図122を参照して、図116の最適化装置1201に内部情報生成部1312を設けるようにした最適化装置1301の構成について説明する。
図122の最適化装置1301においては、内部情報生成部1312が設けられたことにより、処理部1211に替えて処理部1311が設けられた点以外については図116の最適化装置1201と同様である。
内部情報生成部1312は、内部情報として、例えば、処理部1311の係数メモリ1321より処理内容毎に記憶されている係数セットの情報を読出し、表示部403で表示可能な情報に変換して出力し、表示させる。
次に、図123を参照して、処理部1311の構成について説明する。基本的な構成は、同様であるが、係数メモリ1237に替えて、係数メモリ1321が設けられているが、その機能は同様であるが、内部情報生成部1312に接続されており、処理内容毎に記憶されている係数セットが読み出される構成になっている。
次に、図124のフローチャートを参照して、図122の最適化装置1301による画像最適化処理について説明する。図122の最適化装置1301も、図116における最適化装置1201の場合と同様に学習処理とマッピング処理からなる。そして、学習処理では、ステップS541乃至S551において、図120のステップS501乃至S511における場合とそれぞれ同様の処理が行われる。
さらに、学習処理では、ステップS541およびS551の処理後、ステップS552に進み、内部情報生成部1312は、係数メモリ1321に記憶されている係数セットを、内部情報として読出し、係数セットに含まれる各値に基づいて表示可能な画像信号を生成して、表示部403に出力し、表示させる。
このとき、内部情報生成部1312により生成され表示部403に表示される画像は、上述のように、例えば、図39で示すような3次元分布図や、または、図40で示した2次元分布図のような形式などとすることができる。
ここで、図124のフローチャートの説明に戻る。
ステップS552の処理後は、ステップS541に戻り、以下、同様の処理が繰り返される。
一方、図125のフローチャートに示すマッピング処理では、ステップS571乃至S577において、図121のステップS521乃至S527における場合とそれぞれ同様の処理が行われる。
以上の処理により、処理部1311の係数メモリ1321に記憶された係数セットの各値(各係数値)が処理に関する内部情報として表示(呈示)され、ユーザは、この係数セットの分布と、出力信号としての処理部1311の処理結果を見ながら自らの好みに合う出力信号としての画像が得られるように、操作部1202を操作して、指数Nを変更させることで係数セットを求める学習アルゴリズムが変更されている。従って、「処理の構造」が変更ユーザの好みの画像が得られるように変更されていると言える。また、以上の例においては、係数セットを表示させるようにしたが、例えば、現在の最小N乗誤差法が直接法であるのか、または、リカーシブ法であるのかといった、処理に関する内部情報を表示するようにしてもよい。
次に、図126を参照して、図116の最適化装置1201の処理部1211に替えて、処理部1411を設けるようにした最適化装置1401の構成について説明する。
処理部1411の構成は、基本的に図41の最適化装置301の処理部311と同様の構成であり、操作部1202より入力された操作信号と、処理決定部412により入力された処理内容に基づいて、入力信号を最適化し表示部403に表示する。
次に、図127を参照して、処理部1411の構成について説明する。係数メモリ1421は、処理内容毎に複数の係数セットが記憶されており、マッピング処理部1222によるマッピング処理に必要な係数セットが記憶されている。図中では、係数セットA乃至Nが記憶されていることが示されている。この係数セットは、図128の学習装置1441により予め学習されて生成されるものである。
ここで、係数セットを生成する学習装置1441の構成について、図128を参照して説明する。
学習装置1441の教師データ生成部1451、生徒データ生成部1452、特徴量抽出部1453、処理決定部1454、および、予測タップ抽出部1455は、図118の学習装置1221の教師データ生成部1231、生徒データ生成部1232、特徴量抽出部1233、処理決定部1234、および、予測タップ抽出部1235に対応しており、同様のものであるので、その説明については省略する。
正規方程式生成部1456は、図43の正規方程式生成部354と同様のものであり、教師データ生成部351より入力された教師データと予測タップに基づいて正規方程式を生成して、係数決定部1457に出力するが、この際、処理決定部1454より入力される処理内容の情報毎に正規方程式を生成して出力する点が異なる。
係数決定部1457は、図43の係数決定部355と同様のものであり、入力された正規方程式を解いて係数セットを生成するが、この際、処理内容の情報毎に対応付けて係数セットを生成する。
次に、図129のフローチャートを参照して、図128の学習装置1441による係数決定処理(学習処理)について説明する。ステップS591において、教師データ生成部1451は、学習用データから教師データを生成し、正規方程式生成部1456に出力すると共に、生徒データ生成部1452は、学習用データから生徒データを生成し、特徴量抽出部1453、および、予測タップ抽出部1455に出力して、ステップS592に進む。
ステップS592において、予測タップ抽出部1455は、各教師データを順次注目画素として、各注目データについて、生徒データより予測タップを抽出し、正規方程式生成部1456に出力して、ステップS593に進む。
ステップS593において、特徴量抽出部1453は、注目画素(教師データ)に対応する位置の生徒データ(画素)についての特徴量を抽出し、処理決定部1454に出力する。
ステップS594において、処理決定部1454は、特徴量抽出部1453より抽出された特徴量に基づいて、各画素毎に処理内容を決定し、決定した処理内容の情報を正規方程式生成部1456に出力する。例えば、処理決定部1454は、例えば、1または複数の特徴量をベクトル量子化し、その量子化結果を処理内容の情報としてもよい。従って、処理決定部1456においては、LUTが記憶されていない。
ステップS595において、正規方程式生成部1456は、各教師データと予測タップのセットを用いて、式(46)における左辺の行列の各コンポーネントとなっているサメーション(Σ)と、右辺のベクトルの各コンポーネントとなっているサメーション(Σ)を演算することにより、処理決定部1454より入力されてくる処理内容の情報毎に正規方程式を生成し、係数決定部1457に出力する。
そして、ステップS596に進み、係数決定部1457は、正規方程式生成部1456より入力された正規方程式を処理内容の情報毎に解いて、いわゆる最小2乗誤差法により処理内容の情報毎に係数セットを求め、ステップS597において、係数メモリ1421に記憶させる。
以上の処理により、係数メモリ1421に基礎となる係数セット(初期値としての係数セット)が処理内容の情報毎に記憶される。尚、以上の例においては、係数セットは、最小2乗誤差法により求められる場合について説明してきたが、その他の方法で求められた係数セットであってもよく、上述の最小N乗誤差法により求められる係数セットであってもよい。
次に、図130のフローチャートを参照して、図126の最適化装置1401による画像最適化処理について説明する。尚、この画像最適化処理は、係数変更処理とマッピング処理からなり、マッピング処理は、図121や図125で説明したマッピング処理と同一であるため、ここでは、係数変更処理についてのみ説明する。
ステップS611において、係数変更部322の変更処理部332は、係数値を操作する操作信号が操作部1202より入力されたか否かを判定する。すなわち、ユーザは、表示部403に表示された画像をみて自らの好みに合うものであるとみなした場合、いま、係数メモリ1421に記憶されている処理内容の情報毎の係数セットによるマッピング処理を実行させるが、自らの好みに合うものではないと判定した場合、マッピング処理に使用される係数メモリ1421に記憶されている係数セットを変更する操作を行う。
例えば、ステップS611において、係数を操作する操作信号が入力されたと判定された場合、すなわち、係数メモリ1421に記憶された係数のうちいずれか1個の係数値を変更するように、操作部1202が操作された場合、ステップS612に進む。
ステップS612において、変更処理部332は、係数読出書込部331を制御して、係数メモリ321に記憶されている係数セットを読み出させ、ステップS613に進む。ステップS613において、変更処理部332は、操作信号として入力された係数値が係数セットに予め含まれている値と比べて所定の閾値S11以上に変化しているか否かを判定する。例えば、ステップS613において、操作信号として入力された値と係数メモリ1421に記憶されていた係数セットの値との変化が閾値S11以上であると判定された場合、その処理は、ステップS614に進む。
ステップS614において、変更処理部332は、係数セットに含まれる各係数の値を、図50で示したようにバネモデルによって変更し、その処理は、ステップS615に進む。
一方、ステップS613において、操作信号として入力された値と係数メモリ1421に記憶されていた係数セットの値との変化が閾値S11以上ではないと判定された場合、その処理は、ステップS615に進む。
ステップS615において、変更処理部332は、係数セットに含まれる各係数の値を、図51で示したように均衡モデルによって変更し、その処理は、ステップS616に進む。
ステップS616において、変更処理部332は、係数読出書込部331を制御して、変更した係数セットの値を係数メモリ1421に上書き記憶させ、その処理は、ステップS611に戻り、それ以降の処理が繰り返される。
そして、ステップS611において、係数値が操作されていないと判定された場合、すなわち、ユーザが表示部403に表示された画像がユーザの好みの画像であると判定された場合、ステップS611に戻り、以下、同様の処理が繰り返される。
以上の係数変更処理により、ユーザは、マッピング処理に用いられる処理内容の情報毎に記憶された係数セットを変化させ、ユーザにとって最適な処理を実行させることが可能となる。尚、係数セットの各係数の値を変更することは、マッピング処理部311によるマッピング処理の「処理の内容」が変更されることになる。
また、図130の係数変更処理では、係数の変化の大きさが所定の閾値S11以上のときには、操作された係数の値に応じて、係数セットの全ての係数値をバネモデルで変更させ、閾値S11よりも小さいときは、係数セットの全ての係数値を均衡モデルで変更させるため、係数セットを変更させる係数セットの変更アルゴリズムが変化する。従って、図126の最適化装置1401の処理部1411でも、ユーザの操作に従い、その「処理の内容」も、さらには、その「処理の構造」も変更され、これによりユーザにとって最適な信号処理が行われているということができる。
また、上述のように、係数メモリ1421に記憶される係数セットが、最小N乗誤差法により求められるものである場合、例えば、複数の指数Nに対応する係数セットを予め係数メモリ1421に記憶させておき、係数変更部322が、ユーザの操作に基づいた操作部1202からの操作信号に従って、指定された指数Nに対応する係数セットに変更させるようにしても良い。この場合、係数メモリ1421に記憶される各係数セットは、ユーザの操作に基づいて操作部1202から入力される指数Nに対応した最小N乗誤差法により生成されたものに変更される。すなわち、指数Nに対応して係数セットを求める学習アルゴリズムが変更されることになるから、「処理の構造」が変更されているということができる。
次に、図131を参照して、図126の最適化装置1401に内部情報生成部1521を設けるようにした最適化装置1501の構成について説明する。図131の最適化装置1501においては、内部情報生成部1521が設けられたことに伴って処理部1411に替えて処理部1511が設けられている点を除き、その他の構成は、図126の最適化処理部1401と同様である。
内部情報生成部1521は、内部情報として、例えば、処理部1511の係数メモリ1531に処理内容の情報毎に記憶されている係数セットを読出し、表示部403に表示可能な画像信号に変換した後、表示部403に出力して、表示させる。
次に、図132を参照して、処理部1521の構成について説明する。基本的には、図126の処理部1411の構成と同様であるが、係数メモリ1421に替えて、係数メモリ1531が設けられている。係数メモリ1531は、機能上係数メモリ1421とほぼ同様であるが、内部情報生成部1521に接続されており、適宜係数セットが読み出される構成となっている点で異なる。
次に、図133のフローチャートを参照して、図131の最適化装置1501による画像最適化処理について説明する。この画像最適化処理も、図126の最適化処理1401が行う画像最適化処理と同様に、係数変更処理と、マッピング処理からなるが、マッピング処理は、図121や図125で説明したマッピング処理と同一であるため、ここでは、係数変更処理についてのみ説明する。
係数変更処理では、ステップS631乃至S636において、図130のステップS611乃至S616における場合と、それぞれ同様の処理が行われる。
そして、ステップS636において、図130のステップS636における場合と同様に、変更後の係数セットが係数メモリ1531に記憶された後は、ステップS637に進み、内部情報生成部1521は、係数メモリ1531に記憶されている係数セットの各係数値を読出し、表示部403で表示可能な画像信号に変換して、表示部403に出力して表示(呈示)させる。このとき、表示部403には、例えば、上述の図39で示したような3次元分布図や、または、図40で示した2次元分布図のような形式にして、係数セットの各係数値を表示(呈示)するようにすることができる。
ステップS637の処理後は、ステップS631に戻り、以下、同様の処理が繰り返される。
図133の係数変更処理によれば、係数メモリ1531に処理内容の情報毎に記憶された係数セットの値が、内部情報として表示されるので、ユーザは、この係数セットを見ながらユーザにとって最適な処理を実行する係数セットが得られるように、操作部1202を操作することが可能となる。
尚、マッピング処理部1222の積和演算部1251では、式(39)の1次式ではなく、2次以上の高次の式を演算することによって、出力信号を求めるようにすることが可能である。
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図134は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク2105やROM2103に予め記録しておくことができる。
あるいはまた、プログラムは、フロッピー(登録商標)ディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体2111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体2111は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体2111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部2108で受信し、内蔵するハードディスク2105にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)2102を内蔵している。CPU2102には、バス2101を介して、入出力インタフェース2110が接続されており、CPU2102は、入出力インタフェース2110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部2107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)2103に格納されているプログラムを実行する。あるいは、また、CPU2102は、ハードディスク2105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部2108で受信されてハードディスク2105にインストールされたプログラム、またはドライブ2109に装着されたリムーバブル記録媒体2111から読み出されてハードディスク2105にインストールされたプログラムを、RAM(Random Access Memory)2104にロードして実行する。これにより、CPU2102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU2102は、その処理結果を、必要に応じて、例えば、入出力インタフェース2110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部2106から出力、あるいは、通信部2108から送信、さらには、ハードディスク2105に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
以上、本発明を、入力信号からのノイズ除去や、自動走行に適用した場合について説明したが、本発明は、ノイズ除去や自動走行以外の、例えば、信号の周波数特性の変換その他のアプリケーションに広く適用可能である。
1 最適化装置, 11 処理部, 21 補正部, 22 学習部, 101 処理部, 201 最適化装置, 211 処理部, 221 学習部, 222 マッピング処理部, 301 最適化装置, 311 処理部, 321 計数メモリ, 322 計数変換部, 341 学習装置, 401 最適化装置, 411 特徴量検出部, 412 処理決定部, 413 処理部, 701 最適化装置, 711 処理決定部, 811,911 特徴量検出部, 912 内部情報生成部, 1001 最適化装置, 1011 内部情報生成部, 1101 最適化装置, 1111 特徴量検出部, 1112 処理決定部, 1081 特徴量検出部, 1182 内部情報生成部, 1201 最適化装置, 1211 処理部, 1301 最適化装置, 1311 処理部, 1312 内部情報生成部, 1401 最適化装置, 1411 処理部, 1501 最適化装置, 1511 処理部, 1521 内部情報生成部