IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7479840画像処理装置、画像処理方法およびプログラム
<>
  • 特許-画像処理装置、画像処理方法およびプログラム 図1
  • 特許-画像処理装置、画像処理方法およびプログラム 図2
  • 特許-画像処理装置、画像処理方法およびプログラム 図3
  • 特許-画像処理装置、画像処理方法およびプログラム 図4
  • 特許-画像処理装置、画像処理方法およびプログラム 図5
  • 特許-画像処理装置、画像処理方法およびプログラム 図6
  • 特許-画像処理装置、画像処理方法およびプログラム 図7
  • 特許-画像処理装置、画像処理方法およびプログラム 図8
  • 特許-画像処理装置、画像処理方法およびプログラム 図9
  • 特許-画像処理装置、画像処理方法およびプログラム 図10
  • 特許-画像処理装置、画像処理方法およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】画像処理装置、画像処理方法およびプログラム
(51)【国際特許分類】
   G06T 15/60 20060101AFI20240430BHJP
   H04N 23/60 20230101ALI20240430BHJP
【FI】
G06T15/60
H04N23/60 500
【請求項の数】 12
(21)【出願番号】P 2019238733
(22)【出願日】2019-12-27
(65)【公開番号】P2021107983
(43)【公開日】2021-07-29
【審査請求日】2022-12-19
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】石橋 拓也
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】特開2019-100995(JP,A)
【文献】特表2012-522283(JP,A)
【文献】特開2018-036884(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/60
H04N 23/60 -23/698
H04N 5/222- 5/257
(57)【特許請求の範囲】
【請求項1】
画像を基に被写体の位置と前記被写体の位置における局所領域の面の傾きとを情報として持つ点の集合を点群として取得する点群取得手段と、
前記点群のうち、光源の位置を基準位置としたときに手前側にある点群を第1の点群とし、前記光源の位置を基準位置としたときに奥側にある点群を第2の点群とし、前記第1の点群の各点の前記局所領域の面の傾きと前記第2の点群の各点の前記局所領域の面の傾きとの差が大きいほど閾値が小さくなるように、閾値を設定する閾値設定手段と、
前記第2の点群のうち、前記光源から前記第1の点群の各点までの距離と前記光源から前記第2の点群の各点までの距離との距離差が前記閾値以上である点を影が付く領域として設定する領域設定手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記影が付く領域に基づいて影を付けた画像を生成する画像生成手段をさらに有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記点群取得手段は、光学系の異なる瞳領域を通過する被写体の光束に基づく一対の画像を基に被写体までの距離を算出し、前記被写体までの距離を基に前記被写体の位置を取得することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記点群取得手段は、照度差ステレオ法により法線情報を前記局所領域の面の傾きとして取得することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。
【請求項5】
前記点群取得手段は、前記被写体の位置の隣接する各点の位置の変位量に基づいて、前記局所領域の面の傾きを取得することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。
【請求項6】
前記点群取得手段は、前記局所領域に含まれる点群の位置を平均することで補正した位置を算出し、前記補正した位置を用いて前記変位量を算出することを特徴とする請求項に記載の画像処理装置。
【請求項7】
前記閾値設定手段は、測定情報と撮像情報と画像情報のいずれか1つ以上の情報を基に前記閾値を設定することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。
【請求項8】
前記測定情報は、局所領域の位置の標準偏差と撮像装置のデフォーカス量のいずれか1つ以上の情報であることを特徴とする請求項に記載の画像処理装置。
【請求項9】
前記撮像情報は、撮像装置の絞り値と、撮像装置のピント位置までの距離と、撮像装置の焦点距離のいずれか1つ以上の情報であること特徴とする請求項に記載の画像処理装置。
【請求項10】
前記画像情報は、前記画像のコントラストと画像のSN比のいずれか1つ以上の情報であることを特徴とする請求項に記載の画像処理装置。
【請求項11】
画像を基に被写体の位置と前記被写体の位置における局所領域の面の傾きとを情報とし
て持つ点の集合を点群として取得する点群取得ステップと、
前記点群のうち、光源の位置を基準位置としたときに手前側にある点群を第1の点群とし、前記光源の位置を基準位置としたときに奥側にある点群を第2の点群とし、前記第1の点群の各点の前記局所領域の面の傾きと前記第2の点群の各点の前記局所領域の面の傾きとの差が大きいほど閾値が小さくなるように、閾値を設定する閾値設定ステップと、
前記第2の点群のうち、前記光源から前記第1の点群の各点までの距離と前記光源から前記第2の点群の各点までの距離との距離差が前記閾値以上である点を影が付く領域として設定する領域設定ステップと
を有することを特徴とする画像処理方法。
【請求項12】
コンピュータを、請求項1~10のいずれか1項に記載された画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【0002】
2つの撮像部を備え、立体視用の画像を撮像できるステレオカメラが知られている。ステレオカメラは、各撮像部によって同一の被写体を同時に撮像し、視差を有する第1の画像と第2の画像との2種類の画像を取得する。ステレオカメラは、視差を有する画像から画素毎の視差量を算出することで、カメラから被写体までの距離を算出することが可能である。この距離情報は、一般的にカメラ座標系で表され、座標変換により世界座標系での被写体の位置を有する点群に変換することができる。ステレオカメラは、仮想の光源を設定し、仮想の光源の位置と点群とを用いて、仮想の光源によって作り出される影の領域を算出し、影を付与した画像を生成することが可能である。
【0003】
非特許文献1には、仮想の光源位置から手前側にある点群の各点までの距離と奥側にある点群の各点までの距離との距離差を求めて、奥側の点群の各点で距離差が閾値以上ある領域を影が付く領域とすることで、影の領域を算出する方法が開示されている。閾値が小さすぎるとシャドウアクネとよばれる不要な影が発生し、閾値が大きすぎると必要な影が付かなくなるため、閾値を適切に制御する方法が必要である。
【0004】
特許文献1には、仮想の光源の光線方向ベクトルと影を付ける点群の法線方向ベクトルを参照し、両ベクトルの相違度が大きい場合は閾値を大きくし、両ベクトルの相違度が小さい場合は閾値を小さくすることで、影の領域の誤差を低減する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2012-522283号公報
【非特許文献】
【0006】
【文献】Hang Dou,Yajie Yan,Ethan Kerzner,Zeng Dai,Chris Wyman,Washington University in St. Louis,SCI Institute University of Iowa,NVIDIA,“Adaptive Depth Bias for Shadow Maps”,Journal of Computer Graphics Techniques,Vol.3,No.4,2014
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来技術では、被写体の位置は、コンピュータグラフィックスによって設計されたものであり、正確なものが取得できていることを前提とした場合に有効な方法となる。しかし、視差量を算出する方法によって取得した被写体の位置は、視差量算出時の誤差を含む可能性が高く、被写体の位置の誤差に起因した影領域の誤差を低減することができない。
【0008】
本発明の目的は、被写体の位置に誤差がある場合に、影が付く領域の誤差を低減することができるようにすることである。
【課題を解決するための手段】
【0009】
本発明の画像処理装置は、画像を基に被写体の位置と前記被写体の位置における局所領域の面の傾きとを情報として持つ点の集合を点群として取得する点群取得手段と、前記点群のうち、光源の位置を基準位置としたときに手前側にある点群を第1の点群とし、前記光源の位置を基準位置としたときに奥側にある点群を第2の点群とし、前記第1の点群の各点の前記局所領域の面の傾きと前記第2の点群の各点の前記局所領域の面の傾きとの差が大きいほど閾値が小さくなるように、閾値を設定する閾値設定手段と、前記第2の点群のうち、前記光源から前記第1の点群の各点までの距離と前記光源から前記第2の点群の各点までの距離との距離差が前記閾値以上である点を影が付く領域として設定する領域設定手段とを有する。
【発明の効果】
【0010】
本発明によれば、被写体の位置に誤差がある場合に、影が付く領域の誤差を低減することができる。
【図面の簡単な説明】
【0011】
図1】撮像装置と画像処理装置の構成例を示す図である。
図2】画像処理装置の画像処理方法を示すフローチャートである。
図3】点群の取得について説明するフローチャートである。
図4】位置情報の取得について説明するフローチャートである。
図5】撮像部の画素配列構成について説明する図である。
図6】微小ブロックの設定について説明する図である。
図7】像ずれ量と相関値の関係について説明する図である。
図8】閾値設定方法について説明する図である。
図9】影領域を算出する被写体について説明する図である。
図10】影領域算出を説明する図である。
図11】基準となる閾値の設定方法について説明する図である。
【発明を実施するための形態】
【0012】
図1(a)は、本実施形態による画像処理装置100と撮像装置111の構成例を示すブロック図である。画像処理装置100は、制御部101、メモリ102、画像情報入力部105、パラメータ設定部106、点群取得部107、閾値設定部108、影領域算出部109、および影付画像生成部110を有する。撮像装置111は、制御部101、撮像部103、および発光部104を有する。
【0013】
制御部101は、画像処理装置100と撮像装置111の構成要素間の情報のやり取りを制御する。メモリ102は、制御部101によって制御され、各構成要素での処理に必要な情報の読み出しと、各構成要素での処理結果の保存を行う。
【0014】
撮像部103は、光電変換により、被写体の画像を撮像し、画像情報を出力する。制御部101は、撮像部103により撮像された画像情報を、画像情報入力部105と点群取得部107へ供給する。発光部104は、制御部101の制御により、撮像部103の撮像時に発光する。
【0015】
画像情報入力部105は、撮像部103により撮像された画像情報、または撮像装置111以外で撮像された画像情報を入力し、メモリ102へ供給する。パラメータ設定部106は、ユーザによって画像処理装置100へ入力された各パラメータ情報を設定する。制御部101は、パラメータ設定部106により設定されたパラメータ情報をメモリ102に保存する。
【0016】
点群取得部107は、撮像部103により撮像された画像情報から点群を算出し、算出した点群の情報をメモリ102へ供給する。閾値設定部108は、点群取得部107により算出された点群から閾値を算出する。制御部101は、閾値設定部108により算出された閾値をメモリ102に保存する。
【0017】
影領域算出部109は、点群取得部107により算出された点群と閾値設定部108により算出された閾値から影領域を算出し、算出した影領域の情報をメモリ102へ供給する。影付画像生成部110は、影領域算出部109により算出された影領域に基づいて影を付加した画像を生成し、生成した画像をメモリ102へ供給する。
【0018】
図1(b)は、撮像装置111の撮像部103が有する光学系を示す図である。撮像部103は、物体112から発せられた光をレンズ113により予定結像面114で結像し、センサ面115で受光する。撮像部103は、受光した情報を画像情報に変換する。
【0019】
図2は、画像処理装置100の画像処理方法を示すフローチャートである。ステップS201において、パラメータ設定部106は、パラメータを取得し、そのパラメータを設定する。パラメータは、少なくとも下記のパラメータを含む。
【0020】
撮像装置111から被写体のピント位置までの距離・・・(a)
撮像部103の画素ピッチ・・・(b)
一対の測距瞳を通過する光束の重心の開き角の大きさによって決まる変換係数・・・(c)
F値・・・(d)
瞳距離・・・(e)
撮像装置111のレンズ113における像側主点からセンサ面115までの距離・・・(f)
撮像装置111のレンズ113における物側主点から被写体までの距離・・・(g)
撮像装置111の焦点位置・・・(h)
仮想光源位置・・・(i)
基準となる閾値・・・(j)
傾きの差に対して乗ずる任意の係数・・・(k)
【0021】
パラメータは、デフォーカス量の算出や、三次元空間上での点群座標算出、影領域の算出に必要となる。
【0022】
ステップS202において、画像情報入力部105は、画像情報を取得する。例えば、画像情報入力部105は、撮像装置111の撮像部103により撮像された画像情報、または撮像装置111以外で撮像された画像情報を取得する。
【0023】
ステップS203において、点群取得部107は、ステップS202で取得された画像情報を基に点群を取得する。「点群」とは、被写体の位置と被写体の位置における局所領域の面の傾きとを情報として持つ点の集合である。「被写体の位置」とは、被写体の空間内の位置であり、所定の位置から被写体までの距離を計測して求めることができる。「局所領域の面の傾き」とは、被写体形状の局所領域の面の傾きであり、局所領域の形状の変位量や面法線等の情報である。
【0024】
図3は、図2のステップS203の詳細を示すフローチャートである。ステップS301において、点群取得部107は、ステップS202で取得された画像情報から被写体の位置の取得を行う。ステップS301については、図4を用いて説明する。
【0025】
図4は、図3のステップS301の詳細を示すフローチャートである。ステップS401において、点群取得部107は、ステップS202で取得された画像情報から一対の画像データを生成する。画像情報から一対の画像データを生成する方法について、図5(a)と図5(b)を用いて説明する。
【0026】
図5(a)は、画像を撮像する際に使用する撮像部103の画素512の配列の構成例を示す図である。図5(b)は、画素512を拡大した図である。撮像部103は、2次元行列状に配列された複数の画素512を有する。画素512は、マイクロレンズ511と、一対の瞳分割画素513A、514Bを有する。瞳分割画素513Aおよび514Bは、それぞれ、光電変換部であり、光電変換により画素信号を生成する。瞳分割画素513Aで撮像される画像がA像であり、瞳分割画素514Bで撮像される画像がB像である。また、A像とB像を合成した画像がAB像である。AB像は、撮像時にユーザが取得する画像である。点群取得部107は、画像処理を行うために必要な情報として複数枚の画像情報から、A像とB像を一対の画像データとして取得する。A像とB像は、光学系の異なる瞳領域を通過する被写体の光束に基づく一対の画像である。
【0027】
ステップS402において、点群取得部107は、ステップS401で生成されたA像とB像に対して微小ブロックを設定する。図6(a)は、ステップS402を説明する図である。点群取得部107は、A像601とB像602に対して、微小ブロック603を設定する。なお、点群取得部107は、入力画像が有する画素ごとに、微小ブロックの中心の着目画素を設定する。例えば、点群取得部107は、着目画素604に対して微小ブロック603を設定する。また、図6(b)は、微小ブロックの形状について説明する図である。点群取得部107は、A像601に対して、種々の形状またはサイズの微小ブロック605または微小ブロック606を設定することができる。微小ブロックのサイズまたは形状は、限定されない。
【0028】
ステップS403において、点群取得部107は、ステップS402で設定された微小ブロックに対して、相関演算処理を行い、A像とB像の各点の像ずれ量を算出する。相関演算は、微小ブロックにおける一対の画素データを、mをデータ数として、E(1)~E(m)とF(1)~F(m)として一般化して表現する。この場合、点群取得部107は、データ系列E(1)~E(m)に対してデータ系列F(1)~F(m)を相対的にずらしながら、式(1)により、2つのデータ列間のずらし量kにおける相関量C(k)を演算する。
C(k)=Σ|E(n)―F(n+k)| ・・・(1)
【0029】
式(1)において、Σ演算は、nについて計算される。このΣ演算において、nとn+kの取る範囲は、1~mの範囲に限定される。また、ずらし量kは整数であり、一対の画像データの検出ピッチを単位とした相対的シフト量である。
【0030】
図7は、式(1)の演算結果の例として、横軸がすらし量k、縦軸が相関量C(k)を示すグラフである。図7より、一対のデータ系列の相関が高いずらし量kにおいて相関量C(k)が最小になる。そして、点群取得部107は、下記の式(2)~(5)による3点内挿の手法を用い、連続的な相関量に対する最小の相関量C(x)を与える像ずれ量xを求める。
【0031】
x=kj+D/SLOP ・・・(2)
C(x)= C(kj)-|D| ・・・(3)
D=[C(kj-1)-C(kj+1)]/2 ・・・(4)
SLOP=MAX[C(kj+1)-C(kj),C(kj-1)-C(kj)]・・・(5)
【0032】
ここで、kjは、離散的な相関量C(k)が最小となるkである。点群取得部107は、式(2)により、一対の瞳分割画像における像ずれ量xを求める。なお、像ずれ量xの単位は、画素(pixel)とする。
【0033】
ステップS404において、点群取得部107は、式(2) により求めた像ずれ量x より、被写体像面の予定結像面114に対するデフォーカス量DEFを下記の式(6) により求める。
DEF= KX ・PY ・x ・・・(6)
【0034】
式(6)において、PY は、撮像部103の画素ピッチ(撮像部103を構成する画素間距離) である。KX は、一対の測距瞳を通過する光束の重心の開き角の大きさによって決まる変換係数であり、単位が無次元である。点群取得部107は、このように着目画素位置を1画素ずつずらしながら繰り返し計算することで、各画素位置のデフォーカス量DEFを算出する。
【0035】
ステップS405において、点群取得部107は、ステップS404で算出されたデフォーカス量DEFを用いて、撮像装置111の撮像部103のセンサ面115から被写体までの距離zを算出する。点群取得部107は、各点における距離zを、式(7)~(8)から算出する。
【0036】
dist= 1/(1/(dist_d+DEF)-1/f) ・・・(7)
z=length-dist ・・・(8)
【0037】
ここで、distは、撮像部103のレンズ113における物側主点から被写体までの距離である。dist_dは、撮像装置111の撮像部103のレンズ113における像側主点からセンサ面115までの距離である。fは焦点距離である。lengthは、撮像装置111のセンサ面115からピント位置までの距離である。
【0038】
撮像装置111のセンサ面115からピント位置までの距離lengthは、例えば、レーザ測距手段により、測定することが可能である。また、点群取得部107は、撮像時のレンズ位置とピント位置の関係をデータテーブルに持つことで、撮像時のレンズ位置に対応したピント位置までの距離を推定することが可能である。これにより、点群取得部107は、撮像装置111のセンサ面115からピント位置までの距離を測距する手間を低減できる。
【0039】
以上により、点群取得部107は、撮像装置111の撮像部103のセンサ面115から被写体までの距離zの算出を行うことができる。このように、点群取得部107は、1枚の画像から一対の画像データを生成することにより、距離zを算出できることから、撮像装置111は、複眼である必要はなく、単眼のカメラでよいため、撮像装置111の構成を簡易にすることができる。さらに、複数のカメラを設置する際のキャリブレーション処理も簡易、または不要とすることができる。これにより、点群取得部107は、距離zの算出精度を高くすることができる。
【0040】
撮像装置111の撮像部103のセンサ面115から被写体までの距離zは、ステップS301において撮像装置111で撮像した画像情報から画像処理装置100で算出することが可能である。このような方法以外にも、ステレオカメラによって距離zを算出する方法やLiDARのようなレーザの反射情報を取得し、距離zを算出することも可能である。また、これらの距離zの算出は、撮像装置111の外部装置で行い、画像処理装置100は、外部装置で算出された距離zを取得することも可能である。なお、距離zは、センサ面115からの距離に限定されるものではなく、レンズ先端から等の任意の位置からの距離でもよい。
【0041】
ステップS406において、点群取得部107は、ステップS405で算出された距離zに対して、カメラ座標系から世界座標系の点群に変換し、被写体の位置を取得する。なお、点群取得部107は、カメラ座標系から世界座標系に変換することで、被写体の位置を取得しているが、被写体の位置をカメラ座標系のままにして、カメラ座標系での距離情報を被写体の位置として使用してもよい。
【0042】
ステップS302において、点群取得部107は、局所領域の面の傾きの取得を行う。局所領域の面の傾きは、照度差ステレオ法で取得することができる。点群取得部107は、照度差ステレオ法により高精度な法線情報を画素単位で取得し、その法線情報を局所領域の面の傾きとして使用する。また、点群取得部107は、ステップS301で算出された被写体の位置の隣接する各点の位置の変位量に基づいて、局所領域の面の傾きを算出することも可能である。例えば、各点がX、Y、Zの三次元空間座標で定義される場合に、X方向の位置の変位量、またはY方向の位置の変位量、またはX方向の位置の変位量とY方向の変位量の二乗和の平方根等を各点の局所領域の面の傾きとすることができる。この時、画像処理装置100やLiDAR等のセンサによって取得された位置は誤差を含むため、各点の変位量を求めると、変位量に誤差が発生する可能性が高くなる。このような場合は、点群取得部107は、局所領域に含まれる点群の位置を平均すること補正した位置を算出し、その補正した位置を用いて上記の変位量を算出することで、変位量の誤差を低減することが可能である。このようにすることで、法線を取得する装置がない場合でも、局所領域の面の傾きを取得することができる。以上により、点群取得部107は、局所領域の面の傾きを取得することができる。点群取得部107は、被写体の位置と局所領域の面の傾きを取得することにより、点群の取得が可能である。
【0043】
ステップS204において、閾値設定部108は、閾値を設定する。閾値の設定方法については、図8を用いて説明する。図8は、図2のステップS204の詳細を示すフローチャートである。図8のフローチャートについて、図9を用いて説明する。
【0044】
図9は、影領域を算出する被写体について説明する図である。点群取得部107は、撮像装置(カメラ)901で撮像した物体902の形状を画像処理によって、被写体の位置から点群903を求める。点群903に対して、仮想光源904を設定する。点群903のうち、仮想光源904の位置を基準位置としたときに手前側にある点群を第1の点群(点905と点906)とし、仮想光源904の位置を基準位置としたときに奥側にある点群を第2の点群(点907と点908)とする。仮想光源904の位置を基準位置としたときに手前側にある点は、仮想光源904から点群に向けて直線の光線を引いたときに光線上の一番手前にある点となり、奥側にある点は、光線上にある手前側にある点以外の点となる。このような仮想光源904の位置と点群の位置との関係から、第2の点群の各点が第1の点群の各点と仮想光源904の位置との関係により発生する影を付けられる領域であることを示す。これらの点905~点908は、それぞれ局所領域の面の傾き909~局所領域の面の傾き912を点群として持っている。また、点905と点907、点906と点908の距離差は、それぞれ距離差913、距離差914と定義できる。
【0045】
点905~点908は、正しい物体902の形状に対して誤差を含む。このような物体902の位置の誤差により距離差があると、本来、点906における物体902の形状は、点908における物体902の形状へ影を付ける形状ではないにも関わらず影を付ける領域と誤判定されてしまう。これに対して、点906と点908の距離差914を求め、距離差が閾値以上であれば、影を付ける領域とすることで、点908が影領域と判定されることを防ぐことができる。しかしながら、閾値を一律に決定してしまうと、点905と点907の関係のように、距離差が閾値以下であるが、影を付けるのが正しい場合でも影が付かない領域と誤判定されてしまう課題がある。この課題に対して、ステップS204とステップS205の処理を行うことにより、点908を影領域と判定しないようにしつつ、点907を影領域と判定することが可能である。
【0046】
ステップS801において、閾値設定部108は、基準となる閾値を設定する。基準となる閾値は、ステップS201において、パラメータとして設定することが可能である。基準となる閾値は、後述する測定情報、撮像情報、画像情報から求める方法によって、算出することも可能である。
【0047】
ステップS802において、閾値設定部108は、仮想光源から第1の点群の各点までの距離と第1の点群の各点の局所領域の面の傾きを取得する。第1の点群の各点までの距離と第1の点群の各点の局所領域の面の傾きは、図9において、仮想光源904から点905と点906までのそれぞれの距離と対応する局所領域の面の傾き909、局所領域の面の傾き910を意味する。
【0048】
ステップS803において、閾値設定部108は、仮想光源から第2の点群の各点までの距離と第2の点群の各点の局所領域の面の傾きを取得する。第2の点群の各点までの距離と第2の点群の各点の局所領域の面の傾きは、図9において、仮想光源904から点907と点908までのそれぞれの距離と対応する局所領域の面の傾き911、局所領域の面の傾き912を意味する。
【0049】
ステップS804において、閾値設定部108は、第1の点群の各点の局所領域の面の傾きと第2の点群の各点の局所領域の面の傾きの差を算出する。局所領域の面の傾きの差は、2つの局所領域の面の傾きの相違度と考えてよい。相違度が大きい場合は、すなわち、局所的な形状の変位量が大きいか、もしくは形状の面の向いている方向が大きく異なることを示す。図9において、局所領域の面の傾き909と局所領域の面の傾き911は、差が大きいことを表している。これに対して、局所領域の面の傾き910と局所領域の面の傾き912は、差が小さいことを表している。
【0050】
ステップS805において、閾値設定部108は、ステップS804で算出された第1の点群の各点の局所領域の面の傾きと第2の点群の各点の局所領域の面の傾きの差を基に、閾値を設定する。第1の点群の各点の局所領域の面の傾きと第2の点群の各点の局所領域の面の傾きの差を傾きの差N_diffと定義する。設定する閾値を閾値Th、基準となる閾値を基準閾値Th_be、傾きの差N_diffに対して乗ずる係数を係数qとして設定し、閾値設定部108は、式(9)により、閾値Thを算出できる。
Th=Th_be-q×N_diff ・・・(9)
【0051】
このとき、閾値ThがTh≧0となるように、係数qを決定する。ただし、q≧0とする。このように、閾値Thを定義することで、閾値Thは、0からTh_beまでの範囲で値を変更することが可能である。式(9)について、係数qをある定数とすると、差N_diffが大きくなるにつれて、閾値Thは小さくなる。これは、第1の点群の局所領域の面の傾きと第2の点群の局所領域の面の傾きの差が大きくなるにつれて、閾値Thが小さくなることを表している。
【0052】
ステップS205において、影領域算出部109は、影領域を算出する。ステップS205の詳細は、図9図10を用いて説明する。
【0053】
図10は、図2のステップS205の詳細を示すフローチャートである。ステップS1001において、影領域算出部109は、仮想光源から第1の点群の各点までの距離と仮想光源から第2の点群の各点までの距離との距離差を算出する。図9において、距離差は、距離差913、距離差914に対応する。
【0054】
ステップS1002において、影領域算出部109は、式(10)のように、距離差DDが閾値Th以上であるか否かを判定する。
Th≦DD ・・・(10)
【0055】
影領域算出部109は、距離差DDが閾値Th以上である場合、ステップS1003に進み、距離差DDが閾値Th未満である場合、ステップS1004に進む。点905と点907の局所領域の面の傾きの差は大きいため、閾値Thは基準となる閾値Th_beに対して小さい値とする。これにより、点905と点907については、式(10)を満たすため、影領域算出部109は、ステップS1003に進む。
【0056】
これに対し、点906と点908の局所領域の面の傾きの差は小さいため、閾値Thは基準となる閾値Th_beに対して同じか近い値とする。これにより、点906と点908については、式(10)を満たさないため、影領域算出部109は、ステップS1004に進む。
【0057】
ステップS1003において、影領域算出部109は、領域設定部として機能し、第2の点群のうち、距離差DDが閾値Th以上となる点を影が付く領域として設定する。図9において、点907は、点905によって影が付く領域として設定される。
【0058】
ステップS1004において、影領域算出部109は、領域設定部として機能し、第2の点群のうち、距離差DDが閾値Th未満となる点を影が付かない領域として設定する。図9において、点908は、点906によって影が付かない領域として設定される。
【0059】
以上により、影領域算出部109は、影領域の設定を終了する。画像処理装置100は、局所領域の面の傾きを利用して閾値を設定する。これにより、画像処理装置100は、被写体の位置の誤差によって発生していた影が付く領域の誤判定を低減しつつ、一律の閾値を設けることによって本来は影が付く領域を影が付かない領域としていた誤判定を低減できる。
【0060】
次に、影が付く領域に基づいた影付処理を説明する。影付画像生成部110は、ステップS205において、設定された影が付く領域に基づいて、画像に影を付加する画像処理を行い、影を付けた画像を生成する。影付画像生成部110は、影が付く領域として設定された点群に対応した画像のRGB値を小さくすることで、仮想光源によって影が付加された画像を生成する。
【0061】
次に、測定情報、撮像情報、画像情報から基準となる閾値を算出する方法を説明する。閾値設定部108は、ステップS801において、基準となる閾値を任意に設定したが、被写体の位置を測定した際の測定情報や、撮像時の撮像情報、撮像した画像の画像情報に基づいて、基準となる閾値を算出することが可能である。位置の誤差が大きいほど、影が付く領域の判定誤差も大きくなるため、基準となる閾値は高く設定することが好ましい。
【0062】
閾値設定部108は、基準となる閾値Th_beを、測定情報から求めた基準閾値Th_aと撮像情報から求めた基準閾値Th_bと画像情報から求めた基準閾値Th_cから下記の式(11)または式(12)より求めることができる。
【0063】
Th_be=Th_a+Th_b+Th_c ・・・(11)
Th_be=Th_a×Th_b×Th_c ・・・(12)
【0064】
閾値設定部108は、基準となる閾値Th_beを、一例として各情報から算出した基準閾値の総和や積から求めているが、積と和の関係を変えてもよいし、各情報から算出した基準閾値に重みづけを行ってもよい。基準閾値Th_a、基準閾値Th_b、基準閾値Th_cについて、図11を用いて説明する。
【0065】
図11(a)~(b)は、測定情報から求めた基準閾値Th_aを算出する際に評価した各パラメータとその時の各パラメータの基準閾値を説明する図である。測定情報から求めた基準閾値Th_aは、局所領域の位置の標準偏差と、撮像装置111の撮像部103のデフォーカス量のいずれか1つ以上の情報から算出される。
【0066】
図11(a)は、局所領域の位置の標準偏差と局所領域の位置の標準偏差の基準閾値Apとの関係を示す図である。局所領域の位置の標準偏差を評価することで、被写体の位置のばらつきを評価する。標準偏差の値が大きいほど、ばらつきは大きくなる。任意の値Ab、Acと標準偏差の値Adから、標準偏差の値の基準閾値Apは、下記の式(13)で表される。ただし、Ab>0、Ac>0とする。
Ap=Ac×Ad+Ab ・・・(13)
【0067】
図11(b)は、撮像部103のデフォーカス量と撮像部103のデフォーカス量の基準閾値Bpとの関係を示す図である。撮像部103のデフォーカス量が大きい領域は、左右の視差画像の対称性が低くなるため、算出した被写体の位置のばらつきが大きくなる。任意の値Bb、Bcと撮像部103のデフォーカス量Bdから、撮像部103のデフォーカス量の基準閾値Bpは、下記の式(14)で表される。ただし、Bb>0、Bc>0とする。
Bp=Bc×Bd+Bb ・・・(14)
【0068】
閾値設定部108は、測定情報から求めた基準閾値Th_aを、式(15)により算出する。
Th_a=Ap+Bp ・・・(15)
【0069】
図11(c)~(e)は、撮像情報から求めた基準閾値Th_bを算出する際に評価した各パラメータとその時の各パラメータの基準閾値を説明する図である。撮像情報から求めた基準閾値Th_bは、撮像装置111の撮像部103の絞り値と、撮像装置111の撮像部103のピント位置までの距離と、撮像装置111の撮像部103の焦点距離のいずれか1つ以上の情報から算出される。
【0070】
図11(c)は、撮像部103の絞り値と撮像部103の絞り値の基準閾値Cpとの関係を示す図である。撮像時に絞り値を大きくして撮像すると、ステップS501において算出した被写体の位置のばらつきが大きくなる。任意の値Cb、Ccと絞り値Cdから、絞り値の基準閾値Cpは、下記の式(16)で表される。ただし、Cb>0、Cc>0とする。
Cp=Cc×Cd+Cb ・・・(16)
【0071】
図11(d)は、撮像部103のピント位置までの距離と撮像部103のピント位置までの距離の基準閾値Dpとの関係を示す図である。撮像時にピント位置までの距離を大きくして撮像すると、被写体の位置のばらつきが大きくなる。これは被写体の位置の算出精度がピント位置までの距離の二乗に反比例しているためである。任意の値Db、Dcと撮像部103のピント位置までの距離Ddから、撮像部103のピント位置までの距離基準閾値Dpは、下記の式(17)で表される。ただし、Db>0、Dc>0とする。
Dp=Dc×Dd+Db ・・・(17)
【0072】
図11(e)は、撮像部103の焦点距離と撮像部103の焦点距離の基準閾値Epとの関係を示す図である。撮像時に焦点距離を大きくして撮像すると、画角が狭くなるため、被写体の位置のばらつきが小さくなる。任意の値Eb、Ecと撮像部103の焦点距離Edから、撮像部103の焦点距離の基準閾値Epは、下記の式(18)で表される。ただし、Eb>0、Ec<0とする。
Ep=Ec×Ed+Eb ・・・(18)
【0073】
閾値設定部108は、撮像情報から求めた基準閾値Th_bを、式(19)により算出する。
Th_b=Cp+Dp+Ep ・・・(19)
【0074】
図11(f)~(g)は、画像情報から求めた基準閾値Th_cを算出する際に評価した各パラメータとその時の各パラメータの基準閾値を説明する図である。画像情報から求めた基準閾値Th_cは、画像のコントラストと、画像のSN比のいずれか1つ以上の情報から算出される。
【0075】
図11(f)は、画像のコントラストとコントラストの基準閾値Fpとの関係を示す図である。画像のコントラストが大きくなると、被写体の位置のばらつきが小さくなる。任意の値Fb、Fcと画像のコントラストFdから、画像のコントラストの基準閾値Fpは、下記の式(20)で表される。ただし、Fb>0、Fc<0とする。
Fp=Fc×Fd+Fb ・・・(20)
【0076】
図11(g)は、画像のSN比と画像のSN比の基準閾値Gpとの関係を示す図である。画像のSN比が大きいと、ノイズに対する信号の割合が大きくなることから、被写体の位置のばらつきが小さくなる。任意の値Gb、Gcと画像のSN比Gdから、画像のSN比の基準閾値Gpは、下記の式(21)で表される。ただし、Gb>0、Gc<0とする。
Gp=Gc×Gd+Gb ・・・(21)
【0077】
閾値設定部108は、画像情報から求めた基準閾値Th_cを、式(22)により算出する。
Th_c=Fp+Gp ・・・(22)
【0078】
以上のように、閾値設定部108は、測定情報と撮像情報と画像情報のいずれか1つ以上の情報を基に、基準となる閾値Th_beを設定することが可能である。閾値設定部108は、基準となる閾値Th_beを決定することにより、被写体の位置の誤差の大きさに応じて閾値Thをより詳細に決定できるため、影が付く領域の判定の誤差をさらに低減することができる。
【0079】
また、閾値設定部108は、撮像情報によって基準となる閾値Th_beを決定できるので、撮像前に基準となる閾値Th_beを決定することができる。さらに、閾値設定部108は、測定情報や画像情報によって基準となる閾値Th_beを決定できるので、撮像情報がわからない場合でも、基準となる閾値Th_beを決定することができる。
【0080】
撮像装置111は、デジタルカメラまたはビデオカメラの他、スマートフォン、タブレット、工業用カメラ、医療用カメラまたは車載カメラ等に適用可能である。
【0081】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0082】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0083】
100 画像処理装置、101 制御部、102 メモリ、103 撮像部、104 発光部、105 画像情報入力部、106 パラメータ設定部、107 点群取得部、108 閾値設定部、109 影領域算出部、110 影付画像生成部、111 撮像装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11