本発明の一実施形態によれば、入力画像上の識別単位となる所定領域における、複数のクラスの混ざり方(以下、混合状態と呼ぶ)を推定することができる。以下では、推定対象となる領域内の画像のことを対象画像と呼ぶことがある。より具体的には、本発明の一実施形態によれば、対象画像における、互いに異なる属性を持つ領域の混合状態が判定される。それぞれの属性の領域は、同じクラスに属する被写体が占める領域である。すなわち、この属性の領域の1つは、特定のクラスに属する被写体の領域であり、この属性の領域の別の1つは、特定のクラスとは別のクラスに属する被写体の領域である。
一実施形態によれば、例えばたくさんの木の枝(前景)の隙間に空が見えるような領域について、前景部分と空部分との混合状態(例えば面積比、エッジ面積、又は配置パターン等)を推定することができる。従来の方法で得られるような各領域のクラス情報(例えば前景領域であるか空領域であるかを示す情報)だけでなく、このような混合状態を示す情報を用いることにより、後に画像に対して行う処理の精度を向上させることができる。具体例については各実施形態において詳しく説明する。
以下、本発明の実施形態を図面に基づいて説明する。ただし、本発明の範囲は以下の実形態に限定されるものではない。以下の実施形態においては、図1等に示される各処理部は、コンピュータにより実現してもよいし、専用のハードウェアによって実現してもよい。
図10は、各実施形態を実現可能なコンピュータの基本構成を示す図である。図10においてプロセッサ101は、例えばCPUであり、コンピュータ全体の動作をコントロールする。メモリ102は、例えばRAMであり、プログラム及びデータ等を一時的に記憶する。コンピュータが読み取り可能な記憶媒体103は、例えばハードディスク又はCD-ROM等であり、プログラム及びデータ等を長期的に記憶する。本実施形態においては、記憶媒体103が格納している、各部の機能を実現するプログラムが、メモリ102へと読み出される。そして、プロセッサ101が、メモリ102上のプログラムに従って動作することにより、各部の機能が実現される。
図10において、入力インタフェース104は外部の装置から情報を取得するためのインタフェースである。また、出力インタフェース105は外部の装置へと情報を出力するためのインタフェースである。バス106は、上述の各部を接続し、データのやりとりを可能とする。
[実施形態1]
図1(A)及び(B)に沿って、実施形態1に係る画像処理装置及び学習装置の基本的な構成を説明する。
最初に、図1(A)に従って、学習装置の装置構成の概要を説明する。本実施形態において学習装置は、後述する画像処理装置が混合状態を認識する処理を行う際に利用する推定器を、事前に用意された学習画像から生成する。学習処理の詳細については後述する。学習データ記憶部5100には、あらかじめ用意された学習データを記憶している。学習データは、学習画像と教師情報とを含む。データ取得部2100は、学習データ記憶部5100から、学習画像と教師情報とを取得する。学習部2200は、特徴抽出部610を用いて、学習画像の所定領域にある、推定器の学習に用いる識別画像の特徴量を抽出する。また、学習部2200は、特徴量から混合状態を推定する推定器の学習を、識別画像の特徴量と教師情報との組み合わせを用いて行う。例えば、学習部2200は、特徴量を入力されると混合状態を示す情報を出力する推定器の学習を行うことができる。ここで、教師情報は、識別画像における、互いに異なる属性の領域間の混合状態を示す情報である。学習により得られた推定器は、推定器記憶部5200に記憶される。具体的には、推定器記憶部5200は、学習により決定された推定器のパラメータを記憶することができる。
次に、図1(B)に従って、画像処理装置の装置構成の概要を説明する。本実施形態において画像処理装置は、未知の入力画像における混合状態を推定する処理を行う。処理内容の詳細は後述する。画像取得部1100は、入力画像を取得する。推定部1200は、特徴抽出部610を用いて、入力画像の所定領域にある、混合状態の識別対象となる対象画像から特徴量を抽出する。推定部1200が用いる特徴抽出部610は、学習部2200が用いる特徴抽出部610と同様に動作できる。また、推定部1200は、特徴量に基づいて、対象画像における互いに異なる属性を持つ領域の混合状態を推定する。例えば、推定部1200は、あらかじめ学習が行われた推定器620を推定器記憶部5200から読み込み、推定器に特徴量を入力することにより得られた、対象画像における互いに異なる属性の領域間の混合状態を示す情報を、出力部1300に出力する。推定器620は、学習部2200による学習により得られたものでありうる。出力部1300は、推定部1200による推定結果を出力する。
学習装置のデータ取得部2100及び学習部2200は、同じ計算機上で実現されてもよいし、それぞれ独立したモジュールとして構成されていてもよいし、計算機上で動作するプログラムとして実装されてもよい。学習装置の学習データ記憶部5100及び推定器記憶部5200は、計算機の内部又は外部にあるストレージを用いて実現することができる。
画像処理装置の画像取得部1100及び推定部1200は、同じ計算機上で実現されてもよいし、それぞれ独立したモジュールとして構成されていてもよいし、計算機上で動作するプログラムとして実装されてもよい。また、これらはカメラ等の撮影装置内部に回路又はプログラムとして実装されてもよい。
画像処理装置は、学習装置と同じ計算機上で実現されてもよいし、別々の計算機上で実現されてもよい。学習装置及び画像処理装置が備える推定器記憶部5200は、同じストレージであってもよいし、異なるストレージであってもよい。異なるストレージを用いる場合、学習装置により推定器記憶部5200に格納された推定器を、画像処理装置が備える推定器記憶部5200にコピー又は移動することができる。
以下に、本実施形態に係る処理を詳細に説明する。まず、学習装置が行う学習時の処理に関して図2(A)のフローに従って説明する。S2100においてデータ取得部2100は、学習データ記憶部5100から、学習画像と、混合状態の教師情報と、を学習データとして取得する。
学習データ記憶部5100には、あらかじめ複数の学習画像と混合状態の教師情報が記憶されている。学習画像とは、推定器の学習に用いられる画像のことを指す。学習画像は、例えば、デジタルカメラ等で撮影された画像データでありうる。画像データの形式は特に限定されず、例えばJPEG、PNG、又はBMP等でありうる。以下では、用意された学習画像の枚数をN枚とし、n番目の学習画像をIn(n=1・・・N)と表す。
混合状態の教師情報は、学習画像の所定領域における混合状態を示す。この教師情報は予め用意されており、例えば人間が学習画像を見ながら作成することができる。本実施形態においては、学習画像には識別単位となる複数の領域が設定されており、それぞれの領域について教師情報が用意されている。以下、1つの識別単位となる、学習画像中の所定領域の画像を、識別画像と呼ぶ。
領域の設定方法は特に限定されない。例えば、所定の領域設定パターンに従って、入力画像中に複数の領域を設定することができる。具体例としては、学習画像を所定サイズ(例えば16×16ピクセル)の複数の矩形領域に分割し、それぞれの矩形領域を識別単位として扱うことができる。また、非特許文献2に記載の手法で得られた小領域を識別単位の領域として扱うことができる。一方、学習画像の一部にのみ所定サイズの矩形領域を設定してもよい。なお、学習データ記憶部5100には、所定サイズの識別画像が学習データとして記憶されていてもよい。
以下に、教師情報が示す混合状態について説明する。画像上の被写体は、複数のクラスに分類することができる。図3は、このようなクラス分類の例を示す。図3(A)には、学習画像500の例を示す。学習画像500には、空、人物、及び植物が写っており、それぞれを異なるクラスに分類することができる。すなわち、図3(B)に示すように、領域541に含まれる画素には「空」のクラスラベルを、領域542に含まれる画素には「人物」のクラスラベルを、領域543に含まれる画素には「植物」のクラスラベルを、それぞれ与えることができる。
クラス及びクラスラベルの定義は様々であり、クラス分類の方法は特に限定されない。図3の例では、被写体の種類に応じてクラス分類を行った。別のクラスラベルの例としては、肌領域又は髪領域、犬又は猫等の動物、及び自動車又は建物等の人工物、等が挙げられる。工場で用いられる部品A又は部品Bといったような、特定物体を示すクラスラベルを用いることもできる。一方、各画素を主被写体領域と背景領域にクラス分類してもよい。また、光沢面又はマット面といった表面性状の違いや、金属面又はプラスチック面のような素材の違いに応じて、クラス分類を行ってもよい。以下では、クラスは全部でM種類あるものとする。
クラスの混合状態とは、対象画像における互いに異なる属性の領域間の混合状態のことである。それぞれの属性の領域は、同じ特定のクラスに属する被写体が占める領域である。互いに異なる属性の領域の一方は、特定のクラスに属する被写体の領域であり、他方は、特定のクラスとは別のクラスに属する被写体の領域である。以下では、あるクラスに属する被写体が占める属性の領域のことを、単にそのクラスに属する領域と呼ぶことがある。また、各画素に写っている被写体のクラスのことを、以下では画素の属性又はクラスと呼ぶことがある。
混合状態の定義はさまざまなものが考えられる。本実施形態では、以下のように混合状態を数値で表すものとする。一実施形態において、混合状態を示す情報は、対象画像における属性の領域の分布に依存して定まる情報である。例えば、混合状態を示す情報は、対象画像における属性の領域のそれぞれの比率を表す情報である。具体例として、混合状態を示す情報は、対象画像において各クラスに属する領域の面積比でありうる。クラスが「空」と「非空」の2クラスである場合について、図4の例を参照して説明する。図4には、学習画像510と、そのクラスラベル520が表されている。クラスラベル520は、クラスが「空」である画素を白で、クラスが「非空」である画素を黒で表す。図4には、学習画像510中の識別画像515に対応するクラスラベル520上の領域525を拡大した、拡大図(526)が示されている。拡大図(526)には、非空領域511と、空領域522とが示されている。このとき、識別画像515の混合状態を、対応する領域525における空領域と非空領域との面積比rで表すことができる。例えば、16×16pixelの矩形領域において、空領域画素が192pixel、非空領域画素が64pixelであった場合には、r=192/256=0.75となる。
上の例では2クラスの面積比について説明したが、3つ以上のクラスの面積比を表すこともできる。図5には、学習画像530と、学習画像530中の識別画像535と、識別画像535についてのクラスラベル536が示されている。この例では、学習画像530の各画素は「空」、「植物」、及び「人工物」の3クラスに分類されている。この場合の混合状態は、植物領域531、空領域532、及び人工物領域533の面積比に応じて定めることができる。一例として、この場合に面積比を示す点545を、それぞれのクラスの面積比に応じて、図6(A)に示す座標空間中の単体540(図5の場合三角形)上にプロットすることができる。この点545は、単体の二つの辺を内分する内分比t1及びt2を用いて一意に表すことができるため、このときの面積比を、r=(t1,t2)というベクトルで表すことができる。これは一般M次元においても同様であるため、クラス数Mのときの面積比は、r=(t1,t2,・・・tM-1)というM-1次元のベクトルで一意に表すことができる。なお、前述のような2クラスの場合の面積比は、この一般化された形式においてM=2と設定した場合と同値である。
また、上記のように表されるMクラスの面積比を、低次の空間にマッピングして扱ってもよい。例えば、識別画像における面積比をM次元空間にプロットし、SOM(Self-Organizing Map)やLLE(Locally Linear Embedding)を用いて低次の空間にマッピングすることができる。図6(B)は、上記の3クラスの混合比の空間を1次元のSOM550で量子化した例を示す。551はSOM550の始端ノードを表し、552はSOM550の終端ノードを表す。図6(C)は、これらを1次元空間にマッピングすることにより得られる。始端ノードの位置を0、終端ノードの位置を1とし、ノードを均等に配置すると、マップ上の位置を表すスカラ値により面積比を示す点545を表現することができる。例えば、図6(B)に示す面積比を示す点545は、図6(C)上の点546として近似することができ、そして点546のマップ上の位置(この例ではr=0.37)を用いて面積比を表すことができる。マッピング後の次元数は、図6(C)に示すように1次元には限られず、一般的にMの値が大きい場合には1以上の次元RのSOMで近似することができ、その場合rはR次元のベクトルで表すことができる。例えば、クラス数M=5のとき、2次元のSOMで面積比空間を量子化した場合には、rは2次元ベクトルで表すことができる。
また、Mクラスの面積比を、複数の基底ベクトルの合成ベクトルとして表現してもよい。例えば、さまざまな識別画像から得られたクラス面積比を、主成分分析又はスパースコーディング等を用いて複数の基底ベクトルに分解し、寄与度の大きい少数のベクトルでこれを近似することができる。この場合、面積比空間における面積比は、これら基底ベクトルの合成ベクトルとして表現することができ、そのときの各基底ベクトルに対する重み係数を用いて面積比を表すことができる。
別の例として、混合状態を示す情報は、対象画像における互いに異なる属性の領域間の境界に係る情報、例えば対象画像中におけるこの境界を表す画素の比率を表す情報でありうる。一例として、各画素のクラス(例えば空領域又は非空領域)を示す二値画像に対してエッジ検出を行い、得られたエッジ画素数をカウントし、所定領域の画素数とエッジ画素数との比eを用いて混合状態を表すことができる。図4には、クラスラベル526に対するエッジ検出結果527が示されており、検出されたエッジ画素523が表されている。16×16pixelの矩形領域におけるエッジ画素のカウント結果が64である場合、エッジ画素率はe=64/256=0.25と表すことができる。
さらなる別の例として、混合状態を示す情報は、対象画像における属性の領域の配置を表す情報でありうる。例えば、所定領域内における各クラスの画素の配置パターンに従って混合状態を表すことができる。クラス数がM、所定領域の画素数がKである場合、所定領域内の各画素のクラスを、M×K次元の二値ベクトルで表すことができる。例えば、「空」「非空」の2クラスが定義されており、所定領域のサイズが16×16pixelである場合、所定領域内のクラスラベル配置パターンを、2×16×16=512次元の二値ベクトルとして表現することができる。このように識別画像から得られたさまざまな二値ベクトルをベクトル空間上にプロットし、SOM若しくはLLE等を用いて量子化することにより、所定領域におけるクラスラベル配置パターンをベクトルpとして表現することができる。また、識別画像から得られたさまざまな二値ベクトルを主成分分析若しくはスパースコーディング等を用いて基底ベクトルで表現する方法を用いることもできる。
図7は、所定領域におけるクラスラベル配置パターンを2次元のSOMを用いてマッピングすることにより得られたマップ900を示す。マップ900において、各四角形はSOMのノードであって、量子化されたクラスラベル配置パターンをそれぞれ表す。SOMの特性上、類似したパターンがマップ上で近い位置に配置される。識別画像におけるクラスラベル配置パターンを、各ノードのパターンとの近さに基づいて、マップ上の位置座標pで表すことができる。例えば図7の2次元SOMの例では、マップ上の位置をp=(p1,p2)の2次元ベクトルで表すことができる。
このように、混合状態はさまざまな方法で表現することができる。混合状態は、これらの表現のうちいずれか一つを用いて表してもよい。例えば、混合状態を面積比だけで表すのであれば、C=rと定義すればよく、エッジ画素率だけで表わすのであればC=eと表わせばよく、クラスラベル配置パターンだけで表すのであればC=pと定義すればよい。また、混合状態は複数の表現を組み合わせて表してもよい。例えば、混合状態を面積比とエッジ画素率との組み合わせC=(r,e)と定義してもよいし、面積比、エッジ画素率、及びクラスラベル配置パターンの組み合わせC=(r,e,p)と定義してもよい。本発明において、混合状態の表現方法は特に限定されない。
上記のように、混合状態Cは1つ以上の数値で表されるベクトルとして表現することができる。すなわち、一実施形態において得られる混合状態を表す情報は、所定領域における混合状態を表す特徴量であるといえる。混合状態Cを表すベクトルの次元数をLとする。以下では、画像In上の所定領域iにおける混合状態ベクトルをCniと表し、混合状態ベクトルCniのl(l=1,……,L)番目の要素をc(n,i,l)と表す。なお、混合状態は、所定領域において各クラスの画素がどのように混合されているかだけでなく、所定領域が特定の1つのクラスの画素で構成されることを示してもよい。
本実施形態においては、各学習画像の各画素について図3(B)に示すようにクラスラベルが与えられているものとする。そして、このクラスラベルに基づいて、学習画像から得られるそれぞれの識別画像について、上記のようにスカラ値又はベクトル値として表される混合状態Cが教師情報として予め算出され、学習データ記憶部5100に予め格納されているものとする。しかしながら、データ取得部2100は、識別画像の各画素の属性を示す情報を取得し、各画素の属性を示す情報を用いて混合状態を示す情報を生成することにより、教師情報を取得してもよい。例えば、データ取得部2100は、学習データ記憶部5100に格納されている学習画像の各画素のクラスラベルに基づいて、上記のようにそれぞれの識別画像の混合状態Cを算出することができる。さらに、各学習画像の各画素について図3(B)に示すようにクラスラベルが与えられていることは必須ではない。例えば、学習画像から得られる識別画像を見ながら作業者が入力したこの識別画像の混合状態、又は作業者が入力した情報(エッジ情報など)に基づいて自動的に算出されたこの識別画像の混合状態が、学習データ記憶部5100に予め格納されていてもよい。
ステップS2200で、学習部2200は、データ取得部2100から識別画像及び混合状態の教師情報を取得して、混合状態を推定する推定器の学習を行う。以下では、推定器としてCNN(Convolutional Neural Network)を利用する場合について説明する。CNNの構成としては従来既知のものを用いることができる。典型的には、CNNは、畳み込み層とプーリング層とを繰り返すことにより入力信号の局所的な特徴を次第にまとめていき、変形や位置ずれに対してロバストな特徴を得ることにより、認識タスクを行うニューラルネットワークである。
CNNを用いた推定処理の例を、図8(A)を参照しながら説明する。学習部2200は、特徴抽出部610を用いて、推定器の学習に用いる識別画像の特徴量を抽出する。また、学習部2200は、特徴量を入力されると混合状態を示す情報を出力する推定器の学習を、識別画像の特徴量と教師情報との組み合わせを用いて行う。図8(A)は、学習部2200が処理のために用いることができるCNNの一例を示す。図8(A)には、特徴抽出部610が行う処理に相当する部分が示されており、これは特徴抽出を行うCNNの畳み込み層に相当する。また、図8(A)には、学習を行う推定器620に相当する部分が示されており、これはパターン推定を行うCNNの完全結合層に相当する。
畳み込み層は、学習画像の部分画像である識別画像630の各位置における畳み込み演算結果を信号として受け取る入力層611を有する。入力層611からの信号は、畳み込み層とプーリング層とが配置され、畳み込み演算とプーリングによる信号の選択とが繰り返される複数の中間層612,613を介して、最終層615へと送られる。特徴抽出部610の最終層615からの出力信号は、推定器620へと送られる。以下では、特徴抽出部610の出力信号をXとする。完全結合層では、各層の素子が前後の層と全結合しており、特徴抽出部610から入力された信号は、重み係数を用いた積和演算を介して出力層640へと送られる。出力層640は、混合状態ベクトルCの次元数Lと同数の出力素子を有している。
学習部2200は、推定器の学習を行う際に、学習画像I
nの所定領域iから得られた識別画像をCNNに入力した際に、出力層640で得られる出力信号の値を、教師情報と比較する。ここで、学習画像I
nの所定領域iを特徴抽出部610に入力して得られた特徴量をX
n
i、これを推定器620に入力した結果得られた出力層640におけるl番目の素子の出力信号をy
l(X
n
i)とする。また、出力層640のうちl番目の出力素子における教師信号は、混合状態C
niのl番目の要素c(n,i,l)で表される。この場合、出力信号と教師情報との誤差は下記のように計算される。
誤差逆伝搬法を用いて、このように得られた誤差を出力層から入力層へと順次逆伝搬することにより、CNNの学習を行うことができる。例えば、確率的勾配降下法等を用いてCNNにおける各層の重み係数を更新することができる。CNNの重み係数の初期値としては、ランダムな値を用いることもできるし、何らかのタスクに関する学習により得られた重み係数を用いてもよい。例えば、画像分類タスクにおいては画像ごとにクラスラベルが与えられた学習画像を用いるが、領域分割タスクにおいては画素ごとにクラスラベルが与えられた学習画像を用いるため、領域分割タスク用の学習画像を人間が用意するための負荷は大きい。一方、画像分類タスク用の学習画像は一般に公開されており、簡単に入手することができる。例えばILSVRC(ImageNet Large-scale Visual Recognition Challenge)では120万枚の画像分類タスク用の学習画像が公開されている。よって、このような画像分類タスクのためにCNNの学習を行い、この学習により得られた重み係数を初期値として用いて、本実施形態のような混合状態推定タスクのための学習を行ってもよい。
ここではCNNを用いた推定器について説明したが、推定器の構成は特に限定されない。図8(B)には、推定部1200が処理のために用いることができる構成の別の一例を示す。図8(B)には、特徴抽出部610が行う処理に相当する部分、及び推定器650が行う処理に相当する部分が示されている。推定器650は、特徴抽出部610における各層の出力信号を連結して得られた一つの特徴量に対する回帰値を与える。推定器650が用いる手法としては、例えばSVR(Support Vector Reggression)やロジスティック回帰等が挙げられるが、特に限定されない。そして、学習画像を用いて、この推定器650が用いる回帰関数の学習を行うことができる。例えば、上記の出力信号と教師情報との誤差に基づく誤差関数を最小化するように、回帰関数の学習を行うことができる。また、図8(A)のような構成を用いてCNNの学習をあらかじめ行っておき、その後にCNNの各層の出力信号に基づく特徴量を使って推定器650のみの学習を行ってもよい。ここで、推定器650を完全結合の多層ニューラルネットワークで構成すれば、図8(A)の構成と同様に、誤差逆伝搬法を用いてCNNと推定器650との学習を同時に行うこともできる。
また、特徴抽出部610は、HOG又はSIFTのような別の特徴抽出手法を用いて特徴量を抽出することができる。また、推定器は、SVR、ロジスティック回帰、又は多層ニューラルネットワーク等の識別関数を用いて、混合状態の推定を行うことができる。このように、一実施形態においては、特徴抽出手法と推定手法との任意の組み合わせを用いることができる。このような場合にも、従来の方法に従って推定器の学習を行うことができる。ステップS2200における学習により得られた推定器のパラメータは、推定器記憶部5200に記憶される。
このようにして学習が行われた推定器を用いて、入力画像の混合状態を識別する方法について、図2(B)のフローチャートを参照して説明する。S1100において、画像取得部1100は、混合状態の識別対象となる入力画像を取得する。画像取得部1100は、撮像装置から得られた現像前の画像データを取得することもできる。
以下で、入力画像の所定領域にある混合状態の推定対象となる画像を対象画像と呼ぶ。画像取得部1100は、所定の領域設定パターンに従って、入力画像中に複数の領域を設定することができる。設定された領域のそれぞれに含まれる入力画像の部分画像が、対象画像となる。対象画像は、識別単位に従う所定サイズの部分画像であり、その設定方法は特に限定されない。例えば、学習時と同様、入力画像を所定サイズ(例えば16×16ピクセル)の複数の矩形領域に分割し、それぞれの矩形領域にある複数の対象画像について判定を行うことができる。一方、入力画像の一部領域にある対象画像に対して判定を行ってもよい。
ステップS1200において、推定部1200は、特徴抽出部610を用いて、S1100で得られた入力画像の所定領域にある対象画像から特徴量を抽出する。また、推定部1200は、学習された推定器620を推定器記憶部5200から読み込み、推定器620に特徴量を入力することにより、対象画像における互いに異なる属性の領域間の混合状態を示す情報を生成する。こうして、推定部1200は、ステップS1100で取得した入力画像中の対象画像について混合状態を推定する。図8(A)は、推定部1200が処理のために用いることができるCNNの一例を示す。図8(A)には、特徴抽出部610が行う処理に相当する部分が示されており、ここでは入力画像中の所定領域における信号が各層に順伝搬され、対象画像の特徴量Xiが抽出される。また、図8(A)には、推定器620に相当する部分が示されており、ここでは得られた特徴量Xiから、混合状態ベクトルの各要素に割り当てられた出力素子621における出力信号が生成される。各素子lの出力信号の値は、混合状態ベクトルの各要素yl(Xi)の値となる。
ステップS1300において、出力部1300は、ステップS1200で得られた推定結果を出力する。出力部1300が行う処理は、識別結果の利用方法に依存し、特に限定されない。混合状態を示す情報を用いた処理例を以下に挙げる。
例えば、入力画像の各領域に対する画像処理を、その領域における混合状態に応じて変更することができる。この場合、出力部1300は画像補正アプリケーションに対して各領域の混合状態を出力することができる。
また、別の例として、混合状態に応じたカメラのフォーカス制御を行うこともできる。例えば、複数の測距点を備える撮像装置のためのフォーカス制御装置は、取得部と、制御部とを備えることができる。取得部は、撮像装置により得られた画像のうち複数の測距点のそれぞれに対応する領域について、領域に占める特定の属性の領域の面積比を示す情報を取得する。そして、制御部は、面積比に応じて複数の測距点を重み付けし、撮像装置のフォーカス制御を行う。より具体的には、多点測距AFを行う場合に、フォーカスを合わせる対象となる被写体成分がより多い測距点の重みを大きくすることができる。例えば、前景に重点を置くフォーカス制御を行う場合、前景成分がより多い測距点の重みを大きくすることができ、特定の被写体に重点を置くフォーカス制御を行う場合、特定の被写体成分がより多い測距点の重みを大きくすることができる。このようなフォーカス制御装置は、上記の情報処理装置から混合状態を示す情報を取得してもよいし、上記の情報処理装置が備える上記の各構成を有していてもよいし、本実施形態とは異なる方法で生成された混合状態を示す情報を取得してもよい。
さらなる別の例として、混合状態に応じたカメラの露出制御を行うこともできる。例えば、撮像装置のための露出制御装置は、取得部と、算出部と、選択部と、制御部とを備えることができる。取得部は、撮像装置により得られた画像と、画像の各領域について、領域に占める特定の属性の領域の面積比を示す情報を取得することができる。算出部は、画像全体に占める特定の属性の領域の面積比を算出することができる。選択部は、算出された面積比に応じて、露出制御アルゴリズムを選択することができる。制御部は、選択された露出制御アルゴリズムを用いて、撮像装置の露出制御を行うことができる。より具体的には、視野における空の面積に応じて異なる露出制御を行う場合に、混合状態に基づいて空の面積を算出することができる。この場合、従来技術のように、空と枝が混ざっている領域について、ほとんどの領域を前景であると判定したり、ほとんどの領域について空であると判定したりすることにより、空の面積が実際の値と大きく異なってしまう可能性を減らせることが期待できる。
ここでは静止画像を学習画像及び入力画像として用いる場合について説明したが、動画像を学習画像及び入力画像として用いることもできる。この場合、混合状態の定義は時間方向に拡張される。例えば、16×16pixelの所定領域及び5フレームを識別単位とする場合、16×16×5のボクセルに関して混合状態を定義することができる。例えば、面積比を用いて混合状態を表す上記の例を拡張することにより、体積比を用いて混合状態を表すことが可能である。
本実施形態では、それぞれが複数の画素を含む複数の領域へと入力画像(及び学習画像)が分割され、この領域内の混合状態が推定された。このような処理によれば、全ての画素のそれぞれについてクラスを推定する場合と比較して、推定処理の回数が少なくなるため、処理の高速化が期待できる。一方、入力画像のそれぞれの画素について混合状態を推定することもできる。すなわち、1つの画素に異なるクラスに属する複数の被写体が写っていることがあり、この1つの画素に対応する被写体領域における、それぞれのクラスの被写体の混合状態を推定することもできる。
本実施形態では、混合状態を示す情報はスカラ値又は複数のスカラ値で構成されるベクトルとして得られた。一方で、混合状態を示す情報は、3つ以上の値から選択される情報でありうる。例えば、所定領域におけるクラス「空」及び「非空」の混合状態を示す情報は、所定領域が「空」で構成されることを示す値、所定領域が「非空」で構成されることを示す値、又は所定領域において「空」及び「非空」が混合されていることを示す値でありうる。このような混合状態を示す情報も、上述の処理例及び後述する実施形態4,5において利用可能である。
[実施形態2]
実施形態1では、学習画像の各画素に対してクラスラベルが設定されていることを前提にして説明した。しかしながら、画素毎にクラスラベルを設定するには時間がかかる。実施形態2では、学習画像に対してクラスラベルを入力するユーザ作業を軽減する方法を説明する。本実施形態においては、学習画像の各領域に対して入力されたクラスラベルに基づいて、データ取得部2100は、画素ごとのクラスラベルを自動的に算出する。
以下、図1(C)を参照して、本実施形態における学習装置の基本的な構成を説明する。本実施形態における画像処理装置の構成は実施形態1と同様であり、説明を省略する。本実施形態において学習データ記憶部5100には、識別画像の他に、識別画像における第1の属性の領域、第2の属性の領域、及び第1の属性の領域と第2の属性の領域とが混在している混在領域を示す情報が格納されている。例えば、学習データ記憶部5100は、学習画像と、学習画像上の各領域に対して付与されたクラスラベルと、を含む学習データが記憶する。ここで、複数のクラスが混在している領域には、混在領域であることを示すクラスラベルが与えられている。
データ取得部2100は、学習データ記憶部5100から学習データを読み込む。すなわち、データ取得部2100は、識別画像の他に、識別画像における第1の属性の領域、第2の属性の領域、及び第1の属性の領域と第2の属性の領域とが混在している混在領域を示す情報を取得する。
詳細化部2300は、第1の属性の領域に含まれる画素の画素値、及び前記第2の属性の領域に含まれる画素の画素値に基づいて、混在領域の各画素の属性を判定する。例えば、詳細化部2300は、混在領域であることを示すクラスラベルが与えられている領域について、混合状態を示す教師情報を算出する。詳細については後述する。学習部2200は、学習画像と混合状態の教師情報とを用いて、実施形態1と同様に推定器の学習を行う。
本実施形態において学習装置が行う処理のフローを、図2(C)に従って説明する。ステップS2100においてデータ取得部2100は、学習データ記憶部5100から、学習画像とクラスラベルデータとを学習データとして読み込む。学習データ記憶部5100には、あらかじめ複数の学習画像とそれぞれについてのクラスラベルデータとが用意されている。
ここで、本実施形態におけるクラスラベルデータについて説明する。図9(A)には学習画像500が示されており、図9(B)には学習画像500についてのクラスラベルデータ400が示されている。この例では、学習画像500は空領域410、非空領域420、及び混在領域430から構成されており、それぞれの領域の画素には「空」、「非空」、及び「混在」がそれぞれクラスラベルとして付されている。このように、学習画像500には、単一クラスの領域と、複数クラスが混在している領域と、が設定されている。
これらのクラスラベルは、ツール等を介して予め人間が入力することができる。例えば作業者は、学習画像の空領域及び非空領域を決定することができる。その際、前景の木の枝が細かく複雑になっている箇所においては、空領域と非空領域とを正確に切り分けることは、作業者に対する大きな作業負荷を要求する。そこで、作業者は、このように複数のクラスが混在している領域に対しては、「混在」というクラスラベルを与えることができる。
ここでは、「空」と「非空」が混在している領域について説明したが、実施形態1で説明したように、クラス定義はこのようなものに限定されない。また、クラスが3クラス以上ある場合には、クラスの組み合わせの数だけ混在領域の種類を定義することができる。例えば、図5に示すように「空」、「植物」、「人工物」の3クラスが定義されている場合には、「空と植物の混在領域」、「空と人工物の混在領域」、「植物と人工物の混在領域」、「空と植物と人工物の混在領域」、の4種類の混在領域クラスを定義できる。以下では、「空」と「非空」の2クラスが定義されている場合を例にして説明する。
ステップS2300において、詳細化部2300は、混在領域に関してクラスラベルの詳細化を行う。具体的には、詳細化部2300は、混在領域の各画素についてクラスラベルを設定する。ここで、詳細化部2300は、第1の属性の領域に含まれる画素の画素値、及び第2の属性の領域に含まれる画素の画素値に基づいて、混在領域の各画素の属性を判定する。例えば、詳細化部2300は、各クラスの色情報を参考に、混在領域のクラスラベルを判定することができる。具体例として、詳細化部2300は、学習画像Inにおける、空領域と非空領域とのそれぞれについて、各画素のRGB値を抽出してRGB色空間にプロットする。混在領域以外の空領域及び非空領域は、学習データに示されている。そして、詳細化部2300は、空領域と非空領域とのそれぞれについて、混合ガウス分布を推定する。すると、混合領域の各画素について、そのRGB値及び空領域の混合ガウス分布に基づいて空領域の尤度を求めることができ、またそのRGB値及び非空領域の混合ガウス分布に基づいて非空領域にある尤度を推定することができる。詳細化部2300は、そして、「空」「非空」のうち尤度が高い方のクラスラベルを画素に割り当てることができる。こうして、詳細化部2300は、混在領域内のクラスラベルを詳細化することができる。図9(C)は、このようにして詳細化されたクラスラベルデータ450を示し、ここには詳細化された空領域460及び非空領域470が表されている。
このようにして詳細化されたクラスラベルデータを基に、詳細化部2300は、識別単位となる識別領域について混合状態を表す教師情報を算出する。識別領域、並びに混合状態を示す教師情報の定義及び算出方法に関しては、実施形態1で詳しく説明したとおりであるため、ここでは詳細な説明は省く。なお、詳細化部2300がクラスラベルの詳細化を行うことは必須ではない。例えば、識別領域内の混在領域にある画素のRGB値分布と、空領域及び非空領域の混合ガウス分布とに基づいて、混在領域における混合状態を推定することが可能であり、これに基づいて識別領域における混合状態を表す教師情報を算出してもよい。
変形例として、学習データにおいて、複数のクラスが混在している領域に対しては混合状態が設定されていてもよい。例えば、作業者は、特定の領域について、「非空領域の割合は30%」というような、クラスの面積比を示す情報を入力することができる。この場合、詳細化部2300は、各画素についてのクラスラベルを推定することなく、識別単位となる識別領域について混合状態を表す教師情報を算出することができる。一方、詳細化部2300は、混合状態を参照して、入力画像の各画素のクラスラベルを推定することもできる。この場合には、後述する実施形態5と同様に、学習データから計算可能な混合状態を表す情報と、推定された各画素の属性に基づいて計算される混合状態を示す情報と、の類似度が大きいほど高くなる評価値を用いて、推定を行うことができる。
[実施形態3]
実施形態1,2では、識別単位となる識別領域は、あらかじめ矩形領域又は小領域として設定されているという前提で説明を行った。一方で、識別領域の大きさや切り方を、さまざまな撮影情報に基づいて変えることができる。例えば、ボケの強い領域では、細かいテクスチャが情報として失われるため、より広い識別領域に対して推定を行うことにより、混合状態の推定精度を向上できる可能性がある。
撮影情報は、撮像装置固有の情報と、撮影された画像固有の情報を含む。撮像装置固有の情報としては、センサのサイズ若しくは許容錯乱円径、及び光学系の明るさ若しくは焦点距離等が挙げられる。撮影された画像固有の情報としては、絞り値、合焦距離、Bv値、RAW画像、露出時間、ゲイン(ISO感度)、ホワイトバランス係数、距離情報、GPS等による位置情報、日時等の時間情報、等が挙げられる。他にも、撮影された画像固有の情報としては、撮影時における、重力センサ値、加速度、地磁気方向、温度、湿度、気圧、又は高度等が挙げられる。また、可視光以外に、赤外光や紫外光の情報を得ることができる撮像系もある。撮像装置の仕様により、得られる撮影情報はそれぞれ異なる。撮影情報は、入力画像の撮影時に入力画像に関連付けて付された情報、入力画像の撮影時における撮像装置の状態を示す情報、又は入力画像の撮影時に撮像装置によって測定された情報でありうる。また、撮影情報は、入力画像の撮影時に撮像装置によって検知された入力画像の特性を表す情報でありうる。また、撮影情報は、入力画像自体のデータとは異なる情報である。
図1(D)に沿って、実施形態3に係る学習装置の基本的な構成を説明する。学習データ記憶部5100には、あらかじめ学習データが記憶されている。本実施形態において学習データは、学習画像と、各学習画像に対応する撮影情報と、学習画像上のさまざまな大きさの領域に対して付与された混合状態の教師情報と、を含む。データ取得部2100は、学習データ記憶部5100から、学習画像、撮影情報、及び教師情報を読み込む。学習部2200は、学習画像と混合状態の教師情報を用いて、混合状態を推定する推定器の学習を行い、得られた推定器を推定器記憶部5200に記憶する。ここで、学習部2200は、第1の領域設定パターンに従って設定された所定領域にある識別画像を用いた学習により第1の推定器を生成し、第2の領域設定パターンに従って設定された所定領域にある識別画像を用いた学習により第2の推定器を生成する。評価部2400は、確認データ記憶部5400から読み込んだ確認データを使って、学習により得られたそれぞれの推定器の推定精度を評価する。そして、評価部2400は、撮影情報と推定精度とに基づいて領域設定器を生成し、設定器記憶部5300に記憶する。
次に図1(E)に沿って、画像処理装置の装置構成の概要を説明する。画像取得部1100は、入力画像と撮影情報とを取得する。領域設定部1400は、撮影情報に応じて、複数の領域設定パターンの中から、対象画像の設定に用いる領域設定パターンを選択する。本実施形態において領域設定部1400は、領域設定器を設定器記憶部5300から読み込み、撮影情報に従って識別単位となる領域を設定する。推定部1200は、推定器を推定器記憶部5200から読み込み、設定された識別単位に従って設定された所定領域にある対象画像について、推定器を使って混合状態を推定する。
本実施形態における処理の詳細な説明を以下に記す。まず、学習時の処理に関して図2D)のフローチャートを参照して説明する。ステップS2100において、データ取得部2100は、学習データ記憶部5100から、学習画像、撮影情報、及び混合状態の教師情報を、学習データとして読み込む。
ステップS2200において、学習部2200は、データ取得部2100が取得した学習画像と混合状態の教師情報とを用いて、混合状態を推定する推定器の学習を行う。上述のように、本実施形態においては複数種類の領域設定パターンのそれぞれに従って識別単位が設定される。すなわち、識別単位となる領域としては、さまざまなものが用意されている。例えば、3×3、9×9、及び15×15の矩形領域など、サイズの異なる複数パターンの識別単位を用意することができる。実施形態1でも説明したように、識別単位は矩形領域には限られない。例えば、実施形態1で説明したように、複数の領域設定パターンとして、領域分割により小領域を設定する際に用いるパラメータを複数用意することができる。
領域設定パターンの違いにより、画像上の同じ位置であっても、混合状態の教師情報は変化しうる。図3(C)には、学習画像の同じ位置にあるさまざまなサイズの矩形領域551、552、及び553が示されている。最も小さい矩形領域551においては、空:非空の面積比はr=1である。一方、矩形領域552及び553は、それぞれ非空領域を含むため、面積比はそれぞれr=0.9及びr=0.8となる。
学習部2200は、それぞれの領域設定パターンに対応する推定器の学習を行う。すなわち、学習部2200は、着目領域設定パターンに従って設定された識別領域と、この識別領域について与えられた教師情報とに基づき、着目領域設定パターンに対応する推定器の学習を行う。この結果、学習部2200は、複数の領域設定パターンのそれぞれに対応する推定器を生成する。例えば、領域設定パターンのインデックスをqとし、領域設定パターンの総数をQとすると、学習によってQ種類の推定器yqを得ることができる。推定器の学習は実施形態1と同様に行うことができる。一例として、それぞれの推定器yqは、回帰関数fq(X)(q=1,……,Q)に従って混合状態の推定を行うことができる。学習により得られた推定器は、推定器記憶部5200に記憶される。
ステップS2300において評価部2400は、ステップS2200で得られた推定器の識別精度を、撮影情報とともに評価し、領域設定器を生成する。例えば、評価部2400は、教師情報及び撮影情報が関連付けられている検証画像を用いて、それぞれの推定器の識別精度を評価することができる。そして、評価部2400は、所定の撮影情報が関連付けられている識別画像の判定を行う際に良好な識別精度が得られるように、特定の撮影情報に対応する推定器を示す情報を生成することができる。
撮影情報の中には、学習画像の画素ごとに得られる情報がある。また、撮影情報の組み合わせにより新たな撮影情報を得ることもできる。例えば、画素位置pにおけるレンズ面から被写体までの距離Z(p)と、光学系の焦点距離fと、が撮影情報として得られた場合、像倍率S(p)を算出することができる。
また、光学系のF値、焦点距離f、撮影時の合焦距離Z
f、及び画素位置pにおける被写体までの距離Z(p)が撮影情報として得られた場合、各画素位置におけるボケ量B(p)を得ることができる。
さらに、RAW画像の各画素位置pにおける値r(p)、g(p)、及びb(p)、露出時間T、ゲインG、並びに絞り量Fが撮影情報として得られた場合、画素位置pにおける入射光量BV(p)の絶対値を得ることができる。
以下、撮影情報として画素位置pにおけるボケ量B(p)を用いて、領域設定器を生成する場合について説明する。もっとも、用いる撮影情報はこれには限定されず、像倍率S(p)又は入射光量BV(p)等の他の撮影情報を用いてもよい。また、複数の撮影情報を組み合わせてもよく、例えばボケ量B(p)と入射光量BV(p)を組み合わせて用いてもよい。
まず、評価部2400は、ボケ量Bを複数のビンに区切り、領域設定パターンqに関するテーブルを生成する。この例では、ボケ量Bが2未満、2以上3未満、3以上4未満、4以上、の4つのビンに区切られている。また、領域設定パターンqとしては3×3、9×9、及び15×15の3種類が用いられており、3×4のテーブルが得られる。
次に、評価部2400は、確認データを確認データ記憶部5400から読み込む。確認データは、学習データと同様、複数の確認画像、それぞれの確認画像についてのクラスラベルデータ、及び撮影情報を含む。ここでは、確認画像の総枚数をNvと表し、v番目の確認画像をIv(v=1,……,Nv)と表す。
評価部2400は、領域設定パターンqのそれぞれに従って、確認画像中の識別単位となる領域iにおける特徴量を抽出し、対応する推定器に入力する。こうして、領域設定パターンqを用いた場合の確認画像Iν中の領域iの混合状態の推定値y
q(X
ν
i)を得ることができる。このとき、混合状態教師情報c
q(ν,i)に対する二乗誤差は下記のように表すことができる。
また、ボケ量Bと領域設定パターンqとの組み合わせに対するビン(B,q)における二乗誤差平均MSE(B,q)は下記のように表される。
ここでδ
B(ν,i)は、確認画像Iνの領域iの中心位置におけるボケ量がビンBの範囲内であるときに1、そうでないときに0を返すものとする。
そして、ビン(B,q)に関する信頼度T(B,q)は、1から二乗平均平方根誤差を減じた値として定義できる。
このようにして、評価部2400は、各ビン(B,q)に対する信頼度T(B,q)のテーブルを得ることができる。こうして得られたテーブルの例を下に示す。評価部2400は、このようにして得られたテーブルを、領域設定器として設定器記憶部5300に記憶する。
本実施形態では、得られたテーブルが領域設定器として設定器記憶部5300に格納された。一方、評価部2400は、信頼度T(B,q)の値を教師情報として、ボケ量Bに対する信頼度Tを回帰値として出力する回帰関数gq(B)を各領域設定パターンqに対して生成し、これを領域設定器として用いてもよい。
このように得られた混合状態推定器及び領域設定器を用いて、入力画像の混合状態を推定する処理について、図2(E)のフローチャートを用いて説明する。ステップS1100において画像取得部1100は、撮像装置により得られた画像データと撮影情報とを取得する。
ステップS1400において領域設定部1400は、設定器記憶部5300から領域設定器を読み込み、撮影情報に従って使用する領域設定パターンを決定する。例えば、領域設定部1400は、下式に従って、入力画像Iの各領域iに対して、撮影情報として得られたボケ量B(i)から得られる信頼度Tが最も大きくなる領域設定パターンq
winを選ぶことができる。なお、ボケ量B(i)は、入力画像Iの領域iの中心位置におけるボケ量を指す。具体的な処理は特に限定されないが、例えば、1つの領域設定パターンに従って入力画像Iを複数の領域に分割し、1つの領域を別の領域設定パターンに従って細分化した方が信頼度が高くなる場合に、この細分化を行うことができる。別の例としては、ボケ量が類似している領域を連結し、それぞれの連結領域についてボケ量に従う領域設定パターンを用いて領域分割を行うことができる。
ステップS1200において、推定部1200は、推定器記憶部5200から推定器を読み込み、入力画像の各位置における混合状態を推定する。具体的には、推定部1200は、各位置pにおいて設定された所定領域の画像の特徴量を抽出し、抽出された特徴量を推定器に入力することにより、この位置pにおける混合状態を推定することができる。ここで、各位置pについての所定領域は、ステップS1400で決定された領域設定パターンqwinに従って設定される。上述のように、本実施形態においては、複数の領域設定パターンのそれぞれに対応する推定器が生成されている。したがって、推定部1200は、ステップS1400で決定された領域設定パターンに従って複数の推定器から選択された推定器を用いることができる。例えば、位置pにおける推定器としてはyqwinが選択され、位置pにおける所定領域の混合状態の推定値は、yqwin(Xi)として得られる。図3(D)は、画像上の位置によって領域設定方法を変えた場合の例を示し、それぞれの矩形が推定器に入力される1つの領域を示す。
ステップS1300に係る処理は実施形態1と同様であるため、説明は省略する。本実施形態のように、撮影情報を利用して混合状態を推定する識別単位となる領域の設定方法を変ることにより、より誤差の少ない混合状態の推定を行うことができる。
[実施形態4]
実施形態1~3では、識別単位となる所定領域における混合状態を推定した。実施形態4では、得られた混合状態の推定結果を用いて、領域を細分化することにより、詳細な領域分割結果を得る方法について説明する。学習装置及び画像処理装置の基本的な構成は実施形態1と同様であり、説明を省略する。
以下、学習時の処理について図2(A)のフローチャートに従って説明する。ステップS2100においてデータ取得部2100は、学習データ記憶部5100から、学習画像と混合状態の教師情報と学習データとして読み込む。
ステップS2200で学習部2200は、実施形態3と同様の処理を行う。すなわち、識別単位としては様々な大きさの領域が用意される。例えば、複数の領域設定パターンのそれぞれに従って、1×1、3×3、9×9、及び15×15等、異なるサイズの矩形領域を複数パターン用意することができる。そして、学習部2200は、それぞれの領域サイズに対応する推定器の学習を、実施形態3と同様にそれぞれの領域サイズについて得られた混合状態の教師情報を用いて行うことができる。すなわち、領域サイズのインデックスをqとし、領域サイズの総数をQとすると、学習によってQ種類の推定器yq(q=1,……,Q)を得る事ができる。一例として、それぞれの推定器yqは、回帰関数fq(X)に従って混合状態の推定を行うことができる。学習により得られた推定器yqは、推定器記憶部5200に書きこまれる。
次に、判定時の処理に関して、図2(F)のフローチャートに従って説明する。ステップS1100において、画像取得部1100は入力画像を取得する。ステップS1200において、推定部1200は、推定器を用いて入力画像中の所定領域における混合状態を推定する。ここで、推定部1200は、複数の領域設定パターンのうちの第1の領域設定パターンを用いて領域設定を行う。すなわち、推定部1200は、第1の領域設定パターンに従う大きさの第1の対象画像について混合状態を判定する。本実施形態において、識別単位としては、Q種類の領域サイズのうち最も大きいサイズが用いられる。前述の例では、識別単位として15×15pixelが選択され、また推定器としては15×15pixelに対応する推定器が用いられる。
そして、推定部1200は、入力画像の第1の部分にある第1の対象画像について推定された混合状態を示す情報に従って、第1の部分の混合状態を再判定するか否かを判定する。例えば、推定部1200は、混合状態の推定を行った所定領域について混合状態の再判定を行うか否かを判定する。例えば、推定部1200は、クラス純度が閾値以上である領域については、このクラス推定結果を採用する。
一方、推定部1200は、クラス純度が閾値よりも低い領域については、この領域について混合状態の再判定を行う。再判定を行うとの判定に応じて、推定部1200は、第1の部分にある、第2の領域設定パターンに従う大きさの第2の対象画像の混合状態を示す情報を出力する。ここで、第2の対象画像は第1の対象画像よりも小さい。すなわち、推定部1200は、クラス純度が閾値よりも低い領域について、より小さい識別単位に従って領域を再分割し、再分割された領域のそれぞれについて、再び推定器を用いて混合状態の推定を行う。推定部1200は、例えば、一段階小さい領域サイズを用いて再分割を行うことができる。上述のように、本実施形態においては、複数の領域設定パターンのそれぞれに対応する推定器が生成されている。したがって、推定部1200は、再分割に用いた領域設定パターンに従って複数の推定器から選択された推定器を用いることができる。
ここで、クラス純度とは、領域内における同一クラスラベルが割り振られている画素の割合を示す。例えば、実施形態1に示した面積比rの値が0.8以上又は0.2以下である場合に、クラス純度が高いと定義することができる。図7に示すマップを用いる場合、p1≧0.9かつp2≦0.8の場合にクラス純度が高いと定義することもできる。
このように、クラス純度が低い領域については細分化及び混合状態の再推定を行うことにより、詳細な領域分割を行うことができる。領域が細分化できなくなるか、すべての領域のクラス純度が閾値以上になると、処理はステップS1300へと進むことができる。ステップS1300における処理は実施形態1と同様であるため、説明は省略する。このようにして得られた詳細な領域分割結果は、領域別のトーンマッピング又はホワイトバランス調整等の高画質化処理に利用することができる。
[実施形態5]
実施形態4では、識別単位を細分化していくことによって詳細な領域分割結果を算出したが、領域分割の方法はこの方法には限定されない。実施形態5では、各領域についての混合状態の推定結果を利用して、画素単位のクラス判定を行うことにより、詳細な領域分割結果を得る方法について説明する。
本実施形態に係る画像処理装置の基本構成を図1(F)に示す。画像取得部1100及び推定部1200の機能は実施形態1と同様であるため説明を省略する。判定部1500は、対象画像の各画素の属性を判定する。判定部1500は、評価値に基づいて各画素の属性を決定し、この評価値が示す評価は、各画素の属性に基づいて計算される混合状態を示す情報と、推定部1200により得られた混合状態を示す情報と、の類似度が大きいほど高くなる。本実施形態においては、判定部1500は、混合状態推定結果及び画像情報に基づいて、入力画像の各画素のクラスラベルを推定する。出力部1300は、入力画像の各画素について推定されたクラスラベルを示す情報を出力する。
本実施形態に係る判定処理の詳細を図2(G)に従って説明する。ステップS1100及びS1200における処理は、実施形態1と同様であるため説明を省略する。ステップS1500において判定部1500は、ステップS1200にて推定された各領域の混合状態を利用して、入力画像の各画素についてクラスを推定する。例えば、推定された各画素のクラスに従って求められる混合状態が、ステップS1200にて推定された混合状態に近くなるように、各画素のクラスの推定を行うことができる。各画素のクラスの推定には、さらに各画素の色情報を用いて、例えば同じクラスに属する画素の色が類似するように、又は異なるクラスに属する画素の色が類似しないように、行うことができる。
入力画像の各画素のクラスを推定する方法の一例として、CRF(Conditional Random Field、条件付き確率場)のような繰り返し処理を利用する場合について以下説明する。CRFは、複数のノードからなるグラフに対して、対となるノード間の類似度によるpairwise potentialと、各ノードの持つunary potentialを考慮して、各ノードの状態を安定した状態まで逐次推移させていく方法である。画像の画素判別にCRFを使う場合は、各ノードが画像の各画素に対応するCRFモデルを使うことができる。
入力画像I上の画素iのクラスラベルciの条件付き確率は、下式で表すことができる。
ここで、右辺第一項のψはunary potential、右辺第二項のφはpairwise potentialを表す。θ
ψ及びθ
φはそれぞれのパラメータであり、後述する学習処理において算出される。ε
iは、画素iの近傍画素の集合である。g
ijは画素iと画素jとの相互関係を表す関数であり、Zは正規化項である。判定部1500は、このモデル式に従って各画素のクラスラベルを更新していくことによって、画像全体のポテンシャルが高い状態へと判定結果を収束させていく。
pairwise potentialは下式で表すことができる。
ここで、x
i及びx
jはそれぞれ画素i及び画素jの色情報であり、RGB値を持つ3次元ベクトルで表わされる。βはユーザの定義するハイパーパラメータであって、β=1などと設定することができる。このように、pairwise potentialは、時刻tにおいて違うクラスに属する画素の色が類似する場合に評価が低くなるように設定することができる。
unary potentialは下記で表すことができる。
ここでy
c(X
i)は、画素位置iにおけるクラスcに関する混合状態推定値である。y
c(X
i)は、画素位置iが含まれる所定領域について推定部1200が推定した混合状態に基づいて算出することができ、例えば所定領域内における、クラスcの面積比、エッジ画素率、又はクラスラベル配置パターン等でありうる。このように、unary potentialは、時刻tにおいて各画素の属性に基づいて計算される混合状態と、推定部1200により得られた混合状態と、の類似度が大きいほど評価が高くなる。
Li
c(t)は、CRFに従って画素単位のクラスラベルが遷移していったときの、時刻tにおける、画素iが含まれる所定領域のクラスcの混合状態である。Li
c(t)は、推定部1200が推定する混合状態と同種の情報であり、推定部1200が時刻tにおいて所定領域内の各画素について推定されているクラスを参照して算出できる。実施形態1で説明した混合状態の例に従って、以下に具体的な例を挙げる。例えば、遷移途中の時刻tにおいて、画素iが含まれる所定領域内におけるクラスラベルcが割り当てられている画素をカウントすることにより、クラスcの面積比r(t)を求めることができる。また、所定領域内におけるクラスラベルの配置に従ってエッジ画素を抽出してカウントすることにより、エッジ画素率e(t)を求めることができる。さらに、所定領域内におけるクラスラベルの配置を、図7に示されるマップのどれに最も近いかを判定することにより、クラスラベル配置パターンp(t)を求めることができる。実施形態1で説明したように、Li
c(t)は、これら時刻tにおける混合状態の組み合わせによって表すこともできる。
このように、推移中の時刻tにおける画素レベルでのクラスラベル配置に基づいて決定された時刻tにおける所定領域内の混合状態と、所定領域についての混合状態推定値と、の類似度を、unary potentialとして表現することができる。具体的には、時刻tにおける所定領域内の混合状態と、所定領域についての混合状態推定値と、の類似度が大きいほど評価が高くなるように、unary potentialを表現することができる。
本実施形態における学習処理について、図2(A)に従って説明する。ステップS2100でデータ取得部2100は、学習画像と教師データとを取得する。ステップS2200で学習部2200は、実施形態1と同様に推定器の学習を行う。また、学習部2200は、入力画像の各画素のクラスを推定する際に用いるパラメータ(例えば上述のθ
ψ及びθ
φ)の値を決定する。学習部2200は、複数の学習画像と、学習画像の各画素のクラスを示すクラスラベルのデータを用いて、この処理を行うことができる。クラスラベルのデータとしては、例えば、実施形態2に従って図9(C)のように作成されたものを用いることができる。本実施形態において学習部2200は、全学習画像に対するポテンシャルが最大となるようにθ
ψ及びθ
φの値を算出することができる。すなわち、下式をそれぞれ最大化するθ
ψとθ
φの値を、勾配法等によって求めることができる。
学習部2200は、得られたパラメータを、推定器とともに推定器記憶部5200に格納する。本実施形態ではθψ及びθφの値が推定器記憶部5200に記憶され、判定部1500によって上述のように用いられる。こうして得られた画素ごとのクラスラベルのデータは、実施形態4と同様にして、領域ごとに高画質化処理を行う場合等に利用することができる。
混合状態の推定結果を利用して画素単位のクラス判定を行う方法は、上記の方法には限定されない。例えば、実施形態2と同様に、クラスが確定している領域を用いて求められた各クラスの混合ガウス分布と、上記の混合状態の類似度と、に基づいて、画素単位のクラス判定を行うこともできる。
本実施形態に係る処理は、混合状態として、面積比、エッジ画素率、及びクラスラベル配置パターンのいずれを用いても可能であるし、利用可能な混合状態がこれらに限られるわけでもない。また、複数の表現を組み合わせて表現された混合状態を用いることにより、判定精度を向上させることができる。例えば、面積比に加えてエッジ画素率を用いることにより、建物と空との境界のように輪郭が単純な場合と、枝と空との境界のように輪郭が複雑な場合と、を区別することが可能となる。
本実施形態において、混合状態を示す情報は推定部1200の処理により得られた。しかしながら、判定部1500は、異なる方法により得られた混合状態を示す情報を取得し、同様の方法で各画素の属性を判定することもできる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。