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

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

▶ 東芝デジタルメディアエンジニアリング株式会社の特許一覧

<>
  • 特許-画像処理装置 図1
  • 特許-画像処理装置 図2
  • 特許-画像処理装置 図3
  • 特許-画像処理装置 図4
  • 特許-画像処理装置 図5
  • 特許-画像処理装置 図6
  • 特許-画像処理装置 図7
  • 特許-画像処理装置 図8
  • 特許-画像処理装置 図9
  • 特許-画像処理装置 図10
  • 特許-画像処理装置 図11
  • 特許-画像処理装置 図12
  • 特許-画像処理装置 図13
  • 特許-画像処理装置 図14
  • 特許-画像処理装置 図15
  • 特許-画像処理装置 図16
  • 特許-画像処理装置 図17
  • 特許-画像処理装置 図18
  • 特許-画像処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-18
(45)【発行日】2023-08-28
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
   G06T 7/521 20170101AFI20230821BHJP
【FI】
G06T7/521
【請求項の数】 8
(21)【出願番号】P 2019072017
(22)【出願日】2019-04-04
(65)【公開番号】P2020170390
(43)【公開日】2020-10-15
【審査請求日】2022-03-29
(73)【特許権者】
【識別番号】390010308
【氏名又は名称】東芝デベロップメントエンジニアリング株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】石過 壮
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2017-045283(JP,A)
【文献】特開2017-030115(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
(57)【特許請求の範囲】
【請求項1】
第1のカメラによって対象物を撮影した第1の画像と第2のカメラによって前記対象物を撮影した第2の画像とを取得する取得部と、
前記第1の画像内の画素の前記第2の画像内の対応する画素に対する視差を予め定められた上限値から降順に同定し、前記視差の同定済みである画素を含み、かつ前記視差の同定済みである画素の面積が閾値を超える第1の領域を探索する探索部と、
前記第1の領域を包含する探索範囲を設定し、前記探索範囲内の画素の視差を同定する同定部と
を具備し、
前記同定部は、同定済みの視差よりもさらに小さな第1の値について前記探索範囲内の画素の前記視差を同定して前記第1の領域を更新し、前記第1の領域が前記探索範囲の境界に達した場合に前記探索範囲が当該第1の領域を包含するまで拡大して再設定してから前記第1の値よりもさらに小さな第2の値について前記探索範囲内の画素の前記視差を同定する、画像処理装置。
【請求項2】
第1のカメラによって対象物を撮影した第1の画像と第2のカメラによって前記対象物を撮影した第2の画像とを取得する取得部と、
前記第1の画像内の画素の前記第2の画像内の対応する画素に対する視差を予め定められた上限値から降順に同定し、前記視差の同定済みである画素を含み、かつ前記視差の同定済みである画素の面積が閾値を超える第1の領域を探索する探索部と、
前記第1の領域を包含する探索範囲を設定し、前記探索範囲内の画素の視差を同定する同定部と
を具備し、
前記同定部は、同定済みの視差よりもさらに小さな第1の値について前記探索範囲内の画素の前記視差を同定して前記第1の領域を更新し、前記第1の領域が前記探索範囲の境界に達した場合に前記探索範囲が当該第1の領域を包含するまで拡大して再設定してから、前記上限値から前記第1の値まで、拡大された前記探索範囲内の画素の前記視差を同定する、画像処理装置。
【請求項3】
前記同定部は、拡大された前記探索範囲内の画素の中から前記第1の値よりも大きな視差が同定された第2の領域を検出し、かつ前記第2の領域が前記第1の領域と不連続である場合に、設定中の前記探索範囲を破棄し、前記第2の領域を包含する探索範囲を新たに設定して前記視差の同定を再開する、請求項に記載の画像処理装置。
【請求項4】
前記同定部は、前記探索範囲内で前記視差の同定済みである画素を含む領域のサイズが予め定められた目標値に達した場合に前記視差の同定を終了する、請求項1乃至請求項のいずれか1項に記載の画像処理装置。
【請求項5】
第1のカメラによって対象物を撮影した第1の画像と第2のカメラによって前記対象物を撮影した第2の画像とを取得する取得部と、
前記第1の画像内の画素の前記第2の画像内の対応する画素に対する視差を予め定められた上限値から降順に同定し、前記視差の同定済みである画素を含み、かつ前記視差の同定済みである画素の面積が閾値を超える第1の領域を探索する探索部と、
前記第1の領域を包含する探索範囲を設定し、前記探索範囲内の画素の視差を同定する同定部と
を具備し、
前記同定部は、前記探索範囲内で前記視差の同定済みである画素を含む領域のサイズが予め定められた目標値に達した場合に前記視差の同定を終了する、画像処理装置。
【請求項6】
同定された前記視差に基づいて、前記探索範囲内の画素に対応する前記対象物の点から前記第1のカメラおよび前記第2のカメラまでの距離を推定する距離推定部をさらに具備する、請求項1乃至請求項5のいずれか1項に記載の画像処理装置。
【請求項7】
前記距離の推定結果に基づいて、前記探索範囲における前記対象物の3D形状を推定する3D形状推定部をさらに具備する、請求項6に記載の画像処理装置。
【請求項8】
前記対象物の3D形状の推定結果を、予め用意されている1または複数の物品の3Dモデルとマッチングし、前記対象物の位置および姿勢の少なくとも一方を推定する位置姿勢推定部をさらに具備する、請求項7に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体に対する3D計測のための画像処理技術に関する。
【背景技術】
【0002】
従来、例えばピッキング、パッキングなどを行うロボットハンドを制御するために、対象物を撮影したステレオカメラ画像間でマッチングが行われ、当該対象物の3D形状が推定される。さらに、予め用意されている対象物の3Dモデルとのマッチングにより、撮影された対象物がどのような位置でどのような姿勢を取っているかが推定される。そして、かかるロボットハンドは、ピッキング、パッキングなどのアクションを対象物の推定位置姿勢に応じて行うように制御される。
【0003】
特許文献1には、距離センサを用いて取得した粗い距離情報に基づいて複数のフォーカス位置で複数回の撮像を行い、これらの画像を合成することにより全焦点画像を得て、高低差のある被写体を精密に計測することが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-020891号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述のステレオカメラ画像間のマッチングは、通常はカメラの視野全体に亘って行われる。同様に、対象物の位置姿勢を推定するための3Dモデルとのマッチングも、通常はカメラの視野全体に亘って行われる。これらの計算量はステレオカメラ画像の画素数に依存して増大するが、マッチングの精度を確保する観点からすると画像の解像度を不用意に下げることは好ましくない。さらに、多数の対象物が存在する場合には、1つの対象物に対するアクションが終わる度にこれらの処理を再度行う必要があるので、当該処理に関わる計算量が大きいことによる悪影響はより深刻となる。例えば、大量に山積みされた部品をピックアップするなどの作業の高速化が困難となり得る。
【0006】
特許文献1に記載の技法は、マッチングの精度向上に寄与する可能性はあるものの、マッチングに関する計算量そのものは変わらない。
【0007】
本発明は、ステレオカメラ画像間のマッチングを効率的に行うことを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、画像処理装置は、取得部と、探索部と、同定部とを含む。取得部は、第1のカメラによって対象物を撮影した第1の画像と第2のカメラによって対象物を撮影した第2の画像とを取得する。探索部は、第1の画像内の画素の第2の画像内の対応する画素に対する視差を予め定められた上限値から降順に同定し、視差の同定済みである画素を含み、かつ視差の同定済みである画素の面積が閾値を超える第1の領域を探索する。同定部は、第1の領域を包含する探索範囲を設定し、前記探索範囲内の画素の視差を同定する。
【発明の効果】
【0009】
本発明によれば、ステレオカメラ画像間のマッチングを効率的に行うことができる。
【図面の簡単な説明】
【0010】
図1】第1の実施形態に係る画像処理装置を含む3D計測システムを例示する図。
図2】第1の実施形態に係る画像処理装置を例示するブロック図。
図3図2の画像処理装置によって行われる被写体領域の探索処理の説明図。
図4図3の例において視差が25画素の場合の累積結果画像を例示する図。
図5図3の例において視差が21画素の場合の累積結果画像を例示する図。
図6図3の例において視差が17画素の場合の累積結果画像を例示する図。
図7図2の画像処理装置の動作を例示するフローチャート。
図8図7のステップS210の詳細を例示するフローチャート。
図9図7のステップS220の詳細を例示するフローチャート。
図10図2の画像処理装置によって行われる探索範囲の設定処理の説明図。
図11】第2の実施形態に係る画像処理装置を例示するブロック図。
図12図11の画像処理装置によって行われる被写体領域の探索処理の説明図。
図13図12の例において視差が20画素の場合の累積結果画像を例示する図。
図14図12の例において視差が16画素の場合の累積結果画像を例示する図。
図15図12の例において視差が12画素の場合の累積結果画像を例示する図。
図16図11の画像処理装置の動作を例示するフローチャート。
図17図16のステップS420の詳細を例示するフローチャート。
図18図11の画像処理装置によって行われる探索範囲の設定処理の説明図。
図19】対象物の3Dモデルを例示する図。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
【0012】
(第1の実施形態)
第1の実施形態に係る画像処理装置は、例えば図1に示す3D計測システムに組み込むことができる。この3D計測システムは、多眼カメラ10と、プロジェクタ20と、プロジェクタ/カメラ制御装置30と、本実施形態に係る画像処理装置100とを含む。
【0013】
多眼カメラ10は、例えばロボットハンドに取り付けられ、被写体60が設置された台70を見下ろす形で当該被写体60を撮影することになる。ここで、被写体60は、対象物と呼ぶこともできる。対象物は、1つの物品を指していてもよいし、同種または異種の複数の物品を指していてもよい。後述する位置姿勢の推定を実現するために、各対象物と同種の物品の3Dモデルが予め用意され得る。なお、図1によれば、多眼カメラ10は2つのカメラを備えているが、3つ以上のカメラを備えていてもよい。
【0014】
プロジェクタ/カメラ制御装置30は、多眼カメラ10およびプロジェクタ20を制御する。具体的には、プロジェクタ/カメラ制御装置30は、プロジェクタ20に、後述される3D計測を行うための既定の計測用パターンの投影を命令する。また、プロジェクタ/カメラ制御装置30は、計測用パターンが投影されている間に、多眼カメラ10に被写体60の撮影を命令する。
【0015】
プロジェクタ20は、プロジェクタ/カメラ制御装置30からの命令に従って、計測用パターンを投影する。そして、多眼カメラ10に含まれるカメラ11およびカメラ12は、プロジェクタ/カメラ制御装置30からの命令に従って撮影を行い、それぞれ撮影画像を生成する。
【0016】
画像処理装置100は、多眼カメラ10から複数枚の撮影画像を取得し、これら画像に対して後述される種々の3D計測を行う。例えば、多眼カメラ10における視差、多眼カメラ10から被写体60までの距離、被写体60の3D形状、および被写体60の位置姿勢などを推定したりする。
【0017】
画像処理装置100は、入出力制御、通信制御、読み書き制御、および種々の画像処理(例えば、後述される被写体領域の探索、探索範囲の設定、3D計測、など)を行うプロセッサを含む。
【0018】
ここで、プロセッサは、典型的にはCPU(Central Processing Unit)および/またはGPU(Graphics Processing Unit)であるが、マイコン、FPGA(Field Programmable Gate Array)、またはDSP(Digital Signal Processor)、などであってもよい。
【0019】
画像処理装置100は、さらに、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プログラムによって使用されるデータ、例えば画像データ、被写体領域を定義するデータ、探索範囲を定義するデータ、視差データ、距離データ、デプスマップデータ、点群データ、3Dデータ、1または複数の物品の3Dモデルデータ、などを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム/データが展開されるワークエリアを有するRAM(Random Access Memory)を含み得る。
【0020】
画像処理装置100は、さらに、例えば多眼カメラ10などの外部装置に接続するためのインタフェース(I/F)を利用可能である。I/Fは、画像処理装置100に内蔵されていてもよいし、画像処理装置100に外付けされていてもよい。
【0021】
I/Fは、例えば、多眼カメラ10から画像を受け取る。I/Fは、例えば光ファイバケーブル、HDMI(登録商標)(High-Definition Multimedia Interface)ケーブル、などの有線通信I/Fであってもよいし、例えばBluetooth(登録商標)、Wi-Fi(登録商標)などの無線通信技術を利用する無線通信I/Fであってもよい。
【0022】
以下、図2を用いて画像処理装置100の構成例の説明を続ける。
図2に例示されるように、画像処理装置100は、画像取得部101と、領域探索部102と、視差同定部103と、距離推定部105と、3D形状推定部106と、位置姿勢推定部107と、3Dモデル記憶部108とを含む。
【0023】
画像取得部101は、多眼カメラ10に含まれるカメラ11およびカメラ12から、それぞれ、当該カメラ11およびカメラ12によって被写体60(対象物)を撮影した第1の画像および第2の画像をそれぞれ取得する。画像取得部101は、取得した第1の画像および第2の画像を領域探索部102へ送る。画像取得部101は、例えば前述のプロセッサおよびI/Fに相当し得る。
【0024】
領域探索部102は、画像取得部101から第1の画像および第2の画像を受け取る。領域探索部102は、被写体60(対象物)のうちカメラ11およびカメラ12からの距離が相対的に近い部分が写っている領域を、第1の画像および/または第2の画像から探索する。かかる領域は、被写体領域と呼ぶこともできる。領域探索部102は、例えば前述のプロセッサに相当し得る。
【0025】
例えば、ロボットハンドが、大量に山積みされた対象物をその上方からピックアップするユースケースでは、ロボットハンドは、視野内にどれだけの対象物が存在しようとも、通常はその時々で最も近い、つまり最も高い位置に積まれている対象物から順にピックアップしていくことになる。故に、かかる被写体領域の周辺にマッチングの探索範囲を制限すれば、ロボットハンドの動きを害することなくマッチングに関わる計算量を大幅に削減することができる。
【0026】
具体的には、領域探索部102は、予め定められた上限値(k)から順に、第1の画像内の画素の、第2の画像内の対応する画素に対する視差を同定する。すなわち、領域探索部102は、図3に例示されるように、25画素、・・・、21画素、・・・17画素、・・・のように、対象となる値を減じながら視差の同定を行う。なお、以降の説明では、第1の画像を基準とし、第2の画像をずらしてマッチングを行っているが、これらは逆であってもよい。ここで、上限値とは、理論上の上限値、例えばエピポーラ線の長さに基づいて定められてもよいし、図1の3D計測システムの実用環境に即した値に定められてもよい。
【0027】
まず、領域探索部102は、第2の画像に含まれる各画素をエピポーラ線に沿ってk画素ずらして比較用の画像を生成し、第1の画像内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、領域探索部102は、第1の画像に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSAD(Sum of Absolute Differences)を計算する。そして、領域探索部102は、SADが閾値未満、すなわちマッチングが成功であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上、すなわちマッチングが失敗であれば当該画素の値を「0」として、視差=kの結果画像(例えば2値画像)を生成する。この結果画像に含まれる各画素の値は、第1の画像において当該画素と同一位置にある画素についての視差がkであるか否か(「1」/「0」)を意味する。領域探索部102は、この視差=kの結果画像を(最初の)累積結果画像(例えば2値画像)として保存する。
【0028】
次に、領域探索部102は、より小さな視差について同定を行う。すなわち、領域探索部102は、第2の画像に含まれる各画素をエピポーラ線に沿って、k-1画素ずらして比較用の画像を生成し、第1の画像内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、領域探索部102は、第1の画像に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、領域探索部102は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=k-1の結果画像を生成する。この結果画像に含まれる各画素の値は、第1の画像において当該画素と同一位置にある画素についての視差がk-1であるか否か(「1」/「0」)を意味する。領域探索部102は、累積結果画像にこの視差=k-1の結果画像を加算して更新する。この累積結果画像に含まれる各画素の値は、第1の画像において当該画素と同一位置にある画素についての視差がk-1以上であるか否か、換言すれば視差が同定済みであるか否か(「1」/「0」)を意味する。
【0029】
このように、領域探索部102は、必要に応じてk-2,k-3,・・・と順に減じながら視差の同定を行い、累積結果画像を更新する。この結果、視差=iの結果画像を加算して更新された累積結果画像に含まれる各画素の値は、第1の画像において当該画素と同一位置にある画素についての視差がi以上であるか否か、換言すれば視差が同定済みであるか否か(「1」/「0」)を意味する。このように、累積結果画像において、「1」の値を持つ画素は段々と増えていくことになる。一例として、図4は視差=25画素の場合の累積結果画像、図5は視差=21の場合の累積結果画像、および図6は視差=17画素の場合の累積結果画像をそれぞれ示す。各図において、「1」の値を持つ画素は黒、「0」の値を持つ画素は白でそれぞれ描かれている。
【0030】
領域探索部102は、累積結果画像が保存され、または更新される毎に、当該累積結果画像において「1」の値を持つ画素を含み、かつ「1」の値を持つ画素の面積が閾値を超える領域(被写体領域)を探索する。ここで、かかる領域は、「1」の値を持つ画素が連続する領域であってもよいし、例えばある画素を基準とした所定形状、例えばN画素*N画素の矩形、の領域であってもよい。また、連続とは、「1」の値を持つ画素が少なくとも水平または垂直方向に隣接している場合を指すが、斜め方向に隣接している場合もさらに指すことがあり得る。また、隣接とは、「1」の値を持つ画素が少なくとも「0」の値を持つ画素によって隔てられることなく並んでいる場合を指すが、「1」の値を持つ画素が1つまたはそれ以上の「1」の値を持つ画素によって隔てられる場合もさらに指すことがあり得る。例えば、水平または垂直方向に、「1」、「1」、「0」、「1」、「1」の順に画素が並んでいた場合に、これら5つの画素は連続すると解されてもよいし、連続しないと解されてもよい。領域探索部102は、かかる被写体領域が探索された場合には、当該領域を定義するデータを生成し、これを第1の画像および第2の画像と共に視差同定部103へ送る。
【0031】
視差同定部103は、領域探索部102から、第1の画像、第2の画像、および被写体領域を定義するデータを受け取る。視差同定部103は、被写体領域を包含する探索範囲を設定し、探索範囲内の画素の視差を同定する。視差同定部103は、探索範囲内の画素についての視差の同定結果を表す視差データを生成し、これを距離推定部105へ送る。視差データは、例えば第1の画像の各画素の座標と当該画素に関する視差ベクトルとを含み得る。また、視差同定部103は、視差データを図示されない外部装置へ送ってもよい。視差同定部103は、例えば前述のプロセッサ(およびI/F)に相当し得る。
【0032】
視差同定部103は、領域探索部102によって同定済みである視差よりも小さな値から順に視差の同定を継続し、被写体領域の拡大とこれに伴う探索範囲の拡大(再設定)とを行ってもよい。
【0033】
具体的には、視差同定部103は、領域探索部102によって探索された被写体領域を包含する探索範囲を設定する。例えば、視差同定部103は、被写体領域を包含する矩形を探索範囲としてもよいし、被写体領域の縁に沿って当該被写体よりも大きな探索範囲を設定してもよい。
【0034】
そして、視差同定部103は、領域探索部102によって同定済みである値(ここではmとする)よりも小さな視差について同定を行う。すなわち、視差同定部103は、第2の画像に含まれる各画素をエピポーラ線に沿ってm-1画素ずらして比較用の画像を生成し、第1の画像の探索範囲内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、視差同定部103は、第1の画像の探索範囲に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、視差同定部103は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=m-1の結果画像を生成する。この結果画像に含まれる各画素の値は、第1の画像の探索範囲において当該画素と同一位置にある画素についての視差がm-1であるか否か(「1」/「0」)を意味する。視差同定部103は、累積結果画像にこの視差=m-1の結果画像を加算して被写体領域を更新する。この累積結果画像に含まれる各画素の値は、第1の画像の少なくとも探索範囲において当該画素と同一位置にある画素についての視差がm-1以上であるか否か、換言すれば視差が同定済みであるか否か(「1」/「0」)を意味する。
【0035】
続いて、視差同定部103は、このように更新した被写体領域が、現在設定されている探索範囲の境界に達したか否かを判定する。被写体領域が現在設定されている探索範囲の境界に達していなければ、視差同定部103はより小さな視差の同定を行う。他方、被写体領域が探索範囲の境界に達していれば、視差同定部103は、被写体領域が探索範囲に包含されるように、探索範囲を以下に説明するように拡大して再設定することになる。
【0036】
具体的には、視差同定部103は、現在の累積結果画像における被写体領域を包含するように探索範囲を拡大して再設定する。ただし、前述のように、視差同定部103は、再設定前の探索範囲よりも外側の画素についてマッチングを行っていないので、実際には視差がm-1以上である被写体領域は、再設定後の探索範囲の境界にも達するおそれがある。故に、視差同定部103は、探索範囲のうち再設定により拡大した部分について前述のマッチングを視差=m-1について行って、累積結果画像を再更新する。そして、視差同定部103は、被写体領域が、現在設定されている探索範囲の境界に達したか否かを再判定する。被写体領域が探索範囲の境界に達していれば、視差同定部103は同様の処理を繰り返す必要がある。他方、被写体領域が探索範囲の境界に達していなければ、視差同定部103はより小さな視差の同定と、必要であれば探索範囲の拡大とを行うことになる。最終的に、視差の同定済みである画素を含む領域(被写体領域)のサイズが予め定められた目標値に達した場合に、視差同定部103は視差の同定を終了することになる。
【0037】
例えば、視差同定部103は、被写体領域に外接する矩形の対角線の長さが、対象物の3D形状に基づいて定められる目標値に達した場合に、視差の同定を終了し得る。ここで、対象物の3D形状は、例えば図19に示される3Dモデルとして登録され得る。3Dモデルは、対象物のCADデータに基づいて作成されてもよいし、対象物の3D撮影データに基づいて作成されてもよい。図19の3Dモデルをロボット(ハンド)が対象物を把持する方向から見たときに外接する最小の矩形の頂点をA、B、C、およびDとする。この矩形の対角線の長さADまたはBCに基づいて、かかる目標値が定められてよい。かかる対角線の長さは、頂点Aおよび頂点Dの間の三次元ユークリッド距離、または頂点Bおよび頂点Cの間の三次元ユークリッド距離として算出可能である。
【0038】
視差同定部103による探索範囲の設定例を図10に示す。図10の例では、視差=k-1の時に、被写体領域の探索が済んでいる。故に、段階S1では、視差同定部103は、視差=k-1以上である被写体領域を包含するように探索範囲を設定する。
【0039】
段階S2では、視差同定部103は、現在設定されている探索範囲内で視差=k-2についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(右端)に達している。
【0040】
故に、段階S3では、視差同定部103は、探索範囲を拡大し、この拡大した部分の中で視差=k-2についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(右端)に達している。
【0041】
故に、段階S4では、視差同定部103は、探索範囲を拡大し、この拡大した部分の中で視差=k-2についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲によって包含されている。
【0042】
次に、段階S5では、視差同定部103は、現在設定されている探索範囲内で視差=k-3についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(右端)に達している。
【0043】
故に、段階S6では、視差同定部103は、探索範囲を拡大し、この拡大した部分の中で視差=k-3についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(右端)に達している。
【0044】
故に、段階S7では、視差同定部103は、探索範囲を拡大し、この拡大した部分の中で視差=k-3についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲によって包含されている。
【0045】
次に、段階S8では、視差同定部103は、現在設定されている探索範囲内で視差=k-4についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域のサイズは予め定められた目標値に達している。故に、視差同定部103は、視差の同定を終了する。
【0046】
距離推定部105は、視差同定部103から視差データを受け取る。距離推定部105は、視差データに基づいて、第1の画像の探索範囲内の(マッチングに成功した)画素毎に、被写体60の表面における当該画素に対応する点からカメラ11およびカメラ12までの推定距離、すなわち推定デプスを算出する。距離推定部105は、推定距離を表す距離データを3D形状推定部106へ送る。距離データは、例えば第1の画像の探索範囲内の各画素の座標と当該画素の距離(デプス)とを含み得る。また、距離推定部105は、距離データを図示されない外部装置へ送ってもよい。距離推定部105は、例えば前述のプロセッサ(およびI/F)に相当し得る。
【0047】
3D形状推定部106は、距離推定部105から距離データを受け取る。3D形状推定部106は、距離データに基づいて、探索範囲における被写体60(対象物)の3D形状を推定する。具体的には、3D形状推定部106は、距離データを例えば画像化し、(探索範囲内の)デプスマップ(データ)を生成してもよい。デプスマップは、例えば画像データであって、各画素がその対応する距離に比例する画素値を有する。また、3D形状推定部106は、デプスマップに加えて、またはデプスマップの代わりに(探索範囲内の)被写体60の点群データを生成してもよい。点群データは、被写体60の表面の多数の点の3D位置データを含み得る。3D形状推定部106は、推定3D形状を表す3Dデータ(例えば、デプスマップおよび/または点群データ)を位置姿勢推定部107へ送る。また、3D形状推定部106は、3Dデータを図示されない外部装置へ送ってもよい。3D形状推定部106は、例えば前述のプロセッサ(およびI/F)に相当し得る。
【0048】
位置姿勢推定部107は、3D形状推定部106から被写体60の3Dデータを受け取り、3Dモデル記憶部108から1または複数の物品の3Dモデルデータを読み出す。位置姿勢推定部107は、被写体60の3Dデータを、読み出した3Dモデルデータとマッチングし、被写体60の位置および/または姿勢を推定する。位置姿勢推定部107は、推定位置および/または推定姿勢を表す位置/姿勢データを図示されない外部装置、例えばロボットハンド(の制御装置)へ送る。位置姿勢推定部107は、例えば前述のプロセッサおよびI/Fに相当し得る。
【0049】
ここで、被写体60が複数種類の物品のいずれかに該当する場合には、位置姿勢推定部107は、被写体60の位置姿勢を推定するよりも前に、当該被写体60の物品認識処理を行ってもよい。すなわち、位置姿勢推定部107は、被写体60の3Dデータとマッチングされるべき物品の3Dモデルデータがいずれであるかを判定してもよい。
【0050】
3Dモデル記憶部108は、予め用意された1または複数の物品の3Dモデルデータを保存する。3Dモデル記憶部108には、例えばピックアップなどの対象となる物品の3Dモデルデータが保存され得る。3Dモデル記憶部108に保存された3Dモデルデータは、位置姿勢推定部107によって読み出される。3Dモデル記憶部108は、例えば前述のメモリまたは補助記憶装置に相当し得る。ここで、補助記憶装置は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ、などであってよい。
【0051】
以下、図7乃至図9を用いて、図2の画像処理装置の動作を説明する。
まず、同定済みの視差をカウントするための変数pが、予め定められた上限値(k)に初期化される(ステップS201)。
【0052】
領域探索部102は、ステップS201において初期化された変数pを減じながら、第1の画像および第2の画像のマッチングを行い、被写体領域を探索する(ステップS210)。なお、ステップS210の具体例は、図8を用いて後述される。
【0053】
視差同定部103は、被写体領域のサイズが予め定められた目標値に達するまで、ステップS210に引き続き当該変数pを減じながら探索範囲内の画素の視差を同定して被写体領域を拡大させると共に当該被写体領域を包含するように探索範囲を設定する(ステップS220)。なお、ステップS220の具体例は、図9を用いて後述される。
【0054】
距離推定部105は、ステップS220における各画素についての視差の同定結果(視差データ)に基づいて、当該画素に対応する被写体60(対象物)の表面上の点からカメラ11およびカメラ12までの距離を推定する(ステップS245)。
【0055】
3D形状推定部106は、ステップS245における距離の推定結果(距離データ)に基づいて、被写体60の3D形状を推定する(ステップS246)。
【0056】
位置姿勢推定部107は、ステップS246における被写体60の3D形状の推定結果(被写体60の3Dデータ)を、3Dモデル記憶部108から読み出した、1または複数の物品の3Dモデルデータとマッチングし、当該被写体60の位置および/または姿勢を推定する(ステップS247)。
【0057】
次に、図8を用いて、ステップS210の詳細を説明する。図8の例では、処理はステップS211から開始する。
ステップS211において、領域探索部102は、視差=pについて、ブロックマッチングを行い、結果画像を生成する。具体的には、領域探索部102は、第2の画像に含まれる各画素をエピポーラ線に沿ってp画素ずらして比較用の画像を生成し、第1の画像内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、領域探索部102は、第1の画像に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、領域探索部102は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=pの結果画像を生成し得る。
【0058】
次に、領域探索部102は、累積結果画像にステップS212において生成した視差=pの結果画像を加算して、累積結果画像を更新する(ステップS212)。なお、ステップS212を初めて行う場合には、視差=p=kの結果画像がそのまま(最初の)累積結果画像として保存され得る。
【0059】
続いて、領域探索部102は、ステップS212において更新した累積結果画像において「1」の値を持つ画素を含む領域を検出する(ステップS213)。領域探索部102は、ステップS213において検出した領域に含まれる「1」の画素の面積が閾値を超えるか否かを判定する(ステップS214)。
【0060】
ステップS214において領域に含まれる「1」の画素の面積が閾値以下であると判定された場合に処理はステップS215へ進む。他方、ステップS214において領域に含まれる「1」の画素の面積が閾値を超えると判定された場合に、領域探索部102はステップS213において検出された領域を被写体領域の探索結果として決定し、当該被写体領域を定義するデータを生成、出力して、処理が終了する。ステップS215において、領域探索部102は変数pをデクリメントし、処理はステップS211に戻る。
【0061】
次に、図9を用いて、ステップS220の詳細を説明する。図9の例では、処理はステップS221から開始する。
ステップS221において、視差同定部103は、ステップS210において探索された被写体領域を包含する探索範囲を設定し、処理はステップS222に進む。ステップS222において、視差同定部103は、変数pをデクリメントする。
【0062】
次に、視差同定部103は、ステップS222においてデクリメントされた視差=pについて、探索範囲内のブロックマッチングを行い、結果画像を生成する(ステップS223)。具体的には、視差同定部103は、第2の画像に含まれる各画素をエピポーラ線に沿ってp画素ずらして比較用の画像を生成し、第1の画像の探索範囲内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、視差同定部103は、第1の画像の探索範囲に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、視差同定部103は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=pの結果画像を生成する。
【0063】
続いて、視差同定部103は、累積結果画像にステップS223において生成した視差=pの結果画像を加算して、累積結果画像を更新する(ステップS224)。領域探索部102は、ステップS224において更新した累積結果画像において「1」の値を持つ画素を含む領域を検出する(ステップS225)。
【0064】
視差同定部103は、ステップS225において検出した領域のサイズが目標値に達したか否かを判定する(ステップS232)。ステップS232において、領域のサイズが目標値に達していると判定されれば処理が終了する。他方、ステップS232において、領域のサイズが目標値に達していないと判定されれば処理はステップS226へ進む。
【0065】
ステップS226では、視差同定部103は、ステップS225において検出した領域が現在設定されている探索範囲の境界に達したか否かを判定する。ステップS226において領域が探索範囲の境界に達していないと判定されれば、処理はステップS222に戻る。他方、ステップS226において領域が探索範囲の境界に達したと判定されれば、処理はステップS227へ進む。
【0066】
ステップS227において、視差同定部103は、ステップS225において検出された(拡大した)被写体領域を包含するように、探索範囲を拡大して再設定する。
【0067】
次に、視差同定部103は、現在の視差=pについて、探索範囲内、より正確にはステップS227において拡大した部分のブロックマッチングを行い、結果画像を生成する(ステップS228)。具体的には、視差同定部103は、第2の画像に含まれる各画素をエピポーラ線に沿ってp画素ずらして比較用の画像を生成し、第1の画像の探索範囲(の拡大部分)内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、視差同定部103は、第1の画像の探索範囲に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、視差同定部103は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=pの結果画像を生成する。
【0068】
続いて、視差同定部103は、累積結果画像にステップS228において生成した視差=pの結果画像を加算して、累積結果画像を更新する(ステップS229)。領域探索部102は、ステップS229において更新した累積結果画像において「1」の値を持つ画素を含む領域を検出する(ステップS230)。
【0069】
視差同定部103は、ステップS230において検出した領域のサイズが目標値に達したか否かを判定する(ステップS233)。ステップS233において、領域のサイズが目標値に達していると判定されれば処理が終了する。他方、ステップS233において、領域のサイズが目標値に達していないと判定されれば処理はステップS231へ進む。
【0070】
ステップS231では、視差同定部103は、ステップS230において検出した領域が現在設定されている探索範囲の境界に達したか否かを判定する。ステップS231において領域が探索範囲の境界に達していないと判定されれば、処理はステップS222に戻る。他方、ステップS231において領域が探索範囲の境界に達したと判定されれば、処理はステップS227に戻る。
【0071】
以上説明したように、第1の実施形態に係る画像処理装置は、ステレオカメラ画像の各画素に関する視差を予め定められた上限値から降順に同定し、カメラに近い被写体の(一部の)領域を早期に探索する。そして、この画像処理装置は、探索された領域を包含するように探索範囲を設定して、当該探索範囲内で視差を同定する。故に、この画像処理装置によれば、視差同定のためのマッチングや、被写体の位置姿勢の推定のためのマッチングを行う範囲をカメラの視野の一部に制限することができる。すなわち、カメラの視野全体を探索範囲とした場合に比べて、マッチングの実行回数を削減する、すなわちマッチングに関する計算量を削減しながらも、カメラに近い被写体に関する視差の同定および/または位置姿勢の推定をすることができる。従って、この画像処理装置によれば、例えば、ロボットハンドが、大量に山積みされた対象物をその上方からピックアップするユースケースにおいて、ロボットハンドが対象物をピックアップしてから次の対象物をピックアップするまでの時間を短縮させることで作業を高速化させることができる。
【0072】
(第2の実施形態)
図1に例示した3D計測システムは、前述の画像処理装置100に代えて、第2の実施形態に係る画像処理装置300を組み込むこともできる。
【0073】
画像処理装置300は、前述の画像処理装置100と同様に、多眼カメラ10から複数枚の撮影画像を取得し、これら画像に対して種々の3D計測を行う。また、画像処理装置300は、画像処理装置100と同様のハードウェア構成を有し得る。
【0074】
以下、図11を用いて画像処理装置300の構成例の説明を続ける。
図11に例示されるように、画像処理装置300は、画像取得部101と、領域探索部102と、視差同定部303と、距離推定部105と、3D形状推定部106と、位置姿勢推定部107と、3Dモデル記憶部108とを含む。
【0075】
視差同定部303は、領域探索部102から、第1の画像、第2の画像、および被写体領域を定義するデータを受け取る。視差同定部303は、被写体領域を包含する探索範囲を設定し、探索範囲内の画素の視差を同定する。視差同定部303は、探索範囲内の画素についての視差の同定結果を表す視差データを生成し、これを距離推定部105へ送る。視差データは、例えば第1の画像の各画素の座標と当該画素に関する視差ベクトルとを含み得る。また、視差同定部303は、視差データを図示されない外部装置へ送ってもよい。視差同定部303は、例えば前述のプロセッサ(およびI/F)に相当し得る。
【0076】
視差同定部303は、領域探索部102によって同定済みである視差よりも小さな値から順に視差の同定を継続し、被写体領域の拡大とこれに伴う探索範囲の拡大(再設定)とを行ってもよい。後述するように、視差同定部303は、ある値についての視差の同定の結果、探索範囲を拡大した場合に、拡大された探索範囲に対して、予め定められた上限値から当該ある値まで視差を同定する点、そして、拡大された探索範囲内により有望な被写体領域が存在した場合に、設定中の探索範囲をリセットして視差の同定を再開する点で、前述の視差同定部103とは異なる。
【0077】
具体的には、視差同定部303は、領域探索部102によって探索された被写体領域を包含する探索範囲を設定する。例えば、視差同定部303は、被写体領域を包含する矩形を探索範囲としてもよいし、被写体領域の縁に沿って当該被写体よりも大きな探索範囲を設定してもよい。
【0078】
そして、視差同定部303は、領域探索部102によって同定済みである値(ここではmとする)よりも小さな視差について同定を行う。すなわち、視差同定部303は、第2の画像に含まれる各画素をエピポーラ線に沿ってm-1画素ずらして比較用の画像を生成し、第1の画像の探索範囲内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、視差同定部303は、第1の画像の探索範囲に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、視差同定部303は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=m-1の結果画像を生成する。この結果画像に含まれる各画素の値は、第1の画像の探索範囲において当該画素と同一位置にある画素についての視差がm-1であるか否か(「1」/「0」)を意味する。視差同定部303は、累積結果画像にこの視差=m-1の結果画像を加算して被写体領域を更新する。この累積結果画像に含まれる各画素の値は、第1の画像の少なくとも探索範囲において当該画素と同一位置にある画素についての視差がm-1以上であるか否か、換言すれば視差が同定済みであるか否か(「1」/「0」)を意味する。
【0079】
続いて、視差同定部303は、このように更新した被写体領域が、現在設定されている探索範囲の境界に達したか否かを判定する。被写体領域が現在設定されている探索範囲の境界に達していなければ、視差同定部303はより小さな視差の同定を行う。他方、被写体領域が探索範囲の境界に達していれば、視差同定部303は、被写体領域が探索範囲に包含されるように、探索範囲を以下に説明するように拡大して再設定することになる。
【0080】
具体的には、視差同定部303は、現在の累積結果画像における被写体領域を包含するように探索範囲を拡大して再設定する。ただし、前述のように、視差同定部303は、再設定前の探索範囲よりも外側の画素についてマッチングを行っていないので、実際には視差がm-1以上である被写体領域は、再設定後の探索範囲の境界にも達するおそれがある。故に、視差同定部303は、探索範囲のうち再設定により拡大した部分について前述のマッチングを予め定められた上限値からm-1まで行って、累積結果画像を再更新する。
【0081】
ここで、探索範囲のうち再設定により拡大した部分に、m-1より大きい、すなわち上限値からmまでの視差が同定された領域が存在し、さらにこの領域が現在の探索範囲内の被写体領域と不連続である場合には、当該領域は現在の探索範囲内の被写体領域に対応する被写体よりもカメラに近い位置にある被写体に対応する可能性がある。そこで、視差同定部303は、設定中の探索範囲(および当該探索範囲によって包含される被写体領域)を破棄してこの(被写体)領域を包含する探索範囲を新たに設定(すなわち、探索範囲をリセット)して、当該探索範囲内の画素について視差の同定を再開する。そして、視差同定部303は、被写体領域が、現在設定されている探索範囲の境界に達したか否かを再判定する。被写体領域が探索範囲の境界に達していれば、視差同定部303は同様の処理を繰り返す必要がある。他方、被写体領域が探索範囲の境界に達していなければ、視差同定部303はより小さな視差の同定と、必要であれば探索範囲の拡大とを行うことになる。最終的に、視差の同定済みである画素を含む領域(被写体領域)のサイズが予め定められた目標値に達した場合に、視差同定部303は視差の同定を終了することになる。
【0082】
ここで、2つの被写体61および被写体62が図12に例示されていたとする。図12の例では、被写体62は、被写体61に被さっており、被写体61よりも被写体62がカメラに近い位置にある。しかしながら、被写体61および被写体62の姿勢の影響で、被写体61の一部が、被写体62よりもカメラに近い位置に突き出ている。
【0083】
被写体61および被写体62がこのように配置されていたとすると、領域探索部102は、被写体61の一部を被写体領域として探索する可能性がある。それから視差同定部303は、被写体61のうちカメラからより遠い部分について視差を同定し、探索範囲を拡大することになる。ここで、仮に、ある値について探索範囲内の画素の視差を同定し、さらに探索範囲を拡大した場合に、この拡大した部分の画素の視差を当該ある値についてのみ同定したとする。探索範囲の拡大部分の画素の視差をこのように同定すると、被写体61および被写体62の重なった部分では被写体62の方が被写体61よりも視差が大きいので、当該拡大部分に被写体62が存在していたとしても、これが見落とされるおそれがある。
【0084】
そこで、視差同定部303は、探索範囲の拡大部分の画素の視差も、予め定められた値から現在注目する値まで同定することで、かかる見落としを防ぐ。図13図14、および図15に、図12の例において、視差が20画素、16画素、および12画素の場合、の累積結果画像をそれぞれ示す。図13の段階では被写体61の一部が探索範囲に含まれているが、図14の段階では被写体62の一部を包含するように探索範囲がリセットされ、図15の段階では、被写体61および被写体62の位置関係、すなわち被写体62が被写体61に被さっていることが理解できる。
【0085】
視差同定部303による探索範囲の設定例を図18に示す。図18の例では、視差=k-1の時に、被写体領域の探索が済んでいる。故に、段階S11では、視差同定部303は、視差=k-1以上である被写体領域を包含するように探索範囲を設定する。
【0086】
段階S12では、視差同定部303は、現在設定されている探索範囲内で視差=k-2についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(上端および右端)に達している。
【0087】
故に、段階S13では、視差同定部303は、探索範囲を拡大する。そして、段階S14では、視差同定部303は、この拡大した部分の中で視差=k、k-1およびk-2についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(上端および右端)に達している。
【0088】
故に、段階S15では、視差同定部303は、探索範囲をさらに拡大する。そして、段階S16では、視差同定部303は、この拡大した部分の中で視差=k、k-1およびk-2についてのマッチングを行う。この結果、視差=kおよび/またはk-1が同定された領域が検出され、かつ現在の探索範囲内の被写体領域と不連続であったため、探索範囲がリセットされた。さらに、累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲の境界(左端)に達している。
【0089】
故に、段階S17では、視差同定部303は、探索範囲をさらに拡大する。そして、段階S18では、視差同定部303は、この拡大した部分の中で視差=k、k-1およびk-2についてのマッチングを行う。累積結果画像において「1」の値を持つ領域は現在設定されている探索範囲によって包含されている。
【0090】
次に、段階S19では、視差同定部303は、現在設定されている探索範囲内で視差=k-3についてのマッチングを行う。この結果、累積結果画像において「1」の値を持つ領域のサイズは目標値に達した。故に、視差同定部303は、視差の同定を終了する。
【0091】
以下、図16および図17を用いて、図11の画像処理装置の動作を説明する。図16のフローチャートは、図7のフローチャートにおけるステップS220をステップS420に置き換えたものである。
【0092】
ステップS420において、視差同定部303は、被写体領域のサイズが予め定められた目標値に達するまで、ステップS210に引き続き当該変数pを減じながら探索範囲内の画素の視差を同定して被写体領域を拡大させると共に当該被写体領域を包含するように探索範囲を設定する(ステップS420)。なお、ステップS420の具体例は、図17を用いて後述される。
【0093】
次に、図17を用いて、ステップS420の詳細を説明する。図17のフローチャートは、図9のフローチャートにおけるステップS228およびステップS229をステップS428およびステップS429にそれぞれ置き換え、さらにステップS434およびステップS435を追加したものである。
【0094】
ステップS428において、視差同定部303は、予め定められた上限値(k)から現在の視差=pまで、拡大された探索範囲内、すなわちステップS227において拡大した部分のブロックマッチングを行い、それぞれ結果画像を生成する(ステップS428)。具体的には、視差同定部303は、p≦i≦kを満足する任意の整数iに関して、第2の画像に含まれる各画素をエピポーラ線に沿ってi画素ずらして比較用の画像を生成し、第1の画像の探索範囲の拡大部分内の画素毎に当該比較用の画像とのブロックマッチングを行う。例えば、視差同定部303は、第1の画像の探索範囲に含まれる注目画素を中心とする画素ブロックと、比較用の画像において当該注目画素と同一位置にある画素を中心とする画素ブロックとのSADを計算する。そして、視差同定部303は、SADが閾値未満であればこの注目画素と同一位置にある画素の値を「1」、逆にSADが閾値以上であれば当該画素の値を「0」として、視差=iの結果画像を生成する。
【0095】
続いて、視差同定部103は、視差=k~p+1について、画素値=「1」の領域が検出され、かつ探索範囲内の被写体領域と不連続であるか否かを判定する(ステップS434)。かかる領域が検出されれば処理はステップS435へ進む、検出されなければ処理はステップS429へ進む。
【0096】
ステップS435において、視差同定部103は、現在設定中の探索範囲を破棄し、検出された領域を包含する探索範囲を新たに設定して、処理はステップS429へ進む。
【0097】
ステップS429において、視差同定部303は、累積結果画像にステップS428において生成した視差=k~pの結果画像を加算して、累積結果画像を更新する。
【0098】
以上説明したように、第2の実施形態に係る画像処理装置は、ある値について探索範囲内の画素の視差を同定し、さらに探索範囲を拡大した場合に、拡大した部分について予め定められた上限値から当該ある値まで視差の同定を行う点、そして、拡大された探索範囲内により有望な被写体領域が存在した場合に、設定中の探索範囲をリセットして視差の同定を再開する点で、第1の実施形態に係る画像処理装置とは異なる。この画像処理装置は、第1の実施形態に係る画像処理装置に比べて、視差の同定のための演算量が増加するおそれはあるものの、最初に探索された被写体領域とは離れた箇所に当該被写体領域に対応する第1の被写体よりもカメラに近い第2の被写体が存在する場合に、当該第2の被写体を見落としにくくなる。
【0099】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【0100】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。
【0101】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【0102】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
【符号の説明】
【0103】
10・・・多眼カメラ
11,12・・・カメラ
20・・・プロジェクタ
30・・・プロジェクタ/カメラ制御装置
60,61,62・・・被写体
70・・・台
100,300・・・画像処理装置
101・・・画像取得部
102・・・領域探索部
103,303・・・視差同定部
105・・・距離推定部
106・・・3D形状推定部
107・・・位置姿勢推定部
108・・・3Dモデル記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19