(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024089707
(43)【公開日】2024-07-04
(54)【発明の名称】三次元情報補正装置及び三次元情報補正方法
(51)【国際特許分類】
G01S 7/497 20060101AFI20240627BHJP
G01S 17/89 20200101ALI20240627BHJP
G01S 17/86 20200101ALI20240627BHJP
G01C 3/06 20060101ALI20240627BHJP
G01B 11/00 20060101ALI20240627BHJP
G01B 11/24 20060101ALI20240627BHJP
【FI】
G01S7/497
G01S17/89
G01S17/86
G01C3/06 120Q
G01C3/06 140
G01B11/00 B
G01B11/24 K
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022205062
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】籾山 悦郎
(72)【発明者】
【氏名】塩田 和則
【テーマコード(参考)】
2F065
2F112
5J084
【Fターム(参考)】
2F065AA04
2F065AA06
2F065AA53
2F065BB05
2F065DD03
2F065EE00
2F065FF04
2F065FF11
2F065GG06
2F065JJ03
2F065JJ05
2F065JJ07
2F065JJ26
2F065LL04
2F065LL20
2F065QQ17
2F065QQ24
2F065QQ25
2F065QQ28
2F065QQ31
2F065RR10
2F065UU05
2F112AD01
2F112BA06
2F112BA12
2F112CA08
2F112DA10
2F112DA25
2F112DA28
2F112DA32
2F112EA05
2F112FA03
2F112FA21
2F112FA23
2F112FA35
2F112FA45
2F112GA01
5J084AA04
5J084AA05
5J084AA13
5J084AD01
5J084AD05
5J084BA04
5J084BA34
5J084BA36
5J084BA40
5J084BB02
5J084BB14
5J084CA03
5J084CA31
5J084EA11
(57)【要約】
【課題】対象物の三次元情報を忠実に再現することが可能な三次元情報補正装置及び三次元情報補正方法を提供する。
【解決手段】三次元情報補正装置は、対象物を撮像した画像を取得する画像取得部と、取得した前記画像に含まれる直線を検出する直線検出部と、前記対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数の前記Depth値を含むDepth画像を取得するDepth画像取得部と、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正するための関数であって、前記直線上の点におけるDepth値と、前記画像の座標との関係を示す関数である補正用関数を算出する補正用関数算出部と、算出された前記補正用関数を用いて、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正する補正処理部とを備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
対象物を撮像した画像を取得する画像取得部と、
取得した前記画像に含まれる直線を検出する直線検出部と、
前記対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数の前記Depth値を含むDepth画像を取得するDepth画像取得部と、
取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正するための関数であって、前記直線上の点における前記Depth値と、前記画像の座標との関係を示す関数である補正用関数を算出する補正用関数算出部と、
算出された前記補正用関数を用いて、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正する補正処理部と
を備える三次元情報補正装置。
【請求項2】
前記補正用関数算出部は、取得された前記Depth値のうち、検出された前記直線上の複数の点における前記Depth値に基づき、前記補正用関数を算出するための2つの点を決定し、決定した2つの点を通る一次関数を前記補正用関数とする
請求項1に記載の三次元情報補正装置。
【請求項3】
前記画像とは、偏向センサにより取得された偏向度に応じて彩色された画像である
請求項1に記載の三次元情報補正装置。
【請求項4】
前記直線検出部は、取得した前記画像に含まれる複数の直線を検出し、
検出された複数の前記直線の交点に基づき、前記画像に含まれる面を検出する面検出部を更に備え、
前記補正用関数算出部は、取得された前記Depth値のうち、検出された前記面上の点における前記Depth値を補正するための関数であって、前記面を構成する画素を含む直線であって特定の方向に沿った直線上の点における前記Depth値と、前記画像の座標との関係を示す関数を前記補正用関数として算出し、
前記補正処理部は、検出された複数の前記直線のうち、特定の前記直線上の点を始点とし、前記特定の方向に沿った直線上の各座標について、前記補正用関数を用いて、前記Depth値を補正する
請求項1に記載の三次元情報補正装置。
【請求項5】
前記補正処理部は、前記画像に基づき、検出された前記面における隣接する画素値が所定の範囲内である場合において前記Depth値を補正し、所定の範囲内でない場合において前記Depth値を補正しない
請求項4に記載の三次元情報補正装置。
【請求項6】
対象物を撮像した画像を取得する画像取得工程と、
取得した前記画像に含まれる直線を検出する直線検出工程と、
前記対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数の前記Depth値を含むDepth画像を取得するDepth画像取得工程と、
取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正するための関数であって、前記直線上の点における前記Depth値と、前記画像の座標との関係を示す関数である補正用関数を算出する補正用関数算出工程と、
算出された前記補正用関数を用いて、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正する補正処理工程と
を有する三次元情報補正方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元情報補正装置及び三次元情報補正方法に関する。
【背景技術】
【0002】
従来、対象物に向けて測距光を照射し、測定対象物に反射した反射光を受光し、光を照射してから受光するまでの時間を測定することにより、対象物までの距離を算出する方法があった。これらの測距方法は、ToF(Time of Flight)方式として広く知られている。物体の三次元情報を取得するための装置の一例として、RGBの各画素に加え、ToF方式により測距を行うための受光素子(ToFセンサ)が二次元配列されたものがあった。このような装置を用いれば、対象物の画像情報と、測距情報とを同時に取得することができ、取得した情報を組み合わせることにより、対象物の三次元情報を生成することができる(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながらToFセンサの性能上、ToF方式により得られる距離情報には歪みが存在する場合がある。例えば対象物の形状に直線的な部分が存在している場合であっても、当該直線部分の三次元情報を取得した場合、波打ったような形状となってしまう場合がある。すなわち、可視光画像の情報と距離情報とから、三次元情報(具体的には点群データ)を生成すると、本来直線であったり平面であったりすべき被写体の形状が、歪んでしまうといった問題があった。この歪みにより、対象物の三次元情報を忠実に再現できないといった問題があった。
【0005】
本発明は、このような状況に鑑みてなされたものであって、対象物の三次元情報を忠実に再現することが可能な三次元情報補正装置及び三次元情報補正方法の提供を目的とする。
【課題を解決するための手段】
【0006】
[1]本発明の一態様は、対象物を撮像した画像を取得する画像取得部と、取得した前記画像に含まれる直線を検出する直線検出部と、前記対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数の前記Depth値を含むDepth画像を取得するDepth画像取得部と、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正するための関数であって、前記直線上の点における前記Depth値と、前記画像の座標との関係を示す関数である補正用関数を算出する補正用関数算出部と、算出された前記補正用関数を用いて、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正する補正処理部とを備える三次元情報補正装置である。
【0007】
[2]また、本発明の一態様は、上記[1]に記載の三次元情報補正装置において、前記補正用関数算出部は、取得された前記Depth値のうち、検出された前記直線上の複数の点における前記Depth値に基づき、前記補正用関数を算出するための2つの点を決定し、決定した2つの点を通る一次関数を前記補正用関数とするものである。
【0008】
[3]また、本発明の一態様は、上記[1]又は[2]に記載の三次元情報補正装置において、前記画像とは、偏向センサにより取得された偏向度に応じて彩色された画像である。
【0009】
[4]また、本発明の一態様は、上記[1]から[3]のいずれかに記載の三次元情報補正装置において、前記直線検出部は、取得した前記画像に含まれる複数の直線を検出し、検出された複数の前記直線の交点に基づき、前記画像に含まれる面を検出する面検出部を更に備え、前記補正用関数算出部は、取得された前記Depth値のうち、検出された前記面上の点における前記Depth値を補正するための関数であって、前記面を構成する画素を含む直線であって特定の方向に沿った直線上の点における前記Depth値と、前記画像の座標との関係を示す関数を前記補正用関数として算出し、前記補正処理部は、検出された複数の前記直線のうち、特定の前記直線上の点を始点とし、前記特定の方向に沿った直線上の各座標について、前記補正用関数を用いて、前記Depth値を補正するものである。
【0010】
[5]また、本発明の一態様は、上記[4]に記載の三次元情報補正装置において、前記補正処理部は、前記画像に基づき、検出された前記面における隣接する画素値が所定の範囲内である場合において前記Depth値を補正し、所定の範囲内でない場合において前記Depth値を補正しないものである。
【0011】
[6]また、本発明の一態様は、対象物を撮像した画像を取得する画像取得工程と、取得した前記画像に含まれる直線を検出する直線検出工程と、前記対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数の前記Depth値を含むDepth画像を取得するDepth画像取得工程と、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正するための関数であって、前記直線上の点における前記Depth値と、前記画像の座標との関係を示す関数である補正用関数を算出する補正用関数算出工程と、算出された前記補正用関数を用いて、取得された前記Depth値のうち、検出された前記直線上の点における前記Depth値を補正する補正処理工程とを有する三次元情報補正方法である。
【発明の効果】
【0012】
本発明によれば、対象物の三次元情報を忠実に再現することが可能な三次元情報補正装置及び三次元情報補正方法を提供することができる。
【図面の簡単な説明】
【0013】
【
図1】実施形態1に係る三次元情報取得システムの概略について説明するための図である。
【
図2】実施形態1に係る三次元情報取得装置の断面の一例を示す模式図である。
【
図3】実施形態1に係る三次元情報補正装置の機能構成の一例を示す機能構成図である。
【
図4】実施形態1に係る直線検出処理の一例について説明するための図である。
【
図5】実施形態1に係る直線検出処理により検出された直線を特定するための一次関数の一例を示す図である。
【
図6】実施形態1に係る直線検出処理により検出された直線上のDepth値の一例を示す図である。
【
図7】実施形態1に係る補正用関数の一例を示す図である。
【
図8】実施形態1に係る三次元情報補正方法のうち、補正用関数の算出までの一連の流れについて示すフローチャートである。
【
図9】実施形態1に係る三次元情報補正方法のうち、補正処理の一連の流れについて示すフローチャートである。
【
図10】実施形態1の変更例に係る三次元情報補正装置により取得される偏向画像の一例を示す図である。
【
図11】実施形態2に係る三次元情報補正装置の機能構成の一例を示す機能構成図である。
【
図12】実施形態2に係る面検出処理の一例について説明するための図である。
【
図13】実施形態2に係る三次元情報補正について、面上に存在する凹凸を避けるための処理について説明するための図である。
【
図14】実施形態2に係る三次元情報補正について、面上に存在する凹凸を避けるための処理の一例について示すフローチャートである。
【
図15】実施形態2に係る三次元情報補正について、水平方向に補正する場合の一例について説明するための図である。
【
図16】実施形態2に係る三次元情報補正について、垂直方向に補正する場合の一例について説明するための図である。
【発明を実施するための形態】
【0014】
本発明の態様に係る距離情報取得装置について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。なお、以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。また、本願でいう「XXに基づいて」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づいて」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。また、以下の図面においては、各構成をわかりやすくするために、各構造における縮尺および数等を、実際の構造における縮尺および数等と異ならせる場合がある。
【0015】
[従来技術]
まず、本実施形態において解決しようとする課題について説明する。従来技術によるToFカメラによれば、ToF方式により測距された深度情報を二次元配列された画素ごとにビットマップ状に集め、距離画像が生成される。また、撮像装置によりRGB画像等の画像が撮像される。RGB画像等の画像に距離画像の深度情報を組み合わせることにより、三次元の点群データを生成することが可能となる。しかしながら距離画像にはノイズが多く含まれる場合がある。距離画像にノイズが含まれていることに起因して、様々な課題が生じる場合があった。例えば三次元情報の取得対象となる対象物には、直線部分や平面部分が含まれることがある。直線部分や平面部分にノイズが生じると、本来は平坦である部分が凹凸を有する形状となってしまうため、不自然な三次元情報となってしまう場合がある。本実施形態は、このような不自然な歪みを解消し、対象物の三次元情報を忠実に再現しようとするものである。
【0016】
[実施形態1]
以下、
図1から
図10を参照しながら、実施形態1について説明する。
【0017】
図1は、実施形態1に係る三次元情報取得システムの概略について説明するための図である。同図を参照しながら、三次元情報取得システム1の概略について説明する。三次元情報取得システム1は、三次元空間上に存在する対象物Tの三次元的な情報を取得する。対象物Tは、1つであってもよいし、複数であってもよい。三次元情報取得システム1により取得される三次元的な情報には、対象物Tの三次元的な形状についての情報が少なくとも含まれる。
【0018】
三次元情報取得システム1は、三次元情報取得装置10から対象物Tまでの距離L1を計測する。三次元情報取得装置10は、二次元座標系の各座標において、対象物Tまでの距離L1をそれぞれ計測することにより、対象物Tの三次元的な形状を取得する。三次元情報取得装置10が対象とする対象物Tには、動物や物体等の三次元的な情報の取得の対象となるあらゆるものが含まれる。以降の説明においては、一例として対象物Tが人物である場合について説明する。対象物Tの背後には、背景BGが存在する場合がある。背景BGとは、例えば撮影用に用いられるグリーンバック等のスクリーンであってもよいし、単なる壁や床、建造物、自然物等、その他通常の撮像時に映り込む背景等であってもよい。また、対象物Tの近傍には、三次元情報の取得の対象とはならないが、三次元的な形状を有する物体Oが存在する場合がある。物体Oは、複数存在する場合もある。三次元情報取得システム1は、例えば屋内における撮影スタジオでプロのカメラマンにより使用されてもよいし、屋内外における通常の写真撮影と同様の状況において一般ユーザにより使用されてもよい。
【0019】
三次元情報取得システム1は、三次元情報取得装置10と、三次元情報補正装置20とを含んで構成される。三次元情報取得装置10と三次元情報補正装置20とは、1つのエッジデバイスとして存在していてもよいし、所定の通信ネットワークを介して互いに接続されていてもよい。また、三次元情報補正装置20は、三次元情報取得装置10と所定の通信ネットワークを介して接続されたサーバ装置(不図示)として存在していてもよい。三次元情報補正装置20がサーバ装置として存在する場合、所定の通信ネットワークを介して複数の三次元情報取得装置10と、一の三次元情報補正装置20とが接続されてもよい。
【0020】
三次元情報取得装置10は、受光部110と、照射部120とを備える。受光部110は、例えば、対物レンズ等の光学系レンズを含んで構成されてもよい。照射部120は、照射光を対象物Tに照射する。照射部120は、例えばレーザーダイオード等の光源であってもよい。より詳細には、照射部120は、垂直方向にレーザービームを放射可能なVCSEL(Vertical Cavity Surface Emitting Laser、垂直共振器型面発光レーザー)等であってもよい。照射部120により照射された光(第1照射光BM1)は、対象物Tにより反射し、対象物Tにより反射した光(第2照射光BM2)は、受光部110に入射する。三次元情報取得装置10は、光を照射してから受光するまでの時間(飛行時間)に応じて、三次元情報取得装置10から対象物Tまでの距離L1を測距する。
【0021】
受光部110は、二次元アレイ状に配置された複数の受光素子を備える。三次元情報取得装置10は、複数の受光素子それぞれにおける測距情報に応じて、対象物Tの三次元的な形状を測定する。なお、図示する一例では、一対の受光部110及び照射部120が示されているが、1つの受光部110に対して複数の照射部120が備えられるような構成であってもよい。この場合、複数の照射部120は、受光部110を中心として、その近傍に備えられることが好適である。
【0022】
三次元情報取得装置10は、不図示のイメージセンサを備える。イメージセンサは、二次元アレイ状に配置された複数の画素を備え、イメージセンサが備える複数の画素は、受光部110が備える光学系レンズにより結像された可視光を受光し、受光した情報に基づき、可視光画像(RGB画像)を生成する。可視光画像の方式としては、RGB方式に限らず、YCbCr方式やグレースケール(モノクロ)方式でもよい。
【0023】
三次元情報補正装置20は、三次元情報取得装置10により取得された三次元情報のうち、特定の物体の三次元情報を抽出する。三次元情報取得装置10により取得された三次元情報は、図示するように三次元情報生成の対象となる対象物T以外にも、複数の物体Oや、背景BG等の三次元情報をも含んでいる。そこで、三次元情報補正装置20は、三次元情報取得装置10により取得された三次元情報のうち、三次元情報生成の対象となる対象物Tの三次元情報を抽出する。なお、三次元情報補正装置20が三次元情報生成の対象とする対象物Tは、三次元情報補正装置20により自動的に判定されてもよいし、ユーザ等の選択により決定されてもよい。
【0024】
図2は、実施形態1に係る三次元情報取得装置の断面の一例を示す模式図である。同図を参照しながら、三次元情報取得装置10におけるイメージセンサとToFセンサの配置の一例について説明する。三次元情報取得装置10は、可視光反射ダイクロイック膜112と、イメージセンサ113と、ToFセンサ114とを更に備える。
【0025】
照射部120から照射され、対象物Tに反射した光は、受光部110に入射する。同図には、入射した光の光軸が、光軸OAとして記載されている。受光部110に入射した光は、可視光反射ダイクロイック膜112に入射する。可視光反射ダイクロイック膜112より上流側には、不図示の光学系レンズ等が備えられていてもよい。
【0026】
可視光反射ダイクロイック膜112は、受光部110とToFセンサ114との間の光路上に設けられる。可視光反射ダイクロイック膜112は、入射する一部の光(具体的には近赤外光)を透過させ、その他の光(具体的には可視光)を反射する。可視光反射ダイクロイック膜112は、照射部120により照射された光が対象物Tに反射した光の一部を透過させることにより、光をToFセンサ114に導く。可視光反射ダイクロイック膜112が透過させる光を赤外光ILと記載する。また、可視光反射ダイクロイック膜112が反射する光を可視光VLとして記載する。赤外光IL及び可視光VLは、可視光反射ダイクロイック膜112より上流側において略同一の光軸を通る。略同一の範囲とは、例えば共通のレンズにより、光路が形成される範囲であってもよい。
【0027】
可視光反射ダイクロイック膜112により二つの光路に分光された光は、それぞれの光路に配置されたセンサにより受光される。具体的には、可視光反射ダイクロイック膜112を透過した赤外光ILはToFセンサ114により受光される。また、可視光反射ダイクロイック膜112に反射した光はイメージセンサ113により受光される。
【0028】
イメージセンサ113は、二次元配列された複数の画素を備える。イメージセンサ113は、ベイヤー配列により配置されたRGB各色の画素を備えていてもよい。当該複数の画素は、それぞれ可視光VLを受光し、可視光画像を生成するために必要な情報を取得する。
【0029】
ToFセンサ114は、二次元配列された複数の画素を備える。当該複数の画素は、それぞれ赤外光ILを受光し、距離換算に必要な情報を取得する。
【0030】
図3は、実施形態1に係る三次元情報補正装置の機能構成の一例を示す機能構成図である。同図を参照しながら、三次元情報補正装置20の機能構成の一例について説明する。三次元情報補正装置20は、画像取得部21と、Depth画像取得部22と、直線検出部23と、補正用関数算出部24と、補正処理部25と、出力部26とを含んで構成される。これらの各機能部は、例えば、電子回路を用いて実現される。また、各機能部は、必要に応じて、半導体メモリや磁気ハードディスク装置などといった記憶手段を内部に備えてよい。また、各機能を、コンピュータおよびソフトウェアによって実現するようにしてもよい。
【0031】
画像取得部21は、イメージセンサ113から、対象物Tを撮像した画像(RGB画像等の可視光画像)についての情報を含む画像情報IIを取得する。画像情報IIには、二次元座標系の各座標における輝度情報等が含まれる。当該輝度情報は、RGB各色に対応するものであってもよい。画像取得部21は、取得した画像情報IIを直線検出部23に出力する。
【0032】
Depth画像取得部22は、Depth画像についての情報を含むDepth画像情報DIを取得する。Depth画像には、二次元座標系の各座標における複数のDepth値が含まれる。Depth値とは、ToF方式により測距された対象物Tまでの距離情報である。Depth画像取得部22は、取得したDepth画像情報DIを補正用関数算出部24に出力する。
【0033】
ここで、画像取得部21により取得される画像と、Depth画像とは、同一の画角で、同一の対象物Tを撮像したものであることが好適である。換言すれば、画像取得部21により取得される画像の座標と、Depth画像の座標とは対応していることが好適である。互いの座標を対応させるため、本実施形態においては、
図2を参照しながら説明したような、可視光反射ダイクロイック膜112を用いて赤外光ILと可視光VLとに分光するような構成が用いられる。
【0034】
直線検出部23は、画像取得部21により取得された画像に含まれる直線部分を検出する。直線検出部23は、例えばOpenCVライブラリの機能を使用し、画像取得部21により取得された画像中に含まれる直線部分を検出してもよい。直線検出部23は、検出した直線部分を特定する情報を、直線情報LIとして補正用関数算出部24に出力する。なお、直線情報LIには、検出された直線の始点及び終点の座標情報が含まれていてもよい。また、画像取得部21により取得された画像に複数の直線部分が含まれる場合、直線検出部23は、当該複数の直線部分について検出してもよい。その場合、直線情報LIには、検出された複数の直線部分それぞれについての始点及び終点の座標情報が含まれていてもよい。なお、以下の説明において、直線検出部23により行われる処理を直線検出処理と記載する場合がある。
【0035】
図4は、実施形態1に係る直線検出処理の一例について説明するための図である。同図を参照しながら、直線検出部23により行われる直線検出処理の一例について説明する。
図4(A)は、イメージセンサ113により撮像された画像の一例である。直線検出部23は、
図4(A)に示した画像に含まれる直線部分を検出する。
図4(B)は、直線検出部23により直線検出処理が行われた結果の一例を示す。同図には、説明のための符号を付している。図示するように、直線検出処理により直線L1乃至直線L10に示される10の直線部分が検出されている。直線検出部23は、検出した直線を特定する情報を、直線情報LIとして補正用関数算出部24に出力する。一例として、直線L1を特定するための始点SP及び終点EPを図示する。直線情報LIには、例えば直線L1を特定するための始点SP及び終点EPの座標情報が含まれる。なお、図示する一例では、10の直線部分が検出されているが、同図から10より多い、又は10より少ない直線部分が検出されてもよい。直線として検出されるための条件は、画像に応じて適宜決定されてもよいし、ユーザにより設定されてもよい。
【0036】
図3に戻り、補正用関数算出部24は、直線検出部23から直線情報LIを取得し、Depth画像取得部22からDepth画像情報DIを取得する。補正用関数算出部24は、取得した直線情報LI及びDepth画像情報DIに基づき、補正用関数CFを算出する。補正用関数CFとは、取得されたDepth画像情報DIに含まれる二次元配列された複数のDepth値のうち、直線検出部23により検出された直線上の点におけるDepth値を補正するための関数である。また、補正用関数CFとは、直線検出部23により検出された直線上の点におけるDepth値と、画像取得部21により取得された画像の座標との関係を示す関数である。以下の説明においては、補正用関数CFが一次関数である場合について説明する。
【0037】
まず、補正用関数算出部24は、直線検出部23から取得した直線情報LIに含まれる始点と終点の座標に基づき、当該直線を特定するための1次関数を算出する。
図5は、実施形態1に係る直線検出処理により検出された直線を特定するための一次関数の一例を示す図である。同図には、画像取得部21により取得された画像の横方向をx軸として、画像取得部21により取得された画像の縦方向をy軸として示す。また、同図には、
図4(B)に示した直線L1について特定するための一次関数の一例を示す。直線情報LIには、始点SP及び終点EPの座標情報が含まれるため、補正用関数算出部24は、当該座標情報に示される点を結ぶ一次関数を算出する。
【0038】
次に、補正用関数算出部24は、Depth画像情報DIに基づき、算出した1次関数の直線上におけるDepth値を特定する。
図6は、実施形態1に係る直線検出処理により検出された直線上のDepth値の一例を示す図である。同図には、画像取得部21により取得された画像の横方向をx軸として、検出された直線上のDepth値をy軸として示す。
図4(B)に示した始点SPに対応する点のDepth値を始点SP1として、
図4(B)に示した終点EPに対応する点のDepth値を終点EP1として示す。始点SP1から終点EP1までの間のDepth値は、
図4(B)から明らかなように本来は直線となるべきである。しかしながらDepth画像取得部22に基づき取得されたDepth値は、図示するように、波打ったような線となる。これは、ToFセンサ114により検出されたDepth値にはノイズが重畳しており、Depth値が正確に検出されていないためである。
【0039】
そこで、補正用関数算出部24は、このような波打った線を直線に補正するための補正用関数CFを算出する。まず、補正用関数算出部24は、補正用関数CFの始点と終点を特定する。なお、補正用関数CFの始点と終点は、x座標が画像のx軸方向に該当する点において共通するが、y座標がDepth値となる点において、
図5を参照しながら示した始点及び終点とは異なる。以降、補正用関数CFの始点及び終点を、始点SP2及び終点EP2と記載する。
【0040】
補正用関数算出部24は、例えば、始点及び終点それぞれに隣接する数ポイント分のDepth値をサンプリングし、始点及び終点のDepth値を決定してもよい。換言すれば、補正用関数算出部24は、取得されたDepth画像情報DIに含まれる複数のDepth値のうち、直線検出部23により検出された直線上の複数の点におけるDepth値に基づき、補正用関数CFを算出するための2つの点を決定してもよい。サンプリングを行うDepth値の数やサンプリング間隔は、x軸方向における画像の画素値又はDepth画像の画素値等に基づく間隔に基づいて決定されてもよい。補正用関数算出部24は、複数のDepth値に基づき決定した2つの点を通る一次関数を、補正用関数CFとして算出する。補正用関数CFは、x座標と、Depth値とを変数として有する関数である。
【0041】
図7は、実施形態1に係る補正用関数の一例を示す図である。同図には、
図6に示したDepth値に重ねて、当該Depth値から求められる補正用関数CFの一例を示している。図示するように、補正用関数CFの線分の両端は、始点SP2及び終点EP2を通る。始点SP2は、例えば
図6に示した始点SP1に隣接する3点のDepth値の平均値に基づき決定されてもよく、終点EP2は、例えば
図6に示した終点EP1に隣接する3点のDepth値の平均値に基づき決定されてもよい。補正用関数算出部24は、始点SP2及び終点EP2を結ぶ一次関数を補正用関数CFとして算出する。
図3に戻り、補正用関数算出部24は、このように算出した補正用関数CFに関する情報を補正処理部25に出力する。
【0042】
補正処理部25は、補正用関数算出部24により算出された補正用関数CFに関する情報を取得する。補正処理部25は、取得した補正用関数CFを用いて、Depth画像取得部22により取得されたDepth値のうち、直線検出部23により検出された直線上の点におけるDepth値を補正する。ここで、補正用関数CFは、x座標を変数とする一次関数である。したがって、補正処理部25は、
図4(B)に示した直線L1上の座標については、x座標の値を補正用関数CFに代入することにより補正後のDepth値を得ることができる。補正処理部25は、直線L1上のDepth値を、補正後のDepth値に置き換えることにより補正処理を行う。
図3に戻り、補正処理部25は、補正処理を行った結果を含んで得られた三次元情報を、三次元情報3DIとして出力部26に出力する。
【0043】
出力部26は、補正処理部25から三次元情報3DIを取得する。出力部26は、取得した三次元情報3DIに基づき、物体の三次元情報を出力する。出力部26により出力される物体の三次元情報とは、画像取得部21により取得された画像情報と、補正されたDepth値を含むDepth画像とが対応付けられた情報であってもよく、具体的には、抽出された物体の三次元点群データであってもよい。なお、出力部26により出力される情報はこの一例に限定されず、補正後のDepth値を含むものであればよい。
【0044】
次に、
図8及び
図9を参照しながら、本実施形態に係る三次元情報補正方法の一連の流れについて説明する。
【0045】
図8は、実施形態1に係る三次元情報補正方法のうち、補正用関数の算出までの一連の流れについて示すフローチャートである。まず、
図8を参照しながら、補正用関数の算出までの一連の流れについて説明する。
【0046】
(ステップS11)まず、画像取得部21は、イメージセンサ113から可視光画像を取得する。当該ステップを、画像取得ステップ又は画像取得工程と記載する場合がある。また、ToFセンサ114は、ToFセンサ114からDepth画像(ToF画像)を取得する。当該ステップを、Depth画像取得ステップ又はDepth画像取得工程と記載する場合がある。
【0047】
(ステップS12)次に、直線検出部23は、画像取得部21により取得された画像に含まれる1以上の直線を検出する。当該ステップを、直線検出ステップ又は直線検出工程と記載する場合がある。
【0048】
(ステップS13)次に、ステップS13からステップS17において、補正用関数算出部24は、補正用関数を算出する。これらのステップを、補正用関数算出ステップ又は補正用関数算出工程と記載する場合がある。まず、ステップS13において、補正用関数算出部24は、直線検出部23により検出された直線の始点及び終点の座標を結ぶ1次関数式を算出する。当該1次関数は、画像取得部21により取得された画像のx座標と、y座標とを変数として有するものである。
【0049】
(ステップS14)次に、補正用関数算出部24は、直線検出部23により検出された直線の始点(直線開始点)を含む数ポイント分のDepth値をサンプリングし、補正用関数CFの起点となるDepth値を決定する。数ポイントとは、例えば3ポイント程度であってもよい。また、Depth値の決定方法には、所定の統計演算が用いられてもよく、例えば平均値により決定されてもよい。
【0050】
(ステップS15)更に、補正用関数算出部24は、直線検出部23により検出された直線の終点(直線終了点)を含む数ポイント分のDepth値をサンプリングし、補正用関数CFの終点となるDepth値を決定する。数ポイントとは、例えば3ポイント程度であってもよい。また、Depth値の決定方法には、所定の統計演算が用いられてもよく、例えば平均値により決定されてもよい。
【0051】
(ステップS16)次に、補正用関数算出部24は、ステップS14で決定された補正用関数CFの起点となる点と、ステップS15で決定された補正用関数CFの終点となる点とを結ぶ関数を算出する。算出された関数は、例えば一次関数であり、補正用関数CFである。補正用関数CFは、画像取得部21により取得された画像のx座標と、Depth値とを変数として有するものである。
【0052】
(ステップS17)上述したステップS13からステップS16により、1つの直線についての補正用関数CFを算出することができる。ステップS12により複数の直線が検出された場合、補正用関数算出部24は、検出された複数の直線全てについて補正用関数CFを算出する。補正用関数算出部24は、全ての直線についての算出が完了した場合(すなわち、ステップS17;YES)、
図9を参照しながら後述する補正処理に進む。補正用関数算出部24は、全ての直線についての算出が完了していない場合(すなわち、ステップS17;NO)、処理をステップS13に進め、次の直線についての補正用関数CFを算出する。なお、直線検出部23により検出された直線の全てについて補正対象とする必要はなく、直線検出部23により検出された直線のうち、所定の方法により特定された1以上の直線に基づき後述の補正処理が行われてもよい。
【0053】
図9は、実施形態1に係る三次元情報補正方法のうち、補正処理の一連の流れについて示すフローチャートである。次に、
図9を参照しながら、補正処理部25により行われる補正処理の一連の流れについて説明する。
図9を参照ししながら説明する一連の処理を、補正処理ステップ又は補正処理工程と記載する場合がある。
【0054】
(ステップS31)まず、補正処理部25は、補正を行おうとしている座標のうちx座標がx1≦x≦x2であるか否かを判定する。x1及びx2は、それぞれ補正用関数CFの線分の両端のx座標である。補正処理部25は、x1≦x≦x2の条件を満たす場合(すなわち、ステップS31;YES)、処理をステップS32に進める。また、補正処理部25は、x1≦x≦x2の条件を満たさない場合(すなわち、ステップS31;NO)、処理をステップS33に進める。
【0055】
(ステップS32)次に、補正処理部25は、対象となる座標におけるDepth値を書き換える。具体的には、補正処理部25は、対象となる座標のx座標を補正用関数CFに代入することによりDepth値を得て、対象となる座標におけるDepth値を、得られたDepth値に置き換える。
【0056】
(ステップS33)この場合、補正処理部25は、対象となる座標におけるDepth値を書き換えず、処理をステップS34に進める。
【0057】
(ステップS34)次に、補正処理部25は、直線検出部23により検出された直線上における全てのDepth値についての補正が完了したか否かを判定する。補正処理部25は、全てのDepth値についての補正が完了した場合(すなわち、ステップS34;YES)、処理を終了する。また、補正処理部25は、全てのDepth値についての補正が完了していない場合(すなわち、ステップS34;NO)、処理をステップS31に進め、引き続き処理を行う。
【0058】
なお、直線検出部23により検出された直線が複数であり、複数の直線それぞれに基づいて補正処理を行う場合、直線の数に応じて、ステップS31からステップS34を繰り返し行ってもよい。
【0059】
次に、実施形態1の変形例について説明する。実施形態1の変形例においては、画像取得部21により取得される画像に加えて、又は代えて、偏向画像が用いられる点において上述した実施形態とは異なる。実施形態1の変形例に係る三次元情報補正装置20は、画像取得部21により取得される画像に加えて、又は代えて、偏向画像を取得する。三次元情報補正装置20により取得される偏向画像とは、偏向センサにより取得された偏向度に応じて彩色された画像であるということもできる。すなわち、実施形態1の変形例に係る三次元情報補正装置20により取得される画像とは、偏向センサにより取得された偏向度に応じて彩色された画像であるということもできる。
【0060】
図10は、実施形態1の変更例に係る三次元情報補正装置により取得される偏向画像の一例を示す図である。図示するように、偏向画像によれば、画像に含まれる直線を検出することが容易である。直線検出部23は、このような偏向画像に基づき直線を検出することにより、より正確に、画像に含まれる直線部分を検出することが可能となる。
【0061】
[実施形態1のまとめ]
以上説明した実施形態によれば、三次元情報補正装置20は、画像取得部21を備えることにより対象物を撮像した画像を取得し、直線検出部23を備えることにより取得した画像に含まれる直線部分を検出し、Depth画像取得部22を備えることにより対象物までの距離情報であるDepth値であって、二次元座標系の各座標における複数のDepth値を含むDepth画像を取得し、補正用関数算出部24を備えることにより取得されたDepth値のうち直線検出部23により検出された直線上の点におけるDepth値を補正するための関数であって当該直線上の点におけるDepth値と画像の座標との関係を示す関数である補正用関数CFを算出し、補正処理部25を備えることにより算出された補正用関数CFを用いて取得されたDepth値のうち直線検出部23により検出された直線上の点におけるDepth値を補正する。すなわち、本実施形態によれば、画像中に含まれる直線部分を検出し、検出した直線上におけるDepth値を補正する。したがって、本実施形態によれば、本来直線である部分のDepth値は、ノイズが除去され、直線となるため、自然な三次元情報を生成することができる。よって、本実施形態によれば、対象物の三次元情報を忠実に再現することができる。
【0062】
また、以上説明した実施形態によれば、補正用関数算出部24は、Depth画像取得部22により取得されたDepth値のうち、直線検出部23により検出された直線上の複数の点(例えば3点)におけるDepth値に基づき、補正用関数CFを算出するための2つの点を決定し、決定した2つの点を通る一次関数を補正用関数CFとする。すなわち、補正用関数算出部24によれば、補正用関数CFの始点と終点とを決定するため、複数のDepth値を用いる。ここで、両端それぞれ1点ずつのDepth値に基づいて補正用関数CFを算出すると、両端の点にノイズが含まれているような場合に、補正用関数CFが大きく外れたものとなってしまう場合がある。したがって、本実施形態によれば、複数の点に基づいて補正用関数CFの始点と終点とを決定することにより、補正用関数CFが実際のDepth値と大きく外れないようにすることができる。
【0063】
また、以上説明した実施形態によれば、画像取得部21により取得される画像とは、可視光画像である。したがって、本実施形態によれば、可視光画像と、Depth値とにもとづき、対象物の三次元情報(例えば、三次元点群データ)を生成することができる。また、この場合、直線を検出するための画像(例えば偏向画像等)を必要としないため、直線を検出するための画像を取得する構成(例えば偏向カメラ等)を用いることがなく、装置を小型化することができる。
【0064】
また、以上説明した実施形態によれば、画像取得部21により取得される画像には、偏向センサにより取得された偏向度に応じて彩色された画像(すなわち偏向画像)が含まれる。また、直線検出部23は、当該偏向画像に基づいて直線部分を検出する。偏向画像によれば、可視光画像に比べて容易に直線部分を検出することができる。したがって、本実施形態によれば、容易に、精度よく、直線部分を検出することができる。
【0065】
[実施形態2]
次に、
図11から
図16を参照しながら、実施形態2について説明する。実施形態1においては、画像中に含まれる直線部分のDepth値を補正する場合の一例について説明した。画像中に含まれる直線部分のノイズを排除し、直線部分を自然なDepth値に補正することにより、自然な三次元情報を生成することができ、対象物の三次元情報を忠実に再現することができる。しかしながら直線部分が自然なDepth値となった場合であっても、直線部分で囲まれた面部分の形状にはノイズが重畳しており、対象物の三次元的な形状全体を観測すると不自然な形状となってしまう場合がある。そこで、実施形態2においては、画像中に含まれる面部分のDepth値を補正する点において、第1の実施形態とは異なる。
【0066】
図11は、実施形態2に係る三次元情報補正装置の機能構成の一例を示す機能構成図である。同図を参照しながら、実施形態2に係る三次元情報補正装置20Aについて説明する。三次元情報補正装置20Aは、面検出部27を備える点において、三次元情報補正装置20とは異なる。三次元情報補正装置20Aの説明において、三次元情報補正装置20と共通の構成については共通の符号を付すことにより説明を省略する場合がある。
【0067】
面検出部27は、直線検出部23から直線情報LIを取得する。実施形態2に係る直線検出部23は、画像取得部21により取得される画像に含まれる複数の直線部分を検出し、直線情報LIには、検出された複数の直線部分に関する情報が含まれているものとする。まず、面検出部27は、取得した直線情報LIに含まれる複数の直線部分の交点を検出する。次に、面検出部27は、検出した交点の座標に基づき、画像に含まれる面を検出する。例えば、面検出部27は、4つの直線が交わることにより閉じた面を形成しているような場合には、四辺形の面が存在すると検出する。なお、四辺形を構成するための4つの辺は、全てが交わっている必要はなく、少なくとも2つの直線が交わっていればよい。また、面検出部27は、直線の延長線が交わっていることにより面を検出してもよい。面検出部27は、検出した面に関する情報を、面情報SIとして補正用関数算出部24に出力する。検出した面に関する情報とは、例えば、面を構成する複数の直線についての情報等であってもよい。面検出部27は、複数の面を検出し、複数の面に関する情報を面情報SIとして出力してもよい。
図10は、実施形態1の変更例に係る三次元情報補正装置により取得される偏向画像の一例を示す図である。図示するように、偏向画像によれば、画像に含まれる面を検出することが容易である。面検出部27は、このような偏向画像に基づき面を検出することにより、より正確に、画像に含まれる面部分を検出することが可能となる。
【0068】
図12は、実施形態2に係る面検出処理の一例について説明するための図である。同図を参照しながら、面検出部27により行われる面検出処理の一例について説明する。図示するように、直線L1と直線L2とが、交点Pにおいて交わっている。そこで、面検出部27は、直線L1と直線L2により囲まれる面である面SFを、面として検出する。なお、面検出部27は、面SFの検出のために、直線L1と直線L4との交点や、直線L3と直線L4との交点等を更に用いてもよい。また、面検出部27は、面SFの検出のために、直線L2の延長線と直線L3との交点を更に用いてもよい。なお、図示する一例において面検出部27は画像から1つの面を検出しているが、この一例に限定されず、面検出部27は
図12に示すような画像から複数の面を検出してもよい。
【0069】
図11に戻り、補正用関数算出部24は、直線検出部23から直線情報LIを取得し、面検出部27から面情報SIを取得する。実施形態2に係る補正用関数算出部24は、面を構成する1の直線を起点とし、特定の方向に延びる複数の補正用関数CFを算出する。特定の方向とは、例えば当該直線と交差する直線の方向であってもよい。ここで、補正用関数算出部24により算出された複数の補正用関数CFにより、面に含まれる画素の全てがカバーされるようにする。例えば、
図12に示す一例においては、直線L1上の1点を起点とし、直線L1と交差する直線である直線L2と並行な方向に延びる直線を補正用関数CFとする。補正用関数算出部24は、直線L1上の点を隣接する点にずらしていき、複数の補正用関数CFを検出する。すなわち実施形態2に係る補正用関数CFとは、換言すれば、Depth画像取得部22により取得されたDepth値のうち、検出された面上の点におけるDepth値を補正するための関数である。また、実施形態2に係る補正用関数CFとは、当該面を構成する画素を含む直線であって特定の方向に沿った直線上の点におけるDepth値と、画像の座標との関係を示す関数である。補正用関数算出部24は、算出した複数の補正用関数CFに関する情報を補正処理部25に出力する。
【0070】
補正処理部25は、補正用関数算出部24から、複数の補正用関数CFに関する情報を取得する。補正処理部25は、直線検出部23により検出された複数の直線のうち、特定の直線上の点を始点とし、特定の方向に沿った直線上の各座標について、補正用関数算出部24から取得した補正用関数CFを用いて、Depth値を補正する。補正処理部25は、複数の補正用関数それぞれに基づいて、Depth値の補正を行うことにより、面全体の補正を行っていく。補正処理部25は、補正処理を行った結果を含んで得られた三次元情報を、三次元情報3DIとして出力部26に出力する。
【0071】
ここで、画像中に含まれる面は、必ずしも平坦な面である場合に限られず、例えば面上には凹凸が存在する場合がある。面上に凹凸が存在する場合、当該凹凸部分を無視して補正処理をしてしまうと、当該凹凸部分が失われてしまい、正確な三次元情報を生成することができない場合がある。そこで、本実施形態においては、凹凸の有無を画像の輝度情報等に基づき判断しながら補正処理を行うことにより、凹凸部分が失われてしまうことを抑止する。
【0072】
図13は、実施形態2に係る三次元情報補正について、面上に存在する凹凸を避けるための処理について説明するための図である。同図を参照しながら、面上に存在する凹凸を避けるための処理について説明する。同図には、補正を行う方向を矢印で示す。それぞれの矢印は、それぞれ補正用関数CFの一例を示しているということもできる。図示するように、面の中心部分には、L字を有する突起形状が存在する。この突起部分を含めて補正処理をしてしまうと、当該突起部分が失われてしまい、正確な三次元情報を生成することができない。そこで、実施形態2に係る三次元情報補正方法においては、補正用関数CFに沿った補正処理において、隣接する画素の輝度情報を比較することにより、当該輝度情報の差分が所定値以上であれば、凹凸部分が存在すると判定し、当該補正用関数CFに基づく処理を停止する。処理が停止した後は、直線検出部23により検出された直線上における次の点を始点とする補正用関数CFに基づいて、再び補正処理を行っていく。
【0073】
なお、このように、凹凸部分を避ける処理を行うことにより、補正処理が行われなかった部分が影のように残ってしまうことが想定される。しかしながら、面を構成する直線部分のうち、異なる直線を始点として、新たに補正用関数CFを算出し、再度補正処理を行うことにより、突起部分が存在する位置に対して異なる方向から補正処理を行うことができる。突起部分が存在する位置に対して異なる方向から補正処理を行うことにより、
図13に示すような突起部分が存在する場合であっても、当該突起部分を囲む全ての面部分について補正処理を行うことができる。図示する一例では、面は4つの直線から構成されるため、4つの直線それぞれを始点とする複数の補正用関数CFを算出し、4つの直線それぞれを始点として補正処理を行うことにより、突起部分を囲む全ての部分について補正処理を行うことができる。また、4つの直線それぞれを始点として補正処理を行う一例に代えて、対向する2つの直線それぞれを始点とする補正処理を行うことにより、処理時間を軽減することができる。
【0074】
図14は、実施形態2に係る三次元情報補正について、面上に存在する凹凸を避けるための処理の一例について示すフローチャートである。同図を参照しながら、面上に存在する凹凸を避けるための処理の一例について説明する。
【0075】
(ステップS51)まず、不図示の前処理部は、前処理として、Depth画像取得部22により取得されたDepth画像全体を平坦化する。当該平坦化処理とは、Depth値の平均値等に基づいて、ノイズと考えられるDepth値を除去する処理であってもよい。
【0076】
(ステップS52)次に、補正処理部25は、隣接する画素の輝度レベルを比較する。隣接する画素とは、補正対象である座標における画素と、当該画素に隣接する座標における画素であってもよい。隣接する方向は、補正用関数CFの直線方向であってもよい。
【0077】
(ステップS53)次に、補正処理部25は、輝度レベルの比較を行った結果、差分が所定の範囲内であるか否かを判定する。所定の範囲については、面に含まれる画素の輝度値を統計演算した結果に基づいて決定されてもよい。補正処理部25は、差分が所定の範囲内である場合(すなわち、ステップS53;YES)、処理をステップS54に進める。また、補正処理部25は、差分が所定の範囲内でない場合(すなわち、ステップS53;NO)、処理をステップS55に進める。
【0078】
(ステップS54)差分が所定の範囲内である場合とは、突起物等の凹凸部分が存在していない場合であるため、補正処理部25は、補正用関数CFに対象とする座標におけるx座標を代入することによりDepth値の補正を行う。すなわち、補正処理部25は、画像取得部21により取得される画像に基づき、検出された面における隣接する画素値が所定の範囲内である場合においてDepth値の補正を行う。
【0079】
(ステップS55)差分が所定の範囲内でない場合とは、突起物等の凹凸部分が存在している場合であるため、補正処理部25は、補正用関数CFに対象とする座標における補正処理を行わない。すなわち、補正処理部25は、画像取得部21により取得される画像に基づき、検出された面における隣接する画素値が所定の範囲内でない場合においてDepth値の補正を行わない。補正処理部25は、Depth値の補正を行わない場合、当該補正用関数CFに基づく処理を終了し、当該補正用関数CFの始点に隣接する点を始点とする新たな補正用関数CFに基づき、処理を再開する。
【0080】
(ステップS56)次に、補正処理部25は、補正用関数CF上の全ての点について補正を行ったか否かを判定する。補正処理部25は、補正用関数CF上の全ての点について補正を行った場合(すなわち、ステップS56;YES)、処理をステップS57に進める。補正処理部25は、補正用関数CF上の全ての点について補正を行っていない場合(すなわち、ステップS56;NO)、処理をステップS52に進め、補正用関数CF上の全ての点について補正を行うまで、ステップS52からステップS54までの処理を繰り返す。
【0081】
(ステップS57)補正用関数CF上の全ての点について補正が終わった場合、補正処理部25は、直線検出部23により検出された直線上における全ての点を始点として、それぞれの補正用関数CFに基づいた補正処理を行ったか否かを判定する。補正処理部25は、直線検出部23により検出された直線上における全ての点を始点としてそれぞれの補正用関数CFに基づいた補正処理を行った場合(すなわち、ステップS57;YES)、処理を終了する。補正処理部25は、直線検出部23により検出された直線上における全ての点を始点としてそれぞれの補正用関数CFに基づいた補正処理を行っていない場合(すなわち、ステップS57;NO)、処理をステップS52に進め、当該直線上において隣接する点を始点とする補正用関数CFに基づき、再度処理を行う。
【0082】
上述した一例においては、直線検出部23により検出された特定の直線と交差する直線の方向に延びる補正用関数CFを用いる場合の一例について説明した。このような方向に延びる補正用関数CFは、面の方向に沿っているため、精度よく補正することができる。しかしながら、画素の並び方向と、補正用関数CFの方向とが異なるため、計算量が多くなってしまうといった欠点があった。そこで、
図15及び
図16を参照しながら、計算量を低減することが可能な方法の一例について説明する。
【0083】
図15は、実施形態2に係る三次元情報補正について、水平方向に補正する場合の一例について説明するための図である。この場合、補正処理部25が補正を行う特定の方向とは、画像取得部21により取得される画像の座標軸方向である。
図15(A)は、直線L1を始点として、水平方向に補正する場合の一例について示す。同図に示す矢印方向に補正を行っていくことにより、計算量を低減することができる。しかしながら直線L1を始点として水平方向に補正する場合、面の半分程度しか補正を行うことができない。そこで、補正処理部25は、更に
図15(B)に示すように直線L4を始点として水平方向に補正することにより、面全体についての補正を行う。なお、直線L1及び直線L4を始点として補正を行う場合であっても、面上に凹凸がある場合は影のように補正されない領域が残されてしまう。そこで、補正処理部25は、更に直線L2及び直線L3のそれぞれを始点として水平方向に補正することにより、面上の凹凸がある場合であっても面全体についての補正を行うことができるようになる。なお、直線L1及び直線L4を始点とする場合は左方向から右方向へ、直線L2及び直線L3を始点とする場合は右方向から左方向へ補正を行っていく。
【0084】
図16は、実施形態2に係る三次元情報補正について、垂直方向に補正する場合の一例について説明するための図である。
図16(A)は、直線L1を始点として、垂直方向に補正する場合の一例について示す。同図に示す矢印方向に補正を行っていくことにより、計算量を低減することができる。しかしながら直線L1を始点として垂直方向に補正する場合、面の4分の3程度しか補正を行うことができない。そこで、補正処理部25は、更に
図16(B)に示すように直線L2を始点として垂直方向に補正することにより、面全体についての補正を行う。なお、直線L1及び直線L2を始点として補正を行う場合であっても、面上に凹凸がある場合は影のように補正されない領域が残されてしまう。そこで、補正処理部25は、更に直線L3及び直線L3のそれぞれを始点として垂直方向に補正することにより、面上の凹凸がある場合であっても面全体についての補正を行うことができるようになる。なお、直線L1及び直線L2を始点とする場合は上方向から下方向へ、直線L3及び直線L4を始点とする場合は下方向から上方向へ補正を行っていく。
【0085】
[実施形態2のまとめ]
以上説明した実施形態によれば、直線検出部23は、画像取得部21により取得された画像に含まれる複数の直線を検出する。また、三次元情報補正装置20Aは、面検出部27を更に備えることにより、検出された複数の直線の交点に基づき、画像に含まれる面を検出する。また、三次元情報補正装置20Aにおいて、補正用関数算出部24は、取得されたDepth値のうち、検出された面上の点におけるDepth値を補正するための関数であって、面を構成する画素を含む直線であって特定の方向に沿った直線上の点におけるDepth値と、画像の座標との関係を示す関数を補正用関数として算出する。また、三次元情報補正装置20Aにおいて補正処理部25は、検出された複数の直線のうち、特定の直線上の点を始点とし、特定の方向に沿った直線上の各座標について、補正用関数を用いて、Depth値を補正する。すなわち、三次元情報補正装置20Aによれば、画像に含まれる面を検出し、検出した面を構成する複数の補正用関数を算出し、当該補正用関数を用いて面のDepth値を平坦なものに補正する。したがって、本実施形態によれば、本来、面である部分のDepth値は平坦なものとなるため、自然な三次元情報を生成することができる。よって、本実施形態によれば、対象物の三次元情報を忠実に再現することができる。
【0086】
また、以上説明した実施形態によれば、補正処理部25は、画像取得部21により取得された画像に基づき、面検出部27により検出された面における隣接する画素値が所定の範囲内である場合においてDepth値を補正し、所定の範囲内でない場合においてDepth値を補正しない。すなわち、三次元情報補正装置20Aによれば、面上における凹凸の有無を検出し、凹凸が存在する場合には、補正を行わない。したがって、本実施形態によれば、凹凸が存在する場合には、当該凹凸部分を平坦にならしてしまうことなく、凹凸部分を残したまま、面部分を平坦に補正することができる。よって、本実施形態によれば、対象物の三次元情報を忠実に再現することができる。
【0087】
また、以上説明した実施形態によれば、補正処理部25により補正が行われる特定の方向とは、直線検出部23により検出された特定の直線と交差する直線の方向である。すなわち、補正処理部25は、検出された面の方向に沿って補正を行っていく。本実施形態によれば、面の方向に沿って補正を行うため、より自然なDepth値に補正することができる。よって、本実施形態によれば、対象物の三次元情報を忠実に再現することができる。
【0088】
また、以上説明した実施形態によれば、補正処理部25により補正が行われる特定の方向とは、画像取得部21により取得された画像の座標軸方向である。座標軸方向とは、例えば
図15を参照しながら説明したような水平方向であってもよいし、
図16を参照しながら説明したような垂直方向であってもよい。画像の座標方向に沿って補正を行うことにより、画素方向に沿った補正ができるため、演算量を低減することができる。したがって、本実施形態によれば、高速な処理を行うことができ、三次元情報補正装置20Aがエッジデバイスに用いられるような場合であっても、処理のための時間を短縮することができる。
【0089】
なお、上述した実施形態では、静止画についての三次元情報の抽出処理を行うことを前提として説明を行った。しかしながら本実施形態は静止画の一例に限定されるものではなく、動画に適用されてもよい。本実施形態が動画に適用される場合、各フレームに対して上述したような三次元情報の抽出処理を行ってもよい、また、処理負荷軽減のため、数フレームごとに上述したような三次元情報の抽出処理を行ってもよい。本実施形態を動画に適用することにより、動画においても特定の物体を強調し、他の被写体と容易に区別することが可能となる。
【0090】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。また、上述した各実施形態を適宜組み合わせてもよい。
【符号の説明】
【0091】
1…三次元情報取得システム、10…三次元情報取得装置、110…受光部、112…可視光反射ダイクロイック膜、113…イメージセンサ、114…ToFセンサ、120…照射部、20…三次元情報補正装置、21…画像取得部、22…Depth画像取得部、23…直線検出部、24…補正用関数算出部、25…補正処理部、26…出力部、27…面検出部、BM…照射光、VL…可視光、IL…赤外光、OA…光軸、II…画像情報、DI…Depth画像情報、LI…直線情報、CF…補正用関数、3DI…三次元情報、PI…姿勢情報