(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018507
(43)【公開日】2024-02-08
(54)【発明の名称】検査装置および視野角検査方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20240201BHJP
G06T 7/00 20170101ALI20240201BHJP
【FI】
G06T7/70 Z
G06T7/00 610
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022121891
(22)【出願日】2022-07-29
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】矢田 亮太郎
(72)【発明者】
【氏名】竹中 文明
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096AA11
5L096BA03
5L096CA04
5L096DA02
5L096EA43
5L096FA02
5L096FA60
5L096FA67
5L096FA69
5L096GA51
5L096JA11
(57)【要約】
【課題】筐体に取り付けられたマーカの視野角を検査するための技術を提供する。
【解決手段】撮影画像取得部232は、複数のマーカを備えた筐体を撮影した画像を取得する。推定処理部240は、撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定する。マーカ特定部260は、推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定する。視野角検査部262は、特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
検査装置であって、ハードウェアを有する1つ以上のプロセッサを備え、
前記1つ以上のプロセッサは、
複数のマーカを備えた筐体を撮影した画像を取得し、
撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定し、
推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定し、
特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する、
検査装置。
【請求項2】
前記1つ以上のプロセッサは、
輝度値が所定値以上のマーカ像に対応するマーカを特定する、
請求項1に記載の検査装置。
【請求項3】
前記1つ以上のプロセッサは、
マーカ像に対応するマーカの識別情報を特定し、
設計された中心軸と、撮像装置とマーカとを結ぶ直線とがなす角度を取得して、取得した角度を、マーカの識別情報に紐付けてメモリに記録する、
請求項1に記載の検査装置。
【請求項4】
前記1つ以上のプロセッサは、
メモリに記録された角度にもとづいてマーカの視野角を特定する、
請求項3に記載の検査装置。
【請求項5】
前記1つ以上のプロセッサは、
運動機構を制御して、筐体を撮像装置に対して相対的に運動させる、
請求項1に記載の検査装置。
【請求項6】
複数のマーカを備えた筐体を撮影した画像を取得し、
撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定し、
推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定し、
特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する、
視野角検査方法。
【請求項7】
コンピュータに、
複数のマーカを備えた筐体を撮影した画像を取得する機能と、
撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定する機能と、
推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定する機能と、
特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、筐体に設けられたマーカの視野角を検査するための技術に関する。
【背景技術】
【0002】
近年、デバイスの位置や姿勢をトラッキングして、VR空間の3Dモデルに反映させる技術が普及している。ゲーム装置が、ゲーム空間のプレイヤキャラクタの動きをデバイスの位置や姿勢の変化に連動させることで、ユーザによる直観的なゲーム操作が実現される。特許文献1は、複数のLED(Light Emitting Diode)マーカを備えたデバイスを撮影した画像からマーカ像の代表座標を特定し、マーカ像の代表座標を用いてデバイスの位置および姿勢を導出する技術を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
トラッキング対象となるデバイスにおいて、点灯するマーカは、その中心軸が設計された方向を向くように筐体に取り付けられる必要がある。マーカの中心軸が設計された方向からずれていると、設計された視野角を実現できないために、トラッキング処理中に撮像装置が当該マーカを撮影できない状況が生じうる。また、マーカの明るさや光の放射強度の偏りもマーカの視野角を狭める要因となっている。そのため製造工程においてはマーカの視野角が適切であるか検査して、適切な視野角をもたないマーカを搭載したデバイスは、不良品として取り扱われる必要がある。
【0005】
たとえば、ロボットアームなどの運動機構を制御してデバイスの姿勢を変化させながら撮像装置でデバイスを撮影し、撮影時の運動機構の制御値を自動的に取得してデバイスの姿勢を算出できる検査装置を作製することで、製造工程でマーカの視野角を検査することは可能と考えられる。しかしながら、このような検査装置では、デバイスと撮像装置との相対的位置関係を厳密に固定または管理する必要があり、また撮影時の運動機構の制御値を自動取得する仕組みを構築しなければならず、コストがかかるという問題がある。
【0006】
そこで本開示は、比較的簡易に点灯マーカの視野角を検査するための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本開示のある態様の検査装置は、複数のマーカを備えた筐体を撮影した画像を取得する撮影画像取得部と、撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定する推定処理部と、推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定するマーカ特定部と、特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する視野角検査部とを備える。
【0008】
本開示の別の態様の視野角検査方法は、複数のマーカを備えた筐体を撮影した画像を取得し、撮影画像に含まれる複数のマーカ像にもとづいて、筐体の位置および姿勢を推定し、推定した筐体の位置および姿勢から、撮影画像に含まれるマーカ像に対応するマーカを特定し、特定したマーカに対して設計された中心軸を用いてマーカの視野角を検査する。
【0009】
なお、以上の構成要素の任意の組合せ、本開示の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本開示の態様として有効である。
【図面の簡単な説明】
【0010】
【
図1】入力デバイスを使用するゲームシステムの構成例を示す図である。
【
図3】右手用の入力デバイスの形状を示す図である。
【
図4】マーカ単体の視野角を説明するための図である。
【
図5】筐体に設けられたマーカの視野角を説明するための図である。
【
図6】入力デバイスの機能ブロックを示す図である。
【
図9】視野角検査処理を示すフローチャートである。
【
図10】入力デバイスを撮影した画像の一例を示す図である。
【
図11】撮影画像における複数の画素の例を示す図である。
【
図12】各マーカ像に対応するマーカIDを特定した状態を示す図である。
【
図13】視野角検査部が取得するマーカ角度を示す図である。
【
図14】全てのマーカについて取得したマーカ角度を示す図である。
【発明を実施するための形態】
【0011】
実施例において、検査対象は、複数のLEDマーカを搭載し、ユーザにより把持されてゲーム操作の入力に使用されるデバイスである。以下、LEDマーカの視野角の検査手法を説明する前に、ゲームシステムにおける入力デバイスの使用態様を説明する。
【0012】
図1は、入力デバイス16を使用するゲームシステム1の構成例を示す。ゲームシステム1は、ユーザが手指で操作する入力デバイス16a、16b(以下、特に区別しない場合は「入力デバイス16」と呼ぶ)と、ゲーム装置10と、記録装置11と、ヘッドマウントディスプレイ(HMD)100と、画像および音声を出力する出力装置15とを備える。記録装置11は、システムソフトウェアや、ゲームソフトウェアなどのアプリケーションを記録する。
【0013】
HMD100は、ユーザが頭部に装着することによりその眼前に位置する表示パネルに画像を表示する表示装置である。ゲーム装置10はゲームソフトウェアを実行して、ゲームの画像データおよび音声データをHMD100に供給する。ゲーム装置10とHMD100とは既知の無線通信プロトコルで接続されてもよく、またケーブルで接続されてもよい。HMD100を装着したユーザにとって出力装置15は必要ないが、出力装置15を用意することで、別のユーザが出力装置15の表示画像を見ることができる。
【0014】
ゲーム装置10と入力デバイス16とは既知の無線通信プロトコルで接続されてよく、またケーブルで接続されてもよい。入力デバイス16は操作ボタンなどの複数の操作部材を備え、ユーザは入力デバイス16を把持しながら、手指で操作部材を操作する。ゲーム装置10がゲームソフトウェアを実行する際、入力デバイス16はゲームコントローラとして利用される。入力デバイス16は、3軸の加速度センサおよび3軸のジャイロセンサを含む慣性計測装置(IMU:Inertial Measurement Unit)を備え、所定の周期(たとえば800Hz)でセンサデータをゲーム装置10に送信する。
【0015】
ゲームソフトウェアは、入力デバイス16の操作部材の操作情報だけでなく、入力デバイス16の動きを操作情報として取り扱って、仮想3次元空間内におけるプレイヤキャラクタの動きに反映する。たとえば入力デバイス16の動きは、プレイヤキャラクタを動かすための操作情報として利用されてよい。
【0016】
入力デバイス16の位置および姿勢をトラッキングするために、入力デバイス16には、HMD100に搭載された撮像装置14によって撮影される複数の点灯マーカが設けられる。ゲーム装置10は、入力デバイス16を撮影した画像を解析して、実空間における入力デバイス16の位置および姿勢を推定し、推定した位置および姿勢をゲーム操作情報としてゲームソフトウェアに提供する。
【0017】
図2(a)は、左手用の入力デバイス16aの形状を示す。左手用の入力デバイス16aは、筐体20と、ユーザが操作する複数の操作部材22a、22b、22c、22d(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、筐体20の外部に光を出射する複数のマーカ30とを備える。マーカ30は断面円形の出射面を有してよい。操作部材22は、傾動操作するアナログスティック、押下式ボタンなどを含んでよい。筐体20は、把持部21と、筐体頭部と筐体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に左手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、左手の親指を用いて、操作部材22a、22b、22c、22dを操作する。
【0018】
図2(b)は、右手用の入力デバイス16bの形状を示す。右手用の入力デバイス16bは、筐体20と、ユーザが操作する複数の操作部材22e、22f、22g、22h(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、筐体20の外部に光を出射する複数のマーカ30とを備える。筐体20は、把持部21と、筐体頭部と筐体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に右手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、右手の親指を用いて、操作部材22e、22f、22g、22hを操作する。
【0019】
図3は、右手用の入力デバイス16bの形状を示す。入力デバイス16bは、
図2(b)に示した操作部材22e、22f、22g、22hに加えて、操作部材22i、22jを有する。ユーザは把持部21を把持した状態で、右手の人差し指を用いて操作部材22iを操作し、中指を用いて操作部材22jを操作する。
【0020】
マーカ30は、筐体20の外部に光を出射する光出射部であり、LED(Light Emitting Diode)素子などの光源を有する。筐体20の表面には樹脂部が形成され、樹脂部は、光源からの光を外部に拡散出射する。マーカ30は撮像装置14により撮影されて、入力デバイス16の位置および姿勢の推定処理に利用されるため、広い視野角を有する必要がある。
【0021】
図4は、マーカ単体の視野角を説明するための図である。この例では、マーカ30がLED素子32と樹脂部34を含んで構成される。マーカ30において、LED素子32を点灯したときに最も強く光る方向を「中心軸」と呼ぶと、マーカ30単体の視野角は、マーカ30の中心軸に対する角度として定義され、実施例ではマーカ30単体の視野角が80°に設計されている。ゲームシステム1では、撮像装置14が筐体20に設けられたマーカ30を撮影したときに、撮影画像に含まれるマーカ像が、マーカ像であることを特定されるために必要な輝度を有する必要がある。実施例でマーカ30単体の視野角は、1mの距離からマーカ30を撮像装置14で撮影したときに、撮影画像に含まれるマーカ像がトラッキング処理に必要な輝度をもつ範囲の角度として定義される。
【0022】
図5は、筐体に設けられたマーカの視野角を説明するための図である。マーカ30においては、その中心軸がマーカ30が設けられる筐体面に垂直な方向を向くように、LED素子32が筐体20内に取り付けられることが設計されている。以下、筐体面に垂直な方向を「設計された中心軸」とも呼ぶ。入力デバイス16の製造工程において、LED素子32が所定の姿勢で筐体内の所定位置に取り付けられることで、マーカ30の中心軸が設計された中心軸と重なる。
【0023】
図5(a)は、LED素子32が設計どおりに筐体20に取り付けられている状態を示す。LED素子32が設計どおりに筐体20に取り付けられていれば、マーカ30の中心軸は、設計された中心軸に重なり、筐体20に設けられたマーカ30の視野角は、設計値である80°を示す。したがって設計された中心軸と、撮像装置14とマーカ30とを結ぶ直線のなす角度が視野角(80°)以内であれば、当該マーカ30は撮像装置14により適切に撮影されて、トラッキング処理に有効に利用される。なお当然ではあるが、撮像装置14の画角内にマーカ30が含まれていることが前提である。
【0024】
図5(b)は、LED素子32が設計された姿勢とは異なる姿勢で筐体20に取り付けられている状態を示す。LED素子32は、設計された取付姿勢に対して斜めに筐体20に取り付けられており、したがってマーカ30の中心軸(実際の中心軸)は、設計された中心軸に対して傾き、
図5(b)に示す例では反時計回りに20°傾いている。そのため
図5(b)における右側の視野角は60°となり、設計値である80°より狭くなっている。入力デバイス16の製造工程においては、筐体20に取り付けられたマーカ30の視野角を検査して、視野角が設計値よりも狭くなっている入力デバイス16を不良品として特定する必要がある。
【0025】
図6は、入力デバイス16の機能ブロックを示す。制御部50は、操作部材22に入力された操作情報を受け付け、またIMU52により取得されたセンサデータを受け付ける。IMU52は慣性計測装置であって、入力デバイス16の動きに関するセンサデータを取得し、3軸の加速度センサおよび3軸のジャイロセンサを含む。IMU52は、所定の周期(たとえば800Hz)で各軸成分の値(センサデータ)を検出する。制御部50は、操作情報およびセンサデータを通信制御部54に供給する。通信制御部54は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により操作情報およびセンサデータをゲーム装置10に送信する。また通信制御部54は、ゲーム装置10から発光指示を取得する。
【0026】
入力デバイス16は、LED素子32を含むマーカ30を複数備える。LED素子32は、所定の色で発光する光源であってよいが、複数色で発光する光源であってもよい。制御部50は、ゲーム装置10から取得した発光指示にもとづいてLED素子32を発光させ、マーカ30を点灯させる。なお
図6に示す例では、1つのマーカ30に対して1つのLED素子32が設けられているが、1つのLED素子32が、複数のマーカ30を点灯させてもよい。
【0027】
以下、製造工程において、入力デバイス16に設けられたマーカ30の視野角を検査する手法について説明する。
図7は、検査システム200の構成例を示す。検査システム200は、少なくとも1台の撮像装置202、検査装置210および運動機構212を備えて、入力デバイス16に設けられたマーカ30の視野角を検査する。撮像装置202は、所定の周期で入力デバイス16を撮影して、入力デバイス16を撮影した画像を検査装置210に送信する。
【0028】
撮像装置202は、光軸を入力デバイス16に向けて、画角内に入力デバイス16を入れた状態で、入力デバイス16から約1m離れた位置に配置される。複数の撮像装置202は、互いに離れた位置に配置されることが好ましい。検査装置210は、入力デバイス16を撮影した画像を解析して、実空間における入力デバイス16の位置および姿勢を推定し、マーカ30に対して設計された中心軸を用いてマーカ30の視野角を検査する。
【0029】
視野角の検査中、運動機構212は、入力デバイス16を、撮像装置202に対して相対的に運動させる。実施例で運動機構212はロボットアームを有し、入力デバイス16はロボットアームの先端に固定されてよい。検査装置210は、ロボットアームを駆動するアクチュエータを制御して、入力デバイス16の姿勢を変更する運動を行わせる。このとき検査装置210は、入力デバイス16の重心位置を維持しつつ、入力デバイス16の姿勢を変更する運動を行わせてもよい。なお運動機構212は、入力デバイス16を動かさずに、入力デバイス16と撮像装置202の距離を維持しつつ、撮像装置202を動かしてもよい。
【0030】
入力デバイス16の3次元形状と、その表面に配置された複数のマーカ30の位置座標は既知であるため、検査装置210は、撮影画像内のマーカ像の分布にもとづいて、入力デバイス16の位置および姿勢を推定できる。検査装置210は、さらに入力デバイス16のIMU52が検出したセンサデータも用いて、入力デバイス16の位置および姿勢を推定する機能を有してもよい。この場合、検査装置210は、カルマンフィルタを利用した状態推定技術を適用して、撮影画像にもとづく推定結果と、センサデータにもとづく推定結果を統合することで、現在時刻における入力デバイス16の位置および姿勢を高精度に特定してもよい。
【0031】
図8は、検査装置210の機能ブロックを示す。検査装置210は、処理部220、通信部222およびメモリ270を備え、処理部220は、取得部230、画像信号処理部236、推定処理部240、マーカ情報保持部250、マーカ特定部260、視野角検査部262および運動制御部264を備える。通信部222は、撮像装置202から送信される撮影画像を受信し、取得部230に供給する。また通信部222は、入力デバイス16から送信されるセンサデータを受信し、取得部230に供給する。
【0032】
取得部230は、撮影画像取得部232およびセンサデータ取得部234を備える。推定処理部240は、マーカ像座標特定部242、マーカ像座標抽出部244および位置姿勢導出部246を備える。推定処理部240は、撮影画像に含まれる複数のマーカ像にもとづいて、入力デバイス16の位置および姿勢を推定する。なお実施例では説明を省略するが、推定処理部240は、撮影画像にもとづいて推定される入力デバイス16の位置および姿勢と、センサデータにもとづいて推定される入力デバイス16の位置および姿勢とをカルマンフィルタに入力することで、入力デバイス16の位置および姿勢を高精度に推定してもよい。推定処理部240は、推定した入力デバイス16の位置および姿勢をマーカ特定部260に提供する。
【0033】
検査装置210はコンピュータを備え、コンピュータがプログラムを実行することによって、
図8に示す様々な機能が実現される。コンピュータは、プログラムをロードするメモリ、ロードされたプログラムを実行する1つ以上のプロセッサ、補助記憶装置、その他のLSIなどをハードウェアとして備える。プロセッサは、半導体集積回路やLSIを含む複数の電子回路により構成され、複数の電子回路は、1つのチップ上に搭載されてよく、または複数のチップ上に搭載されてもよい。
図8に示す機能ブロックは、ハードウェアとソフトウェアとの連携によって実現され、したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0034】
以下、検査装置210が、1つの撮像装置202から提供される撮影画像を用いて、入力デバイス16の位置および姿勢を推定する処理について説明する。
撮影画像取得部232は、複数のマーカ30を備えた入力デバイス16を撮影した画像データを取得し、画像信号処理部236に供給する。画像信号処理部236は、画像データにノイズ低減や光学補正(シェーディング補正)などの画像信号処理を行い、高画質化した撮影画像データを推定処理部240に供給する。センサデータ取得部234は、入力デバイス16から送信されるセンサデータを取得し、推定処理部240に供給する。
【0035】
マーカ像座標特定部242は、撮影画像に含まれるマーカ30の像を代表する2次元座標(以下、「マーカ像座標」とも呼ぶ)を特定する。マーカ像座標特定部242は、所定値以上の輝度値をもつ画素が連続する領域を特定し、その画素領域の重心座標を算出して、マーカ像の代表座標としてよい。
【0036】
3次元の形状および大きさが既知である物体の撮影画像から、それを撮影した撮像装置の位置および姿勢を推定する手法として、PNP(Perspective n-Point)問題を解く方法が知られている。実施例でマーカ像座標抽出部244は、撮影画像におけるN(Nは3以上の整数)個の2次元マーカ像座標を抽出し、位置姿勢導出部246は、マーカ像座標抽出部244により抽出されたN個のマーカ像座標と、入力デバイス16の3次元モデルにおけるN個のマーカの3次元座標から、入力デバイス16の位置および姿勢を導出する。位置姿勢導出部246は、以下の(式1)を用いて入力デバイス16の3次元空間の位置および姿勢を導出する。
【数1】
【0037】
ここで(u,v)は撮影画像におけるマーカ像座標であり、(X,Y,Z)は、入力デバイス16の3次元モデルが基準位置および基準姿勢にあるときのマーカ30の3次元空間での位置座標である。なお3次元モデルは、入力デバイス16と完全に同一の形状および大きさをもち、マーカを同一位置に配置したモデルである。マーカ情報保持部250は、基準位置および基準姿勢にある3次元モデルにおける各マーカの3次元座標を、各マーカの識別情報(マーカID)に対応付けて保持しており、位置姿勢導出部246は、マーカ情報保持部250から各マーカの3次元座標を読み出して、(X,Y,Z)を取得する。
【0038】
(fx、fy)は撮像装置202の焦点距離、(cx、cy)は画像主点であり、いずれも撮像装置202の内部パラメータである。r11~r33、t1~t3を要素とする行列は、回転・並進行列である。(式1)において(u,v)、(fx、fy)、(cx、cy)、(X,Y,Z)は既知であり、位置姿勢導出部246は、N個のマーカ30について方程式を解くことにより、それらに共通の回転・並進行列を求める。位置姿勢導出部246は、この行列によって表される角度および並進量に基づいて、入力デバイス16の位置および姿勢を導出する。実施例では、入力デバイス16の位置姿勢を推定する処理をP3P問題を解くことで実施し、したがって位置姿勢導出部246は、3個のマーカ像座標と、入力デバイス16の3次元モデルにおける3個の3次元マーカ座標を用いて、入力デバイス16の位置および姿勢を導出する。
【0039】
図9は、処理部220による視野角検査処理を示すフローチャートである。撮影画像取得部232は、入力デバイス16を撮影した画像を取得し(S10)、画像信号処理部236に供給する。
【0040】
図10は、入力デバイス16を撮影した画像の一例を示す。実施例の撮影画像はグレースケール画像であり、各画素の輝度は8ビットで表現されて、0~255の輝度値をとる。撮影画像においてマーカ像は、
図10の略中央領域に示すように高輝度をもつ像として撮影される。画像信号処理部236は、撮影画像に対して、ノイズ低減や光学補正などの画像信号処理を行い、画像信号処理した画像データをマーカ像座標特定部242に供給する(S12)。
【0041】
図11は、撮影画像における複数の画素の例を示す。以下の
図11、
図12、
図14では、見やすさを優先して、各画素の輝度表現を反転(白黒を反転)させている。したがって
図11、
図12、
図14で黒は輝度値255(最高の輝度値)を、白は輝度値0(最低の輝度値)を表現する。マーカ像座標特定部242は、所定値以上の輝度値をもつ画素が連続する領域をマーカ像として特定する。
図11に示す例で、マーカ像座標特定部242は、6個のマーカ像を特定する。マーカ像座標特定部242は、マーカ像の画素領域の重心座標を算出して、マーカ像の代表座標(マーカ像座標)を特定する(S14)。
【0042】
マーカ像座標抽出部244は、マーカ像座標特定部242により特定された複数のマーカ像座標の中から、任意の3個のマーカ像座標を抽出する。マーカ情報保持部250は、基準位置および基準姿勢にある入力デバイス16の3次元モデルにおける各マーカの3次元座標を保持している。位置姿勢導出部246は、マーカ情報保持部250から3次元モデルにおけるマーカの3次元座標を読み出し、(式1)を用いてP3P問題を解く。位置姿勢導出部246は、抽出された3個のマーカ像座標に共通する回転・並進行列を特定すると、抽出した3個のマーカ像座標以外の入力デバイス16のマーカ像座標を用いて再投影誤差を算出する。
【0043】
マーカ像座標抽出部244は、3個のマーカ像座標の組合せを所定数抽出する。位置姿勢導出部246は、抽出された3個のマーカ像座標のそれぞれの組合せに対して回転・並進行列を特定し、それぞれの再投影誤差を算出する。それから位置姿勢導出部246は、所定数の再投影誤差の中から最小の再投影誤差となる回転・並進行列を特定して、入力デバイス16の位置および姿勢を導出し、マーカ特定部260に供給する(S16)。
【0044】
入力デバイス16の位置および姿勢が分かることで、マーカ特定部260は、撮影画像に含まれる複数のマーカ像に対応するマーカ30を特定する(S18)。上記したようにマーカ情報保持部250は、基準位置および基準姿勢にある3次元モデルにおける各マーカの3次元座標を保持しており、マーカ特定部260は、各マーカの3次元座標を参照することで、現在の入力デバイス16の位置および姿勢で撮影されたマーカ30を特定できる。このときマーカ特定部260は、輝度値が所定値以上のマーカ像に対応するマーカ30を特定してよい。なおマーカ特定部260が採用する輝度値の基準は、マーカ像座標特定部242がマーカ像を特定するために採用した輝度値の基準と同じであってよいが、異なっていてもよい。
【0045】
図11に示す撮影画像には、輝度値が所定値以上の6個のマーカ像が含まれており、マーカ特定部260は、各マーカ像に対応するマーカ30を特定する。マーカ情報保持部250は、マーカの識別情報(マーカID)に対応付けて3次元座標を保持しており、したがってマーカ特定部260は、マーカ像に対応するマーカ30の識別情報を特定する。
図12は、マーカ特定部260が各マーカ像に対応するマーカIDを特定した状態を示す。
【0046】
実施例のマーカ情報保持部250は、マーカIDに対応付けて3次元座標を保持するだけでなく、マーカに対して設計された中心軸(
図5(a)(b)参照)に関する情報を保持している。設計された中心軸に関する情報は、3次元モデルが基準位置および基準姿勢にあるときの、マーカの3次元座標を基点とする3次元ベクトルであってよく、マーカが設けられる筐体面に垂直な方向を示す。マーカ特定部260は、マーカ像に対応するマーカ30のマーカIDを特定することで、当該マーカ30に対して設計された中心軸に関する情報を取得する。
【0047】
視野角検査部262は、マーカ30に対して設計された中心軸を用いてマーカ30の視野角を検査する。ここで視野角検査部262は、各マーカ30について、設計された中心軸と、撮像装置202とマーカ30とを結ぶ直線とがなす角度(マーカ角度)を取得して(S20)、取得したマーカ角度をマーカIDに紐付けてメモリ270に記録する(S22)。
【0048】
図13は、視野角検査部262が取得するマーカ角度を示す。この例で視野角検査部262は、ID6のマーカ30に対して設計された中心軸と、撮像装置202とマーカ30とを結ぶ直線とがなす角度(マーカ角度)を取得する。視野角検査部262は、入力デバイス16の位置および姿勢からID6のマーカ30に対して設計された中心軸の方向を特定して、当該中心軸方向と、撮像装置202とマーカ30とを結ぶ直線とがなすマーカ角度を取得してよい。
【0049】
図13に示す例では、マーカ30について取得されたマーカ角度45°が、マーカID(ID6)に紐付けてメモリ270に記録される。このことは、
図13に示す撮像装置202とマーカ30との位置関係において、ID6のマーカ30の視野角が、少なくとも45°以上あることを意味する。視野角検査部262は、撮影画像に含まれる全てのマーカ像に対応するマーカ30のマーカ角度を取得して、メモリ270に記録する。
図14は、全てのマーカ30について取得したマーカ角度を示す。
【0050】
視野角の検査工程は、撮像装置202の撮影周期(60フレーム/秒)で実施される。この検査工程において、運動制御部264は、所定の運動プログラムにしたがって運動機構212を制御して、入力デバイス16の姿勢を変化させる(S24のN)。
図7に示す検査システム200では複数の撮像装置202が設けられており、複数の撮像装置202の撮影画像を用いて視野角の検査工程を実施することで、検査効率を高めることができる。
【0051】
運動制御部264は、複数の撮像装置202により、各マーカ30が様々な姿勢で撮影されるように入力デバイス16に運動を与える。検査中、視野角検査部262は、撮影されたマーカ30に対して設計された中心軸と、撮像装置202とマーカ30とを結ぶ直線とがなす角度(マーカ角度)を取得し、取得したマーカ角度をマーカIDに紐付けてメモリ270に記録する。したがってメモリ270には、マーカIDに紐付けて複数のマーカ角度が記録される。運動制御部264が運動プログラムにしたがった運動機構212の制御を終了すると(S24のY)、検査装置210によるマーカ角度の算出処理は終了する。
【0052】
視野角検査部262は、マーカIDに紐付けてメモリ270に記録された複数のマーカ角度にもとづいてマーカ30の視野角を特定し、マーカ30の視野角を検査する(S26)。たとえば視野角検査部262は、マーカIDに紐付けて記録された複数のマーカ角度のうち、最大のマーカ角度を、当該マーカ30の視野角として特定してよい。視野角検査部262は、入力デバイス16に搭載されている全てのマーカ30の視野角を特定して、視野角が設計値である80°に満たないマーカ30が存在する場合に、入力デバイス16が不良品であることを判定してもよい。
【0053】
なお
図5(b)に示すように、LED素子32が傾いて取り付けられている場合には、マーカ30を見る向き(撮影する向き)によって、視野角が異なることが生じうる。そこで視野角検査部262は、メモリ270にマーカ角度を記録する際にマーカ30を撮影した向きも記録しておき、マーカ30を撮影した向きごとに、当該マーカ30の視野角を特定してもよい。
【0054】
以上のように、実施例によると、入力デバイス16の位置および姿勢をトラッキングすることで、入力デバイス16に取り付けられたマーカ30の視野角を算出するため、視野角検査を簡易に実施できる利点がある。
【0055】
以上、本開示を実施例をもとに説明した。上記実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。実施例では製造工程において検査装置210が筐体20に設けられたマーカ30の視野角を検査したが、検査装置210の機能がゲーム装置10またはHMD100に組み込まれて、ユーザのゲームプレイ中に、ゲーム装置10またはHMD100が、筐体20に設けられたマーカ30の視野角を検査してもよい。
【符号の説明】
【0056】
16a,16b・・・入力デバイス、20・・・筐体、30・・・マーカ、32・・・LED素子、34・・・樹脂部、50・・・制御部、52・・・IMU、54・・・通信制御部、200・・・検査システム、202・・・撮像装置、210・・・検査装置、212・・・運動機構、220・・・処理部、222・・・通信部、230・・・取得部、232・・・撮影画像取得部、234・・・センサデータ取得部、236・・・画像信号処理部、240・・・推定処理部、242・・・マーカ像座標特定部、244・・・マーカ像座標抽出部、246・・・位置姿勢導出部、250・・・マーカ情報保持部、260・・・マーカ特定部、262・・・視野角検査部、264・・・運動制御部、270・・・メモリ。