(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】画像処理装置及びその制御方法及びプログラム
(51)【国際特許分類】
G06T 5/70 20240101AFI20240117BHJP
H04N 1/409 20060101ALI20240117BHJP
H04N 23/60 20230101ALI20240117BHJP
【FI】
G06T5/00 705
H04N1/409
H04N23/60 500
(21)【出願番号】P 2019084427
(22)【出願日】2019-04-25
【審査請求日】2022-04-20
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】伊藤 靖浩
【審査官】中田 剛史
(56)【参考文献】
【文献】特開2012-168936(JP,A)
【文献】特開2016-173777(JP,A)
【文献】米国特許出願公開第2016/0071253(US,A1)
【文献】特開2018-025878(JP,A)
【文献】国際公開第2019/064825(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
H04N 1/409
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
撮像された画像データを処理する画像処理装置であって、
前記画像データに基づき、画像データに対応する画像中のオブジェクトを検出する検出手段と、
前記検出されたオブジェクトの前記画像中における領域である第1領域について、大気中に存在する微粒子による散乱光に対応する成分を除去する第1処理を行い、
前記オブジェクトが検出されなかった、前記画像中における第2領域について、前記成分を除去する効果が前記第1処理とは異なる第2処理を行う、画像処理手段と
を有
し、
前記第1処理は、前記第2処理よりも、前記散乱光に対応する成分をより低減するための処理であることを特徴とする画像処理装置。
【請求項2】
前記画像処理手段は、
前記第1領域については前記第1処理により得た画像データを、
前記第2領域については前記第2処理により得た画像データを選択することにより合成画像を生成する処理を含むことを特徴とする請求項
1に記載の画像処理装置。
【請求項3】
前記画像データを取得するための撮像手段を有することを特徴とする請求項1
または請求項2に記載の画像処理装置。
【請求項4】
前記第1処理と前記第2処理とは、ミー散乱成分の算出とレイリー散乱成分の算出とを行い、算出された前記ミー散乱成分と前記レイリー散乱成分とを用いることにより前記合成画像を生成することを特徴とする請求項
2に記載の画像処理装置。
【請求項5】
前記画像処理手段は、前記合成画像の生成において、前記ミー散乱成分の寄与を示すミー散乱強度係数と、前記レイリー散乱成分の寄与を示すレイリー散乱強度係数とを用い、
前記第2領域では、前記第1領域よりも、前記ミー散乱強度係数と前記レイリー散乱強度係数とが小さい画像処理を行うことを特徴とする請求項
4に記載の画像処理装置。
【請求項6】
コンピュータが読み込み実行することで、前記コンピュータを、請求項1乃至
5のいずれか1
項に記載の装置が有する各手段として機能させるためのプログラム。
【請求項7】
撮像された画像データを処理する画像処理装置の制御方法であって、
前記画像データに基づき、画像データに対応する画像中のオブジェクトを検出する検出工程と、
前記検出されたオブジェクトの前記画像中における領域である第1領域について、大気中に存在する微粒子による散乱光に対応する成分を除去する第1処理を行い、
前記オブジェクトが検出されなかった、前記画像中における第2領域について、前記成分を除去する効果が前記第1処理とは異なる第2処理を行う、画像処理工程と
を有
し、
前記第1処理は、前記第2処理よりも、前記散乱光に対応する成分をより低減するための処理であることを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大気中の微粒子の影響による、画像の視認性低下を改善する技術に関するものである。
【背景技術】
【0002】
監視カメラなどの分野において、カメラから被写体までの間に存在する微小粒子成分(例えば、霧)によって視認性が低下し、撮像画像の画質が劣化することが問題となっている。 霧などによって視認性が低下した画像を補正する技術(霧霞除去技術)として、特許文献1が提案されている。特許文献1では、着目画素ごとに周囲の所定範囲におけるRGBチャンネル内での最小値を算出し、この最小値画像を用いて、コントラストを補正することで視認性の改善を行う。また、特許文献2では、入力映像からヒストグラムを求め、そのヒストグラムの尤度や尖度もとに、霧霞除去処理のパラメータを決定している。
【先行技術文献】
【特許文献】
【0003】
【文献】米国公開2011/0188775号公報
【文献】米国公開2016/0328832号公報
【非特許文献】
【0004】
【文献】Guided Image Filtering, Kaiming He, Jian Sun, and Xiaoou Tang, in ECCV 2010(Oral)
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術では、画像処理を行う際のパラメータは画像全体に対して一意に保持している。しかしながら、比較的近い距離にある被写体に対して霧霞除去技術を適用する場合と、遠い距離にある被写体に対して霧霞除去技術を適用する場合では、パラメータを変えたほうが良い場合がある。このときに、遠い距離にある被写体向けのパラメータで処理を行うと、近い距離にある被写体に対しては効果が強くなりすぎてしまい、不自然な画像となる可能性があった。
【0006】
また、特許文献2に記載の技術では、画像全体のヒストグラムをもとにパラメータを決定してしまう。このため、ユーザーが画像中の特定のオブジェクト(例えば人物)の視認性を向上させたい場合でも、画像全体で視認性を向上させるよう処理が行われるため、特に霧の強い場所にいる人物は視認性が上がらなかった。また、霧の強い場所にいる人物の視認性を向上させようとした場合、すでに視認性が確保されている人物に対して、過剰に霧霞除去処理を適用してしまい、不自然な画像となってしまう可能性があった。
【0007】
本発明では、撮影シーンの状況や、視認性の上げたいオブジェクトに合わせて、映像中の霧霞の影響を除去する技術を提供する。
【課題を解決するための手段】
【0008】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
撮像された画像データを処理する画像処理装置であって、
前記画像データに基づき、画像データに対応する画像中のオブジェクトを検出する検出手段と、
前記検出されたオブジェクトの前記画像中における領域である第1領域について、大気中に存在する微粒子による散乱光に対応する成分を除去する第1処理を行い、
前記オブジェクトが検出されなかった、前記画像中における第2領域について、前記成分を除去する効果が前記第1処理とは異なる第2処理を行う、画像処理手段と
を有し、
前記第1処理は、前記第2処理よりも、前記散乱光に対応する成分をより低減するための処理である。
【発明の効果】
【0009】
本発明によれば、撮影シーンの状況や、視認性の上げたいオブジェクトに合わせて、映像中の霧霞の影響を除去する。
【図面の簡単な説明】
【0010】
【
図1】実施形態における画像処理装置のブロック構成図。
【
図2】実施形態に示す画像処理装置の機能ブロック図。
【
図3】実施形態に示す微粒子除去処理部の内部構成を示す図。
【
図4】実施形態の画像処理装置における処理を示すフローチャート。
【
図5】実施形態の微粒子除去処理を示すフローチャート。
【
図6】実施形態の下位画素画像生成の過程を示す模式図。
【
図7】実施形態の大気光推定処理を示すフローチャート。
【
図8】実施形態の下位画素補正画像生成処理を示すフローチャート。
【
図9】実施形態のRGB下位画素値補正画像の生成処理を示すフローチャート。
【
図10】実施形態のRGB下位画像生成処理におけるフィルタ処理を示す模式図。
【
図11】実施形態のミー散乱成分生成処理を示すフローチャート。
【
図12】実施形態のレイリー散乱成分生成処理を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
[概要]
本実施形態では、霧などの微小粒子成分(以下、微粒子)が発生している状況下で、撮影した入力画像に対して、まず微小粒子成分の影響除去処理を行う。次に、人物検出などのオブジェクト検出処理を行うことで、微小粒子成分の影響を除去した画像から人物などのオブジェクトを抽出する。この抽出結果に基づいて、除去画像を生成する際の入力画像のミー散乱成分とレイリー散乱成分の比率を変えることで、微小粒子成分の影響の出方を変えた画像を作る。これらの画像を合成することで、よりオブジェクトの視認性の高い画像得る。
【0013】
[実施形態の装置構成]
図1は、本実施形態が適用する画像処理装置100のブロック構成図である。本実施形態の画像処理装置100は、CPU101、RAM102、ROM103、HDD I/F104、HDD105、入力I/F106、出力I/F107、システムバス108を有する。CPU101は、以下に述べる各構成を統括的に制御するプロセッサである。RAM102はCPU101の主メモリ、ワークエリアとして機能するメモリであり、ROM103は、画像処理装置100内での処理を司るプログラムや各種パラメータを格納するメモリである。
【0014】
HDD I/F104は、例えばシリアルATA(SATA)等のインタフェースであり、二次記憶装置としてのHDD105をシステムバス108に接続する。CPU101は、HDD I/F104を介してHDD105からのデータ読み出し、およびHDD105へのデータ書き込みが可能である。さらにCPU101は、HDD105に格納されたデータをRAM102に展開し、同様に、RAM102に展開されたデータをHDD105に保存することが可能である。そしてCPU101は、RAM102に展開したデータをプログラムとみなし、実行することができる。なお、二次記憶装置はHDDの他、光ディスクドライブ等の記憶デバイスでもよい。入力I/F106は、例えばUSBやIEEE1394等のシリアルバスインタフェースである。
【0015】
画像処理装置100は、入力I/F106を介して、外部メモリ109および撮像部111に接続されている。CPU101は、入力I/F106を介して、外部メモリ109や撮像部111から撮像画像データを取得することができる。出力I/F107は、例えばDVIやHDMI(登録商標)等の映像出力インタフェースである。画像処理装置100は出力I/F107を介して表示部110と接続されている。CPU101は、出力I/F107を介して表示部110に画像を出力することで、その画像を表示部110に表示することができる。
【0016】
システムバス108は、各種データの転送経路であり、画像処理装置100内の各構成部はシステムバス108を介して相互に接続されている。
【0017】
外部メモリ109はハードディスク、メモリカード、CFカード、SDカード、USBメモリなどの記憶媒体であり、画像処理装置100で処理された画像データなどを保存することができる。
【0018】
表示部110は、ディスプレイなどの表示装置であり、画像処理装置100で処理された画像などを表示することができる。
【0019】
撮像部111は、被写体の光学像をイメージセンサで受光し、取得した光学像をデジタルの画像データとして出力するカメラである。本実施形態の画像処理装置100は、撮像部111では霧等の微粒子による散乱光によりコントラストが低下した画像データを撮像により取得し、画像処理装置100では以下に説明する画像処理を施すことで、微粒子の影響が低減された画像を生成する。
【0020】
操作部112は、例えばマウスやキーボードなどの入力機器で構成され、口述する切霞除去範囲の指定を行う際に利用する。
【0021】
図2は、実施形態に示す画像処理装置の機能ブロック図である。
図2に示すように、実施形態の画像処理装置は、入力画像データ取得部201、微粒子除去処理部202、微粒子除去画像データ出力部203、入力画像データ記憶部204、微粒子除去画像データ記憶部205、オブジェクト抽出処理部206を有する。オブジェクト抽出処理部206は、公知の人物検出技術や顔検出技術などで構成され、入力画像に対して人物の形や人の顔等を検出し、その領域を検出結果としてオブジェクトデータ記憶部207に記憶する。なお、
図2に示す各処理部は、CPU101がROM103に格納されたプログラムをRAM102に展開し実行することで実現するものとするが、処理部のいくつかはハードウェアでもって実現しても良い。
【0022】
図3は実施形態における微粒子除去処理部202の内部構成図である。微粒子除去処理部202は、大気光算出部301、下位画素画像算出部302、下位画素画像による補正処理部304、RGB下位画像による補正処理部305を持つ。また、微粒子除去処理部202は、散乱成分の制御用にミー散乱成分算出部306、レイリー散乱成分算出部307、合成処理部308を持つ。さらに、微粒子除去処理部202は、これら各種処理のデータ格納場所として、大気光データ記憶部309、下位画素画像データ記憶部310、下位画素補正データ記憶部312、RGB下位画素値補正データ記憶部313を持つ。微粒子除去処理部202は、散乱成分の制御用としてミー散乱成分データ記憶部314、レイリー散乱成分データ記憶部315を持つ。さらに、微粒子除去処理部202は、微粒子除去処理の処理範囲を決定する画像処理範囲データ記憶部316を持つ。
【0023】
これらの構成ブロックは、CPU101が、データ保持領域として、ROM103やHDD105、RAM102内に保持されたプログラムを、必要に応じてCPU101で実行することで実現するものとするが、そのいくつかはハードウェアでもって実現しても構わない。
【0024】
[全体処理の流れ]
実施形態の画像処理装置100における処理の流れを
図2のブロック図、および
図4のフローチャートを用いて説明する。
【0025】
S401にて、CPU101は、入力画像データ取得部201を制御し、撮像部211による撮像して得た画像データを取得させ、その画像データを入力画像データ記憶部204に記憶させる。
【0026】
S402にて、CPU101は、入力画像データに対して、微小粒子成分の除去処理を行うためのパラメータ設定を行う。
【0027】
S403にて、CPU101は、S402で設定したパラメータに基づいて、微小粒子の影響除去処理を行う(詳細後述)。
【0028】
S404にて、CPU101は、S403で微小粒子除去処理を行った画像に対して、公知のオブジェクト検出処理を使って、オブジェクトの検出を行う。ここで、対象となるオブジェクトは、ユーザーが視認性を高めたいオブジェクトを指す。例えば、ユーザーが人物の視認性を高めたい場合は、CPU101は公知の人物検出処理を適用し、画像データ中から人物を抽出する。CPU101は、抽出された結果となる人物領域は、その周囲を矩形で囲み、矩形領域の位置情報としてオブジェクト検出結果記憶部207に格納する。なお、本実施形態においてオブジェクト検出結果は矩形領域とするが、その形状に特に制限はなく、矩形以外の形状であっても構わない。なお、例えば矩形領域でない場合、各画素についてオブジェクトが検出された画素かどうかを判定すればよい。
【0029】
S405にて、CPU101は、微小粒子の影響除去処理を行った後の画像データとオブジェクト検出結果とを比較し、画像データ上のどの領域でオブジェクト検出されたかを判断し、その結果によって処理を変える。具体的には、CPU101は、画像データ上でオブジェクトが検出されたと判断された領域に該当する画素についてはS408の処理、オブジェクトが検出されなかったと判断される領域に該当する画素はS406の処理に移行する。
【0030】
S406にて、CPU101は、オブジェクトが検出されなかった領域に対して、さらにオブジェクト検出精度が向上するよう、後続のS407で行う微小粒子除去処理のパラメータ設定を行う。具体的には、微小粒子除去の効果がより強くなるように設定する。例えば、後述するミー散乱強度係数mと、レイリー散乱強度係数rを、一回目のパラメータに比べて、二回目のパラメータでは少なくなるようにパラメータ設定する。特に、mについては、二回目のパラメータのほうを少なくする、または、0に設定するなどが想定される。
【0031】
S407にて、CPU101はS406で設定された二回目の微小粒子除去処理向けのパラメータを基づいて、微小粒子除去処理を再び行う。この時の処理対象の画像データは、S403で処理後の画像データではなく、S401で得られたオリジナルの入力画像データとする。
【0032】
そして、S408にて、CPU101は、S405でオブジェクト検出されたと判定された第一のパラメータでの処理結果の画像と、S407で行った第二のパラメータでの処理結果の画像との合成を行う。具体的には、S404にてオブジェクトが検出されたと判定されている検出領域(画素)については第一のパラメータでの処理結果画像を、非検出領域については第二のパラメータでの処理結果の画像を用いて一つの出力画像を生成する。
【0033】
このようにして、オブジェクト検出の結果によって領域設定を行い、領域ごとに効果の異なる微小粒子成分の除去処理画像が生成される。
【0034】
[微粒子の影響除去処理の流れ]
ここで、
図4のS404、S407の微粒子除去処理について、
図2、
図3の処理ブロック図、及び、
図5のフローチャートを用いて詳細に説明する。なお、S404,S407の違いは、処理に用いるパラメータが異なる点である点に注意されたい。
【0035】
S501にて、下位画素画像算出部302は、入力画像データ記憶部204に記憶している入力画像データから下位画素画像を算出し(詳細は後述)、下位画素値画像データ記憶部310に記憶する。
【0036】
S502にて、大気光算出部301は、入力画像データ記憶部204に記憶している入力画像データ、及び、下位画素画像データ記憶部310に記憶している下位画素画像データを用いて大気光成分を算出(詳細は後述)する。そして、大気光算出部301は、算出した大気光データは大気光データ記憶部309に記憶する。
【0037】
S503にて、下位画素画像による補正処理部304は、大気光データ記憶部309に記憶している大気光データ、下位画素画像データ記憶部310に記憶している下位画素画像データを読み込む。さらに、この補正処理部304は、画像処理範囲データ記憶部316に記憶している画像処理範囲データも読み込む。そして、補正処理部304は、入力画像データ記憶部204に記憶している入力画像データの補正を行う(詳細は後述)。補正処理部304は、補正後の画像データは、下位画素補正画像データ記憶部312に記憶する。
【0038】
S504にて、RGB下位画素画像による補正処理部305は、大気光データ記憶部309に記憶している大気光データ、入力画像データ記憶部204に記憶している入力画像、画像処理範囲データ記憶部316に記憶している画像処理範囲データを読み込む。そして、この補正処理部305は、入力画像データの補正を行う(詳細は後述)。補正処理部305は、補正後の画像データを、RGB下位画素補正画像データ記憶部313に記憶する。
【0039】
S505にて、ミー散乱成分算出部306は、入力画像データ記憶部204に記憶している入力画像データ、及び、下位画素補正画像データ記憶部312に記憶している下位画素補正画像データを読み込む。そして、ミー散乱成分算出部306は、ミー散乱成分の算出を行う(詳細は後述)。ミー散乱成分算出部306は、算出されたミー散乱成分データをミー散乱成分データ記憶部314に記憶する。
【0040】
S506にて、レイリー散乱成分算出部307は、入力画像データ記憶部204に記憶している入力画像データを読み込む。さらに、レイリー散乱成分算出部307は、下位画素補正画像データ記憶部310に記憶している下位画素補正画像データ、及び、RGB下位画素値補正画像データ記憶部311に記憶しているRGB下位画素値補正画像データも読み込む。そして、レイリー散乱成分算出部307は、レイリー散乱成分の算出を行い(詳細は後述)、算出したレイリー散乱成分をレイリー散乱成分データ記憶部314に記憶する。
【0041】
S507にて、合成処理部308は、RGB下位画素値補正画像データ記憶部313に記憶しているRGB下位画素値補正画像データを読み込む。さらに、合成処理部308は、ミー散乱成分データ記憶部314に記憶しているミー散乱成分データ、及び、レイリー散乱成分データ記憶部315に記憶しているレイリー散乱成分データを読み込む。その後、合成処理部308は、画像合成を行い(詳細は後述)、合成後の画像データを微粒子除去画像データ記憶部205に記憶する。
【0042】
以上説明した処理により、S404の微小粒子除去処理が完了する。
【0043】
[大気光推定]
次に、S502の大気光算出の処理について説明する。大気光算出部301は、まず入力画像をRGB画像から輝度画像(Y画像)へ変換する。次に、大気光算出部301は、変換したY画像からヒストグラムを生成し、上位1%の値を閾値とし、閾値以上の画素値を持つ画素の位置の中から、ロバスト推定処理を行い、大気光を推定するための画素を決定する。そして、決定された画素の画素値をもとに大気光を推定する。
【0044】
以下、
図7のフローチャートを参照し、実施形態における大気光算出部301の詳細を説明する。
【0045】
S701にて、大気光算出部301は、入力画像データ記憶部204から入力画像データを読み込む。
【0046】
S702にて、大気光算出部301は、読み込んだ入力画像データをRGB画像からY画像へと変換する。この時、変換式には一般的なRGB→Y色変換式を適用して構わない。
【0047】
S703にて、大気光算出部301は、S702で変換されたY画像(輝度画像)から、大気光推定を行うための大気光位置情報の候補(以下、画素位置候補)を生成する。具体的には、大気光算出部301は、読み込まれたY画像のヒストグラムを求め、その最大値から上位1%の値を閾値とし、閾値以上の値を持つ画素の位置を、参照画素位置候補として決定する。なお、本実施形態では、閾値を上位1%としたが、実施形態では、これに限らず、異なる比率でも構わない。
【0048】
S704にて、大気光算出部301は、大気光を実際に計算するための参照画素位置情報(以下、画素位置)を決定する。具体的には、S703で決定した画素位置候補をもとにして、その候補をもとにRANSAC法などのロバスト推定を用いて大気光位置情報生成を行う。これは、大気光として選択されるべき画素位置は、本来は空部分の画素位置が望ましく、画像上で空以外の高輝度部分を画素位置候補からは除外したいためである。一般的には空以外の高輝度部分は画像上に占める割合は少なく、かつ、空の色とは輝度が異なる傾向にあるため、それを外れ値として扱い、除外することができるロバスト推定を行う。また、この時、画素位置の数を制限することもできる。これは、画像上で空の色がグラデーションになっていたりする場合、同じ空でも画素値が異なるため、あまり多くの画素を参照すると、色が変わった空部分まで推定の対象としてしまうことを避けるためである。
【0049】
S705にて、大気光算出部301は、大気光計算を行うため、S704で決定した画素位置のなかで、初めに大気光成分を抽出する画素位置を決定する。これは、S704で決定した画素位置のうち、ラスタースキャン順の最初の画素位置(たとえば最も左上の画素位置)とすれば良い。
【0050】
S706にて、大気光算出部301は、S705で初期化、またはS708で決定した参照画素位置の画素値(R,G,B)を、それぞれの色ごとに加算し、RAM102などに保持する。
【0051】
S707にて、大気光算出部301は、S704で決定した画素位置を全て検索したか否かを判定する。大気光算出部301は、検索していると判定した場合は処理をS709へ、未完であると判定した場合は処理をS708へ進める。
【0052】
S708にて、大気光算出部301は、S704で決定した画素位置を次の位置へ移動させる。具体的には、S704で決定した画素位置のうち、現在参照している画素位置に対してラスタースキャン順に最も近い画素位置とする。
【0053】
S709にて、大気光算出部301は、S706で加算され、RAM102などに保持された加算画素値を平均化し、大気光成分を計算する。具体的には、大気光算出部301は、次式に基づき大気光成分ARGBを計算する。
ARGB=(ΣAR/n,ΣAG/n,ΣAB/n) …(1)
AY=(ΣAR/n+ΣAG/n+ΣAB/n)/3 …(2)
ここで、AR、AG、AB、AYはそれぞれ、Rチャンネル、Gチャンネル、Bチャンネル、下位画素画像の大気光成分の値を示す。また、nはS704で決定した参照画素の総数、ΣはS704で決定した画素の数の和を示す。なお、ここで示した式(1)、(2)はあくまで一例であり、実施形態における大気光推定のための計算式は、他の式であっても構わない。たとえば、式(2)を、ΣAR/n,ΣAG/n,ΣAB/nの中で最も小さい値としてもよい。
【0054】
以上のようにして、大気光成分を推定できる。大気光算出部301は、推定された大気光成分を大気光データ記憶部309に格納する。
【0055】
[下位画素画像作成]
次に、S501の下位画素画像算出部302による下位画素画像生成処理を、
図6(a),(b)を用いて説明する。
図6(a)のように、入力画像中のある注目画素P5を中心にして、周囲ピクセルの画素をP1~P4,P6~P9と表す。また、画素P1~P9が有するR,G,Bの成分値を、P1(R1,G1,B1)~P9(R9,G9,B9)と表現する。
【0056】
そして、これらの成分値順が、R5>B3>R2>・・・>R4>B1>G9>G7であったとする。この時、注目画素P5の下位画素をT1としたとき、T1は式(3)に示すように、最下位の成分値G7を除いた下位3つの成分値の加重平均とする。最小値ではなく、加重平均を取ることで、下位画素画像がセンサノイズの影響を強く受けることを抑制する。つまり、最小値を取る場合に比べ、処理後の画像にセンサノイズの影響を強く受けた画素が生成されてしまうことを抑制できる。
T1=(2×R4+4×B1+2×G9)/8 …(3)
下位画素画像算出部302は以上の処理を全画素に対して行うことで、下位画素画像を生成することになる。そして、下位画素画像算出部302は、生成した下位画素画像を下位画素画像データ記憶部310に保存する。なお、上記で挙げた計算方法は下位画素画像を求める際の計算式の例であり、この計算式に沿っている必要はない。たとえば、下位2番目から下位4つの画素を平均することで求めてもよい。また、また、本実施形態では注目画素から1画素分の距離にある周囲画素を参照し下位画素を生成したが、もちろん2画素分の距離になる周囲画素を参照して下位画素を求めてもよいし、更なる距離にある周囲画素を参照しても構わない。
図6(a),(b)は、あくまで例示であると理解されたい。
【0057】
[下位画素画像による補正画像生成]
次に、補正処理部304による下位画素画像による補正画像生成処理(
図5のS503)を、
図8のフローチャートを参照して説明する。
【0058】
S801にて、補正処理部304は、下位画素画像、大気光データ、および入力画像を大気光データ記憶部309、下位画素画像データ記憶部310、入力画像データ記憶部204から読み出す。
【0059】
S802にて、補正処理部304は、大気光データで下位画素画像を補正し、補正後下位画素画像lower_Aを算出する。具体的には、補正処理部304は、次式(4)に従って、下位画素画像を大気光データに基づき補正する。
lower_A=Tin_lower/AY …(4)
ここで、Tin_lowerは、S502で生成した下位画素画像を示す。
【0060】
S803にて、補正処理部304は、S802で求めた補正後下位画素画像lower_Aをもとに、透過率分布tlower (x,y)を生成する。具体的には、S802で生成したlower_A(x、y)に対して、以下の式を適用する。
tlower=1.0-ω×lower_A(x,y) …(5)
ここで、ωは調整のための係数で、例えば“0.9”とする。また、x、yは、画像の水平方向及び垂直方向の座標である。係数ωは、対象の画素の透過光が霧などの微小粒子による散乱光のみで構成されていた場合に透過率が0になり、微小粒子除去処理後の画素値が0になるのを避けるために設けられた値であって、上で挙げた“0.9”でなくても良い。
【0061】
S804にて、補正処理部304は、S803で生成した透過率分布を、入力画像と、UIから入力された画像処理範囲データに合わせて整形する。これは、透過率分布tlower(x,y)を、撮像データに含まれる構造物等、被写体形状に合わせる必要があることと、UIにより指定された透過率分布範囲に処理範囲を限定するためである。S803までの処理で、透過率分布t(x,y)は、撮像データ内の大まかな被写体形状情報のみが含まれている状態にあり、被写体形状を精度よく分離する必要があるためである。具体的には、非特許文献1に記載されるような公知のエッジキープ型フィルタを用いればよい。
【0062】
次に、UIにより指定された透過率分布範囲以外の画素部分については、微小粒子の影響除去処理を行わないようにする。透過率分布tlower(x,y)に対して、UIで指定したt_th_maxを超える値、およびt_th_min未満の値については、tlower(x,y)=1を代入する。
【0063】
なお、本実施形態ではフィルタ処理後にUIでの設定値の適用を行っているが、もちろん先にUIでの設定値の適用を行っても構わない。
【0064】
S805にて、補正処理部304は、AYと、透過率分布tlower(x,y)から、下位画素画像による補正画像を計算する。具体的には、次式(6)に基づく。
【0065】
【数1】
ここで、J
lowerは下位画素画像による補正画像、Iは入力画像、t
0は調整のための係数で、例えば“0.1”とする。これは、t
lowerが限りなく小さい値であった場合、J
lowerの値は、入力画像Iとわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた“0.1”でなくても構わない。また、max(…)は、括弧内に並ぶ数値群の中の最大値を返す関数である。
【0066】
S806にて、補正処理部304は、S805で計算した下位画素補正画像Jlowerを下位画素補正データ記憶部312へ格納する。
【0067】
以上の処理を行うことで、下位画素画像による微粒子成分の影響を補正した画像を作成することができる。
【0068】
[RGB下位画素値画像による補正画像生成]
次に、RGB下位画素画像による補正処理部305の補正画像生成処理(
図5のS504)を、
図9のフローチャートを参照して説明する。
【0069】
S901にて、補正処理部305は、入力画像データ記憶部204から入力画像、大気光データ記憶部309から大気光データを読み出す。
【0070】
S902にて、補正処理部305は、大気光データを用いて、入力画像をRGB各プレーンごとに補正(フィルタ処理)を行うことで、大気光による補正後のRGB下位画素値画像patch_RGB_Aを算出する。
【0071】
まず、補正処理部305は、次式(7)に従って、RGB下位画素値画像を大気光データで補正し、大気光で補正したRGB下位画素画像RGB_Aを計算する。
RGB_A(x、y、c)=Tin_RGB(x、y、c)/ARGB …(7)
ここで、Tin_RGBは、補正前のRGB下位画素値画像データを示し、RGB_Aは補正後のRGB下位画素値画像データを示す。また、x、yは画像の水平、垂直方向の座標を示し、cは色プレーン(R,G,Bのいずれか)である。
【0072】
次に、補正処理部305は、先に求めたRGB_Aに対してフィルタ処理を行い、大気光で補正したRGB下位画素画像patch_RGB_Aを計算する。S903以降の処理では、大気光で補正したRGB下位画素画像は、全てこのpatch_RGB_Aを計算に用いる。
【0073】
ここで、本処理におけるフィルタ処理の詳細を、
図10(a)乃至(d)を参照して説明する。
【0074】
図10(a)乃至(d)は、ある注目画素T3における、フィルタ処理の過程を模式図にしたものである。
図10(a)は、RGB_Aを示している。
図10(b)~(d)は、
図10(a)をRGB各プレーンに分けて表したものである。T3はフィルタの処理対象となる注目画素、T3
R,T3
G,T3
Bは、それぞれは、注目画素T3のRGB各プレーンにおける成分値を示している。また、同図(b)~(d)におけるR1、G1、B1~R4、G4、B4は、それぞれRGB各プレーンにおける注目画素から5x5の範囲内における最小値から下位4つを示しているものとし、画素値の大きさはR4>R3>R2>R1(G,Bも同じ)とする。
【0075】
補正後のRGB下位画素値画像データRGB_Aに対してフィルタ処理を行う場合、注目画素T3を中心位置とする5×5画素の範囲内におけるRGB各プレーンの下位画素は、
図10(b)~(d)で示すように、各色で異なっている。このため、同図(b)に示すようなRチャンネルの下位画素フィルタ処理結果T3
Rは次式(8)に従って求める。
T3
R=(2×R2+4×R3+2×R4)/8 …(8)
同様に、Gチャンネルの最小値T3
Gを求める場合は、上式(8)にG2,G3,G4を代入した結果となる。Bチャンネルの最小値T3
Bも同様である。これらの値は、それぞれ注目画素のプレーンと同じプレーンの画素値を採用することが、下位画素画像との違いである。下位画素画像は、RGB下位画素画像とは異なり、注目画素周辺の全プレーンの画素を対象に行われる。このため、採用される画素は、RGBいずれのプレーンの画素からも採用される可能性があるが、RGB下位画素値の場合は、各色プレーンからのみ採用される。この違いにより、光の散乱の波長による影響を考慮することができる。
【0076】
以下、本処理をRGB_Aの全画素に適用することで、大気光で補正したRGB下位画素値画像patch_RGB_Aが算出される。
【0077】
S903にて、補正処理部305は、S902で求めた大気光で補正したRGB下位画素値画像をもとに、透過率分布tRGB(x,y,c)を作成する。S902で生成したpatch_RGB_Aに対して、以下の式を適用する。
tRGB=1.0-ω×patch_RGB_A(x,y,c) …(9)
ここで、ωは調整のための係数で、例えば0.9とする。ωは、対象の画素の透過光が霧などの微小粒子による散乱光のみで構成されていた場合透過率が0になり、微小粒子除去処理後の画素値が0になるのを避けるために設けられた値であって、上で挙げた0.9でなくても構わない。
【0078】
S904にて、補正処理部305は、S903で生成した透過率分布を、入力画像に合わせて整形し、UIによって指定された透過率分布範囲以外の部分については処理を行わないようにする。具体的な手順はS804と同じだが、RGB下位画素値画像の場合は、透過率分布tRGB(x,y,c)のそれぞれの色プレーンに対してS804の処理を行う。
【0079】
S905にて、補正処理部305は、大気光ARGBと、透過率分布tRGB(x,y,c)から、RGB下位画素値画像による補正画像を計算する。具体的には、次式(10)に基づく。
【0080】
【数2】
ここで、J
RGBは、RGB下位画素値画像による補正画像、Iは入力画像である。また、t0は調整のための係数で、例えば0.1とする。これは、t
RGBが限りなく小さい値であった場合、J
RGBの値は、入力画像Iとのわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた0.1でなくても良い。
【0081】
S906にて、補正処理部305は、S905で計算したJRGBをRGB下位画素値画像補正データ記憶部313へ格納する。
【0082】
以上の処理を行うことで、RGB下位画素値画像を補正した画像を作成することができる。
【0083】
[ミー散乱成分算出]
次に、ミー散乱成分算出部306による、下位画素補正画像データ、および入力画像から、ミー散乱による光の散乱成分の算出処理(S505)を、
図11のフローチャートを参照して説明する。
【0084】
S1101にて、ミー散乱成分算出部306は、下位画素補正データ記憶部312から下位画素補正データ、および入力画像データ記憶部204から入力画像を読み込む。
【0085】
S1102にて、ミー散乱成分算出部306は、ミー散乱成分を取り出すために、画像の画素ごとに、画素値の減算を行う。具体的には、ミー散乱成分算出部306は次式(11)に従ってミー散乱成分画像を求める。
・I(x,y,c)-Jlower(x,y,c)≧0のとき:
M(x,y,c)=I(x,y,c)-Jlower(x,y,c)
・I(x,y,c)-Jlower(x,y,c)<0のとき:
M(x,y,c)=0
ここで、M(x,y,c)はミー散乱成分画像である。この計算によって、ミー散乱成分を画像から取り出すことができる。
【0086】
S1103にて、ミー散乱成分算出部306は、S1102で計算したミー散乱成分画像を、ミー散乱成分データ記憶部314へ格納する。
【0087】
以上のように処理を行うことで、画像中のミー散乱成分を算出することができる。
【0088】
[レイリー散乱成分算出]
次に、レイリー散乱成分算出部307による、レイリー散乱成分の算出処理(S506」)を、
図12のフローチャートを参照して説明する。
【0089】
S1201にて、レイリー散乱成分算出部307は、RGB下位画素値補正データ記憶部313からRGB下位画素値補正画像データ、ミー散乱成分記憶部314からミー散乱成分画像、入力画像データ記憶部204から入力画像を読み込む。
【0090】
S1202にて、レイリー散乱成分算出部307は、レイリー散乱成分画像を得るため、画像の画素ごとに画素値の減算を行う。具体的には、次式(12)に従って求める。
・I(x,y,c)-JRGB(x,y,c)-M(x,y,c)≧0のとき: R(x,y,c)=I(x,y,c)-JRGB(x,y,c)-M(x,y,c)
・I(x,y,c)-JRGB(x,y,c)-M(x,y,c)<0のとき:
R(x,y,c)=0 …(12)
ここで、R(x,y,c)はレイリー散乱成分画像である。この計算によって、レイリー散乱成分を画像から取り出すことができる。
【0091】
S1203にて、レイリー散乱成分算出部307は、S1302で計算したミー散乱成分画像を、レイリー散乱成分データ記憶部315へ格納する。
【0092】
以上のように処理を行うことで、画像中のレイリー散乱成分を算出することができる。
【0093】
[合成処理]
次に、合成処理部308の合成処理(S507)を説明する。
【0094】
合成処理部308は、合成画像Jout(x,y,c)を次式(13)に従って算出する。
Jout(x,y,c)=JRGB(x,y,c)+m・M(x,y,c)+r・R(x,y,c) …(13)
ここで、mはミー散乱強度係数、rはレイリー散乱強度係数である。本実施形態では、第一、第二のパラメータでそれぞれ、0~1の間を取ることが望ましいが、もちろんそれ以外の値を用いてもかまわない。
【0095】
以上説明したように、本発明によれば、画像中の微粒子成分の影響の除去処理をする際に、オブジェクト検出の結果に基づいて除去処理の効果を変えることができる。これにより、よりオブジェクトの視認性が高い画像を得ることができる。
【0096】
例えば、検出対象(オブジェクト)として人物を設定した場合には、その人物に特化した微粒子成分の影響の除去後の画像を得ることができる。
【0097】
なお、上記微粒子除去に係る構成は、デジタルカメラに代表される撮像装置に実装するようにしても良い。例えば、霧の中で人物を被写体とする撮像する場合の撮像モードとして実装しても良い。この場合、
図1の撮像部111を画像処理装置100の構成の一部とすれば良い。
【0098】
(その他の実施例)
なお、上述した各処理部のうち、オブジェクト抽出処理部206、微粒子除去処理部等については、その代わりとして、機械学習された学習済みモデルを代わりに用いて処理しても良い。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備する。複数の学習データから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果を出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルにより構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、CPUあるいはGPUなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
【0099】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0100】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0101】
201…入力画像データ取得部、202…微粒子除去処理部、203…微粒子除去画像データ出力部