(57)【特許請求の範囲】
【請求項１】
各正則化項がそれぞれ異なる特定の方向の復元画像の画素値の変化を抑えるように動作することを特徴とする複数の正則化項と、復元画像を予め仮定した劣化過程に従って仮想的に劣化させた画像と入力画像との差が小さいほど小さな値をとることを特徴とする誤差項とから構成される最適化関数に基づいて復元画像を生成する劣化復元システムであって、
入力画像中の画素とその周辺画素との間の画素値の変化の最も大きい方向と、当該画素と周辺画素との間の画素値の変化の大きさを画素毎に算出し、前記変化の最も大きい方向を画素毎に示す方向単位ベクトルと、前記各画素について周辺画素との間の最も大きい変化の大きさを当該画素毎に表す変化ベクトルとを算出する変化算出部と、
各正則化項が画素値の変化を抑える方向と前記変化算出部にて算出された方向単位ベクトルが示す画素値の変化の方向とが一致しており、画素値の変化の大きさが大きいほど正則化強度が小さくなる、画素毎の正則化強度を、前記方向単位ベクトルと前記変化ベクトルと正則化強度算出式を用いて算出する正則化強度算出部と、
前記入力画像と、前記入力画像の各画素についての正則化強度とから最適化関数を決定し、当該決定した最適化関数の値が最小となる当該各画素についての値により、当該各画素についての値を有する復元画像を生成する画像復元部と、
を備えたことを特徴とする劣化復元システム。
【請求項２】
前記正則化項が、それぞれの異なる特定の方向の復元画像の画素値の変化を抑えるように動作することに加え、それぞれの異なるスケール間の復元画像の画素値の変化を抑えるように動作する正則化項であって、
前記変化算出部が、複数の異なるスケールにおける当該画素とその周辺画素との間の画素値の変化の大きさを画素毎に算出することを特徴とし、
前記正則化強度算出部が、各正則化項が画素値の変化を抑える方向と前記変化算出部にて算出された方向単位ベクトルが示す画素値の変化の方向とが一致しており、画素値の変化の大きさが大きいほど正則化強度が小さくなることに加え、さらに前記変化算出部にて定められたスケールが大きくなるほど正則化強度が小さくなる
ことを特徴とする請求項１記載の劣化復元システム。
【請求項３】
前記入力画像の各画素を所定の複数のカテゴリーに分類するカテゴリー分類部を備え、
前記正則化強度算出部が、前記カテゴリー分類部にて分類されたカテゴリーに応じて、前記変化算出部にて算出された方向が示す画素値の変化の方向において、画素値の変化の大きさが大きいほど正則化強度が小さくなるような、画素毎の正則化強度を適応的に算出する
ことを特徴とする請求項１または請求項２記載の劣化復元システム。
【請求項４】
前記カテゴリー分類部が、前記入力画像の各画素を所定の複数のカテゴリーに分類するとともに、カテゴリー分類された結果の信頼度を算出し、
前記カテゴリー分類部にて算出された信頼度から、前記復元画像と前記入力画像との合成比率を算出する合成比率算出部と、
前記画像入力部にて入力された入力画像と、前記画像復元部にて復元された復元画像と、前記合成比率算出部にて算出された合成比率とから、信頼度が高い領域のみ復元画像に近くなる合成画像を生成する合成画像生成部と
を備えたことを特徴とする請求項３記載の劣化復元システム。
【請求項５】
複数の項を含む正則化項と誤差項とから構成される最適化関数に基づいて復元画像を生成する劣化復元システムの劣化復元方法であって、
変化算出部が、入力画像中の画素とその周辺画素との間の画素値の変化の最も大きい方向と、当該画素と周辺画素との間の画素値の変化の大きさを画素毎に算出し、前記変化の最も大きい方向を画素毎に示す方向単位ベクトルと、前記各画素について周辺画素との間の最も大きい変化の大きさを当該画素毎に表す変化ベクトルとを算出し、
正則化強度算出部が、前記変化算出部にて算出された方向単位ベクトルが示す画素値の変化の方向において、画素値の変化の大きさが大きいほど正則化強度が小さくなる、画素毎の正則化強度を、前記方向単位ベクトルと前記変化ベクトルと正則化強度算出式を用いて算出し、
画像復元部が、前記入力画像と、前記入力画像の各画素についての正則化強度とから最適化関数を決定し、当該決定した最適化関数の値が最小となる当該各画素についての値により、当該各画素についての値を有する復元画像を生成する
ことを特徴とする劣化復元方法。
【請求項６】
複数の項を含む正則化項と誤差項とから構成される最適化関数に基づいて復元画像を生成する劣化復元システムのコンピュータに、
入力画像中の画素とその周辺画素との間の画素値の変化の最も大きい方向と、当該画素と周辺画素との間の画素値の変化の大きさを画素毎に算出し、前記変化の最も大きい方向を画素毎に示す方向単位ベクトルと、前記各画素について周辺画素との間の最も大きい変化の大きさを当該画素毎に表す変化ベクトルとを算出する変化算出処理と、
前記変化算出処理にて算出された方向単位ベクトルが示す画素値の変化の方向において、画素値の変化の大きさが大きいほど正則化強度が小さくなる、画素毎の正則化強度を、前記方向単位ベクトルと前記変化ベクトルと正則化強度算出式を用いて算出する正則化強度算出処理と、
前記入力画像と、前記入力画像の各画素についての正則化強度とから最適化関数を決定し、当該決定した最適化関数の値が最小となる当該各画素についての値により、当該各画素についての値を有する復元画像を生成する画像復元処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、劣化復元システム、劣化復元方法およびプログラムに関し、特に低解像画像から高解像画像を復元する際に用いて好適な劣化復元システム、劣化復元方法およびプログラムに関する。
本願は、２０１１年７月２１日に出願された特願２０１１−１５９５６４号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
ぼかし、ノイズ、低解像度化等によって劣化した劣化画像を復元するために、通常、復元画像に対してブラー（ぼかし効果）などの劣化過程をシミュレートした画像を生成し、当該シミュレートした画像と、劣化画像（入力画像）との差を考え、これを最小化させ、復元画像を生成することが行われる。しかし、そのような復元画像の候補となる解（画素値）は無数にあり、解を一意に決定することができない。解を一意に決定するためには、正則化によって解を拘束する必要がある。例えば、復元画像の隣接画素間の画素値の変化を抑えるような正則化により、解を一意に決定する。【０００３】
特許文献１では、入力画像を構成する画素についての隣接画素間の画素値の差分量が大きい場合に、復元画像でも対応する隣接画素間の画素値の差分量が大きくなるように解を拘束する方法が開示されている（特許文献１の段落［００３０］など参照）。【０００４】
具体的には、まず入力画像を構成する画素についての隣接画素間の画素値の差分量が大きい場合に、正則化の強さ（以下、正則化強度）が小さくなるように画素毎に適応的に正則化強度を決定し、次に決定された正則化強度をもとに構成される以下の最適化関数Ｅ（〔Ｘ〕）を決定し、この最適化関数Ｅ（〔Ｘ〕）の値が最小となる引数を探索する。そして引数で与えられる画素値の復元画像を生成する。なお、本願では、ベクトル変数をかっこ“〔  〕”で囲って記すか、または、太字（ボールド）で表すこととする。例えば、変数〔Ｘ〕と下式の太字の変数Ｘとは同一のベクトル変数である。【０００５】
【数１】
0005928465.tif 000002
【０００６】
ただし、ここで〔Ｘ〕は、各画素の画素値をラスタスキャン順に並べた縦ベクトルであり、例えば復元画像の画素数がＭである場合、〔Ｘ〕＝（Ｘ１，・・・，Ｘｉ，・・・，ＸＭ）ｔとなる。
Ｅｄａｔａ（〔Ｘ〕）は誤差項と呼ばれ、入力画像と復元画像との関係を表す項である。
Ｅｒｅｇ（〔Ｘ〕）は正則化項と呼ばれ、最適化関数により算出される画素の値を制限する項である。
特許文献１では、隣接画素間の画素値の差分量が一様に小さくなるように最適化関数により算出される画素の値を制限するために、正則化項Ｅｒｅｇ（〔Ｘ〕）として、以下に表される関数を使用している（特許文献１の段落［００６７］〜［００６８］参照）。【０００７】
【数２】
0005928465.tif 000003
【０００８】
ただし、Ｘｉ＋１、Ｘｉ−１、Ｘｉ＋ｗｉｄｔｈ、Ｘｉ−ｗｉｄｔｈはそれぞれ、ｉ番目の画素の上下左右の画素の画素値を表している。また、ｇｉは正則化強度である。
正則化強度ｇｉを画素毎に適応的に決定することで、原画像に存在していた輪郭（エッジ）など、隣接画素間の画素値の差分量が大きい領域の画像の鮮明さ（画素値の差分量）を維持しながら劣化復元を行うことが可能になる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−０６８０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載されている方法は、入力画像における画素の画素値の強弱が大きい境を示す輪郭（エッジ）の方向を維持しながら劣化復元を行うことができないという問題がある。その理由は、特許文献１に記載されている方法は、入力画像中の画素値の変化の方向が考慮されていない正則化項を用いて復元を行っているためである。
すなわち、原画像の隣接画素間の画素値の差分量が大きい場合、復元画像でも対応する隣接画素間の画素値の差分量が大きくなるように解を拘束しているが、その際に、どの方向に画素値の差分量が大きくなるようにするべきかについて考慮されていない。【００１１】
本発明の目的は、上述の課題を解決することのできる劣化復元システム、劣化復元方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、
・各正則化項がそれぞれ異なる特定の方向の復元画像の画素値の変化を抑えるように動作することを特徴とする複数の項を含む正則化項と復元画像を予め仮定した劣化過程に従って仮想的に劣化させた画像と入力画像との差が小さいほど小さな値をとることを特徴とする誤差項とから構成される最適化関数に基づいて復元画像を生成する劣化復元システムであって、
・入力画像中の画素とその周辺画素との間の画素値の変化の最も大きい方向と、当該画素と周辺画素との間の画素値の変化の大きさを画素毎に算出し、前記変化の最も大きい方向を画素毎に示す方向単位ベクトルと、前記各画素について周辺の画素との間の最も大きい変化の大きさを当該画素毎に表す変化ベクトルとを算出する変化算出部
・当該正則化項が画素値の変化を抑える方向と前記変化算出部にて算出された方向単位ベクトルが示す画素値の変化の方向とが一致しており、かつ画素値の変化の大きさが大きいほど正則化強度が小さくなるような正則化強度を、前記方向単位ベクトルと前記変化ベクトルと正則化強度算出式を用いて画素毎に算出する正則化強度算出部
・前記入力画像と、前記入力画像の各画素についての正則化強度とから最適化関数を決定し、当該決定した最適化関数の値が最小となる当該各画素についての値により、当該各画素についての値を有する復元画像を生成する画像復元部
と、を備えた劣化復元システムを提供する。
【発明の効果】
【００１３】
本発明によれば、入力画像に存在する異なる物体や異なる図柄等、画像中の異なる領域であると認識できる境界を示す輪郭（エッジ）が明確となるような画像を維持した復元画像の生成を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】図１に示す第１の実施形態の動作を示す流れ図である。
【図３】本発明の第２の実施形態の構成を示すブロック図である。
【図４】図３に示す第２の実施形態の動作を示す流れ図である。
【図５】本発明の第３の実施形態の構成を示すブロック図である。
【図６】図５に示す第３の実施形態の動作を示す流れ図である。
【発明を実施するための形態】
【００１５】
次に、本発明を実施するための形態について図面を参照して詳細に説明する。
【００１６】
［第１の実施形態］
図１を参照すると、本発明の第１の実施形態による画像処理システムは、プログラム制御によって動作するコンピュータ１００（中央処理装置、プロセッサ、データ処理装置などでも良い）と、画像入力部１１０と、画像出力部１２０とから構成されている。
コンピュータ１００は、変化算出部１０１と、正則化強度算出部１０２と、画像復元部１０３とを含む。これらの各部１０１〜１０３は、コンピュータ１００内で所定のプログラムを実行することでそれぞれ動作する。これらの部はそれぞれ概略次のように動作する。
【００１７】
画像入力部１１０には、カメラやスキャナなどによって得られた画像が入力される。そして、画像入力部１１０は、入力された画像をメモリ（図示せず）等に記録する。
ここで、画像入力部１１０にて入力された画像の各画素の画素値をラスタスキャン順に並べた縦ベクトル〔Ｙ〕により表すこととする。また、当該ベクトルを入力画像ベクトル〔Ｙ〕と呼ぶこととする。
例えば、入力された画像の画素数がＭである場合、入力画像ベクトル〔Ｙ〕＝（Ｙ１，・・・，Ｙｉ，・・・，ＹＭ）ｔとなる。ここで、上付きの「ｔ」は転置行列を意味する。
【００１８】
また、復元画像についても入力画像と同様に、各画素の画素値をラスタスキャン順に並べた縦ベクトルにより表すこととする。また当該ベクトルを復元画像ベクトル〔Ｘ〕と呼ぶこととする。
例えば、復元画像の画素数がＭ’である場合、復元画像ベクトル〔Ｘ〕＝（Ｘ１，・・・，Ｘｉ，・・・，ＸＭ’）ｔとなる。
以下では、入力画像と復元画像の画素数が等しい場合（すなわちＭ＝Ｍ’の場合）について述べるが、本発明はこれに限定されない。
【００１９】
変化算出部１０１は、入力画像中の画素とその周辺画素との間の画素値の変化の最も大きい方向と、入力画像中の当該画素と周辺画素との間の画素値の変化の大きさを画素毎に算出し、その値をメモリ（図示せず）に記録する。
以下では、ｉ番目の画素における周辺画素との間の最も大きい変化の大きさをｄＹｉと表し、これらをラスタスキャン順に並べた縦ベクトルを〔ｄＹ〕＝（ｄＹ１，・・・，ｄＹｉ，・・・，ｄＹＭ）ｔと表記する。また、当該ベクトルを変化ベクトルと呼ぶこととする。
また、ｉ番目の画素における変化の方向を単位ベクトル〔Ｎ〕ｉ＝（Ｎｘｉ、Ｎｙｉ）として表し、これらをラスタスキャン順に縦に並べてできたＭ×２行列を〔Ｎ〕とする。
以下では、変化ベクトル〔ｄＹ〕及び方向単位ベクトル〔Ｎ〕を算出する方法の詳細について説明する。
【００２０】
まず、変化ベクトル〔ｄＹ〕を算出する方法について説明する。
変化ベクトル〔ｄＹ〕は、ソーベルフィルタやプレヴィットフィルタ或いは、ラプラシアンフィルタなどのフィルタを入力画像に積和演算した画像の画素値の絶対値が大きいほど、大きな値をとるように定めればよい。以下では、ソーベルフィルタを用いた場合を例にとって説明する。
ｘ方向及びｙ方向のソーベルフィルタを入力画像に積和演算して得られた画像の各画素の画素値を、ラスタスキャン順に並べた縦ベクトルを、それぞれｘ方向変化ベクトル〔Ｙｘ〕、ｙ方向変化ベクトル〔Ｙｙ〕と表す。
例えば、入力された画像の画素数がＭである場合、ｘ方向変化ベクトル〔Ｙｘ〕＝（Ｙｘ１，・・・，Ｙｘｉ，・・・，ＹｘＭ）ｔ及びｙ方向変化ベクトル〔Ｙｙ〕＝（Ｙｙ１，・・・，Ｙｙｉ，・・・，ＹｙＭ）ｔと表すことができる。
このとき、画素ｉにおける画素値の変化の大きさｄＹｉは、ＹｘｉおよびＹｙｉを用いて以下のように定める。
【００２１】
【数３】
0005928465.tif 000004
【００２２】
一方、画素値の変化の方向を算出する方法としては、既に算出したｘ方向及びｙ方向への画素値の変化の大きさから、どの方向に最も画素値が変化しているかを算出する。
例えば、ｉ番目の画素の画素値の変化の方向は、ｉ番目の画素の画素値の変化の大きさＹｘｉ、Ｙｙｉ及びｄＹｉを用いて、変化の方向を表す方向単位ベクトル〔Ｎ〕ｉ＝（Ｎｘｉ、Ｎｙｉ）を、以下のように算出する。
【００２３】
【数４】
0005928465.tif 000005
【００２４】
変化算出部１０１は、算出された変化ベクトル〔ｄＹ〕及び方向単位ベクトル〔Ｎ〕をメモリ（図示せず）に記録する。
【００２５】
以上の説明では、変化算出部１０１が入力画像中の画素値の変化の方向と大きさを画素毎に算出する場合について説明したが、本実施形態はこれに限定されない。
例えば、変化算出部１０１は、エッジセグメント及び、より大きなスケールで（すなわち複数の画素を単位として）の画素値の変化の大きさと方向を算出し、それらをメモリ（図示せず）に記録してもよい。
【００２６】
エッジセグメントを検出する方法としては、例えば次のような手法がある。
まずエッジセグメントが存在する画素を１、存在しない画素を０とした値を持つマスク画像の各画素の値をラスタスキャン順に並べて縦ベクトル〔Ｅ〕＝（Ｅ１，・・・，Ｅｉ，・・・，ＥＭ）ｔを生成する。そして、この縦ベクトル〔Ｅ〕＝（Ｅ１，・・・，Ｅｉ，・・・，ＥＭ）ｔの情報を、メモリ（図示せず）に記録する。
或いは、上述のマスク画像にガウシアンフィルタを積和演算した画像の各画素の値をラスタスキャン順に並べて縦ベクトル〔Ｅ〕を生成し、これをメモリ（図示せず）に記録してもよい。
また、エッジセグメントを検出するのに、Ｃａｎｎｙ（キャニー）エッジ検出アルゴリズムなどを用いても良い。
画素ｉにおける大きなスケールでの画素値の変化と方向を算出するためには、例えば、ｉ番目の画素及びその周辺の画素値の変化の大きさ及び方向におけるそれぞれの平均値ｄｙｉ及び〔ｎ〕ｉ＝（ｎｘｉ、ｎｙｉ）を算出する。そして、各画素におけるこれらの値をラスタスキャン順に並べた縦ベクトル〔ｄｙ〕及び行列〔ｎ〕を生成し、これをメモリ（図示せず）に記録すればよい。
【００２７】
以上の説明では、変化算出部１０１が、エッジセグメント及び、より大きなスケールでの画素値の変化の大きさと方向を算出する場合を説明したが、本実施形態はこれに限定されない。
例えば、変化算出部１０１は、複数の異なるスケールでの画素値の変化の大きさと方向を算出し、それらをメモリ（図示せず）に記録してもよい。
【００２８】
具体例として、Ｌ種類の異なるスケールでの画素値の変化の大きさと方向を算出する場合について述べる。以下では、スケールは、画素間の距離を用いて表現するが、本発明はこれに限定されない。
Ｌ個の異なるスケールは、異なる距離を並べたベクトル〔Ｒ〕＝（Ｒ１，・・・，Ｒｌ，・・・，ＲＬ）により表す。例えば、Ｌ個のスケールのうちｌ番目に小さいスケールは、Ｒｌとなる。以下では、ｌ番目に小さいスケールにおける画素値の変化の大きさと方向を算出する方法について説明する。
まず、ｘ方向及びｙ方向のソーベルフィルタをＲｌ倍に補間拡大する。次に、補間拡大したフィルタを入力画像に積和演算した画像を生成する。この時、各画素の画素値を、ラスタスキャン順に並べた縦ベクトルを、それぞれｘ方向変化ベクトル〔ｙｘｌ〕、ｙ方向変化ベクトル〔ｙｙｌ〕と表す。
例えば、入力された画像の画素数がＭである場合、ｘ方向変化ベクトル〔ｙｘｌ〕＝（ｙｘｌ１，・・・，ｙｘｌｉ，・・・，ｙｘｌＭ）ｔ及びｙ方向変化ベクトル〔ｙｙｌ〕＝（ｙｙｌ１，・・・，ｙｙｌｉ，・・・，ｙｙｌＭ）ｔと表す。
このとき、画素ｉにおける画素値の変化の大きさｄｙｌｉは、ｙｘｌｉおよびｙｙｌｉを用いて以下のように定める。
【００２９】
【数５】
0005928465.tif 000006
【００３０】
そして、各画素におけるこれらの値ｄｙｌｉをラスタスキャン順に並べた縦ベクトルを〔ｄｙｌ〕を生成し、これをメモリ（図示せず）に記録すればよい。
【００３１】
一方、画素値の変化の方向を算出する方法としては、既に算出したｘ方向及びｙ方向への画素値の変化の大きさから、どの方向に最も画素値が変化しているかを算出することで決定する。
例えば、ｉ番目の画素の画素値の変化の方向は、ｉ番目の画素の画素値の変化の大きさｙｘｌｉ、ｙｙｌｉ及びｄｙｌｉを用いて、変化の方向を表す方向単位ベクトル〔ｎ〕ｌｉ＝（ｎｘｌｉ、ｎｙｌｉ）を、、以下のように算出する。
【００３２】
【数６】
0005928465.tif 000007
【００３３】
そして算出した結果をメモリ（図示せず）に記録すればよい。
なお、Ｌ種類の異なるスケールでの画素値の変化の大きさと方向を算出する方法は、これに限定されない。
例えば、ｉ番目の画素におけるｌ番目に小さいスケールの画素値の変化の大きさと方向を、ｉ番目の画素との距離がＲｌ以下である画素全ての、画素値の変化の大きさ及び方向のそれぞれの平均値としてもよい。
【００３４】
次に、正則化強度算出部１０２の動作について述べる。
後述するように、本発明では、複数の正則化項を用いる。各々の正則化項は、それぞれ異なる特定の方向に対して画素値の変化が小さくなるように、復元画像の周辺画素間の画素値の変化を抑えるためのものである。
例えば、ある正則化項は、ｘ方向に対して画素値の変化が小さくなるように周辺画素間の画素値の変化を抑えるために、画像復元手段によって用いられる値である。また、別の正規化項は、ｙ方向に対して画素値の変化が小さくなるように周辺画素間の画素値の変化を抑えるために、画像復元手段によって用いられる値である。
正則化強度算出部１０２は、この各正則化項の強さ（すなわち、正則化強度）を、変化算出部１０１にて算出された方向単位ベクトルが示す画素値の変化の方向と当該する正則化項により画素値の変化が抑られる方向が同一であり、かつ画素値の変化の大きさが大きいほど正則化強度が小さくなるように、画素毎に算出し、その値を記録する。
以下では、正則化項の種類がＫ個、入力された画像の画素数がＭである場合、ｉ番目の画素に適用するｋ番目（ｋ＝１，・・・，ｋ，・・・，Ｋ）の正則化項の正則化強度をＷｋｉと表し、各画素の正則化強度をラスタスキャン順に並べた縦ベクトル（正則化強度ベクトル）を〔Ｗ〕ｋ＝（Ｗｋ１，・・・，Ｗｋｉ，・・・，ＷｋＭ）ｔと表す。
【００３５】
変化算出部１０１が、画素値の変化の大きさ及び変化の方向のみを算出している場合には、ｉ番目の画素の正則化強度Ｗｋｉは、画素値の変化の大きさｄＹｉ及び変化の方向〔Ｎ〕ｉを用いて、例えば以下のように定めればよい。
【００３６】
【数７】
0005928465.tif 000008
【００３７】
ただし、ここで、λ、α、βは利用者によって予め定められた定数である。
ｆ（ｄＹｉ）は０より大きな値をとり、ｉ番目の画素における変化の大きさｄＹｉの値が大きくなるほど小さい値をとる関数である。例えば、ｆ（ｄＹｉ）としては以下のようなものを用いればよい。
【００３８】
【数８】
0005928465.tif 000009
【００３９】
ここで、σ（・）は、入力値（引数）が１より大きい場合には１を、それ以外の場合には入力値を出力する関数であり、Ｄは予め利用者によって与えられた定数である。
ｇ（ｄＹｉ，〔Ｎ〕ｉ）も、ｆ（ｄＹｉ）と同様に、０より大きな値をとり、ｉ番目の画素における変化の大きさｄＹｉが大きくなるほど小さな値をもつ関数である。
さらに、ｇ（ｄＹｉ，〔Ｎ〕ｉ）は、ｋ番目の正則化項により周辺画素間の画素値の変化を抑えるようにする方向と、ｉ番目の画素における変化の方向〔Ｎ〕ｉが一致しているほど小さな値をとることを特徴とする関数である。
例えばｋ番目の正則化項により、ｘ方向に対する周辺画素間の画素値の変化を抑えるようにする場合には、ｇ（ｄＹｉ、〔Ｎ〕ｉ）として以下のようなものを用いればよい。
【００４０】
【数９】
0005928465.tif 000010
【００４１】
より一般に、単位ベクトル〔ｓ〕＝（ｓｘ、ｓｙ）で表される方向（例えば、ｘ方向は〔ｓ〕＝（１，０）と表される）に対する周辺画素間の画素値の変化を抑えるようにする場合には、ｇ（ｄＹｉ、〔Ｎ〕ｉ）として以下のようなものを用いればよい。
【００４２】
【数１０】
0005928465.tif 000011
【００４３】
変化算出部１０１が算出した画素値の変化の大きさ及び方向に加え、より大きなスケールでの画素値の変化の大きさと方向及びエッジセグメントの有無を表すベクトルを算出している場合には、ｉ番目の画素の正則化強度Ｗｋｉは、ｄＹｉ、〔Ｎ〕ｉ、〔ｎ〕ｉ、ｄｙｉ、及びＥｉを用いて、例えば以下のように定めればよい。
【００４４】
【数１１】
0005928465.tif 000012
【００４５】
ただし、ここで、λ、α、β、γは利用者によって予め定められた定数である。
ｆ（ｄＹｉ）は［式８］と同様に０より大きな値をとり、ｄＹｉの値が大きくなるほど小さい値をとる関数である。
ｇ（ｄｙｉ、〔ｎ〕ｉ）は、［式９］と同様に０より大きな値をとり、ｄｙｉが大きくなるほど小さな値をもつ関数である。
さらに、ｇ（ｄｙｉ、〔ｎ〕ｉ）は、ｋ番目の正則化項により周辺画素間の画素値の変化を抑えるようにする方向と〔ｎ〕ｉが一致しているほど小さな値をとることを特徴とする関数である。
例えば、ｋ番目の正則化項により、ｘ方向に対する周辺画素間の画素値の変化を抑えるようにする場合には、ｇ（ｄｙｉ、〔ｎ〕ｉ）としては、以下のようなものを用いればよい。
【００４６】
【数１２】
0005928465.tif 000013
【００４７】
なお、上述の［式１１］において、ｈ（ｄＹｉ、〔Ｎ〕ｉ、Ｅｉ）は、ｉ番目の画素における変化の大きさｄＹｉが大きくなるほど小さな値をもち、ｋ番目の正則化強度により周辺画素間の画素値の変化を抑えるようにする方向とｉ番目の画素における変化の方向〔Ｎ〕ｉが一致しているほど小さな値をとり、上述したマスク画像における画素ｉの値Ｅｉが大きくなるほど小さな値をもつ関数である。
例えば、ｋ番目の正則化項により、ｘ方向に対する周辺画素間の画素値の変化を抑えるようにする場合には、ｈ（ｄＹｉ、〔Ｎ〕ｉ、Ｅｉ）として以下のものを用いればよい。
【００４８】
【数１３】
0005928465.tif 000014
【００４９】
変化算出部１０１が、複数の異なるスケールでの画素値の変化の大きさと方向を算出している場合、ｋ番目の正則化項のｉ番目の画素の正則化強度はＷｋｉで表される。ｋ番目の正則化項が、単位ベクトル〔ｓ〕＝（ｓｘ、ｓｙ）で表される方向の、距離Ｒｌだけ離れた画素間の画素値の変化を抑えるように働く場合、正則化強度Ｗｋｉは、例えば以下のように定めればよい。
【００５０】
【数１４】
0005928465.tif 000015
【００５１】
ただし、ここで、λ、α、βは利用者によって予め定められた定数である。
ｆ（ｄｙｌｉ，Ｒｌ）は０より大きな値をとり、ｉ番目の画素における変化の大きさｄｙｌｉの値が大きくなるほど小さい値をとる関数である。さらに、ｌ番目のスケールＲｌが大きいほど小さい値をとる関数である。
例えば、ｆ（ｄｙｌｉ，Ｒｌ）としては以下のようなものを用いればよい。
【００５２】
【数１５】
0005928465.tif 000016
【００５３】
ここで、φ（・）は、減少関数である。
σ（・）は、入力値が１より大きい場合には１を、それ以外の場合には入力値を出力する関数であり、Ｄは予め利用者によって与えられた定数である。
ｇ（ｄｙｌｉ，〔ｎ〕ｌｉ，Ｒｌ）も、ｆ（ｄｙｌｉ，Ｒｌ）と同様に、０より大きな値をとり、ｉ番目の画素における変化の大きさｄｙｌｉが大きくなるほど小さな値をもち、ｌ番目のスケールＲｌが大きいほど小さい値をとる関数である。
さらに、ｇ（ｄｙｌｉ，〔ｎ〕ｌｉ，Ｒｌ）は、ｋ番目の正則化強度により周辺画素間の画素値の変化を抑えるようにする方向と、ｉ番目の画素における変化の方向〔ｎ〕ｌｉが一致しているほど小さな値をとることを特徴とする関数である。
例えばｋ番目の正則化項により、単位ベクトル〔ｓ〕＝（ｓｘ、ｓｙ）で表される方向において、画素間の距離Ｒｌにて表されるスケールの画素値の変化を抑えるようにする場合には、ｇ（ｄｙｌｉ，〔ｎ〕ｌｉ，Ｒｌ）として以下のようなものを用いればよい。
【００５４】
【数１６】
0005928465.tif 000017
【００５５】
画像復元部１０３は、正則化強度算出部１０２にて算出された入力画像の各画素についての正則化強度に基づいて、当該各画素に適用する正則化強度に応じた正則化項Ｅｒｅｇ（〔Ｘ〕）を決定する。当該決定した正則化項Ｅｒｅｇ（〔Ｘ〕）は、画素値の変化の方向の成分を含むものである。
そして、画像復元部１０３は、画像入力部１０１が入力した入力画像に対して決定した正則化項Ｅｒｅｇ（〔Ｘ〕）と、誤差項Ｅｄａｔａ（〔Ｘ〕）の和を示す最適化関数（Ｅ（〔Ｘ〕））を決定する。
なお、誤差項Ｅｄａｔａ（〔Ｘ〕）は、劣化画像（入力画像〔Ｙ〕）を復元した復元画像〔Ｘ〕に対してブラーなどの劣化過程をシミュレートした画像と、劣化画像（入力画像）との差が小さいほど、小さい値をとる関数である。
【００５６】
【数１７】
0005928465.tif 000018
【００５７】
ただしここで、ｔは予め利用者が定めたパラメータである。
誤差項Ｅｄａｔａ（〔Ｘ〕）は、入力画像〔Ｙ〕と復元画像〔Ｘ〕との関係を、入力画像〔Ｙ〕とボケ行列〔Ｂ〕とを用いて表す。
一般的に、画像を撮影する際、光学系のレンズの焦点が合わないことや、手振れなどによって画像がぶれることによって、画像が不鮮明になる。ボケ関数は、このような画像が不鮮明になる効果を表す関数である。ボケ関数として、例えば、点広がり関数（ＰＳＦ：Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ）などが挙げられる。ただし、ボケ関数は、点広がり関数に限定されない。ボケ関数は、ボケ画像におけるボケの程度を表す関数であれば、他の関数であってもよい。ボケ関数は、利用者によって予め決められた関数として指定する。以下では、ボケ関数によって表されるボケをＮ×Ｎの行列〔Ｂ〕によって表す。
また、画素数がＭである画像における各画素の画素値をそれぞれラスタスキャン順に並べた縦ベクトルを〔Ｚ〕とし、与えられたボケ関数によってぼかされた画像〔Ｚ〕の各画素の画素値をそれぞれラスタスキャン順に並べた縦ベクトルを〔Ｚ〕ｂとする。
このとき、縦ベクトル〔Ｚ〕と縦ベクトル〔Ｚ〕ｂとの関係は、〔Ｂ〕を用いて以下に示す［式１８］のように表される。
【００５８】
【数１８】
0005928465.tif 000019
【００５９】
言い換えると、縦ベクトル〔Ｚ〕は、ぼけていない画像を表し、縦ベクトル〔Ｚ〕ｂは、ぼけている画像を表す。入力画像Ｙは、ぼけている画像（劣化画像）であるため、縦ベクトル〔Ｚ〕ｂに対応する。
誤差項Ｅｄａｔａ（〔Ｘ〕）は、〔Ｙ〕と〔Ｘ〕と〔Ｂ〕とを含む関数であり、〔Ｘ〕が復元された画像を示す。誤差項Ｅｄａｔａ（〔Ｘ〕）は、復元画像〔Ｘ〕をぼけ関数〔Ｂ〕にてぼかした画像と入力画像との誤差が小さいほど、小さい値をとる関数である。
誤差関数Ｅｄａｔａ（〔Ｘ〕）は、例えば、以下に示す［式１９］のような関係式として予め定義される。
【００６０】
【数１９】
0005928465.tif 000020
【００６１】
ここで、ｐはパラメータであり、利用者によって予め与えられる。
また、‖・‖は、ベクトルのノルムを表し、［式１９］はＬｐノルムを表す。
【００６２】
一方Ｅｒｅｇ（〔Ｘ〕）は、Ｋ個の正則化項を用いて、例えば以下のように表される。
【００６３】
【数２０】
0005928465.tif 000021
【００６４】
ただしここで、〔Ｌ〕ｋは特定の方向への変化の大きさを検出するフィルタである。〔Ｌ〕ｋとしては例えば、ソーベルフィルタやプレヴィットフィルタ或いは、ラプラシアンフィルタなどのフィルタを用いればよい。
また、〔Ｗ〕ｋは、正則化強度算出部１０２にて算出されたｋ番目の正則化強度であり、ｄｉａｇは対角行列を意味する。
【００６５】
本実施の形態において〔Ｌ〕ｋは、上述の特定の方向への変化の大きさを検出するフィルタに限定されない。例えば、〔Ｌ〕ｋは、特定のスケール及び方向への変化の大きさを検出するフィルタであってもよい。
例えば、正則化強度〔Ｗ〕ｋが、単位ベクトル〔ｓ〕＝（ｓｘ、ｓｙ）で表される方向における画素間の距離Ｒｌにて表されるスケールの画素値の変化を抑えるように働く場合には、〔Ｌ〕ｋは、ｘ方向にＲｌｓｘ、ｙ方向にＲｌｓｙだけ離れた画素間の変化の大きさを検出するフィルタとなる。
例えば、〔ｓ〕＝（１、０）、Ｒｌ＝３である場合には、〔Ｌ〕ｋは以下のようなフィルタとなる。
【００６６】
【数２１】
0005928465.tif 000022
【００６７】
或いは、正則化項Ｅｒｅｇ（〔Ｘ〕）として以下のものを用いても良い。
【００６８】
【数２２】
0005928465.tif 000023
【００６９】
最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を探索する方法としては、例えば、勾配法や共役勾配法などの手法を用いればよい。これにより復元画像の各画素値を得ることができる。
【００７０】
画像出力部１２０は、画像復元部１０３が生成した復元画像〔Ｘ〕を出力する出力装置である。画像出力部１２０は、例えば、ディスプレイ装置などによって実現される。
【００７１】
次に、第１の実施形態の動作について説明する。図２は、第１の実施形態における画像処理システムの動作の例を示すフローチャートである。
【００７２】
まず、画像入力部１１０に画像（劣化画像）が入力されると、画像入力部１１０は、入力された画像をメモリ（図示せず）に記録する（ステップＳ２０１）。
【００７３】
次に、変化算出部１０１は、画像入力部１１０がメモリ（図示せず）に記録した入力画像を読み取って、当該入力画像の各画素値について、式（３）により画素値の変化の大きさを算出する。また、変化算出部１０１は、式（４）を用いて画素値の変化の方向を算出し、メモリ（図示せず）に記録する（ステップＳ２０２）。
なお、変化算出部１０１は、周辺画素の画素値との間の変化の方向や大きさに加え、より大きなスケールでの方向や大きさを検出したり、或いは上述したような画像中のエッジセグメントを検出して、メモリ（図示せず）に記録してもよい。
【００７４】
次に、正則化強度算出部１０２は、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、変化算出部１０１がメモリ（図示せず）に記録した、入力画像の各画素値についての周辺画素の画素値との間の変化の方向や大きさから、正則化強度を画素毎に算出し、メモリ（図示せず）に記録する（ステップＳ２０３）。
なお、正則化強度の値は、入力画像の各画素についての周辺画素の画素値との間の大きさｄＹｉ、当該各画素についての周辺画素の画素値との間の変化の方向〔Ｎ〕ｉ、或いは、ｄｙｉ、〔ｎ〕ｉを、或いはｄｙｌｉ、〔ｎ〕ｌｉを、一例として、式（７）〜式（１６）等に代入することで算出する。
【００７５】
次に、画像復元部１０３は、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、正則化強度算出部１０２がメモリ（図示せず）に記録した入力画像の各画素についての正則化強度とから最適化関数を決定する。そして画像復元部１０３は、決定した最適化関数の値が最小となる当該各画素についての値により、当該各画素についての値を有する復元画像を生成し、これをメモリ（図示せず）に記録する（ステップＳ２０４）。
【００７６】
最後に画像出力部１２０は、画像復元部１０３がメモリ（図示せず）に記録した復元画像をディスプレイ装置などに出力する。
【００７７】
次に、本実施形態の効果について説明する。
以上のように、本実施形態によれば、変化算出部１０１が、入力画像中の画素値の変化の方向と大きさを画素毎に算出しその値を記録する。
正則化強度算出部１０２は、各正則化項が復元画像における周辺画素間の画素値の変化を抑える方向と変化算出部１０１にて算出された方向単位ベクトルが示す画素値の変化の方向とが一致しており、かつ画素値の変化の大きさが大きいほど正則化強度が小さくなるような、正則化強度を画素毎に適応的に決定する。
そして、画像復元部１０３は、正則化強度算出部１０２にて算出された入力画像の各画素についての正則化強度に基づいて、当該各画素に適用する正則化強度に応じた正則化項Ｅｒｅｇ（〔Ｘ〕）を決定する。
そして、画像復元部１０３は、画像入力部１０１が入力した入力画像に対して決定した正則化項Ｅｒｅｇ（〔Ｘ〕）と、誤差項Ｅｄａｔａ（〔Ｘ〕）の和を示す最適化関数（Ｅ（〔Ｘ〕）を決定する。
そして画像復元部１０３は、当該最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を求める。次に画像復元部１０３は、〔Ｘ〕を各画素の画素値とした画像を復元画像として出力する。
以上のような構成を有し、入力画像中の周辺画素間の画素値の変化の大きさが大きい方向に沿って、当該入力画像中の周辺画素間の画素値の変化の大きさが大きい領域の画素値の変化が大きくなるような復元画像の生成を行う。
これにより、入力画像に存在する異なる物体や異なる図柄等、画像中の異なる領域であると認識できる境界を示す輪郭（エッジ）が明確となるような画像を維持した復元画像の生成を行うことができる。
【００７８】
［第２の実施形態］
【００７９】
次に、図３を参照して、本発明の第２の実施形態における画像処理システムについて説明する。なお、第１の実施形態と同様の構成については、図１と同一の符号を付し、説明を省略する。
図３は、第２の実施形態における画像処理システムの例を示すブロック図である。本画像処理システムは、画像入力部１１０と、プログラム制御によって動作するコンピュータ１００ａと、画像出力部１２０とを備えている。
第１の実施形態と同様、コンピュータ１００ａは、中央処理装置や、プロセッサ、データ処理装置と呼ぶこともできる。
【００８０】
コンピュータ１００ａは、変化算出部１０１と、正則化強度算出部１０２ａと、画像復元部１０３と、カテゴリー分類部３０４とを含む。
【００８１】
画像入力部１１０、変化算出部１０１、画像復元部１０３、及び画像出力部１２０については、第１の実施形態と同様であるため、説明を省略する。
【００８２】
カテゴリー分類部３０４は、変化算出部１０１にて算出された方向単位ベクトル〔Ｎ〕が示す画素値の変化の方向と、変化ベクトル〔ｄＹ〕が示す画素値の変化の大きさとから、入力画像の各画素を、予め利用者によって定められた複数種類のカテゴリーに分類し、その結果をメモリ（図示せず）に記録する。
【００８３】
例えば、変化算出部１０１が、入力画像のある画素について、画素値の変化の大きさｄＹｉ及び方向〔Ｎ〕ｉを算出した場合には、その変化の大きさｄＹｉに応じて、入力画像の各画素を平坦領域、エッジ領域の２種類に分類する。
具体的には、画素値の変化の大きさｄＹｉが、予め利用者によって定められた閾値ｄＹ０に比べ大きい場合には、エッジ領域に分類し、閾値ｄＹ０に比べ小さい場合には、平坦領域に分類する。ここで、エッジ領域は、人によって輪郭部であると認識されるような特性を有する領域を意味し、平坦領域は、人によって平らであると認識されるような特性を有する領域を意味する。
【００８４】
変化算出部１０１が、画素値の変化の大きさｄＹｉ及び方向〔Ｎ〕ｉに加え、より大きなスケールでの画素値の変化の大きさｄｙｉと方向〔ｎ〕ｉ及びエッジセグメントの有無を表すベクトル〔Ｅ〕を算出した場合には、それらの値に応じて、入力画像の各画素を、平坦領域、方向の存在しないテクスチャ領域、方向の存在するテクスチャ領域、エッジ領域（すなわち輪郭領域）の４種類に分類する。
ここで、方向の存在しないテクスチャ領域は、方向性を有しない一定の質感があると人によって認識されるような特性を有する領域を意味し、方向の存在するテクスチャ領域は、方向性を有する一定の質感があると人によって認識されるような特性を有する領域を意味する。
【００８５】
具体的には、まず、画素値の変化の大きさｄＹｉが予め利用者によって定められた閾値ｄＹ０に比べ小さい場合には、その画素を平坦領域として分類する。
また、画素値の変化の大きさｄＹｉがｄＹ０以上であり、より大きなスケールでの画素値の変化の大きさｄｙｉが予め利用者によって定められた閾値ｄｙ０に比べ小さい場合には、その画素を方向が存在しないテクスチャ領域として分類する。
また、画素値の変化の大きさｄＹｉがｄＹ０以上であり、より大きなスケールでの画素値の変化の大きさｄｙｉがｄｙ０以上であり、エッジセグメントの有無を表す値Ｅｉが予め利用者によって定められた閾値Ｅ０に比べ小さい場合には、その画素を方向が存在するテクスチャ領域として分類する。
また、画素値の変化の大きさｄＹｉがｄＹ０以上であり、より大きなスケールでの画素値の変化の大きさｄｙｉがｄｙ０以上であり、エッジセグメントの有無を表す値ＥｉがＥ０以上である場合には、その画素をエッジ領域に分類する。
【００８６】
正則化強度算出部１０２ａは、変化算出部１０１によってメモリに記録された入力画像の各画素値の変化の大きさ及び方向と、カテゴリー分類部３０４に記録されているカテゴリーとに基づいて、画素毎に複数種類の正則化強度を適応的に算出し、その値をメモリ（図示せず）に記録する。
以下では、第１の実施形態と同様に、正則化強度の種類がＫ、入力された画像の画素数がＭである場合、ｉ番目の画素におけるｋ番目（ｋ＝１，・・・，ｋ，・・・，Ｋ）の正則化項をＷｋｉと表し、各画素の正則化強度をラスタスキャン順に並べた縦ベクトルを〔Ｗ〕ｋ＝（Ｗｋ１，・・・，Ｗｋｉ，・・・，ＷｋＮ）ｔと表す。
【００８７】
変化算出部１０１が、画素値の変化の大きさｄＹｉ及び変化の方向Ｎｉのみをメモリに記録した場合には、ｉ番目の画素の正則化強度Ｗｋｉは、第１の実施形態と同様に以下のように定めればよい。
【００８８】
【数２３】
0005928465.tif 000024
【００８９】
ここで、λは利用者が予め定めたパラメータである。
ｆ（ｄＹｉ）及びｇ（ｄＹｉ、〔Ｎ〕ｉ）については、第１の実施形態と同様であるため、説明を省略する。
α及びβは、カテゴリー分類部３０４に記録されている分類結果をもとに値を決定する。以下では、カテゴリー分類部３０４が各画素を平坦領域及びエッジ領域の２カテゴリーに分類している場合について説明する。
ｉ番目の画素が平坦領域に分類されている場合には、αを大きい値にし、βを小さい値に定める。例えば、αを１に、βを０に定めればよい。
一方、ｉ番目の画素がエッジ領域に分類されていた場合には、αを小さな値に、βを大きな値に定める。例えば、αを０、βを１に定めればよい。
【００９０】
つまり、ｋ番目の正則化強度により、等方的に周辺画素間の画素値の変化を抑えるようにする場合には、ｆ（ｄＹｉ）の値を大きくする。一方、ｋ番目の正則化強度により、〔Ｎ〕の方向に対する周辺画素間の画素値の変化を抑える場合には、ｇ（ｄＹｉ、〔Ｎ〕ｉ）を大きくする。
ここで、平坦領域とは等方的に画素値の変化が少ない領域であるため、α＝１，β＝０としｆ（ｄＹｉ）を大きくすることで、復元画像の平坦領域を等方的に画素値の変化が少ない領域として復元することができる。
一方、エッジ領域とは、特定の方向に画素値の変化が小さい領域であるため、α＝０，β＝１とし、ｇ（ｄＹｉ、〔Ｎ〕ｉ）を大きくすることで、復元画像のエッジ領域を、〔Ｎ〕の方向に対する周辺画素間の画素値の変化が小さい領域として復元することができる。
【００９１】
変化算出部１０１が、画素値の変化の大きさｄＹｉ及び方向〔Ｎ〕ｉに加え、より大きなスケールでの画素値の変化の大きさｄｙｉと方向〔ｎ〕ｉ及びエッジセグメントの有無を表すベクトル〔Ｅ〕を算出している場合には、第１の実施形態と同様に、ｉ番目の画素の正則化強度Ｗｋｉは、例えば以下のように定めればよい。
【００９２】
【数２４】
0005928465.tif 000025
【００９３】
ここで、λは利用者が定めたパラメータである。
ｆ（ｄＹｉ）、ｇ（ｄｙｉ、〔Ｎ〕ｉ）及びｈ（ｄＹｉ、〔Ｎ〕ｉ、Ｅｉ）については、第１の実施形態と同様であるため、説明を省略する。
α、β及びγに関しては、カテゴリー分類部３０４に記録されている分類結果をもとに値を定める。以下では、カテゴリー分類部３０４が各画素を平坦領域、方向が存在しないテクスチャ領域、方向が存在するテクスチャ領域、エッジ領域の４種類にカテゴリーを分類していた場合について説明する。
ｉ番目の画素が平坦領域に分類されていた場合には、αを大きい値にし、β及びγを小さい値に定める。例えば、αを１に、β及びγを０と定めればよい。
また、ｉ番目の画素が方向の存在しないテクスチャ領域に分類されていた場合には、α、β及びγを全て小さな値に定める。例えば、α、β及びγを全て０と定めればよい。
また、ｉ番目の画素が方向の存在するテクスチャ領域に分類されていた場合には、α及びγを小さな値に、βを大きな値に定める。例えば、α及びγを０と定め、βを１と定めればよい。
また、ｉ番目の画素が方向の存在するエッジ領域に分類されていた場合には、α及びβを小さな値にし、γを大きな値に定める。例えば、α及びβを０とし、γを１とすればよい。
【００９４】
つまり、ｋ番目の正則化強度により、等方的に周辺画素間の画素値の変化を抑えるようにする場合には、ｆ（ｄＹｉ）の値を大きくする。
一方、ｋ番目の正則化強度により、〔Ｎ〕の方向に対する周辺画素間の画素値の変化を抑える場合には、ｇ（ｄＹｉ、〔Ｎ〕ｉ）を大きくする。
また、ｋ番目の正則化強度により、〔Ｎ〕の方向に対する周辺画素間の画素値の変化をエッジセグメント上でのみ抑える場合には、ｈ（ｄＹｉ、〔Ｎ〕ｉ、Ｅｉ）を大きくする。
ここで、平坦領域とは等方的に画素値の変化が少ない領域であるため、α＝１，β＝０，γ＝０としｆ（ｄＹｉ）を大きくすることで、復元画像の平坦領域を等方的に画素値の変化が少ない領域として復元することができる。
一方、方向が存在するテクスチャ領域とは、特定の方向に画素値の変化が小さい領域であるため、α＝０，β＝１，γ＝０とし、ｇ（ｄＹｉ、〔Ｎ〕ｉ）を大きくすることで、復元画像の方向が存在するテクスチャ領域を〔Ｎ〕の方向に対する周辺画素間の画素値の変化が小さい領域として復元することができる。
また、エッジ領域とは、エッジセグメント上でのみ特定の方向に画素値の変化が小さい領域あるため、α＝０，β＝０，γ＝１とし、ｈ（ｄＹｉ、〔Ｎ〕ｉ、Ｅｉ）を大きくすることで、復元画像のエッジ領域を、エッジセグメント上でのみ〔Ｎ〕の方向に対する周辺画素間の画素値の変化が小さい領域として復元することができる。
【００９５】
次に、図３と、図４のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【００９６】
まず、画像入力部１１０に画像が入力されると、画像入力部１１０は、入力された画像をメモリ（図示せず）に記録する（ステップＳ４０１）。
【００９７】
次に、変化算出部１０１は、画像入力部１１０がメモリ（図示せず）に記録した入力画像を読み取って、当該入力画像の各画素値について、式（３）により画素値の変化の大きさを算出する。また、変化算出部１０１は、式（４）を用いて画素値の変化の方向を算出し、メモリ（図示せず）に記録する（ステップＳ４０２）。
なお、変化算出部１０１は、周辺画素の画素値との間の変化の方向や大きさに加え、より大きなスケールでの方向や大きさを検出したり、或いは上述したような画像中のエッジセグメントを検出して、メモリ（図示せず）に記録してもよい。
【００９８】
次に、カテゴリー分類部３０４は、変化算出部１０１がメモリ（図示せず）に記録した入力画像の各画素についての方向単位ベクトル〔Ｎ〕や変化ベクトル〔ｄＹ〕から、各画素を、平坦領域と、エッジ領域に分類し、その結果をメモリ（図示せず）に記録する（ステップＳ４０３）。
なお、カテゴリー分類部３０４は、上述のように、変化算出部１０１がメモリ（図示せず）に記録した画像の方向や大きさから、各画素を平坦領域、方向の存在しないテクスチャ領域、方向の存在するテクスチャ領域、及びエッジ領域に分類し、その結果をメモリ（図示せず）に記録してもよい。
【００９９】
次に、正則化強度算出部１０２ａは、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、変化算出部１０１がメモリ（図示せず）に記録した入力画像の各画素値についての周辺画素の画素値との間の変化の方向や大きさと、カテゴリー分類部３０４がメモリ（図示せず）に記録した入力画像の各画素についての分類結果とに基づいて、正則化強度を画素毎に算出し、メモリ（図示せず）に記録する（ステップＳ４０４）。
【０１００】
次に、画像復元部１０３は、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、正則化強度算出部１０２ａがメモリ（図示せず）に記録した入力画像の各画素についての正則化強度とから、最適化関数を決定する。そして画像復元部１０３は、その最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を求める。次に画像復元部１０３は、〔Ｘ〕を各画素の画素値とした画像を復元画像として出力し、これをメモリ（図示せず）に記録する（ステップＳ４０５）。
【０１０１】
最後に画像出力部１２０は、画像復元部１０３がメモリ（図示せず）に記録した復元画像をディスプレイ装置などに出力する（ステップＳ４０６）。
【０１０２】
次に、本発明を実施するための第２の実施形態の効果について説明する。
【０１０３】
本発明を実施するための第２の実施形態では、第１の実施形態での処理に加え、入力画像の各画素について変化算出部１０１がメモリに記録した、周辺画素の画素からの画素値の変化の方向や大きさに基づいて、カテゴリー分類部３０４が各画素を平坦領域、エッジ領域などのカテゴリーに分類する。
また、正則化項決定部１０２ａは、カテゴリー分類部３０４がメモリに記録した各画素についてのカテゴリーの情報に応じて、正則化強度を決定する。
そして、画像復元部１０３は、カテゴリーに応じて算出された正則化強度をもとに構成された正則化項を用いて画像を復元する。
すなわち、第２に実施形態では、正則化強度算出部１０２ａが、カテゴリー分類部３０４にて分類された結果に応じて、カテゴリー毎に最適な正則化強度を各画素について決定する。そして、それら各画素についての正則化強度を用いて画像復元部１０３が分類結果に応じた最適な復元画像を生成する。したがって、第１の実施形態に比べ、より正確な復元画像を得ることが出来る。
【０１０４】
［第３の実施形態］
次に、図５を参照して、本発明の第３の実施形態における画像処理システムについて説明する。なお、第１の実施形態及び第２の実施形態と同様の構成については、図１及び図３と同一の符号を付し、説明を省略する。
図５は、第３の実施形態における画像処理システムの例を示すブロック図である。本画像処理システムは、画像入力部１１０と、プログラム制御によって動作するコンピュータ１００ｂと、画像出力部１２０とを備えている。
第１及び第２の実施形態と同様、コンピュータ１００ｂは、中央処理装置や、プロセッサ、データ処理装置と呼ぶこともできる。
【０１０５】
コンピュータ１００ｂは、変化算出部１０１と、正則化強度算出部１０２ａと、画像復元部１０３と、カテゴリー分類部３０４ｂと、合成比率算出部５０１と、画像合成部５０２とを含む。
【０１０６】
画像入力部１１０、変化算出部１０１、画像復元部１０３、正則化強度算出部１０２ａについては、第１及び第２の実施形態と同様であるため、説明を省略する。
【０１０７】
カテゴリー分類部３０４ｂは、第２の実施形態と同様に、変化算出部１０１にて算出された画素値の変化の方向と大きさから、入力画像の各画素を予め利用者に定められた複数種類のカテゴリーに分類し、その結果をメモリ（図示せず）に記録する。
さらに、本実施形態においては、カテゴリー分類部３０４ｂは、分類された結果の信頼度を画素毎に計算し、これについてもメモリ（図示せず）に記録する。
以下では、ｉ番目の画素における信頼度をＳｉと表し、これをラスタスキャン順に並べ得られた縦ベクトルを〔Ｓ〕と表す。
【０１０８】
第２の実施形態と同様に、変化算出部１０１が、画素値の変化の大きさｄＹｉ及び方向〔Ｎ〕ｉをメモリに記録している場合には、その変化の大きさｄＹｉに応じて、入力画像の各画素を平坦領域、エッジ領域の２種類に分類する。
次に、カテゴリー分類を行う際に使用した閾値ｄＹ０とｄＹｉとの差分値が大きいほど小さな値となる信頼度Ｓｉを算出する。
例えば、以下の式（２５）により得られる値を信頼度Ｓｉとして用いればよい。
【０１０９】
【数２５】
0005928465.tif 000026
【０１１０】
或いは、ある画素に対する信頼度Ｓｉは、当該ある画素のカテゴリーの分類が、当該ある画素の周囲の画素における分類の結果と同一であるほど大きな値となる量として算出してもよい。
例えばｉ番目の画素の隣接８つの画素のカテゴリーの結果について、ｉ番目の画素におけるカテゴリー結果と同一である個数を信頼度Ｓｉとしてもよい。
【０１１１】
次に、変化算出部１０１が画素値の変化の大きさｄＹｉ及び方向〔Ｎ〕ｉに加え、より大きなスケールでの画素値の変化の大きさｄｙｉと方向〔ｎ〕ｉ及びエッジセグメントの有無を表すベクトル〔Ｅ〕を記録している場合について述べる。
このような場合についても、第２の実施形態と同様に、それらの値に応じて、入力画像の各画素を、平坦領域、方向の存在しないテクスチャ領域、方向の存在するテクスチャ領域、エッジ領域の４種類に分類する。
次に、信頼度Ｓｉを、周囲の画素における分類結果と同一であるほど大きな値となる量として算出する。例えば、ｉ番目の画素の隣接８つの画素の分類結果について、ｉ番目の画素における分類結果と同一である個数を信頼度Ｓｉとする。
【０１１２】
なお、以上のようにして算出された信頼度Ｓｉは、その値が小さな画素ほど、分類された結果が誤っている可能性が高いことを示すものである。一方で、分類された結果が誤っていれば、正則化強度算出部１０２にて適切な正則化強度は算出されないため、画像復元部１０３にて正しい復元画像が生成されないことになる。したがって、信頼度Ｓｉが小さい画素は復元画像の画素値の信頼度も小さいことになる。すなわち、信頼度Ｓｉは、ｉ番目の画素における分類結果に関する信頼度であると同時に、復元画像に関する信頼度であるともいうこともできる。
【０１１３】
合成比率算出部５０１は、カテゴリー分類部３０４ｂが算出した信頼度〔Ｓ〕にもとづいて、後述する画像合成部５０２にて復元画像と入力画像の合成を行う際に使用する合成比率を算出し、メモリ（図示せず）に記録する。以下では、ｉ番目の画素における合成比率をＱｉと表し、これをラスタスキャン順に並べえられた縦ベクトルを〔Ｑ〕と表す。また、当該ベクトルを、以下合成比率ベクトル〔Ｑ〕と呼ぶこととする。
合成比率ベクトル〔Ｑ〕におけるｉ番目の画素における合成比率をＱｉは、０から１の値をとり、さらに信頼度Ｓｉが大きな値であるほど大きな値をとる量である。例えば、Ｑｉは以下の［式２６］を用いて算出すればよい。
【０１１４】
【数２６】
0005928465.tif 000027
【０１１５】
ここで、σ（・）は、第１の実施形態と同様に、入力値が１より大きい場合には１を、それ以外の場合には入力値を出力する関数であり、τは予め利用者によって与えられた定数である。
【０１１６】
画像合成部５０２は、合成比率算出部５０１にて算出された合成比率ベクトル〔Ｑ〕と、画像入力部１１０にて入力された入力画像Ｙと、画像復元部１０３にて復元された復元画像Ｘとから、合成画像を生成し、メモリ（図示せず）に記録する。以下では、合成画像のｉ番目の画素における画素値をＺｉと表し、これをラスタスキャン順に並べえられた縦ベクトルを〔Ｚ〕と表す。
画像合成部５０２は、カテゴリー分類部３０４ｂにて算出された信頼度Ｓｉが高い領域は復元画像に画素値が近く、信頼度Ｓｉが低い領域は入力画像に画素値が近い合成画像を生成するよう、復元画像の各画素値を算出する。
具体的には、ｉ番目の画素における画素値をＺｉを、Ｘｉ、Ｙｉ及びＱｉを用いて以下のように算出する。
【０１１７】
【数２７】
0005928465.tif 000028
【０１１８】
画像出力部１２０は、メモリ（図示せず）に記録されている合成画像を出力する。
【０１１９】
次に、図５及び図６のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【０１２０】
まず、画像入力部１１０に画像が入力されると、画像入力部１１０は、入力された画像をメモリ（図示せず）に記録する（ステップＳ６０１）。
【０１２１】
次に、変化算出部１０１は、画像入力部１１０がメモリ（図示せず）に記録した入力画像から、当該画像の各画素について、周辺画素の画素値との間の画素値の変化が最も大きい方向を算出する。また、変化算出部１０１は、周辺画素の画素値との間の変化の大きさを算出する。そして、変化算出部１０１は、入力画像の各画素について、画素値の変化の大きい方向と当該変化の大きさの値をメモリ（図示せず）に記録する（ステップＳ６０２）。
なお、変化算出部１０１は、画素の画素値と、周辺画素の画素値との間の変化が大きい方向やその大きさに加え、より大きなスケールでの方向や大きさ、或いは画像中のエッジセグメントなどを検出し、メモリ（図示せず）に記録するようにしてもよい。
【０１２２】
次に、カテゴリー分類部３０４ｂは、変化算出部１０１がメモリ（図示せず）に記録した入力画像の各画素についての方向単位ベクトル〔Ｎ〕や変化ベクトル〔ｄＹ〕から、各画素を平坦領域、エッジ領域にカテゴリー分類し、メモリ（図示せず）に記録する。
さらに、カテゴリー分類部３０４ｂは、カテゴリー分類された結果に基づく信頼度を画素毎に算出しメモリ（図示せず）に記録する（ステップ６０３）。
なお、カテゴリー分類部３０４ｂは、入力画像中の各画素について変化算出部１０１がメモリ（図示せず）に記録した、周辺画素との間の画素値の変化の最も大きい方向と、周辺画素との間の画素値の変化の大きさから、各画素を平坦領域、方向の存在しないテクスチャ領域、方向の存在するテクスチャ領域、エッジ領域に分類してもよい。
【０１２３】
次に、正則化強度算出部１０２ａは、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、変化算出部１０１が各画素についてメモリ（図示せず）に記録した周辺画素との間の画素値の変化の最も大きい方向と、周辺画素との間の画素値の変化の大きさと、カテゴリー分類部３０４ｂが各画素についてメモリ（図示せず）に記録したカテゴリー分類結果とから、正則化強度を画素毎に算出し、メモリ（図示せず）に記録する（ステップＳ６０４）。
【０１２４】
次に、画像復元部１０３は、画像入力部１１０がメモリ（図示せず）に記録した入力画像と、正則化強度算出部１０２ａがメモリ（図示せず）に記録した各画素についての正則化強度とから、最適化関数を決定する。そして画像復元部１０３は、その最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を求める。
次に画像復元部１０３は、〔Ｘ〕を各画素の画素値とした画像を復元画像として出力し、これをメモリ（図示せず）に記録する（ステップＳ６０５）。
【０１２５】
次に、合成比率算出部５０１は、カテゴリー分類部３０４ｂにて算出された信頼度から、合成比率を算出する（ステップＳ６０６）。
【０１２６】
さらに、画像合成部５０２は、合成比率算出部５０１にて算出された合成比率と、画像入力部１１０にて入力された入力画像と、画像復元部１０２にて復元された復元画像とを用いて、合成比率に基づいて合成画像を生成し、メモリ（図示せず）に記録する（ステップＳ６０７）。
【０１２７】
最後に画像出力部１２０は、画像合成部５０２がメモリ（図示せず）に記録した合成画像をディスプレイ装置などに出力する（ステップＳ４０６）。
【０１２８】
次に、本発明を実施するための第３の実施形態の効果について説明する。
【０１２９】
本発明を実施するための第３の実施形態では、第２の実施形態での処理に加え、カテゴリー分類部３０４ｂが、変化算出部１０１が各画素についてメモリに記録した周辺画素との間の画素値の変化の最も大きい方向と、周辺画素との間の画素値の変化の大きさから、カテゴリーに分類された結果の信頼度を算出する。
また合成比率算出部５０１は、合成比率をカテゴリー分類部３０４ｂが算出した信頼度をもとに算出する。
そして、画像合成部５０２は、合成比率算出部５０１が算出した合成比率をもとに、信頼度の高い領域では復元画像に近く、信頼度の低い領域では入力画像に近い画素値をもつ合成画像を合成する。
すなわち、第３に実施形態では、カテゴリー分類部３０４ｂにて算出された信頼度に応じて、画像合成部５０２が、信頼度の高い領域では復元画像に近く、信頼度の低い領域では入力画像に近い画素値をもつ合成画像を生成する。したがって、第３の実施形態では、信頼度が高い領域のみ復元が行われるため、第２の実施形態に比べ、より正確な復元画像を得ることが出来る。
【実施例１】
【０１３０】
次に、具体的な実施例を用いて、本発明を実施するための最良の形態の動作を説明する。【０１３１】
以下、具体的な実施例によって本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。また、本実施例は第１の実施形態に対応するものである。以下、図１を参照して説明する。【０１３２】
本実施例では、画像入力部１１０として、ＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）信号を入出力できるビデオキャプチャボードを用いる。また、画像出力部１２０として、ディスプレイ装置を用いる。また、コンピュータ１００として、画像処理プロセッサを搭載した画像処理ボードを用いる。
ビデオキャプチャボードは、入力されたビデオ信号をＹＵＶ信号に変換し、画像処理ボードに送信する。また、ビデオキャプチャボードは、画像処理ボードにおける処理結果が転送されると、その処理結果をビデオ信号に変換してディスプレイ装置に表示させる。
このように、本実施例では、画像処理ボードの処理結果をビデオキャプチャボードに転送し、ビデオキャプチャボードが画像をディスプレイ装置に表示させる。【０１３３】
画像処理ボードは、変化算出部１０１と、正則化強度算出部１０２と、画像復元部１０３とを含む。【０１３４】
入力画像の入力信号が画像入力部１１０に入力されると、画像入力部１１０はその値をメモリ等に記録する。【０１３５】
変化算出部１０１は、入力画像中の画素についての、周辺画素との間の画素値の変化の最も大きい方向と、周辺画素との間の画素値の変化の大きさを画素毎に算出する。【０１３６】
以下では、第１の実施形態と同様に、ｉ番目の画素における変化の大きさを画素値の変化の大きさをｄＹｉと表し、これらをラスタスキャン順に並べた縦ベクトル（変化ベクトル）を〔ｄＹ〕＝（ｄＹ１，・・・，ｄＹｉ，・・・，ｄＹＮ）と表記する。また、ｉ番目の画素における変化の方向を単位ベクトル〔Ｎ〕ｉ＝（Ｎｘｉ、Ｎｙｉ）を用いて表し、これらをラスタスキャン順に縦に並べて出来た行列（方向単位ベクトル）を〔Ｎ〕とする。
変化算出部１０１は変化ベクトル〔ｄＹ〕及び方向単位ベクトル〔Ｎ〕をメモリ（図示せず）に記録する。【０１３７】
画素値の変化の大きさを示す変化ベクトル〔ｄＹ〕を算出する方法の詳細について説明する。
まず、入力画像にガウシアンフィルタを積和演算した画像を生成する。次に、ｘ方向及びｙ方向のラプラシアンフィルタを、ガウシアンフィルタが積和演算された入力画像にさらに積和演算し、得られた画像の各画素の画素値をラスタスキャン順に並べた縦ベクトル〔Ｙｘ〕及び〔Ｙｙ〕を得る。
画素ｉにおける画素値の変化の大きさｄＹｉは、ＹｘｉおよびＹｙｉを用いて以下のように算出する。【０１３８】
【数２８】
0005928465.tif 000029
【０１３９】
一方、画素値の変化の方向を算出する方法としては、既に算出したｘ方向及びｙ方向への画素値の変化の大きさから、どの方向に最も画素値が変化しているかを算出する。例えば、ｉ番目の画素の画素値の変化の方向は、ｉ番目の画素の画素値の変化の大きさＹｘｉ、Ｙｙｉ及びｄＹｉを用いて、変化の方向を表す単位ベクトル〔Ｎ〕ｉ＝（Ｎｘｉ、Ｎｙｉ）を、以下のように算出する。【０１４０】
【数２９】
0005928465.tif 000030
【０１４１】
次に、変化算出部１０１は、Ｃａｎｎｙエッジ検出アルゴリズムを用いて、入力画像中のエッジセグメントを検出し、エッジセグメントが存在する画素は１、存在しない画素は０の値をもつマスク画像を生成する。
そして、このマスク画像にガウシアンフィルタを積和演算して得た画像の各画素の画素値をラスタスキャン順に並べた縦ベクトル〔Ｅ〕＝（Ｅ１，・・・，Ｅｉ，・・・，ＥＮ）ｔを得る。【０１４２】
変化算出部１０１は、算出された〔ｄＹ〕、〔Ｎ〕及び〔Ｅ〕をメモリ（図示せず）に記録する。【０１４３】
正則化強度算出部１０２は、変化算出部１０１にて算出された方向単位ベクトル〔Ｎ〕が示す画素値の変化の方向において、画素値の変化の大きさが大きいほど正則化強度が小さくなるような、画素毎の正則化強度を適応的に算出し、その値を記録する。
正則化強度の種類は２種類であり、入力された画像の画素数がＭである場合、画素ｉにおける１番目の正則化項をＷ１ｉ、画素ｉにおける２番目の正則化項をＷ２ｉと表し、各画素の正則化強度をラスタスキャン順に並べた縦ベクトルをそれぞれ〔Ｗ〕１＝（Ｗ１１，・・・，Ｗ１ｉ，・・・，Ｗ１Ｍ）ｔ、〔Ｗ〕２＝（Ｗ２１，・・・，Ｗ２ｉ，・・・，Ｗ２Ｍ）ｔと表す。【０１４４】
変化算出部１０１が記憶している〔ｄＹ〕、〔Ｎ〕及び〔Ｅ〕を用いて、ｉ番目の画素の正則化強度Ｗｋｉを以下のように定める。【０１４５】
【数３０】
0005928465.tif 000031
【０１４６】
ここで、σ（・）は、入力値が１より大きい場合には１を、それ以外の場合には入力値を出力する関数であり、Ｄ、εは予め利用者によって与えられた定数である。【０１４７】
画像復元部１０３は、正則化強度算出部にて算出された正則化強度と入力画像とから、方向が考慮された正則化項Ｅｒｅｇ（〔Ｘ〕）及び誤差項Ｅｄａｔａ（〔Ｘ〕）から構成される最適化関数を決定する。そしてその最適化関数Ｅ（〔Ｘ〕）を用いて、劣化画像（入力画像〔Ｙ〕）を復元した復元画像〔Ｘ〕の各画素値を得る。
このとき、画像復元部１０３は、最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を探索する方法としては、例えば、勾配法や共役勾配法などの手法を用いる。これにより復元画像の各画素値を得て、復元画像を生成ことができる。
なお、最適化関数Ｅ（〔Ｘ〕）としては以下のようなものを使用する。【０１４８】
【数３１】
0005928465.tif 000032
【０１４９】
ただし、ここでｔは利用者が予め定めたパラメータである。
誤差項Ｅｄａｔａ（〔Ｘ〕）は、〔Ｙ〕と〔Ｘ〕と〔Ｂ〕とを含む関数であり、〔Ｘ〕が復元された画像（すなわち、入力画像と復元画像との誤差が小さい）を示すほど小さい値をとる関数である。
誤差関数Ｅｄａｔａ（〔Ｘ〕）は、例えば、以下に示す［式３２］のような関係式として予め定義される。【０１５０】
【数３２】
0005928465.tif 000033
【０１５１】
ここで｜・｜は、ベクトルのノルムを表す。【０１５２】
一方Ｅｒｅｇ（〔Ｘ〕）は、２個の正則化項の和として以下のように表される。【０１５３】
【数３３】
0005928465.tif 000034
【０１５４】
ただしここで、〔Ｌ〕ｘ、〔Ｌ〕ｙはｘ方向及びｙ方向のラプラシアンフィルタである。〔Ｗ〕１、〔Ｗ〕２は、正則化強度算出部にて算出された正則化強度である。【０１５５】
画像復元部１０３は、最適化関数Ｅ（〔Ｘ〕）の値が最小となる〔Ｘ〕を探索する方法としては、例えば、勾配法や共役勾配法などの手法を用いる。そして、復元画像〔Ｘ〕の各画素値をメモリ（図示せず）に記録する。【０１５６】
最後に画像出力部１２０は、画像復元部１０３がメモリ（図示せず）に記録した復元画像をディスプレイ装置などに出力する。
【産業上の利用可能性】
【０１５７】
本発明によれば、入力画像に存在する異なる物体や異なる図柄等、画像中の異なる領域であると認識できる境界を示す輪郭（エッジ）が明確となるような画像を維持した復元画像の生成を行うことができる。
【符号の説明】
【０１５８】
１００，１００ａ，１００ｂ  コンピュータ（中央処理装置；プロセッサ；データ処理装置）
１０１         変化算出部
１０２，１０２ａ     正則化強度算出部
１０３         画像復元部
３０４，３０４ｂ     カテゴリー分類部
１２０         画像出力部  
５０１             合成比率算出部
５０２           画像合成部
【図１】
0005928465.tif 000035
【図２】
0005928465.tif 000036
【図３】
0005928465.tif 000037
【図４】
0005928465.tif 000038
【図５】
0005928465.tif 000039
【図６】
0005928465.tif 000040