(57)【特許請求の範囲】
【請求項１】
画像のコントラストを調整する画像処理システムであって、
指定された分割条件に従って、前記画像を複数の領域に分割する分割手段と、
前記分割手段により分割された各領域の光の透過率または該透過率と相関関係にあるデータを透過率情報として計測または前記画像から算出する計測手段と、
前記計測手段により計測または算出された前記透過率情報に応じて、コントラストを調整するために使用するパラメータを決定する決定手段と、
前記決定手段により前記各領域につき決定された各前記パラメータを用いて、前記各領域のコントラストを調整する調整手段とを含む、画像処理システム。
【請求項２】
前記計測手段は、前記画像の局所領域を構成する画素の最も小さい画素値を使用して前記透過率情報を算出する、請求項１に記載の画像処理システム。
【請求項３】
前記画像は、撮像装置により撮像された画像であり、前記撮像装置は、撮像対象を拡大して撮像することが可能なレンズを備え、
前記画像処理システムは、前記レンズに対して設定されたレンズ情報を取得するレンズ情報取得手段をさらに含み、
前記決定手段は、前記レンズ情報と前記透過率情報とに応じて、前記パラメータを決定する、請求項１または２に記載の画像処理システム。
【請求項４】
前記画像内の空領域を検知する空領域検知手段をさらに含み、
前記調整手段は、前記空領域検知手段により検知された前記空領域に対し、指定されたパラメータを用いて、該空領域のコントラストを調整する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記画像内の道路領域を検知する道路領域検知手段をさらに含み、
前記調整手段は、前記道路領域検知手段により検知された前記道路領域に対し、指定されたパラメータを用いて、該道路領域のコントラストを調整する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
さらに、前記画像から算出した光の透過率、透過率計測手段により計測した光の透過率、レーザー光を照射し、該レーザー光の反射率から算出される透過率、距離計測手段により計測した撮像装置から撮像対象までの距離、複数の撮像装置から取得した画像の視差から算出した該複数の撮像装置から撮像対象までの距離の１つを用いて暗画像を作成する暗画像作成手段を含み、
前記分割手段は、前記分割条件として、前記暗画像の画素値に応じて前記複数の領域に分割する、請求項１〜５のいずれか１項に記載の画像処理システム。
【請求項７】
前記暗画像作成手段は、前記画像を構成する複数の画素のうち選択された画素と該選択された画素を含む所定の範囲内にある該選択された画素以外の周辺画素の画素値を、該周辺画素の最小の画素値に置換して得られる画像を前記暗画像として作成する、請求項６に記載の画像処理システム。
【請求項８】
前記分割手段は、前記分割条件として、前記暗画像の所定の画素値を閾値とし、該閾値に応じて前記複数の領域に分割する、請求項６または７に記載の画像処理システム。
【請求項９】
前記分割手段は、前記暗画像の画素値に応じて２つの領域に分割し、該２つの領域間の分散を算出し、該分散が最大となる画素値を前記閾値として決定する、請求項８に記載の画像処理システム。
【請求項１０】
前記分割手段は、前記分散が最大となる画素値が所定の値より大きい場合に前記閾値として決定する、請求項９に記載の画像処理システム。
【請求項１１】
前記分割手段は、分割された各暗画像の画素値に応じてさらに２つの領域に分割し、該２つの領域間の分散を算出し、該分散が最大となる画素値が所定の値より大きいかを判断して、２以上の閾値を決定する、請求項１０に記載の画像処理システム。
【請求項１２】
請求項１〜１１のいずれか１項に記載の画像処理システムを含む、撮像装置。
【請求項１３】
画像のコントラストを調整する画像処理装置であって、
指定された分割条件に従って、前記画像を複数の領域に分割する分割手段と、
前記分割手段により分割された各領域の光の透過率または該透過率と相関関係にあるデータを透過率情報として計測または前記画像から算出する計測手段と、
前記計測手段により計測または算出された前記透過率情報に応じて、コントラストを調整するために使用するパラメータを決定する決定手段と、
前記決定手段により前記各領域につき決定された各前記パラメータを用いて、前記各領域のコントラストを調整する調整手段とを含む、画像処理装置。
【請求項１４】
画像のコントラストを調整する画像処理方法であって、
指定された分割条件に従って、前記画像を複数の領域に分割するステップと、
分割された各領域の光の透過率または該透過率と相関関係にあるデータを透過率情報として計測または前記画像から算出するステップと、
計測または算出された前記透過率情報に応じて、コントラストを調整するために使用するパラメータを決定するステップと、
前記各領域につき決定された各前記パラメータを用いて、前記各領域のコントラストを調整するステップとを含む、画像処理方法。
【請求項１５】
請求項１４に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のコントラストを調整する画像処理システム、画像処理装置、撮像装置、画像処理方法、その方法をコンピュータに実行させるためのプログラムおよびそのプログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
車載カメラ、監視カメラ、電子双眼鏡等で外部や遠方の撮像対象である被写体を撮像、観察する際、霧、霞、黄砂、PM2.5等が発生していると、光が散乱して透過率が低下する。その結果、被写体画像は、コントラスト（明暗の差）が低下し、視認性が悪化したものとなる。
【０００３】
従来、そのコントラストを改善する目的で、テクスチャに応じて画像を領域分割し、分割した各領域に対してヒストグラムを平坦化する技術が知られている（例えば、特許文献１参照）。この技術は、CLAHE(Contrast Limited Adaptive Histogram Equalization)と呼ばれ、このCLAHEでは、コントラストの向上具合に制約値を課しながらヒストグラムを平坦化している。
【０００４】
しかしながら、CLAHEでは、コントラストの制約値がどの領域でも同じ数値であるため、画像内の被写体の背景である背景部が過度に補正されて、その背景部のノイズが目立つという問題があった。
【０００５】
そこで、背景部の過補正を防止する目的で、被写体である顔や人物の検知を行い、顔や人物はコントラストの制約を小さくし、それ以外の背景部はコントラストの制約を大きくする技術が提案されている（例えば、特許文献２参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、被写体が必ずしも顔や人物とは限らないため、上記特許文献２に記載の技術では適切にコントラストの制約値が設定されない場合がある。また、濃霧等が発生し、光の透過率が大きく低下した場合、被写体を検知できない可能性があり、この場合も、適切にコントラストの制約値が設定されない。これでは、適切にコントラストを調整することができないため、画像の視認性を向上させることはできなかった。
【０００７】
そこで、画像の視認性を向上させることができるシステム、装置や方法等の提供が望まれていた。
【課題を解決するための手段】
【０００８】
本発明は、上記課題に鑑みなされたものであり、画像のコントラストを調整する画像処理システムであって、指定された分割条件に従って、画像を複数の領域に分割する分割手段と、分割手段により分割された各領域の光の透過率または該透過率と相関関係にあるデータを透過率情報として計測または画像から算出する計測手段と、計測手段により計測または算出された透過率情報に応じて、コントラストを調整するために使用するパラメータを決定する決定手段と、決定手段により各領域につき決定された各パラメータを用いて、各領域のコントラストを調整する調整手段とを含む、画像処理システムが提供される。
【発明の効果】
【０００９】
本発明によれば、画像の視認性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の撮像装置の構成例を示した図。
【図２】本実施形態の画像処理装置の一例を示した機能ブロック図。
【図３】画像のコントラスト調整の概要について説明する図。
【図４】コントラスト調整で実施されるクリッピング演算について説明する図。
【図５】クリップ値を設定することによる効果について説明する図。
【図６】コントラスト調整曲線の算出方法について説明する図。
【図７】彩度補正で使用するゲインを例示した図。
【図８】図２に示す画像処理装置を含む撮像装置が行うコントラスト調整の１つの流れを示したフローチャート。
【図９】ワイド端とテレ端について説明する図。
【図１０】撮像装置が行うコントラスト調整の別の流れを示したフローチャート。
【図１１】画像処理装置の別の例を示した機能ブロック図。
【図１２】図１１に示す画像処理装置を含む撮像装置が行うコントラスト調整の流れを示したフローチャート。
【図１３】道路領域の検知について説明する図。
【図１４】画像処理装置のさらに別の例を示した機能ブロック図。
【図１５】図１４に示す画像処理装置を含む撮像装置が行うコントラスト調整の流れを示したフローチャート。
【図１６】領域分割について説明する図。
【図１７】領域分割方法の一例を説明する図。
【図１８】暗画像の作成方法について説明する図。
【図１９】暗画像の画素値の分割について説明する図。
【図２０】コントラスト調整の一例を説明する図。
【図２１】画像処理システムのさらに別の例を示した機能ブロック図。
【図２２】図２１に示す画像処理装置を含む撮像装置が行うコントラスト調整の流れを示したフローチャート。
【図２３】暗画像の画素値を分割する別の方法を説明する図。
【図２４】暗画像の画素値を２以上の領域に分割する方法を説明する図。
【図２５】図２４に示す暗画像の画素値を分割する処理の流れを示したフローチャート。
【図２６】図２５に示すコントラスト調整を行う処理の流れを示したフローチャート。
【発明を実施するための形態】
【００１１】
図１は、本実施形態の撮像装置の構成例を示した図である。撮像装置は、デジタルカメラ、ビデオカメラ、デジタル双眼鏡、ノートPC、タブレット端末、スマートフォン、携帯電話、PDA(Personal Digital Assistant)等とすることができ、例示したいずれの装置であってもよい。なお、ビデオカメラには、車載用カメラや監視カメラ等も含まれる。撮像装置１０は、レンズユニット１１、撮像ユニット１２、コントローラ１３、画像メモリ１４、操作ユニット１５、出力I/F１６、透過率計測センサ１７、画像処理回路１８を含んで構成される。
【００１２】
撮像装置１０は、撮像対象である被写体にレンズユニット１１を向けて配置され、撮像時に、操作ユニット１５の１つであるシャッターボタンが押下される。シャッターボタンが押下されると、撮像装置１０は、被写体に反射した光を、レンズユニット１１を通して撮像ユニット１２へ入射させる。レンズユニット１１は、複数のレンズ、絞り、焦点調節機構を含んで構成される。焦点調整機構は、焦点を自動で調整するオートフォーカス(AF)機能を提供する。
【００１３】
撮像ユニット１２は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサやCCD(Charge Coupled Device)イメージセンサ等の撮像素子を含む。撮像素子は、入射された光の強さに応じた大きさの電圧に変換する。撮像ユニット１２は、撮像素子で変換された電圧に対し、ゲインをかけるAFE(Analog Front End)回路を備える。また、撮像ユニット１２は、AFE回路から出力された電圧、すなわちアナログ信号をデジタルデータへ変換するA/D変換回路も備える。A/D変換回路から出力されるデジタルデータは、コントローラ１３へ出力される。
【００１４】
コントローラ１３は、撮像装置１０全体の制御を行う。コントローラ１３は、撮像ユニット１２からデジタルデータである、撮像された画像の画像データを受け取る。そして、コントローラ１３は、受け取った画像データを画像処理回路１８へ送って画像処理を実行させたり、画像メモリ１４に保存したり、出力I/F１６を介して出力デバイスに出力する等の処理を実行する。また、コントローラ１３は、設定されたAF機能に従い、また、操作ユニット１５が受け付けたレンズの焦点距離切り替え等の指示を受け、レンズユニット１１を制御し、その機能や焦点距離の切り替え等を行う。
【００１５】
コントローラ１３は、上記の制御を行うためのプログラムやそのプログラムが使用する設定値等の設定情報を記憶するメモリ、そのプログラムを実行するCPUを含んで構成される。メモリは、上記のAF機能や焦点距離の切り替え等を行うために、レンズの焦点距離等のレンズに対して設定されたレンズ情報を記憶することができる。
【００１６】
操作ユニット１５は、シャッターボタン等の各種ボタンや操作パネルを含み、撮像装置１０を操作するユーザの操作内容を取得し、コントローラ１３へその内容を伝達する。例えば、ユーザがシャッターボタンを押下した場合、操作ユニット１５は、シャッターボタンが押下された旨をコントローラ１３へ伝える。この場合、コントローラ１３は、撮像ユニット１２に対して指示し、被写体の撮像を実行させる。操作ユニット１５は、操作内容のほか、ユーザがコントラスト調整の１つである霧補正を行うか否かの情報も受け付け、それをコントローラ１３へ伝える。
【００１７】
出力I/F１６は、画像メモリ１４に保存された画像データを、コントローラ１３を経由して受け付け、出力デバイスへ出力する。出力デバイスは、印刷装置、ファックス装置、コピー機、電子黒板、プロジェクタ、PC、タブレット端末、スマートフォン等、画像データを出力することができれば、いかなる機器であってもよい。出力I/F１６と出力デバイスとは、HDMI（登録商標）(High-Definition Multimedia Interface)ケーブル等のケーブルにより接続されていてもよいし、ネットワークにより接続されていてもよい。なお、ネットワークは、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等のいずれのネットワークであってもよく、また、有線、無線のいずれのネットワークであってもよい。
【００１８】
透過率計測センサ１７は、光の透過率を計測するためのセンサで、計測手段の１つとして用いることができる。なお、透過率は、画像から求めることもできるため、この透過率計測センサ１７は、撮像装置１０に実装されていなくてもよい。透過率計測センサ１７は、例えば、赤外光等を投光してその後方散乱を計測することにより透過率を計測することができる。また、透過率計測センサ１７として測距センサを用い、撮像装置１０から被写体までの距離を計測し、画像情報を合わせて透過率を計測してもよい。そのほか、特定の波長をもつレーザー光を照射し、そのレーザー光の反射率から透過率を算出してもよいし、複数の撮像装置で角度を変えて撮像し、撮像画像の視差から上記の距離を求め、その距離から透過率を算出してもよい。この透過率計測センサ１７も、コントローラ１３により制御される。なお、透過率計測センサ１７を用いて透過率を計測することで、画像から透過率を求める場合に比べて高精度の透過率を得ることができる。
【００１９】
画像処理回路１８は、撮像ユニット１２から出力され、画像メモリ１４に保存された画像データを、コントローラ１３を経由して受け取り、出力デバイスが要求する出力形式になるように画像処理を実行する。また、画像処理回路１８は、コントラスト調整も実施する。画像処理回路１８は、図１に示すようにコントローラ１３とは別個の装置として構成することもできるが、この画像処理を実施するためのプログラムとして構成し、コントローラ１３や他の回路や機器に実施させることも可能である。なお、コントローラ１３等にプログラムを実行させ、上記の画像処理を実施させる場合、画像処理装置ではなく、画像処理システムとして提供することができる。
【００２０】
図２は、画像処理装置としての画像処理回路１８の機能ブロック図である。図２は、図１の構成において、透過率計測センサ１７を用いない場合の構成例を示した図である。画像処理回路１８は、CTL I/F２０と、ISP(Image Signal Processing)部２１と、計測手段の１つとして用いられる透過率算出部２２と、コントラスト調整部２３とを含んで構成される。ちなみに、透過率計測センサ１７を用いる場合は、透過率算出部２２が不要で、透過率計測センサ１７が透過率を計測し、その透過率情報を取得する。そして、透過率計測センサ１７がコントラスト調整部２３へ取得した透過率情報を提供する。
【００２１】
図１に示す撮像ユニット１２が撮像し、出力した画像データは、コントローラ１３を介して画像メモリ１４に保存される。その画像データは、コントローラ１３を介して画像メモリ１４から画像処理回路１８へ転送される。CTL I/F２０は、コントローラ１３と接続し、画像メモリ１４に保存された画像データをコントローラ１３から受け取り、また、画像処理した画像データをコントローラ１３へ渡す。
【００２２】
ISP部２１は、一般的なカメラにおける画像処理を実施する。この画像処理は公知であるため詳述しないが、例えば、黒補正、シェーディング補正、ゲイン処理、ガンマ処理、RGB変換、フィルタ処理、色補正処理等を挙げることができる。ISP部２１は、画像処理後の画像データを、透過率算出部２２とコントラスト調整部２３とに出力する。
【００２３】
透過率算出部２２は、ISP部２１から受信した画像データに対して画像処理を行い、透過率を算出する。透過率の算出方法の詳細については後述する。透過率算出部２２は、算出した透過率を透過率情報としてコントラスト調整部２３へ出力する。
【００２４】
コントラスト調整部２３は、透過率算出部２２から受け取った透過率情報を用い、明るさ成分に対しては、CLAHEを実施し、色味成分に対しては彩度補正処理を実施する。このため、コントラスト調整部２３は、CLAHEを実施するCLAHE処理部２４と、彩度補正を行う彩度補正部２５とを備える。コントラスト調整部２３は、これらの処理が終了したところで、CTL I/F２０を介して画像メモリ１４へ画像処理した後の画像データを保存する。出力デバイスは、出力I/F１６を介してコントローラ１３に対して画像データを要求し、コントローラ１３は、画像メモリ１４に保存された画像データを、出力I/F１６を介して出力デバイスへ出力する。
【００２５】
コントラスト調整部２３は、ISP部２１で画像処理した後の画像データに限らず、CTL I/F２０から直接画像データを受け付け、その画像データに対してコントラスト調整を実施することもできる。また、コントラスト調整部２３は、CLAHEと彩度補正の両方ではなく、いずれか一方のみを実施することも可能である。
【００２６】
ここで、CLAHE処理部２４が実施するCLAHEについて簡単に説明する。CLAHEは、図３に示すように、撮像した画像を複数の矩形領域（タイル）に分割し、各タイルにつき、ヒストグラムの平坦化処理を行い、コントラストを向上させる処理である。図３は、霧が発生している場所で撮像した画像を示している。なお、この場所は、霧の濃さが一様であり、撮像装置１０からの距離に応じて、光の透過率が変化している。以下、霧を例に挙げて説明するが、霧に限定されるものではなく、上述した霞、黄砂、PM2.5等であってもよいものである。
【００２７】
図３の縦横均等に４つに分割されたタイルのうち、上側２つのタイルは、遠距離にある山が撮像されているため、光の透過率が低く、左下のタイルは、近距離にある車が撮像されているため、光の透過率が高くなっている。また、右下のタイルは、その中間の中距離のものが撮像されているため、光の透過率がその中間の値となっている。
【００２８】
霧の中で撮像した霧画像において、光の透過率が低いタイル、すなわち撮像対象までの距離が遠く、霧が濃く撮像されているタイルについては、コントラストが小さく、撮像対象がはっきりしない。このため、コントラストの制約値を小さくし、コントラスト強調処理を大きく行うようにする。これに対し、光の透過率が高いタイル、すなわち撮像対象までの距離が近く、霧が薄く撮像されているタイルについては、コントラストの制約値を大きくし、あまりコントラスト強調処理を行わないようにする。光の透過率がその中間のタイルについては、その中間の制約値とし、適当なコントラスト強調処理を行うようにする。これにより、撮像対象がはっきりしないものに対しては、はっきり見えるようにし、撮像対象がはっきりしているものに対しては、過度に補正されないようにして、ノイズが見立たないようにすることができる。
【００２９】
霧の濃さが一様である場合は、上記のように、撮像対象までの距離によってコントラストの制約値を切り替え、コントラスト強調処理を行うことができる。霧の濃さが一様でない場合は、光の透過率が距離に依存しないため、計測した透過率あるいは算出した透過率に応じて、コントラストの制約値を切り替え、コントラスト強調処理を行うことができる。
【００３０】
CLAHEでタイルに分割する数は、図３に示すように４つに限定されるものではなく、９、１６、２５等、もっと細かく分割してもよい。CLAHEで行うヒストグラムの平坦化処理については、上記の特許文献２に記載された方法等、公知の方法を採用することができる。その詳細については、上記の特許文献２等を参照されたい。コントラスト調整部２３は、このようにタイルに分割することから、コントラスト調整を行う調整手段のほか、画像を複数の領域に分割する分割手段としても機能する。
【００３１】
このヒストグラムの平坦化処理は、コントラストの強調具合が強い処理であるため、そのコントラストを弱めるため、コントラストの制約値としてクリップ値と呼ばれるパラメータを導入し、ヒストグラムのクリッピング演算を実施する。
【００３２】
クリッピング演算は、局所的ヒストグラム均等化法において用いられる演算である。局所的ヒストグラム均等化法は、一般的なコントラスト強調法であり、画像の局所情報を考慮してコントラスト強調処理を行う方法である。図４を参照して、クリッピング演算について説明する。図４（ａ）に示す入力画像の中の領域（タイル）内の画素がもつ輝度値の分布を分布図で表すと、図４（ｂ）のようなものになる。
【００３３】
タイルに対して所定のクリップ値が設定され、各輝度値の画素数がそのクリップ値を超える場合、図４（ｂ）の斜線で示される、その超えた画素数を除去する。その超えた画素数を合計し、輝度値の全数で除算して、各輝度値に分配する画素数を算出する。そして、クリップ値を超える画素数を除去した後の各輝度値の画素数と、各輝度値に分配する画素数とを加算し、図４（ｃ）に示す各輝度値の新たな画素数を算出する。例えば、図４（ｂ）の斜線で示される部分の画素数の合計が５１２個であり、輝度値の全数が２５６階調の２５６個である場合、５１２／２５６＝２個の画素数を全輝度値に対して分配し、加算する。クリッピング演算では、このように算出した各輝度値における画素数の分布を再設定する。
【００３４】
次に、クリップ値を設定することによる効果について、図５を参照して説明する。図５（ａ）、（ｂ）を参照すると、クリップ値を超える画素数を除去する前の左側に示した分布図では、分割したあるタイルの輝度値がαからβの間に分布している。図５（ａ）ではクリップ値k1、図５（ｂ）ではクリップ値k2（k2<k1）を超えた画素数を除去し、その超えた画素数を合計し、輝度値の全数で除算して各輝度値に分配する画素数を算出し、その画素数を全輝度値に加算する。これにより、それぞれの中央に示したクリッピング後の分布図が得られる。クリッピング後の分布図を参照し、輝度値０から２５５まで各輝度値の画素数を加算、累積し、それを正規化することで、右側に示した、各輝度値に対する変換後の輝度値を表す変換曲線が求められる。正規化は、ここでは０から２５５の値に収めるための処理である。
【００３５】
この変換曲線を求める場合、その都度、各輝度値の画素数を加算して算出してもよいし、予め各輝度値の画素数を加算して算出しておいたルックアップテーブル(LUT)をメモリ等に格納しておき、その都度、LUTから選択してもよい。
【００３６】
クリッピング後の分布図から変換曲線を求める方法を、図６を参照してより詳細に説明する。図６（ａ）は、クリッピング後の分布図を示し、図６（ｂ）は、図６（ａ）から求められた変換曲線を示した図である。図６（ａ）に示すように、輝度値０からαまでは、画素数が一定である。輝度値０からαの間において、変換後の輝度値は、変換前の輝度値に一定の画素数を加算、累積して求めるため、その間の変換曲線は、図６（ｂ）に示すように一定の傾きとなる。また、輝度値γからδの間、輝度値βから２５５の間も同様に一定の画素数を加算、累積して求めるため、一定の傾きとなる。
【００３７】
なお、輝度値γからδの間は、輝度値０からαの間、βから２５５の間に比べて加算する画素数が多いため、その傾きはそれらより急峻になる。輝度値αからγの間は、図６（ａ）に示すように画素数が一定ではなく、急激に増加する傾向を示すため、画素数を加算、累積して求めたαからγの間の変換曲線は、図６（ｂ）に示すように直線ではなく、急激に増加する曲線となる。これに対し、輝度値δからβの間は、画素数が急激に減少する傾向を示すため、δからβの間の変換曲線は、急激に減少する曲線となる。これらの直線、曲線を繋ぎ合わせて、図６（ｂ）に示す変換曲線を求めることができる。
【００３８】
このようにして図５（ａ）、（ｂ）に示すクリッピング後の分布図からも各変換曲線を求めることができる。設定したクリップ値が大きい図５（ａ）に示す例では、変換曲線において、α＞α’、β＜β’となっており、αからβまでの距離Qとα’からβ’までの距離Q’との関係がQ＜Q’となっている。これは、輝度値の下限値を示すαがα’に低下し、輝度値の上限値を示すβがβ’に上昇し、画素の分布が拡大していることを表している。つまり、原画の階調に対して変換後の階調が拡大しており、今まで輝度値が似通っていて判別しづらい部分を鮮明に見分けられるようになったことを示している。
【００３９】
設定したクリップ値が小さい図５（ｂ）に示す例では、変換曲線において、図５（ａ）に示す例と同様、α＞α”、β＜β”、Q＜Q”となっているが、それぞれが近い値になっている。したがって、αからα”へ下限値が低下し、βからβ”へ上限値が上昇するが、わずかな低下および上昇であり、変換前とあまり大差がない。つまり、原画の階調に対して変換後の階調の変化があまり見られず、階調補正がほとんどなされないことを示している。
【００４０】
なお、上記の変換曲線を求める演算の途中または演算後において、α’＝αになるようにα’を変換し、それに伴い、β’や変換曲線を再度求めてもよい。α’だけに限られるものではなく、β’、α”、β”等に関しても同様な処理を行ってもよい。
【００４１】
上記の結果から、霧画像において、光の透過率が高い部分についてはクリップ値を小さくして、コントラストの調整具合を小さくし、光の透過率が低い部分についてはクリップ値を大きくして、コントラストの調整具合を大きくすればよいことが分かる。
【００４２】
光の透過率は、透過率計測センサ１７を用いて計測することができるが、画像処理により画像から透過率を算出することもできる。その算出方法の１つとして、ダークチャンネルを用いる方法を説明する。なお、この方法の詳細については、例えば、「Single image Haze removal Using Dark Channel Prior」, He Kaiming, Jian Sun, Xiaoou Tang Pattern Analysis and Machine Intelligence, IEEE 2011や、特開２０１２−２２１２３７号公報等を参照されたい。
【００４３】
霧の性質から霧画像の局所領域におけるRGBの最小値を算出すると、霧の大まかな透過率と相関関係のあるデータを得ることができる。このデータは、ダークチャンネルと呼ばれる。霧のモデル式は、霧が晴れている場合の画像データをJとし、大気中の透過率をt（t＝０〜１）とし、大気光（間接光成分）をAとし、霧発生時の画像データをIとすると、次の式１で表すことができる。
【００４４】
【数１】
0006531542.tif 000002
【００４５】
上記式１中、J×tは、直接光データと呼ばれ、光の透過率１００％の霧が晴れているときの画像が透過率tにより減衰されている様子を示している。上記式１中、(１−t)×Aは、間接光データと呼ばれ、直接光で減衰した分、大気光Aで明るくなっている様子を示している。
【００４６】
ダークチャンネルは、霧が晴れている場合、ほとんどの物質が、RGB最小値がほぼ０に近いという性質から成り立っている。上記式１より、透過率tが低ければ低いほど、大気光の成分が加算され、その値が大きくなる。一方、直接光データは０に近い値になる。このため、直接光データを０とみなし、大気光Aの値を用いて大まかな透過率tを求めることができる。
【００４７】
Jの最小値をさらに０に近い値にするために、局所領域を、例えば１５×１５という小さいサイズに分割した領域とし、その各領域での最小値を取ることができる。ちなみに、霧が晴れていても、晴れていなくても、白い大きい物体等は、RGBの最小値がほぼ０に近い値を示すことから、ダークチャンネルでも正確に透過率を算出することはできない。
【００４８】
上記の条件の下、上記式１に示すモデル式から導出したダークチャンネルと透過率tとの関係式を、次の式２に示す。式２中、Ωは、注目画素に対する局所領域を指し、mincはRGB最小値を表す。
【００４９】
【数２】
0006531542.tif 000003
【００５０】
上記式２を用いて、透過率tもしくはダークチャンネルminy∈Ω(minc(J))を算出する。以下、ダークチャンネルは、dark(J)と記述することにする。図２に示す透過率算出部２２は、上記式２を用いて透過率tもしくはダークチャンネルdark(J)を算出し、これを透過率情報としてコントラスト調整部２３へ出力する。コントラスト調整部２３では、透過率tもしくはダークチャンネルdark(J)に応じて、CLAHEで使用するクリップ値kを決定する。
【００５１】
上記の透過率情報を使用しないCLAHEのクリップ値kは、従来、以下の式３および式４によりユーザが求め、ユーザが設定している。
【００５２】
【数３】
0006531542.tif 000004
【００５３】
【数４】
0006531542.tif 000005
【００５４】
上記式３中、mは、１タイル当たりの画素数であり、Nは、画素のbin数、すなわち８ビット画像であれば２５６であり、１６ビット画像であれば６５５３６である。k_minは、最小クリップ値である。上記式４中、ユーザ設定値Sは０から１の間の値であり、１である場合は、クリップ値による制約がない場合に等しい状態である。
【００５５】
透過率情報を使用するCLAHEのクリップ値は、１タイル当たりの透過率tの平均値をタイル透過率Tとし、１タイル当たりのダークチャンネルdark(J)の平均値をタイルダークチャンネルdark(J)とし、上記式４を変形した下記式５を用いて算出することができる。
【００５６】
【数５】
0006531542.tif 000006
【００５７】
上記式５を用いることで、タイルの透過率毎にCLAHEのクリップ値が変化し、透過率の低いタイルにはクリップ値を大きく、透過率の高いタイルにはクリップ値を小さくすることができる。上記式５中、α1、β1、α2、β2は、透過率tを一次変換し、どの程度の重み付けするかを示す値であり、一次変換の結果が１を超える場合にはクリップすることにする。例えば、透過率の感度を強くし、透過率が小さい差分でもクリップ値の変化を大きくした場合は、画像全体におけるタイルダークチャンネルの最大値が１、タイルダークチャンネルの最小値が０になるようにα1、α2、β1、β2を定めることができる。
【００５８】
コントラスト調整部２３は、上記式５を用いてタイル毎のクリップ値を算出し、各クリップ値を用いてCLAHE処理を実施する。クリップ値は、上記式５により算出するほか、透過率情報に対応するクリップ値としてテーブル等に設定しておき、そのテーブルを参照して決定するようにしてもよい。CLAHE処理を実施するに際して、画像がRGB画像である場合、RGB色空間からYCbCr色空間等へ変換することができる。色空間の変換は、これまでに知られたいかなる計算式等でも使用して行うことができる。コントラスト調整部２３は、変換後のY（輝度値）を使用して、上記の方法によりヒストグラムの平坦化を実施することができる。
【００５９】
コントラスト調整部２３は、CLAHE処理のみを実施してもよいが、この処理だけでは、霧画像が無彩に近づき、彩度が不足する場合がある。このような場合には、YCbCr色空間におけるCb、Cr成分にゲインをかけて彩度を向上させることができる。Cbは、青系統の色の色相と彩度を表す色差成分で、Crは、赤系統の色の色相と彩度を表す色差成分である。
【００６０】
Cb、Cr成分にゲインをかける彩度補正は、下記式６を用いて実施することができる。式６中、Cb、Crは、−１〜１の間の値とする。また、式６中、Cxのxは、bまたはrのいずれかを示す。また、Cx’は、彩度補正後のCb、Crの値である。
【００６１】
【数６】
0006531542.tif 000007
【００６２】
上記式６も、CLAHEのクリップ値と同様、透過率が大きいほどゲインが小さくなり、透過率が小さいほどゲインが大きくなるような式である。また、α3、α4、β3、β4は、CLAHEのクリップ値の場合と同様、透過率tを一次変換し、どの程度の重み付けするかを示す値である。
【００６３】
ここで、図７（ａ）〜（ｃ）を参照して、上記式６の指数部が１〜３に変化した場合にゲインがどのように変わるかについて説明する。図７（ａ）が式６中の指数部が１の場合、図７（ｂ）が式６中の指数部が２の場合、図７（ｃ）が式６中の指数部が３の場合を示す。指数部が１の場合は、Cxに対するCx’の比が１であるが、指数部が２、３と大きくなるにつれて、その比が大きくなり、ゲインが大きくなることが分かる。上記式６の指数部には、透過率情報が含まれることから、上記式６を用いて彩度補正を行うことで、透過率情報に応じて彩度補正のゲインを決定することができる。
【００６４】
図８を参照して、撮像装置１０が行う処理について説明する。ステップ８００から処理を開始する。ユーザは、任意の撮像対象である被写体に撮像装置１０のレンズユニット１１を向け、シャッターボタンを押下する。これを受けて、ステップ８１０において撮像ユニット１２が画像を撮像する。ここでは霧除去処理を行うものとして説明するが、当然ながら霧以外の黄砂やPM2.5等であってもよい。霧除去処理を行う場合、ユーザは、操作ユニット１５において霧補正を行うかどうかを指定することができる。撮像装置１０は、その指定を受けて、霧除去処理を実行する。なお、撮像装置１０の種類によっては、撮像画像により霧が発生しているかどうかを自動的に検知する装置もあるため、そのような装置では、ユーザが意識せずに自動的に霧補正を実行することができる。
【００６５】
ステップ８１０では、コントローラ１３がシャッターボタンの押下を受け付け、撮像ユニット１２に対し、撮像を開始するように指示する。撮像ユニット１２は、その指示を受けて、シャッターを開き、撮像素子を露出させ、撮像素子に入射される光を光電変換し、画像データを出力する。ステップ８２０では、コントローラ１３がその画像データを受け取り、画像メモリ１４に保存する。
【００６６】
ステップ８３０では、画像処理回路１８のCTL I/F２０が画像メモリ１４から画像データを取得し、ISP部２１でシェーディング補正等の画像処理が行われた後、画像データは、透過率算出部２２とコントラスト調整部２３へ送られる。透過率算出部２２は、上記の式２を用いて透過率tもしくはダークチャンネルdark(J)といった透過率情報を算出する。透過率算出部２２は、算出した透過率情報をコントラスト調整部２３へ送る。
【００６７】
ステップ８４０では、コントラスト調整部２３のCLAHE処理部２４が、その透過率情報を用い、上記式５によりクリップ値を算出し決定する。ステップ８５０では、CLAHE処理部２４が、決定したクリップ値を用い、上記の方法で各タイルにつきヒストグラムの平坦化を実施し、各変換曲線を求める。そして、CLAHE処理部２４は、求めた各変換曲線を用い、各タイル内の画素の輝度値を変換する。このようにして、CLAHE処理部２４は、画素の輝度成分に対して補正を行う。CLAHE処理部２４は、補正後の画像データを彩度補正部２５へ送る。
【００６８】
ステップ８６０では、彩度補正部２５が、その画像データにおける各画素の輝度成分以外の色差成分に対して彩度補正を行う。彩度補正部２５は、上記式６を用いて彩度成分にゲインをかけ、彩度を向上させる処理を行う。すべての画素に対して彩度補正を行った後、コントラスト調整部２３は、コントラストの調整が終了したものとし、画像データをCTL I/F２０を介して画像メモリ１４に保存する。撮像装置１０は、画像メモリ１４への保存が終了したところで、ステップ８７０へ進み、この処理を終了する。
【００６９】
撮像装置１０は、レンズユニット１１を備え、レンズユニット１１は、焦点距離を変更し、撮像対象を拡大して撮像することができるズームレンズを含む。このズームレンズに対して設定されるレンズ情報は、画角やズーム倍率の設定情報を含み、これらの設定を変えることで、画角やズーム倍率を変えることができる。画角は、撮像範囲を角度で表したもので、ワイド端のときが最も大きく、テレ端のときが最も小さくなる。ワイド端は、ズームレンズの焦点距離を最も短くした状態であり、テレ端は、ズームレンズの焦点距離を最も長くした状態である。ズーム倍率は、ワイド端からズームレンズの焦点距離を変えたときのワイド端に対する倍率であり、例えば、ワイド端の焦点距離が３５ｍｍで、そのときの焦点距離が７０ｍｍであった場合、２倍となる。レンズユニット１１の画角やズーム倍率等のレンズ情報は、コントローラ１３が備えるメモリに記憶されている。
【００７０】
図９（ａ）に示すワイド端では、撮像装置１０からの距離が近い人物から距離が遠い山や空まで撮像される。このため、撮像された１つの画像における透過率の差異は大きいと考えられる。これに対し、図９（ｂ）に示すテレ端では、撮像装置１０からの距離が近い車しか撮像されない。この撮像された１つの画像は、その奥行きに差が少ないため、その画像における透過率の差異は小さいと考えられる。すると、ワイド端の場合は、クリップ値に差をつけやすくし、テレ端の場合は、クリップ値があまり変化しないようにして、ダークチャンネルを用いる方法において透過率の精度が低い場合の補正を行うことが望ましい。
【００７１】
画角やズーム倍率は、ワイド端に近いのか、テレ端に近いのかの度合いを表すパラメータとなり、画像内の透過率のばらつきがどの程度あるかを推測することを可能にする。このため、CLAHE処理部２４は、レンズ情報をコントローラ１３から取得し、このレンズ情報と、ダークチャンネルとを利用して、より適切なクリップ値を決定することができる。
【００７２】
クリップ値kは、レンズ情報に応じたレンズ設定情報Lを用いて、上記式５を変形した下記式７により算出することができる。Lは、ワイド端のときを１とし、テレ端のときを０とし、その中間を０．５とし、その中間からワイド端に近づけば０に近づき、その中間からテレ端に近づけば１に近づく値とすることができる。なお、Lは、これに限定されるものではなく、レンズの焦点距離や画角に応じて数値化した値を用いることも可能である。
【００７３】
【数７】
0006531542.tif 000008
【００７４】
上記式７中、α1、α2、β1、β2は、全dark(J)もしくは全タイルの透過率の最小値、最大値で０から１に正規化するように設定される。この式７を用いて、クリップ値kを決定することで、Lが大きい場合、すなわちワイド端に近い場合は、クリップ値に差異を出し、Lが小さい場合、すなわちテレ端に近い場合は、クリップ値に差異がほとんど出ないようにすることができる。
【００７５】
レンズ情報は、上記のように、透過率の精度を向上させるために用いることができるが、輝度だけではなく、彩度を補正し、その精度を向上させるために用いることも可能である。したがって、彩度補正も、レンズ設定情報Lを用いて、上記式６を変形した下記式８により算出することができる。なお、この式８中のα3、α4、β3、β4も、上記α1等と同様、正規化するように設定される。
【００７６】
【数８】
0006531542.tif 000009
【００７７】
レンズ情報を取得し、レンズ情報を用いてクリップ値を決定し、彩度補正を行う処理の流れについて、図１０を参照して簡単に説明する。ステップ１０００からステップ１０３０までは、図８に示したステップ８００からステップ８３０までと同様であるため、ここではその説明を省略する。ステップ１０４０では、コントラスト調整部２３のCLAHE処理部２４が、コントローラ１３が保持するレンズ情報を、コントローラ１３から取得する。
【００７８】
ステップ１０５０からステップ１０８０は、図８に示したステップ８４０からステップ８７０までの処理と同様であるが、クリップ値の決定および彩度補正を行うにあたって、レンズ設定情報L、上記式７および式８を用いる。
【００７９】
ところで、撮像した霧画像に空が写っている場合、空は、人物や山等よりも撮像装置１０からの距離が遠く、光の透過率が小さい。したがって、上記式５を使用してクリップ値を決定すると、クリップ値が大きくなり、CLAHEを実施すると、コントラストを大きく向上させることになる。霧が発生したとき、空の領域（空領域）には特に新しい情報を含んでおらず、コントラストを向上させると、ノイズが増大するばかりである。そこで、画像内の空領域を検知し、空領域に対しては透過率情報に関係なく、クリップ値を小さくし、ノイズを減少させることが望ましい。
【００８０】
画像処理回路１８は、図１１に示すように画像内の空領域を検知する空領域検知部２６をさらに備えることができる。その他の構成は、図２に示した構成と同様である。空領域は、公知の技術を使用して検知することができる。例えば、「Single Image Algorithm Based on Sky Region Segmentation」 Information Technology Journal 12(6):1168-1175,2013を参照されたい。ちなみに、この技術は、空領域が大きく、明るく、エッジがないという特徴に基づき、モルフォロジー処理でノイズを除去し、二値化する技術である。そのほか、機械学習を用い、空領域を認識する手法等を採用することもできる。
【００８１】
この空領域検知部２６を備える撮像装置１０が行う処理を、図１２を参照して説明する。ステップ１２００からステップ１２３０までの処理は、図８に示したステップ８００からステップ８３０まで、図１０に示したステップ１０００からステップ１０３０までの処理と同様である。このため、ここではその説明を省略する。ステップ１２４０では、透過率算出部２２が透過率情報を算出すると同時に、あるいはその後に、空領域検知部２６が画像における空領域の検知を行う。空領域検知部２６は、検知した空領域の情報をコントラスト調整部２３のCLAHE処理部２４へ送る。
【００８２】
ステップ１２５０からステップ１２８０までの処理は、図８に示したステップ８４０からステップ８７０まで、図１０に示したステップ１０５０からステップ１０８０までの処理と同様である。ただし、ステップ１２５０のクリップ値の決定において、空領域は、指定されたクリップ値、例えばクリップ値を最小値に設定し、コントラストの調整をあまり実施しないようにする。なお、空領域については、CLAHE処理部２４が全く処理を実施せず、そのまま彩度補正部２５へ出力してもよい。
【００８３】
空領域についてコントラスト調整をあまり実施しない、あるいは全く実施しないようにすることで、空領域のノイズを減少し、霧補正画像の高画質化を実現することができる。ここでは、空領域を一例に挙げたが、コントラスト調整をあまり実施したくない領域については、この方法と同様にして、その領域を抽出し、抽出した領域のクリップ値を最小値に設定することができる。また、その抽出した領域については、コントラスト調整を実施せずに出力することもできる。
【００８４】
上記では、コントラスト調整をあまり実施したくない領域について説明したが、その反対に、コントラスト調整を積極的に実施したい領域も存在する。例えば、車載用カメラで撮像する場合の道路の領域（道路領域）等である。車載用カメラをドライブレコーダーの用途として用いる場合、撮影対象は、道路上の車や物であり、自動運転用のカメラであれば、道路上の車、歩行者、標識、信号等であり、道路上にあるものが中心である。
【００８５】
したがって、このような領域については、上記とは反対に、クリップ値を大きく設定することで、透過率に関係なく、常にその領域の視認性を向上させることができる。その領域として、道路領域を一例に挙げて説明するが、これに限定されるものではない。図１３（ａ）は、撮像装置１０により撮像される画像の一例を示した図で、図１３（ｂ）は、その画像において道路領域を検知したところを示した図である。
【００８６】
道路領域を検知する技術はこれまでに数多く知られている。例えば、特開平７−０２８９７５号公報を参照されたい。この技術では、左右の白線を検知し、２つの白線内の領域を走行レーンとして認識する。しかしながら、道路領域は、走行レーンのみではないので、対向車が走行するレーンを含めた図１３（ｂ）に斜線で示す領域として検知することが望ましい。
【００８７】
そこで、画像処理回路１８は、図１４に示すように、この道路領域を検知する道路領域検知部２７をさらに備えることができる。その他の構成は、図２に示した構成と同様である。道路領域検知部２７は、空領域検知部２６と同様、ISP部２１から画像データを取得し、その画像データにおける画像から道路領域を検知する。道路領域検知部２７は、その検知した道路領域の情報をコントラスト調整部２３に送る。コントラスト調整部２３では、CLAHE処理部２４が道路領域のコントラストを向上させるようにクリップ値を決定する。
【００８８】
道路領域か否か、また、道路領域に近いか遠いかにより、クリップ値を変化させるため、道路用制御パラメータDを用いる。この道路用制御パラメータDを用いたクリップ値の算出式を、下記式９に示す。Dは、道路領域を０とし、道路領域から所定距離以上離れている領域を１とし、その間の領域を、道路領域からの距離に応じて０から１の間の値を設定する。
【００８９】
【数９】
0006531542.tif 000010
【００９０】
上記式９では、透過率情報を加味しながら、道路領域に近いほどクリップ値を大きく、道路領域から遠いほどクリップ値が小さくなるように、クリップ値を算出することができる。この場合も、輝度だけではなく、彩度を向上させるべく、道路用制御パラメータDを用いて彩度補正を行うことができる。その計算式を下記式１０に示す。
【００９１】
【数１０】
0006531542.tif 000011
【００９２】
この道路領域検知部２７を備える撮像装置１０が行う処理を、図１５を参照して説明する。ステップ１５００からステップ１５３０までの処理は、図８に示したステップ８００からステップ８３０まで等の処理と同様である。このため、ここではその説明を省略する。ステップ１５４０では、透過率算出部２２が透過率情報を算出すると同時に、あるいはその後に、道路領域検知部２７が画像における道路領域の検知を行う。道路領域検知部２７は、検知した道路領域の情報をコントラスト調整部２３のCLAHE処理部２４へ送る。
【００９３】
ステップ１５５０からステップ１５８０までの処理は、図８に示したステップ８４０からステップ８７０まで等の処理と同様である。ただし、ステップ１５５０のクリップ値の決定において、道路領域は、指定されたクリップ値、例えばクリップ値を道路領域以外の領域より大きい値に設定し、コントラストの調整具合を大きくする。
【００９４】
これまで、霧画像を例にとり、透過率情報を利用してコントラスト調整を行う処理について説明してきた。その際、指定された分割条件として、画像を複数の矩形のタイルに分割するという条件に従い、そのように領域分割し、タイル毎にクリップ値を決定し、CLAHEを実施し、彩度補正を行っている。このようにタイルで分割すると、図１６（ａ）に示す家のように、そのタイルの境界を跨ぐオブジェクトは、その境界で画像処理のパラメータが切り替わるため、画像処理の結果に差が出てしまう。そうすると、画像処理後の画像は、違和感のある画像になる。
【００９５】
例えば、特許第３５４３１０３号公報に記載のように、テクスチャ解析によりオブジェクトの形状を抽出し、オブジェクト毎に領域分割する技術が知られている。このようにオブジェクトを分割することで、上記の問題を解決することができる。しかしながら、図１６（ｂ）に示すように霧が濃い画像の場合、オブジェクトの形状の抽出が難しく、オブジェクト毎に領域分割するのは困難である。領域分割ができたとしても、処理時間が膨大であり、リアルタイムでの処理は困難である。
【００９６】
そこで、霧により低減したコントラストを改善するために、霧の影響の強さに応じて領域分割し、分割した領域毎にコントラストを調整して、白とびや黒つぶれ等の違和感のない画像を出力できるようにする。領域を分割する方法としては、後述する暗画像と呼ばれる白黒一版の画像を用いる方法を一例として挙げることができる。この方法では、画像処理により暗画像を作成し、作成した暗画像の画素値に応じて領域を分割する。したがって、この方法を用いる場合、分割条件が、所定数のタイルに分割ではなく、暗画像の画素値に応じて領域分割するという条件となる。
【００９７】
詳細については後述するが、簡単に説明すると、図１７に示す白から黒へ画素値を５段階に調整した暗画像を作成する。ここでは５段階としているが、その他の数の段階とすることも可能である。原画像を、暗画像の画素値に応じて各領域に分割する。暗画像の白で示される領域は、空領域であり、コントラスト改善の必要はないため、図１７に示すように４つの領域に分割する。なお、画像内の建物と街灯は、それを構成する暗画像の画素値が同じ段階のものであるため、同じ領域として扱うことができる。このようにして分割した各領域に対し、コントラスト調整を行うことができる。
【００９８】
図１７を参照して、暗画像について詳細に説明する。暗画像は、画素値が低い（暗い）ほど、その奥行き量が小さい近距離にあり、画素値が高い（明るい）ほど、その奥行き量が大きい遠距離にある。暗画像は、撮像装置１０から撮像対象まで距離に応じて上記の段階を変えた画像である。したがって、複数の撮像装置を用いたステレオマッチング等の画像処理による距離計測で、あるいはレーザーレーダ等の画像処理以外の方法で距離情報を取得し、その距離情報に基づき、暗画像を作成することができる。
【００９９】
暗画像の輝度値は、撮像装置１０から撮像対象までの距離に依存するだけではなく、透過率にも依存する。霧は、撮像装置１０から遠いほど透過率が小さく、近いほど透過率が大きい。つまり、暗画像の画素値が低いと透過率が大きく、画素値が高いと透過率は小さい。このため、暗画像ではなく、透過率を計測する透過率計測手段を用い、計測された透過率により領域分割することも可能である。
【０１００】
次に、図１８を参照して、暗画像の作成方法について説明する。この暗画像の作成方法は、上述したダークチャンネルを用いる方法と同様のものである。この例では、原画像をRGB画像とする。図１８（ａ）に示す原画像を構成する画素毎にRGBの最小値を選択する。各画素は、R、G、Bの各々につき画素値を有し、その最小値を選択する。このようにRGBの最小値を選択することで、単純に明度を選択する場合とは異なり、街灯等の光源に対しても適切な暗画像を作成することができる。
【０１０１】
次に、図１８（ｂ）に示すように、RGB最小値を選択した画像の中の選択された画像（注目画像）３０を含む所定の範囲内にある注目画素３０以外の画素を周辺画素とし、その周辺画素のRGB最小値に置換する。このように周辺画素の情報を利用することで、建物の壁と窓のように、撮像装置１０からの距離は同じであるが、画素値が異なるオブジェクトを同じ画素値に置換することができる。なお、所定の範囲３１は、注目画素３０を中心とし、その注目画素３０を取り囲む全部で９つの画素からなる範囲等、任意に設定することが可能である。
【０１０２】
なお、周辺画素の情報を利用して画素値を置換していくと、本当は注目画素３０の右側、下側にある周辺画素だけを置き換えればよいのに、注目画素３０の上側、左側にある周辺画素も置き換えられてしまう。すると、図１８（ｃ）に示すように画像内のオブジェクトが膨張してしまう。図１８（ｃ）では、画像内のすべてのオブジェクト、すなわち山、家、街灯、建物が膨張している。
【０１０３】
このような状態でコントラスト調整を行うと、ハローと呼ばれるオブジェクトの境界部分の滲みが発生する。したがって、ハローが発生しないように、オブジェクトの元の形状と、暗画像のオブジェクトの形状とが一致するようにエッジ補正を行う。エッジ補正は、原画像を利用するガイデッドフィルタ等、汎用的な画像処理方法を用いることができる。
【０１０４】
したがって、RGB最小値を選択し、次に、注目画素３０を周辺画素のRGB最小値に置き換え、最後に、エッジ補正を行うことで、図１８（ｄ）に示す暗画像を作成することができる。ここでは、RGB画像としたが、このような３版の画像に限られるものではない。ただし、Labのように明度とそれ以外の版、YUVのように輝度とそれ以外の版に分けられた色空間では、この方法を用いることができない。
【０１０５】
暗画像は、図１８に示したように原画像から作成することもできるし、図１７および上述したように、距離情報、透過率情報を用いて作成することもできる。ちなみに、暗画像の画素値は、原画像の画素値が２５６階調であれば、原画像と同じく、２５６階調である。したがって、画素値に基づき領域分割する場合、画素値を任意の範囲に区切り、その範囲内の画素値をもつ画素を同じ領域とすることができる。
【０１０６】
図１９を参照して、領域分割する方法について説明する。図１９（ａ）は、暗画像の画素値が０から２５５までの２５６段階である場合に、画素値と、その画素値をもつ画素の画素数との関係を棒グラフにて示した暗画像ヒストグラムである。ここでは、コントラスト調整を行う領域を４つに分割するため、暗画像を４つの領域に分割する例を用いて説明する。
【０１０７】
４つの領域に分割するために３つの閾値を用意する。１つの方法は、図１９（ｂ）に示す分散を考慮した分割方法である。この方法では、閾値の上下で分散値が最大になるように閾値を決定する。別の方法としては、図１９（ｃ）に示す単純分割法である。この方法では、２５６段階を均等に分けた範囲で分割するため、閾値を単純に６４、１２８、１９２としている。これらは一例であり、分割の方法は、これら以外の方法を用いることができ、分割数も４つ以外とすることができる。
【０１０８】
これまで暗画像について説明してきたが、暗画像を用いて原画像を領域分割した後、各領域につき実施するコントラスト調整について、図２０を参照して説明する。図２０（ａ）は、原画像のヒストグラムを例示した図で、図２０（ｂ）は、各画素値の画素数を加算し、累積した累積ヒストグラムを例示した図で、図２０（ｃ）は、ヒストグラム平坦化用の変換曲線を例示した図である。
【０１０９】
原画像がRGB画像等の３版の画像である場合、３版のそれぞれに対してヒストグラム平坦化処理を実施する。ヒストグラム平坦化処理は、上記のクリップ値を用いて実施することができる。まず、分割した領域毎に図２０（ａ）に示すようなヒストグラムを算出する。ヒストグラムは、画素値をxとすると、関数h(x)で表すことができる。このヒストグラムから各画素値の画素数を加算し、累積して累積ヒストグラムを算出する。累積ヒストグラムも、画素値をxとすると、関数H(x)で表すことができる。関数H(x)は、下記式１１で表すことができる。なお、関数H(x)は、x=0のとき、H(0)=h(0)である。
【０１１０】
【数１１】
0006531542.tif 000012
【０１１１】
変換曲線は、上記のようにクリップ値を決定し、その決定したクリップ値を用いて算出する。この変換曲線は、その入力を画素値xとし、その出力をyとし、y=L(x)とすると、関数L(x)は、下記式１２で表すことができる。
【０１１２】
【数１２】
0006531542.tif 000013
【０１１３】
画像処理回路１８は、図２１に示すように、この暗画像を作成する暗画像作成部２８をさらに備えることができる。その他の構成は、図２に示した構成と同様である。暗画像作成部２８は、ISP部２１から画像データを取得し、その画像データにおける画像から暗画像を作成する。上述したように、計測した距離情報や透過率情報を用いて暗画像を作成することも可能である。暗画像作成部２８は、作成した暗画像のデータをコントラスト調整部２３に送る。コントラスト調整部２３では、CLAHE処理部２４が暗画像の画素値に応じて領域分割し、各領域につきクリップ値を決定する。
【０１１４】
図２２を参照して、この暗画像を用いて領域分割し、コントラスト調整を行う処理について説明する。撮像装置１０は、ユーザによりシャッターボタンが押下されたことを受けて、ステップ２２００からこの処理を開始する。ステップ２２１０では、撮像ユニット１２が画像を撮像し、ステップ２２２０で、コントローラ１３がその画像を画像メモリ１４に保存する。
【０１１５】
ステップ２２３０では、透過率算出部２２が原画像から透過率を算出し、もしくは透過率計測センサ１７が透過率を計測し、撮像素子から撮像対象までの透過率情報を取得する。また、距離計測手段が撮像装置１０から撮影対象までの距離を計測し、距離情報を取得する。なお、距離情報は、画像処理により算出してもよい。
【０１１６】
ステップ２２４０では、暗画像作成部２８が、取得した透過率情報もしくは距離情報を用いて暗画像を作成する。光の透過率は、その距離が遠いほど小さく、その距離が近いほど大きい。暗画像作成部２８は、透過率が大きい、もしくは近距離ほど画素値を低い値に設定し、透過率が小さい、もしくは遠距離ほど画素値を高い値に設定することにより暗画像を作成する。暗画像作成部２８は、作成した暗画像をCLAHE処理部２４へ送る。
【０１１７】
ステップ２２５０では、CLAHE処理部２４が、暗画像を画素値に応じて領域分割する。そして、ステップ２２６０で、CLAHE処理部２４が、領域分割した暗画像に基づき、ISP部２１から入力された原画像を領域分割する。暗画像は、上記の分散を考慮した分割方法や均等に分けた範囲で分割する方法等を使用して領域分割することができる。CLAHE処理部２４は、ステップ２２７０で、分割した各領域につき、上記の方法でクリップ値を決定する。
【０１１８】
CLAHE処理部２４は、ステップ２２８０で、決定したクリップ値を用いてヒストグラム平坦化処理を行い、変換曲線を求める。変換曲線ではなく、LUTであってもよい。変換曲線またはLUTは、各領域につき算出される。そして、CLAHE処理部２４が、各領域につき算出された変換曲線またはLUTを使用して、各領域のコントラスト調整を行う。具体的には、CLAHE処理部２４が、各領域につき算出された変換曲線を使用して、各領域内の画素値を変換する。CLAHE処理部２４は、各領域につき画素値を変換して得られた画像を出力する。
【０１１９】
ステップ２２９０では、彩度補正部２５は、その画像の上記各領域につき彩度補正を行い、コントラスト調整済み画像として出力する。コントラスト調整済み画像は、コントローラ１３を介して画像メモリ１４へ送られ、出力デバイスへ出力するまで保存される。上記処理は、例えば、画像メモリ１４へコントラスト調整済み画像を送り、保存したところで、ステップ２３００にて終了する。
【０１２０】
以上に説明してきたように、画像における各領域の透過率に応じてコントラストの制約値であるクリップ値の大きさを切り替えることで、適切にコントラスト調整を行うことができ、画像の視認性を向上させることができる。また、各領域を矩形のタイルに分割するのではなく、透過率や距離等で適切な領域に分割することで、さらに視認性を向上させることができる。
【０１２１】
これまで説明した実施形態では、透過率や距離等に応じてヒストグラム平坦化を行う領域を分割し、テクスチャ領域の検知が困難な濃霧時でも画像のコントラストを改善することができる。しかしながら、分割数が任意であるため、分割数によっては、空領域等の本来は同じ領域とするべき箇所が分割される。この場合、本当はその部分が境界ではないのに境界が形成されることで、疑似輪郭が発生してしまう場合がある。また、霧除去した結果の明度の大小が晴天時と入れ替わる場合もあり、これでは画像のコントラストの改善が十分とは言えない。そこで以下に説明する暗画像の分割方法を採用することで、疑似輪郭の発生や白とび、黒つぶれなどをなくし、画像のコントラストをより改善することができる。
【０１２２】
まず、暗画像の画素値の分割について、図２３を参照して説明する。図２３に示すようなヒストグラムがあった場合、任意の値wを閾値とし、そのwで分割する。画像をパターン領域と背景領域とにクラス分けした際、閾値未満の画素値をもつ画素の、画素数をω1、平均をm1、分散をσ1とし、閾値以上の画素値をもつ画素の、画素数をω2、平均をm2、分散をσ2とする。すると、クラス間分散σb2は、下記式１３で表すことができる。
【０１２３】
【数１３】
0006531542.tif 000014
【０１２４】
この実施形態では、上記式１３を用い、wの値を変え、クラス間分散σb2が最大になる閾値を第一の閾値とする。このときのwの変動範囲は、画像データの画素値のビット精度に従い、8bitの画像データの場合、０〜２５５とすることができる。10bitの画像データの場合は、０〜１０２３とすることができる。また、空領域モードの場合は０〜空領域の閾値とすることができる。
【０１２５】
なお、閾値wを決める式は、上記式１３に限定されるものではなく、その他の式を用いることもできる。分割数は、任意で設定することができ、その分割数を２とする場合は、閾値wのみを決定すればよい。
【０１２６】
次に、暗画像の画素値の再分割について、図２４を参照して説明する。閾値wを上記式１３によって決定した後、閾値w以下の暗画像の画素値をさらに２つの領域に分割することができる。分割する場合の閾値をuとすると、閾値uは、閾値wを算出した方法と同様の上記式１３を用いて算出する。同じ式を用いて算出するのは、同じ基準で閾値を算出するためである。
【０１２７】
閾値wを決定したときと同様に、クラス間分散σb2が最大になる閾値を第二の閾値uとすることで、暗画像の画素値を０〜u、u〜w、w〜２５５の３つの領域に分割することができる。同様にして、閾値w〜２５５間での閾値vを算出することで、４つの領域に分割することができる。暗画像の画素値は、２つの領域、３つの領域、４つの領域に限定されるものではなく、５つ以上の領域に分割してもよい。
【０１２８】
上記のような処理を繰り返すことで、領域の数を最適に分割することができる。なお、閾値の数を多く設定することで、領域はいくつでも分割できるが、クラス間分散σb2が、ある設定値σwより小さい場合は分割しないほうが望ましい。その理由は、あまり細かく閾値を設定すると、同じ領域にすべき箇所が分割され、上記の疑似輪郭が発生してしまうためである。
【０１２９】
閾値uを探索する際、閾値uがどんな値を取ったとしても、クラス間分散σb2が常にσw以下である場合は、閾値uでは分割をせず、次の閾値vの探索に移行する。σwはユーザが任意で設定してもよいし、暗画像全体の分散値から設定してもよい。このような処理を行うことで、分割する領域数を最適にし、上記の疑似輪郭の発生をなくすことができる。なお、この分割および再分割は、上記のコントラスト調整部２３により実行することができる。
【０１３０】
上記の暗画像の画素値を分割および再分割する処理を、図２５を参照して説明する。ステップ２５００からこの処理を開始し、ステップ２５０５では、図１８に示した方法で暗画像を取得し、ステップ２５１０では、画像データの画素ごとに算出された暗画像の画素値から、図２３に示すような暗画像のヒストグラムを作成する。
【０１３１】
ステップ２５１５では、作成したヒストグラムを用いて暗画像の領域を分割するために、上記式１３を用いてクラス間分散σb2を算出する。ステップ２５２０では、このσb2を領域分割用の閾値wを変えるごとに算出し、σb2の最大値Σを決定し、最大値Σのときの領域分割閾値wの値を記憶しておく。
【０１３２】
ステップ２５２５では、最大値Σとあらかじめ設定された閾値σwとを比較し、Σがσwより大きいかどうかを判断する。Σがσw以下である場合、ステップ２５５５へ進み、この処理を終了する。この場合、領域分割が無いものとして図２０に示したコントラスト調整を行う。Σがσwより大きい場合、ステップ２５３０へ進み、領域分割閾値wを第一の閾値と決定する。
【０１３３】
ステップ２５３５、ステップ２５４０では、図２４で示したように、ステップ２５３０で分割した領域をさらに再分割する閾値uを算出する。算出方法はステップ２５１５、ステップ２５２０と同様である。ステップ２５４５では、ステップ２５２５と同様に、Σとσwとを比較し、Σがσwより大きいかどうかを判断する。Σがσw以下である場合、ステップ２５５０へ進み、Σがσwより大きい場合、ステップ２５３０へ戻り、領域分割閾値を決定する。
【０１３４】
ステップ２５５０では、他に分割判定をする領域があるかを判断し、領域がない場合にはステップ２５５５へ進み、この処理を終了する。領域がある場合には、ステップ２５３０へ戻り、残った領域に対して、領域分割閾値を決定する。ここで、残った領域とは、閾値w以上の領域である。この残った領域につき、上記でいう閾値vを決定する。なお、ステップ２５５０では、他に分割判定をする領域の有無で処理の終了を判定しているが、分割した領域数が一定以上のときに処理を終了してもよい。
【０１３５】
ここまで暗画像の画素値を分割および再分割する処理について説明してきたが、この処理を含むコントラスト調整を行う全体の処理を、図２６を参照して説明する。ステップ２６００からこの処理を開始し、ステップ２６１０において撮像装置１０により原画像を取得する。原画像はＲＧＢ画像である。
【０１３６】
ステップ２６２０では、暗画像作成のための、撮像装置１０から撮影対象までの透過率、もしくは撮像装置１０から撮影対象までの距離を算出するかを判断する。原画像の画像処理によって透過率や距離を求める場合には、透過率や距離を算出し、ステップ２６４０へ進む。透過率計測器や距離計測器によって透過率や距離を求める場合には、ステップ２６３０へ進み、計測を行う。
【０１３７】
ステップ２６４０では、ステップ２６２０またはステップ２６３０で求めた透過率や距離を用いて、図１８に示した方法で暗画像を作成する。ステップ２６５０では図２３および図２４に示した方法で暗画像を分割する。ステップ２６６０では図２５に示した方法で原画像を分割する。ステップ２６７０では図２０に示した方法でコントラスト調整パラメータを作成する。
【０１３８】
ステップ２６８０では、原画像に対してステップ２６７０で作成したパラメータを用いて、コントラストを調整し、処理を終了する。コントラスト調整は図２０に示したヒストグラム平坦化により実施することができる。これ以外のコントラスト調整としては、領域毎の最大画素値と最小画素値をもとに線形に補正する方法や、画像の階調の応答特性を示すガンマが１となるよう、適当なガンマ値のカーブに従って画像の階調を補正するガンマ補正などの方法を用いて実施することも可能である。
【０１３９】
これまでの説明では、コントラスト調整を行う対象の画像を、撮像装置１０により撮像して得られた画像として説明してきたが、撮像装置１０により撮像された画像に限定されるものではない。したがって、ネットワークを介してサーバ等から受信して取得した画像や、CD-ROMやSDカード等の記録媒体に記録された画像等であってもよい。
【０１４０】
また、画像処理装置あるいは画像処理システムは、図２、図１１、図１４、図２１に例示した構成に限定されるものではなく、空領域検知部２６、道路領域検知部２７、暗画像作成部２８のうちの２つを備えた構成であってもよい。また、それらの全部を備えた構成であってもよい。
【０１４１】
これまで本発明を、画像処理装置、画像処理システム、撮像装置、画像処理方法およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。本発明は、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、本発明は、上記プログラムが記録された記録媒体や、そのプログラムを、ネットワークを介して提供するサーバ装置等も提供することができるものである。
【符号の説明】
【０１４２】
１０…撮像装置、１１…レンズユニット、１２…撮像ユニット、１３…コントローラ、１４…画像メモリ、１５…操作ユニット、１６…出力I/F、１７…透過率計測センサ、１８…画像処理回路、２０…CTL I/F、２１…ISP部、２２…透過率算出部、２３…コントラスト調整部、２４…CLAHE処理部、２５…彩度補正部、２６…空領域検知部、２７…道路領域検知部、２８…暗画像作成部、３０…注目画素、３１…周辺画素の範囲
【先行技術文献】
【特許文献】
【０１４３】
【特許文献１】特許第３５４３１０３号公報
【特許文献２】特開２００６−１９５６５１号公報
【図１】
0006531542.tif 000015
【図２】
0006531542.tif 000016
【図３】
0006531542.tif 000017
【図４】
0006531542.tif 000018
【図５】
0006531542.tif 000019
【図６】
0006531542.tif 000020
【図７】
0006531542.tif 000021
【図８】
0006531542.tif 000022
【図９】
0006531542.tif 000023
【図１０】
0006531542.tif 000024
【図１１】
0006531542.tif 000025
【図１２】
0006531542.tif 000026
【図１３】
0006531542.tif 000027
【図１４】
0006531542.tif 000028
【図１５】
0006531542.tif 000029
【図１６】
0006531542.tif 000030
【図１７】
0006531542.tif 000031
【図１８】
0006531542.tif 000032
【図１９】
0006531542.tif 000033
【図２０】
0006531542.tif 000034
【図２１】
0006531542.tif 000035
【図２２】
0006531542.tif 000036
【図２３】
0006531542.tif 000037
【図２４】
0006531542.tif 000038
【図２５】
0006531542.tif 000039
【図２６】
0006531542.tif 000040