【文献】
T. Shakunaga and H. Kaneko,Shape from angles under perspective projection,Proceedings of International Conference on Computer Vision 1988,IEEE,1988年,pp. 671-678
(58)【調査した分野】(Int.Cl.,DB名)
対象物を斜め方向から撮像した対象画像に映っている前記対象物の幅方向と高さ方向と奥行き方向とに沿う3つの基準線分を前記対象画像の二次元の座標値を用いて表す基準線分情報を生成する基準線分情報生成部と、
前記基準線分情報生成部によって生成された前記基準線分情報と、前記対象画像の撮像パラメータとに基づいて、前記対象物の前記幅方向と前記高さ方向と前記奥行き方向とを三次元のベクトル値を用いて表す3つの基準軸ベクトルを算出する基準軸ベクトル算出部と、
前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが既知の線分であるリファレンス線分のベクトル値を、リファレンス線分ベクトルとして算出するリファレンス線分ベクトル算出部と、
前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが未知の線分である計測線分のベクトル値を、計測線分ベクトルとして算出する計測線分ベクトル算出部と、
前記リファレンス線分の既知の長さと、前記リファレンス線分ベクトル算出部によって算出された前記リファレンス線分ベクトルと、前記計測線分ベクトル算出部によって算出された前記計測線分ベクトルとを用いて、前記計測線分の長さを算出する計測線分長算出部と
を備えることを特徴とする寸法推定装置。
前記計測線分長算出部は、前記リファレンス線分ベクトルに対する前記計測線分ベクトルの大きさの比率に前記リファレンス線分の既知の長さを乗じた値を前記計測線分の長さとして算出する
ことを特徴とする請求項1から請求項9のいずれかに記載の寸法推定装置。
対象物を斜め方向から撮像した対象画像に映っている前記対象物の幅方向と高さ方向と奥行き方向とに沿う3つの基準線分を前記対象画像の二次元の座標値を用いて表す基準線分情報を生成する基準線分情報生成処理と、
前記基準線分情報生成処理によって生成された前記基準線分情報と、前記対象画像の撮像パラメータとに基づいて、前記対象物の前記幅方向と前記高さ方向と前記奥行き方向とを三次元のベクトル値を用いて表す3つの基準軸ベクトルを算出する基準軸ベクトル算出処理と、
前記基準軸ベクトル算出処理によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが既知の線分であるリファレンス線分のベクトル値を、リファレンス線分ベクトルとして算出するリファレンス線分ベクトル算出処理と、
前記基準軸ベクトル算出処理によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが未知の線分である計測線分のベクトル値を、計測線分ベクトルとして算出する計測線分ベクトル算出処理と、
前記リファレンス線分の既知の長さと、前記リファレンス線分ベクトル算出処理によって算出された前記リファレンス線分ベクトルと、前記計測線分ベクトル算出処理によって算出された前記計測線分ベクトルとを用いて、前記計測線分の長さを算出する計測線分長算出処理と
をコンピュータに実行させるための寸法推定プログラム。
前記計測線分長算出処理は、前記リファレンス線分ベクトルに対する前記計測線分ベクトルの大きさの比率に前記リファレンス線分の既知の長さを乗じた値を前記計測線分の長さとして算出する処理を含む
ことを特徴とする請求項12から請求項20のいずれかに記載の寸法推定プログラム。
基準線分情報生成部が、対象物を斜め方向から撮像した対象画像に映っている前記対象物の幅方向と高さ方向と奥行き方向とに沿う3つの基準線分を前記対象画像の二次元の座標値を用いて表す基準線分情報を生成し、
基準軸ベクトル算出部が、前記基準線分情報生成部によって生成された前記基準線分情報と、前記対象画像の撮像パラメータとに基づいて、前記対象物の前記幅方向と前記高さ方向と前記奥行き方向とを三次元のベクトル値を用いて表す3つの基準軸ベクトルを算出し、
リファレンス線分ベクトル算出部が、前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが既知の線分であるリファレンス線分のベクトル値を、リファレンス線分ベクトルとして算出し、
計測線分ベクトル算出部が、前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが未知の線分である計測線分のベクトル値を、計測線分ベクトルとして算出し、
計測線分長算出部が、前記リファレンス線分の既知の長さと、前記リファレンス線分ベクトル算出部によって算出された前記リファレンス線分ベクトルと、前記計測線分ベクトル算出部によって算出された前記計測線分ベクトルとを用いて、前記計測線分の長さを算出する
ことを特徴とする寸法推定方法。
【発明を実施するための形態】
【0043】
実施の形態1.
被写体を斜め方向から撮像した一枚の画像を用いて被写体の寸法を正確に計測する形態について説明する。
【0044】
図1は、実施の形態1における画像寸法推定装置100の機能構成図である。
実施の形態1における画像寸法推定装置100の機能構成について、
図1に基づいて説明する。
【0045】
画像寸法推定装置100(寸法推定装置の一例)は、写真画像表示部110、姿勢基準軸設定部120(基準線分情報生成部の一例)、撮影パラメータ設定部130、基準軸ベクトル推定部140(基準軸ベクトル算出部の一例)、リファレンス設定部150(リファレンス線分ベクトル算出部の一例)、寸法推定部160(計測線分ベクトル算出部、計測線分長算出部の一例)および推定結果出力部170を備える。
また、画像寸法推定装置100は、写真画像データベース180、装置記憶部190および入力機器109を備える。
【0046】
写真画像表示部110は、入力機器109を用いて入力される写真画像101をディスプレイに表示する。
姿勢基準軸設定部120は、写真画像101に映っている被写体の姿勢基準軸を写真画像101の二次元の座標値を用いて示す姿勢基準軸データ129を生成する。
撮影パラメータ設定部130は、写真画像101を撮影した際にカメラに設定された撮影パラメータ139を取得する。
基準軸ベクトル推定部140は、姿勢基準軸データ129と撮影パラメータ139とを用いて、写真画像101に映っている被写体の姿勢を表す三次元の基準軸ベクトル149を算出する。
リファレンス設定部150は、基準軸ベクトル149を用いて、写真画像101に映っている被写体のうち長さが既知の線分であるリファレンス線分を表す三次元のリファレンス線分ベクトル159aを算出する。また、リファレンス設定部150は、リファレンス線分の既知の長さとしてリファレンス線分長159bを取得する。
寸法推定部160は、基準軸ベクトル149とリファレンス線分ベクトル159aとリファレンス線分長159bとを用いて、写真画像101に映っている被写体のうち長さが未知の線分である計測線分の長さを示す計測線分長169を算出する。
推定結果出力部170は、計測線分長169を出力する。
【0047】
写真画像データベース180は、写真画像101と計測線分長169とを対応付けて記憶するデータベースである。
【0048】
装置記憶部190は、画像寸法推定装置100で使用するデータを記憶する。
例えば、写真画像101、姿勢基準軸データ129、撮影パラメータ139、基準軸ベクトル149、リファレンス線分ベクトル159a、リファレンス線分長159bおよび計測線分長169は、装置記憶部190に記憶されるデータの一例である。
【0049】
図2は、実施の形態1における画像寸法推定方法を示すフローチャートである。
実施の形態1における画像寸法推定方法について、
図2に基づいて説明する。
【0050】
S110において、利用者は、キーボードまたはマウスなどの入力機器109を用いて写真画像101を指定する。
写真画像表示部110は、利用者の指定に従って、CDドライブまたはスキャナなどの入力機器109から写真画像101を取得する。例えば、写真画像表示部110は、CDドライブに挿入されたCD(コンパクトディスク)から写真画像101を読み出す。または、写真画像表示部110は、写真画像101を読み取ったスキャナから写真画像101を受け取る。但し、写真画像表示部110は、CDドライブまたはスキャナ以外の入力機器109から写真画像101を取得しても構わない。
写真画像表示部110は、取得した写真画像101をディスプレイに表示する。
図3は、実施の形態1における写真画像101の一例を示す図である。
図3に示すように、写真画像101は、被写体102を斜めの方向から撮像して得られた画像である。
S110の後、処理はS120に進む。
【0051】
S120において、利用者は、入力機器109を用いて、写真画像101に映っている被写体102の姿勢を表す3つの線分を被写体102の姿勢基準軸として指定する。
被写体102の姿勢を表す3つの線分とは、被写体102の幅方向を表す線分と、被写体102の奥行き方向を表す線分と、被写体102の高さ方向を表す線分との3つの線分のことである。
姿勢基準軸設定部120は、指定された姿勢基準軸を写真画像101の二次元の座標値を用いて特定し、姿勢基準軸を表す姿勢基準軸データ129を生成する。写真画像101の二次元の座標値とは、写真画像101の横方向の座標値および写真画像101の縦方向の座標値である。
図4、
図5は、実施の形態1における姿勢基準軸[lx,ly,lz]の一例を示す図である。
図4に示すように、利用者は、マウスを操作することによってマウスカーソル109aを移動し、被写体102の高さ方向の辺に沿った線分lxと、被写体102の奥行き方向の辺に沿った線分lyと、被写体102の幅方向の辺に沿った線分lzとを指定する。但し、利用者は、マウス以外の入力機器109(例えば、キーボード)を用いて3つの線分lx、ly、lzを指定しても構わない。
例えば、姿勢基準軸設定部120は、線分lxの両端の二次元の座標値と、線分lyの両端の二次元の座標値と、線分lzの両端の二次元の座標値とを特定し、特定した各座標値を含んだデータを姿勢基準軸データ129として生成する。
利用者は、
図4に示すように1点で交わっている3つの線分lx、ly、lzを指定してもよいし、
図5に示すように1点で交わっていない3つの線分lx、ly、lzを指定してもよい。
S120の後、処理はS130に進む。
但し、S120はS130の後に実行してもよいし、S130と並行して実行しても構わない。
【0052】
S130において、撮影パラメータ設定部130は、写真画像101を撮像したカメラの焦点距離、CCD(Charge Coupled Device)の縦方向のサイズまたはレンズの縦方向の視野角などを撮影パラメータ139として取得する。CCDはイメージセンサの一例である。
以下、CCDの縦方向のサイズを縦方向CCDサイズという。また、レンズの縦方向の視野角を縦方向視野角という。
図6は、実施の形態1における撮影パラメータ139の関係図である。焦点距離、縦方向CCDサイズおよび縦方向視野角は、
図6に示すような関係にある。
撮影パラメータ設定部130は、焦点距離、縦方向CCDサイズまたは縦方向視野角に相当する他の撮影パラメータ139を取得しても構わない。
【0053】
図7は、実施の形態1における撮影パラメータ設定処理(S130)の一例を示すフローチャートである。
実施の形態1における撮影パラメータ設定処理(S130)について、
図7に基づいて説明する。
【0054】
S131において、撮影パラメータ設定部130は、撮影パラメータ139に関する付加情報が写真画像101に付加されているか否かを判定する。
例えば、Exif(Exchangeable image file format)は、写真画像101に付加される付加情報の一例である。
写真画像101に付加情報が付加されている場合(YES)、処理はS132に進む。
写真画像101に付加情報が付加されていない場合(NO)、処理はS136aに進む。
【0055】
S132において、撮影パラメータ設定部130は、写真画像101の付加情報に焦点距離が含まれているか否かを判定する。
写真画像101の付加情報に焦点距離が含まれている場合(YES)、処理はS133aに進む。
写真画像101の付加情報に焦点距離が含まれていない場合(NO)、処理はS133bに進む。
【0056】
S133aにおいて、撮影パラメータ設定部130は、写真画像101の付加情報から焦点距離を取得する。
S133aの後、処理はS134に進む。
【0057】
S133bにおいて、撮影パラメータ設定部130は、焦点距離の入力を要求するメッセージをディスプレイに表示する。
そして、利用者は入力機器109を用いて焦点距離を入力し、撮影パラメータ設定部130は入力された焦点距離を取得する。
S133bの後、処理はS134に進む。
【0058】
S134において、撮影パラメータ設定部130は、写真画像101の付加情報に縦方向CCDサイズが含まれているか否かを判定する。
写真画像101の付加情報に縦方向CCDサイズが含まれている場合(YES)、処理はS135aに進む。
写真画像101の付加情報に縦方向CCDサイズが含まれていない場合(NO)、処理はS135bに進む。
【0059】
S135aにおいて、撮影パラメータ設定部130は、写真画像101の付加情報から縦方向CCDサイズを取得する。
S135aの後、処理はS137に進む。
【0060】
S135bにおいて、撮影パラメータ設定部130は、縦方向CCDサイズの入力を要求するメッセージをディスプレイに表示する。
そして、利用者は入力機器109を用いて縦方向CCDサイズを入力し、撮影パラメータ設定部130は入力された縦方向CCDサイズを取得する。
但し、写真画像101の付加情報に焦点距離が含まれる場合、撮影パラメータ設定部130は、焦点距離に基づいて縦方向CCDサイズを算出してもよい。例えば、焦点距離が35mm換算の値である場合、縦方向CCDサイズは35mmである(mm:ミリメートル)。
S135bの後、処理はS137に進む。
【0061】
S136aにおいて、撮影パラメータ設定部130は、S135bと同様に、利用者によって入力された縦方向CCDサイズを取得する。
S136aの後、処理はS136bに進む。
【0062】
S136bにおいて、撮影パラメータ設定部130は、S133bと同様に、利用者によって入力された焦点距離を取得する。
S136bの後、処理はS137に進む。
【0063】
S137において、撮影パラメータ設定部130は、縦方向CCDサイズと焦点距離とを用いて、縦方向視野角を算出する。
例えば、撮影パラメータ設定部130は、以下の式(1)を計算することによって縦方向視野角を算出する。
【0065】
但し、写真画像101の付加情報に縦方向視野角が含まれる場合、撮影パラメータ設定部130は写真画像101の付加情報から縦方向視野角を取得してもよい。また、撮影パラメータ設定部130は、縦方向視野角の入力を要求するメッセージを表示し、利用者によって入力された縦方向視野角を取得してもよい。
S137により、撮影パラメータ設定処理(S130)は終了する。
【0066】
図2に戻り、画像寸法推定方法の説明を続ける。
S130の後、処理はS140に進む。
【0067】
S140において、基準軸ベクトル推定部140は、S120で生成された姿勢基準軸データ129と、S130で取得された撮影パラメータ139とを用いて、写真画像101に映っている被写体102の姿勢を表す基準軸ベクトル149を算出する。基準軸ベクトル149とは、被写体102の姿勢を表す三次元のベクトル値である。
例えば、基準軸ベクトル推定部140は、非特許文献1に開示されている技術を適用して基準軸ベクトル149を算出する。
非特許文献1の技術を利用する基準軸ベクトル推定処理(S140)については、別途説明する。
S140の後、処理はS150に進む。
【0068】
S150において、リファレンス設定部150は、基準軸ベクトル149を用いて、写真画像101に映っている被写体102のリファレンス線分を表すリファレンス線分ベクトル159aを算出する。リファレンス線分とは、被写体102のうち長さが既知である線分である。例えば、リファレンス線分は利用者によって指定される。
さらに、リファレンス設定部150は、リファレンス線分の長さ(リファレンス線分長159b)を取得する。
【0069】
リファレンス設定部150およびリファレンス設定処理(S150)の詳細について、以下に説明する。
【0070】
図8は、実施の形態1におけるリファレンス設定部150の構成図である。
実施の形態1におけるリファレンス設定部150の構成について、
図8に基づいて説明する。
【0071】
リファレンス設定部150は、基準軸ベクトル投影部151、リファレンス線分設定部152、リファレンス線分ベクトル算出部153(リファレンス線分ベクトル算出部の一例)およびリファレンス線分長取得部154を備える。
基準軸ベクトル投影部151は、写真画像101に映っている被写体102に基準軸ベクトル149を投影して表示する。
リファレンス線分設定部152は、リファレンス線分の情報を取得し、写真画像101に映っている被写体102にリファレンス線分を描画する。
リファレンス線分ベクトル算出部153は、被写体102に投影された基準軸ベクトル149を用いて、リファレンス線分ベクトル159aを算出する。
リファレンス線分長取得部154は、既知であるリファレンス線分長159bを取得する。
【0072】
図9は、実施の形態1におけるリファレンス設定処理(S150)を示すフローチャートである。
実施の形態1におけるリファレンス設定処理(S150)について、
図9に基づいて説明する。
【0073】
S151において、基準軸ベクトル投影部151は、写真画像101に映っている被写体102に、基準軸ベクトル149を投影して表示する(
図10参照)。
写真画像101への投影とは、三次元の基準軸ベクトル149を写真画像面の二次元のベクトルに変換することである。写真画像面とは、カメラから焦点距離だけ離れた座標点を含んでカメラの視線方向と直交する平面である。また、写真画像面に被写体102を投影した画像が写真画像101に相当する。
例えば、基準軸ベクトル投影部151は、被写体102の3つの線分(姿勢基準軸)の交点、またはいずれかの線分の端点に基準軸ベクトル149を投影する。
以下、基準軸ベクトル149を表す3つのベクトル[Ox,Oy,Oz]のうち2つのベクトル(例えば、OyとOz)が成す平面を「基準平面」という。
また、被写体102のうち大きさが分かっている部分を「リファレンス」という。
図10は、実施の形態1における基準軸ベクトル投影処理(S151)の概要図である。
図10の「P
0」は基準軸ベクトル149の原点を示している。
S151の後、処理はS152に進む。
【0074】
S152において、利用者は、被写体102のうち大きさが分かっているリファレンスに基準軸ベクトル149が投影されているか否かを判定する。
基準軸ベクトル149がリファレンスに投影されている場合(YES)、処理はS156に進む。
基準軸ベクトル149がリファレンスに投影されていない場合、つまり、基準軸ベクトル149がリファレンス以外の部分に投影されている場合(NO)、処理はS153に進む。
【0075】
S153において、利用者は、マウスを操作し、マウスカーソル109aを用いて基準軸ベクトル149を被写体102のリファレンスに移動させる。但し、利用者は、マウス以外の入力機器109(例えば、キーボード)を用いて、基準軸ベクトル149を移動させても構わない。
基準軸ベクトル投影部151は、利用者による基準軸ベクトル149の移動に従って、基準軸ベクトル149を被写体102のリファレンスに投影して表示する。
【0076】
図11は、実施の形態1における基準軸ベクトル移動処理(S153)の概要図である。
例えば、利用者は、
図11の(1)(2)に示す手順で、基準軸ベクトル149を被写体102のリファレンスに移動させる。移動前の基準軸ベクトル149を点線で記し、移動後の基準軸ベクトル149を実線で記す。
(1)利用者は、基準平面(Oy−Oz平面)内で基準軸ベクトル149を移動させる。
基準軸ベクトル投影部151は、基準平面内の移動先に基準軸ベクトル149を投影する。
(2)利用者は、基準平面と直交する法線ベクトル(Ox)の方向に基準軸ベクトル149を移動させる。
基準軸ベクトル投影部151は、移動先のリファレンスに基準軸ベクトル149を投影する。
以下、リファレンスに移動後の基準軸ベクトル149が表す基準平面(Oy−Oz平面)を「リファレンス平面」という。
S153(
図9)の後、処理はS154に進む。
【0077】
S154において、利用者は、マウスを操作し、マウスカーソル109aを用いて被写体102のリファレンスにリファレンス線分を指定する。リファレンス線分とは、リファレンスのうち長さが既知である線分である。利用者は、マウス以外の入力機器109を利用してリファレンス線分を指定しても構わない。
リファレンス線分設定部152は、利用者の指定に従ってリファレンス線分を描画する(
図12参照)。
図12は、実施の形態1におけるリファレンス線分設定処理(S154)の概要図である。
S154の後、処理はS156に進む。
【0078】
S155において、利用者は、S154と同様に、被写体102のリファレンスにリファレンス線分を指定する。
リファレンス線分設定部152は、利用者の指定に従ってリファレンス線分を描画する(
図13参照)。
図13は、実施の形態1におけるリファレンス線分設定処理(S155)の概要図である。
S155の後、処理はS156に進む。
【0079】
S156において、リファレンス線分ベクトル算出部153は、基準軸ベクトル149を用いてリファレンス線分ベクトル159aを算出する。
リファレンス線分ベクトル159aは、リファレンス線分を表す三次元のベクトル値である。
【0080】
図14は、実施の形態1におけるリファレンス線分ベクトル算出処理(S156)の概要図である。
例えば、リファレンス線分ベクトル算出部153は、
図14の(1)(2)に示す手順で、リファレンス線分ベクトルLrを算出する。
(1)リファレンス線分ベクトル算出部153は、写真画像面lv(Ez)内のリファレンス線分の端点Psおよび端点Peの座標値を取得する。
そして、リファレンス線分ベクトル算出部153は、カメラの中心点Pcから端点Psまたは端点Peへの向きを示す単位ベクトルVsおよび単位ベクトルVeを算出する。カメラの中心点Pcは、写真画像101を撮像したときのカメラの位置を示す座標点、つまり、写真画像101が撮像された位置を示す座標点である。
(2)リファレンス線分ベクトル算出部153は、単位ベクトルVsおよび単位ベクトルVeを用いてリファレンス線分ベクトルLrを算出する。
リファレンス線分ベクトルLrは、以下の各式を用いて算出することができる。
【0081】
リファレンスが成すリファレンス平面Γrは、以下の式(2)で表すことができる。
【0083】
カメラの座標点Pcとリファレンス線分の端点Psとを通る直線lsは、単位ベクトルVsを用いて、以下の式(3s)で表すことができる。
同様に、カメラの座標点Pcとリファレンス線分の端点Peとを通る直線leは、単位ベクトルVeを用いて、以下の式(3e)で表すことができる。
【0085】
上記の直線lsの式(3s)をxyz成分に分解すると以下の式(4s)が得られる。
同様に、上記の直線leの式(3e)をxyz成分に分解すると以下の式(4e)が得られる。
【0087】
上記の直線lsの分解式(4s)を上記のリファレンス平面Γrの式(2)に代入して展開すると、以下の式(5s)が得られる。
同様に、直線leの分解式(4e)を上記のリファレンス平面Γrの式(2)に代入して展開すると、以下の式(5e)が得られる。
【0089】
但し、上記の式(5s)(5e)において、リファレンス平面ΓrがOx−Oy平面でなく、Ox−Oz平面である場合、基準軸ベクトルOz(x
oz,y
oz,z
oz)は基準軸ベクトルOy(x
oy,y
oy,z
oy)に置き換わる。
同様に、リファレンス平面がOy−Oz平面である場合、基準軸ベクトルOz(x
oz,y
oz,z
oz)は基準軸ベクトルOx(x
ox,y
ox,z
ox)に置き換わる。
【0090】
リファレンス線分ベクトル算出部153は、上記の式(5s)を計算して媒介変数t
sを算出し、上記の式(5e)を計算して媒介変数t
eを算出する。
【0091】
媒介変数t
sは端点Psを得るための変数値である。つまり、媒介変数t
sはカメラの中心点Pcから端点PsへのベクトルV
st
sを得るための変数値である。
同様に、媒介変数t
eは端点Peを得るための変数値である。つまり、媒介変数t
eはカメラの中心点Pcから端点PeへのベクトルV
et
eを得るための変数値である。
【0092】
リファレンス線分ベクトル算出部153は、媒介変数値t
sと媒介変数値t
eとを以下の式(6)に代入し、リファレンス線分ベクトルLrを算出する。
【0094】
上記のS156により、リファレンス線分ベクトル159a(Lr)が算出される。
S156(
図9)の後、処理はS157に進む。
【0095】
S157において、利用者は、入力機器109を用いて、既知であるリファレンス線分長159bを入力する。
リファレンス線分長取得部154は、入力されたリファレンス線分長159bを取得する。
S157の後、リファレンス設定処理(S150)は終了する。
【0096】
図2に戻り、画像寸法推定方法の説明を続ける。
リファレンス設定処理(S150)の後、処理はS160に進む。
【0097】
S160において、寸法推定部160は、リファレンス設定処理(S150)と同様に、基準軸ベクトル149を用いて計測線分ベクトルを算出する。
そして、寸法推定部160は、計測線分ベクトルと、リファレンス線分ベクトル159aと、リファレンス線分長159bとを用いて、計測線分長169を算出する。
計測線分ベクトルとは、計測線分を表す三次元のベクトル値である。計測線分とは、被写体102のうち長さが未知である線分、つまり、計測する対象部分の線分である。例えば、計測線分は利用者によって指定される。
【0098】
寸法推定部160および寸法推定処理(S160)の詳細について、以下に説明する。
【0099】
図15は、実施の形態1における寸法推定部160の構成図である。
実施の形態1における寸法推定部160の構成について、
図15に基づいて説明する。
【0100】
寸法推定部160は、基準軸ベクトル投影部161、計測線分設定部162、計測線分ベクトル算出部163(計測線分ベクトル算出部の一例)および計測線分長算出部164(計測線分長算出部の一例)を備える。
基準軸ベクトル投影部161は、写真画像101に映っている被写体102に基準軸ベクトル149を投影して表示する。
計測線分設定部162は、計測線分の情報を取得し、写真画像101に映っている被写体102に計測線分を描画する。
計測線分ベクトル算出部163は、被写体102に投影された基準軸ベクトル149を用いて、計測線分ベクトルを算出する。
計測線分長算出部164は、計測線分ベクトルと、リファレンス線分ベクトル159aと、リファレンス線分長159bとを用いて、計測線分長169を算出する。
【0101】
図16は、実施の形態1における寸法推定処理(S160)を示すフローチャートである。
実施の形態1における寸法推定処理(S160)について、
図16に基づいて説明する。
【0102】
寸法推定処理(S160)のS161からS166は、リファレンス設定処理(S150)(
図9参照)のS151からS156と同様である。
つまり、S151からS156の「リファレンス」を「計測部分」に置き換え、「リファレンス平面」を「計測平面」に置き換え、「リファレンス線分」を「計測線分」に置き換えた処理がS161からS166である。
【0103】
図17は、実施の形態1におけるS161からS165の概要図である。
S161からS165の処理概要を
図17に示す。
図17はS151からS155の概要図(
図11から
図13)に相当する。
基準軸ベクトル投影部161は、写真画像101に映っている被写体102に基準軸ベクトル149を投影して表示する(S161)。
基準軸ベクトル149が被写体102の計測部分に投影されていない場合(S162:YES)、基準軸ベクトル投影部161は、基準軸ベクトル149を被写体102の計測部分に移動する(S163)。
計測線分設定部162は、利用者の指定に従って計測線分を描画する(S164、S165)。
【0104】
図18は、実施の形態1におけるS166の概要図である。
S166の処理概要を
図18に示す。
図18はS156の概要図(
図14)に相当する。
計測線分ベクトル算出部163は、計測部分に投影された基準軸ベクトル149を用いて、計測線分ベクトルLmを算出する(S166)。
【0105】
つまり、計測線分ベクトル算出部163は、カメラの中心点Pcから計測線分の端点Pmsへの単位ベクトルVmsと、カメラの中心点Pcから計測線分の端点Pmeへの単位ベクトルVmeとを算出する。
また、計測線分ベクトル算出部163は、以下の式(7s)を計算して媒介変数t
msを算出し、以下の式(7e)を計算して媒介変数t
meを算出する。
そして、計測線分ベクトル算出部163は、媒介変数t
msと媒介変数t
meとを用いて以下の式(7m)を計算し、計測線分ベクトルLmを算出する。
【0107】
但し、上記の式(7s)(7e)において、計測平面ΓmがOy−Oz平面でなく、Ox−Oz平面である場合、基準軸ベクトルOx(x
ox,y
ox,z
ox)は基準軸ベクトルOy(x
oy,y
oy,z
oy)に置き換わる。
同様に、リファレンス平面がOx−Oy平面である場合、基準軸ベクトルOx(x
ox,y
ox,z
ox)は基準軸ベクトルOz(x
oz,y
oz,z
oz)に置き換わる。
【0108】
媒介変数t
msは端点Pmsを得るための変数値である。つまり、媒介変数t
msはカメラの中心点Pcから端点PmsへのベクトルV
mst
msを得るための変数値である。
同様に、媒介変数t
meは端点Pmeを得るための変数値である。つまり、媒介変数t
meはカメラの中心点Pcから端点PmeへのベクトルV
met
meを得るための変数値である。
【0109】
S167(
図16参照)において、計測線分長算出部164は、S166で算出した計測線分ベクトルと、リファレンス設定部150によって算出されたリファレンス線分ベクトル159aと、リファレンス設定部150によって取得されたリファレンス線分長159bとを用いて、計測線分長169を算出する。
【0110】
以下に、計測線分長l
m_trueを算出するための式(8)を示す。
以下の式(8)において、「Lm」は計測線分ベクトルであり、「Lr」はリファレンス線分ベクトル159aであり、「l
r_true」はリファレンス線分長159bである。
【0112】
つまり、計測線分長算出部164は、リファレンス線分ベクトルに対する計測線分ベクトルの大きさの比率をリファレンス線分長に乗じた値を計測線分長169として算出する。
S167の後、寸法推定処理(S160)は終了する。
【0113】
図2に戻り、画像寸法推定方法の説明を続ける。
寸法推定処理(S160)の後、処理はS170に進む。
【0114】
S170において、推定結果出力部170は、S160で算出された計測線分長169を出力する。
例えば、推定結果出力部170は、計測線分長169をディスプレイ911に表示する。
また、推定結果出力部170は、計測線分長169と写真画像101(計測線分または計測線分ベクトルなどの情報を含む)とを対応付けて写真画像データベース180に記憶する。
計測部分は新たなリファレンスとして利用することができ、計測線分長169は新たな既知のリファレンス線分長として利用することができる。
【0115】
次に、非特許文献1の技術を利用する基準軸ベクトル推定処理(S140)について説明する。
【0116】
図19は、実施の形態1における基準軸ベクトル推定処理(S140)を示すフローチャートである。
実施の形態1における基準軸ベクトル推定処理(S140)について、
図19に基づいて説明する。
【0117】
S141において、基準軸ベクトル推定部140は、姿勢基準軸データ129に基づいて、被写体102の姿勢基準軸[lx,ly,lz]が
図4のように一点で交わっているか、または
図5のように一点で交わっていないか判定する。
姿勢基準軸[lx,ly,lz]が一点で交わる場合(YES)、処理はS142に進む。
姿勢基準軸[lx,ly,lz]が一点で交わらない場合(NO)、処理はS143に進む。
【0118】
S142において、基準軸ベクトル推定部140は、非特許文献1で定義されたFPM座標系を用いて基準軸ベクトル149を算出する。
FPMはFirst Perspective Movingの略である。
基準軸ベクトル算出処理[FPM座標系](S142)の詳細については別途説明する。
S142の後、基準軸ベクトル推定処理(S140)は終了する。
【0119】
S143において、基準軸ベクトル推定部140は、非特許文献1で定義されたSPM座標系を用いて基準軸ベクトル149を算出する。
SPMはSecond Perspective Movingの略である。
基準軸ベクトル推定処理[SPM座標系](S143)の詳細については別途説明する。
S143の後、基準軸ベクトル推定処理(S140)は終了する。
【0120】
図20は、実施の形態1における基準軸ベクトル算出処理[FPM座標系](S142)を示すフローチャートである。
FPM座標系を用いる基準軸ベクトル算出処理(S142)について、
図20に基づいて説明する。
【0121】
S142Aにおいて、基準軸ベクトル推定部140は、カメラの中心点Pcから写真画像面lv(Ez)内の姿勢基準軸[lx,ly,lz]の端点への単位ベクトル[Ex,Ey,Ez]を算出する(
図21参照)。
以下、単位ベクトル[Ex,Ey,Ez]を「端点単位ベクトル」という。
図21は、実施の形態1における端点単位ベクトル算出処理(S142A)の概要図である。
S142Aの後、処理はS142Bに進む。
【0122】
S142Bにおいて、基準軸ベクトル推定部140は、カメラの中心点Pcから写真画像面lv(Ez)内の姿勢基準軸の交点l
0への単位ベクトルEcを算出する(
図22参照)。
以下、単位ベクトルEcを「交点単位ベクトル」という。
図22は、実施の形態1における交点単位ベクトル算出処理(S142B)の概要図である。
S142Bの後、処理はS142Cに進む。
【0123】
S142Cにおいて、基準軸ベクトル推定部140は、カメラの中心点Pcから交点単位ベクトルEcの方向に焦点距離fだけ離れた座標点Pfを算出する(
図23の(1)参照)。
基準軸ベクトル推定部140は、座標点Pfを含んで交点単位ベクトルEcと直交する平面lv(Ec)を算出する(
図23の(2)参照)。つまり、交点単位ベクトルEcは平面lv(Ec)の法線ベクトルになる。
以下、平面lv(Ec)を「FPM座標面」という。また、座標点Pfを「FPM座標原点」という。
図23は、実施の形態1におけるFPM座標面算出処理(S142C)の概要図である。
S142Cの後、処理はS142Dに進む。
【0124】
S142Dにおいて、基準軸ベクトル推定部140は、端点単位ベクトル[Ex,Ey,Ez]を含んだ直線とFPM座標面lv(Ec)との交点[Px’,Py’,Pz’]を算出する(
図24の(1)参照)。
基準軸ベクトル推定部140は、FPM座標原点Pfから交点[Px’,Py’,Pz’]へのベクトル[Gx,Gy,Gz]を算出する(
図24の(2)参照)。
以下、ベクトル[Gx,Gy,Gz]を「FPM座標面ベクトル」という。
図24は、実施の形態1におけるFPM座標面ベクトル算出処理(S142D)の概要図である。
S142Dの後、処理はS142Eに進む。
【0125】
S142Eにおいて、基準軸ベクトル推定部140は、FPM座標面ベクトル[Gx,Gy,Gz]のいずれかのベクトル(例えば、Gx)を選択する。
基準軸ベクトル推定部140は、選択したFPM座標面ベクトル(Gx)の単位ベクトルEa(=Gx/|Gx|)を算出する(
図25参照)。
基準軸ベクトル推定部140は、交点単位ベクトルEcと単位ベクトルEaとの外積ベクトルEb(=Ec×Ea)を算出する(
図25参照)。
単位べクトルEaはFPM座標系のA軸の単位ベクトルであり、外積ベクトルEbはFPM座標系のB軸の単位ベクトルであり、交点単位ベクトルEcはFPM座標系のC軸の単位ベクトルである。単位ベクトル[Ea,Eb,Ec]は「正規直交基底」ともいう。
図25は、実施の形態1におけるFPM座標系の単位ベクトル算出処理(S142E)の概要図である。
S142Eの後、処理はS142Fに進む。
【0126】
S142Fにおいて、基準軸ベクトル推定部140は、FPM座標面ベクトル[Gx,Gy,Gz]を用いて、被写体座標系の基準軸ベクトル[E1,E2,E3]を算出する。
被写体座標系とは被写体102に設定したローカル座標系である。また、基準軸ベクトル[E1,E2,E3]は、被写体座標系の単位ベクトル(正規直交基底)である。
図26は、実施の形態1における被写体座標系の基準軸ベクトルの関係図である。
図26において、GzとGyとが成す見かけの角度Δβ、GxとGyとが成す見かけの角度β
2およびGxとGzとが成す見かけの角度β
1は、以下の式(11)で表すことができる。
【0128】
さらに、E1とE2とが成す実際の角度ΔαのtanΔαは、E3とFPM座標系のC軸とが成す角度ψとを用いて、以下の式(12)で表すことができる。
【0130】
ここで、被写体102の基準軸ベクトル[E1,E2]が成す角度Δαは90度であるから、上記の式(12)は、以下の式(13)に展開することができる。
【0132】
そして、被写体座標系の基準軸ベクトル[E1,E2,E3]は、上記の式(11)と式(13)との関係により、以下の式(14)で表すことができる。
以下の式(14)において、α
1はE3とE1とが成す実際の角度であり、α
2はE3とE2とが成す実際の角度である。
【0134】
S142F(
図20)の後、処理はS142Gに進む。
【0135】
S142Gにおいて、基準軸ベクトル推定部140は、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換するための変換行列M
hを算出する。変換行列M
hは以下の式(15)を用いて表すことができる。
【0137】
上記の式(15)で用いている符号の意味は以下の通りである。
(x
Ea,y
Ea,z
Ea)は、FPM座標系のA軸の単位ベクトルEa(
図25参照)をワールド座標系で表したベクトル値である。
(x
Eb,y
Eb,z
Eb)は、FPM座標系のB軸の単位ベクトルEb(
図25参照)をワールド座標系で表したベクトル値である。
(x
Ec,y
Ec,z
Ec)は、FPM座標系のC軸の単位ベクトルEc(
図25参照)をワールド座標系で表したベクトル値である。
(a
E1,b
E1,c
E1)は、被写体座標系の基準軸ベクトルE1(
図26参照)をFPM座標系で表したベクトル値である。
(a
E2,b
E2,c
E2)は、被写体座標系の基準軸ベクトルE2(
図26参照)をFPM座標系で表したベクトル値である。
(a
E3,b
E3,c
E3)は、被写体座標系の基準軸ベクトルE3(
図26参照)をFPM座標系で表したベクトル値である。
【0138】
そして、基準軸ベクトル推定部140は、上記の変換行列H
hを用いて、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換し、ワールド座標系の基準軸ベクトル[O
x,O
y,O
z]を被写体102の基準軸ベクトル149として出力する。
以下に、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換するための式(16)を示す。
【0140】
S142Gにより、基準軸ベクトル算出処理[FPM座標系](S142)は終了する。
【0141】
図27は、実施の形態1における基準軸ベクトル算出処理[SPM座標系](S143)を示すフローチャートである。
SPM座標系を用いる基準軸ベクトル算出処理(S143)について、
図27に基づいて説明する。
【0142】
S143Aにおいて、基準軸ベクトル推定部140は、写真画像面lv(Ez)内の姿勢基準軸[lx,ly,lz]から2つの姿勢基準軸(例えば、lxとly)を選択する。
基準軸ベクトル推定部140は、選択した2つの姿勢基準軸(lx,ly)の延長上の交点Pxyを算出する(
図28の(1)参照)。
基準軸ベクトル推定部140は、カメラの中心点Pcから交点Pxyへの単位ベクトルExyを算出する(
図28の(2)参照)。以下、単位ベクトルExyを「交点単位ベクトル」という。
図28は、実施の形態1における交点単位ベクトル算出処理(S143A)の概要図である。
S143Aの後、処理はS143Bに進む。
【0143】
S143Bにおいて、基準軸ベクトル推定部140は、カメラの中心点Pcから交点単位ベクトルExyの方向に焦点距離fだけ離れた座標点Pfを算出する(
図29の(1)参照)。
基準軸ベクトル推定部140は、座標点Pfを含んで交点単位ベクトルExyと直交する平面lv(Ec)を算出する(
図29の(2)参照)。つまり、交点単位ベクトルExyは平面lv(Ec)の法線ベクトルになる。
以下、平面lv(Ec)を「SPM座標面」という。また、座標点Pfを「SPM座標原点」という。
図29は、実施の形態1におけるSPM座標面算出処理(S143B)の概要図である。
S143Bの後、処理はS143Cに進む。
【0144】
S143Cにおいて、基準軸ベクトル推定部140は、姿勢基準軸[lx,ly,lz]を写真画像面lv(Ez)からSPM座標面lv(Ec)に投影する(
図30参照)。
以下、SPM座標面lv(Ec)に投影した姿勢基準軸を[lx’,ly’,lz’]と記す。
図30は、実施の形態1における姿勢基準軸投影処理(S143C)の概要図である。
S143Cの後、処理はS143Dに進む。
【0145】
S143Dにおいて、基準軸ベクトル推定部140は、SPM座標面lv(Ec)に投影した姿勢基準軸[lx’,ly’,lz’]のうち、S143Aで選択した姿勢基準軸(lx,ly)を投影後の姿勢基準軸(lx’,ly’)を選択する。
基準軸ベクトル推定部140は、選択した姿勢基準軸(lx’,ly’)が成す角の二等分線をSPM座標系のS軸に決定する(
図31の(1)参照)。
さらに、基準軸ベクトル推定部140は、SPM座標面lv(Ec)の法線ベクトルExyをSPM座標面のC軸に決定し、S軸とC軸とに直交する軸をSPM座標系のT軸に決定する(
図31の(1)参照)。
そして、基準軸ベクトル推定部140は、SPM座標系のS軸の単位ベクトルEsと、T軸の単位ベクトルEtと、C軸の単位ベクトルEcとを算出する(
図31の(2)参照)。
図31は、実施の形態1におけるSPM座標系の単位ベクトル算出処理(S143D)の概要図である。
【0146】
以下に、SPM座標系の単位ベクトル[Es,Et,Ec]を算出する式(21)を示す。
以下の式(21)で用いている「Gx’」は姿勢基準軸lx’と同じ向きを有する単位ベクトルである。また、「Gy’」は姿勢基準軸ly’と同じ向きを有する単位ベクトルである。
【0148】
S143Dの後、処理はS143Eに進む。
【0149】
S143Eにおいて、基準軸ベクトル推定部140は、以下のように、SPM座標面内の姿勢基準軸[lx’,ly’,lz’]を用いて被写体座標系の基準軸ベクトル[E1,E2,E3]を算出する。
被写体座標系とは被写体102に設定したローカル座標系である。また、基準軸ベクトル[E1,E2,E3]は、被写体座標系の単位ベクトル(正規直交基底)である。
【0150】
図32は、実施の形態1におけるSPM座標面内の姿勢基準軸の関係図である。
図32に示すPAT曲線は非特許文献1で定義されている曲線である。PATはPerspective Angle Transformの略である。
PAT曲線は、lx’とly’とが成す角度Δβと焦点距離fとを用いて、以下の式(22)で表すことができる。
【0152】
また、lz’を含んだ直線の式は、変数γおよび変数δを用いて以下の式(23)で表すことができる。
【0154】
PAT曲線と直線lz’との交点P1の極座標値は、上記の式(22)と上記の式(23)とを用いて、以下の式(24)で算出することができる。
【0156】
また、PAT曲線と直線lz’との交点P1の極座標値は、PfからP1までの直線の長さaと、PfからP1までの直線とS軸とが成す角度ηとを用いて、(acosη,asinη)で表すことができる。
【0157】
ここで、被写体座標系の基準軸ベクトル[E1,E2,E3]は、以下の式(25)で表すことができる。
【0159】
基準軸ベクトル推定部140は、上記の式(25)を計算することにより、被写体座標系の基準軸ベクトル[E1,E2,E3]を算出する。
S143E(
図27)の後、処理はS143Fに進む。
【0160】
S143Fにおいて、基準軸ベクトル推定部140は、写真画像面lv(Ez)から基準点l
0を選択する。例えば、基準軸ベクトル推定部140は、姿勢基準軸lxの端点を基準点l
0として選択する(
図33の(1)参照)。
基準軸ベクトル推定部140は、カメラの中心点Pcから基準点l
0への単位ベクトルE
0を算出する(
図33の(2)参照)。
基準軸ベクトル推定部140は、単位ベクトルE
0を用いて、カメラの中心点Pcから基準点l
0への方向に焦点距離fだけ離れた座標点P
0を算出する(
図33の(2)参照)。
以下、座標点P
0を「基準原点」という。
図33は、実施の形態1における基準原点算出処理(S143F)の概要図である。
S143Fの後、処理はS143Gに進む。
【0161】
S143Gにおいて、基準軸ベクトル推定部140は、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換するための変換行列M
hを算出する。変換行列M
hは以下の式(26)で表すことができる。
【0163】
上記の式(26)で用いている符号の意味は以下の通りである。
(x
p0,y
p0,z
p0)は、基準原点P
0(
図33の(2)参照)をワールド座標系(x,y,z)で表した座標値である。
(x
Es,y
Es,z
Es)は、SPM座標系のS軸の単位ベクトルEs(
図31の(2)参照)をワールド座標系で表したベクトル値である。
(x
Et,y
Et,z
Et)は、FPM座標系のT軸の単位ベクトルEt(
図31の(2)参照)をワールド座標系で表したベクトル値である。
(x
Ec,y
Ec,z
Ec)は、FPM座標系のC軸の単位ベクトルEc(=Exy)をワールド座標系で表したベクトル値である。
(a
E1,b
E1,c
E1)は、被写体座標系の基準軸ベクトルE1(式(25)参照)をFPM座標系で表したベクトル値である。
(a
E2,b
E2,c
E2)は、被写体座標系の基準軸ベクトルE2(式(25)参照)をFPM座標系で表したベクトル値である。
(a
E3,b
E3,c
E3)は、被写体座標系の基準軸ベクトルE3(式(25)参照)をFPM座標系で表したベクトル値である。
【0164】
そして、基準軸ベクトル推定部140は、上記の変換行列H
hを用いて、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換し、ワールド座標系の基準軸ベクトル[O
x,O
y,O
z]を被写体102の基準軸ベクトル149として出力する。
以下に、被写体座標系の基準軸ベクトル[E1,E2,E3]をワールド座標系の基準軸ベクトル[O
x,O
y,O
z]に変換するための式(27)を示す。
【0166】
S143Gにより、基準軸ベクトル算出処理[SPM座標系](S143)は終了する。
【0167】
図34は、実施の形態1における画像寸法推定装置100のハードウェア資源の一例を示す図である。
図34において、画像寸法推定装置100(コンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905(通信装置)、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
【0168】
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
【0169】
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
【0170】
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、寸法推定プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【0171】
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
【0172】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
【0173】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【0174】
実施の形態1により、被写体102を斜めの方向から映している一枚の写真画像101を用いて、被写体102の正しい寸法を計測することができる。
例えば、海上を撮像した写真画像101に被写体として不審船が映っている場合、実施の形態1により不審船の寸法を計測することができる。この場合、不審船に取り付けられている浮き輪をリファレンスとして使用することができる。船に搭載される浮き輪は一般的に規格化され、大きさが決まっているためである。
さらに、各国で使用されている船の寸法を含んだデータベースを用意しておき、計測した不審船の寸法とデータベースに記録された寸法とを比較することにより、不審船がどの国の船であるかを特定することもできる。
但し、船は被写体102の一例であり、浮き輪はリファレンスの一例である。つまり、実施の形態1によって船以外の被写体102の寸法を計測してもよいし、浮き輪以外のリファレンスを利用してもよい。
【0175】
また、被写体102(例えば、本)の各部分の寸法を算出することにより、被写体102の三次元モデルを生成することができる(
図35の(1)参照)。
さらに、被写体102の三次元モデルを用いて、異なる方向から見た被写体102を表示することができる(
図35の(2)から(5)参照)。
なお、被写体102の三次元モデルに写真画像101の画素をテクスチャとして張り付けることにより、被写体102の三次元モデルをより鮮明に描くことができる。
図35は、実施の形態1における被写体102の三次元モデルを表す図である。
【0176】
実施の形態1において、例えば、以下のような寸法推定装置(100)について説明した。括弧内に対応する構成の符号または名称を記す。
前記寸法推定装置は、基準線分情報生成部(120)と、基準軸ベクトル算出部(140)と、リファレンス線分ベクトル算出部(153)と、計測線分ベクトル算出部(163)と、計測線分長算出部(164)とを備える。
前記基準線分情報生成部は、対象物(102)を斜め方向から撮像した対象画像(101)に映っている前記対象物の幅方向と高さ方向と奥行き方向とに沿う3つの基準線分を前記対象画像の二次元の座標値を用いて表す基準線分情報(129)を生成する。
前記基準軸ベクトル算出部は、前記基準線分情報生成部によって生成された前記基準線分情報と、前記対象画像の撮像パラメータ(撮影パラメータ)とに基づいて、前記対象物の前記幅方向と前記高さ方向と前記奥行き方向とを三次元のベクトル値を用いて表す3つの基準軸ベクトル(149)を算出する。
前記リファレンス線分ベクトル算出部は、前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが既知の線分であるリファレンス線分のベクトル値を、リファレンス線分ベクトル(159a)として算出する。
前記計測線分ベクトル算出部は、前記基準軸ベクトル算出部によって算出された前記3つの基準軸ベクトルのうち少なくともいずれかの基準軸ベクトルを用いて、前記対象画像に映っている前記対象物のうち長さが未知の線分である計測線分のベクトル値を、計測線分ベクトルとして算出する。
前記計測線分長算出部は、前記リファレンス線分の既知の長さ(159b)と、前記リファレンス線分ベクトル算出部によって算出された前記リファレンス線分ベクトルと、前記計測線分ベクトル算出部によって算出された前記計測線分ベクトルとを用いて、前記計測線分の長さ(169)を算出する。