JPWO2020152810A1 - カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム - Google Patents

カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム Download PDF

Info

Publication number
JPWO2020152810A1
JPWO2020152810A1 JP2020567303A JP2020567303A JPWO2020152810A1 JP WO2020152810 A1 JPWO2020152810 A1 JP WO2020152810A1 JP 2020567303 A JP2020567303 A JP 2020567303A JP 2020567303 A JP2020567303 A JP 2020567303A JP WO2020152810 A1 JPWO2020152810 A1 JP WO2020152810A1
Authority
JP
Japan
Prior art keywords
camera
information
marker
coordinate system
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020567303A
Other languages
English (en)
Other versions
JP7310835B2 (ja
Inventor
祐也 田上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Socionext Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Socionext Inc filed Critical Socionext Inc
Publication of JPWO2020152810A1 publication Critical patent/JPWO2020152810A1/ja
Application granted granted Critical
Publication of JP7310835B2 publication Critical patent/JP7310835B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/02Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
    • G01B11/03Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness by measuring coordinates of points
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B37/00Panoramic or wide-screen photography; Photographing extended surfaces, e.g. for surveying; Photographing internal surfaces, e.g. of pipe
    • G03B37/04Panoramic or wide-screen photography; Photographing extended surfaces, e.g. for surveying; Photographing internal surfaces, e.g. of pipe with cameras or projectors providing touching or overlapping fields of view
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B15/00Special procedures for taking photographs; Apparatus therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/61Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3204Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to a user, sender, addressee, machine or electronic recording medium
    • H04N2201/3205Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to a user, sender, addressee, machine or electronic recording medium of identification information, e.g. name or ID code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3253Position information, e.g. geographical position at time of capture, GPS data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

カメラ情報算出装置は、一つの態様において、第1の算出部と第2の算出部とを備える。第1の算出部は、第1のカメラにより撮像される第1の被写体を含む第1の画像と、第3のカメラにより撮像される第1の被写体を含む第1の動画像とに基づいて、第1のカメラの位置を示す第1のカメラ位置情報を算出する。第2の算出部は、第1のカメラと離間して配置される第2のカメラにより撮像される第2の被写体を含む第2の画像と、第3のカメラにより撮像される第2の被写体を含む第2の動画像とに基づいて、第2のカメラの位置を示す第2のカメラ位置情報を算出する。

Description

本発明は、カメラ情報算出装置、システム、カメラ情報算出方法およびプログラムに関する。
従来、カメラを利用した映像解析を行う際に、マーカーを用いて、カメラの位置を特定可能なカメラ情報を算出する装置が知られている(例えば特許文献1および2参照)。
特開2004−279049号公報 特開2013−127783号公報
しかしながら、従来においては、設置されたカメラが複数あり、それらの位置関係を求める場合は、各カメラが撮像した画像の中に、共通のマーカーが含まれるようにしなければならない。例えば複数のカメラ間の距離が離れていて、該複数のカメラ間の撮像領域が重ならず、共通のマーカーを各カメラの撮像画像に撮像することができない場合においては、カメラの位置関係を求めることが困難であるという問題がある。
1つの側面では、本発明は、離間して設置された複数のカメラの位置関係を求めることが可能なカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムを提供することを目的とする。
本願の開示するカメラ情報算出装置は、一つの態様において、第1のカメラにより撮像される第1の被写体を含む第1の画像と、第3のカメラにより撮像される前記第1の被写体を含む第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出する第1の算出部と、前記第1のカメラと離間して配置される第2のカメラにより撮像される第2の被写体を含む第2の画像と、前記第3のカメラにより撮像される前記第2の被写体を含む第2の動画像とに基づいて、前記第2のカメラの位置を示す第2のカメラ位置情報を算出する第2の算出部と、を備える。
本願の開示するカメラ情報算出装置の一つの態様によれば、離間して設置された複数のカメラの位置関係を求めることができる。
図1は、実施形態のシステムの構成の一例を示す図である。 図2は、実施形態のシステムが適用される店舗の平面図である。 図3は、実施形態のシステムが適用される店舗の平面図である。 図4は、実施形態の第1のカメラ、第2のカメラ、および、移動カメラの基本的なハードウェア構成の一例を示す図である。 図5は、実施形態の第1のカメラが有する機能の一例を示す図である。 図6は、実施形態の第2のカメラが有する機能の一例を示す図である。 図7は、実施形態の移動カメラが有する機能の一例を示す図である。 図8は、実施形態の移動カメラが有する機能の詳細例を示す図である。 図9は、実施形態の算出部が有する機能の一例を示す図である。 図10は、実施形態のマーカー情報変換部が有する機能の一例を示す図である。 図11は、実施形態の空間特徴情報変換部が有する機能の一例を示す図である。 図12は、実施形態のマーカー情報・空間特徴情報変換部が有する機能の一例を示す図である。 図13は、実施形態の移動カメラの動作例を示すフローチャートである。 図14は、変形例のシステムの構成の一例を示す図である。 図15は、変形例のサーバのハードウェア構成の一例を示す図である。 図16は、変形例のサーバが有する機能の一例を示す図である。
以下、添付図面を参照しながら、本願の開示するカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムの実施形態を詳細に説明する。
図1は、本実施形態のシステム1の構成の一例を示す図である。図1に示すように、本実施形態のシステム1は、データサーバ10と、第1のカメラ20と、第2のカメラ30と、移動カメラ40と、を含む。第1のカメラ20と第2のカメラ30は、任意の位置・向きで設置可能なカメラである。データサーバ10は、例えばインターネットなどのネットワーク50を介して、第1のカメラ20、第2のカメラ30、および、移動カメラ40の各々と通信可能に接続される。
図2は、本実施形態のシステム1が適用される場所、例えば店舗の平面図である。図2の例では、互いに異なるパターンを有する第1のマーカー70および第2のマーカー80が店舗のフロア(床面)60に設置されている。この例では、第1のマーカー70および第2のマーカー80の各々は、8×8の矩形マトリクスのパターンを有する平板状の部材である。以下の説明では、第1のマーカー70と第2のマーカー80とを区別しない場合は、単に「マーカー」と称する場合がある。
第1のマーカー70は、第1のカメラ20により撮像された画像に含まれる「第1の被写体」の一例であり、第1の識別情報に対応する第1のパターンを有している。例えば第1の識別情報は「1」を示すIDであり、第1のパターンは、ID「1」を表すパターンであってもよい。
第1のマーカー70は、第1のカメラ20の撮像領域(第1の撮像領域)に設置されるので、第1のカメラ20により撮像された画像には、第1のマーカー70が含まれる。以下の説明では、第1のカメラ20により撮像された画像を「第1の画像」と称する場合がある。つまり、第1のカメラ20は、第1のマーカー70を含む第1の画像を撮像する。
第2のマーカー80は、第2のカメラ30により撮像された画像に含まれる「第2の被写体」の一例であり、第2の識別情報に対応する第2のパターンを有している。例えば第2の識別情報は「2」を示すIDであり、第2のパターンは、ID「2」を表すパターンであってもよい。
第2のマーカー80は、第2のカメラ30の撮像領域(第2の撮像領域)に配置されるので、第2のカメラ30により撮像された画像には、第2のマーカー80が含まれる。以下の説明では、第2のカメラ30により撮像された画像を「第2の画像」と称する場合がある。つまり、第2のカメラ30は、第2のマーカー80を含む第2の画像を撮像する。
ここでは、第1のカメラ20および第2のカメラ30は、互いに離間して配置され、それぞれの撮像画像に共通のマーカーを撮像することができない位置に配置される。この例では、第1のカメラ20および第2のカメラ30は一定以上の距離を空けて配置され、互いの撮像領域が重ならないように配置されている。ただし、これに限らず、例えば第1のカメラ20および第2のカメラ30は、互いの撮像領域の一部が重なるものの、それぞれの撮像画像に共通のマーカーを撮像することができない、又は共通のマーカーのパターンを認識できない位置に配置される形態でもよい。
図2の例では、フロア60を移動しながら撮像を行う移動カメラ40は、第1の撮像領域の少なくとも一部を撮像可能な位置に存在している。図2の例では、移動カメラ40は、第1のマーカー70を撮像可能な位置に存在している。移動カメラ40は、例えば図2に示す範囲90内を移動しながら撮像を行うことができ、例えば図3に示すように、第2の撮像領域の少なくとも一部を撮像可能な位置に移動することもできる。図3の例では、移動カメラ40は、第2のマーカー80を撮像可能な位置に存在している。つまり、移動カメラ40は、第1の撮像領域の少なくとも一部を撮像可能な位置と、第2の撮像領域の少なくとも一部を撮像可能な位置との間を移動しながら撮像可能なカメラである。移動カメラ40は、連続して撮像する、または、複数の撮像領域が重複するように複数回数撮像することができる。移動カメラ40は、「第3のカメラ」の一例であり、第1のマーカー70を含む第1の動画像と、第2のマーカー80を含む第2の動画像とを撮像する。ただし、「第3のカメラ」の形態は、移動カメラ40に限られるものではない。また、この例では、第1の動画像の撮像領域の少なくとも一部と、第2の動画像の撮像領域の少なくとも一部とが重複しているが、これに限られるものではない。
移動カメラ40は、例えばカメラ付きの可搬型の装置(例えばスマートフォン、タブレット、ドローン等)であってもよい。本実施形態では、移動カメラ40は、店舗のフロア60を移動するユーザが所持するカメラ付きの端末である場合を例に挙げて説明するが、これに限られるものではない。
図4は、第1のカメラ20、第2のカメラ30、および、移動カメラ40の基本的なハードウェア構成の一例を示す図である。図4の例では、最低限必要なハードウェア要素を例示しているが、これに限らず、第1のカメラ20、第2のカメラ30、および、移動カメラ40は、他のハードウェア要素(例えば入力デバイス、表示デバイス等)を備える形態であっても構わない。
図4に示すように、第1のカメラ20、第2のカメラ30、移動カメラ40の各々は、レンズなどの光学系101と、撮像素子102と、CPU(Central Processing Unit)103と、記憶装置104と、通信I/F部105と、を含む。光学系101、撮像素子102、CPU103、記憶装置104、通信I/F部105は、バス106を介して相互に接続される。
撮像素子102は、レンズなどの光学系101により結像された撮像対象の像を、電気信号に変換する素子(撮像を行うための素子)である。CPU103は、ハードウェアプロセッサの一例に対応する。CPU103は、装置(第1のカメラ20、第2のカメラ30、および、移動カメラ40のうちの何れか)の動作を制御する。CPU103は、記憶装置104に格納されたプログラムを実行することにより、装置が有する各種の機能を実現する。第1のカメラ20、第2のカメラ30、および、移動カメラ40の各々が有する各種の機能については後述する。
記憶装置104は、プログラム等の各種のデータを記憶する。例えば記憶装置104は、プログラムを格納する不揮発性のメモリであるROM(Read Only Memory)、CPU103の作業領域を有する揮発性のメモリであるRAM(Random Access Memory)などを含む。通信I/F部105は、ネットワーク50に接続するためのインタフェースである。
図5は、第1のカメラ20が有する機能の一例を示す図である。なお、図5の例では、本実施形態に関する機能を主に例示しているが、第1のカメラ20が有する機能はこれらに限られるものではない。図5に示すように、第1のカメラ20は、画像取得部201、点・線分特徴検出部202、内部パラメータ算出部203、第1のマーカー検出部204、外部パラメータ算出部205、空間特徴検出部206、レンズ歪情報算出部250、線分・円弧特徴検出部251、マーカー検出部252、マーカー情報記憶部253、を有する。
画像取得部201は、第1のカメラ20が撮像した第1の画像を取得する。具体的には、画像取得部201は、撮像素子102により撮像された第1の画像を取得する。
レンズ歪情報算出部250は、画像取得部201により取得された第1の画像を解析し、線分データ(直線または円弧)を線分・円弧特徴検出部251で検出する。レンズ歪情報算出部250は、線分・円弧特徴検出部251で検出された線分データに基づいて、第1のカメラ20のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部252が検出し、レンズ歪情報算出部250は、マーカー検出部252で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部250は、算出したレンズ歪情報を内部パラメータ算出部203へ送信する。また、レンズ歪情報算出部250は、レンズ歪情報と第1の画像の歪を除去した画像を点・線分特徴検出部202へ送信する。あるいは、レンズ歪情報算出部250で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第1の画像を点・線分特徴検出部202へ送信する。この例では、第1のカメラ20が撮像した第1の画像を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
点・線分特徴検出部202は、レンズ歪情報算出部250によって算出されたレンズ歪情報と、第1の画像あるいは第1の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部202は、第1のマーカー70の特徴および第1のマーカー70の周辺情報および画像全体の空間特徴(地面または壁などに対応する直線または平面の特徴)などの特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部251で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
第1のマーカー検出部204は、点・線分特徴検出部202で検出した特徴データと、マーカー情報記憶部253に格納されるマーカー識別情報とに基づいて、第1の画像内の第1のマーカー70を検出し、検出された第1のマーカー70の位置および形状を示す第1のマーカー情報を、内部パラメータ算出部203、外部パラメータ算出部205、およびデータサーバ10へ送信する。また、この例では、第1のマーカー検出部204は、検出した第1のマーカー70が有する第1のパターンに対応する第1の識別情報を認識し、その認識した第1の識別情報を、第1のマーカー情報と併せてデータサーバ10へ送信する。第1のマーカー情報は、例えば第1のマーカー70の一辺のサイズ、第1のパターンを構成する矩形の一辺のサイズ、第1の画像内の第1のマーカー70の位置を示す情報などを含む。
内部パラメータ算出部203は、レンズ歪情報算出部250から受信したレンズ歪み情報、既知の第1のカメラ20のレンズ焦点距離、第1のマーカー検出部204から受信した第1のマーカー情報などに基づいて、第1のカメラ20の内部パラメータを示す第1の内部パラメータを算出する。第1の内部パラメータは、第1のカメラ20のカメラの3次元座標系(例えばカメラのレンズ中心を原点とする3次元の座標系)の座標点と、第1のカメラ20により撮像された第1の画像の座標系(2次元の座標系)の座標点との対応関係を決める行列で表される。内部パラメータ算出部203は、算出した第1の内部パラメータと、レンズ歪情報算出部250から受信したレンズ歪情報と、を外部パラメータ算出部205へ送信する。レンズ歪情報は、内部パラメータの1つの情報とすることもでき、以後、「第1の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、第1の内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、第1のカメラ20が撮像した第1の画像を用いて第1の内部パラメータを算出しているが、これに限らず、既知の第1の内部パラメータが予め与えられる形態であってもよい。
外部パラメータ算出部205は、内部パラメータ算出部203から受信した第1の内部パラメータと、第1のマーカー検出部204から受信した第1のマーカー情報とに基づいて、第1のカメラ20の外部パラメータを示す第1の外部パラメータを算出する。この例では、外部パラメータ算出部205は、第1のマーカー検出部204により検出された第1のマーカー70を原点(例えば第1のマーカー70の中心または4隅の何れか1つ)とする第1のカメラ20側の3次元座標系を設定する。外部パラメータ算出部205は、設定した第1のカメラ20側の3次元座標系の座標点と、上述の第1のカメラ20のカメラの3次元座標系の座標点との対応関係を決める行列を、第1の外部パラメータとして算出する。外部パラメータ算出部205が算出した第1の外部パラメータは、第1のカメラ20側の3次元座標系における第1のカメラ20の位置および姿勢を特定可能な情報である。そして、外部パラメータ算出部205は、算出した第1の外部パラメータと、内部パラメータ算出部203から受信した第1の内部パラメータとを、第1のカメラ20のカメラ情報を示す第1のカメラ情報としてデータサーバ10へ送信する。
空間特徴検出部206は、外部パラメータ算出部205から受信する第1の内部パラメータおよび第1の外部パラメータと、点・線分特徴検出部202から受信する特徴データとに基づいて、第1のマーカー70の周辺の空間特徴を検出する。そして、第1のマーカー70の周辺情報および画像全体の空間特徴に関する情報を示す第1の空間特徴情報をデータサーバ10へ送信する。空間特徴に関する情報(空間特徴情報)には、例えば直線、平面、角などの識別子と、位置情報との組が含まれてもよい。データサーバ10は、第1のカメラ20から送信された第1のカメラ情報、第1のマーカー情報、第1の空間特徴情報、および、第1の識別情報を紐付けて管理(記憶)する。
以上に説明した、第1のカメラ20が有する複数の機能は、CPU103が記憶装置104に格納されたプログラムを実行することにより実現される。ただし、これに限らず、上述の第1のカメラ20が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。
図6は、第2のカメラ30が有する機能の一例を示す図である。なお、図6の例では、本実施形態に関する機能を主に例示しているが、第2のカメラ30が有する機能はこれらに限られるものではない。図6に示すように、第2のカメラ30は、画像取得部301、点・線分特徴検出部302、内部パラメータ算出部303、第2のマーカー検出部304、外部パラメータ算出部305、空間特徴検出部306、レンズ歪情報算出部350、線分・円弧特徴検出部351、マーカー検出部352、マーカー情報記憶部353、を有する。基本的な機能は、第1のカメラ20側の機能と同様であるため、以下では適宜に簡略しながら、第2のカメラ30が有する機能を説明する。
画像取得部301は、第2のカメラ30が撮像した第2の画像を取得する。具体的には、画像取得部301は、撮像素子102により撮像された第2の画像を取得する。
レンズ歪情報算出部350は、画像取得部301により取得された第2の画像を解析し、線分データ(直線または円弧)を線分・円弧特徴検出部351で検出する。レンズ歪情報算出部350は、線分・円弧特徴検出部351で検出された線分データに基づいて、第2のカメラ30のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部352が検出し、レンズ歪情報算出部350は、マーカー検出部352で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部350は、算出したレンズ歪情報を内部パラメータ算出部303へ送信する。また、レンズ歪情報算出部350は、レンズ歪情報と第2の画像の歪を除去した画像を点・線分特徴検出部302へ送信する。あるいは、レンズ歪情報算出部350で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第2の画像を点・線分特徴検出部302へ送信する。また、この例では、第2のカメラ30が撮像した第2の画像を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
点・線分特徴検出部302は、レンズ歪情報算出部350によって算出されたレンズ歪情報と、第2の画像あるいは第2の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部302は、第2のマーカー80の特徴、第2のマーカー80の周辺情報および画像全体の空間特徴などの特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部351で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
第2のマーカー検出部304は、点・線分特徴検出部302で検出した特徴データと、マーカー情報記憶部353に格納されるマーカー識別情報とに基づいて、第2の画像内の第2のマーカー80を検出し、検出された第2のマーカー80の位置および形状を示す第2のマーカー情報を、内部パラメータ算出部303、外部パラメータ算出部305、およびデータサーバ10へ送信する。また、第2のマーカー検出部304は、検出した第2のマーカー80が有する第2のパターンに対応する第2の識別情報を認識し、その認識した第2の識別情報を、第2のマーカー情報と併せてデータサーバ10へ送信する。第2のマーカー情報は、例えば第2のマーカー80の一辺のサイズ、第2のパターンを構成する矩形の一辺のサイズ、第2の画像内の第2のマーカー80の位置を示す情報などを含む。
内部パラメータ算出部303は、レンズ歪情報算出部350から受信したレンズ歪み情報、既知の第2のカメラ30のレンズ焦点距離、第2のマーカー検出部304から受信した第2のマーカー情報などに基づいて、第2のカメラ30の内部パラメータを示す第2の内部パラメータを算出する。第2の内部パラメータは、第2のカメラ30のカメラの3次元座標系(例えばカメラのレンズ中心を原点とする3次元の座標系)の座標点と、第2のカメラ30により撮像された第2の画像の座標系(2次元の座標系)の座標点との対応関係を決める行列で表される。内部パラメータ算出部303は、算出した第2の内部パラメータと、レンズ歪情報算出部350から受信したレンズ歪情報とを外部パラメータ算出部305へ送信する。レンズ歪情報は内部パラメータの1つの情報とすることもでき、以後、「第2の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、第2の内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、第2のカメラ30が撮像した第2の画像を用いて第2の内部パラメータを算出しているが、これに限らず、既知の内部パラメータが予め与えられる形態であってもよい。
外部パラメータ算出部305は、内部パラメータ算出部303から受信した第2の内部パラメータと、第2のマーカー検出部304から受信した第2のマーカー情報とに基づいて、第2のカメラ30の外部パラメータを示す第2の外部パラメータを算出する。外部パラメータ算出部305は、第2のマーカー検出部304により検出された第2のマーカー80を原点(例えば第2のマーカー80の中心または4隅の何れか1つ)とする第2のカメラ30側の3次元座標系を設定する。外部パラメータ算出部305は、設定した第2のカメラ30側の3次元座標系の座標点と、第2のカメラ30のカメラの3次元座標系の座標点との対応関係を決める行列を、第2の外部パラメータとして算出する。外部パラメータ算出部305が算出した第2の外部パラメータは、第2のカメラ30側の3次元座標系における第2のカメラ30の位置および姿勢を特定可能な情報である。そして、外部パラメータ算出部305は、算出した第2の外部パラメータと、内部パラメータ算出部303から受信した第2の内部パラメータとを、第2のカメラ30のカメラ情報を示す第2のカメラ情報としてデータサーバ10へ送信する。
空間特徴検出部306は、外部パラメータ算出部305から受信する第2の内部パラメータおよび第2の外部パラメータと、点・線分特徴検出部302から受信する特徴データとに基づいて、第2のマーカー80の周辺の空間特徴を検出する。そして、第2のマーカー80の周辺情報および画像全体の空間特徴に関する情報を示す第2の空間特徴情報をデータサーバ10へ送信する。データサーバ10は、第2のカメラ30から送信された第2のカメラ情報、第2のマーカー情報、第2の空間特徴情報、および、第2の識別情報を紐付けて管理(記憶)する。以下の説明では、データサーバ10が管理する第1のマーカー情報および第2のマーカー情報を互いに区別しない場合は単に「マーカー情報」と称する場合がある。同様に、データサーバ10が管理する第1の識別情報および第2の識別情報を互いに区別しない場合は単に「識別情報」と称し、第1の空間特徴情報および第2の空間特徴情報を互いに区別しない場合は単に「空間特徴情報」と称する場合がある。
以上に説明した、第2のカメラ30が有する複数の機能は、CPU103が記憶装置104に格納されたプログラムを実行することにより実現される。ただし、これに限らず、例えば上述の第2のカメラ30が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。
図7は、移動カメラ40が有する機能の一例を示す図である。なお、図7の例では、本実施形態に関する機能を主に例示しているが、移動カメラ40が有する機能はこれらに限られるものではない。図7に示すように、移動カメラ40は、画像取得部401、点・線分特徴検出部402、内部パラメータ算出部403、マーカー検出部404、外部パラメータ算出部405、空間特徴検出部406、レンズ歪情報算出部450、線分・円弧特徴検出部451、マーカー検出部452、マーカー情報記憶部453を有する。さらに、移動カメラ40は、照合部407、情報変換部408、記憶部409、シミュレーション部410、データ記憶部454を有する。
以下、移動カメラ40が有する機能について説明する。画像取得部401は、移動カメラ40が撮像した動画像を取得する。より具体的には、画像取得部401は、撮像素子102により時系列に撮像された第3の画像を順次に取得(動画像を取得)する。
レンズ歪情報算出部450は、画像取得部401により取得された第3の画像を解析し、線分データ(直線または円弧)を線分・円弧特徴検出部451で検出する。レンズ歪情報算出部450は、線分・円弧特徴検出部451で検出された線分データに基づいて、移動カメラ40のレンズ歪情報を算出する。なお、線分データに基づいてマーカーをマーカー検出部452が検出し、レンズ歪情報算出部450は、マーカー検出部452で検出されたマーカーの形状およびサイズ情報を利用してレンズ歪情報を算出してもよい。レンズ歪のモデル式はレンズの半径方向の歪係数、円周方向の歪係数を用いた高次式で表され、レンズ歪情報はこれらの係数で表される。レンズ歪情報算出部450は、算出したレンズ歪情報を内部パラメータ算出部403へ送信する。また、レンズ歪情報算出部450は、レンズ歪情報と、第3の画像の歪を除去した画像とを点・線分特徴検出部402へ送信する。あるいは、レンズ歪情報算出部450で、歪を除去した画像を生成することが無い場合は、レンズ歪情報と第3の画像とを点・線分特徴検出部402へ送信する。また、この例では、移動カメラ40が撮像した動画像の画像(第3の画像)を用いてレンズ歪情報を算出しているが、これに限らず、既知のレンズ歪情報が予め与えられる形態であってもよい。
点・線分特徴検出部402は、レンズ歪情報算出部450によって算出されたレンズ歪情報と、第3の画像あるいは第3の画像の歪を除去した画像とを解析する。より具体的には、点・線分特徴検出部402は、マーカーの特徴、マーカーの周辺情報および画像全体の空間特徴(地面または壁などに対応する直線または平面の特徴)などの、動画像に含まれる特徴データを抽出する。なお、レンズ歪を除去した画像を解析するのではなく、線分・円弧特徴検出部451で検出した線分データを、レンズ歪情報を用いて補正した結果を特徴データとして抽出してもよい。
マーカー検出部404は、点・線分特徴検出部402で検出した特徴データと、マーカー情報記憶部453に格納されるマーカー識別情報とに基づいて、動画像内のマーカー(この例では第1のマーカー70または第2のマーカー80)を検出する。マーカー検出部404は、検出したマーカーの位置および形状を示す第3のマーカー情報を、内部パラメータ算出部403および外部パラメータ算出部405へ送信する。第3のマーカー情報は、例えばマーカーの一辺のサイズ、マーカーが有するパターンを構成する矩形の一辺のサイズ、動画像内のマーカーの位置を示す情報などを含む。また、マーカー検出部404は、検出したマーカーが有するパターンに対応する識別情報を認識し、その認識した第3の識別情報を、第3のマーカー情報と併せて外部パラメータ算出部405、およびデータ記憶部454へ送信する。例えばマーカー検出部404は、複数フレームの画像を用いて、マーカーの検出および第3の識別情報の認識を実施することもできる。
内部パラメータ算出部403は、レンズ歪情報算出部450から受信したレンズ歪み情報、既知の移動カメラ40のレンズ焦点距離、レンズの歪み係数、マーカー検出部404から受信した第3のマーカー情報などに基づいて、移動カメラ40の内部パラメータを示す第3の内部パラメータを算出する。第3の内部パラメータは、移動カメラ40のカメラの3次元座標系(例えばカメラのレンズ中心を原点とする3次元の座標系)の座標点と、移動カメラ40により撮像された動画像の画像(第3の画像)の座標系(2次元の座標系)の座標点との対応関係を決める行列で表される。内部パラメータ算出部403は、算出した第3の内部パラメータと、レンズ歪情報算出部450から受信したレンズ歪情報とを外部パラメータ算出部405へ送信する。レンズ歪情報は、内部パラメータの1つの情報とすることもでき、以後、「第3の内部パラメータ」と称した場合は、レンズ歪情報が含まれるものとする。なお、内部パラメータを算出する方法としては公知の様々な技術を利用することができる。また、この例では、移動カメラ40が撮像した動画像の画像(第3の画像)を用いて内部パラメータを算出しているが、これに限らず、既知の内部パラメータが予め与えられる形態であってもよい。
外部パラメータ算出部405は、内部パラメータ算出部403から受信した第3の内部パラメータと、マーカー検出部404から受信した第3のマーカー情報とに基づいて、移動カメラ40の外部パラメータを示す第3の外部パラメータを算出する。この例では、外部パラメータ算出部405は、マーカー検出部404により検出された1つ目のマーカー(この例では第1のマーカー70)を原点(例えば第1のマーカー70の中心または4隅の何れか1つ)とする移動カメラ40側の3次元座標系を設定する。外部パラメータ算出部405は、設定した移動カメラ40側の3次元座標系の座標点と、上述の移動カメラ40のカメラの3次元座標系の座標点との対応関係を決める行列を、第3の外部パラメータとして算出する。外部パラメータ算出部405により算出された第3の外部パラメータは、移動カメラ40側の3次元座標系における移動カメラ40の位置および姿勢を特定可能な情報である。この例では、外部パラメータ算出部405は、2つ目以降のマーカー(この例では第2のマーカー80)が検出されても原点を変更することはせず、移動カメラ40により順次に撮像される動画像に基づいて(動画像から求められる被写体の移動量および加速度等も利用可能)、第3の外部パラメータを算出する。
外部パラメータ算出部405は、マーカー検出部404から第3のマーカー情報を受信するたびに(つまり新たにマーカーが検出されるたびに)、移動カメラ40の第3の外部パラメータを算出する。そして、外部パラメータ算出部405は、その算出した第3の外部パラメータと、内部パラメータ算出部403から受信した第3の内部パラメータとを、移動カメラ40のカメラ情報を示す第3のカメラ情報としてデータ記憶部454へ送信する。また、外部パラメータ算出部405は、マーカー検出部404から受信した第3のマーカー情報をデータ記憶部454へ送信する。つまり、この例では、マーカー検出部404によりマーカーが検出されるたびに、該マーカーに対応する第3のカメラ情報および第3のマーカー情報がデータ記憶部454へ送信される。
空間特徴検出部406は、外部パラメータ算出部405から受信する第3の内部パラメータおよび第3の外部パラメータと、点・線分特徴検出部402から受信する特徴データとに基づいて、マーカーの周辺の空間特徴を検出する。そして、マーカーの周辺情報および画像全体の空間特徴に関する情報を示す第3の空間特徴情報をデータ記憶部454へ送信する。この例では、第3の空間特徴情報には、例えば直線、平面、角などの識別子と、位置情報との組が含まれてもよい。データ記憶部454は、移動カメラ40の第3のカメラ情報、第3のマーカー情報、第3の空間特徴情報、および、第3の識別情報が格納される。
照合部407は、データ記憶部454から第3のマーカー情報と第3の識別情報の組を読出し、当該組に含まれる第3の識別情報と一致する識別情報がデータサーバ10に存在するか否かを確認する。照合部407は、確認した識別情報がデータサーバ10に存在する場合は、基準座標系を設定する。具体的には、第1のカメラ20が撮像した第1画像から検出した第1のマーカー70又は、第2のカメラ30が撮像した第2画像から検出した第2のマーカー80と、移動カメラ40が撮像した動画像から検出したマーカーが同一であると関連づけ、基準座標を設定し、基準座標系に設定されたマーカーの識別情報であることをデータサーバ10に送信する。この例では、基準座標系は第1のマーカー70を基準とする。複数の第3の識別情報のうち、基準座標として設定された第3の識別情報は、基準座標系に設定された識別情報を含み、情報変換部408と、シミュレーション部410へ送信する。また、確認した識別情報がデータサーバ10に存在する場合、照合部407は、該識別情報に紐付く第1又は第2のカメラ情報、第1又は第2のマーカー情報、および、第1又は第2の空間特徴情報を情報変換部408へ送信するようにデータサーバ10へ指示する。この指示を受けたデータサーバ10は、第1又は第2のカメラ情報、第1又は第2のマーカー情報、および、第1又は第2の空間特徴情報を情報変換部408へ送信する。
情報変換部408は、データサーバ10から第1又は第2のカメラ情報、第1又は第2のマーカー情報および第1又は第2の空間特徴情報を受信した場合、第1又は第2のカメラ情報、第1又は第2のマーカー情報および第1又は第2の空間特徴情報を、上述の基準座標系に合わせて変換する。つまり、情報変換部408は、移動カメラ40により撮像された動画像から、第1のカメラ20により撮像された第1の画像に含まれる第1のマーカー70、又は、第2のカメラ30により撮像された第2の画像に含まれる第2のマーカー80が検出された場合、第1のカメラ20の第1のカメラ情報等、又は、第2のカメラ30の第2のカメラ情報等を基準座標系に合わせて変換する。情報変換部408の具体的な内容については後述する。情報変換部408により変換された情報(変換済みの情報)は記憶部409に記憶される。
シミュレーション部410は、記憶部409に記憶された第1のカメラ20および第2のカメラ30の各々の変換済みの情報を読出し、移動カメラ40側のデータ記憶部454から情報を読出して変換し、比較して差分を検出する。シミュレーション部410のより具体的な機能については後述する。
図8は、情報変換部408、記憶部409、シミュレーション部410のより具体的な内容を説明するための機能ブロック図である。図8に示すAの部分は、図7に示すAの部分に対応している。上述したように、照合部407は、データ記憶部454から読出した組に含まれる第3の識別情報と一致する識別情報がデータサーバ10に存在する場合、該識別情報に紐付く第1のカメラ20又は第2のカメラ30の情報(第1又は第2のカメラ情報、第1又は第2のマーカー情報、第1又は第2の空間特徴情報)を情報変換部408へ送信するようにデータサーバ10へ指示する。この指示を受けたデータサーバ10は、第1のカメラ20又は第2のカメラ30の情報を情報変換部408へ送信する。また、情報変換部408は、照合部407から基準座標系に設定された識別情報を含む第3の識別情報を受信する。
つまり、移動カメラ40により撮像された動画像から、第1のカメラ20により撮像された第1の画像に含まれる第1のマーカー70、または、第2のカメラ30により撮像された第2の画像に含まれる第2のマーカー80が検出されるたびに、第1のカメラ20又は第2のカメラ30の情報が情報変換部408に入力され、情報変換部408による変換が行われる。この例では、移動カメラ40の動画像から第1のマーカー70が検出された場合、第1のカメラ20の第1のカメラ情報、第1のマーカー情報、および第1の空間特徴情報が情報変換部408に入力される。その後、第2の撮像領域を撮像可能な位置に移動した移動カメラ40の動画像から第2のマーカー80が検出された場合、第2のカメラ30の第2のカメラ情報、第2のマーカー情報、および第2の空間特徴情報が情報変換部408に入力される。
図8に示すように、情報変換部408は、算出部421、マーカー情報変換部422、および、空間特徴情報変換部423を有する。
算出部421は、上述の基準座標系に合わせて第1のカメラ20の第1のカメラ情報又は第2のカメラ30の第2のカメラ情報を変換し、第1又は第2の基準座標系カメラ情報を出力する。図9は、算出部421が有する機能の一例を示す図である。図9に示すように、例えば算出部421は、第1の算出部501と、第2の算出部502とを有する。なお、図9の例では、本実施形態に関する機能を主に例示しているが、算出部421が有する機能はこれらに限られるものではない。
第1の算出部501は、第1のカメラ20により撮像される第1のマーカー70を含む第1の画像と、移動カメラ40により撮像される第1のマーカー70を含む第1の動画像とに基づいて、第1のカメラ20の位置を示す第1の基準座標系カメラ情報を算出する。より具体的には、第1の算出部501は、移動カメラ40により撮像された動画像から第1のマーカー70が検出された場合、第1の画像に基づいて、第1のカメラ情報を基準座標系の第1のカメラ20の位置を示す第1の基準座標系カメラ情報に変換する。この例では、移動カメラ40により撮像される第1のマーカー70を含む動画像が「第1の動画像」に対応しているが、これに限られるものではない。また、この例では、第1の基準座標系カメラ情報は、基準座標系の座標点と、第1のカメラ20のカメラの3次元座標系の座標点との対応関係を決める第1のカメラ20の第1の外部パラメータ(基準座標系に合わせた第1の外部パラメータ、以下「変換済みの第1の外部パラメータ」と称する場合がある)であるが、これに限られるものではない。第1の基準座標系カメラ情報は、第1のカメラ20、第2のカメラ30、および、移動カメラ40に共通の基準座標系と、第1のカメラ20の座標系との対応関係を示す情報であればよい。以下、第1の基準座標系カメラ情報の具体的な算出方法を説明する。
本実施形態の第1の算出部501は、データサーバ10から第1のカメラ20の情報を受信した場合、つまり、移動カメラ40により撮像された動画像から第1のマーカー70が検出された場合、第1の外部パラメータを第1の基準座標系カメラ情報に変換する。第1の算出部501は、基準座標系における第1のマーカー70の3次元位置(x,y,z)および向き(回転)と、第1のカメラ20の第1の内部パラメータと、第1の画像内の第1のマーカー70の位置および向きとに基づいて、基準座標系に合わせた第1のカメラ20の第1の外部パラメータを第1の基準座標系カメラ情報として算出する。
この例では、第1のカメラ20の第1の内部パラメータは、データサーバ10から受信した第1のカメラ20の第1のカメラ情報に含まれている。また、第1の画像内の第1のマーカー70の位置を示す情報は、データサーバ10から受信した第1のマーカー情報に含まれている。上述したように、データサーバ10から受信した第1のカメラ20の第1のカメラ情報および第1のマーカー情報は、第1の画像を元に求められる。また、この例では、基準座標系における第1のマーカー70の位置は基準座標系の原点に設定されるため、移動カメラ40の動画像を用いなくても特定できる。したがって、第1の算出部501は、第1の画像に基づいて、基準座標系における第1のカメラ20の位置を示す第1の基準座標系カメラ情報を算出していると考えることができる。第1の基準座標系カメラ情報は、「第1のカメラ位置情報」の一例であるが、これに限定されない。また、上述したように、この例では、第1の基準座標系カメラ情報は、第1のカメラ20の変換済みの第1の外部パラメータであるが、これに限られるものではない。
第2の算出部502は、第1のカメラ20と離間して配置される第2のカメラ30により撮像される第2のマーカー80を含む第2の画像と、移動カメラ40により撮像される第2のマーカー80を含む第2の動画像とに基づいて、第2のカメラ30の位置を示す第2の基準座標系カメラ情報を算出する。より具体的には、第2の算出部502は、移動カメラ40により撮像された動画像から第2のマーカー80が検出された場合、第2の画像と、移動カメラ40により撮像された動画像とに基づいて、第2のカメラ情報を基準座標系の第2のカメラ30の位置を示す第2の基準座標系カメラ情報に変換する。この例では、移動カメラ40により撮像される第2のマーカー80を含む動画像が「第2の動画像」に対応しているが、これに限られるものではない。また、この例では、第2の基準座標系カメラ情報は、基準座標系の座標点と、第2のカメラ30のカメラの3次元座標系の座標点との対応関係を決める第2のカメラ30の第2の外部パラメータ(基準座標系に合わせた第2の外部パラメータ、以下「変換済みの第2の外部パラメータ」と称する場合がある)であるが、これに限られるものではない。第2の基準座標系カメラ情報は、基準座標系と、第2のカメラ30の座標系との対応関係を示す情報であればよい。以下、第2の基準座標系カメラ情報の具体的な算出方法を説明する。
本実施形態の第2の算出部502は、データサーバ10から第2のカメラ30の情報を受信した場合、つまり、移動カメラ40により撮像された動画像から第2のマーカー80が検出された場合、第2の外部パラメータを第2の基準座標系カメラ情報に変換する。上述したように、第2のマーカー80が検出された場合、第2のマーカー80に対応する第3のカメラ情報および第3のマーカー情報が、データ記憶部454から情報変換部408へ送信される。第2の算出部502は、データ記憶部454から受信した第2のマーカー80に対応する第3のカメラ情報および第3のマーカー情報に基づいて、基準座標系(この例では第1のマーカー70を原点)における第2のマーカー80の3次元位置(x,y,z)および向き(回転)を特定する。より具体的には、第2の算出部502は、第3のマーカー情報が示す第2のマーカー80の位置および向きと、第3のカメラ情報に含まれる第3の外部パラメータおよび第3の内部パラメータとに基づいて、基準座標系における第2のマーカー80の位置および向きを特定する。第3のカメラ情報に含まれる第3の外部パラメータは、例えば移動カメラ40の移動量と回転量、つまり、第1のマーカー70検出時の移動カメラ40の向きと、第2のマーカー80検出時の移動カメラ40の向きとの差分を表している。
上述したように、この例では、第2のマーカー80に対応する第3のカメラ情報および第3のマーカー情報は、移動カメラ40により撮像された動画像を元に求められる。したがって、第2の算出部502は、移動カメラ40により撮像された動画像に基づいて、基準座標系における第2のマーカー80の位置および向きを特定していると考えることができる。
そして、第2の算出部502は、基準座標系における第2のマーカー80の位置および向きと、第2のカメラ30の第2の内部パラメータと、第2の画像内の第2のマーカー80の位置および向きとに基づいて、基準座標系に合わせた第2のカメラ30の第2の外部パラメータを第2の基準座標系カメラ情報として算出する。この例では、第2のカメラ30の第2の内部パラメータは、データサーバ10から受信した第2のカメラ情報に含まれている。また、第2の画像内の第2のマーカー80の位置を示す情報は、データサーバ10から受信した第2のマーカー情報に含まれている。上述したように、第2のカメラ30の第2のカメラ情報および第2のマーカー情報は、第2の画像を元に求められる。
以上より、本実施形態の第2の算出部502は、第2の画像と、移動カメラ40により撮像された動画像とに基づいて、基準座標系における第2のカメラ30の位置を示す第2の基準座標系カメラ情報を算出していると考えることができる。第2の基準座標系カメラ情報は、「第2のカメラ位置情報」の一例であるが、これに限定されない。また、上述したように、この例では、第2の基準座標系カメラ情報は、第2のカメラ30の変換済みの第2の外部パラメータであるが、これに限られるものではない。以上のようにして算出部421により算出された第1の基準座標系カメラ情報および第2の基準座標系カメラ情報は、記憶部409に記憶される。以下の説明では、第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を区別しない場合は、「基準座標系カメラ情報」と称する場合がある。
図8に戻って説明を続ける。マーカー情報変換部422は、「第1の変換部」の一例であり、第1の画像に含まれる第1のマーカー70の位置および形状の情報を基準座標系に合わせて変換して第1の変換済情報を出力、又は第2の画像に含まれる第2のマーカー80の位置および形状の情報を基準座標系に合わせて変換して第2の変換済情報を出力する。以下、具体的に説明する。この例では、マーカー情報変換部422は、第1のマーカー情報又は第2のマーカー情報を上述の基準座標系に合わせて変換する。例えばマーカー情報変換部422は、算出部421により算出された第1の基準座標系カメラ情報又は第2の基準座標系カメラ情報と、第1のカメラ20の第1の内部パラメータ又は第2のカメラ30の第2の内部パラメータとを用いて、上記変換を行うことができる。以下では、マーカー情報変換部422により変換された第1のマーカー情報を、「変換済みの第1のマーカー情報」と称し、マーカー情報変換部422により変換された第2のマーカー情報を、「変換済みの第2のマーカー情報」と称する場合がある。両者を区別しない場合は、「変換済みのマーカー情報」と称する。変換済みのマーカー情報は、記憶部409に記憶される。この例では、変換済みの第1のマーカー情報は上述の「第1の変換済情報」に対応し、変換済みの第2のマーカー情報は上述の「第2の変換済情報」に対応しているが、これに限られるものではない。
図10は、マーカー情報変換部422が有する機能の一例を示す図である。図10に示すように、マーカー情報変換部422は、第1の位置形状変換部511と、第2の位置形状変換部512とを有する。なお、マーカー情報変換部422が有する機能はこれらに限られるものではない。
第1の位置形状変換部511は、第1の画像内の第1のマーカー70の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えば第1の位置形状変換部511は、上述の第1の基準座標系カメラ情報(この例では、変換済みの第1の外部パラメータ)と、データサーバ10から取得した第1のカメラ20の第1の内部パラメータとを用いて、データサーバ10から取得した第1のマーカー情報を基準座標系に合わせて変換する。以下では、基準座標系に合わせて変換された第1のマーカー情報を、「変換済みの第1のマーカー情報」と称する。
同様に、第2の位置形状変換部512は、第2の画像内の第2のマーカー80の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えば第2の位置形状変換部512は、上述の第2の基準座標系カメラ情報(この例では、変換済みの第2の外部パラメータ)と、データサーバ10から取得した第2のカメラ30の第2の内部パラメータとを用いて、データサーバ10から取得した第2のマーカー情報を基準座標系に合わせて変換する。以下では、基準座標系に合わせて変換された第2のマーカー情報を、「変換済みの第2のマーカー情報」と称する。
図8に戻って説明を続ける。空間特徴情報変換部423は、第1又は第2の空間特徴情報を上述の基準座標系に合わせて変換する。例えば空間特徴情報変換部423は、算出部421により算出された第1又は第2の基準座標系カメラ情報と、既知の第1のカメラ20の第1の内部パラメータ又は第2のカメラ30の第2の内部パラメータとを用いて、上記変換を行うことができる。以下では、空間特徴情報変換部423により変換された第1の空間特徴情報を、「変換済みの第1の空間特徴情報」と称し、変換された第2の空間特徴情報を、「変換済みの第2の空間特徴情報」と称する場合がある。両者を区別しない場合は、「変換済みの空間特徴情報」と称する。変換済みの空間特徴情報は、記憶部409に記憶される。
図11は、空間特徴情報変換部423が有する機能の一例を示す図である。図11に示すように、空間特徴情報変換部423は、第1の特徴情報変換部521と、第2の特徴情報変換部522とを有する。なお、空間特徴情報変換部423が有する機能はこれらに限られるものではない。
第1の特徴情報変換部521は、上述の第1の空間特徴情報を、上述の基準座標系に合わせて変換する。第1の特徴情報変換部521は、例えばスケール、並行移動、回転移動などの変換を行う。例えば第1の特徴情報変換部521は、上述の第1の基準座標系カメラ情報(この例では、変換済みの第1の外部パラメータ)と、データサーバ10から取得した第1のカメラ20の第1の内部パラメータとを用いて、データサーバ10から取得した第1の空間特徴情報を基準座標系に合わせて変換する。
同様に、第2の特徴情報変換部522は、上述の第2の空間特徴情報を、上述の基準座標系に合わせて変換する。例えば第2の特徴情報変換部522は、上述の第2の基準座標系カメラ情報(この例では、変換済みの第2の外部パラメータ)と、データサーバ10から取得した第2のカメラ30の第2の内部パラメータとを用いて、データサーバ10から取得した第2の空間特徴情報を基準座標系に合わせて変換する。
図8に戻って説明を続ける。図8に示すように、記憶部409は、カメラ情報記憶部431と、マーカー情報記憶部432と、空間特徴情報記憶部433と、を有する。カメラ情報記憶部431は、算出部421により算出された基準座標系カメラ情報を記憶する記憶領域である。マーカー情報記憶部432は、マーカー情報変換部422により変換された変換済みのマーカー情報を記憶する記憶領域である。空間特徴情報記憶部433は、空間特徴情報変換部423により変換された変換済みの空間特徴情報を記憶する記憶領域である。
図8に示すように、シミュレーション部410は、変換済み情報取得部441、マーカー情報・空間特徴情報変換部442、差分検出部443、再計算部444、および補正部445を有する。
変換済み情報取得部441は、変換済み情報(基準座標系カメラ情報、変換済みマーカー情報、および、変換済み空間特徴情報を含む)を記憶部409から取得する。この例では、変換済み情報取得部441は、第1のカメラ20および第2のカメラ30の各々の変換済み情報を取得したタイミングで、第1のカメラ20および第2のカメラ30の各々の変換済み情報を差分検出部443へ送信する。
マーカー情報・空間特徴情報変換部442は、照合部407から基準座標系に設定された識別情報を含む第3の識別情報を受信し、移動カメラ40側の情報を基準座標系に合わせて変換して差分検出部443へ送信する。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40の第3のマーカー情報を上述の基準座標系に合わせて変換する機能を有している。マーカー情報・空間特徴情報変換部442は「第2の変換部」の一例であり、移動カメラ40により撮像される動画像に含まれる第1のマーカー70の位置および形状の情報を基準座標系に合わせて変換して第3の変換済情報を出力する。また、マーカー情報・空間特徴情報変換部442は、移動カメラ40により撮像される動画像に含まれる第2のマーカー80の位置および形状の情報を基準座標系に合わせて変換して第4の変換済情報を出力する。より具体的な内容については後述する。さらに、マーカー情報・空間特徴情報変換部442は、移動カメラ40の第3の空間特徴情報を上述の基準座標系に合わせて変換する機能も有している。
図12は、マーカー情報・空間特徴情報変換部442が有する機能の一例を示す図である。図12に示すように、例えばマーカー情報・空間特徴情報変換部442は、第3の位置形状変換部531と、第4の位置形状変換部532と、第3の特徴情報変換部533と、第4の特徴情報変換部534と、を有する。なお、マーカー情報・空間特徴情報変換部442が有する機能はこれらに限られるものではない。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40により撮像された動画像に基づいて、上述の基準座標系の空間を構築(例えば3次元点群を示す3Dモデルを構築)する機能を有していてもよい。
第3の位置形状変換部531は、移動カメラ40により撮像された動画像内の第1のマーカー70の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40により第1のマーカー70が検出されたときの移動カメラ40の第3の内部パラメータおよび第3の外部パラメータを用いて、上記変換を行うことができる。また、この例では、基準座標系における第1のマーカー70の位置は基準座標系の原点に設定されるため、移動カメラ40により撮像された動画像内の第1のマーカー70の位置および形状の情報を用いることもできる。この例では、第3の位置形状変換部531により変換された第1のマーカー70の位置および形状の情報は、上述の「第3の変換済情報」に対応しているが、これに限られるものではない。同様に、第4の位置形状変換部532は、移動カメラ40により撮像された動画像内の第2のマーカー80の位置および形状の情報を、上述の基準座標系における位置および形状の情報に変換する。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40により第2のマーカー80が検出されたときの移動カメラ40の第3の内部パラメータおよび第3の外部パラメータを用いて、上記変換を行うことができる。この例では、第4の位置形状変換部532により変換された第2のマーカー80の位置および形状の情報は、上述の「第4の変換済情報」に対応しているが、これに限られるものではない。
第3の特徴情報変換部533は、移動カメラ40により撮像された動画像内の第1のマーカー70の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換する。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40により第1のマーカー70が検出されたときの移動カメラ40の第3の内部パラメータおよび第3の外部パラメータを用いて、上記変換を行うことができる。また、この例では、基準座標系における第1のマーカー70の位置は基準座標系の原点に設定されるため、移動カメラ40により撮像された動画像内の第1のマーカー70の周辺情報の特徴情報を用いることもできる。同様に、第4の特徴情報変換部534は、移動カメラ40により撮像された動画像内の第2のマーカー80の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換する。例えばマーカー情報・空間特徴情報変換部442は、移動カメラ40により第2のマーカー80が検出されたときの移動カメラ40の第3の内部パラメータおよび第3の外部パラメータを用いて、上記変換を行うことができる。
図8に戻って説明を続ける。差分検出部443は、第1のカメラ20および第2のカメラ30側の変換済みのマーカー情報と、移動カメラ40側の変換済みのマーカー情報との差分を検出する。この例では、差分検出部443は、第1の画像に基づく第1のマーカー70の位置および形状の情報と、移動カメラ40により撮像された動画像に基づく第1のマーカー70の位置および形状の情報との差分を示す第1の差分を検出する。また、差分検出部443は、第2の画像に基づく第2のマーカー80の位置および形状の情報と、移動カメラ40により撮像された動画像に基づく第2のマーカー80の位置および形状の情報との差分を示す第2の差分を検出する。より具体的には、以下のとおりである。
差分検出部443は、上述の第1の位置形状変換部511により変換された第1のマーカー70の位置および形状の情報(この例では「第1の変換済情報」に対応)と、上述の第3の位置形状変換部531により変換された第1のマーカー70の位置および形状の情報(この例では「第3の変換済情報」に対応)との差分を示す第1の差分を検出する。つまり、差分検出部443は、上述の第1の変換済情報と、上述の第3の変換済情報とを比較して第1の差分を検出する。上述したように、第1の位置形状変換部511により変換された第1のマーカー70の位置および形状の情報は、第1の画像内の第1のマーカー70の位置および形状を基準座標系における位置および形状の情報に変換されたものである。第3の位置形状変換部531により変換された第1マーカー70の位置および形状の情報は、移動カメラ40により撮像された動画像内の第1のマーカー70の位置および形状が基準座標系における位置および形状の情報に変換されたものである。
また、差分検出部443は、上述の第2の位置形状変換部512により変換された第2のマーカー80の位置および形状の情報(この例では「第2の変換済情報」に対応)と、上述の第4の位置形状変換部532により変換された第2のマーカー80の位置および形状の情報(この例では「第4の変換済情報」に対応)との差分を示す第2の差分を検出する。つまり、差分検出部443は、上述の第2の変換済情報と、上述の第4の変換済情報とを比較して第2の差分を検出する。上述したように、第2の位置形状変換部512により変換された第2のマーカー80の位置および形状の情報は、第2の画像内の第2のマーカー80の位置および形状が基準座標系における位置および形状の情報に変換されたものである。第4の位置形状変換部532により変換された第2のマーカー80の位置および形状の情報は、移動カメラ40により撮像された動画像内の第2のマーカー80の位置および形状の情報が基準座標系における位置および形状に変換されたものである。なお、例えば差分検出部443は、移動カメラ40の第3の外部パラメータを用いて固定カメラから見たマーカーを視点変換して第1の差分および第2の差分を検出する形態であってもよいし、それとは逆の視点変換を行う形態であってもよい。
さらに、差分検出部443は、上述の第1の特徴情報変換部521により変換された空間特徴情報と、上述の第3の特徴情報変換部533により変換された空間特徴情報との差分を示す第3の差分を検出する。つまり、差分検出部443は、空間特徴情報を含めた詳細な照合(完全一致に限らず、部分一致または近似に基づく照合でもよい)を行って、上述の第3の差分を検出する。上述したように、第1の特徴情報変換部521により変換された空間特徴情報は、第1の画像内の第1のマーカー70の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換したものである。第3の特徴情報変換部533により変換された空間特徴情報は、移動カメラ40により撮像された動画像内の第1のマーカー70の周辺情報の特徴情報を、上述の基準座標系における特徴情報に変換したものである。
同様に、差分検出部443は、上述の第2の特徴情報変換部522により変換された空間特徴情報と、上述の第4の特徴情報変換部534により変換された空間特徴情報との差分を示す第4の差分を検出する。上述したように、第2の特徴情報変換部522により変換された空間特徴情報は、第2の画像内の第2のマーカー80の周辺情報の特徴情報を、基準座標系における特徴情報に変換したものである。第4の特徴情報変換部534により変換された空間特徴情報は、移動カメラ40により撮像された動画像内の第2のマーカー80の周辺情報の特徴情報を、基準座標系における空間特徴情報に変換したものである。
以上のように差分検出部443により検出された第1乃至第4の差分は補正部445へ入力する。差分検出部443は、第1の差分及び第3の差分、又は第2の差分及び第4の差分の各々の値を、補正部445へ送信する。これに限定されず、第1の差分、又は第2の差分のみを検出し、補正部445へ送信してもよい。補正部445は、第1の差分に基づいて上述の第1の基準座標系カメラ情報(この例では、変換済みの第1の外部パラメータ)を補正し、第2の差分に基づいて上述の第2の基準座標系カメラ情報(この例では、変換済みの第2の外部パラメータ)を補正する。又は、補正部445は、第1の差分及び第3の差分に基づいて上述の第1の基準座標系カメラ情報(この例では、変換済みの第1の外部パラメータ)を補正し、第2の差分及び第4の差分に基づいて上述の第2の基準座標系カメラ情報(この例では、変換済みの第2の外部パラメータ)を補正してもよい。より具体的には、補正部445は、第1の差分、第3の差分、第2の差分、および、第4の差分の各々が許容値以下となるように、上述の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を補正する。上記許容値は設計条件等に応じて任意に変更可能である。
補正部445により第1の基準座標系カメラ情報および第2の基準座標系カメラ情報が補正された場合、補正後の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報は、再計算部444に入力される。この例では、再計算部444は、補正後の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を補正部445から取得した場合、変換済みのマーカー情報および変換済みの空間特徴情報を変換済み情報取得部441から取得する。そして、再計算部444は、補正部445から取得した補正後の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を用いて、変換済み情報取得部441から取得した変換済みのマーカー情報および変換済みの空間特徴情報を再計算する。そして、再計算部444は、再計算後のマーカー情報および空間特徴情報を差分検出部443へ入力する。そして、差分検出部443は、再度、上述の第1の差分と第3の差分および第2の差分と第4の差分を検出して補正部445に入力する。
補正部445は、差分検出部443から入力された第1の差分、第3の差分、第2の差分および第4の差分が許容値以下の場合は、そのときの第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を出力するとともに、そのときの変換済みの空間特徴情報(基準座標系に合わせて変換された空間特徴情報)を出力する。
例えば、補正部445からの第1の基準座標系カメラ情報、第2の基準座標系カメラ情報および変換済みの空間特徴情報の出力先は、情報処理装置、エッジサーバ(店舗内サーバ)、クラウドサーバなど最終的なサービスを提供するためのサーバなどでもよい。例えばサーバは、これらの情報を用いた処理に基づくサービス情報を生成して、ユーザに提供(例えばユーザが所持する端末(移動カメラ40)に出力)することができる。上記処理としては、例えば位置補正後の第1のカメラ20又は第2のカメラ30の画像を用いた認識処理における様々な処理が想定される。例えば、高さのある障害物が存在するために人または物が移動できない領域であることを判定する処理、人または物の重なりなどを判定する処理、移動経路などのデータを第1のカメラ20又は第2のカメラ30の画像に重畳する処理、3D空間を描画する処理などが想定される。ただし、上記処理は、以上の例示に限られるものではない。
以上に説明した移動カメラ40が有する複数の機能は、CPU103が記憶装置104に格納されたプログラムを実行することにより実現される。ただし、これに限らず、例えば上述の移動カメラ40が有する複数の機能の全部または一部が専用のハードウェア回路で実現される形態であってもよい。また、マーカー情報記憶部253、マーカー情報記憶部353、マーカー情報記憶部453、データ記憶部454、記憶部409は、例えば記憶装置104等であってもよい。本実施形態においては、移動カメラ40は、上述の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を算出する「カメラ情報算出装置」として機能する。
図13は、本実施形態の移動カメラ40の動作例を示すフローチャートである。各ステップの具体的な内容は上述したとおりであるので、適宜に省略して説明する。なお、各ステップの順番は任意に変更可能であり、図13の例に限られるものではない。
図13に示すようにマーカー検出部404が第1のパターン(第1のマーカー70)を検出すると(ステップS1)、シミュレーション部410内のマーカー情報・空間特徴情報変換部442は移動カメラ40側の情報を変換する(ステップS2)。上述したように、マーカー情報・空間特徴情報変換部442は、マーカー検出部404により検出された第1のマーカー70の位置および形状の情報を基準座標系に合わせて変換する。また、マーカー情報・空間特徴情報変換部442は、空間特徴検出部406により検出された第1のマーカー70の周辺情報の特徴情報を基準座標系に合わせて変換する。具体的な内容は上述したとおりである。
また、照合部407は、マーカー検出部404により検出された第1のパターン(第1のマーカー70)に対応する第1の識別情報がデータサーバ10に存在するか否かを照合する(ステップS3)。ここでは、第1の識別情報がデータサーバ10に存在するとして説明を続ける。次に、情報変換部408は、データサーバ10から、第1のカメラ情報、第1のマーカー情報および第1の空間特徴情報を取得する(ステップS4)。
次に、情報変換部408は、ステップS4で取得した情報(第1のカメラ情報、第1のマーカー情報および第1の空間特徴情報)を、上述の基準座標系に合わせて変換する(ステップS5)。具体的な内容は上述したとおりである。
その後、第2のカメラ30の撮像領域を撮像可能な位置に移動した移動カメラ40が第2のパターン(第2のマーカー80)を検出すると(ステップS6)、マーカー情報・空間特徴情報変換部442は移動カメラ40側の情報を変換する(ステップS7)。上述したように、マーカー情報・空間特徴情報変換部442は、マーカー検出部404により検出された第2のマーカー80の位置および形状の情報を基準座標系に合わせて変換する。また、空間特徴検出部406により検出された第2のマーカー80の周辺情報の特徴情報を基準座標系に合わせて変換する。具体的な内容は上述したとおりである。
また、照合部407は、マーカー検出部404により検出された第2のパターン(第2のマーカー80)に対応する第2の識別情報がデータサーバ10に存在するか否かを照合する(ステップS8)。ここでは、第2の識別情報がデータサーバ10に存在するとして説明を続ける。次に、情報変換部408は、データサーバ10から、第2のカメラ情報、第2のマーカー情報および第2の空間特徴情報を取得する(ステップS9)。
次に、情報変換部408は、ステップS9で取得した情報(第2のカメラ30のカメラ情報、第2のマーカー情報および第2の空間特徴情報)を、上述の基準座標系に合わせて変換する(ステップS10)。具体的な内容は上述したとおりである。
次に、シミュレーション部410内の差分検出部443は、上述の第1の差分または第2の差分を検出する(ステップS11)。具体的な内容は上述したとおりである。ステップS11で検出された第1の差分または第2の差分が許容値以上の場合は(ステップS12:Yes)、補正部445は、上述の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を補正する(ステップS13)。そして、再計算部444は、補正後の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を用いて、第1のカメラ20又は第2のカメラ30側のマーカー情報および空間特徴情報を再計算し(ステップS14)、ステップS11以降の処理が繰り返される。
一方、ステップS11で検出された第1の差分または第2の差分が許容値より小さい場合は(ステップS12:No)、そのときの第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を出力するとともに、そのときの変換済みの空間特徴情報を出力する(ステップS15)。
以上に説明したように、移動カメラ40は、第1のカメラ20により撮像される第1のマーカー70を含む第1の画像と、移動カメラ40により撮像される第1のマーカー70を含む第1の動画像とに基づいて、第1のカメラ20の位置を示す第1の基準座標系カメラ情報を算出する。また、移動カメラ40は、第1のカメラ20と離間して配置される第2のカメラ30により撮像される第2のマーカー80を含む第2の画像と、移動カメラ40により撮像される第2のマーカー80を含む第2の動画像とに基づいて、第2のカメラ30の位置を示す第2の基準座標系カメラ情報を算出する。より具体的には、移動カメラ40は、移動しながら撮像した動画像から第1のマーカー70を検出した場合、第1の画像に基づいて、第1のマーカー70を基準とする基準座標系における第1のカメラ20の位置を示す第1の基準座標系カメラ情報を算出する。その後、移動カメラ40は、移動しながら撮像した動画像から第2のマーカー80を検出した場合、第2の画像と、撮像した動画像とに基づいて、基準座標系における第2のカメラ30の位置を示す第2の基準座標系カメラ情報を算出する。つまり、本実施形態では、移動カメラ40の動画像により、第1のカメラ20の撮像領域と、第2のカメラ30の撮像領域とが認識され、移動カメラ40側の基準座標系に第1のカメラ20および第2のカメラ30の各々がマッピングされる。
本実施形態によれば、例えば第1のカメラ20および第2のカメラ30のそれぞれの撮像画像に共通の被写体を撮像することが困難な場合であっても、基準座標系における第1のカメラ20と第2のカメラ30との位置関係を求めることができる。すなわち、本実施形態によれば、それぞれの撮像画像に共通の被写体を撮像することができない複数のカメラの位置関係を求めることができる。
また、上述したように、移動カメラ40は、第1の画像に基づく第1のマーカー70の位置および形状の情報と、移動カメラ40の動画像に基づく第1のマーカー70の位置および形状の情報との差分を示す第1の差分(第1のマーカー70の差分)を検出する。また、移動カメラ40は、第2の画像に基づく第2のマーカー80の位置および形状の情報と、移動カメラ40の動画像に基づく第2のマーカー80の位置および形状の情報との差分を示す第2の差分(第2のマーカー80の差分)を検出する。そして、移動カメラ40は、第1の差分または第2の差分が許容値以下になるよう、第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を補正する。これにより、基準座標系における第1のカメラ20および第2のカメラ30の位置関係をより精度良く求めることができる。本実施形態では第1の差分又は第2の差分に基づいて、基準座標系における第1のカメラ20および第2のカメラ30の位置を求めたが、これに限定されず、第1の差分及び第3の差分(第1のマーカー70の周辺情報の差分)又は第2の差分及び第4の差分(第2のマーカー80の周辺情報の差分)に基づいて、基準座標系における第1のカメラ20および第2のカメラ30の位置を求めてもよい。
以上、実施形態について説明したが、本願の開示するカメラ情報算出装置、システム、カメラ情報算出方法およびプログラムは、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
以下に変形例を記載する。例えば、以下の変形例同士を任意に組み合わせることもできる。
(1)変形例1
上述の実施形態では、移動カメラ40が、上述の第1の基準座標系カメラ情報および第2の基準座標系カメラ情報を算出する「カメラ情報算出装置」として機能していたが、移動カメラ40とは別の装置が「カメラ情報算出装置」として機能する形態であってもよい。例えば図14に示すように、「カメラ情報算出装置」として機能するサーバ100が移動カメラ40とは別に設けられる形態であってもよい。図14に示すように、本変形例のシステム2は、データサーバ10、サーバ100、第1のカメラ20、第2のカメラ30、移動カメラ40を備える。サーバ100は、ネットワーク50を介して、データサーバ10、第1のカメラ20、第2のカメラ30、および、移動カメラ40の各々と通信可能に接続される。
図15は、サーバ100のハードウェア構成の一例を示す図である。図15の例では、最低限必要なハードウェア要素を例示しているが、これに限らず、サーバ100は、他のハードウェア要素(例えば入力デバイス、表示デバイス、カメラ等)を備える形態であっても構わない。図15に示すように、サーバ100は、CPU110と、記憶装置120と、通信I/F部130と、これらを相互に接続するバス140と、を含む。
CPU110は、ハードウェアプロセッサの一例に対応する。CPU110は、サーバ100の動作を制御する。CPU110は、記憶装置120に格納されたプログラムを実行することにより、サーバ100が有する各種の機能を実現する。記憶装置120は、プログラム等の各種のデータを記憶する。例えば記憶装置120は、プログラムを格納する不揮発性のメモリであるROM、CPU110の作業領域を有する揮発性のメモリであるRAMなどを含む。通信I/F部130は、ネットワーク50に接続するためのインタフェースである。
図16は、サーバ100が有する機能の一例を示す図である。なお、サーバ100が有する機能は図16の例に限られるものではない。図16に示すように、サーバ100は、移動カメラ情報取得部111、照合部407、情報変換部408、記憶部409、シミュレーション部410、出力部112を有する。この例では、上述の実施形態で説明した移動カメラ40が有する複数の機能のうちの一部(照合部407、情報変換部408、記憶部409およびシミュレーション部410)がサーバ100に搭載されている。
図16に示す移動カメラ情報取得部111は、移動カメラ40の第3のカメラ情報、第3のマーカー情報、第3の識別情報、第3の空間特徴情報を移動カメラ40から取得する。また、図16に示す出力部112は、サーバ100で算出した第1の基準座標系カメラ情報と第2の基準座標系カメラ情報とを用いた処理に基づくサービス情報を生成し、その生成したサービス情報を移動カメラ40(ユーザの端末)へ出力する。
なお、例えばサーバ100は、1台のコンピュータで構成されてもよいし、複数台のコンピュータ(コンピュータ群)で構成されてもよい。例えばサーバ100が複数台のコンピュータで構成され、上述したサーバ100が有する複数の機能が複数台のコンピュータに分散されて搭載される形態であってもよい。
(2)変形例2
上述の実施形態では、第1のカメラ20により撮像された第1の画像に含まれる「第1の被写体」の一例として、第1の識別情報に対応する第1のパターン(第1のマーカー70)を例に挙げて説明した。ただし、これに限らず、例えば第1のマーカー70が設けられず、第1のマーカー70以外の被写体を第1の被写体とする形態であってもよい。つまり、第1のカメラ20の撮像領域に存在し、かつ、第1のカメラ20の第1の画像と移動カメラ40の動画像とに共通に含まれる第1のマーカー70以外の被写体、例えばサイズ・形状が良く知られた物体、または、地面と壁との境目などを第1の被写体とすることもできる。
同様に、上述の実施形態では、第2のカメラ30により撮像された第2の画像に含まれる「第2の被写体」の一例として、第2の識別情報に対応する第2のパターン(第2のマーカー80)を例に挙げて説明した。ただし、これに限らず、例えば第2のマーカー80が設けられず、第2のマーカー80以外の被写体を第2の被写体とする形態であってもよい。つまり、第2のカメラ30の撮像領域に存在し、かつ、第2のカメラ30の第2の画像と移動カメラ40の動画像とに共通に含まれる第2のマーカー80以外の被写体、例えばサイズ・形状が良く知られた物体、または、地面と壁との境目などを第2の被写体とすることもできる。
(3)変形例3
上述の実施形態では、任意の位置・向きで設置可能な2台のカメラと、2台のカメラそれぞれと1対1に対応する2つのマーカーとが設けられていたが、カメラおよびマーカーの数は2つに限られるものではない。例えば3台以上の任意の位置・向きで設置可能なカメラと、3台以上のカメラそれぞれと1対1に対応する3つ以上のマーカーとが設けられる形態であってもよい。また、任意の位置・向きで設置可能なカメラから少なくとも1つのマーカーが撮像できれば、マーカーはカメラに対して1対1ではなく、カメラより少なく設けられる形態であってもよい。このような形態であっても、上述の実施形態と同様の方法を実施可能である。これにより、3台以上のカメラごとに、移動カメラ40により最初に検出されたマーカーを基準とする移動カメラ40側の基準座標系における該カメラの位置を特定するカメラ情報を算出することができる。
(4)変形例4
上述の実施形態のシステム1は、店舗内(屋内)に適用されているが、これに限らず、例えば屋外に適用することもできる。例えば信号機の付近に固定カメラを設置し、カメラが搭載された車を移動カメラとして運用する形態であってもよい。
1 システム
10 データサーバ
20 第1のカメラ
30 第2のカメラ
40 移動カメラ
50 ネットワーク
100 サーバ
111 移動カメラ情報取得部
112 出力部
401 画像取得部
402 点・線分特徴検出部
403 内部パラメータ算出部
404 マーカー検出部
405 外部パラメータ算出部
406 空間特徴検出部
407 照合部
408 情報変換部
409 記憶部
410 シミュレーション部
421 算出部
422 マーカー情報変換部
423 空間特徴情報変換部
441 変換済み情報取得部
442 マーカー情報・空間特徴情報変換部
443 差分検出部
444 再計算部
445 補正部
501 第1の算出部
502 第2の算出部
511 第1の位置形状変換部
512 第2の位置形状変換部
521 第1の特徴情報変換部
522 第2の特徴情報変換部
531 第3の位置形状変換部
532 第4の位置形状変換部
533 第3の特徴情報変換部
534 第4の特徴情報変換部

Claims (9)

  1. 第1のカメラにより撮像される第1の被写体を含む第1の画像と、第3のカメラにより撮像される前記第1の被写体を含む第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出する第1の算出部と、
    前記第1のカメラと離間して配置される第2のカメラにより撮像される第2の被写体を含む第2の画像と、前記第3のカメラにより撮像される前記第2の被写体を含む第2の動画像とに基づいて、前記第2のカメラの位置を示す第2のカメラ位置情報を算出する第2の算出部と、を備える、
    カメラ情報算出装置。
  2. 前記第1のカメラ位置情報は、前記第1ないし第3のカメラに共通の基準座標系と、前記第1のカメラの座標系との対応関係を示す情報であり、
    前記第2のカメラ位置情報は、前記基準座標系と、前記第2のカメラの座標系との対応関係を示す情報である、
    請求項1に記載のカメラ情報算出装置。
  3. 前記第1の画像に含まれる前記第1の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第1の変換済情報を出力し、
    前記第2の画像に含まれる前記第2の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第2の変換済情報を出力する第1の変換部と、
    前記第1の動画像に含まれる前記第1の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第3の変換済情報を出力し、
    前記第2の動画像に含まれる前記第2の被写体の位置および形状の情報を前記基準座標系に合わせて変換して第4の変換済情報を出力する第2の変換部と、
    前記第1の変換済情報と前記第3の変換済情報とを比較して第1の差分を検出し、
    前記第2の変換済情報と前記第4の変換済情報とを比較して第2の差分を検出する差分検出部と、を備える、
    請求項2に記載のカメラ情報算出装置。
  4. 前記第1の差分に基づいて前記第1のカメラ位置情報を補正し、前記第2の差分に基づいて前記第2のカメラ位置情報を補正する補正部を備える、
    請求項3に記載のカメラ情報算出装置。
  5. 前記第1の動画像の撮像領域の少なくとも一部と、前記第2の動画像の撮像領域の少なくとも一部とが重複している、
    請求項1乃至4のうちの何れか1項に記載のカメラ情報算出装置。
  6. 第1の被写体を含む第1の画像を撮像する第1のカメラと、
    第2の被写体を含む第2の画像を撮像する第2のカメラと、
    前記第1の被写体を含む第1の動画像と、前記第2の被写体を含む第2の動画像とを撮像すると共に、前記第1の画像と前記第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出する第1算出部と、前記第2の画像と前記第2の動画像とに基づいて、前記第2のカメラの位置を示す第2のカメラ位置情報を算出する第2算出部とを有する第3のカメラと、を備える、
    システム。
  7. 第1の被写体を含む第1の画像を撮像する第1のカメラと、
    第2の被写体を含む第2の画像を撮像する第2のカメラと、
    前記第1の被写体を含む第1の動画像と、前記第2の被写体を含む第2の動画像とを撮像する第3のカメラと、
    前記第1の画像と前記第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出する第1算出部と、前記第2の画像と前記第2の動画像とに基づいて、前記第2のカメラの位置を示す第2のカメラ位置情報を算出する第2算出部とを有するサーバと、を備える、
    システム。
  8. 第1のカメラにより撮像される第1の被写体を含む第1の画像と、第3のカメラにより撮像される前記第1の被写体を含む第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出し、
    前記第1のカメラと離間して配置される第2のカメラにより撮像される第2の被写体を含む第2の画像と、前記第3のカメラにより撮像される前記第2の被写体を含む第2の動画像とに基づいて、前記第2のカメラの位置を示す第2のカメラ位置情報を算出する、
    処理をコンピュータが実行するカメラ情報算出方法。
  9. 第1のカメラにより撮像される第1の被写体を含む第1の画像と、第3のカメラにより撮像される前記第1の被写体を含む第1の動画像とに基づいて、前記第1のカメラの位置を示す第1のカメラ位置情報を算出し、
    前記第1のカメラと離間して配置される第2のカメラにより撮像される第2の被写体を含む第2の画像と、前記第3のカメラにより撮像される前記第2の被写体を含む第2の動画像とに基づいて、前記第2のカメラ位置情報を算出する、
    処理をコンピュータに実行させるためのプログラム。
JP2020567303A 2019-01-23 2019-01-23 カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム Active JP7310835B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/002137 WO2020152810A1 (ja) 2019-01-23 2019-01-23 カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2020152810A1 true JPWO2020152810A1 (ja) 2021-12-02
JP7310835B2 JP7310835B2 (ja) 2023-07-19

Family

ID=71736855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020567303A Active JP7310835B2 (ja) 2019-01-23 2019-01-23 カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム

Country Status (4)

Country Link
US (1) US20210348915A1 (ja)
JP (1) JP7310835B2 (ja)
CN (1) CN113330275B (ja)
WO (1) WO2020152810A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005241323A (ja) * 2004-02-25 2005-09-08 Advanced Telecommunication Research Institute International 撮像システム及び校正方法
WO2008087974A1 (ja) * 2007-01-16 2008-07-24 Panasonic Corporation データ処理装置、方法、記録媒体
US20080240612A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Non-overlap region based automatic global alignment for ring camera image mosaic
JP2015204512A (ja) * 2014-04-14 2015-11-16 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、カメラ、受信装置、受信方法
WO2017149869A1 (ja) * 2016-02-29 2017-09-08 ソニー株式会社 情報処理装置、方法、プログラム及びマルチカメラシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1330790B1 (en) * 2000-08-28 2008-02-27 Cognitens Ltd. Accurately aligning images in digital imaging systems by matching points in the images
JP4708752B2 (ja) * 2004-09-28 2011-06-22 キヤノン株式会社 情報処理方法および装置
JP4960754B2 (ja) * 2007-04-25 2012-06-27 キヤノン株式会社 情報処理装置、情報処理方法
JP6237326B2 (ja) * 2014-02-25 2017-11-29 富士通株式会社 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
US11361466B2 (en) * 2018-11-30 2022-06-14 Casio Computer Co., Ltd. Position information acquisition device, position information acquisition method, recording medium, and position information acquisition system
CN113226952B (zh) * 2018-12-27 2023-04-18 日本电气通信系统株式会社 物品位置管理装置、物品位置管理系统、物品位置管理方法和程序
JP7124840B2 (ja) * 2020-03-24 2022-08-24 カシオ計算機株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005241323A (ja) * 2004-02-25 2005-09-08 Advanced Telecommunication Research Institute International 撮像システム及び校正方法
WO2008087974A1 (ja) * 2007-01-16 2008-07-24 Panasonic Corporation データ処理装置、方法、記録媒体
US20080240612A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Non-overlap region based automatic global alignment for ring camera image mosaic
JP2015204512A (ja) * 2014-04-14 2015-11-16 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、カメラ、受信装置、受信方法
WO2017149869A1 (ja) * 2016-02-29 2017-09-08 ソニー株式会社 情報処理装置、方法、プログラム及びマルチカメラシステム

Also Published As

Publication number Publication date
WO2020152810A1 (ja) 2020-07-30
CN113330275B (zh) 2023-05-09
US20210348915A1 (en) 2021-11-11
JP7310835B2 (ja) 2023-07-19
CN113330275A (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
JP6394005B2 (ja) 投影画像補正装置、投影する原画像を補正する方法およびプログラム
JP6465789B2 (ja) デプスカメラの内部パラメータを算出するプログラム、装置及び方法
US8508527B2 (en) Apparatus and method of building map for mobile robot
WO2014061372A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2004334819A (ja) ステレオキャリブレーション装置とそれを用いたステレオ画像監視装置
US20160343136A1 (en) Data-processing system and method for calibration of a vehicle surround view system
JP2016197287A (ja) 情報処理装置、情報処理方法、プログラム
JP2016103230A (ja) 画像処理装置、画像処理方法、及びプログラム
JPWO2018235163A1 (ja) キャリブレーション装置、キャリブレーション用チャート、チャートパターン生成装置、およびキャリブレーション方法
JP2004340840A (ja) 距離測定装置、距離測定方法、及び距離測定プログラム
JP2006252473A (ja) 障害物検出装置、キャリブレーション装置、キャリブレーション方法およびキャリブレーションプログラム
JP6836561B2 (ja) 画像処理装置及び画像処理方法
JP6282098B2 (ja) キャリブレーション装置及び方法
CN107808398B (zh) 摄像头参数算出装置以及算出方法、程序、记录介质
KR20180105875A (ko) 단일 영상을 이용한 카메라 캘리브레이션 방법 및 이를 위한 장치
WO2014045508A1 (ja) 検査装置、検査方法、および検査プログラム
JP6282377B2 (ja) 3次元形状計測システムおよびその計測方法
KR20200142391A (ko) 광학식 위치 추적 시스템의 3차원 마커 좌표 추정 방법
JPWO2018154634A1 (ja) 投写型表示装置、投写型表示装置の制御方法、及びプログラム
JP2009216503A (ja) 三次元位置姿勢計測方法および装置
JP6374812B2 (ja) 三次元モデル処理装置およびカメラ校正システム
JP2009216480A (ja) 三次元位置姿勢計測方法および装置
KR20100081881A (ko) 데이터 매칭 장치, 데이터 매칭 방법, 및 이를 이용한 이동로봇
JP6531395B2 (ja) 三次元形状測定装置、三次元形状測定方法、及び、プログラム
JPWO2020152810A1 (ja) カメラ情報算出装置、システム、カメラ情報算出方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230619

R150 Certificate of patent or registration of utility model

Ref document number: 7310835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150