実施の形態1.
本実施の形態にかかる撮像装置について、図1を用いて説明する。図1は、撮像装置100の構成を示す制御ブロック図である。撮像装置100は、動画及び静止画を撮像するビデオカメラである。以下に説明する処理、及び方法は、コンピュータプログラムにより実現される。具体的には、1以上のプロセッサを搭載する撮像装置がプログラムを実行することで、各処理が実施される。
撮像装置100は、撮像部10、一次制御部20、メモリ30、二次制御部40、画像解析部50、記録再生部60、ビデオインタフェース部61、表示部62、入力部63、及び通信部64を備えている。
記録再生部60は、内蔵メモリや外部メモリ等の記録手段を有しており、撮像された画像のデータを記録する。外部メモリは、例えば、撮像装置100に脱着可能に設けられたSDカードやマイクロSDカードである。記録再生部60は、カメラ画像の画像データを圧縮して、メモリに書き込む。
表示部62は、液晶モニタや有機EL(Electro-Luminescence)モニタなどのディスプレイを備えている。表示部62は、ビデオインタフェース部61に接続されており、カメラ画像を表示する。表示部62は、撮像中の画像や、記録再生部60に記録された画像を再生する。さらに、表示部62は、検索条件を入力するための画面を表示する。
入力部63は、ボタン、スイッチ、又はタッチパネル等を備えており、ユーザからの操作入力を受け付ける。例えば、ユーザは、表示部62を見ながら、入力部63を操作して、検索条件を指定するための入力を行う。
通信部64は、3G、LTE(登録商標)、4G、Wi−Fi(登録商標)、又はBluetooth(登録商標)等の通信規格に従って通信処理を行う。例えば、通信部64は、信号を変調する変調部、信号を復調する復調部、及び、無線電波を送受信するアンテナ等を有している。通信部64は、外部ネットワークであるクラウドネットワーク(単にクラウドともいう)200との間の通信を実施する。これにより、撮像装置100はクラウドネットワーク200へのデータ送信、及びクラウドネットワーク200からのデータ受信が可能となる。
クラウドネットワーク200は、インターネット等で構成される外部ネットワークであり、複数の画像(以下、ネットワーク画像とする)を蓄積している。クラウドネットワーク200は、撮像装置100で撮像された撮像画像に限らず、撮像装置100以外の撮像装置(カメラ)で撮像された画像をネットワーク画像として、保存していてもよい。クラウドネットワーク200は、不特定の人がアクセス可能なネットワークでもよく、認証されたユーザのみがアクセス可能なネットワークでもよい。
撮像部10は、レンズユニット11、及びセンサ12を備えている。レンズユニット11は、例えば、シャッタ、アイリス、ズームレンズ、及びフォーカスレンズを備えている。レンズユニット11は、シャッタ、アイリス、ズームレンズ、及びフォーカスレンズを駆動するアクチュエータを備えている。
センサ12は、レンズユニット11を通じて、被写体を含む画像を撮像する撮像素子である。センサ12は、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等で構成される。
センサ12は撮像した撮像画像を、一次制御部20に出力する。一次制御部20は、撮像画像に基づいて、撮像部10の撮像条件を制御する。具体的には、一次制御部20は、画像処理部21と撮像条件制御部22とを備えている。一次制御部20は、例えばISP(Image Signal Processor)により実現可能である。
画像処理部21は、例えば、撮像画像のヒストグラムデータを生成する。ヒストグラムは、図2に示すように、輝度毎の画素数を示すデータである。図2では、横軸が輝度、縦軸が画素数を示している。図2では、撮像画像の画素が8ビットであるため、横軸が0〜255の整数となっている。なお、ヒストグラムデータはRGBを合わせた輝度ではなく、RGBの諧調値毎に生成されてもよい。
画像処理部21は、ヒストグラムデータに基づいて、白つぶれしたか否かを判定し、判定結果を撮像条件制御部22に出力する。撮像条件制御部22は、判定結果に基づいて、撮像部10の撮像条件を制御する。すなわち、撮像条件制御部22は、撮像部10の露光制御を行うための撮像制御信号を生成して、センサ12、及びレンズユニット11に出力する。
具体的には、撮像条件制御部22は、アイリス、電子シャッタ、又はゲイン等を制御するための撮像制御信号を撮像部10に出力する。これにより、アイリス、電子シャッタ、ゲインが調整されて、露光制御を行うことができる。ヒストグラムデータがフルスケールを越えないように、一次制御部20が撮像画像の明るさを制御することができる。
撮像画像がフルスケールを越えている場合、撮像条件制御部22はレンズユニット11のアイリスを絞る。あるいは、センサ12の電子シャッタの露出時間を短くするように、一次制御部20がシャッタスピードを調整する。あるいは、撮像条件制御部22は、センサ12のゲインを小さくする。このように、絞り、シャッタスピード、及びゲインのうちの1つ以上を制御することで、一次制御部20が露光制御を行うことでできる、
一次制御部20は、撮像画像の一部が白飛びしないように、撮像条件を制御している。これにより、適切な撮像条件で撮像することができるため、輝度が飽和していない撮像画像を取得することができる。動画像を撮像する場合、それぞれのフレームが白飛びしないように、撮像条件が、フィードバック制御される。一次制御部20は、撮像画像をメモリ30に書き込む。
図3は、一次制御部20における処理を示すフローチャートである。ユーザが撮像開始ボタンを押して撮像を開始すると、撮像条件制御部22がアイリス、電子シャッタ、ゲインによる露光制御を行う(S11)。ここでは、初期条件により、撮像部10が撮像を行う。次に、画像処理部21が、撮像画像のヒストグラムデータを生成する(S12)。
ヒストグラムデータに基づいて、撮像画像が白つぶれしているか否かを画像処理部21が判定する(S13)。ここでは、ヒストグラムデータがフルスケールを越える場合、画像処理部21が白つぶれしていると判定する。白つぶれしていると判定された場合(S13のYES)、S11に戻り、撮像条件制御部22が露光制御を行う。つまり、撮像条件制御部22は、絞り、シャッタスピード、及びゲインのうちの1つ以上を調整する。
白つぶれしていないと判定された場合(S13のNO)、一次制御部20が撮像画像をメモリ30に出力する(S14)。これにより、メモリ30には、白つぶれしていない撮像画像が書き込まれる。
図1の説明に戻る。二次制御部40、及び画像解析部50は、メモリ30に格納されている撮像画像を読み出して、所定の処理を行う。二次制御部40は、ブロック分割部41と、ガンマ補正部42と、境界補正部43とを備えている。二次制御部40は、例えば、ISP(Image Signal Processor)により実現される。
画像解析部50は、人工知能(AI:Artificial Intelligence)によって、撮像画像を解析する。具体的には、画像解析部50は、被写体抽出部51と、画像検索部52とを備えている。画像解析部50は、AIを用いた画像検索エンジンを搭載している。画像解析部50は、AIにより画像解析で、画像検索を行うことが可能である。画像解析部50が搭載する画像検索エンジンはディープラーニングや機械学習等で予め教育されていてもよい。
以下、二次制御部40と画像解析部50における処理について、図4、及び図5を参照して説明する。図4は、二次制御部40と画像解析部50との処理を示すフローチャートである。図5は、ブロック化する処理を説明するための図であり、撮像画像Pを模式的に示している。なお、撮像画像PはX方向を長手方向、Y方向を短手方向とする長方形となっている。
画像解析部50による処理について説明する。被写体抽出部51は、AIによって、撮像画像を被写体画像と照合して、撮像画像に含まれている被写体を抽出する(S31)。被写体抽出部51は画像認識により、撮像画像Pに含まれている被写体を簡易検索する。これにより、図5に示すように、撮像画像Pが、被写体毎にブロック化される。例えば、被写体を囲む長方形の枠がブロックとなる。また、被写体抽出部51は、各ブロックの前後関係を推定し、推定結果を二次制御部40に出力する。
図5では、被写体S1を含むブロックB1と、被写体S2を含むブロックB2と、ブロックB1、B2以外のブロックB3の3つに、撮像画像Pがブロック分けされている。被写体S1は人であり、被写体S2は犬となっている。ブロックB3は被写体無しブロックとなっている。なお、被写体としては、人、動物(犬、猫、馬等)、植物(花、草、木)、建物、乗り物(自動車、電車、飛行機、船)、風景等が挙げられる。
被写体抽出部51は、撮像画像Pと被写体画像とをパターンマッチングすることで、撮像画像P中に含まれる被写体を抽出する。被写体抽出部51は、記録再生部60に予め蓄積されている被写体画像を参照する。そして、被写体抽出部51は、被写体画像と撮像画像とを比較して、撮像画像のマッチング度が高い領域を被写体とて認識する。被写体画像は、撮像装置100自体に蓄積されていてもよく、クラウドネットワーク200上に蓄積されたネットワーク画像であってもよい。
被写体抽出部51は、撮像画像Pを、複数のブロックに分割する。抽出部51は、隣接するブロック間の境界線を決定する。被写体抽出部51は、抽出された被写体の輪郭を跨がないようにブロックを生成する。ここで、各ブロックの画像をブロック画像とする。被写体抽出部51は、各ブロック画像の位置(ピクセル座標)や大きさ(ピクセルサイズ)を示すブロック情報を生成する。図5では、ブロックB1、B2のブロック画像は、被写体の大きさに応じた長方形となっている。1つのブロック画像には、S31で抽出された被写体が含まれている。もちろん、1つのブロック画像に2つ以上の被写体が含まれていてもよい。さらには、被写体が抽出されていない領域を1つのブロックとしてもよい。
S31で検索された被写体のブロック画像を、画像解析部50が新たな被写体画像として蓄積してもよい。例えば、撮像装置100が被写体画像をデータベース(DB)として保存する。あるいは、撮像装置100は、クラウドネットワーク200上に被写体画像をアップロードするようにしてもよい。そして、被写体抽出部51は、新たに蓄積された被写体画像を参照して、被写体を抽出してもよい。被写体画像を蓄積する場合、認識された被写体に関する情報(個人名や属性等)やガンマ情報ととともに被写体画像を保存してもよい。また、AIが被写体画像を用いて、学習してもよい
なお、クラウドネットワーク200上のネットワーク画像と照合する場合、通信部64が通信処理を行う。なお、被写体抽出部51における処理は、AIを用いて実施されていてもよく、AIを用いずに実施されていてもよい。被写体抽出部51は抽出した被写体を認識して、その情報を取得してもよい。
次に、画像検索部52が、抽出した被写体のブロック画像をクラウドネットワーク200上で画像検索することにより、被写体を認識する(S32)。画像検索部52は、AIを使ったクラウド検索によって、クラウドネットワーク200からブロック画像に類似する画像(以下、類似画像とする)を検索する。類似画像は、ブロック画像に含まれる被写体と同一の被写体を含むネットワーク画像であることが好ましい。画像検索部52は、AIを用いることで、リアルタイムで、類似画像を検索することができる。画像検索部52は、例えば、シーン毎、あるいは、フレーム毎に類似画像を検索する。
画像検索部52は、外部ネットワークであるクラウドネットワーク200にアクセスして、ブロック画像と類似する類似画像を検索する。画像検索部52は、ブロック画像毎に、類似画像を検索する。図5の例では、ブロックB1〜B3が存在するため、3つの類似画像が検索される。画像検索部52は1つのブロックに対して、1つの類似画像を特定する。そして、画像検索部52は、類似画像に付加された情報を参照して、被写体を認識する。これにより、画像検索部52が各ブロックに含まれる被写体を特定することができる。例えば、被写体の個人名や属性が特定される。
次に、画像検索部52は検索された類似画像から、最適なガンマ値を取得する(S33)。例えば、類似画像にガンマ値がタグデータとして付加されている場合、画像検索部52は、類似画像に付加されているガンマ値を読み出す。図5では、ブロックB1〜B3のそれぞれに対してガンマ値が設定される。ブロックB1に対応するガンマ値をγ1とする。同様に、ブロックB2に対応するガンマ値をγ2とし、ブロックB3に対応するガンマ値をγ3とする。ガンマ値γ1〜γ3は全て異なる値となっていてもよく、一部が同じ値であってもよい。
画像検索部52は、被写体抽出部51で被写体を抽出するための画像検索よりも、より詳細な画像検索を行う。クラウドネットワーク200に保存されているネットワーク画像は、撮像装置100に保存されている撮像画像よりも多い。このため、被写体をより精度よく認識することができる。例えば、被写体が人である場合、画像検索部52の詳細検索によって、被写体の性別、年齢(年代)、個人名等を特定することができる。これにより、より精度の高い被写体の認識が可能となる。よって、画像解析部50が、適切なガンマ値を取得することができる。
さらに、S32、S33において、ユーザが指定した検索条件に応じて、類似画像を検索するようにしてもよい。例えば、ユーザが入力部63を操作することで検索条件を入力することができる。検索条件としては、アクセス数や、年代などが挙げられる。そして、画像検索部52は、検索条件に合致するネットワーク画像を類似画像として検索する。
アクセス数を優先するように検索条件を指定した場合、画像検索部52は、アクセス数の高いネットワーク画像を類似画像として検索する。例えば、撮像画像と同じ被写体が含まれるネットワーク画像のうち、最もアクセス数が多いネットワーク画像、つまり、人気のあるネットワーク画像が類似画像として特定される。あるいは、アクセス回数の閾値を設定して、閾値以上のアクセス回数があるネットワーク画像を類似画像とすることができる。例えば、ネットワーク上での閲覧回数をアクセス数とすることができる。
撮像された年代(期間)を検索条件としてもよい。この場合、画像検索部52は、クラウドネットワーク200中のネットワーク画像のうち、検索条件と一致する年代のネットワーク画像を類似画像として検索する。撮像画像と同じ被写体が含まれるネットワーク画像のうち、検索条件と一致しないネットワーク画像は、類似画像とはならない。例えば、ネットワーク画像に付加された情報を参照することで、年代(撮像日時の範囲)を特定することができる。
これにより、画像検索部52が、適切な類似画像を検索することができる。さらに、クラウドネットワーク200上で、検索対象を絞ることができるため、高速な検索が可能となる。検索条件として、種々の条件を適用することが可能である。撮像時間帯(昼、夕暮れ、又は夜等)、撮像場所(屋内、又は屋外等)、撮像環境(日光、蛍光灯などの光源)等を検索条件としてもよい。
検索条件に合致するネットワーク画像のうち、最も類似度が高いネットワーク画像が類似画像となる。また、ユーザが2以上の検索条件を指定してもよい。この場合、検索条件に優先順位を設けて、検索することができる。
さらに、撮像画像Pから抽出された被写体に関する被写体情報を検索条件とすることも可能である。被写体情報とは、例えば、撮像画像Pに含まれる被写体の数や、撮像画像Pに占める被写体の面積割合である。画像検索部52は、被写体情報が一致、又は類似するネットワーク画像を類似画像として検索する。被写体抽出部51又は画像検索部52が撮像画像Pから被写体情報を抽出するようにする。そして、画像検索部52が、被写体の数や面積割合が類似するような範囲を検索条件として設定して、画像検索を行う。このように、画像検索部52が被写体情報に基づいて、画像検索を行うことで、より適切な類似画像を検索することができる。
このようにすることで、ブロック毎に適切なガンマ値を設定することができる。検索条件としてアクセス数を指摘することで、画像検索部52は、アクセス数の多い流行のガンマ値を取得することができる。検索条件として、年代を指定することで、その年代の流行のガンマ値を取得することができる。
なお、画像解析部50における処理は、通信部64が適宜通信処理を行うことで実現することができる。例えば、ネットワーク画像を検索する場合、通信部64が、処理に必要なデータをクラウドネットワーク200に送信するための処理を行う。また、通信部64が処理結果のデータを受信するための処理を行う。
次に、二次制御部40での処理について、説明する。まず、ブロック分割部41が撮像画像を複数のブロックに分割する(S21)。ここでは、被写体抽出部51での検索結果を基づいて、ブロック分割部41が撮像画像を被写体毎にブロック化する。すなわち、S31での簡易検索で得られたブロック情報に基づいて、ブロック分割部41は、被写体を含むブロック画像を生成する。さらに、ブロック分割部41は、フレーム毎、又はシーン毎にブロック情報を付加する。ブロック情報は、ブロック画像の位置や大きさを含んでいる。ブロック分割部41は、ガンマ情報が付加された撮像画像をガンマ補正部42に出力する。
次に、ガンマ補正部42は、ブロック画像毎に、ガンマ補正を行う(S22)。すなわち、画像検索部52が取得したガンマ値で、ガンマ補正部42はブロック毎に撮像画像をガンマ補正する。ガンマ補正部42は、ブロックB1のブロック画像をガンマ値γ1でガンマ補正する。同様に、ガンマ補正部42は、ブロックB2のブロック画像をガンマ値γ2でガンマ補正し、ブロックB3のブロック画像をガンマ値γ3でガンマ補正する。さらに、ガンマ補正部42は、各ブロックのガンマ値をガンマ情報として、フレーム毎又はシーン毎に付加する。ガンマ補正部42は、ガンマ補正された撮像画像にガンマ情報を付加して、境界補正部43に出力する。
なお、ガンマ補正部42は以下の式(1)のように、撮像画像の諧調値をガンマ補正する。
Y=Xγ ・・・(1)
Xは階調値の入力値であり、Yは出力値である。X、Yはそれぞれ諧調値(例えば、0〜255)を0〜1までの値で表現している。γはブロック毎に設定されたガンマ値であり、上記の例では、ガンマ値γ1〜γ3となっている。ガンマ値γ1〜γ3は全て異なる値となっていてもよく、一部が同じ値となっていてもよい。なお、ガンマ補正部42はガンマ値毎のルックアップテーブルを用いて、ガンマ補正を行ってもよい。
境界補正部43は、隣接するブロック間の境界領域を補正する(S23)。上記のように、ガンマ補正部42は、ブロック毎に設定されたガンマ値を用いて、ブロック毎にガンマ補正を行っている。したがって、隣接する2つのブロック間の境界において、撮像画像では同じ諧調値であったとした場合でも、ガンマ補正により異なる諧調値となってしまう。このような場合、ブロック間の境界で、不自然な表示となってしまう。そこで、境界補正部43は、隣接する2つのブロック間の境界領域において、階調値を補正する。こにより、境界領域での階調変化を滑らかにすることができる。
境界補正部43での境界補正について、図6を用いて詳細に説明する。図6は、ブロックB1とブロックB3との境界領域の補正を説明するための図であり、図5で示した撮像画像Pを補正する例を示している。図6では、撮像画像Pの下側に境界補正を行う前後の階調値の波形図が示されている。図6に示すように、隣接するブロックB1とブロックB3との境界線Lとする。境界線Lは矩形状となっている。
図6は、Y方向に延びる境界線Lと直交する直線L1に沿った諧調値の変化を示す波形図が示されている。図6の波形図では、横軸がX方向の位置であり、縦軸が階調値となっている。
さらに、ブロックAとブロックCとの間の境界を境界領域Rとする。境界領域Rは、境界線Lを含む領域である。境界領域Rは、境界線Lに沿って形成された領域である。境界領域Rは、境界線Lと直交する方向を幅方向として、幅方向に複数の画素を備えている。境界補正部43は、境界領域Rのピクセル座標を決定する。境界線L、及び境界領域Rは、被写体S1の輪郭Cと重ならないように設定されている。境界領域Rの設定については後述する。
境界補正部43は、境界領域Rに含まれる画素の諧調値を補正する。具体的には、境界補正部43は、境界領域R内で諧調値が徐々に変化するように、境界領域R内の画素の諧調値を補間する。ここでは、境界補正部43が境界領域Rの一端の画素と他端の画素との間の諧調値を線形補間している(図6の補間直線I)。境界補正部43は、境界領域Rの両端の画素を用いて、境界領域R内の画素の諧調値を補間する。幅方向において、境界領域Rの諧調値を滑らかに変化させることができる。すなわち、境界領域Rの一端から他端に向かうにつれて、諧調値が徐々に増加又は減少していく。したがって、ブロック間の境界領域Rを違和感なく表示することができる。
さらに、境界領域Rが被写体S1の輪郭Cと重ならないように設定されているため、被写体S1の輪郭Cを維持することができる。隣接するブロックが異なるガンマ値でガンマ補正されている場合であっても、被写体を違和感なく表示することができる。
図4の説明に戻る。二次制御部40はガンマ補正、及び境界補正が施された画像(以下、カメラ画像とする)を記録再生部60に記録する(S24)。さらに、表示部62は、カメラ画像をモニタ上に表示する(S25)。このようにして、二次制御部40は、カメラ画像を出力することができる。
上記のように、撮像装置100は、撮像画像Pから被写体を抽出して、個々の被写体毎にガンマ値を設定している。撮像装置100は、被写体毎に適切なガンマ値を用いて、ガンマ補正を行うことができる。撮像装置100は、各被写体が白飛びや黒つぶれしないように、ダイナミックレンジを拡張することができる。したがって、撮像装置100単体で、高品質のHDR(High Dynamic Range)画像を生成することができる。さらに、境界領域Rの諧調値を補正しているため、階調変化を滑らかにすることができる。
AIを用いた画像検索によって、画像解析部50が、クラウドネットワーク200上で類似画像を検索している。画像解析部50が類似画像に基づいて、ガンマ値を設定している。これにより、被写体に応じた最適なガンマ値でガンマ補正を行うことができる。
クラウド検索において、検索条件を指定することで、人気のあるガンマ値や、年代指定による当時流行のガンマ値を設定することが可能となる。よって、所望の画質を実現することが可能となる。また、新たに抽出された被写体に画像を被写体画像として蓄積していくことで、被写体抽出部51における抽出精度を向上することができる。
画像解析部50における解析処理の一例について、図7を用いて説明する。図8は、画像解析部50の処理を示すフローチャートである。
まず、被写体抽出部51は、撮像画像の日時データ、AE、ホワイトバランス補正値から、撮像場所、又は光源を特定する(S41)。例えば、被写体抽出部51は撮像場所が、屋内か屋内かを特定する。あるいは、被写体抽出部51は、光源が、白熱電球、蛍光灯、晴天、又は曇天等を特定する。
そして、被写体抽出部51は、被写体画像を参照して、被写体を簡易検索する(S42)。ここでは、撮像場所、及び光源の少なくとも一方に関する情報を用いることで、被写体を高精度で抽出することができる。そして、被写体抽出部51は、簡易検索により抽出された被写体に基づいて、撮像画像Pをブロック化する。
次に、画像検索部52は、クラウド検索のための検索条件を入力する(S43)。例えば、ユーザによる入力操作に基づいて、検索条件が指定される。あるいは、画像検索部52が予め設定されている検索条件を用いて、検索を行ってもよい。あるいは、撮像画像Pから抽出された被写体情報等に基づいて、検索条件が自動で入力されてもよい。
画像検索部52は、クラウドネットワーク200上において、検索条件に基づいて画像検索を行い、ブロック画像と類似する類似画像を検索する(S44)。そして、画像検索部52は、類似画像に基づいて、ガンマ値を取得する(S45)。例えば、類似画像にガンマ値が付加されている場合、類似画像のガンマ値をブロック画像のガンマ値として取得する。
画像解析部50は、ブロック毎にガンマ値を設定する(S46)。すなわち、S44とS45の処理を各ブロックに対して実施することで、ブロック毎にガンマ値を設定することができる。
なお、類似画像にガンマ値に関する情報が付加されていない場合、画像解析部50が類似画像を画像解析することで、ガンマ値を取得してもよい。例えば、画像解析部50は、類似画像の階調値のヒストグラムを生成する。そして、画像解析部50が、ヒストグラムの分布を解析することで、類似画像のガンマ値を推定してもよい。例えば、画像解析部50がヒストグラムの分布から特徴量を抽出して、特徴量に基づいてガンマ値を推定する。
次に、二次制御部40における処理について、図8を用いて説明する。撮像画像Pを補正する処理を示すフローチャートである。なお、二次制御部40には、画像解析部50からのブロック情報が入力されている。
まず、ブロック分割部41が、ブロック内の被写体の輪郭データを検出する(S51)。例えば、ブロック分割部41が、ブロック画像に対してエッジ検出を行うことで、被写体の輪郭データを取得することができる。輪郭データは、ブロック画像内における被写体の輪郭を構成する画素の位置を示すデータである。
ブロック分割部41がブロック画像を周波数解析して、フォーカス情報、前後関係情報を取得する(S52)。具体的には、ブロック分割部41がブロック画像を離散フーリエ変換して、周波数特性を算出する。例えば、ブロック分割部41は、2次元の高速フーリエ変換により、ブロック画像の周波数特性を求めることができる。
ブロック分割部41は、周波数特性に基づいて、フォーカス情報、及び前後関係情報を取得する。フォーカス情報は、ブロック画像のフォーカス度合いを示す情報、あるいは、フォーカスが合っているかぼけているかを示す情報である。フォーカス情報に基づいて、ブロック画像(被写体)にフォーカスが合っている否かを判定することができる。フォーカスの合い具合で、フォーカスが合っている被写体に対する前後方向の距離関係が推定できる。フォーカスがぼけているほどフォーカスが合っている被写体との前後方向の距離が大きいと考える。前後のどちらの方向に離れているかについては、ブロック分割部41は画像解析部50の前後関係に関する推定結果を参照することができる。
前後関係情報は、前後方向における被写体の位置関係を示す情報である。前後関係情報に基づいて、隣接するブロックに含まれる被写体の前後関係が分かる。つまり、前後関係情報により、隣接するブロックに映っている2つの被写体のうち、前側の被写体と後ろ側の被写体とを特定することが可能になる。なお、ブロック分割部41は、周波数成分、画像解析部50の推定結果の参照だけでなく、輪郭データを用いて、前後関係情報を求めてもよい。例えば、隣接するブロックで、被写体の輪郭が重なっている場合には、輪郭データを用いて、一方のブロック画像が他方のブロック画像の輪郭を遮っている場合に一方のブロック画像が他方のブロック画像の前にあると判断し、前後関係情報を取得する。
ブロック分割部41は、フォーカス情報に基づいて、境界領域を調整する(S53)。ここでは、フォーカスが合っているブロックを優先して、ガンマ補正部42が境界領域を設定する。例えば、フォーカスが合っているブロックB1と、フォーカスが合っていないブロックB3との間の境界では、ブロック分割部41は、ブロックB1を優先して、境界領域Rを設定する。境界領域RのブロックB1側の端から境界線Lまでの距離が境界領域RのブロックB3側の端から境界線Lまでの距離よりも小さくなるように、ガンマ補正部42が境界領域Rを設定する。つまり、フォーカスがあっていないブロックでは、フォーカスが合っているブロックよりも境界領域が大きくなる。
次に、ブロック分割部41は、前後関係情報に基づいて、境界領域を調整する(S54)。ここでは、2つの被写体のうち、前側にある被写体のブロックを優先して、ブロック分割部41が境界領域を設定する。例えば、ブロックB1の被写体がブロックB3の被写体よりも前にある場合、ブロック分割部41は、ブロックB1を優先して、境界領域Rを設定する。境界領域RのブロックB1側の端から境界線Lまでの距離が境界領域RのブロックB3側の端から境界線Lまでの距離よりも小さくなるように、ガンマ補正部42が境界領域Rを設定する。つまり、被写体が後ろにあるブロックでは、境界領域Rが被写体が前にあるブロックよりも大きくなる。
ブロック分割部41が輪郭データにより、境界領域を決定する。(S55)ここでは、ブロック分割部41は、S51で抽出された輪郭データを参照して、被写体の輪郭と境界領域が重複しないように、境界領域のサイズ、及び位置を調整する。S53、S54で調整された境界領域と、輪郭が重複している場合、ブロック分割部41は、境界領域を狭くする、あるいは、シフトする。前側にある被写体の輪郭を確保できていれば、後ろ側の被写体の輪郭と境界領域が重複していてもよい。つまり、ブロック分割部41は、前後関係情報を参照して、前側にある被写体の輪郭を優先して確保すればよい。
ガンマ補正部42が各ブロックをガンマ補正する(S56)。すなわち、ブロック毎に設定されたガンマ値を用いて、ガンマ補正部42がブロック画像の諧調値をガンマ補正する。なお、ガンマ補正部42は、境界領域を除いてガンマ補正を行ってもよい。境界補正部43が境界領域を補正する(S57)。つまり、図6に示したように、境界補正部43が、境界領域の一端と他端の画素の諧調値で、境界領域内の諧調値を補完する。二次制御部40が、境界領域が補正されたカメラ画像を出力する(S58)これにより、違和感のないカメラ画像を生成することができる。
画像解析部50における処理の一部が、二次制御部40によって実施されてもよい。あるいは、二次制御部40による処理の一部は、画像解析部50によって実施されてもよい。さらには、二次制御部40と画像解析部50の処理が1つのプロセッサで実施されてもよい。
撮像装置100は、AIによる画像検索を行わないようにしてもよい。例えば、画像解析部50によるクラウドネットワーク200の画像検索を行わずに、被写体が抽出される。この場合、被写体抽出部51がAIを用いずに画像検索を行った上で、被写体を抽出すればよい。そして、ブロック分割部41が被写体に応じて撮像画像をブロック分割する。さらに、ブロック分割部41で抽出された被写体の情報に基づいて、ガンマ補正部42がブロック毎にガンマ値を設定する。例えば、被写体の大まかな分類ごとにガンマ値を予め設定しておき、そのガンマ値を用いてブロック毎にガンマ補正を行えばよい。例えば、被写体を人、動物、建物などと大まかに分類すればよい。そして、予め分類ごとに適切なガンマ値を設定しておく。
この場合、本実施の形態にかかる撮像装置は、被写体を含む画像を撮像する撮像部と、前記撮像部が撮像した撮像画像が白飛びしないように、前記撮像部の撮像条件を制御する撮像条件制御部と、前記撮像画像に含まれる被写体を抽出する被写体抽出部と、前記被写体抽出部で抽出された前記被写体に応じて、前記撮像画像を複数のブロックに分割するブロック分割部と、前記被写体に基づいて前記ブロック毎に設定されたガンマ値を用いて、前記撮像画像の諧調値を前記ブロック毎にガンマ補正するガンマ補正部と、隣接する前記ブロックの境界領域において、前記諧調値を補正する境界補正部と、を備えている。
画像解析部50は、ブロック毎に分割処理を行わずに、画像検索をおこなってもよい。この場合、画像解析部50がAIを用いた画像検索を行うことで、撮像画像Pに対して1つの類似画像を抽出する。そして、撮像画像Pの全体が1つのガンマ値でガンマ補正される。したがって、境界を補正する処理等が不要となる。
この場合、本実施の形態にかかる撮像装置は、被写体を含む画像を撮像する撮像部と、前記撮像部が撮像した撮像画像が白飛びしないように、前記撮像部の撮像条件を制御する撮像条件制御部と、前記撮像画像に含まれる被写体を抽出する被写体抽出部と、ネットワーク上で前記被写体の被写体画像と類似する類似画像を検索する画像検索部と、前記類似画像に応じたガンマ値で前記撮像画像をガンマ補正するガンマ補正部と、を備えている。
さらに、被写体認識により各被写体に最適なディテールを掛けることも可能である。例えば、被写体の輪郭強調を行う場合、被写体に応じて、ブロック毎に輪郭の強調度合いを変えてもよい。それぞれの質感を向上することが可能となる。被写体の前後関係情報に基づいて、輪郭の強調度合いを変えることも可能である。この場合、前にある被写体の輪郭をより強調するようにしてもよい。このようにすることで、立体感のある画質を実現することができる。各被写体の性別判断により、被写体ごとに美肌モードを掛けることが可能となる。
上記処理のうちの一部又は全部は、コンピュータプログラムによって実行されてもよい。つまり、撮像装置100に搭載されたプロセッサがプログラムを実行することで、上述の処理が実施される。上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限られたものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。例えば、実施例ではブロックの形状を長方形として説明したが、長方形に限らず被写体ごとに様々な形状を用いてもよい。さらには被写体の輪郭をブロックの境界に用いることも含まれる。この場合、境界領域はすべて後ろ側のブロックに形成される。