(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-22
(45)【発行日】2024-10-30
(54)【発明の名称】イメージ内の座標間の実際距離を算出する方法及び装置
(51)【国際特許分類】
G06T 7/60 20170101AFI20241023BHJP
G01B 11/02 20060101ALI20241023BHJP
G06T 7/00 20170101ALI20241023BHJP
【FI】
G06T7/60 180B
G01B11/02 H
G06T7/00 U
(21)【出願番号】P 2022169083
(22)【出願日】2022-10-21
【審査請求日】2022-10-21
(31)【優先権主張番号】10-2022-0065450
(32)【優先日】2022-05-27
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】519263110
【氏名又は名称】3アイ インコーポレイテッド
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】キム ケン
(72)【発明者】
【氏名】チュン チ ウク
(72)【発明者】
【氏名】サントソ ケヴィン ナサナエル
(72)【発明者】
【氏名】リ ピョン チュ
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2019-194625(JP,A)
【文献】特開2015-070328(JP,A)
【文献】国際公開第2018/029950(WO,A1)
【文献】特開2021-189946(JP,A)
【文献】韓国公開特許第10-2018-0121259(KR,A)
【文献】国際公開第2022/041740(WO,A1)
【文献】特表2018-533098(JP,A)
【文献】特開2010-239515(JP,A)
【文献】特開2008-048266(JP,A)
【文献】韓国公開特許第10-2021-0149658(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
G01B 11/02
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
電子装置によって行われる、イメージ内の座標間の実際距離を算出する方法は、
カメラの内部パラメータ及び前記カメラの姿勢情報に基づいて、前記カメラを介してキャプチャーされたオリジナルイメージに対する正規イメージを生成する動作と、
受信した前記正規イメージ上の第1座標に基づいて、予め設定されたワールド座標系内で前記第1座標に対応する第1ワールド座標を算出する動作と、
受信した前記正規イメージ上の第2座標に基づいて、前記ワールド座標系内で前記第2座標に対応する第2ワールド座標を算出する動作と、
前記第1ワールド座標と前記第2ワールド座標との間の距離を算出する動作と、
を含む方法。
【請求項2】
前記第1座標及び前記第2座標は、前記正規イメージ内の地面上に位置する、請求項1に記載の方法。
【請求項3】
前記第1ワールド座標を算出する動作は、
ユーザから前記正規イメージ上の前記第1座標を受信する動作と、
前記第1座標が受信された場合、前記第1座標に対応する前記ワールド座標系内の前記第1ワールド座標を算出する動作と、
を含み、
前記第1ワールド座標及び前記第2ワールド座標は、前記ワールド座標系内で高さが同一であり、平面位置が異なる座標である、請求項1に記載の方法。
【請求項4】
前記第1座標は、前記正規イメージ内の地面上に位置し、
前記第2座標は、前記正規イメージ内の地面より上方にあり前記地面と平行な仮想平面上に位置する、請求項1に記載の方法。
【請求項5】
前記第2ワールド座標を算出する動作は、
ユーザから地面のシフト入力と共に前記正規イメージ上の参照座標を受信する動作と、
前記
地面のシフト入力及び前記参照座標が受信された場合、前記参照座標に対応する前記ワールド座標系内の参照ワールド座標を算出する動作と、
前記参照ワールド座標に対する高さ情報を受信するためのUIを出力する動作と、
前記UIを介して前記ユーザから高さ情報を示す前記第2座標を受信する動作と、
前記第2座標に対応する前記第2ワールド座標を算出する動作と、
を含み、
前記参照ワールド座標及び前記第2ワールド座標は、前記ワールド座標系内で平面位置が同一であり、高さが異なる座標であり、
前記第2座標が前記地面のシフト入力に関する場合、前記第2座標が前記正規イメージ内の地面より上方にあり前記地面と平行な仮想平面上の位置に対応する、請求項4に記載の方法。
【請求項6】
前記第1座標及び前記第2座標は、前記正規イメージ内の地面より上方にあり前記地面と平行な仮想平面上にそれぞれ位置する、請求項1に記載の方法。
【請求項7】
前記正規イメージに対する消失点を決定する動作と、
前記消失点に基づいて前記正規イメージ内の地面を決定する動作と、
をさらに含む、請求項1に記載の方法。
【請求項8】
受信した前記正規イメージ上の第3座標に基づいて、前記ワールド座標系内で前記第3座標に対応する第3ワールド座標を算出する動作と、
前記第1ワールド座標、前記第2ワールド座標、及び前記第3ワールド座標によって形成される幾何学的な構造に対する面積を算出する動作と、
をさらに含む、請求項1に記載の方法。
【請求項9】
受信した前記正規イメージ上の第3座標及び第4座標に基づいて、前記ワールド座標系内で前記第3座標及び前記第4座標に対応する第3ワールド座標及び第4ワールド座標を算出する動作と、
前記第1ワールド座標、前記第2ワールド座標、前記第3ワールド座標、及び前記第4ワールド座標によって形成される幾何学的な構造に対する体積を算出する動作と、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記オリジナルイメージは、パノラマイメージ又は360度イメージである、請求項1に記載の方法。
【請求項11】
請求項1~請求項10のいずれか一項に記載の方法を行うプログラムを収録したコンピュータで読み出し可能な記録媒体。
【請求項12】
イメージ内の座標間の実際距離を算出する方法を行う電子装置は、
イメージ内の座標間の実際距離を算出するプログラムが記録されたメモリと、
前記プログラムを行うプロセッサと、
を含み、
前記プロセッサは、
カメラの内部パラメータ及び前記カメラの姿勢情報に基づいて、前記カメラを介してキャプチャーされたオリジナルイメージに対する正規イメージを生成する動作と、
受信した前記正規イメージ上の第1座標に基づいて、予め設定されたワールド座標系内で前記第1座標に対応する第1ワールド座標を算出する動作と、
受信した前記正規イメージ上の第2座標に基づいて、前記ワールド座標系内で前記第2座標に対応する第2ワールド座標を算出する動作と、
前記第1ワールド座標と前記第2ワールド座標との間の距離を算出する動作と、
を行う、電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野は、ユーザにイメージを提供する技術に関し、特に、イメージ内の座標間の実際距離を算出する装置及び方法に関する。
【背景技術】
【0002】
3D空間を記録するための最も好ましい方法は、空間を全方向360度の方面に撮影して360度のイメージ形態に格納し、それぞれの位置に対する360度イメージを接続して3Dツアーの形態にする方法である。このような3Dツアーは、仮想現実ビューアー(Virtual Reality viewer;VR viewer)を介して視覚的にユーザが鑑賞できる。但し、3Dツアーは、あくまでもユーザの位置で仮想にイメージを確認する方法であって、実際の長さが事実に反映されているとは見なし難い。したがって、ユーザが3Dツアーを介して反映された空間の実際の長さなどを考慮してインテリア、家具配置などを球状するためには、3Dツアー内で、即ち、360度イメージ内で実際の長さを測定できる方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
一実施形態は、イメージ内の2つの座標間の距離が示す実際距離を算出する方法及び装置を提供することができる。
【課題を解決するための手段】
【0004】
一実施形態に係る、電子装置によって行われる、イメージ内の座標間の実際距離を算出する方法は、カメラの内部パラメータ及び前記カメラの姿勢情報に基づいて、前記カメラを介してキャプチャーされたオリジナルイメージに対する正規イメージを生成する動作と、前記正規イメージ上に受信された第1座標に基づいて、予め設定されたワールド座標系内で前記第1座標に対応する第1ワールド座標を算出する動作と、前記正規イメージ上に受信された第2座標に基づいて、前記ワールド座標系内で前記第2座標に対応する第2ワールド座標を算出する動作と前記第1ワールド座標と前記第2ワールド座標との間の距離を算出する動作とを含む。
【0005】
前記第1座標及び前記第2座標は、前記正規イメージ内の底面内に位置することができる。
【0006】
前記第1ワールド座標を算出する動作は、ユーザから前記正規イメージ上の前記第1座標を受信する動作と、前記第1座標が受信された場合、前記第1座標に対応する前記ワールド座標系内の前記第1ワールド座標を算出する動作とを含み、前記第1ワールド座標及び前記第2ワールド座標は、前記ワールド座標系内で高さが同一であり、平面位置が異なる座標であってもよい。
【0007】
前記第1座標は、前記正規イメージ内の底面内に位置し、前記第2座標は、前記底面の空中に位置してもよい。
【0008】
前記第2ワールド座標を算出する動作は、ユーザから底面のシフト入力と共に前記正規イメージ上の参照座標を受信する動作と、前記底面のシフト入力及び前記参照座標が受信された場合、前記参照座標に対応する前記ワールド座標系内の参照ワールド座標を算出する動作と、前記参照ワールド座標に対する高さ情報を受信するためのUIを出力する動作と、前記UIを介して前記ユーザから高さ情報を示す前記第2座標を受信する動作と、前記第2座標に対応する前記第2ワールド座標を算出する動作とを含み、前記参照ワールド座標及び前記第2ワールド座標は、前記ワールド座標系内で平面位置が同一であり、高さが異なる座標であってもよい。
【0009】
前記第1座標及び前記第2座標は、前記正規イメージ内の底面の空中にそれぞれ位置してもよい。
【0010】
前記正規イメージに対する消失点を決定する動作と、前記消失点に基づいて前記正規イメージ内の底面を決定する動作とをさらに含むことができる。
【0011】
前記方法は、前記正規イメージ上に受信された第3座標に基づいて、前記ワールド座標系内で前記第3座標に対応する第3ワールド座標を算出する動作と、前記第1ワールド座標、前記第2ワールド座標、及び前記第3ワールド座標によって形成される幾何学的な構造に対する面積を算出する動作とをさらに含むことができる。
【0012】
前記方法は、前記正規イメージ上に受信された第3座標及び第4座標に基づいて、前記ワールド座標系内で前記第3座標及び前記第4座標に対応する第3ワールド座標及び第4ワールド座標を算出する動作と、前記第1ワールド座標、前記第2ワールド座標、前記第3ワールド座標、及び前記第4ワールド座標によって形成される幾何学的な構造に対する体積を算出する動作とをさらに含むことができる。
【0013】
前記オリジナルイメージは、パノラマイメージ又は360度イメージであってもよい。
【0014】
一実施形態に係るイメージ内の座標間の実際距離を算出する方法を行う電子装置は、イメージ内の座標間の実際距離を算出するプログラムが記録されたメモリと、前記プログラムを行うプロセッサとを含み、前記プロセッサは、カメラの内部パラメータ及び前記カメラの姿勢情報に基づいて、前記カメラを介してキャプチャーされたオリジナルイメージに対する正規イメージを生成する動作と、前記正規イメージ上に受信された第1座標に基づいて、予め設定されたワールド座標系内で前記第1座標に対応する第1ワールド座標を算出する動作と、前記正規イメージ上に受信された第2座標に基づいて、前記ワールド座標系内で前記第2座標に対応する第2ワールド座標を算出する動作と、前記第1ワールド座標と前記第2ワールド座標との間の距離を算出する動作とを行うことができる。
【発明の効果】
【0015】
本発明によると、イメージ内の2つの座標間の距離が示す実際距離を算出する方法及び装置が提供されることができる。
【図面の簡単な説明】
【0016】
【
図1】一例に係るカメラのレンズの種類に応じて生成されたイメージを示す。
【
図2】一例に係るワールド座標系上のポイント及びカメラのイメージ平面に投影されたポイントの座標を示す。
【
図3】一例に係る地面上に垂直方向に位置するオブジェクトの高さを算出する方法を示す。
【
図5】一実施形態に係るイメージ内の座標間の実際距離を算出する方法のフローチャートである。
【
図6】一例に係る正規イメージ内の底面を決定する方法のフローチャートである。
【
図7】一例に係る正規イメージを位置するオブジェクトを図示する。
【
図8】一例に係る正規イメージの底面内に位置する座標のワールド座標を算出する方法のフローチャートである。
【
図9】一例に係る正規イメージの底面の空中に位置する座標のワールド座標の算出方法のフローチャートである。
【
図10】一例に係る正規イメージでユーザの入力が発生した一例を示す。
【
図11】
図10の一例におけるユーザの入力方法により座標を算出する方法を示す。
【
図12】他の一例に係る正規イメージの底面の空中に位置する座標のワールド座標を算出する方法のフローチャートである。
【
図13】一例に係る正規イメージでユーザの入力が発生した一例を示す。
【
図14】
図13の一例におけるユーザの入力方法により座標を算出する方法を示す。
【
図15】更なる一例に係る正規イメージの底面の空中に位置する座標のワールド座標を算出する方法のフローチャートである。
図15をさらに参照して第2ワールド座標Pv2の算出方法について説明する。
【発明を実施するための形態】
【0017】
以下、添付の図面を参照して実施形態について詳説する。しかし、本明細書で開示する特定の構造的又は機能的な説明は単に実施形態を説明するための目的として例示したものであり、実施形態は様々な異なる形態で実施され、本発明は本明細書で説明した実施形態に限定されるものではない。実施形態に対する全ての変更、均等物ないし代替物が権利範囲に含まれているものと理解されなければならない。
【0018】
実施形態で用いられる用語は、単に、説明を目的として使用されたものであり、限定しようとする意図として解釈されることはない。単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0019】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0020】
また、添付図面を参照して説明することにおいて、図面符号に関係なく、同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略することにする。実施形態の説明において、関連する公知技術に対する具体的な説明が実施形態の要旨を不要に曖昧にするものと判断される場合、その詳細な説明を省略する。
【0021】
図1は、一例に係るカメラのレンズの種類に応じて生成されたイメージを示す。
【0022】
一実施形態によれば、カメラ110を用いて場面120が撮影される場合、カメラ110のレンズの種類に応じて生成されるイメージが異なる。例えば、ピン・オール(pin hole)レンズを用いて生成されたピン・ホールイメージ130は、場面120を歪曲することなく示すことができる。他の例として、魚眼レンズのような広角レンズを用いて生成された魚眼レンズイメージ140は、場面120を歪曲して示す。例えば、広角カメラのレンズ(例えば、魚眼レンズ)を用いてイメージが撮影される場合、撮影されたイメージ上にはレンズの中心を基準にして近い箇所を通過する光線よりも遠い箇所を通過する光線がさらに多く曲がる現像により発生する放射歪曲と、カメラの製造過程でレンズとイメージ平面が平行をなすことができずに発生する接線歪曲が示されることがある。このようなレンズで撮影されたオリジナルイメージを用いて後処理を行うためには、レンズによる歪曲影響をオリジナルイメージ内において先に除去しなければならない。例えば、レンズによる歪曲影響が除去されたイメージは、正規イメージのように命名されてもよい。正規イメージをカメラ座標系で表現した後、カメラ座標系及びワールド座標系をマッチングすることにより正規イメージ内に示されるピクセル(又は、ポイント)の座標をワールド座標系に変換することができる。
【0023】
以下、
図2を参照してカメラ座標系及びワールド座標系をマッチングする方法について詳細に説明される。
【0024】
図2は、一例に係るワールド座標系上のポイント及びカメラのイメージ平面に投影されたポイントの座標を図示する。
【0025】
一実施形態によれば、カメラ110の内部パラメータ(intrinsic parameter)及びカメラ110の姿勢情報に基づいて、オリジナルイメージに対応する正規イメージ220を生成することができる。正規イメージ220は、カメラ座標系内のイメージ平面上に配置されてもよい。例えば、内部パラメータは、レンズの焦点距離(focal length)を示すfx及びfyを含み、主点(principal point)を示すcx及びcyを含んでもよい。例えば、姿勢情報は、外部パラメータ(extrinsic parameter)であってもよく、回転情報(rotation information)及び平行移動情報(translation information)を含んでもよい。
【0026】
一実施形態によれば、3次元空間上のターゲットポイントP232にイメージ平面上のターゲットイメージングポイントp222が定義される。ターゲットポイントP232に対するカメラ座標系の座標がPc、ワールド座標系の座標がPwに表現される。PcとPw間の変換関係は、下記の数式(1)に表現されることができる。
【0027】
【0028】
数式(1)において、Rはカメラ110の回転情報であり、tはカメラ110の平行移動情報を示す。
【0029】
カメラ110の内部パラメータによるイメージ歪曲の影響を除去するために、ピクセル座標を正規座標に変換しなければならない。例えば、ピクセル座標と正規座標との間の変換関係は下記の数式(2)に表現されることができる。
【0030】
【0031】
ピクセル座標系上のターゲットピクセルの座標(x、y)が正規座標系上のターゲットポイントの座標(u、v)に変換される。正規イメージのイメージ平面は、カメラの原点で焦点距離が1である平面であるため、正規イメージ上のターゲットポイントの座標(u、v)は、カメラ座標系のターゲットポイントの座標(u、v、1)に対応する。カメラ座標系のターゲットイメージングポイントの座標(u、v、1)は、pc=(u、v、1)に表現されることができる。
【0032】
次に、カメラの原点210とpc222を連結した直線が底面に接するポイントを求めると、所望する3次元空間上のターゲットポイントP232の地面座標が算出される。ターゲットポイントP232の地面座標を算出するためには、カメラ座標系ではないワールド座標系で算出しなければならない。カメラの原点210のカメラ座標系の座標がCc、カメラの原点210のワールド座標系の座標がCw、pcに対応するワールド座標系の座標がpwに表現される場合、pw及びCwは、下記の数式(3)を介して算出されることができる。カメラ座標系のカメラの原点の座標は(0,0,0)である。即ち、Cc=(0,0,0)である。
【0033】
【0034】
その次に、ワールド座標系のCw及びpwを連結する直線が地面に接するポイントが算出される。Cw及びpwを連結する直線上の任意のポイントPは、下記の数式(4)に表現されることができる。
【0035】
【0036】
ワールド座標系で地面はz軸が0であるため、
のz座標が0になるようにk値が算出されることができる。算出されたk値を数式(4)に代入する場合、ターゲットポイントPの地面座標が算出されることができる。例えば、ターゲットポイントPの地面座標は、ワールド座標系をどのように設定値するかに応じて変わり得る。
【0037】
前記の過程を介してオリジナルイメージ又は正規イメージ内のターゲットピクセルの座標に対応するワールド座標系のターゲット座標が算出されることができる。ワールド座標系は、実際の距離を表現することができるため、ワールド座標系の2つの座標間の距離を算出することで、イメージ内の2つの座標間の距離に対応する実際距離が算出され得る。
【0038】
図3は、一例に係る地面上に垂直方向に位置するオブジェクトの高さを算出する方法を示す。
【0039】
図2を参照して上述した距離算出方式を使用する場合、イメージ上に示されるオブジェクトの実際の高さも算出され得る。地面上の第1ポイント301からh
camだけ離れた第2ポイント302にカメラが位置している場合、第1ポイント301及びオブジェクトが位置している地面のポイント303間の距離d
1、及び第1ポイント301及び第2ポイント302とオブジェクトの最上端を連結する直線と地面が接するポイント305間の距離d
2が取得された場合、オブジェクトの実際の高さであるh
objはh
cam×(d
2-d
1)/d
2に算出されることができる。
【0040】
一実施形態によれば、前記の方式を用いたオブジェクトの実際の高さ測定方式は、ユーザから受信したイメージ内の地面又は底面を示す第1座標及びイメージ内のオブジェクトの最上端を示す第2座標に基づいてオブジェクトの高さを算出できるが、場合に応じて、オブジェクトの高さではない、第1座標及び第2座標に対応する底面の座標(即ち、第2座標が底面に投影された地点)の間の距離が算出されてもよい。
【0041】
前記の問題点を解消するために、新しい座標の間の距離を測定する方式が導入される。以下で
図4~
図9を参照してイメージ内の座標間の実際距離を算出する方法が詳細に説明される。
【0042】
図4は、一実施形態に係る、電子装置の構成図である。
【0043】
電子装置400は、通信部410、プロセッサ420及びメモリ430を含む。電子装置400は、PC(personal computer)、モバイル装置、スマートフォンであってもよく、記載された実施形態に限定されない。
【0044】
通信部410は、プロセッサ420及びメモリ430に接続されてデータを送受信する。通信部410は、外部の他の装置と接続してデータを送受信することができる。以下、「A」を送受信するという表現は、「Aを示す情報(information)又はデータ」を送受信することを示す。
【0045】
通信部410は、電子装置400内の回路網に実現することができる。例えば、通信部410は、内部バス(internal bus)及び外部バス(external bus)を含んでもよい。異なる例として、通信部410は、電子装置400と外部の装置を接続する要素であってもよい。通信部410は、インターフェースであってもよい。通信部410は、外部の装置からデータを受信し、プロセッサ420及びメモリ430にデータを送信することができる。
【0046】
プロセッサ420は、通信部410が受信したデータ及びメモリ430に格納されたデータを処理する。「プロセッサ」は、目的とする動作(desired operations)を実行させるための物理的な構造を有する回路を有するハードウェアで具現されたデータ処理装置であってもよい。例えば、目的とする動作は、プログラムに含まれたコード(code)又は命令(instructions)を含んでもよい。例えば、ハードウェアで具現されたデータ処理装置は、マイクロプロセッサ(microprocessor)、中央処理装置(central processing unit)、プロセッサコア(processor core)、マルチ-コアプロセッサ(multi-core processor)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)を含んでもよい。
【0047】
プロセッサ420は、メモリ(例えば、メモリ430)に格納されたコンピュータで読出し可能なコード(例えば、ソフトウェア)及びプロセッサ420によって誘発された命令を実行する。
【0048】
メモリ430は、通信部410が受信したデータ及びプロセッサ420が処理したデータを格納する。例えば、メモリ430は、プログラム(又は、アプリケーション、ソフトウェア)を格納することができる。格納されるプログラムは、イメージ内の座標間の実際の距離を算出できるようにコーディングされ、プロセッサ420により実行可能なシンタックス(syntax)の集合であってもよい。
【0049】
一側面によれば、メモリ430は、1つ以上の揮発性メモリ、不揮発性メモリ、及びRAM(Random Access Memory)、フラッシュメモリ、ハードディスクドライブ、及び光学ディスクドライブを含んでもよい。
【0050】
メモリ430は、電子装置400を動作させる命令語セット(例えば、ソフトウェア)を格納する。電子装置400を動作させる命令語セットは、プロセッサ420によって行われる。
【0051】
通信部410、プロセッサ420及びメモリ430について、以下の
図5~
図9を参照して詳細に説明される。
【0052】
図5は、一実施形態に係る、イメージ内の座標間の実際距離を算出する方法のフローチャートである。
【0053】
以下の動作510~550は、
図4を参照して上述した電子装置400によって行われることができる。
【0054】
動作510において、電子装置400は、オリジナルイメージを取得する。例えば、オリジナルイメージは、カメラを介して生成されたイメージであってもよい。例えば、オリジナルイメージは、パノラマイメージであってもよい。異なる例として、オリジナルイメージは、360度イメージであってもよい。
【0055】
動作520において、電子装置400は、オリジナルイメージを生成したカメラの内部パラメータ及びカメラの姿勢情報に基づいて、カメラにより撮影されたオリジナルイメージに対する正規イメージを生成する。例えば、正規イメージは、オリジナルイメージでカメラのレンズによって歪曲現像が除去されたイメージであり、カメラのイメージ平面上に配置されてもよい。
【0056】
一実施形態によれば、オリジナルイメージに基づいて正規イメージを生成する方法は、
図2を参照して上述した方法を使用することができる。
【0057】
動作530において、電子装置400は、正規イメージ上に受信された第1座標に基づいてワールド座標系内で第1座標に対応する第1ワールド座標を算出する。例えば、ワールド座標系は、予め設定されてもよい。
【0058】
例えば、電子装置400は、正規イメージをユーザに出力し、正規イメージ上の座標を受信することができる。異なる例として、電子装置400は、オリジナルイメージをユーザに出力し、オリジナルイメージ上の座標を受信してもよい。電子装置400は、受信されたオリジナルイメージ上の座標を正規イメージ上の第1座標に変換してもよい。
【0059】
一実施形態によれば、第1座標は、正規イメージ内の底面(又は、地面)内に配置される。即ち、第1座標は底面上に位置する座標であってもよい。
【0060】
異なる一実施形態によれば、第1座標は、正規イメージ内の底面の空中に位置する座標であってもよい。正規イメージ内の底面の空中に位置する座標を受信する方法については、以下の
図9を参照して詳細に説明される。
【0061】
動作540において、電子装置400は、正規イメージ上に受信された第2座標に基づいてワールド座標系内で第2座標に対応する第2ワールド座標を算出する。
【0062】
一実施形態によれば、第2座標は、正規イメージ内の底面内に配置されてもよい。即ち、第2座標は底面上に位置する座標であってもよい。
【0063】
異なる一実施形態によれば、第2座標は、正規イメージ内の底面の空中に位置する座標であってもよい。
【0064】
動作550において、電子装置400は、第1ワールド座標と第2ワールド座標との間の距離を算出する。
【0065】
一実施形態によれば、電子装置400は、算出された実距離を正規イメージ上に出力することができる。例えば、電子装置400は、第1座標及び第2座標を連結する線を出力し、出力された線に関連するように実際距離を出力することができる。
【0066】
一実施形態によれば、動作550が実行された後、以下の動作をさらに行ってもよい。例えば、電子装置400は、正規イメージ上に受信された第3座標に基づいて、ワールド座標系内で第3座標に対応する第3ワールド座標を算出する動作を行う。電子装置400は、第1ワールド座標、第2ワールド座標、及び第3ワールド座標によって形成される幾何学的な構造に対する面積を算出することができる。
【0067】
一実施形態によれば、前記の動作が実行された後、以下の動作をさらに行ってもよい。例えば、電子装置400は、正規イメージ上に受信された第4座標に基づいてワールド座標系内で第4座標に対応する第4ワールド座標を算出する動作を行う。電子装置400は、第1ワールド座標、第2ワールド座標、第3ワールド座標、及び第4ワールド座標によって形成される幾何学的な構造に対する体積を算出することができる。
【0068】
図6は、一例に係る正規イメージ内の底面を決定する方法のフローチャートである。
【0069】
一実施形態によれば、
図5を参照して上述した動作520が実行された後、以下の動作610及び620をさらに行うことができる。
【0070】
動作610において、電子装置400は、正規イメージに対する消失点を決定する。他の実施形態によれば、電子装置400は消失点が示されない場合、カメラの高さに対応する正規イメージ上の高さを決定する。
【0071】
動作620において、電子装置400は、消失点に基づいて正規イメージ内の底面を決定する。例えば、消失点を基準にして2つの領域が区分し、区分された領域中の下の領域が底面に決定される。
【0072】
一実施形態によれば、ユーザが指定した正規イメージ内の第1座標が底面に対応する場合、電子装置400は、第1座標が実際の空間上の底面の一部ポイントに対応するものと決定してもよい。
【0073】
異なる一実施形態によれば、ユーザが指定した正規イメージ内の第1座標が底面に対応しても、第1座標が追加入力(例えば、底面のシフト入力)に関する場合、電子装置400は、第1座標が実際の空間上の底面の空中、即ち、底面と平行な仮想のシフト平面内に位置しているポイントに対応するものと決定することができる。
【0074】
図7は、一例に係る正規イメージに位置するオブジェクトを示す。
【0075】
一実施形態によれば、正規イメージ700はオブジェクト710を含む。例えば、ユーザは、正規イメージ700を介してオブジェクト710の各辺の長さ、オブジェクト710の一面の広さ又はオブジェクト710の体積の算出を希望すると仮定する。
【0076】
一実施形態によれば、ユーザは、オブジェクト710の第1座標711及び第2座標712が示す実際のポイント間の実際距離を算出するために、電子装置400に第1座標711及び第2座標712を入力する。第1座標711及び第2座標712は底面上の座標である。電子装置400は、第1座標711及び第2座標712に対応する実際のポイントに対する第1ワールド座標及び第2ワールド座標を算出し、第1ワールド座標と第2ワールド座標との間の距離を算出することで、第1座標711及び第2座標712が示す実際のポイント間の実際距離を算出することができる。
【0077】
異なる一実施形態によれば、ユーザは、オブジェクト710の第1座標711及び第3座標713が示す実際のポイント間の実際距離を算出するために、電子装置400に第1座標711及び第3座標713を入力する。第3座標713は、底面の空中に位置する座標であってもよい。ユーザは、第3座標713が底面の空中に位置する座標であることを示すために、追加入力(例えば、底面のシフト入力)を電子装置400に入力することができる。追加入力と共に第3座標713が受信された場合、電子装置400は、第3座標713に対応する第3ワールド座標を算出することができる。例えば、第3座標713が示す実際のポイントは、第1座標711が示す実際のポイントからの垂直方向に配置されてもよい。このような場合、第3ワールド座標は、第1ワールド座標とx軸座標及びy軸座標は同一であり、z軸座標のみが異なる。第1ワールド座標及び第3ワールド座標に基づいて、第1座標711及び第3座標713が示す実際のポイント間の実際距離が算出され得る。
【0078】
更なる一実施形態によれば、ユーザは、オブジェクト710の第3座標713及び第4座標714が示す実際のポイント間の実際距離を算出するために、電子装置400に第3座標713及び第4座標714を入力することができる。第3座標713及び第4座標714は、底面の空中に位置する座標であってもよい。追加入力と共に第3座標713及び第4座標714がそれぞれ受信された場合、電子装置400は、第3座標713及び第4座標714に対応する第3ワールド座標及び第4ワールド座標がそれぞれ算出される。第3ワールド座標及び第4ワールド座標に基づいて、第3座標713及び第4座標714が示す実際のポイント間の実際距離を算出することができる。
【0079】
図7を参照してユーザが正規イメージについて座標入力を行う実施形態が説明されたが、これは一例示的なものである。異なる例として、ユーザは、オリジナルイメージに対して座標入力を行ってもよく、電子装置400は、これを正規イメージに切り替えた後、上述した座標算出を行ってもよい。
【0080】
図8は、一例に係る正規イメージの底面内に位置する座標のワールド座標を算出する方法のフローチャートである。
【0081】
一実施形態によれば、
図5を参照して前述の動作530は、下記の動作810及び820を含む。他の実施形態によれば、動作540は、以下の動作810~820を含む。
【0082】
動作810において、電子装置400は、ユーザから正規イメージ上の第1座標を受信する。例えば、電子装置400は、ユーザに正規イメージを提供した場合、ユーザから正規イメージ上の第1座標を直接的に受信することができる。異なる例として、電子装置400は、ユーザにオリジナルイメージを提供した場合、ユーザからオリジナルイメージ上の初期座標を受信し、初期座標を正規イメージ上の座標に変換することで第1座標を受信することができる。受信された正規イメージ上の第1座標は底面内の座標であり得る。
【0083】
動作820において、電子装置400は、第1座標が受信された場合、第1座標に対応するワールド座標系内の第1ワールド座標を算出する。カメラ座標系とワールド座標系が予めマッチングされているため、電子装置400は、カメラ座標系である第1座標をワールド座標系の座標に変更することによって第1ワールド座標を算出することができる。
【0084】
一実施形態によれば、ユーザから受信した正規イメージ上の第1座標及び第2座標が全て底面内に位置している場合(例えば、
図7に示す第1座標711及び第2座標712)、動作810及び820が第1座標及び第2座標に対してそれぞれ行われる。前記の実施形態に対して、ワールド座標系において、z軸が0である第1ワールド座標及び第2ワールド座標が算出されることができる。第1ワールド座標及び第2ワールド座標に基づいて、第1座標及び第2座標が示す実際のポイント間の実際距離が算出され得る。
【0085】
図9は、一例に係る正規イメージの底面の空中に位置する座標のワールド座標を算出する方法のフローチャートである。
【0086】
一実施形態によれば、
図5を参照して上述した動作540は、以下の動作910~950を含む。他の実施形態によれば、動作530は、以下の動作910~950を含む。
【0087】
動作910において、電子装置400は、ユーザから追加入力として底面のシフト入力と共に(又は、底面のシフト入力の後に)正規イメージ上の参照座標を受信する。例えば、ユーザは、参照座標が最終的な入力座標でないことを示すために、追加入力を共に電子装置400に入力する。例えば、追加入力は。キーボードの特定のキー入力(例えば、シフトキー)であってもよい。参照座標は、底面内の座標であってもよい。
【0088】
動作920において、電子装置400は、参照座標に対応するワールド座標系内の参照ワールド座標を算出する。
【0089】
動作930において、電子装置400は、参照ワールド座標に対する高さ情報を受信するためのUI(user interface)を出力する。例えば、UIは、グラフィック効果であってもよい。UIが出力された場合、ユーザは、現在の状態が参照座標に対する高さ情報が入力可能であるという状態を認知することができる。
【0090】
一実施形態によれば、UIは高さ方向にユーザが長さを調節可能に出力される。例えば、UIは、ワールド座標系を基準としてz軸の方向に長さが調節可能であり得る。ユーザは、UIの長さを調節することによって、所望する正規イメージ上の第2座標にUIを位置させ得る。
【0091】
動作940において、電子装置400は、UIを介してユーザから高さ情報を示す第2座標を受信する。ユーザは、正規イメージ上に出力されるUIを介して正規イメージの第2座標を入力することができる。ユーザの所望する第2座標を選択することによって、第2座標が参照座標から垂直方向に位置することを入力する。
【0092】
動作950において、電子装置400は、受信した第2座標に基づいて第2座標に対応する第2ワールド座標を算出する。
【0093】
一実施形態によれば、受信された第2座標に対応する第2ワールド座標のx軸座標及びy軸座標は、参照ワールド座標のx軸座標及びy軸座標とそれぞれ同一であり、第2ワールド座標のz軸座標は、参照ワールド座標のz軸座標と互いに異なってもよい。そのため、電子装置400は、第2ワールド座標を算出するために、第2ワールド座標のx軸座標及びy軸座標を参照ワールド座標のx軸座標及びy軸座標に設定し、第2座標に基づいて第2ワールド座標のz軸座標を算出することができる。
【0094】
動作910~950を介して正規イメージの底面の空中に位置する座標(例えば、第2座標712)に対するワールド座標系のワールド座標が算出されることができる。
【0095】
一実施形態によれば、ユーザから受信した正規イメージの第1座標及び第2座標が全て底面の空中に位置する座標(例えば、第3座標713及び第4座標714)である場合、動作530及び540それぞれに対して動作910~950が行われる。
【0096】
図10は、一例に係る正規イメージでユーザの入力が発生した一例を示す。
図11は、
図10に示す一例におけるユーザの入力方法により座標を算出する方法を示す。
【0097】
一実施形態によれば、
図10に示した例のように、正規イメージ701を介してユーザは距離を測定しようとする2つの点、即ち、2つの座標P1、P2を入力することができる。
【0098】
ユーザが正規イメージ上の第1座標P1を入力すると、電子装置400は、
図11に示した例のように、正規イメージ701の第1座標P1に対応するワールド座標系内の第1ワールド座標Pf1を算出できる。
【0099】
その後、一例として、ユーザが正規イメージ上の第2座標P2を入力すると、電子装置400は、正規イメージ701の第2座標P2に対応するワールド座標系内の第2ワールド座標Pf2を算出する。このような例において、ユーザが底面のシフト入力を入力していない場合であるため、第1ワールド座標Pf1及び第2ワールド座標Pf2の全てが底面上の点となり、二点間の距離dh12は同じ水平面内における距離として算出可能である。
【0100】
異なる例として、ユーザが底面のシフト入力と共に正規イメージ上の第2座標P2を入力する場合、電子装置400は、第1座標P1に垂直な方向に位置する第2座標Pv2を設定することができる。電子装置400は、第1ワールド座標Pf1のx軸座標及びy軸座標とそれぞれ同一であり、z軸座標がdv12だけ上昇された座標を、第2ワールド座標Pv2に設定することができる。この場合、第1ワールド座標Pf1と第2ワールド座標Pv2は、底面に垂直な平面上に存在する。
【0101】
上述した説明において、正規イメージ701における第1座標P1と第2座標P2との間のピクセル距離は同一であるが、そのような同じピクセル距離は、底面のシフト入力の有無に応じてワールド座標系で底面の平面内の距離dh12と、ワールド座標系で垂直距離dv12として相違に算出される。このように、電子装置400は、底面のシフト入力がある場合、2つの点間の垂直距離として算出し、底面のシフト入力がない場合、二点が同じ底面の平面内の点として水平距離として算出することができる。垂直距離に対する算出内容は、
図3を参照して既に説明した内容から理解できる。
【0102】
一実施形態によれば、カメラの撮影条件が予め設定されてもよい。即ち、撮影時のカメラの高さ(
図3に示されたh
cam)とカメラの撮影角度は一定に設定され得る。例えば、撮影角度と高さが固定されたトライフォードなどを用いて撮影することで、カメラの高さ及び撮影角度を一定に保持きでる。これによって、消失点又は消失線がオリジナルイメージ又は正規イメージで均等に形成され得る。このような一実施形態において、電子装置400は、オリジナルイメージ又は正規イメージで各位置におけるピクセル当たり水平距離と垂直距離に関する情報を予め格納することができる。消失点又は消失線を基準にし、各位置で1ピクセルが有する水平距離及び垂直距離が異なり、電子装置400は、これに対して前もって算出したり、又は、入力を受けて格納することができる。例えば、
図10及び
図11に示された例において、電子装置400は、第1座標P1における底面平面上のピクセル当たり水平距離dh12と、底面に垂直な垂直平面上のピクセル当たり垂直距離dv12に対するデータ(例えば、データは、ピクセル当たり距離値又はピクセル当たり以前のピクセルの距離値に対する距離増強値などを含む)を格納することができる。同じ1ピクセルであっても水平距離と垂直距離は異なるため、ピクセル当たり水平距離とピクセル当たり垂直距離はそれぞれ個別的に格納される。
【0103】
一実施形態によれば、電子装置400は、予め設定された撮影条件に応じて設定される消失点又は消失点と、オリジナルイメージで導き出された消失点又は消失点との間の差を算出し、算出された差により補正加重値を設定することができる。このような補正加重値は、消失点又は消失線間の差に比例して大きく算出される。電子装置400は、補正加重値を上述したデータ(各位置における底面平面上のピクセル当たり水平距離及び底面に垂直する垂直平面上のピクセル当たり垂直距離に対するデータ)に反映し、撮影条件での誤差による距離誤差を補正することができる。
【0104】
図12は、他の一例に係る正規イメージの底面の空中に位置する座標のワールド座標を算出する方法のフローチャートである。
図12に示された異なる一例は、第2座標の高さ情報を電子装置400が直接算出する実施形態に関する。
【0105】
一実施形態によれば、
図5を参照して上述した動作540は、下記の動作1210~1240を含む。
【0106】
動作1210において、電子装置400は、ユーザから第2座標に対する入力として底面のシフト入力と共に(又は、底面のシフト入力以後に)正規イメージ上の第2座標を受信する。例えば、底面のシフト入力は、キーボードの特定のキー入力(例えば、シフトキー)であってもよい。
【0107】
動作1220において、電子装置400は、正規イメージの第2座標に対応する底面上の1点に対する第2参照ワールド座標を算出する。
図11は、例えば、電子装置400は、第2座標P2を底面に投影した第2参照座標Pf2のワールド座標を算出することができる。このような第2参照座標Pf2のワールド座標は、第1座標P1と第2参照座標Pf2との間の底面平面上の距離dh12を算出するために使用するためのものである。また、前記底面平面上の距離dh12は、第2座標の高さ情報dv12を算出するために使用される。
【0108】
動作1230において、電子装置400は、カメラの高さ(Hcam)、第1ワールド座標Pf1及び第2参照ワールド座標Pf2を用いて、第2ワールド座標の高さdv12を算出することができる。第2ワールド座標Pv2は、正規イメージの第2座標に対応して第1ワールド座標Pf1に対して垂直であり、高さdv12だけ垂直離隔している。このような第2ワールド座標の高さdv12の算出については、
図3を参照して前述したため、容易に理解することができる。
【0109】
動作1240において、電子装置400は、第1ワールド座標の底面平面上座標-(x、y)座標-を確認し、それに第2ワールド座標の高さdv12を反映して第2ワールド座標を算出することができる。
【0110】
図13は、一例に係る正規イメージでユーザの入力が発生した一例を示す。
図14は、
図13に示す一例におけるユーザの入力方法により座標を算出する方法を示す。
【0111】
一実施形態によれば、
図13に示した例のように、正規イメージ701を介してユーザは距離を測定しようとする2つの点、即ち、2つの座標P1、P2を入力する。第1座標P1は、ワールド座標系で底面内の点に関し、第2座標P2は、ワールド座標系で底面から所定の高さを有し、ワールド座標系の第1座標と少なくともx座標及びy座標のうちの1つが異なる点に関する。
【0112】
ユーザが正規イメージ上の第1座標P1を入力すれば、電子装置400は、上述したように正規イメージ701の第1座標P1に対応するワールド座標系内の第1ワールド座標Pf1を算出することができる。
【0113】
その後、一例として、ユーザが底面のシフト入力と共に、正規イメージ上の第2座標P2を入力すると、電子装置400は底面から高さdv12を有し、第1座標と水平面上で距離dh12だけ離隔している第2ワールド座標Pv2を算出することができる。
【0114】
図15は、更なる一例に係る正規イメージの底面の空中に位置する座標のワールド座標を算出する方法のフローチャートであり、
図15をさらに参照して第2ワールド座標Pv2の算出方法について説明する。
【0115】
一実施形態によれば、
図5を参照して上述した動作540は、以下の動作1510~1540を含む。
【0116】
動作1510において、電子装置400は、ユーザから第2座標に対する入力として底面のシフト入力と共に(又は、底面のシフト入力以後に)正規イメージ上の第2座標を受信する。例えば、底面のシフト入力は、キーボードの特定のキー入力(例えば、シフトキー)であってもよい。
図13及び
図14に示す例のように、第1座標P1は、ワールド座標系で底面内の点に関し、第2座標P2は、ワールド座標系で底面から所定の高さを有し、ワールド座標系の第1座標と少なくともx座標及びy座標のうちの1つが互いに異なってもよい。
【0117】
動作1520において、電子装置400は、正規イメージにおける垂直方向の変化量(
図13に示された正規イメージの2次元座標軸x-yを基準にしたときy軸の変化量)に基づいて、ワールド座標系における高さ変化量を算出する。即ち、電子装置400は、ユーザから第2座標に対する入力として底面のシフト入力がある場合、正規イメージにおけるy軸の変化量は、ワールド座標系の高さ変化量dv12にだけ関連して算出されることができる。具体的な算出方法については、
図13を参照して上述したため、容易に理解できるのであろう。
【0118】
動作1530において、電子装置400は、正規イメージにおける第1座標と第2座標との間の水平変化量(
図13に示される正規イメージの2次元座標軸x-yを基準にしたとき、y軸の変化量)に基づいてワールド座標系における平面上の変化量dh12を算出する。すなわち、正規イメージにおける第1座標と第2座標との間のx軸の変化量は、ワールド座標系において同じ表面における第1ワールド座標系と第2ワールド座標系との間の表面上の変化量(すなわち、ワールド座標系におけるx軸の変化量及びy軸の変化量)にのみ関連して算出されることができる。同じ平面における変化量の算出は、
図2~
図9を参照して上述したため、容易に理解できるのであろう。
【0119】
動作1540において、電子装置400は、第1座標に対する第1ワールド座標(x、y、z)に、高さ変化量及び平面上の変化量を反映して第2座標に対する第2ワールド座標を算出することができる。
【0120】
以上で説明された装置は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0121】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0122】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0123】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順に実行され、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法とは異なる形態に結合又は組み合わせられてもよく、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0124】
したがって、他の具現、他の実施形態および特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。