(57)【要約】【課題】  撮影シーンの状況や、視認性の上げたいオブジェクトに合わせて、映像中の霧霞の影響を除去する。【解決手段】  撮像部による撮像で得た画像データを処理する画像処理装置であって、画像データをもとに、微粒子成分の影響を除去する処理を行うための第１のパラメータを設定する第１の設定部と、該第１の設定部により設定された第１のパラメータに基づいて、微粒子除去処理を行う第１の画像処理部と、第１のパラメータとは異なる第２のパラメータを設定する第２の設定部と、該第２のタ設定部で設定した第２のパラメータに基づいて、微粒子除去処理を行う第２の画像処理部と、第１の画像処理部と、第２の画像処理部とを採用する領域をそれぞれ設定する設定部と、第１の画像処理部と第２の画像処理部との結果とを、設定部によって設定された領域にそれぞれ適用し、微粒子の影響の除去後の画像データを生成する生成部とを有する。【選択図】  図２
2020181399.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段による撮像で得た画像データを処理する画像処理装置であって、
前記画像データをもとに、微粒子成分の影響を除去する処理を行うための第１のパラメータを設定する第１の設定手段と、
該第１の設定手段により設定された前記第１のパラメータに基づいて、微粒子除去処理を行う第１の画像処理手段と、
前記第１のパラメータとは異なる第２のパラメータを設定する第２の設定手段と、
該第２の設定手段で設定した前記第２のパラメータに基づいて、微粒子除去処理を行う第２の画像処理手段と、
前記第１の画像処理手段と、前記第２の画像処理手段とを採用する領域をそれぞれ設定する設定手段と、
前記第１の画像処理手段と前記第２の画像処理手段との結果とを、前記設定手段によって設定された領域にそれぞれ適用し、微粒子の影響の除去後の画像データを生成する生成手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記第２のパラメータは、前記第１のパラメータよりも、前記微粒子成分をより除去するためのパラメータであって、
前記設定手段は、
前記第１の画像処理手段より得た画像データから検出対象のオブジェクトを検出する検出手段と、
該検出手段によりオブジェクトの検出領域と非検出領域とを判定する判定手段とを含み、
前記非検出領域を前記第２の画像処理手段による処理対象として設定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、
前記判定手段による前記検出領域については前記第１の画像処理手段で得た画像データを、前記判定手段による前記非検出領域については前記第２の画像処理手段で得た画像データを選択することで、合成画像を生成する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
更に前記撮像手段を有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
撮像手段による撮像で得た画像データを処理する画像処理装置の制御方法であって、
第１の設定手段が、前記画像データをもとに、微粒子成分の影響を除去する処理を行うための第１のパラメータを設定する第１の設定工程と、
第１の画像処理手段が、前記第１の設定工程により設定された前記第１のパラメータに基づいて、微粒子除去処理を行う第１の画像処理工程と、
第２の設定手段が、前記第１のパラメータとは異なる第２のパラメータを設定する第２の設定工程と、
第２の画像処理手段が、前記第２の設定工程で設定した前記第２のパラメータに基づいて、微粒子除去処理を行う第２の画像処理工程と、
領域設定手段が、前記第１の画像処理工程と、前記第２の画像処理工程とを採用する領域をそれぞれ設定する設定工程と、
生成手段が、前記第１の画像処理工程と前記第２の画像処理工程との結果とを、前記設定工程によって設定された領域にそれぞれ適用し、微粒子の影響の除去後の画像データを生成する生成工程と
を有することを特徴とする画像処理装置の制御方法。
【請求項６】
コンピュータが読み込み実行することで、前記コンピュータに、請求項５に記載の方法が有する各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大気中の微粒子の影響による、画像の視認性低下を改善する技術に関するものである。
【背景技術】
【０００２】
監視カメラなどの分野において、カメラから被写体までの間に存在する微小粒子成分（例えば、霧）によって視認性が低下し、撮像画像の画質が劣化することが問題となっている。  霧などによって視認性が低下した画像を補正する技術（霧霞除去技術）として、特許文献１が提案されている。特許文献１では、着目画素ごとに周囲の所定範囲におけるＲＧＢチャンネル内での最小値を算出し、この最小値画像を用いて、コントラストを補正することで視認性の改善を行う。また、特許文献２では、入力映像からヒストグラムを求め、そのヒストグラムの尤度や尖度もとに、霧霞除去処理のパラメータを決定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国公開2011/0188775号公報
【特許文献２】米国公開2016/0328832号公報
【非特許文献】
【０００４】
【非特許文献１】Guided Image Filtering, Kaiming He, Jian Sun, and Xiaoou Tang, in ECCV 2010(Oral)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、画像処理を行う際のパラメータは画像全体に対して一意に保持している。しかしながら、比較的近い距離にある被写体に対して霧霞除去技術を適用する場合と、遠い距離にある被写体に対して霧霞除去技術を適用する場合では、パラメータを変えたほうが良い場合がある。このときに、遠い距離にある被写体向けのパラメータで処理を行うと、近い距離にある被写体に対しては効果が強くなりすぎてしまい、不自然な画像となる可能性があった。
【０００６】
また、特許文献２に記載の技術では、画像全体のヒストグラムをもとにパラメータを決定してしまう。このため、ユーザーが画像中の特定のオブジェクト（例えば人物）の視認性を向上させたい場合でも、画像全体で視認性を向上させるよう処理が行われるため、特に霧の強い場所にいる人物は視認性が上がらなかった。また、霧の強い場所にいる人物の視認性を向上させようとした場合、すでに視認性が確保されている人物に対して、過剰に霧霞除去処理を適用してしまい、不自然な画像となってしまう可能性があった。
【０００７】
本発明では、撮影シーンの状況や、視認性の上げたいオブジェクトに合わせて、映像中の霧霞の影響を除去する技術を提供する。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
撮像手段による撮像で得た画像データを処理する画像処理装置であって、
前記画像データをもとに、微粒子成分の影響を除去する処理を行うための第１のパラメータを設定する第１の設定手段と、
該第１の設定手段により設定された前記第１のパラメータに基づいて、微粒子除去処理を行う第１の画像処理手段と、
前記第１のパラメータとは異なる第２のパラメータを設定する第２の設定手段と、
該第２の設定手段で設定した前記第２のパラメータに基づいて、微粒子除去処理を行う第２の画像処理手段と、
前記第１の画像処理手段と、前記第２の画像処理手段とを採用する領域をそれぞれ設定する設定手段と、
前記第１の画像処理手段と前記第２の画像処理手段との結果とを、前記設定手段によって設定された領域にそれぞれ適用し、微粒子の影響の除去後の画像データを生成する生成手段とを有する。
【発明の効果】
【０００９】
本発明によれば、撮影シーンの状況や、視認性の上げたいオブジェクトに合わせて、映像中の霧霞の影響を除去する。
【図面の簡単な説明】
【００１０】
【図１】実施形態における画像処理装置のブロック構成図。
【図２】実施形態に示す画像処理装置の機能ブロック図。
【図３】実施形態に示す微粒子除去処理部の内部構成を示す図。
【図４】実施形態の画像処理装置における処理を示すフローチャート。
【図５】実施形態の微粒子除去処理を示すフローチャート。
【図６】実施形態の下位画素画像生成の過程を示す模式図。
【図７】実施形態の大気光推定処理を示すフローチャート。
【図８】実施形態の下位画素補正画像生成処理を示すフローチャート。
【図９】実施形態のＲＧＢ下位画素値補正画像の生成処理を示すフローチャート。
【図１０】実施形態のＲＧＢ下位画像生成処理におけるフィルタ処理を示す模式図。
【図１１】実施形態のミー散乱成分生成処理を示すフローチャート。
【図１２】実施形態のレイリー散乱成分生成処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１２】
［概要］
本実施形態では、霧などの微小粒子成分（以下、微粒子）が発生している状況下で、撮影した入力画像に対して、まず微小粒子成分の影響除去処理を行う。次に、人物検出などのオブジェクト検出処理を行うことで、微小粒子成分の影響を除去した画像から人物などのオブジェクトを抽出する。この抽出結果に基づいて、除去画像を生成する際の入力画像のミー散乱成分とレイリー散乱成分の比率を変えることで、微小粒子成分の影響の出方を変えた画像を作る。これらの画像を合成することで、よりオブジェクトの視認性の高い画像得る。
【００１３】
［実施形態の装置構成］
図１は、本実施形態が適用する画像処理装置１００のブロック構成図である。本実施形態の画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ  Ｉ／Ｆ１０４、ＨＤＤ１０５、入力Ｉ／Ｆ１０６、出力Ｉ／Ｆ１０７、システムバス１０８を有する。ＣＰＵ１０１は、以下に述べる各構成を統括的に制御するプロセッサである。ＲＡＭ１０２はＣＰＵ１０１の主メモリ、ワークエリアとして機能するメモリであり、ＲＯＭ１０３は、画像処理装置１００内での処理を司るプログラムや各種パラメータを格納するメモリである。
【００１４】
ＨＤＤ  Ｉ／Ｆ１０４は、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェースであり、二次記憶装置としてのＨＤＤ１０５をシステムバス１０８に接続する。ＣＰＵ１０１は、ＨＤＤ  Ｉ／Ｆ１０４を介してＨＤＤ１０５からのデータ読み出し、およびＨＤＤ１０５へのデータ書き込みが可能である。さらにＣＰＵ１０１は、ＨＤＤ１０５に格納されたデータをＲＡＭ１０２に展開し、同様に、ＲＡＭ１０２に展開されたデータをＨＤＤ１０５に保存することが可能である。そしてＣＰＵ１０１は、ＲＡＭ１０２に展開したデータをプログラムとみなし、実行することができる。なお、二次記憶装置はＨＤＤの他、光ディスクドライブ等の記憶デバイスでもよい。入力Ｉ／Ｆ１０６は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースである。
【００１５】
画像処理装置１００は、入力Ｉ／Ｆ１０６を介して、外部メモリ１０９および撮像部１１１に接続されている。ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して、外部メモリ１０９や撮像部１１１から撮像画像データを取得することができる。出力Ｉ／Ｆ１０７は、例えばＤＶＩやＨＤＭＩ（登録商標）等の映像出力インタフェースである。画像処理装置１００は出力Ｉ／Ｆ１０７を介して表示部１１０と接続されている。ＣＰＵ１０１は、出力Ｉ／Ｆ１０７を介して表示部１１０に画像を出力することで、その画像を表示部１１０に表示することができる。
【００１６】
システムバス１０８は、各種データの転送経路であり、画像処理装置１００内の各構成部はシステムバス１０８を介して相互に接続されている。
【００１７】
外部メモリ１０９はハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなどの記憶媒体であり、画像処理装置１００で処理された画像データなどを保存することができる。
【００１８】
表示部１１０は、ディスプレイなどの表示装置であり、画像処理装置１００で処理された画像などを表示することができる。
【００１９】
撮像部１１１は、被写体の光学像をイメージセンサで受光し、取得した光学像をデジタルの画像データとして出力するカメラである。本実施形態の画像処理装置１００は、撮像部１１１では霧等の微粒子による散乱光によりコントラストが低下した画像データを撮像により取得し、画像処理装置１００では以下に説明する画像処理を施すことで、微粒子の影響が低減された画像を生成する。
【００２０】
操作部１１２は、例えばマウスやキーボードなどの入力機器で構成され、口述する切霞除去範囲の指定を行う際に利用する。
【００２１】
図２は、実施形態に示す画像処理装置の機能ブロック図である。図２に示すように、実施形態の画像処理装置は、入力画像データ取得部２０１、微粒子除去処理部２０２、微粒子除去画像データ出力部２０３、入力画像データ記憶部２０４、微粒子除去画像データ記憶部２０５、オブジェクト抽出処理部２０６を有する。オブジェクト抽出処理部２０６は、公知の人物検出技術や顔検出技術などで構成され、入力画像に対して人物の形や人の顔等を検出し、その領域を検出結果としてオブジェクトデータ記憶部２０７に記憶する。なお、図２に示す各処理部は、ＣＰＵ１０１がＲＯＭ１０３に格納されたプログラムをＲＡＭ１０２に展開し実行することで実現するものとするが、処理部のいくつかはハードウェアでもって実現しても良い。
【００２２】
図３は実施形態における微粒子除去処理部２０２の内部構成図である。微粒子除去処理部２０２は、大気光算出部３０１、下位画素画像算出部３０２、下位画素画像による補正処理部３０４、ＲＧＢ下位画像による補正処理部３０５を持つ。また、微粒子除去処理部２０２は、散乱成分の制御用にミー散乱成分算出部３０６、レイリー散乱成分算出部３０７、合成処理部３０８を持つ。さらに、微粒子除去処理部２０２は、これら各種処理のデータ格納場所として、大気光データ記憶部３０９、下位画素画像データ記憶部３１０、下位画素補正データ記憶部３１２、ＲＧＢ下位画素値補正データ記憶部３１３を持つ。微粒子除去処理部２０２は、散乱成分の制御用としてミー散乱成分データ記憶部３１４、レイリー散乱成分データ記憶部３１５を持つ。さらに、微粒子除去処理部２０２は、微粒子除去処理の処理範囲を決定する画像処理範囲データ記憶部３１６を持つ。
【００２３】
これらの構成ブロックは、ＣＰＵ１０１が、データ保持領域として、ＲＯＭ１０３やＨＤＤ１０５、ＲＡＭ１０２内に保持されたプログラムを、必要に応じてＣＰＵ１０１で実行することで実現するものとするが、そのいくつかはハードウェアでもって実現しても構わない。
【００２４】
［全体処理の流れ］
実施形態の画像処理装置１００における処理の流れを図２のブロック図、および図４のフローチャートを用いて説明する。
【００２５】
Ｓ４０１にて、ＣＰＵ１０１は、入力画像データ取得部２０１を制御し、撮像部２１１による撮像して得た画像データを取得させ、その画像データを入力画像データ記憶部２０４に記憶させる。
【００２６】
Ｓ４０２にて、ＣＰＵ１０１は、入力画像データに対して、微小粒子成分の除去処理を行うためのパラメータ設定を行う。
【００２７】
Ｓ４０３にて、ＣＰＵ１０１は、Ｓ４０２で設定したパラメータに基づいて、微小粒子の影響除去処理を行う（詳細後述）。
【００２８】
Ｓ４０４にて、ＣＰＵ１０１は、Ｓ４０３で微小粒子除去処理を行った画像に対して、公知のオブジェクト検出処理を使って、オブジェクトの検出を行う。ここで、対象となるオブジェクトは、ユーザーが視認性を高めたいオブジェクトを指す。例えば、ユーザーが人物の視認性を高めたい場合は、ＣＰＵ１０１は公知の人物検出処理を適用し、画像データ中から人物を抽出する。ＣＰＵ１０１は、抽出された結果となる人物領域は、その周囲を矩形で囲み、矩形領域の位置情報としてオブジェクト検出結果記憶部２０７に格納する。なお、本実施形態においてオブジェクト検出結果は矩形領域とするが、その形状に特に制限はなく、矩形以外の形状であっても構わない。なお、例えば矩形領域でない場合、各画素についてオブジェクトが検出された画素かどうかを判定すればよい。
【００２９】
Ｓ４０５にて、ＣＰＵ１０１は、微小粒子の影響除去処理を行った後の画像データとオブジェクト検出結果とを比較し、画像データ上のどの領域でオブジェクト検出されたかを判断し、その結果によって処理を変える。具体的には、ＣＰＵ１０１は、画像データ上でオブジェクトが検出されたと判断された領域に該当する画素についてはＳ４０８の処理、オブジェクトが検出されなかったと判断される領域に該当する画素はＳ４０６の処理に移行する。
【００３０】
Ｓ４０６にて、ＣＰＵ１０１は、オブジェクトが検出されなかった領域に対して、さらにオブジェクト検出精度が向上するよう、後続のＳ４０７で行う微小粒子除去処理のパラメータ設定を行う。具体的には、微小粒子除去の効果がより強くなるように設定する。例えば、後述するミー散乱強度係数ｍと、レイリー散乱強度係数ｒを、一回目のパラメータに比べて、二回目のパラメータでは少なくなるようにパラメータ設定する。特に、ｍについては、二回目のパラメータのほうを少なくする、または、０に設定するなどが想定される。
【００３１】
Ｓ４０７にて、ＣＰＵ１０１はＳ４０６で設定された二回目の微小粒子除去処理向けのパラメータを基づいて、微小粒子除去処理を再び行う。この時の処理対象の画像データは、Ｓ４０３で処理後の画像データではなく、Ｓ４０１で得られたオリジナルの入力画像データとする。
【００３２】
そして、Ｓ４０８にて、ＣＰＵ１０１は、Ｓ４０５でオブジェクト検出されたと判定された第一のパラメータでの処理結果の画像と、Ｓ４０７で行った第二のパラメータでの処理結果の画像との合成を行う。具体的には、Ｓ４０４にてオブジェクトが検出されたと判定されている検出領域（画素）については第一のパラメータでの処理結果画像を、非検出領域については第二のパラメータでの処理結果の画像を用いて一つの出力画像を生成する。
【００３３】
このようにして、オブジェクト検出の結果によって領域設定を行い、領域ごとに効果の異なる微小粒子成分の除去処理画像が生成される。
【００３４】
［微粒子の影響除去処理の流れ］
ここで、図４のＳ４０４、Ｓ４０７の微粒子除去処理について、図２、図３の処理ブロック図、及び、図５のフローチャートを用いて詳細に説明する。なお、Ｓ４０４，Ｓ４０７の違いは、処理に用いるパラメータが異なる点である点に注意されたい。
【００３５】
Ｓ５０１にて、下位画素画像算出部３０２は、入力画像データ記憶部２０４に記憶している入力画像データから下位画素画像を算出し（詳細は後述）、下位画素値画像データ記憶部３１０に記憶する。
【００３６】
Ｓ５０２にて、大気光算出部３０１は、入力画像データ記憶部２０４に記憶している入力画像データ、及び、下位画素画像データ記憶部３１０に記憶している下位画素画像データを用いて大気光成分を算出（詳細は後述）する。そして、大気光算出部３０１は、算出した大気光データは大気光データ記憶部３０９に記憶する。
【００３７】
Ｓ５０３にて、下位画素画像による補正処理部３０４は、大気光データ記憶部３０９に記憶している大気光データ、下位画素画像データ記憶部３１０に記憶している下位画素画像データを読み込む。さらに、この補正処理部３０４は、画像処理範囲データ記憶部３１６に記憶している画像処理範囲データも読み込む。そして、補正処理部３０４は、入力画像データ記憶部２０４に記憶している入力画像データの補正を行う（詳細は後述）。補正処理部３０４は、補正後の画像データは、下位画素補正画像データ記憶部３１２に記憶する。
【００３８】
Ｓ５０４にて、ＲＧＢ下位画素画像による補正処理部３０５は、大気光データ記憶部３０９に記憶している大気光データ、入力画像データ記憶部２０４に記憶している入力画像、画像処理範囲データ記憶部３１６に記憶している画像処理範囲データを読み込む。そして、この補正処理部３０５は、入力画像データの補正を行う（詳細は後述）。補正処理部３０５は、補正後の画像データを、ＲＧＢ下位画素補正画像データ記憶部３１３に記憶する。
【００３９】
Ｓ５０５にて、ミー散乱成分算出部３０６は、入力画像データ記憶部２０４に記憶している入力画像データ、及び、下位画素補正画像データ記憶部３１２に記憶している下位画素補正画像データを読み込む。そして、ミー散乱成分算出部３０６は、ミー散乱成分の算出を行う（詳細は後述）。ミー散乱成分算出部３０６は、算出されたミー散乱成分データをミー散乱成分データ記憶部３１４に記憶する。
【００４０】
Ｓ５０６にて、レイリー散乱成分算出部３０７は、入力画像データ記憶部２０４に記憶している入力画像データを読み込む。さらに、レイリー散乱成分算出部３０７は、下位画素補正画像データ記憶部３１０に記憶している下位画素補正画像データ、及び、ＲＧＢ下位画素値補正画像データ記憶部３１１に記憶しているＲＧＢ下位画素値補正画像データも読み込む。そして、レイリー散乱成分算出部３０７は、レイリー散乱成分の算出を行い（詳細は後述）、算出したレイリー散乱成分をレイリー散乱成分データ記憶部３１４に記憶する。
【００４１】
Ｓ５０７にて、合成処理部３０８は、ＲＧＢ下位画素値補正画像データ記憶部３１３に記憶しているＲＧＢ下位画素値補正画像データを読み込む。さらに、合成処理部３０８は、ミー散乱成分データ記憶部３１４に記憶しているミー散乱成分データ、及び、レイリー散乱成分データ記憶部３１５に記憶しているレイリー散乱成分データを読み込む。その後、合成処理部３０８は、画像合成を行い（詳細は後述）、合成後の画像データを微粒子除去画像データ記憶部２０５に記憶する。
【００４２】
以上説明した処理により、Ｓ４０２の微小粒子除去処理が完了する。
【００４３】
［大気光推定］
次に、Ｓ５０２の大気光算出の処理について説明する。大気光算出部３０１は、まず入力画像をＲＧＢ画像から輝度画像（Ｙ画像）へ変換する。次に、大気光算出部３０１は、変換したＹ画像からヒストグラムを生成し、上位１％の値を閾値とし、閾値以上の画素値を持つ画素の位置の中から、ロバスト推定処理を行い、大気光を推定するための画素を決定する。そして、決定された画素の画素値をもとに大気光を推定する。
【００４４】
以下、図７のフローチャートを参照し、実施形態における大気光算出部３０１の詳細を説明する。
【００４５】
Ｓ７０１にて、大気光算出部３０１は、入力画像データ記憶部２０４から入力画像データを読み込む。
【００４６】
Ｓ７０２にて、大気光算出部３０１は、読み込んだ入力画像データをＲＧＢ画像からＹ画像へと変換する。この時、変換式には一般的なＲＧＢ→Ｙ色変換式を適用して構わない。
【００４７】
Ｓ７０３にて、大気光算出部３０１は、Ｓ７０２で変換されたＹ画像（輝度画像）から、大気光推定を行うための大気光位置情報の候補（以下、画素位置候補）を生成する。具体的には、大気光算出部３０１は、読み込まれたＹ画像のヒストグラムを求め、その最大値から上位１％の値を閾値とし、閾値以上の値を持つ画素の位置を、参照画素位置候補として決定する。なお、本実施形態では、閾値を上位１％としたが、実施形態では、これに限らず、異なる比率でも構わない。
【００４８】
Ｓ７０４にて、大気光算出部３０１は、大気光を実際に計算するための参照画素位置情報（以下、画素位置）を決定する。具体的には、Ｓ７０３で決定した画素位置候補をもとにして、その候補をもとにＲＡＮＳＡＣ法などのロバスト推定を用いて大気光位置情報生成を行う。これは、大気光として選択されるべき画素位置は、本来は空部分の画素位置が望ましく、画像上で空以外の高輝度部分を画素位置候補からは除外したいためである。一般的には空以外の高輝度部分は画像上に占める割合は少なく、かつ、空の色とは輝度が異なる傾向にあるため、それを外れ値として扱い、除外することができるロバスト推定を行う。また、この時、画素位置の数を制限することもできる。これは、画像上で空の色がグラデーションになっていたりする場合、同じ空でも画素値が異なるため、あまり多くの画素を参照すると、色が変わった空部分まで推定の対象としてしまうことを避けるためである。
【００４９】
Ｓ７０５にて、大気光算出部３０１は、大気光計算を行うため、Ｓ７０４で決定した画素位置のなかで、初めに大気光成分を抽出する画素位置を決定する。これは、Ｓ７０４で決定した画素位置のうち、ラスタースキャン順の最初の画素位置（たとえば最も左上の画素位置）とすれば良い。
【００５０】
Ｓ７０６にて、大気光算出部３０１は、Ｓ７０５で初期化、またはＳ７０８で決定した参照画素位置の画素値（Ｒ，Ｇ，Ｂ）を、それぞれの色ごとに加算し、ＲＡＭ１０２などに保持する。
【００５１】
Ｓ７０７にて、大気光算出部３０１は、Ｓ７０４で決定した画素位置を全て検索したか否かを判定する。大気光算出部３０１は、検索していると判定した場合は処理をＳ７０９へ、未完であると判定した場合は処理をＳ７０８へ進める。
【００５２】
Ｓ７０８にて、大気光算出部３０１は、Ｓ７０４で決定した画素位置を次の位置へ移動させる。具体的には、Ｓ７０４で決定した画素位置のうち、現在参照している画素位置に対してラスタースキャン順に最も近い画素位置とする。
【００５３】
Ｓ７０９にて、大気光算出部３０１は、Ｓ７０６で加算され、ＲＡＭ１０２などに保持された加算画素値を平均化し、大気光成分を計算する。具体的には、大気光算出部３０１は、次式に基づき大気光成分ＡRGBを計算する。
ＡRGB＝（ΣＡR／ｎ，ΣＡG／ｎ，ΣＡB／ｎ）    …（１）
ＡY＝（ΣＡR／ｎ＋ΣＡG／ｎ＋ΣＡB／ｎ）／３  …（２）
ここで、ＡR、ＡG、ＡB、ＡYはそれぞれ、Ｒチャンネル、Ｇチャンネル、Ｂチャンネル、下位画素画像の大気光成分の値を示す。また、ｎはＳ７０４で決定した参照画素の総数、ΣはＳ７０４で決定した画素の数の和を示す。なお、ここで示した式（１）、（２）はあくまで一例であり、実施形態における大気光推定のための計算式は、他の式であっても構わない。たとえば、式（２）を、ΣＡR／ｎ，ΣＡG／ｎ，ΣＡB／ｎの中で最も小さい値としてもよい。
【００５４】
以上のようにして、大気光成分を推定できる。大気光算出部３０１は、推定された大気光成分を大気光データ記憶部３０９に格納する。
【００５５】
［下位画素画像作成］
次に、Ｓ５０１の下位画素画像算出部３０２による下位画素画像生成処理を、図６（ａ），（ｂ）を用いて説明する。図６（ａ）のように、入力画像中のある注目画素Ｐ５を中心にして、周囲ピクセルの画素をＰ１〜Ｐ４，Ｐ６〜Ｐ９と表す。また、画素Ｐ１〜Ｐ９が有するＲ，Ｇ，Ｂの成分値を、Ｐ１（Ｒ１，Ｇ１，Ｂ１）〜Ｐ９（Ｒ９，Ｇ９，Ｂ９）と表現する。
【００５６】
そして、これらの成分値順が、Ｒ５＞Ｂ３＞Ｒ２＞・・・＞Ｒ４＞Ｂ１＞Ｇ９＞Ｇ７であったとする。この時、注目画素Ｐ５の下位画素をＴ１としたとき、Ｔ１は式（３）に示すように、最下位の成分値Ｇ７を除いた下位３つの成分値の加重平均とする。最小値ではなく、加重平均を取ることで、下位画素画像がセンサノイズの影響を強く受けることを抑制する。つまり、最小値を取る場合に比べ、処理後の画像にセンサノイズの影響を強く受けた画素が生成されてしまうことを抑制できる。
Ｔ１＝（２×Ｒ４＋４×Ｂ１＋２×Ｇ９）／８  …（３）
下位画素画像算出部３０２は以上の処理を全画素に対して行うことで、下位画素画像を生成することになる。そして、下位画素画像算出部３０２は、生成した下位画素画像を下位画素画像データ記憶部３１０に保存する。なお、上記で挙げた計算方法は下位画素画像を求める際の計算式の例であり、この計算式に沿っている必要はない。たとえば、下位２番目から下位４つの画素を平均することで求めてもよい。また、また、本実施形態では注目画素から１画素分の距離にある周囲画素を参照し下位画素を生成したが、もちろん２画素分の距離になる周囲画素を参照して下位画素を求めてもよいし、更なる距離にある周囲画素を参照しても構わない。図６（ａ），（ｂ）は、あくまで例示であると理解されたい。
【００５７】
［下位画素画像による補正画像生成］
次に、補正処理部３０４による下位画素画像による補正画像生成処理（図５のＳ５０３）を、図８のフローチャートを参照して説明する。
【００５８】
Ｓ８０１にて、補正処理部３０４は、下位画素画像、大気光データ、および入力画像を大気光データ記憶部３０９、下位画素画像データ記憶部３１０、入力画像データ記憶部２０４から読み出す。
【００５９】
Ｓ８０２にて、補正処理部３０４は、大気光データで下位画素画像を補正し、補正後下位画素画像ｌｏｗｅｒ＿Ａを算出する。具体的には、補正処理部３０４は、次式（４）に従って、下位画素画像を大気光データに基づき補正する。
ｌｏｗｅｒ＿Ａ＝Ｔin_lower／ＡY      …（４）
ここで、Ｔin_lowerは、Ｓ５０２で生成した下位画素画像を示す。
【００６０】
Ｓ８０３にて、補正処理部３０４は、Ｓ８０２で求めた補正後下位画素画像ｌｏｗｅｒ＿Ａをもとに、透過率分布tlower (x,y)を生成する。具体的には、Ｓ８０２で生成したｌｏｗｅｒ＿Ａ（ｘ、ｙ）に対して、以下の式を適用する。
ｔlower＝１．０−ω×lower_A(x,y)      …（５）
ここで、ωは調整のための係数で、例えば“0.9”とする。また、ｘ、ｙは、画像の水平方向及び垂直方向の座標である。係数ωは、対象の画素の透過光が霧などの微小粒子による散乱光のみで構成されていた場合に透過率が０になり、微小粒子除去処理後の画素値が０になるのを避けるために設けられた値であって、上で挙げた“0.9”でなくても良い。
【００６１】
Ｓ８０４にて、補正処理部３０４は、Ｓ８０３で生成した透過率分布を、入力画像と、ＵＩから入力された画像処理範囲データに合わせて整形する。これは、透過率分布ｔlower(x,y)を、撮像データに含まれる構造物等、被写体形状に合わせる必要があることと、ＵＩにより指定された透過率分布範囲に処理範囲を限定するためである。Ｓ８０３までの処理で、透過率分布ｔ(x,y)は、撮像データ内の大まかな被写体形状情報のみが含まれている状態にあり、被写体形状を精度よく分離する必要があるためである。具体的には、非特許文献１に記載されるような公知のエッジキープ型フィルタを用いればよい。
【００６２】
次に、ＵＩにより指定された透過率分布範囲以外の画素部分については、微小粒子の影響除去処理を行わないようにする。透過率分布ｔlower(x,y)に対して、ＵＩで指定したｔ＿ｔｈ＿ｍａｘを超える値、およびｔ＿ｔｈ＿ｍｉｎ未満の値については、ｔlower(x,y)=１を代入する。
【００６３】
なお、本実施形態ではフィルタ処理後にＵＩでの設定値の適用を行っているが、もちろん先にＵＩでの設定値の適用を行っても構わない。
【００６４】
Ｓ８０５にて、補正処理部３０４は、ＡYと、透過率分布ｔlower(x,y)から、下位画素画像による補正画像を計算する。具体的には、次式（６）に基づく。
【００６５】
【数１】
2020181399.tif 000003
ここで、Ｊlowerは下位画素画像による補正画像、Ｉは入力画像、ｔ0は調整のための係数で、例えば“0.1”とする。これは、ｔlowerが限りなく小さい値であった場合、Ｊlowerの値は、入力画像Iとわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた“0.1”でなくても構わない。また、max(…)は、括弧内に並ぶ数値群の中の最大値を返す関数である。
【００６６】
Ｓ８０６にて、補正処理部３０４は、Ｓ８０５で計算した下位画素補正画像Ｊlowerを下位画素補正データ記憶部３１２へ格納する。
【００６７】
以上の処理を行うことで、下位画素画像による微粒子成分の影響を補正した画像を作成することができる。
【００６８】
［ＲＧＢ下位画素値画像による補正画像生成］
次に、ＲＧＢ下位画素画像による補正処理部３０５の補正画像生成処理（図５のＳ５０４）を、図９のフローチャートを参照して説明する。
【００６９】
Ｓ９０１にて、補正処理部３０５は、入力画像データ記憶部２０４から入力画像、大気光データ記憶部３０９から大気光データを読み出す。
【００７０】
Ｓ９０２にて、補正処理部３０５は、大気光データを用いて、入力画像をＲＧＢ各プレーンごとに補正（フィルタ処理）を行うことで、大気光による補正後のＲＧＢ下位画素値画像ｐａｔｃｈ＿ＲＧＢ＿Ａを算出する。
【００７１】
まず、補正処理部３０５は、次式（７）に従って、ＲＧＢ下位画素値画像を大気光データで補正し、大気光で補正したＲＧＢ下位画素画像ＲＧＢ＿Ａを計算する。
ＲＧＢ＿Ａ（ｘ、ｙ、ｃ）＝Ｔin_RGB（ｘ、ｙ、ｃ）／ＡRGB  …（７）
ここで、Ｔin_RGBは、補正前のＲＧＢ下位画素値画像データを示し、ＲＧＢ＿Ａは補正後のＲＧＢ下位画素値画像データを示す。また、ｘ、ｙは画像の水平、垂直方向の座標を示し、ｃは色プレーン（Ｒ，Ｇ，Ｂのいずれか）である。
【００７２】
次に、補正処理部３０５は、先に求めたＲＧＢ＿Ａに対してフィルタ処理を行い、大気光で補正したＲＧＢ下位画素画像ｐａｔｃｈ＿ＲＧＢ＿Ａを計算する。Ｓ９０３以降の処理では、大気光で補正したＲＧＢ下位画素画像は、全てこのｐａｔｃｈ＿ＲＧＢ＿Ａを計算に用いる。
【００７３】
ここで、本処理におけるフィルタ処理の詳細を、図１０（ａ）乃至（ｄ）を参照して説明する。
【００７４】
図１０（ａ）乃至（ｄ）は、ある注目画素Ｔ３における、フィルタ処理の過程を模式図にしたものである。図１０（ａ）は、ＲＧＢ＿Ａを示している。図１０（ｂ）〜（ｄ）は、図１０（ａ）をＲＧＢ各プレーンに分けて表したものである。Ｔ３はフィルタの処理対象となる注目画素、Ｔ３R，Ｔ３G，Ｔ３Bは、それぞれは、注目画素Ｔ３のＲＧＢ各プレーンにおける成分値を示している。また、同図（ｂ）〜（ｄ）におけるＲ１、Ｇ１、Ｂ１〜Ｒ４、Ｇ４、Ｂ４は、それぞれＲＧＢ各プレーンにおける注目画素から５ｘ５の範囲内における最小値から下位４つを示しているものとし、画素値の大きさはＲ４＞Ｒ３＞Ｒ２＞Ｒ１（Ｇ，Ｂも同じ）とする。
【００７５】
補正後のＲＧＢ下位画素値画像データＲＧＢ＿Ａに対してフィルタ処理を行う場合、注目画素Ｔ３を中心位置とする５×５画素の範囲内におけるＲＧＢ各プレーンの下位画素は、図１０（ｂ）〜（ｄ）で示すように、各色で異なっている。このため、同図（ｂ）に示すようなＲチャンネルの下位画素フィルタ処理結果Ｔ３Rは次式（８）に従って求める。
Ｔ３R＝（２×Ｒ２＋４×Ｒ３＋２×Ｒ４）／８    …（８）
同様に、Ｇチャンネルの最小値Ｔ３Gを求める場合は、上式（８）にＧ２，Ｇ３，Ｇ４を代入した結果となる。Ｂチャンネルの最小値Ｔ３Bも同様である。これらの値は、それぞれ注目画素のプレーンと同じプレーンの画素値を採用することが、下位画素画像との違いである。下位画素画像は、ＲＧＢ下位画素画像とは異なり、注目画素周辺の全プレーンの画素を対象に行われる。このため、採用される画素は、ＲＧＢいずれのプレーンの画素からも採用される可能性があるが、ＲＧＢ下位画素値の場合は、各色プレーンからのみ採用される。この違いにより、光の散乱の波長による影響を考慮することができる。
【００７６】
以下、本処理をＲＧＢ＿Ａの全画素に適用することで、大気光で補正したＲＧＢ下位画素値画像ｐａｔｃｈ＿ＲＧＢ＿Ａが算出される。
【００７７】
Ｓ９０３にて、補正処理部３０５は、Ｓ９０２で求めた大気光で補正したＲＧＢ下位画素値画像をもとに、透過率分布ｔRGB(x,y,c)を作成する。Ｓ９０２で生成したｐａｔｃｈ＿ＲＧＢ＿Ａに対して、以下の式を適用する。
ｔRGB＝１．０−ω×patch_RGB_A(x,y,c)      …（９）
ここで、ωは調整のための係数で、例えば0.9とする。ωは、対象の画素の透過光が霧などの微小粒子による散乱光のみで構成されていた場合透過率が０になり、微小粒子除去処理後の画素値が０になるのを避けるために設けられた値であって、上で挙げた０．９でなくても構わない。
【００７８】
Ｓ９０４にて、補正処理部３０５は、Ｓ９０３で生成した透過率分布を、入力画像に合わせて整形し、ＵＩによって指定された透過率分布範囲以外の部分については処理を行わないようにする。具体的な手順はＳ８０４と同じだが、ＲＧＢ下位画素値画像の場合は、透過率分布ｔRGB(x,y,c)のそれぞれの色プレーンに対してＳ８０４の処理を行う。
【００７９】
Ｓ９０５にて、補正処理部３０５は、大気光ＡRGBと、透過率分布ｔRGB(x,y,c)から、ＲＧＢ下位画素値画像による補正画像を計算する。具体的には、次式（１０）に基づく。
【００８０】
【数２】
2020181399.tif 000004
ここで、ＪRGBは、ＲＧＢ下位画素値画像による補正画像、Iは入力画像である。また、t0は調整のための係数で、例えば0.1とする。これは、ｔRGBが限りなく小さい値であった場合、ＪRGBの値は、入力画像Ｉとのわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた０．１でなくても良い。
【００８１】
Ｓ９０６にて、補正処理部３０５は、Ｓ９０５で計算したＪRGBをＲＧＢ下位画素値画像補正データ記憶部３１３へ格納する。
【００８２】
以上の処理を行うことで、ＲＧＢ下位画素値画像を補正した画像を作成することができる。
【００８３】
［ミー散乱成分算出］
次に、ミー散乱成分算出部３０６による、下位画素補正画像データ、および入力画像から、ミー散乱による光の散乱成分の算出処理（Ｓ５０５）を、図１１のフローチャートを参照して説明する。
【００８４】
Ｓ１１０１にて、ミー散乱成分算出部３０６は、下位画素補正データ記憶部３１２から下位画素補正データ、および入力画像データ記憶部２０４から入力画像を読み込む。
【００８５】
Ｓ１１０２にて、ミー散乱成分算出部３０６は、ミー散乱成分を取り出すために、画像の画素ごとに、画素値の減算を行う。具体的には、ミー散乱成分算出部３０６は次式（１１）に従ってミー散乱成分画像を求める。
・Ｉ（ｘ，ｙ，ｃ）−Ｊlower（ｘ，ｙ，ｃ）≧０のとき：
Ｍ（ｘ，ｙ，ｃ）＝Ｉ（ｘ，ｙ，ｃ）−Ｊlower（ｘ，ｙ，ｃ）
・Ｉ（ｘ，ｙ，ｃ）−Ｊlower（ｘ，ｙ，ｃ）＜０のとき：
Ｍ（ｘ，ｙ，ｃ）＝０
ここで、Ｍ（ｘ，ｙ，ｃ）はミー散乱成分画像である。この計算によって、ミー散乱成分を画像から取り出すことができる。
【００８６】
Ｓ１１０３にて、ミー散乱成分算出部３０６は、Ｓ１１０２で計算したミー散乱成分画像を、ミー散乱成分データ記憶部３１４へ格納する。
【００８７】
以上のように処理を行うことで、画像中のミー散乱成分を算出することができる。
【００８８】
［レイリー散乱成分算出］
次に、レイリー散乱成分算出部３０７による、レイリー散乱成分の算出処理（Ｓ５０６」）を、図１２のフローチャートを参照して説明する。
【００８９】
Ｓ１２０１にて、レイリー散乱成分算出部３０７は、ＲＧＢ下位画素値補正データ記憶部３１３からＲＧＢ下位画素値補正画像データ、ミー散乱成分記憶部３１４からミー散乱成分画像、入力画像データ記憶部２０４から入力画像を読み込む。
【００９０】
Ｓ１２０２にて、レイリー散乱成分算出部３０７は、レイリー散乱成分画像を得るため、画像の画素ごとに画素値の減算を行う。具体的には、次式（１２）に従って求める。
・Ｉ（ｘ，ｙ，ｃ）−ＪRGB（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）≧０のとき：  Ｒ（ｘ，ｙ，ｃ）＝Ｉ（ｘ，ｙ，ｃ）−ＪRGB（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）
・Ｉ（ｘ，ｙ，ｃ）−ＪRGB（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）＜０のとき：
Ｒ（ｘ，ｙ，ｃ）＝０                        …（１２）
ここで、Ｒ（ｘ，ｙ，ｃ）はレイリー散乱成分画像である。この計算によって、レイリー散乱成分を画像から取り出すことができる。
【００９１】
Ｓ１２０３にて、レイリー散乱成分算出部３０７は、Ｓ１３０２で計算したミー散乱成分画像を、レイリー散乱成分データ記憶部３１５へ格納する。
【００９２】
以上のように処理を行うことで、画像中のレイリー散乱成分を算出することができる。
【００９３】
［合成処理］
次に、合成処理部３０８の合成処理（Ｓ５０７）を説明する。
【００９４】
合成処理部３０８は、合成画像Ｊout（ｘ，ｙ，ｃ）を次式（１３）に従って算出する。
Ｊout（ｘ，ｙ，ｃ）＝ＪRGB（ｘ，ｙ，ｃ）＋ｍ・Ｍ（ｘ，ｙ，ｃ）＋ｒ・Ｒ（ｘ，ｙ，ｃ）                      …（１３）
ここで、ｍはミー散乱強度係数、ｒはレイリー散乱強度係数である。本実施形態では、第一、第二のパラメータでそれぞれ、０〜１の間を取ることが望ましいが、もちろんそれ以外の値を用いてもかまわない。
【００９５】
以上説明したように、本発明によれば、画像中の微粒子成分の影響の除去処理をする際に、オブジェクト検出の結果に基づいて除去処理の効果を変えることができる。これにより、よりオブジェクトの視認性が高い画像を得ることができる。
【００９６】
例えば、検出対象（オブジェクト）として人物を設定した場合には、その人物に特化した微粒子成分の影響の除去後の画像を得ることができる。
【００９７】
なお、上記微粒子除去に係る構成は、デジタルカメラに代表される撮像装置に実装するようにしても良い。例えば、霧の中で人物を被写体とする撮像する場合の撮像モードとして実装しても良い。この場合、図１の撮像部１１１を画像処理装置１００の構成の一部とすれば良い。
【００９８】
（その他の実施例）
なお、上述した各処理部のうち、オブジェクト抽出処理部２０６、微粒子除去処理部等については、その代わりとして、機械学習された学習済みモデルを代わりに用いて処理しても良い。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備する。複数の学習データから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果を出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルにより構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、ＣＰＵあるいはＧＰＵなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
【００９９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１００】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１０１】
２０１…入力画像データ取得部、２０２…微粒子除去処理部、２０３…微粒子除去画像データ出力部
【図１】
2020181399.tif 000005
【図２】
2020181399.tif 000006
【図３】
2020181399.tif 000007
【図４】
2020181399.tif 000008
【図５】
2020181399.tif 000009
【図６】
2020181399.tif 000010
【図７】
2020181399.tif 000011
【図８】
2020181399.tif 000012
【図９】
2020181399.tif 000013
【図１０】
2020181399.tif 000014
【図１１】
2020181399.tif 000015
【図１２】
2020181399.tif 000016