以下、実施形態について図面を参照して説明する。
図1は、実施形態に係る撮像装置のハードウェア構成例を示すブロック図である。この撮像装置100は、画像を撮像し、撮像された画像を処理する機能を有する。この撮像装置100は、たとえば、カメラ、カメラ機能を有する携帯電話機やスマートフォン、PDA(Personal Digital Assistant, Personal Data Assistant)といった携帯情報端末、カメラ機能を有するパーソナルコンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。
図1に示すように、撮像装置100は、たとえば、フィルタ10、レンズ20、イメージセンサ30、画像処理部、および記憶部を備える。画像処理部は、例えばCPU40などの回路で構成される。記憶部は、例えばRAM50や不揮発性メモリ90で構成される。撮像装置100は、さらにメモリカードスロット60、ディスプレイ70および通信部80を備えてもよい。例えば、イメージセンサ30、CPU40、RAM50、メモリカードスロット60、ディスプレイ70、通信部80および不揮発性メモリ90は、バス110を介して相互に接続され得る。
イメージセンサ30は、フィルタ10およびレンズ20を透過した光を受光し、受光した光を電気信号に変換(光電変換)することによって、画像を生成する。イメージセンサ30には、たとえばCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)が用いられる。イメージセンサ30は、たとえば、赤色(R)の光を受光する撮像素子(第1のセンサ31)と、緑色(G)の光を受光する撮像素子(第2のセンサ32)と、青色(B)の光を受光する撮像素子(第3のセンサ33)とを備える。各撮像素子は、対応する波長帯域の光を受光し、受光した光を電気信号に変換する。この電気信号をA/D変換することによりカラー画像を生成することができる。なお、赤、緑、青の撮像素子毎の電気信号を用いて、R画像、G画像、B画像をそれぞれ生成することもできる。つまり、カラー画像、R画像、G画像、B画像を同時に生成することができる。換言すると、撮像装置100は、1度の撮像で、カラー画像、R画像、G画像、B画像を得ることができる。
CPU40は、撮像装置100内の様々なコンポーネントの動作を制御するプロセッサである。CPU40は、ストレージデバイスである不揮発性メモリ90からRAM50にロードされる様々なプログラムを実行する。不揮発性メモリ90には、イメージセンサ30によって生成された画像や、その画像の処理結果も格納され得る。
メモリカードスロット60には、SDメモリカードやSDHCメモリカードのような各種の可搬記憶媒体が挿入され得る。メモリカードスロット60に記憶媒体が挿入された場合、その記憶媒体に対するデータの書き込みおよび読み出しが実行され得る。データは、例えば画像データや距離データである。
ディスプレイ70は、たとえばLCD(Liquid Crystal Display)である。ディスプレイ70は、CPU40等によって生成される表示信号に基づいて画面イメージを表示する。なお、ディスプレイ70はタッチスクリーンディスプレイであってもよい。その場合、たとえば、LCDの上面にタッチパネルが配置される。タッチパネルは、LCDの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等がタッチパネルによって検出される。
通信部80は、有線通信または無線通信を実行するように構成されたインターフェース機器である。通信部80は、信号を有線または無線送信する送信部と、信号を有線又は無線受信する受信部とを含む。
図2は、フィルタ10の構成例を示す図である。フィルタ10は、たとえば、2色のカラーフィルタ領域である第1のフィルタ領域11と第2のフィルタ領域12とで構成される。フィルタ10の中心は、撮像装置100の光学中心13と一致している。第1のフィルタ領域11および第2のフィルタ領域12は、それぞれ、光学中心13に対して非点対称である形状を有している。また、例えば各フィルタ領域11,12は重複せず、かつ、2つのフィルタ領域11,12によってフィルタ領域の全領域を構成している。図2に示す例では、第1のフィルタ領域11および第2のフィルタ領域12は、それぞれ、円形のフィルタ10が光学中心13を通る線分で分割された半円の形状を有している。また、第1のフィルタ領域11は、たとえばイエロー(Y)のフィルタ領域であり、第2のフィルタ領域12は、たとえばシアン(C)のフィルタ領域である。
フィルタ10は、2以上のカラーフィルタ領域を有する。カラーフィルタ領域それぞれは、撮像装置の光学中心に対して非対称な形状である。一のカラーフィルタ領域が透過する光の波長領域の一部と他の一のカラーフィルタ領域が透過する光の波長領域の一部は、例えば重複する。一のカラーフィルタ領域が透過する光の波長領域は、例えば他の一のカラーフィルタ領域が透過する光の波長領域を含んでもよい。以下では、例として図2のフィルタ10を用いて説明する。
このようなフィルタ10がカメラの開口部に配置されることによって、開口部が2色で2分割された構造開口であるカラー開口が構成される。このカラー開口を透過する光線に基づいて、イメージセンサ30は画像を生成する。イメージセンサ30に入射する光の光路上において、フィルタ10とイメージセンサ30との間にレンズ20が配置されてもよい。イメージセンサ30に入射する光の光路上において、レンズ20とイメージセンサ30との間にフィルタ10が配置されてもよい。レンズ20は複数設けられる場合には、フィルタ10は2のレンズ20の間に配置されてもよい。
より詳細には、第2のセンサ32に対応する波長帯域の光は、イエローの第1のフィルタ領域11とシアンの第2のフィルタ領域12の両方を透過する。第1のセンサ31に対応する波長帯域の光は、イエローの第1のフィルタ領域11を透過し、シアンの第2のフィルタ領域12を透過しない。第3のセンサ33に対応する波長帯域の光は、シアンの第2のフィルタ領域12を透過し、イエローの第2のフィルタ領域12を透過しない。
なお、ある波長帯域の光がフィルタまたはフィルタ領域を透過するとは、フィルタまたはフィルタ領域が高い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰(すなわち、光量の低下)が極めて小さいことを意味する。また、ある波長帯域の光がフィルタまたはフィルタ領域を透過しないとは、光がフィルタまたはフィルタ領域に遮蔽されることであり、例えば、フィルタまたはフィルタ領域が低い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰が極めて大きいことを意味する。例えばフィルタまたはフィルタ領域は、ある波長帯の光を吸収することにより光を減衰させる。
図3は、第1のフィルタ領域11および第2のフィルタ領域12の透過率特性の例を示す図である。図3に示すように、イエローの第1のフィルタ領域11の透過率特性21では、R画像およびG画像に対応する波長帯域の光が高い透過率で透過され、B画像に対応する波長帯域の光がほとんど透過されていない。また、シアンの第2のフィルタ領域12の透過率特性22では、B画像およびG画像に対応する波長帯域の光が高い透過率で透過され、R画像に対応する波長帯域の光がほとんど透過されていない。
したがって、R画像に対応する波長帯域の光はイエローの第1のフィルタ領域11のみを透過し、B画像に対応する波長帯域の光はシアンの第2のフィルタ領域12のみを透過するので、R画像およびB画像上のぼけの形状は、被写体までの距離dに応じて、より詳細には、距離dと合焦距離dfとの差分に応じて変化する。また、各フィルタ領域が光学中心に対して非対称な形状なので、R画像およびB画像上のぼけの形状が、被写体が合焦距離dfよりも手前にあるか、それとも奥にあるかによって異なる。すなわち、R画像およびB画像上のぼけの形状は偏っている。
図4を参照して、フィルタ10が配置されたカラー開口による光線変化と、ぼけの形状とについて説明する。
被写体15が合焦距離dfよりも奥にある場合(d>df)、イメージセンサ30によって撮像された画像にはぼけが発生する。この画像上のぼけの形状を示すぼけ関数(PSF:Point Spread Function)は、R画像、G画像およびB画像でそれぞれ異なっている。すなわち、R画像のぼけ関数101Rは左側に偏ったぼけの形状を示し、G画像のぼけ関数101Gは偏りのないぼけの形状を示し、B画像のぼけ関数101Bは右側に偏ったぼけの形状を示している。
被写体15が合焦距離dfにある場合(d=df)、イメージセンサ30によって撮像された画像にはほとんどぼけが発生しない。この画像上のぼけの形状を示すぼけ関数は、R画像、G画像およびB画像でほぼ同じである。すなわち、R画像のぼけ関数102R、G画像のぼけ関数102G、およびB画像のぼけ関数102Bは、偏りのないぼけの形状を示している。
被写体15が合焦距離dfよりも手前にある場合(d<df)、イメージセンサ30によって撮像された画像にはぼけが発生する。この画像上のぼけの形状を示すぼけ関数は、R画像、G画像及びB画像でそれぞれ異なっている。すなわち、R画像のぼけ関数103Rは右側に偏ったぼけの形状を示し、G画像のぼけ関数103Gは偏りのないぼけの形状を示し、B画像のぼけ関数103Bは左側に偏ったぼけの形状を示している。
本実施形態では、このような特性を利用して、被写体までの距離を算出する。
図5は、撮像装置100の機能構成例を示すブロック図である。
図5に示すように、撮像装置100は、前述のフィルタ10、レンズ20およびイメージセンサ30に加えて、画像処理部41を備える。フィルタ10からイメージセンサ30までの矢印は、光の経路を示す。イメージセンサ30から画像処理部41までの矢印は、電気信号の経路を示す。画像処理部41は、たとえば、画像取得部411、距離算出部412、信頼度算出部413および出力部414を備える。画像処理部41は、これらの一部またはすべてがソフトウェア(プログラム)で実現されても良いし、ハードウェア回路で実現されても良い。
画像取得部411は、ぼけ関数(Point spread function、PSF)が偏りのないぼけの形状を示すG画像を基準画像として取得する。また、ぼけ関数が偏ったぼけの形状を示すR画像およびB画像の一方または両方を対象画像として取得する。例えば、対象画像と基準画像は、一の撮像装置により同時刻に撮像された画像である。
距離算出部412は、複数のぼけ補正フィルタのうち、対象画像に付加すると、基準画像との相関がより高くなるぼけ補正フィルタを求めることで、画像に写る被写体までの距離を算出する。距離算出部412は、さらに算出した距離から、距離画像を出力してもよい。複数のぼけ補正フィルタは、対象画像に対して、相互に異なるぼけを付加する関数である。ここで、まず、距離算出部412による距離算出処理の詳細について説明する。
距離算出部412は、取得された対象画像と基準画像とをもとに、対象画像に異なるぼけを付加することで、対象画像のぼけ形状を補正した補正画像を生成する。本実施形態では、画像に写る被写体までの距離が任意の距離であると仮定して作成した複数のぼけ補正フィルタを用いて、対象画像のぼけ形状を補正した補正画像を生成し、補正画像と基準画像との相関がより高くなる距離を求めることで、被写体までの距離を算出する。なお、補正画像と基準画像との相関を計算する手法については後述する。
撮像画像のぼけ関数は、撮像装置100の開口形状と、被写体の位置とピント位置との距離によって決定する。図6は、実施形態に係る基準画像のぼけ関数の一例を示す図である。図6に示すように、第2のセンサに対応する波長領域が透過する開口形状は点対称形である円形状であるため、ぼけ関数で示されるぼけの形状は、ピント位置の前後で変化はなく、被写体とピント位置との間の距離の大きさによってぼけの幅が変化する。このようなぼけの形状を示すぼけ関数は、被写体の位置とピント位置との間の距離の大きさによってぼけの幅が変化するガウス関数として表現できる。なお、ぼけ関数は、被写体の位置とピント位置との距離によってぼけの幅が変化するピルボックス関数として表現してもよい。
一方、図7は、実施形態に係る対象画像のぼけ関数の一例を示す図である。なお、各図の中心(x0,y0)=(0,0)である。図7に示すように、対象画像(たとえばR画像)のぼけ関数は、被写体がピント位置よりも遠方にあるd>dfの場合、x>0において第1のフィルタ領域11での光減衰によってぼけの幅が減衰するガウス関数として表現できる。また、被写体がピント位置よりも近方にあるd<dfの場合、x<0において第1のフィルタ領域11での光減衰によってぼけの幅が減衰するガウス関数として表現できる。
また、基準画像のぼけ関数と対象画像のぼけ関数とを解析することにより、対象画像のぼけ形状を基準画像のぼけ形状へ補正するための複数のぼけ補正フィルタを求めることができる。
図8は、実施形態に係るぼけ補正フィルタの一例を示す図である。なお、図8に示すぼけ補正フィルタは、図2に示したフィルタ10を用いた場合のぼけ補正フィルタである。図8に示すように、ぼけ補正フィルタは、第1のフィルタ領域11と第2のフィルタ領域12の境界の線分の中心点を通り、この線分に直交する直線上(直線付近)に分布する。その分布は、想定する距離毎にピーク点(直線上の位置,高さ)とピーク点からの広がり方とが異なる図示のような山状の分布となる。対象画像のぼけ形状は、ぼけ補正フィルタを用いて、任意の距離を想定した様々なぼけ形状に補正することができる。つまり、任意の距離を想定した補正画像を生成することができる。
距離算出部412は、生成した補正画像と基準画像とのぼけ形状が最も近似または一致する距離を撮像画像の各画素から求める。ぼけ形状の一致度は、各画素を中心とする任意サイズの矩形領域における補正画像と基準画像との相関を計算すれば良い。ぼけ形状の一致度の計算は、既存の類似度評価手法を用いれば良い。距離算出部412は、補正画像と基準画像とで相関が最も高くなる距離を求め、各画素に写る被写体までの距離を算出する。
たとえば、既存の類似度評価手法は、SSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)、NCC(Normalized Cross-Correlation)、ZNCC(Zero-mean Normalized Cross-Correlation)、Color Alignment Measure等を利用すれば良い。本実施形態では、自然画像の色成分が局所的には線形な関係を持つ特性を有することを利用したColor Alignment Measureを利用する。Color Alignment Measureでは、撮像画像の対象画素を中心とする局所境域の色分布の分散から、相関関係を表す指標が算出される。
このように、距離算出部412は、フィルタ領域に応じた対象画像のぼけ形状を、距離を仮定したぼけ補正フィルタにより補正した補正画像を生成し、生成した補正画像と基準画像との相関がより高くなる距離を求めることで、被写体までの距離を算出する。
信頼度算出部413は、以上のように距離算出部412が算出した距離の信頼性を算出する。次に、信頼度算出部413による信頼度算出処理の詳細について説明する。
たとえば、図9に示すように、被写体(A)の位置がピント位置よりも遠い場合、被写体像(B)のぼけは、B画像においては右側に偏り(C1)、R画像においては左側に偏る(C2)。G画像においては、左右対称のぼけが現れる。なお、図9の被写体(A)と被写体像(B)の横軸は、C1、C2、D1、D2、Eの横軸と同じ次元である。また、C1、C2、D1、D2の縦軸は、ぼけに関する色成分の量を示す。
このように、B画像およびR画像の一方または両方について、ぼけの形状をG画像のぼけの形状に一致させるべく(E)、距離毎のぼけ補正フィルタ(D1,D2)の中から最適なぼけ補正フィルタを探索することにより、被写体(A)までの距離を得ることができる。
図10は、図9に示した被写体像(B)のぼけの形状(C1,C2)および補正後のぼけの形状(E)を断面波形として表した図である。図11に示すように、B画像およびR画像の一方または両方について、ぼけの形状をG画像のぼけの形状と一致させるためのぼけ補正量を探索する(A1,A2)という探索問題は凸最適化問題である。つまり、距離毎のぼけ補正フィルタ(図9:D1,D2)による補正後のB画像またはR画像のぼけの形状とG画像のぼけの形状との相関関数は凸関数となる。
また、凸関数である当該相関関数の曲率は、図12に示すように、閾値以上の相関値が得られたぼけ補正フィルタの数が少ない場合、すなわち、解のばらつきが小さい場合、大きくなり、解のばらつきが大きい場合、小さくなる。信頼度算出部413は、この相関関数の曲率に基づき、距離算出部412により算出された距離の信頼度を算出する。これに対して、2枚の画像からステレオマッチングにより被写体までの距離を算出する場合、一方の画像上の注目点に対応する他方の画像上の対応点を探索するという探索問題は、たとえば図13に示すように、凸最適化問題ではない。したがって、ステレオマッチングの場合、相関値で距離の信頼度を得ることは難しい。
図14を参照して、相関関数の曲率の算出方法の一例を説明する。
たとえば、距離毎のぼけ補正フィルタ(fn)適用時の各相関値(rn)から得られる曲線として2次関数をフィッティング(最小二乗法)し、相関関数の曲率を、当該2次関数の2次係数とする。この場合には、3点(p1,p2,p3)から曲率を算出することができる。
より詳細には、上記3点(p1,p2,p3)について、
r1=c+bf1+af1 2 …(式1)
r2=c+bf2+af2 2 …(式2)
r3=c+bf3+af3 2 …(式3)
の式を立て、この3つの式からa,b,cの値を算出する。すなわち、曲率とする2次係数であるaを算出する。
また、このようにして算出した曲率を、例えば、ガウス関数を用いた以下の(式4)により信頼度(0〜1)へと変換する。
信頼度=1−exp(−(曲率2/2σ2)) …(式4)
信頼度算出部413は、被写体までの距離を算出する過程で算出される距離毎のぼけ補正フィルタ処理適用時の相関値を距離算出部412から取得し、たとえば前述した方法により、距離算出部412により算出された距離の信頼度を算出する。
出力部414は、距離算出部412により算出された距離と、信頼度算出部413により算出された距離の信頼度とを対応づけた出力データを出力する。出力部414は、たとえば、図15に示すように、画像と位置的に対応づけて配置したマップ形式で、画素単位に算出される距離と距離の信頼度とを出力する。あるいは、出力部414は、たとえば、図16に示すように、画像上に設定される座標に基づく順序で並べたリスト形式で、画素単位に算出される距離と距離の信頼度とを出力してもよい。出力部414は、図15および図16に示した形式に限らず、どのような形式で、画素単位に算出される距離と距離の信頼度とを出力してもよい。
例えば、前述したようなマップ形式で、距離(距離マップ)と信頼度(信頼度マップ)とを別々に出力してもよい。さらに、RGBの3画像データの後にこの2マップデータのいずれかまたは両方をつなげて出力データとしてもよい。あるいは、YUV(輝度信号,色差信号[Cb],色差信号[Cr])の3データの後にこの2マップデータのいずれかまたは両方をつなげてもよい。
また、例えば、前述したようなリスト形式で、距離(距離リスト)と信頼度(信頼度リスト)とを別々に出力してもよい。さらに、RGBの3画像データの後にこの2リストデータのいずれかまたは両方をつなげて出力データとしてもよい。あるいは、YUVの3データの後にこの2リストデータのいずれかまたは両方をつなげてもよい。
また、信頼度を出力する形態は、例えば、距離画像上の位置を指定されると信頼度をポップアップで示す表示であってもよい。距離画像上の指定された位置における距離がポップアップで表示されてもよい
あるいは、カラー画像上に距離情報と信頼度をポップアップで表示してもよい。
距離は、画像中のすべての画素に対して算出しなくてもよい。例えば、距離を検出する対象となる被写体が予め特定されていてもよい。特定は、例えば画像認識や、ユーザの入力による指定により行うことができる。一方、信頼度も、距離が求められている画素すべてに対して算出しなくてもよい。例えば特定の被写体や距離が近い被写体については信頼度を算出し、遠い被写体については信頼度を算出しなくてもよい。
また、前述したようなマップ形式で、図15に示すように距離と信頼度とを同時に出力する場合または距離マップと信頼度マップとで別々に出力する場合、あるいは、前述したようなリスト形式で、図16に示すように距離と信頼度とを同時に出力する場合または距離リストと信頼度リストとで別々に出力する場合、のいずれにおいても、その出力データに、算出したすべての距離を載せなくてもよい。例えば、信頼度が所定値より低い、あるいは相対的に信頼度が低い場合にはその距離を出力データに載せなくてもよい。
また、このようにマップ、リストその他の様々な形式で出力され得る出力データは、例えば、ディスプレイ70に出力されてもよい。
図17は、実施形態における画像処理の流れの一例を示すフローチャートである。
画像取得部411は、イメージセンサ30により生成される画像であって、フィルタ10のフィルタ領域を透過した光のうち、第1のフィルタ領域および第2のフィルタ領域のいずれによっても減衰せずに透過する光により結像される基準画像を取得する(ステップA1)。また、画像取得部411は、同じくイメージセンサ30により生成される画像であって、フィルタ10のフィルタ領域を透過した光のうち、たとえば第1のフィルタ領域により減衰して透過する光により結像される対象画像を取得する(ステップA2)。ここでは、対象画像として、第1のフィルタ領域により減衰して透過する光により結像される画像を取得することを想定するが、画像取得部411は、第2のフィルタ領域により減衰して透過する光により結像される画像を取得してもよいし、第1のフィルタ領域により減衰して透過する光により結像される画像と、第2のフィルタ領域により減衰して透過する光により結像される画像との2つを取得してもよい。
距離算出部412は、ぼけ補正フィルタを用いて、対象画像のぼけ形状を補正した補正画像を生成し(ステップA3)、この補正画像のぼけと基準画像のぼけとの相関値を算出する(ステップA4)。補正画像の生成および相関値の算出は、距離毎のぼけ補正フィルタの数分行われる。距離算出部412は、算出した相関値に基づき、被写体までの距離を算出する(ステップA5)。より詳細には、距離毎のぼけ補正フィルタの中から、生成された補正画像と基準画像との相関が最も高いぼけ補正フィルタを探索することにより、被写体までの距離を取得する。あるいは、他の補正フィルタよりも基準画像等との相関が高い補正画像を生成するボケ補正フィルタが探索されてもよい。
また、信頼度算出部413は、被写体までの距離を算出する過程で算出される距離毎のぼけ補正フィルタ処理適用時の相関値に基づき、相関関数の曲率を算出する(ステップA6)。信頼度算出部413は、算出した曲率に基づき、距離算出部412により算出された距離の信頼度を算出する(ステップA7)。
そして、出力部414は、距離算出部412により算出された距離と、信頼度算出部413により算出された距離の信頼度とを対応づけて出力する(ステップA8)。
以上のように、本実施形態によれば、画像から得た被写体までの距離の信頼度を、実際の信頼性を反映した値として算出することができる。
ところで、前述の説明では、距離毎のぼけ補正フィルタにより生成される補正画像と基準画像との相関関数の曲率を算出し、この曲率を距離の信頼度へと変換した。補正画像と基準画像との相関値を、その補正画像の生成に用いられたぼけ補正フィルタに対応づけられる距離が正しい値である確率(0〜1)として捉えて、算出された相関値そのものを距離の信頼度としてもよい。より詳細には、複数のぼけ補正フィルタのうち、補正画像と基準画像との相関が最も高いぼけ補正フィルタの相関値を距離の信頼度としてもよい。
また、たとえば曲率を距離の信頼度へと変換する際、最も高い相関値を重みとして用いて、その相関値が高いほど、距離の信頼度が高くなるようにしてもよい。あるいは、被写体像のエッジ方向、より詳細には、処理対象となっている画素のエッジ勾配方向を重みとして用いて、その方向がフィルタ10の第1のフィルタ領域と第2のフィルタ領域との境界線の方向と一致しているほど、距離の信頼度が高くなるようにしてもよい。相関値そのものを距離の信頼度とする場合においても、被写体像のエッジ方向を重みとして用いるようにしてもよい。あるいは、被写体像のエッジ強度、より詳細には、処理対象となっている画素のエッジ勾配の強度を重みとして用いて、その強度が強いほど、距離の信頼度が高くなるようにしてもよい。
なお、以上では、フィルタ10で画像のぼけ関数を変更することにより、被写体までの距離を画像から算出する例を説明したが、たとえば2PDセンサなどと称される、受光される入射光を画素毎に左右2分割するイメージセンサを利用すれば、フィルタ10によらずに、少なくとも一方のぼけ関数を変更させた2つの画像を取得でき、かつ、これら2つの画像のぼけの形状の相関から距離を算出できる。この場合においても、前述した距離の信頼度を算出する手法は適用可能である。
次に、以上のように構成され、被写体までの距離および当該距離の信頼度を出力する撮像装置100を適用するシステムの例についていくつか説明する。
<自動制御システム:ロボット>
図18は、実施形態に係るロボット200の機能構成例を示すブロック図である。ここでは、ロボット200が、たとえば複数種の製品を生産し得る生産ラインなどに設置される産業用ロボットであることを想定する。ロボット200は、設置型に限らず、たとえばAGV(Automatic Guided Vehicle)など自律的に移動するものであってもよい。また、ロボット200は、たとえば、床を掃除するための掃除ロボットや、来場者に各種案内を行うコミュニケーションロボットなどの非産業用としても実現され得る。
図18に示すように、ロボット200は、撮像装置100と、制御部201と、駆動機構202と、回転機構203とを有する。また、撮像装置100は、回転機構203に取り付けられている。
制御部201は、第1に、撮像装置100から出力される、作業の対象物である被写体までの距離に基づき、駆動機構202を制御する。駆動機構202は、たとえば、対象物に部材を取り付けたり、対象物を摘み上げて所定の場所へ搬送したりするためのロボットアームである。また、制御部201は、第2に、撮像装置100から距離とともに出力される当該距離の信頼度に基づき、回転機構203を制御する。図19は、制御部201による回転機構203の制御を説明するための図である。
概して、被写体像のエッジ方向と、フィルタ10の第1のフィルタ領域と第2のフィルタ領域との境界線の方向とが一致していると、距離の信頼度は高くなる。一方、これらの方向が直交する場合、距離の信頼度は低くなる。そこで、制御部201は、撮像装置100から出力される距離の信頼度が高くなるように、回転機構203を制御する。より詳細には、被写体の形状や模様、置かれた向きなどにより、たとえば(A)に示すように、被写体像のエッジが垂直方向に多く現れる場合、フィルタ10の第1のフィルタ領域と第2のフィルタ領域との境界線が垂直方向となるように回転機構203を制御し、また、たとえば(B)に示すように、被写体像のエッジが水平方向に多く現れる場合、フィルタ10の第1のフィルタ領域と第2のフィルタ領域との境界線が水平方向となるように回転機構203を制御する。
たとえば、制御部201は、まず、プレ撮像を撮像装置100に行わせ、このプレ撮像時に撮像装置100から出力される距離の信頼度に基づき、回転機構203により撮像装置100を回転させるべき回転角を導き出す。プレ撮像では、撮像装置100は、画像上の全画素分、距離と当該距離の信頼度とを算出するのではなく、ある程度の数のサンプリングした画素分、距離と当該距離の信頼度とを算出するようにしてもよい。また、制御部201は、たとえば、これらの平均値をプレ撮像における距離の信頼度とする。回転角の導出方法としては、たとえば、プレ撮像における距離の信頼度が閾値未満の場合、90度とする等、様々な方法を適用可能である。回転機構203により撮像装置100を回転させた後、制御部201は、本撮像を撮像装置100に行わせる。
あるいは、制御部201は、回転機構203により撮像装置100を回転させながら撮像装置100に連続的に撮像を行わせて、距離の信頼度が最も高い画像を採用するようにしてもよい。
なお、図19では、回転機構203が駆動機構202上に設けられる例を示したが、撮像装置100を駆動機構202上に設けることは必須ではなく、したがって、回転機構203は、駆動機構202とは別途独立して設けられるものであってもよい。
距離の信頼度が高くなるように撮像装置100を回転させるという手法は、ロボット200以外の移動体にも適用可能である。移動体が、たとえばドローンなどの回転自在な飛翔体であるような場合、回転機構によらず、移動体300全体を回転させるべく制御部301が駆動機構302を制御してもよい。
撮像装置100は、イメージセンサ30に対してフィルタ10を回転させる回転機構を備えてもよい。回転機構は、例えば光学中心を中心にしてフィルタを一平面内で回転させる。フィルタ10の回転により、信頼度の高い距離を取得することができる。
<自動制御システム:移動体>
図20は、実施形態に係る移動体300の機能構成例を示すブロック図である。ここでは、移動体300が、たとえば自動車であることを想定する。移動体300は、自動車を含む車両に限らず、移動用の駆動機構を有するものであるならば、ドローンや飛行機などの飛翔体、船舶、AGVや掃除ロボットなどのロボット等、様々なものとして実現され得る。さらに、移動体300は自動ドアであってもよい。
図20に示すように、移動体300は、制御システムを有する。制御システムは、2つの撮像装置100(100−1,100−2)と、制御部301と、駆動機構302とを有する。ここでは、2つの撮像装置100を有することを想定しているが、3つ以上の撮像装置100を有してもよい。制御システムは、移動体300に搭載されてもよいし、移動体を遠隔で制御してもよい。制御部301は、駆動機構302を直接制御してもよいし、無線により間接的に制御してもよい。図21に示すように、2つの撮像装置100は、たとえば、移動体300の進行方向の被写体を撮像するように設置される。なお、移動体300の進行方向の被写体を撮像するように設置される形態としては、前方を撮像するいわゆるフロントカメラとして設置され得るほか、バック時に後方を撮像するいわゆるリアカメラとして設置され得る。もちろん、これら両方が設置されてもよい。また、撮像装置100は、いわゆるドライブレコーダとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像装置100は、録画機器であってもよい。
制御部201は、2つの撮像装置100それぞれから出力される距離と信頼度に基づいて、駆動機構302を制御する。例えば、2つの撮像装置100それぞれから得られた距離のうち信頼度が高い方の距離に基づいて、制御部201は駆動機構302を制御する。または、2つの撮像装置100それぞれから得られた距離を、それぞれの信頼度で重みづけして得た距離に基づいて、制御部201は駆動機構302を制御する。制御は、たとえば、進行方向にある被写体へ所定の距離まで近づいたら移動する移動体300を停止させたり減速させたり加速させたり、停止している移動体300を移動開始させたりすることである。あるいは、制御部201は、被写体が所定距離以上離れたら、移動体300を停止、減速、加速、移動開始させるように駆動機構302を制御してもよい。あるいは、制御部201は、被写体へ所定の距離まで近づいたら通常駆動モードから衝突回避モードへ切り替えたり、被写体が所定の距離以上離れたら衝突回避モードから通常駆動モードに切り替えたりするように駆動機構302を制御してもよい。所定の距離は、例えば信頼度に応じて変更されてもよい。
信頼度は、画像単位で求められてもよいし、画像上の領域単位で求められてもよい。前者の場合、たとえば距離の信頼度の平均値が高い方の画像を採用する。後者の場合、たとえば2つの画像間の対応する画素毎に距離の信頼値を比較して、各々値が高い方を採用する。これにより、被写体までの距離を、より正確に取得することができる。駆動機構は、例えばタイヤやローラやプロペラを駆動するためのモータやエンジンである。
続いて、図22を参照して、移動体300における距離の信頼度の一活用例について説明する。
ここでは、制御部201が、駆動機構302の制御の1つとして、進行方向の被写体へ所定の距離まで近づいたら移動体300を停止させるべく駆動機構302を制御する場合を想定する。制御部201は、被写体までの距離と当該距離の信頼度とを撮像装置100から取得すると、この距離および当該距離の信頼度に基づき、誤差範囲の一端である距離の下方限界値を算出する。そして、制御部201は、撮像装置100から出力された距離ではなく、この下方限界値を用いて、駆動機構302を制御する。下方限界値は、距離の信頼度が高い程、距離との差分が小さい値として算出され、距離の信頼度が低い程、距離との差分が大きい値として算出される。
たとえば、図22に示すように、被写体までの実際の距離よりも長い距離が撮像装置100により算出されて出力された場合であっても、距離の信頼度から算出される距離の下方限界値を用いることで、移動体300の停止、減速、衝突回避、方向転換、エアバッグ等の安全装置の作動、などが後手に回ってしまうという事態を防止することができる。
なお、距離と距離の信頼度とから算出される距離の下方限界値を用いることは、撮像装置100が1つの場合に行ってもよい。また、移動体300に限らず、たとえば図19および図20を参照して説明したロボット200などにおいても有効である。
<監視システム>
図23は、実施形態に係る監視システム400の機能構成例を示すブロック図である。ここでは、監視システム400が、たとえば店舗内などにおける人の流れを時間帯毎に把握するためのシステムであることを想定する。
図23に示すように、監視システム400は、撮像装置100と、制御部401と、ユーザインタフェース部402とを有する。撮像装置100と制御部401とは、有線または無線のネットワーク経由で接続してもよい。
制御部401は、撮像装置100に連続的に撮像を行わせ、第1に、撮像装置100により撮像される画像を、ユーザインタフェース部402を介して表示する。ユーザインタフェース部402は、たとえばディスプレイ装置などへの表示処理と、たとえばキーボードやポインティングデバイスからの入力処理とを実行する。ディスプレイ装置とポインティングデバイスとは、たとえばタッチスクリーンディスプレイなどの一体型のデバイスであってもよい。
また、制御部401は、第2に、撮像装置100から順次出力されてくる、被写体までの距離と当該距離の信頼度とに基づき、たとえば人が通路のどの辺りをどの方向に歩いているか等の人の流れを解析し、その解析結果をたとえばHDD(Hard Disk Drive)などの記憶装置に記録する。なお、この解析は、必ずしもリアルタイムに実行されるものでなくともよく、記憶装置に蓄積された被写体までの距離と当該距離の信頼度とを用いるバッチ処理として実行されてもよい。
いま、たとえば図24に示すように、2つの立体物が撮像範囲に存在する状態下で撮像装置100による撮像が行われたものとする。また、たとえば背景や照明などの様々な要因により、実際には存在しない立体物らしきものが写った画像が撮像され易い状況下にあるものとする。この場合、たとえば画像中の距離の分布に基づき、立体物を認識するものとすると、立体物らしきものが立体物として誤認識され(A)、たとえば追跡対象などとなってしまうおそれがある。
これに対して、たとえば、画像中の距離の分布を算出する際、信頼度の低い距離を除外することで、立体物らしきものを立体物として誤認識してしまうという事態を防止することができる(B)。
続いて、図25を参照して、以上のようにして認識される画像中の被写体像の追跡における距離の一活用例について説明する。
いま、ある人が、撮像装置100から見て左から右へ移動し、別の人が、逆に、右から左へと移動しようとしている場合を想定する(A)。また、この2人は身長が異なり、身長の低い方の人が、身長の高い方の人よりも、撮像装置100から見て手前に位置しており、その結果、画像上の被写体像のサイズが略一致した状態にあるものと想定する。
この2人がそのまま移動し続けると、ある時点で画像上の被写体像が重なり(B)、その後、左右に離れていく(C)。このような場合、距離を用いず、たとえば画像認識のみで被写体像を追跡すると、被写体像の交差時、追跡対象を取り違えて、2人がそれぞれUターンしたように誤追跡してしまうおそれがある。
これに対して、距離を用いることで、被写体像の交差時に追跡対象の取り違えを起こしてしまうという事態を防止することができる。
また、以上のようにして認識される画像中の被写体像の追跡における距離の他の活用例としては、たとえば、被写体がドアに向かって移動しており、かつ、所定の距離まで近づいたことを検知した場合、ドアを自動的に開け、一方、被写体がドアから遠ざかるように移動しており、かつ、所定の距離以上遠ざかったことを検知した場合、ドアを自動的に占める自動ドアシステムなどを挙げることができる。
図26は、信頼度を活用した距離の一提示例を示す図である。
前述したように、制御部401は、撮像装置100により撮像される画像を、ユーザインタフェース部402を介して表示する。また、制御部401は、被写体までの距離と当該距離の信頼度とを撮像装置100から取得する。さらに、制御部401は、たとえばポインティングデバイスにより画像上の任意の位置が指定された場合、その座標を含むイベント情報をユーザインタフェース部402から受け取る。
このイベント情報を受け取ると、制御部401は、その座標に対応する画素について撮像装置100において算出された距離と当該距離の信頼度とに基づき、誤差範囲の両端である距離の下方限界値および上方限界値を算出する。そして、制御部201は、距離だけではなく、誤差を考慮した距離の範囲を、ユーザインタフェース部402を介して、たとえばポインティングデバイスのポインタ近傍にポップアップ表示する。
つまり、被写体が写っている画像上の位置を指し示すと、その被写体までの距離を、誤差範囲を認識可能に提示させることのできるGUI(graphical user interface)を提供することができる。
また、ユーザインタフェース部402は、左右対称のぼけが現れるG画像、左右非対称のぼけが現れるB画像とR画像、およびカラー画像(RGB画像)の少なくとも一つと、距離画像とを同時に表示し、G画像上、B画像上もしくはR画像上またはカラー画像上の位置が指定されると、距離画像上に距離と信頼度とを表示するというGUIを提供してもよい。
また、このようなGUIは、タブレットコンピュータやスマートフォンなどのスタンドアロン型の電子機器で撮像装置を構成する場合においても有用である。たとえば、電子機器で画像を撮像し、画像が表示されるタッチスクリーンディスプレイ上でタッチ操作を行うことで、被写体までの距離を表示するといった測距ツールとして当該GUIを提供してもよい。
また、被写体までの距離を画素単位で取得できれば、これらの距離を用いて、被写体の各部分の長さを算出することも可能である。したがって、たとえば販売店に展示されている家具などを撮像することにより、その家具の寸法を測ることのできる採寸ツールを、スタンドアロン型の電子機器において実現することができる。前述したように、距離の信頼度は、被写体像のエッジ方向、より詳細には、処理対象となっている画素のエッジ勾配方向と、フィルタ10の第1のフィルタ領域と第2のフィルタ領域との境界線の方向とに依存する。そこで、距離の信頼度が閾値未満であった場合、たとえば図27に示すように、より正確な距離が算出されるように、回転角を示し、電子機器を回転させて画像を撮像することを促すメッセージをディスプレイ等に表示するといったGUIを提供してもよい。あるいは、ディスプレイは、現在の電子機器の向きを針や矢印などの棒状の図形で表し、正確な距離を算出しやすい向きを針谷矢印などの棒上の図形で表したり、回転角や回転の向きを矢印で表したりしてもよい。
以上説明したように、本実施形態によれば、相関関数の曲率を用いて、画像から得た被写体までの距離の信頼度に関する出力や制御を行うことができる。
以下、他の実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
[第2実施形態]
上述したように、カラー開口を備える単眼カメラである撮像装置により撮影された画像から被写体までの距離が求められる。カラー開口は、少なくとも2つのカラーフィルタ領域を備えるカラーフィルタを撮像装置の開口部に配置することによって構成される。カラー開口を透過する光線に基づいてイメージセンサが画像を生成する。図2に示す例では、第1、第2フィルタ領域は円形のフィルタが光学中心を通る鉛直方向の線分により左右(水平方向)に分割されてなる半円の形状を有している。例えば、第1フィルタ領域はイエロー(Y)のフィルタ領域であり、第2フィルタ領域はシアン(C)のフィルタ領域である。緑(G)画像の波長帯域の光は第1、第2フィルタ領域を透過するが、赤(R)画像の波長帯域の光は第1フィルタ領域のみを透過し、青(B)画像の波長帯域の光は第2フィルタ領域のみを透過する。そのため、G画像のぼけの形状は被写体までの距離に応じて変化しないが、R画像およびB画像のぼけの形状は被写体までの距離に応じて変化する。具体的には被写体が合焦距離よりも手前又は奥にあるかに応じてR画像とB画像のぼけは右又は左に偏る。
カラー開口によって変化したR、G、B画像のぼけの形状差は被写体までの距離と一対一で対応している。そのため、カラー開口によって変化したR画像とB画像のぼけの形状をG画像のぼけの形状に補正するぼけ補正フィルタを用意する。ぼけ補正フィルタは、被写体までの距離と対応する。そして、ぼけ補正フィルタをR画像及び/又はB画像に演算し、補正後の画像とG画像との相関に基づいて距離を決定する。
図8に示すように、ぼけ補正フィルタはフィルタ領域を第1、第2フィルタ領域に分割する鉛直方向(分割方向)に直交する水平方向付近に分布する。このような補正フィルタによりR画像及び/又はB画像を補正することは、R画像及び/又はB画像と補正フィルタを水平方向に畳み込むことである。そのため、カラー開口のフィルタ領域分割方向と直交する水平方向のエッジ(濃度勾配方向は鉛直方向)ではどの想定距離でも畳み込み結果は同じとなり、距離が決定できない可能性がある。このような可能性を低くするために、第2実施形態の撮像装置は、カラー開口のフィルタ領域分割方向が被写体に含まれるエッジの方向と直交しないように、言い換えるとフィルタ領域分割方向が被写体の濃度勾配方向と一致しないように、設置することができるように構成されている。
[撮像装置の設置例]
図28は第2実施形態に係る撮像装置の設置例を示す。第2実施形態の撮像装置は監視システム等に応用することができる。図28はカラー開口504を備える撮像装置502をチルト/パン/ロール可能な取付具を介して部屋の天井に取り付ける例を示す。チルト/パンは実施形態には直接関係ないので、それらの機能は省略可能である。さらに、後述するように、ロール機能も省略可能である。図2に示したように、X軸、Y軸はカラー開口の平面内の軸である。Z軸は撮像装置502の光軸方向の軸である。
撮像装置502の後端の中心に円柱状のアーム508の先端が固定されている。アーム508の軸と撮像装置502の光軸とは一致する。アーム508の後端は、アーム508と同心でアーム508より大径のアーム512の先端に挿入される。このため、アーム508(及び撮像装置502)はアーム512に挿入された状態で光軸(ロール軸とも称する)を中心に時計方向、反時計方向にロール回転可能である。時計方向、反時計方向は視線の方向で変わるが、この明細書では、撮像装置502から被写体を見た状態で回転方向を定義する。すなわち、X軸に沿った被写体がY軸に沿うような回転を時計方向の回転と称する。時計方向、反時計方向それぞれのロール角度(鉛直方向を基準とする角度)は90度以上である必要は無く、45度程度でもよい。アーム508の回転はビス等で抑制され、ロール角度が固定される。ロール角度を調整することにより、カラー開口のフィルタ領域分割方向が被写体に含まれるエッジの方向と直交しないように、言い換えるとフィルタ領域分割方向が被写体の濃度勾配方向と一致しないように、設置することができる。
アーム512の後端は垂直方向のアーム514の下端に軸支される。この軸はチルト軸とも称する。このため、アーム512(及びアーム508、撮像装置502)は上下方向にチルト回転可能である。アーム512の回転はビス等で抑制され、チルト角度が固定される。
アーム514の上端はアーム514と同心でアーム514より大径のアーム516の下端に挿入される。このため、アーム514(及びアーム512、508、撮像装置502)はアーム516に挿入された状態で水平方向にパン回転可能である。アーム514の回転はビス等で抑制され、パン角度が固定される。アーム516の上端は取付板520と一体化されている。
チルト角度、パン角度は撮像装置の設置前に特定の角度に固定しておいてもよいし、設置後に所望の視野が撮影されるようにアーム512、514を可動して調整してもよい。
図28は天井に取り付ける取付具の例を示すが、アーム516を水平方向に曲げる、あるいは水平アームをアーム516にさらに接続すれば、部屋の壁あるいは道路脇の電信柱、街路灯等に取り付けることも可能である。
[撮像装置の回転]
図29は第2実施形態に係る撮像装置の回転の一例を示す。ここでは、カラー開口のフィルタ分割方向が鉛直方向であり、距離が算出し難い可能性のあるエッジは水平方向のエッジであるとする。そのため、鉛直方向を表す直線を仮定する。撮像装置502のロール角度が0度、すなわち撮像装置502の上下方向が鉛直方向と一致する場合、図29(a)に示すように、鉛直方向を表す直線をフィルタ面に射影した直線と、フィルタの分割方向を表す直線は平行になる。この状態では、フィルタの分割方向を表す直線と直交する水平方向のエッジの距離は算出し難い可能性がある。図29(b)に示すように、撮像装置502(アーム508)を光軸を中心としてロール回転させ、撮像装置502の上下方向が鉛直方向と一致しないようにすれば、鉛直方向を表す直線をフィルタ面に射影した直線と、フィルタの分割方向を表す直線は非平行とすることができる。これにより、被写体に含まれる水平方向のエッジとフィルタ分割方向が直交しなくなり、水平方向のエッジの距離が算出できるようになる。
この場合のロール角度は0度より大きければよい。ロール角度が90度となると、垂直方向のエッジの距離が算出し難い可能性がある。ロール角度は45度程度でもよい。算出し難いエッジは避けられないので、どのエッジを算出させ、どのエッジを算出し難いエッジとするかはユーザの思惑次第である。
設置後、被写体を撮影して距離を算出し、その結果を見ながらロール角度を調整しつつ適切な角度を試行錯誤的に求めることもできる。設置後、図15、図16に示すような信頼度のような指標に基づいてロール角度を決定してもよい。あるいは、被写体に含まれる種々のエッジの方向が予め既知の場合は、全てのエッジの方向がフィルタ分割方向と直交しないような適切なロール角度を予め求めておき、その角度に撮像装置を固定しておいてから設置してもよい。さらに、被写体に含まれる既知のエッジの方向から適切なロール角度が予め求められた場合、撮像装置が光軸を中心に回転された状態で天井等に取り付けることができれば、図28に示すようなロール回転機構は必須ではない。ただし、ロール回転機構が備わっていれば、被写体に含まれるエッジの方向が変化した場合、容易に対処できる。ロール回転機構が備わっていなければ、被写体に含まれるエッジの方向が変化した場合、再度設置すればよい。
ロール回転機構は図28の例に限られない。図28ではロール回転軸は撮像装置502の光軸と一致するが、光軸以外の軸を中心として撮像装置を回転するように撮像装置を設置してもよい。例えば、図28において、アーム508の先端に撮像装置502を取り付けるのではなく、アーム508の表面に撮像装置502を載置するホルダを取り付けてもよい。この場合、アーム508を回転すると、撮像画像は画面外にあるアーム508の軸を中心として傾く。図28の場合は、アーム508を回転すると、撮像画像は画面内にある光軸を中心として傾く。
[システムブロック図]
図30は第2実施形態の撮像装置502の電気的な構成の一例を示すブロック図である。第2実施形態は、撮像部(カメラと称することもある)と処理装置(処理部)を含むシステムである。撮像部505は、例えばイメージセンサ542と撮影レンズ538とカラーフィルタ536とを含む。被写体からの光(図示破線矢印)が複数枚(便宜上図示は1枚)のレンズからなる撮影レンズ538を介してイメージセンサ542に入射される。イメージセンサ542は、入射光を光電変換し、画像信号(動画でも静止画でもよい)を出力するものであり、CCD(Charge Coupled Device)型のイメージセンサ、CMOS(Complementary Metal Oxide Semiconductor)型のイメージセンサ等、どのようなセンサを用いてもよい。撮影レンズ538は例えば複数のレンズを備え、いずれかのレンズは焦点を調節するため光軸に沿って移動可能であってもよい。撮影レンズ538の開口(主点、あるいはその近傍)にカラーフィルタ536が形成される。カラーフィルタ536が追加された撮影レンズ538はカラー開口付レンズ504とも称する。撮影レンズ538の開口部の全面にカラーフィルタを配置する例を示したが、開口部の全面にカラーフィルタを配置しなくてもよい。例えば、開口部は、カラーフィルタ領域とカラーフィルタを設けない領域とにより構成されてもよい。
処理装置は、CPU(Central Processing Unit)544、フラッシュメモリまたはハードディスクドライブ等の不揮発性記憶部546、RAM(Random Access Memory)等の揮発性メモリ548を備える。処理装置は、さらに通信インターフェース550、ディスプレイ556、メモリカードスロット552を備えてもよい。イメージセンサ542、CPU544、不揮発性記憶部546、揮発性メモリ548、通信インターフェース550、ディスプレイ556、メモリカードスロット552等は、バス34により互いに接続される。
撮像部と処理装置は別体でもよいし、一体でもよい。一体の場合、両者は、スマートフォン、タブレット等のカメラ付の電子機器として実現されてもよい。別体の場合、一眼レフカメラ等として実現される撮像部から出力される信号が、パソコン等として実現される処理装置に入力されてもよい。撮像部と処理装置は、例えば無線または有線で通信可能である。
CPU544は、システム全体の動作を統括的に制御する。例えば、CPU544は、不揮発性記憶部546に記憶された撮影制御プログラム、距離算出プログラム、表示制御プログラム等を実行し、撮影制御、距離算出、表示制御等のための機能ブロックを実現する。これにより、CPU544は、撮像装置のイメージセンサ542に限らず、ディスプレイ556等も制御する。なお、撮影制御、距離算出、表示制御等のための機能ブロックをCPU544により実現するのではなく、専用のハードウェアにより実現してもよい。距離算出プログラムは、一例として上述した原理に基づき撮影画像の画素毎に当該画素に写っている被写体までの距離を求める。
不揮発性記憶部546はハードディスクドライブ、フラッシュメモリ等から構成される。ディスプレイ556は、液晶ディスプレイやタッチパネル等から構成される。ディスプレイ556は、例えば撮影画像をカラー表示するとともに、画素毎に求められた距離情報を特定の形態で、例えば、撮影画像が距離に応じて色が付けられた距離画像(距離マップとも称する)として表示する。なお、距離情報の表示は、距離画像としてではなく、距離と位置の対応関係表等の表形式でもよい。
例えばSDRAM(Synchronous Dynamic Random Access Memory)等からなる揮発性メモリ548は、システム全体の制御に関するプログラムや処理に使用される各種データ等を記憶する。
通信I/F550は、外部機器との通信や、キーボード、操作ボタン等を用いるユーザによる各種指示の入力を制御するインターフェースである。撮影画像や距離情報はディスプレイ556で表示されるだけではなく、通信I/F550を介して外部へ送信され、距離情報に基づいて動作が制御される外部機器で利用されてもよい。外部機器の一例は、自動車やドローン等の走行支援システムや、不審者の侵入を監視する監視システム等がある。画像信号から距離を求める処理の一部を処理装置が行い、残りはホスト等の外部機器が行うように、複数の機器で分担して距離情報を求めてもよい。
メモリカードスロット552には、SD(Secure Digital)メモリカードやSDHC(SD High-Capacity)メモリカード等の可搬型記憶媒体が挿入可能である。撮影画像や距離情報が可搬記憶媒体に記憶され、可搬記憶媒体の情報が他の機器で読み取られることにより、撮影画像や距離情報が他の機器で利用されるようにしてもよい。あるいは、他の撮像装置で撮影された画像信号がメモリカードスロット552内の可搬型記憶媒体を介して本システムの処理装置に入力され、その画像信号に基づいて距離が算出されてもよい。さらに、他の撮像装置で撮影された画像信号が通信I/F550を介して本システムの処理装置に入力されてもよい。
図31はCPU544による距離算出、表示制御のための機能ブロック図である。CPU544は、例えば撮影画像取得部562と、距離画像取得部564と、傾き補正部566、568と、回転角度・回転中心取得部570と、を含む。イメージセンサ542の出力が撮影画像取得部562に供給され、被写体の撮影画像が得られる。撮影画像は傾き補正部566と距離画像取得部564に供給される。距離画像取得部564は距離算出プログラムに基づき撮影画像の画素毎に当該画素に写っている被写体までの距離を求め、距離画像を求める。距離画像は、距離もしくは距離に相当するぼけの大きさを表す画像である。距離画像は傾き補正部568に供給される。傾き補正部566、568は回転角度・回転中心取得部570から供給される回転中心を中心として撮影画像と距離画像を回転角度・回転中心取得部570から供給される回転角度だけ回転する。回転角度・回転中心取得部570は撮像部505(撮像装置502)の回転中心と回転角度(例えば時計方向はプラス、反時計報告はマイナス)を求め、傾き補正部566、568は回転角度が表す方向の反対方向に画像を回転する。回転角度・回転中心取得部570は、連続する複数枚の撮影画像の中の特徴点を追跡することにより回転中心と回転角度を取得してもよいし、ユーザが予め測定した値を回転角度・回転中心取得部570に入力することにより回転中心と回転角度を取得してもよい。傾き補正部566、568で回転された画像がディスプレイ556で表示される。
[画像の傾き補正]
図32を参照して傾き補正の一例を説明する。撮像部505のロール角を0度とした状態で撮像装置502を天井等に設置した後、算出された距離に基づいて距離画像が表示される。例えばユーザは距離画像を観察し水平方向のエッジの距離が正しくないと判断すると、光軸を中心として撮像部505は回転する。図28のように撮像部505が撮像装置502と一体である場合は、撮像装置502を回転することにより撮像部505を回転するが、撮像部505のみ回転可能な場合は、撮像装置502は固定し撮像部505のみを回転してもよい。撮像部505が光軸を中心に時計方向に回転すると、画像取得部562が取得する撮影画像は、図32(a)に示すように、水平線が時計方向に回転した撮影画像となる。すなわち、鉛直方向がフィルタ面に投影された直線は鉛直方向から時計方向に傾く。このままでもよいが、画像として観察するには違和感がある。傾き補正部566は撮影画像を反時計方向に回転し、図32(b)に示すように、表示枠やディスプレイ56の横方向が画像の水平方向に一致する補正画像を生成する。距離画像も同様に傾き補正部568により傾きが補正される。傾き補正は必ず行う必要はない。画像を表示する場合は傾き補正を行う方が好ましい場合もあるが、算出した距離を利用するだけで距離画像を表示しない場合は、傾き補正は不要の場合が多い。
[カラーフィルタの例]
図33は第2実施形態に係るカラーフィルタ536の一例を示す。カラーフィルタ536の中心にあるフィルタ領域580は、たとえば、2色のカラーフィルタ領域である第1フィルタ領域580Aと第2フィルタ領域580Bとで構成される。フィルタ領域580の中心は、撮像部505の光学中心582と一致している。第1、第2フィルタ領域580A、580Bそれぞれは光学中心582に対して非点対称である形状を有している。第1、第2フィルタ領域580A、580Bは重複せず、かつ第1、第2フィルタ領域580A、580Bによってフィルタ領域580の全領域を構成している。第1、第2フィルタ領域580A、580Bは、それぞれ円形のフィルタ領域580が光学中心582を通る線分で分割された半円の形状を有している。
第1、第2フィルタ領域580A、580Bの重心を結ぶ線分の中点で当該線分に直交する直線をフィルタの分割方向を表す直線と定義する。第1、第2フィルタ領域580A、580Bが同じサイズの同じ形状であると、フィルタの分割方向を表す直線は、図33に示すフィルタ領域580を実際に分割する直線(2つの半円形の互いに接する直径)である。
フィルタ領域580A、580Bはそれぞれ異なる特定の波長帯の光を透過するカラーフィルタである。フィルタ領域580A、580Bからなるフィルタ領域580は領域580A、580Bに共通する色を透過する。透過光がイメージセンサ542に集光される際、むらが生じることがある。透過光のイメージセンサ542への集光むらを少なくするためには、フィルタ領域580のフィルタ面はイメージセンサ542の撮像面と平行に設置すればよい。
第1フィルタ領域580Aは、イメージセンサ542で受光される波長領域のうちの一部である第1の波長領域を透過する。例えば、第1フィルタ領域580Aは、図33(b)に示すように、R画像に対応する波長帯の光とG画像に対応する波長帯の光を透過するイエロー(Y)フィルタである。第2フィルタ領域580Bはイメージセンサ542で受光される光の色のうち第1波長領域とは異なる第2の波長領域を透過する。例えば、第2フィルタ領域580Bは、図33(b)に示すように、B画像に対応する波長域の光とR画像に対応する波長域の光を透過するマゼンタ(M)フィルタである。第1波長領域の一部と第2波長領域の一部は、重複する。Y、Mフィルタが共に透過する共通色はRである。一般に、C、M、Yの補色フィルタは、R、G、Bの原色フィルタと比較して感度が高いので、同じ波長帯の透過率が同一であっても、より多くの光を透過することが知られている。
第1フィルタ領域580Aと第2フィルタ領域580Bの組み合わせは、上記に限定されず、第1フィルタ領域580AがR画像に対応する波長域の光とG画像に対応する波長域の光を透過するYフィルタで、第2フィルタ領域580BがB画像に対応する波長域の光とG画像に対応する波長域の光を透過するシアン(C)フィルタでもよいし、第1フィルタ領域580AがR画像に対応する波長域の光とB画像に対応する波長域の光を透過するMフィルタで、第2フィルタ領域580BがB画像に対応する波長域の光とG画像に対応する波長域の光を透過するCフィルタでもよいし、第1フィルタ領域580AがC、M、Yフィルタのいずれかで、第2フィルタ領域580Bが全ての色の光を透過する透明フィルタであってもよい。さらに、図33において右側が第1フィルタ領域580Aとし、左側が第2フィルタ領域580Bとしたが、この逆に、右側が第2フィルタ領域580Bであり、左側が第1フィルタ領域580Aであってもよい。
第1、第2フィルタ領域580A、580Bは任意波長帯域の透過率を変更するフィルタや、任意方向の偏光光を透過させる偏光フィルタ(偏光板)、任意波長帯域の集光パワーを変更させるマイクロレンズであってもよい。例えば、任意波長帯域の透過率を変更するフィルタは、R、G、Bの原色フィルタ、C、M、Yの補色フィルタ、色補正フィルタ(CC−RGB/CMY)、赤外線・紫外線カットフィルタ、NDフィルタ、遮蔽板であってもよい。第1、第2フィルタ領域580A、580Bがマイクロレンズである場合、撮影レンズ538により光線の集光の分布に偏りが生じることでぼけ関数が変化する。
図33(b)は、第1フィルタ領域580A、第2フィルタ領域580Bの透過率特性の一例を示す。イエローフィルタである第1フィルタ領域580Aの透過率特性586Aは、R画像およびG画像に対応する波長帯域の光は高い透過率で透過し、B画像に対応する波長帯域の光はほとんど透過しないことを示す。マゼンタフィルタである第2フィルタ領域580Bの透過率特性586Bは、B画像およびR画像に対応する波長帯域の光は高い透過率で透過し、G画像に対応する波長帯域の光はほとんど透過しないことを示す。したがって、R画像に対応する波長帯域の光は第1、第2フィルタ領域580A、580Bの両方を透過するが、G画像に対応する波長帯域の光は第1フィルタ領域580Aのみを透過し、B画像に対応する波長帯域の光は第2フィルタ領域580Bのみを透過するので、G画像およびB画像上のぼけの形状は、被写体までの距離に応じて変化する。各フィルタ領域が光学中心に対して非対称な形状なので、G画像およびB画像上のぼけの形状は被写体が合焦距離よりも手前にあるか、それとも奥にあるかによって異なる。すなわち、G画像およびB画像上のぼけの形状は偏っている。そのため、G画像とB画像のぼけの形状をR画像のぼけの形状に補正するぼけ補正フィルタを距離毎に用意しておき、想定距離でのぼけ補正フィルタをG画像及び/又はB画像に演算し、補正後の画像とR画像との相関に基づいて距離を決定することができる。
[カラーフィルタの変形例]
図33のフィルタ領域580は第1、第2フィルタ領域580A、580Bによって全領域が構成されるように分割されている。変形例として、フィルタ領域が第1、第2、第3フィルタ領域に分割される例を説明する。
図34は第2実施形態に係るカラーフィルタの第1変形例を示す。図34(a)、(b)に示すように、フィルタ領域590は第1フィルタ領域590A、第2フィルタ領域590B、第3フィルタ領域590cからなる。第1、第2フィルタ領域590A、590Bは図33の例と同様に、それぞれ異なる組み合わせの複数色を透過し、第3フィルタ領域590Cは第1、第2フィルタ領域を共に透過する共通色を透過する。第1、第2フィルタ領域590A、590BがY、MあるいはM、Yフィルタの場合、第3フィルタ領域590CはRフィルタである。第1、第2フィルタ領域590A、590BがY、CあるいはC、Yフィルタの場合、第3フィルタ領域590CはGフィルタである。第1、第2フィルタ領域590A、590BがC、MあるいはM、Cフィルタの場合、第3フィルタ領域590CはBフィルタである。なお、第3フィルタ領域590CはR、G、Bの全ての色を透過する透明フィルタであってもよい。
図34(a)では、第1、第2フィルタ領域590A、590Bは光学中心592を通りY軸に沿って延在する直線の左右にそれぞれ位置し、形状は光学中心592において互いに接する円形である。第3フィルタ領域590Cは第1、第2フィルタ領域590A、590B以外の領域である。図34(b)では、第1、第2フィルタ領域590A、590Bは円形光学中心592を通りY軸に沿って延在する直線の左右にそれぞれ位置し、形状は光学中心592において互いに接する楕円形である。図34(a)、(b)では、第1、第2のフィルタ領域590A、590Bは光学中心592を通りY軸に沿って延在する直線に対して線対称となるように配置された同じ大きさの領域であるが、異なる大きさの2つの領域が非線対称で配置されてもよい。第1、第2フィルタ領域590A、590Bの形状は円形、楕円形に限らず、三角形、矩形、多角形でもよい。
第1、第2フィルタ領域590A、590Bの重心を結ぶ線分の中点を通り当該線分に直交する直線であるフィルタの分割方向を表す直線は、第1、第2フィルタ領域590A、590BがY軸に対して線対称であると、光学中心592を通りY軸に沿って延在する直線である。
図34の第1変形例では、第1、第2フィルタ領域は光学中心で互いに接しているが、第1、第2フィルタ領域が互いに接していない第2変形例を説明する。図35は第2実施形態に係るカラーフィルタの第2変形例を示す。図35(a)、(b)に示すように、フィルタ領域600は第1フィルタ領域600A、第2フィルタ領域600B、第3フィルタ領域600Cからなる。第1、第2フィルタ領域600A、600Bは図33、図34の例と同様に、一部重複する異なる波長領域の光を透過し、第3フィルタ領域600Cは第1、第2フィルタ領域を共に透過する波長領域の光を透過する。第1、第2フィルタ領域の色の例は第1変形例と同じである。
図35(a)では、第1、第2フィルタ領域600A、600Bの形状は光学中心602を通りY軸に沿って延在する直線の左右にそれぞれ対象に位置する三日月形である。第1、第2フィルタ領域600A、600B以外の第3フィルタ領域600Cは楕円形である。図35(b)では、円形のフィルタ領域600がY軸に沿って延在する2本の直線によって3分割され、中央が第3フィルタ領域600Cであり、第3フィルタ領域600Cの両側が第1、第2フィルタ領域600A、600Bである。円形のフィルタ領域600を2本の直線ではなく、2本の波線によって3分割してもよい。2本の分割線は平行でなくてもよい。さらに、3分割は3等分に限定されず、3つの領域のサイズは任意である。
第1、第2フィルタ領域600A、600Bの重心を結ぶ線分の中点を通り当該線分に直交する直線であるフィルタの分割方向を表す直線は、第1、第2フィルタ領域600A、600BがY軸に対して線対称であると、光学中心602を通りY軸に沿って延在する直線である。
図36は第2実施形態に係るカラーフィルタの第3変形例を示す。フィルタ領域610は図33のフィルタ領域580と同様にそれぞれ半円形の第1、第2フィルタ領域610A、610Bを含む。第1、第2フィルタ領域610A、610Bの内部に複数の第3フィルタ領域610Cが設けられている。第3フィルタ領域610Cの形状、個数、配置は任意である。
第1、第2フィルタ領域610A、610Bの重心を結ぶ線分の中点を通り当該線分に直交する直線であるフィルタの分割方向を表す直線は、第1、第2フィルタ領域610A、610BがY軸に対して線対称であり、第3フィルタ領域610CがY軸に対して線対称であると、光学中心612を通りY軸に沿って延在する直線である。
図37は第2実施形態に係るカラーフィルタの第4変形例を示す。第4変形例は、図34に示した第2実施形態において第1、第2フィルタ領域が互いに接しておらず、離間している例である。図37(a)では、第1、第2フィルタ領域620A、620Bは光学中心622を通りY軸に沿って延在する直線の左右にそれぞれ離間して位置し、形状は円形である。図37(b)では、第1、第2フィルタ領域620A、620Bは光学中心622を通りY軸に沿って延在する直線の左右にそれぞれ離間して位置し、形状は正方形である。第1、第2フィルタ領域620A、620Bの形状は正方形に限らず、三角形、矩形、多角形でもよいし、複数の第1、第2フィルタ領域620A、620Bを設けてもよいし、左右で非対称に設けてもよい。
第1、第2フィルタ領域620A、620Bの重心を結ぶ線分の中点を通り当該線分に直交する直線であるフィルタの分割方向を表す直線は、第1、第2フィルタ領域620A、620BがY軸に対して線対称であると、光学中心622を通りY軸に沿って延在する直線である。
以上をまとめると、フィルタ領域は、透過する波長領域が一部重複する第1フィルタ領域と第2フィルタ領域を含む。フィルタ領域は、第1フィルタと第2フィルタの両方に透過される波長領域を透過する第3フィルタ領域をさらに含んでもよい。第3フィルタ領域は、例えば第1フィルタ領域が透過する波長領域と第2フィルタ領域が透過する波長領域の光を透過してもよい。例えば、フィルタ領域は、第1、第2フィルタ領域に加えて、任意数・種類のフィルタ領域から構成してもよい。任意数・種類のフィルタ領域はRフィルタ、Gフィルタ、Bフィルタ、Yフィルタ、Cフィルタ、Mフィルタ及び透明フィルタから選んでもよい。
第2実施形態によれば、撮像部505を光軸を中心として回転し、カラー開口のフィルタ領域分割方向を任意の方向となるように撮像部505あるいは撮像装置502を設置することにより、フィルタ領域分割方向と直交するため被写体までの距離が算出し難いエッジの方向を変えることができる。そのため、距離が算出し難いエッジの方向を、被写体に含まれない、あるいは殆ど含まれないエッジの方向とすることができる。例えば、水平方向のエッジに関する距離が算出し難い状況を防ぐことができる。
なお、図18、図19で説明した取付具においてロール回転を電動回転とし、算出した距離の信頼度に関する指標に応じて撮像部505あるいは撮像装置502を自動的に回転してもよい。
[第3実施形態]
図38は第3実施形態に係る撮像装置502の設置例を示す。第3実施形態も監視システムに応用することができる。第2実施形態は天井、壁、柱等から斜め下を撮影したが、天井から真下を撮影する第3実施形態を説明する。すなわち、撮像部505の光軸は鉛直方向と平行である。撮像装置502の後端の中心に円柱状のアーム524の先端が固定されている。アーム524の軸と撮像部505あるいは撮像装置502の光軸とは一致する。アーム524の後端は、アーム524と同心でアーム524より大径のアーム526の先端に挿入される。このため、アーム524(及び撮像装置502)はアーム526に挿入された状態で光軸(ロール軸とも称する)を中心に時計方向および反時計方向にロール回転可能である。アーム526の上端は取付板530と一体化されている。
第2実施形態と同様に、時計方向、反時計方向ともにロール角度は0度より大きければよい。ロール角度が90度となると、垂直方向のエッジの距離が算出し難い可能性がある。ロール角度は45度程度でもよい。算出し難いエッジは避けられないので、どのエッジを算出させ、どのエッジを算出し難いエッジとするかはユーザの思惑次第である。
設置後、被写体を撮影して距離を算出し、その結果を見ながらロール角度を調整しつつ適切な角度を試行錯誤的に求めることもできる。設置後、図15、図16に示すような信頼度のような指標に基づいてロール角度を決定してもよい。あるいは、被写体に含まれる種々のエッジの方向が予め既知の場合は、フィルタ領域の分割方向が被写体に含まれる最も多いエッジ方向と直交しないようにロール角度を設定することができる。あるいは、全てのエッジの方向がフィルタ分割方向と直交しないような、言い換えるとフィルタ領域分割方向が被写体の濃度勾配方向と一致しないような適切なロール角度を予め求めておき、撮像部505のロール角度がその角度に一致するように撮像装置502を設置してもよい。さらに、被写体に含まれる既知のエッジの方向から適切なロール角度が予め求められた場合、取付板530を天井に取り付ける際、撮像部505が光軸を中心に回転された状態で撮像装置502を取り付けることができれば、図38に示すようなロール回転機構は必須ではない。ただし、ロール回転機構が備わっていれば、被写体に含まれるエッジの方向が変化した場合、容易に対処できる。ロール回転機構が備わっていなければ、被写体に含まれるエッジの方向が変化した場合、撮像部505あるいは撮像装置502を任意の向きに再度設置すればよい。
[撮像部の回転]
図39は第3実施形態に係る撮像部505あるいは撮像装置502の回転の一例を示す。第3実施形態では撮像部505あるいは撮像装置502の光軸が鉛直方向に沿っているので、鉛直方向をフィルタ面に投影すると、直線にはならず、点となる。そのため、距離を算出し難い条件の定義は、第2実施形態の定義と異なる。第3実施形態では、被写体のシーン中に直交する2つの軸(主軸と称する)を定義する。主軸はシーンの主たる構造に基づいて設定される。例えば、図40(a)に示すように、撮像範囲が室内の場合は通常矩形の床面の2辺に沿って第1主軸、第2主軸が設定できる。例えば、第1主軸と第2主軸に平行な面は床面と平行である。また、人物が移動している場合、移動方向とそれに直交する方向に沿って第1主軸、第2主軸を設定してもよい。図40(b)に示すように、撮像範囲に道路や廊下等が含まれる場合、道路や廊下等の延在方向とそれに直交する方向に沿って第1主軸、第2主軸が設定できる。例えば、第1主軸と第2主軸に平行な面は、道路や廊下と平行である。また、自動車や人物が移動している場合、移動方向とそれに直交する方向に沿って第1主軸、第2主軸を設定してもよい。撮像範囲に自動車や人物など移動するものを含む場合は、例えば、第1主軸と第2主軸に平行な面は、自動車や人物が移動する面と平行である。撮像部505あるいは撮像装置502のロール角度が0度の場合、図39(a)に示すように、第1主軸をフィルタ面に射影した直線又は第2主軸をフィルタ面に射影した直線と、フィルタの分割方向を表す直線は平行になる。この状態では、第2主軸方向のエッジの距離は算出し難い可能性がある。図39(b)に示すように、撮像部505あるいは撮像装置502(アーム524)を光軸を中心にロール回転させ、フィルタの分割方向を表す直線が第1主軸をフィルタ面に射影した直線及び第2主軸をフィルタ面に射影した直線とも非平行とする、すなわち、フィルタの分割方向を表す直線が第1主軸をフィルタ面に射影した直線及び第2主軸をフィルタ面に射影した直線と交差させることができる。
これにより、被写体に含まれる第1主軸及び第2主軸の方向のエッジとフィルタ分割方向が直交しなくなり、第1主軸及び第2主軸の方向のエッジの距離が算出できるようになる。この場合のロール角度は0度より大きく、90度未満である。ロール角度は、例えば55度以下である。ロール角度は、例えば35度以上である。
このような第3実施形態においても、第2実施形態と同様に、撮像部505あるいは撮像装置502を光軸を中心に回転し、カラー開口のフィルタ領域分割方向を回転することにより、フィルタ領域分割方向と直交するため被写体までの距離が算出し難いエッジの方向を変えることができる。そのため、距離が算出し難いエッジを、被写体に含まれない、あるいは殆ど含まれない方向のエッジとすることができる。例えば、被写体内の第1主軸、第2主軸方向のエッジに関する距離が算出し難い状況を防ぐことができる。
上述の実施形態は距離情報の出力形態の一例として距離画像の表示を説明したが、これに限らず、距離と位置の対応関係表の表示でもよい。各画素に写っている被写体までの距離に加えて、画像全体に映っている被写体の距離の最大値/最小値/中心値/平均値等を出力してもよい。さらに、画像全体の距離画像に限らず、画像の一部の距離を出力してもよい。
距離情報を用いて各画素の画像信号のぼけを処理することにより下記の情報を得ることができる。全ての画素の画像信号が合焦状態である全焦点画像や、撮影時とは異なる被写体領域が合焦状態となり、撮影時に合焦状態の被写体領域は非合焦状態となるリフォーカス画像を生成することができる。任意の距離にある物体を抽出することや、抽出した物体を認識することも可能である。さらには、認識した物体の現在までの距離の変化を辿ることにより、物体の行動も推定できる。
実施形態では、距離情報は処理装置においてユーザが認識できるように表示されるが、これに限らず、他の装置へ出力され、他の装置で距離情報が利用されてもよい。実施形態によれば、ステレオカメラを用いずに、単眼カメラを用いて撮影画像と距離情報を取得することができ、小型軽量の単眼カメラは種々の分野に応用できる。
[応用例1:監視システム]
監視システムは撮影装置で撮影している空間への侵入物を検出して、警報を発するものである。図42は、監視システムの一例である、駐車場における人や車の流れ等を時間帯毎に把握するためのシステムを示す。監視システムは、駐車場に限らず、店舗内における人の流れのような撮像装置が撮影する範囲内を移動する様々な被写体の監視にも用いられる。
図41は監視システムのブロック図を示す。撮像装置502が図31の撮影画像取得部562と距離画像取得部564の両方に対応する処理装置632に入力される。処理装置632から出力された撮影画像と画素毎の距離情報は、人物検出部634に入力される。人物検出部634は距離に変化に基づいて人物又は移動体を検出する。検出結果はエリア侵入/退出検出部636に供給される。エリア侵入/退出検出部636は、検出した人物又は移動体までの距離に基づいて撮像装置502から所定範囲内の特定エリアに人物又は移動体が侵入したか否か、あるいは特定エリアから人物又は移動体が退出したか否かを判定する。エリア侵入/退出検出部636は例えば、人がある基準距離内に入ったこと、人がある基準距離内から出たこと等の人の流れや、車がある基準距離内に入ったこと、車がある基準距離内から出たこと等の車の流れを解析し、その解析結果を例えばHDD(Hard Disk Drive)などの記憶装置に記録してもよい。人物検出部634とエリア侵入/退出検出部636とは、例えばCPUに含まれてもよい。なお、人物または移動体を検出する処理と、所定範囲内の特定エリアに人物又は移動体が侵入したか否かあるいは特定エリアから人物又は移動体が退出したか否かを判定する処理とは、まとめて1つの処理で行われてもよい。
図42は、監視システムの使用例を示す。駐車場に設置された撮像装置502を用いて、駐車場の人や車の動きを監視することができる。特定エリアは、撮像可能な領域の一部に設定することができる。
人物又は移動体の侵入/退出が検出されると、ユーザインタフェース部638で所定の警告が発せられる。警告は、例えば表示部による表示や、スピーカによる音声出力である。ユーザインタフェース部638は、例えばキーボードやポインティングデバイスからの入力処理も実行する。ユーザインタフェース部638がディスプレイ装置とポインティングデバイスを含む場合には、ユーザインタフェース部638は、例えばディスプレイ装置とポインティングデバイスが一体となったタッチスクリーンディスプレイであってもよい。
この監視カメラは警告を発する代わりに、他のアクションを行うことも可能である。例えば、自動ドアの前方の空間をカメラで撮影し、その空間に人物が移動してくると、ドアを開けるようにしてもよい。
[応用例2:自動ドアシステム]
図43は、撮像装置502を含む自動ドアシステムの機能構成を示す。自動ドアシステムは、撮像装置502と、制御信号生成部642と、駆動機構644と、ドア部646とを備える。
制御信号生成部642は、図41の監視部630と同じである。すなわち、制御信号生成部642は、図31の撮影画像取得部562と距離画像取得部564と図41の人物検出部634とエリア侵入/退出検出部636の機能を含み、被写体が基準距離よりも手前にあるか、それとも奥にあるかを判定し、その判定結果に基づいて、ドア部646の開閉に関する制御信号を生成し、生成された制御信号を駆動機構644に出力する。より具体的には、制御信号生成部642は、被写体が基準距離よりも手前にあることを示す判定結果に基づいて、ドア部646を開いた状態にするための制御信号あるいはドア部646が空いた状態を維持するための制御信号を生成し、駆動機構644に出力する。また、制御信号生成部642は、被写体が基準距離よりも奥にあることを示す判定結果に基づいて、ドア部646を閉じた状態にするための制御信号あるいはドア部646が閉じた状態を維持するための制御信号を生成し、駆動機構644に出力する。
駆動機構644は、例えば、モータを有し、モータの駆動をドア部646に伝達することによって、ドア部646を開閉する。駆動機構644は、制御信号生成部642によって生成された制御信号に基づいて、ドア部646が開いた状態又は閉じた状態になるように動作させる。
図44は、自動ドアシステムの動作例を示す。ドア部646の正面を移動する歩行者等を撮影できる位置である、例えばドア部646の上方に、図28に示したような取付具を用いて撮像装置502が設置されている。つまり、撮像装置502は、ドア部646の正面の通路等を俯瞰した画像が取得できるように設置される。
制御信号生成部642における基準距離は、例えば、ドア部646正面の、ドア部646から一定の距離に設定される。撮像装置502の光軸は床面に対して斜めであるので、床面に直交するが撮像装置502の光軸に対しては斜めの平面652が基準距離の面として設定され、ドア部646の上方に設置されている撮像装置502は、歩行者650が、この平面652よりも手前にいるか、それとも奥にいるかを判定する。
図44(a)に示す例では、歩行者106が基準平面652よりも手前にいると判定される。制御信号生成部642は、この判定結果に基づいて、ドア部646を開いた状態にするための制御信号を生成し、駆動機構644に出力する。駆動機構644は、制御信号生成部642から受信した制御信号に基づいて、ドア部646が開いた状態になるように動作する。
図44(b)に示す例では、歩行者106が基準平面652よりも奥にいると判定される。制御信号生成部642は、この判定結果に基づいて、ドア部646を閉じた状態にするための制御信号を生成し、駆動機構644に出力する。駆動機構644は、制御信号生成部642から受信した制御信号に基づいて、ドア部646が閉じた状態になるように動作する。
このような自動ドアシステムは、自動車のドアの制御にも適用することができる。図45に示すように、自動車のフロントガラスに自動車の右側側面を撮影する撮像装置502Aと、左側側面を撮影する撮像装置502Bを設ける。人物が撮像装置502A、502Bから第1距離に設定された第1平面より奥から手前に変化したことが判定されると、ドアを開けるようにしてもよい。また、人物が撮像装置502A、502Bから第2距離に設定された第2平面より奥から手前に変化したことが判定されると、たとえ社内からドアを開けようとしてもドアが開かないようにしてもよい。第2距離は、例えば第1距離よりも短い距離とすることができる。これは、人間又は物体が自動車に接近している時、ドアが開くことによって、ドアと人間又は物体とが接触するような事故を防ぐためである。
[応用例3:移動体制御システム]
図46は、撮像装置502を含む移動体670の機能構成例を示す。ここでは、移動体670が、例えば、移動ロボット(Automated Guided Vehicle)や掃除ロボット、コミュニケーションロボットなど自律的に移動するロボットであることを想定する。移動体670は、このようなロボットに限らず、移動用の駆動機構を有するものであるならば、自動車を含む車両、ドローンや飛行機などの飛翔体、船舶等、様々なものとして実現され得る。移動体670にはさらに、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分の移動・回転用の駆動機構を有する産業用ロボットも含まれ得る。
図46に示すように、移動体670は、撮像装置502と、制御信号生成部672と、駆動機構674とを有する。図47に示すように、撮像装置502は、例えば、移動体670の進行方向の被写体を撮像するように設置される。移動体670の進行方向の被写体を撮像するように設置される形態としては、前方を撮像するいわゆるフロントカメラとして設置され得るほか、バック時に後方を撮像するいわゆるリアカメラとして設置され得る。もちろん、これら両方が設置されてもよい。また、撮像装置502は、いわゆるドライブレコーダとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像装置502は、録画機器であってもよい。なお、移動体670の一部分の移動及び回転を制御する場合、撮像装置502は、例えば、ロボットアームで把持される物体を撮像するように、ロボットアームの先端等に設置されてもよい。
制御信号生成部672は、図41の処理装置632と同じであり、被写体との距離基づいて、移動体670又はその一部分の加速、減速、停止、衝突回避、方向転換、及びエアバック等の安全装置の作動の内の少なくとも一つに関する制御信号を生成する。
制御信号生成部672は、図43の制御信号生成部643と同じに、被写体との距離に基づいて、被写体が所定範囲内の特定エリアに侵入したか否かあるいは特定エリアから退出したか否かを判定してもよい。この場合、制御信号生成部672は、被写体が基準距離よりも手前にあることを示す判定結果に基づいて、減速、衝突回避、被写体から遠ざかる方向への方向転換、及び安全装置の作動の内の少なくとも一つに関する制御信号を生成し得る。また、制御信号生成部672は、被写体が基準距離よりも手前にあるという判定結果に基づいて、加速、及び被写体に近寄る方向への方向転換の内の少なくとも一つに関する制御信号を生成し得る。制御信号生成部672は、生成された制御信号を駆動機構674に出力する。
駆動機構674は、この制御信号に基づいて移動体670を動作させる。つまり、駆動機構674は、制御信号に基づいて、移動体670又はその一部分によって加速、減速、衝突回避、方向転換、及びエアバック等の安全装置の作動の内の少なくとも一つが行われるように動作する。このような構成は、リアルタイムでの制御が要求される、例えば、ロボットの移動や自動車の自動運転等に適している。
移動体670がドローンである場合、上空からのひび割れや電線破断等の点検時に、撮像装置502は点検対象を撮影した画像を取得し、被写体との距離を検出し、あるいは被写体が基準距離よりも手前にあるか、それとも奥にあるかを判定する。制御信号生成部672は、この検出結果または判定結果に基づいて、点検対象との距離が一定になるようにドローンの推力を制御するための制御信号を生成する。駆動機構674が、この制御信号に基づいてドローンを動作させることにより、ドローンを点検対象に並行して飛行させることができる。
また、ドローンの飛行時に、撮像装置502は地面方向を撮影した画像を取得し、地面からのドローンの高さを検出し、あるいは地面からの高さが基準距離よりも手前にあるか、それとも奥にあるかを判定する。制御信号生成部672は、この検出結果または判定結果に基づいて、地面からの高さが指定された高さになるようにドローンの推力を制御するための制御信号を生成する。駆動機構674が、この制御信号に基づいてドローンを動作させることにより、ドローンを指定された高さで飛行させることができる。
さらに、移動体670がドローン又は自動車である場合、ドローンの連携飛行や自動車の連隊走行時に、撮像装置502は、周囲のドローンや前方の自動車を撮影した画像を取得し、そのドローンや自動車との距離を検出し、あるいはそのドローンや自動車が基準距離よりも手前にあるか、それとも奥にあるかを判定する。制御信号生成部672は、この検出結果あるいは判定結果に基づいて、その周囲のドローンや前方の自動車との距離が一定になるように、ドローンの推力や自動車の速度を制御するための制御信号を生成する。駆動機構674が、この制御信号に基づいてドローンや自動車を動作させることにより、ドローンの連携飛行や自動車の連隊走行を容易に行うことができる。
図48は障害物を回避できるドローンの移動制御の一例のブロック図を示す。撮像装置502の出力が図31の撮影画像取得部562と距離画像取得部564の両方の機能を含む処理装置680に入力される。処理装置680から出力された撮影画像と画素毎の距離情報は、障害物認識部682に入力される。ドローンの移動ルートは移動先と現在地が分ると自動的に決定される。ドローンはGPS686を備え、移動先情報と現在地情報が移動ルート計算部684に入力される。移動ルート計算部684から出力される移動ルート情報が障害物認識部682と、飛行制御部688に入力される。飛行制御部688はローターの回転、操舵を行う。
障害物認識部682は、撮影画像と距離情報に基づいて、ドローンから一定距離以内の物体を抽出する。検出結果は、移動ルート計算部684に供給される。移動ルート計算部684は障害物が検知されると、移動先と現在地から決定された移動ルートを、障害物を回避できる滑らかな軌道の移動ルートに修正する。
これにより、空中に予期せぬ障害物が出現した場合でも、自動的に障害物を避けて目的地までドローンを安全に飛行させることができる。図48は、ドローンに限らず、移動ルートが決まっている移動ロボット(Automated Guided Vehicle)、掃除ロボット等にも同様に応用可能である。なお、掃除ロボットの場合、ルート自体が決まっているのではなく、障害物が検知されたら、曲がる、後退する等のルールが決まっている場合もある。この場合でも、障害物の検知、回避に図48の構成が応用できる。
図49は、実施形態を自動車に応用した場合のシステム構成の一例を示す。撮像装置502の出力が図31の撮影画像取得部562と距離画像取得部564の両方の機能を含む処理装置692に入力される。処理装置692は、撮影画像と画素毎の距離情報を出力する。撮影画像と距離情報は、歩行者/車両検出部694に入力される。歩行者/車両検出部694は、撮影画像と距離情報に基づいて、撮影画像内に道路に対して垂直な物体を歩行者/車両の候補領域として設定する。歩行者/車両検出部694は、各候補領域に対して特徴量を計算し、この特徴量を大量のサンプル画像データから予め求めておいた多数の基準データと比較することにより、歩行者/車両を検出することができる。歩行者/車両を検出すると、ドライバに警告698が出されてもよいし、自動ブレーキ696が作動され、自動車が減速あるいは停止されてもよい。
撮像装置502は運転席のフロントカメラに限らず、サイドミラーに取り付けるサイドカメラ、リアガラスに取り付けられるリアカメラでもよい。サイドカメラ、リアカメラの場合は、歩行者/車両の検出の代わりに、後進して駐車する際の障害物を検出してもよい。フロントカメラの場合、近年、自動車のフロントガラスに取り付けられたカメラで撮影された自動車前方の風景をSDカード等に記録するドライブレコーダが開発されている。このドライブレコーダのカメラに実施形態のカメラを応用することにより、車内に別途カメラを設けることなく、自動車の前方の撮影画像に加えて距離情報を得ることができる。
移動体ではなく静止しているが、移動部を備えるもの、例えば製造ロボット等にも応用可能である。部品を掴む、移す、部品を加工するアームからの距離に応じて障害物を検出すると、アームの移動を制限するようにしてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。