この発明の具体的な実施形態を説明する前に、まず、四元数について簡単に説明する。
[四元数の定義]
四元数は、超複素数の1つであり、複素数と同様に実数部分と虚数部分とから成る。虚数部分には、3つの虚数単位が含まれており、これをi,jおよびkで表すと、四元数qは、次の数1によって定義される。
ここで、a,b,cおよびdは、実数であり、四元数qの成分を表す。従って、四元数全体の集合をK4とすると、この集合K4は、1,i,jおよびkを基底とする4次元ベクトル空間になる。
また、四元数qの成分b,cおよびdが0(ゼロ)であれば、当該四元数qは実数となる。一方、成分aが0であれば、四元数qは、純虚の四元数q^となる。このことから、四元数qは、次の数2によって表すことができる。
つまり、四元数qの集合K4には、実数aから成る実数部分Rと、純虚の四元数q^から成る3次元ベクトル空間Iとが含まれている、と考えることができる。そして、これら実数部分Rと3次元ベクトル空間Iとは、互いに直交補空間の関係にある。従って、四元数qの共役な四元数q*は、次の数3によって表される。
なお、虚数単位i,jおよびkの掛け合わせの規則は、数4によって定義される。
また、四元数qの絶対値(norm)|q|は、次の数5によって定義される。
[四元数の幾何学的性質]
以上のように定義された四元数には、全ての純虚の四元数が成す3次元ベクトル空間Iの任意の回転gを次の数6によって表すことができる、という幾何学的性質がある。
ここで、qは、|q|=1の四元数(q∈K4)であり、vは、|v|=1の純虚の四元数(v∈I)である。回転gもまた、|g|=1の純虚の四元数である。
さらに、|α|≦πを満たす角αと、|u|=1を満たす純虚の四元数uを用いると、四元数qは、次の数7で表すことができる。
そして、この数7を数6に代入すると、回転gは、次の数8のようになる。
この数8において、例えばベクトルuとベクトルvとが互いに垂直の関係にあるとき、当該数8は、次の数9によって表される。
ここで、u×vは、ベクトルuとベクトルvとの外積である。この数9の関係を図で表すと、図1のようになる。即ち、この図1によれば、回転gは、ベクトルuを軸としてベクトルvを角度2αだけ回転させたベクトルと一致する。換言すれば、上述の数6は、ベクトルuを軸としてベクトルvを角度2αだけ回転させる演算式であることが判る。
一方、ベクトルuとベクトルvとが互いに垂直でない場合は、ベクトルvをベクトルuに垂直な成分v1と、ベクトルuに平行な成分v2とに分けて考える。この場合、回転gは、次の数10によって表される。
ここで、ベクトルv1はベクトルuと垂直であることから、当該ベクトルv1はベクトルuを軸として角度2αだけ回転される。これに対して、ベクトルv2はベクトルuと平行であることから、qv2=v2qが成り立つ。よって、ベクトルv2は、qv2q*という演算が施された場合でも、不変である。つまり、数6は、ベクトルuとベクトルvとの位置関係に拘らず、ベクトルvをベクトルuの周りに角度2αだけ回転させる演算式であることが判る。
[第1実施形態]
このような四元数の定義および幾何学的性質を念頭に置いて、この発明の第1実施形態について説明する。
図2を参照して、この第1実施形態に係る画像処理装置10は、高感度カメラ等の低照度環境において用いられるいわゆる暗視カメラに適用されるものであり、具体的には輝度の低い(暗い)カラー画像データDo(o:データの番号を表すインデックス)を明るいカラー画像データZpに変換するためのものである。
かかる輝度変換処理を実現するために、この画像処理装置10は、ハードウェア的には、例えばパーソナルコンピュータによって構成され、詳しくは処理対象となるカラー画像データDoが入力される正規化部12を備えている。正規化部12は、入力されたカラー画像データDoの色成分、例えばR成分,G成分およびB成分のそれぞれを、0(ゼロ)〜1の範囲内の値に正規化する。正規化されたカラー画像データ(これについても符号Doで表す。)は、誤差逆伝搬(Back Propagation:以下、BPと言う。)法学習型のニューラルネットワーク14に入力される。
ニューラルネットワーク14は、ネットワーク部16,パラメータ設定部18,誤差演算部20およびメモリ部22を備えており、このうちのネットワーク部16に上述の正規化されたカラー画像データDoが入力される。ネットワーク部16は、入力されたカラー画像データDo対して上述の輝度変換処理を施す。このネットワーク部16による処理後のデータZpは、外部に出力され、例えば図示しないディスプレイに入力される。これによって、ディスプレイに、当該処理後データ(出力データ)Zpに従うカラー画像、つまりこの画像処理装置10(ネットワーク部16)による輝度変換処理後のカラー画像が表示される。
なお、この輝度変換処理の手順は、パラメータ設定部18からネットワーク部16に設定されるパラメータ、具体的には後述する結合荷重Wnm,Wpnおよび閾値θn,θpの各値により決定される。そして、これらのパラメータWnm,Wpn,θnおよびθpの値は、次のような要領で画像処理装置10に学習を実行させることによって求められる。
即ち、まず、学習用データとして任意の(明るさの)カラー画像データDoを入力する。これと同時に、当該学習用データDoに対する処理後データZpとして期待する(明るさの)データを、教師データTpとして、画像処理装置10に与える。例えば、図示しないCCD(Charge Coupled Device)型可視カメラによって夜間に或る場所を撮影して得たデータを、カラー画像データDoとして入力すると共に、同カメラによって昼間に同場所を撮影して得たデータを、教師データTpとして与える。なお、当該カメラによる撮影データに代えて、任意のカラー画像の輝度を低減して得たデータを、カラー画像データDoとして入力すると共に、当該カラー画像の元の(明るい)データを、教師データTpとして与えてもよい。
教師データTpは、ニューラルネットワーク14内の上述した誤差演算部20に入力される。また、誤差演算部20には、ネットワーク部16による処理後のデータZpも入力される。誤差演算部20は、これら教師データTpおよび処理後データZpの差、厳密には二乗平均誤差を求め、当該二乗平均誤差を表す誤差関数Eをパラメータ設定部18に供給する。すると、パラメータ設定部18は、供給された誤差関数Eが極小になるように、上述のパラメータWnm,Wpn,θnおよびθpを更新し、更新後のパラメータWnm,Wpn,θnおよびθpをネットワーク部16に設定する。この更新動作、言わば学習動作は繰り返し行われ、これによって各パラメータWnm,Wpn,θnおよびθpのそれぞれは或る一定の値に収束し、処理後データZpは教師データTpに近似するようになる。そして、期待通りの処理後データZpを得るためのパラメータWnm,Wpn,θnおよびθpが決定され、決定されたパラメータWnm,Wpn,θnおよびθpは、上述したメモリ部22内のパラメータテーブル24に記憶される。
なお、この第1実施形態において、カラー画像データDoに従う入力画像は、図3(a)に示すように、横320画素×縦240画素の計76,800画素から成り、それぞれの画素のR成分,G成分およびB成分の各情報量(深さ)は、8ビットとされている。そして、任意の画素(注目画素)とその回りを取り囲む8個の画素との計9個の画素が1単位で扱われ、これら9個の画素に基づいて、図3(b)に示すように、当該注目画素に対する処理結果(画素)が得られる。従って、出力画像の画素数は、横318画素×縦238画素の計75,684画素となる。ただし、それぞれの画素の情報量は、入力画像と変わらない。また、教師データTpに従う後述する教師画像についても同様に、横318画素×縦238画素の計75,684画素のみが、処理の対象(処理後データZpとの比較対象)となる。
ところで、この第1実施形態におけるニューラルネットワーク14は、カラー画像データDoを上述した四元数、厳密には純虚の四元数として取り扱う。これを実現するために、ネットワーク部16は、次のような構成とされている。
即ち、ネットワーク部16は、図4に示すように、入力層を構成するM個(M≧1)のニューロンユニット30,30,…と、中間層を構成するN個(N≧1)のニューロンユニット32,32,…と、出力層を構成するP個(P≧1)のニューロンユニット34,34,…とを有している。なお、この第1実施形態では、入力層のニューロンユニット30の数Mは、M=9個とされており、この9個のニューロンユニット30,30,…に、カラー画像データDoが入力され、具体的には上述の9個の画素(図3(a)参照)に対応するカラー画像データDm(m=1〜M:入力層のニューロンユニット30の番号を表すインデックス)が入力される。そして、中間層のニューロンユニット32の数Nは、2以上必要であり、ここではN=4個とされている。この数Nが多いほど、精確な処理結果が得られるが、その反面、演算回数が多くなるので処理速度が低下する。従って、当該数Nは、例えばN=2個〜6個が適当である。そして、出力層のニューロンユニット34の数Pは、P=1個とされている。
入力層のニューロンユニット30,30,…それぞれは、中間層の全てのニューロンユニット32,32,…と互いに結合されている。そして、中間層の全てのニューロンユニット32,32,…は、出力層のニューロンユニット34と互いに結合されている。従って、入力層の各ニューロンユニット30,30,…に入力されたカラー画像データDmは、中間層のニューロンユニット32,32,…および出力層のニューロンユニット34によって順次連鎖的に処理された後、上述の処理後データZpとして出力される。
具体的には、入力層のニューロンユニット30,30,のそれぞれは、入力されたカラー画像データDmを自身の出力データ(これについても符号Dmで表す。)としてそのまま出力し、つまりスルーさせる。そして、この出力データDmは、中間層の各ニューロンユニット24,24,…に入力される。
中間層のニューロンユニット32,32,…のそれぞれは、入力されたカラー画像データDmに対して次の数11に従う演算を施す。
この数11において、Snはn番目のニューロンユニット32の内部ポテンシャルである。そして、Wnmは上述した結合荷重であり、具体的にはn番目のニューロンユニット32と入力層のm番目のニューロンユニット30との結合力を表す四元数のパラメータである。なお、Wnm*は結合荷重Wnmの共役であり、|Wnm|は結合荷重Wnmの絶対値である。さらに、θnは上述した閾値であり、詳しくはn番目のニューロンユニット32専用の純虚の四元数である。そして、Rm,GmおよびBmは、カラー画像データDmのR成分,G成分およびB成分である。つまり、当該カラー画像データDmは、自身のR成分,G成分およびB成分にそれぞれ虚数単位i,jおよびkが割り当てられた純虚の四元数として扱われる。なお、内部ポテンシャルSnもまた、純虚の四元数となる。
そして、Hnが、ニューロンユニット32の出力データである。この出力データHnは、ニューロンユニット32の非線形性を担保するために、内部ポテンシャルSnの関数とされており、ここでは当該関数としてシグモイド関数が用いられる。ただし、純虚の四元数である内部ポテンシャルSnをそのままシグモイド関数に代入することは不可能であるので、この第1実施形態では、当該内部ポテンシャルSnを3つの虚数単位i,jおよびkにそれぞれ対応するSn(i),Sn(j)およびSn(k)という3つの成分に分け、これら3つの成分Sn(i),Sn(j)およびSn(k)毎にシグモイド関数を適用している。
この数11から明らかなように、中間層のニューロンユニット32,32,…のそれぞれは、自身に入力されるカラー画像データDmを純虚の四元数として処理する。換言すれば、個々のニューロンユニット32は、R成分,G成分およびB成分から成る当該カラー画像データDmを、1つの処理単位として扱う。従って、当該ニューロンユニット32によって処理されても、これらR成分,G成分およびB成分の相互の関連性、言わばトポロジは保持される。
さらに、数11に示すように、それぞれのニューロンユニット32に入力されるカラー画像データDmは、結合荷重WnmによってWnmDmEnm*/|Wnm|という重み付けを施される。つまり、結合荷重Wnmと、カラー画像データ(言わば入力データ)Dmと、結合荷重Wnmの共役Wnm*とが、この順番で互いに乗算されると共に、その乗算結果が結合荷重Wnmの絶対値|Wnm|によって除算される。このような重み付けが施されることで、次のような作用が得られる。即ち、|q|=1である四元数qを用いて結合荷重Wnmを表すと、次の数12のようになる。
そして、この数12に上述の数7を代入すると、当該数12は次の数13のようになる。
一方、|v|=1である純虚の四元数vを用いて入力データDmを表すと、次の数14のようになる。
そして、これら数13と数14とを上述のWnmDmWnm*/|Wnm|に代入すると、当該WnmDmWnm*/|Wnm|は次の数15のようになる。
この数15から明らかなように、WnmDmWnm*/|Wnm|という重み付けには、qvq*という上述した回転作用を奏する要素が含まれている。そして、結合荷重Wnmの絶対値|Wnm|および入力データDmの絶対値|Dm|は、いずれも1以外の値になり得ることから、これらの積は相似変換作用を奏することが判る。このことは、R成分,G成分およびB成分という3次元の色空間を考えたときに、かかる重み付けが施されることによって、当該色空間において回転作用および相似変換作用が与えられることを、意味する。さらに、数11によれば、入力データDmが総和されること、および閾値θnが減算されることから、当該数11は平行移動作用を奏する演算式でもあることが判る。これらのことから、中間層のニューロンユニット32,30,…のそれぞれは、それ単体で、回転処理,相似変換処理および平行移動処理という3次元空間(色空間)において想定される全ての処理、いわゆるアフィン変換処理を、実現できることになる。
なお、上述の重み付けの分母にある|Wnm|は設けなくてもよいが、当該|Wnm|が無い場合は、数15は|Wnm|2|Dm|qvq*となる。つまり、2次的関数になる。この場合、上述した学習時に結合荷重Wnmの変化が重み付けに対して大きく影響するので、当該学習動作が不安定になることがある。このため、この第1実施形態では、重み付けの分母に|Wnm|を設けることで、当該学習動作の安定化を図っている。
このようなニューロンユニット32は、概念的には図5に示すような構成となる。即ち、ニューロンユニット32は、入力データDm(入力層のニューロンユニット30)の数Mと同数の重み付け部40,40,…を有している。そして、それぞれの重み付け部40に、対応する入力データDmが入力される。この重み付け部40にはまた、パラメータ設定部18によって結合荷重Wnmが設定される。重み付け部40は、入力データDmに対して結合荷重Wnmを用いて上述のWnmDmWnm*/|Wnm|という重み付けを施す。各重み付け部40,40,…における重み付けの結果は、加算部42に入力され、ここで加算される。そして、この加算部42による加算結果は、減算部44に入力される。減算部44には、パラメータ設定部18によって閾値θnが設定されており、減算部44は、当該閾値θnを加算部42による加算結果から減算する。これによって、上述の内部ポテンシャルSnが求められる。そして、求められた内部ポテンシャルSn(減算部44による減算結果)は、非線形演算部46に入力され、ここで上述したシグモイド関数に代入される。そして、この非線形演算部46による演算結果が、ニューロンユニット32の出力データHnとして出力される。この出力データHnは、出力層のニューロンユニット34…に入力される。
出力層のニューロンユニット34…は、中間層の各ニューロンユニット32,32,…から入力されるデータHnに対して次の数16に従う演算を施す。
この数16において、Spはp番目(ここではp=1)のニューロンユニット34の内部ポテンシャルである。そして、Wpnは結合荷重であり、具体的にはp番目のニューロンユニット34と中間層のn番目のニューロンユニット32との結合力を表す四元数のパラメータである。なお、Wpn*は結合荷重Wpnの共役であり、|Wpn|は結合荷重Wpnの絶対値である。さらに、θpは閾値であり、詳しくはp番目のニューロンユニット34専用の純虚の四元数である。なお、内部ポテンシャルSpもまた、純虚の四元数となる。そして、Zpは、当該p番目のニューロンユニット34の出力データである。この出力データZpもまた、中間層のニューロンユニット32の出力データHnと同様に、内部ポテンシャルSpを変数とするシグモイド関数とされている。
この数16から判るように、出力層のニューロンユニット34もまた、中間層のニューロンユニット32と同様に、自身に入力されるデータHnを純虚の四元数として取り扱う。従って、この入力データHnを構成するR成分,G成分およびB成分の相互の関連性は保持される。また、この入力データHnに対して、中間層のニューロンユニット32と同様の重み付けが施される。つまり、出力層のニューロンユニット34にも、全てのアフィン変換処理を実現するための要素が含まれている。
このようなニューロンユニット34は、概念的には図6に示すような構成となる。即ち、上述の図5に示したのと同様の重み付け部50,加算部52,減算部54および非線形演算部56を有している。なお、重み付け部50は、中間層のニューロンユニット32と同じ数Nだけ設けられる。そして、この重み付け部50には、当該中間層のニューロンユニット32の出力データHnが入力されると共に、パラメータ設定部18によって結合荷重Wpnが設定される。また、減算部54には、パラメータ設定部18によって閾値θpが設定される。そして、非線形演算部56による演算結果が、この出力層のニューロンユニット34の出力データ、ひいては画像処理装置10(ニューラルネットワーク14)による処理後データZpとして出力される。
なお、上述した学習においては、パラメータ設定部18は、最急降下法を用いて各パラメータWnm,Wpn,θnおよびθpを更新する。また、この第1実施形態においては、処理対象となるカラー画像データDoが全て(全画素分)入力されてからこれらのパラメータWnm,Wpn,θnおよびθpを更新するという、いわゆる一括修正法を採用する。そして、この更新の際、まず、出力層用のパラメータWpnおよび閾値θpから先に更新を行う。
具体的には、結合荷重Wpnについては、更新後の結合荷重WpnNEWを次の数17によって定義する。
ここで、WpnOLDは更新前の結合荷重であり、ΔWpnは結合荷重WpnNEWを得るのに必要な更新量である。そして、この更新量ΔWpnは、四元数であり、次の数18によって求められる。なお、この数18において、ΔWpn(1),ΔWpn(i),ΔWpn(j)およびΔWpn(k)は、四元数である更新量ΔWpnの各成分を表す。また、ηは、学習係数であり、例えば1.0前後の任意の値が設定される。
一方、閾値θpについては、更新後の閾値θpNEWを次の数19によって定義する。
ここで、θpOLDは更新前の閾値であり、Δθpは閾値θpNEWを得るのに必要な更新量である。そして、この更新量Δθpは、純虚の四元数であり、次の数18によって求められる。なお、この数18において、Δθp(i),Δθp(j)およびΔθp(k)は、純虚の四元数である更新量Δθpの各成分を表す。
このようにして出力層用のパラメータを更新した後、パラメータ設定部18は、次に、中間層用のパラメータWnmおよびθnの更新を行う。
即ち、更新後の結合荷重WnmNEWを、上述の数17と同様に、次の数21によって定義する。
ここで、WnmOLDは更新前の結合荷重であり、ΔWnmは結合荷重WnmNEWを得るのに必要な更新量である。そして、この更新量ΔWnmは、四元数であり、上述の数18と同様、次の数22によって求められる。なお、この数22において、ΔWnm(1),ΔWnm(i),ΔWnm(j)およびΔWnm(k)は、四元数である更新量ΔWnmの各成分を表す。
そして、更新後の閾値θn NEWを、上述の数19と同様に、次の数23によって定義する。
ここで、θnOLDは更新前の閾値であり、Δθnは閾値θnNEWを得るのに必要な更新量である。そして、この更新量Δθnは、純虚の四元数であり、上述の数20と同様、次の数24によって求められる。なお、この数24において、Δθn(i),Δθn(j)およびΔθn(k)は、純虚の四元数である更新量Δθnの各成分を表す。
さらに、この第1実施形態においては、カラー画像データDoとして、様々な明るさのデータが入力されても、その明るさに応じて、期待通りの処理後データZpが得られるように、次のような工夫も成されている。
即ち、上述した学習において、学習用データとして、互いに同じ被写体を撮影して得たデータであって、かつ互いに明るさ(輝度)の異なる複数のカラー画像データDoを、順次入力する。そして、これらの学習用データDoの入力に対して、上述の教師データTpを与えて、学習を実行させる。そして、この学習によってそれぞれの学習用データDoに対応するパラメータWnm,Wpn,θnおよびθpを、上述のパラメータテーブル24に記憶させる。
具体的には、図7(a)(参考図1(a))に示すように、互いに同じ被写体を撮影して得たデータであって、かつ互いに輝度の異なる5つのカラー画像“1”〜“5”のデータを、学習用データDoとして入力する。これらのカラー画像、言わば学習画像“1”〜“5”の輝度は、“1”>“2”>“3”>“4”>“5”という関係にある。そして、これらの学習画像“1”〜“5”の入力に対して、図7(b)に示すような適切な輝度の画像“0”を、教師画像として与える。そして、これらの学習画像および教師画像が入力されている条件下で、それぞれの学習画像毎に、教師画像と略同等な輝度の出力画像(処理後データZp)が得られるまで、学習を実行させる。この学習により最終的に得られた各入力画像のパラメータWnm,Wpn,θnおよびθpは、図8に示すように、パラメータテーブル24に記憶される。
さらに、パラメータテーブル24には、各学習画像の平均輝度値Abrも記憶される。この平均輝度値Abrは、正規化後のカラー画像データDoに基づいて求められ、詳しくは次の数25の演算式によって求められる。
ここで、Xは、学習画像の横(x軸)方向の画素数であり、即ちここではX=240である。そして、Yは、当該学習画像の縦(y軸)方向の画素数であり、即ちここではY=320である。また、xおよびy(x、y)は、学習画像上の任意の画素の座標を表す。
この数25に基づく演算は、輝度算出部26によって行われる。そして、この輝度算出部26によって算出された平均輝度値ABrは、パラメータ設定部18によってパラメータテーブル24に記憶される。
このような学習を実行させた後、実際に任意のカラー画像を入力し、そのときに得られる処理結果を評価した。具体的には、図9(a)(参考図2(a))に示すように、学習画像の1つと同じ画像、例えば画像“1”を、入力画像として入力する。そして、この入力画像“1”を、例えば学習画像“1”〜“4”のそれぞれに対応するNo.“1”〜“4”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させる。これによって、図9(b)(参考図2(b))に示すような処理結果が得られた。即ち、この処理結果によれば、輝度(平均輝度値ABr)の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなることが判る。そして、同図に◎印で示すように、入力画像“1”よりも輝度が1段階低い画像“2”に対応するNo.“2”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において上から2番目の画像)が、図9(c)(参考図2(c))の目標画像(元の画像“0”)に最も近い輝度を示す。
次に、図10(a)(参考図3(a))に示すように、入力画像として画像“2”を入力すると共に、この入力画像“2”を、学習画像“2”〜“5”のそれぞれに対応するNo.“2”〜“5”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させてみた。この場合も、図10(b)(参考図3(b))に示すように、輝度の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなることが判る。そして、同図に◎印で示すように、入力画像“2”よりも輝度が1段階低い画像“3”に対応するNo.“3”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において上から2番目の画像)が、図10(c)(参考図3(c))の目標画像“0”に最も近い輝度を示す。
さらに、図11(a)(参考図4(a))に示すように、入力画像として画像“3”を入力すると共に、この入力画像“3”を、学習画像“3”〜“5”のそれぞれに対応するNo.“3”〜“5”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させた。この場合も同様に、図11(b)(参考図4(b))に示すように、輝度の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなる。そして、同図に◎印で示すように、入力画像“3”よりも輝度が1段階低い画像“4”に対応するNo.“4”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において中央の画像)が、図11(c)(参考図4(c))の目標画像“0”に最も近い輝度を示す。
そしてさらに、図12(a)(参考図5(a))に示すように、入力画像として画像“4”を入力すると共に、この入力画像“4”を、学習画像“4”および“5”のそれぞれに対応するNo.“4”および“5”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させた。この場合も、図12(b)(参考図5(b))に示すように、輝度の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなる。そして、同図に◎印で示すように、入力画像“4”よりも輝度が1段階低い画像“5”に対応するNo.“5”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において下側の画像)が、画質は落ちるが、図12(c)(参考図5(c))の目標画像“0”に近い輝度を示す。
また、入力画像として、上述の学習画像とは別の画像、例えば図13(a)(参考図6(a))に示すような比較的に輝度の低い画像“1a”を入力してみた。そして、この入力画像“1a”を、上述の学習画像“1”〜“4”のそれぞれに対応するNo.“1”〜“4”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させてみた。すると、図13(b)(参考図6(b))に示すような結果が得られた。即ち、学習画像とは別の低輝度な画像“1a”を入力した場合も、その輝度を改善することができる。そして、輝度の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなる。また、この図13(a)に示す入力画像“1a”の平均輝度値ABrを実際に算出したところ、当該入力画像“1a”の平均輝度値ABrは、学習画像“2”よりも低く、かつ学習画像“3”よりも高かった。そして、図13(b)に◎印で示すように、当該入力画像“1a”よりも少し輝度が低めの学習画像“3”に対応するNo.“3”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において上から3番目の画像)が、図13(c)(参考図6(c))の目標画像“0a”に最も近い輝度を示す。
さらに、図14(a)(参考図7(a))に示すように、上述の入力画像“1a”よりも輝度の低い画像“2a”を入力してみた。そして、この入力画像“2a”を、例えば学習画像“4”および“5”のそれぞれに対応するNo.“4”および“5”のパラメータWnm,Wpn,θnおよびθpに基づいて処理させた。この場合も、図14(b)(参考図7(b))に示すように、輝度の低い学習画像に対応するパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像ほど、その輝度が高くなる。また、この図14(a)に示す入力画像“2a”の平均輝度値ABrは、学習画像“4”よりも低く、かつ学習画像“5”よりも高かった。そして、図14(b)に◎印で示すように、当該入力画像“2a”よりも少し輝度が低めの画像“5”に対応するNo.“5”のパラメータWnm,Wpn,θnおよびθpに基づいて得られた出力画像(同図において下側の画像)が、画質は落ちるが、図14(c)(参考図7(c))の目標画像“0”に最も近い輝度を示す。
これらの結果から、次のようなことが言える。即ち、任意の入力画像に対して上述の輝度変換処理を施すとき、パラメータテーブルに記憶されているNo.“1”〜“5”のパラメータWnm,Wpn,θnおよびθpのうち、当該入力画像の平均輝度値ABrに最も近く、かつ当該入力画像の平均輝度値ABrよりも低い輝度平均値ABrを有する学習画像も対応するパラメータに基づいて、当該輝度変換処理が行われるようにする。このようにすれば、入力画像の輝度に応じて、期待通りの処理結果を得ることができる。
そこで、この第1実施形態では、学習時のみならず、実際の画像処理時(運用時)においても、上述の輝度算出部26によって、入力画像の平均輝度値ABrが算出される。そして、この輝度算出部26による算出結果は、パラメータ設定部16に入力される。パラメータ設定部16は、入力された算出結果、つまり入力画像の平均輝度値ABrに基づいて、パラメータテーブルに記憶されているNo.“1”〜“5”のいずれかのパラメータWnm,Wpn,θnおよびθpを選択する。具体的には、当該入力画像の平均輝度値ABrに最も近く、かつ当該入力画像の平均輝度値ABrよりも低い平均輝度値ABrに対応するパラメータWnm,Wpn,θnおよびθpを選択する。そして、選択したパラメータWnm,Wpn,θnおよびθpを、ネットワーク部16に設定する。
これによって、入力画像の平均輝度値ABrに応じたパラメータWnm,Wpn,θnおよびθpに基づいて、輝度変換処理が施される。例えば、図15(a)(参考図8(a))に示すように、入力画像として上述の画像“1”が入力されたときは、当該入力画像“1”よりも1段階輝度の低い学習画像“2”に対応するNo.“2”のパラメータWnm,Wpn,θnおよびθpに基づいて輝度変換処理が行われる。そして、例えば図15(b)(参考図8(b))に示すように、入力画像として画像“2”が入力されたときは、当該入力画像“2”よりも1段階輝度の低い学習画像“3”に対応するNo.“3”のパラメータWnm,Wpn,θnおよびθpに基づいて輝度変換処理が行われる。さらに、図15(c)(参考図8(c))に示すように、画像“3”が入力されたときは、当該入力画像“3”よりも1段階輝度の低い学習画像“4”に対応するNo.“4”のパラメータに基づいて処理される。そして、図15(d)(参考図8(d))に示すように、画像“4”が入力されたときは、当該入力画像“4”よりも1段階輝度の低い学習画像“5”に対応するNo.“5”のパラメータに基づいて処理される。この結果、入力画像の輝度に関係なく、当該輝度に応じた期待通りの(目標画像に近い)出力画像を得ることができる。また、これらの出力画像において目標画像に近い色彩が得られていることも、判る。
また、図16(a)(参考図9(a))に示すように、入力画像として学習画像とは異なる画像“1a”が入力されたときも、当該入力画像“1a”に平均輝度値ABrが最も近く、かつ当該入力画像“1a”よりも平均輝度値ABrが小さい学習画像“3”に対応するNo.“3”のパラメータWnm,Wpn,θnおよびθpに基づいて輝度変換処理が行われる。そして、図16(b)(参考図9(b))に示すように、入力画像としてさらに暗い画像“2a”が入力されたときも、当該入力画像“2a”の平均輝度値ABrに応じたパラメータWnm,Wpn,θnおよびθpに基づいて輝度変換処理が行われる。従って、このように学習画像とは異なる画像が入力されたとしても、当該入力画像の輝度に応じた期待通りの出力画像を得ることができる。
以上のように、この第1実施形態の画像処理装置10によれば、入力画像(カラー画像データDo)を構成するR成分,G成分およびB成分は、四元数という1つの数に格納された状態で、言わば3次元ベクトルデータとして、一括的に処理される。従って、処理後においても、これらR成分,G成分およびB成分の互いの関連性は保持される。しかも、当該入力画像の輝度に応じて、自動的に適切なパラメータWnm,Wpn,θnおよびθpが設定される。よって、色彩および輝度(明るさ)の両方の再現性に優れた期待通りの出力画像を得ることができる。
さらに、この第1実施形態の画像処理装置10によれば、単なる可視カメラをカラー暗視カメラとして使用することができる。しかも、ハードウェア的には、上述したようにパーソナルコンピュータによって実現することができ、換言すればソフトウェア処理によって当該暗視カメラを実現することができる。従って、光電子倍増管等の従前の暗視カメラに比べて、極めて安価に、しかもカラーの暗視カメラを実現することができる。また、例えば、従前の暗視カメラにこの第1実施形態の画像処理装置10を適用することで、より高感度な暗視カメラを実現することもできる。
なお、この第1実施形態においては、入力画像をR成分,G成分およびB成分というRGBフォーマットに従う3つの成分に分割して処理したが、これに限らない。例えば、YUVフォーマットに従ってY成分,U成分およびV成分という3つの成分に分けてもよいし、他のフォーマットに従って分けてもよい。
また、入力画像の輝度に応じて適切なパラメータWnm,Wpn,θnおよびθpが自動的に設定されるようにしたが、これに限らない。即ち、手動によりNo.“1”〜“5”のうちの任意のパラメータWnm,Wpn,θnおよびθpを設定できるようにしてもよい。
さらに、パラメータWnm,Wpn,θnおよびθpの選択肢は、上述のNo.“1”〜“5”の5つに限らず、これ以外の数としてもよい。また、ネットワーク部16を構成する入力層のニューロンユニット30の数M,中間層のニューロンユニット32の数Nおよび出力層のニューロンユニット34の数Pについても、上述した数に限定されるものではない。
そして、この第1実施形態においては、可視カメラによる撮影データを処理対象(カラー画像データDo)とする場合について説明したが、これに限らない。例えば、ビデオテープレコーダやディジタルスチルカメラ等の画像再生装置によって再生された画像データを処理対象としてもよい。また、上述した学習作業においては、例えば適切な照度環境の下で撮影された画像を教師画像とすると共に、この教師画像の輝度を市販の画像処理ソフトによって調整した(低下させた)ものを学習画像として、用いてもよい。
そしてさらに、各パラメータWnm,Wpn,θnおよびθpの更新アルゴリズムとして、最急降下法を用いたが、これ以外のアルゴリズムを用いてもよい。また、中間層のニューロンユニット32における処理は、数11で示されるものに限らない。同様に、出力層のニューロンユニット34における処理もまた、数16以外の演算式に基づくものであってもよい。そして、各パラメータWnm,Wpn,θnおよびを更新する手順として、一括修正法を採用したが、これに代えて、例えば処理対象となるカラー画像データDoが入力される度に当該更新を行うという、いわゆる逐次修正法を採用してもよい。因みに、この第1実施形態においては、約200[ms]〜300[ms](秒間約3フレーム〜5フレーム)というフレームレートを実現することができた。
[第2実施形態]
次に、この発明の第2実施形態について、図17を参照して説明する。
この第2実施形態の画像処理装置10aもまた、図17に示すように、CCD型可視カメラ60による撮影データを処理対象(カラー画像データDo)とするものである。ただし、この第2実施形態における可視カメラ60は、太陽光等に含まれる赤外線を遮断するための赤外線遮断フィルタ62を備えており、この赤外線遮断フィルタ62は、手動により任意にON/OFF(図示しないCCDの前面に挿入/非挿入)可能とされている。また、この赤外線遮断フィルタ62のON/OFF状態に応じて、当該ON/OFF状態を表す切換信号が、撮影データとは別に出力される。
ところで、かかる可視カメラ60においては、昼間は、上述の如く太陽光等に含まれる赤外線を遮断するために赤外線遮断フィルタ62はONされるが、夜間は、極力高い感度を得るために当該赤外線遮断フィルタ62はOFFされることが多い。しかしながら、このように赤外線遮断フィルタ62がOFFされると、当然に、当該赤外線遮断フィルタ62がONされた状態で撮影されたときと異なる色彩(色調)の画像が得られ、視覚的に違和感を覚えることがある。また、赤外線遮断フィルタ62がOFFされる夜間に得られる撮影データは、当然に、昼間に得られる撮影データよりも暗い。そこで、この第2実施形態では、かかる赤外線遮断フィルタ62のON/OFF状態の如何に拘らず、一定の色彩および輝度の出力画像(出力データZp)が得られるようにする。
これを実現するために、この第2実施形態においては、第1実施形態における輝度算出部26に代えて、上述の切換信号が入力される切換制御部64が設けられる。なお、これ以外の構成については、第1実施形態と同様であるので、これら同様な部分には、同一符号を付して、その詳細な説明を省略する。
このように構成された第2実施形態の画像処理装置10aにおいては、まず、最初に、学習のための教師データTpが採取される。具体的には、例えば赤外線遮断フィルタ62がONされた状態で可視カメラ60によって昼間に或る場所を撮影して得たデータが、当該教師データTpとして、例えば図示しないハードディスク等の記録装置に記録される。
続いて、赤外線遮断フィルタ62がONされた状態で可視カメラ60によって昼間に上述と同じ場所を撮影して得たデータが、学習データDoとして入力されると共に、上述の教師データTpが、当該画像処理装置10a(誤差演算部20)に与えられる。この状態で、学習が行われ、当該学習によって求められたパラメータWnm,Wpn,θnおよびθpの値が、フィルタON時用のパラメータとして、パラメータテーブル24に記憶される。さらに、赤外線遮断フィルタ62がOFFされた状態で夜間に可視カメラ60によって同じ場所を撮影して得たデータが、学習データDoとして入力され、同様に学習が行われる。そして、この学習によって求められたパラメータWnm,Wpn,θnおよびθpの値が、フィルタOFF時用のパラメータとして、パラメータテーブル24に記憶される。
このようにして学習が行われた後、実際の画像処理(運用)時において、赤外線遮断フィルタ62がONまたはOFFされると、そのON/OFF状態を表す切換信号が、切換制御部64に入力される。切換制御部64は、入力された切換信号に基づいて、フィルタON時用およびOFF時用のいずれかのパラメータWnm,Wpn,θnおよびθpを選択するよう、パラメータ設定部18に指示を与える。この指示に基づいて、パラメータ設定部18は、フィルタON時用またはOFF時用のパラメータWnm,Wpn,θnおよびθpを選択し、選択したパラメータWnm,Wpn,θnおよびθpをネットワーク部16に設定する。これによって、赤外線遮断フィルタ62のON/OFF状態に応じた処理が行われ、期待通りの処理後データZp、つまり一定の色彩かつ一定の輝度の出力画像を、得ることができる。
なお、この第2実施形態においては、赤外線遮断フィルタ62がON/OFFされる場合について説明したが、これに限らない。例えば、帯域通過フィルタや紫外線遮断フィルタ等の当該赤外線遮断フィルタ62以外のフィルタがON/OFFされる場合にも、この第2実施形態と同様の技術を適用することができる。また、この第2実施形態の画像処理装置10aに、上述の第1実施形態と同様の技術、即ち入力画像の輝度に応じてパラメータWnm,Wpn,θnおよびθpを選択する技術を、組み込んでもよい。
[第3実施形態]
続いて、この発明の第3実施形態について、図18を参照して説明する。
この第3実施形態の画像処理装置10bは、所定の雑音を含むカラー画像データDoから当該雑音が除去された処理後データZpを得るためのものである。これを実現するために、この第3実施形態の画像処理装置10bは、正規化部12によって正規化されたカラー画像データDoが入力されるS/N判定部70を備えている。
即ち、学習データとして、互いにS/Nの異なる複数のカラー画像データDoが入力される。そして、処理後データZpとして期待するデータが、教師データTpとして与えられる。この条件下で、それぞれの学習データDoに対応するパラメータWnm,Wpn,θnおよびθpが求められ、求められたパラメータWnm,Wpn,θnおよびθpは、パラメータテーブル24に記憶される。
そして、実際の画像処理時に、雑音を含む任意のカラー画像データDoが入力される。このカラー画像データDoは、正規化部12によって正規化された後、ニューラルネットワーク14に入力されると共に、S/N判定部70に入力される。S/N判定部70は、入力されたカラー画像データDoのS/Nを判定し、その判定結果をパラメータ設定部18に与える。パラメータ設定部18は、S/N判定部70による判定結果に基づいて、カラー画像データDoのS/Nに最も近いS/Nの学習データ基づくパラメータWnm,Wpn,θnおよびθpを、パラメータテーブル24から読み出す。読み出されたパラメータWnm,Wpn,θnおよびθpは、ネットワーク部14に設定され、これによって、当該カラー画像データDoのS/Nに応じた処理が実行され、雑音が除去される。
このようにこの第3実施形態によれば、所定の雑音を含むカラー画像データDoの当該雑音を除去することができる。しかも、上述したように処理後データZp(出力画像)の各色成分(R成分,G成分およびB成分)の関連性が保たれ、つまり新規な雑音除去技術を提供することができる。
なお、ここで言う雑音とは、カラー画像データDoに含まれる電気的なノイズの他に、霧や霞が掛かった状況下で得られた撮影データの当該霧や霞等の画像を不鮮明にする要因をも含む。つまり、この第3実施形態によれば、かかる霧や霞等を排除した出力画像を得ることも期待できる。