はじめに
この仕様は随時更新され、高速かつ高精度のストリートビューの撮影と公開機能を提供する高度な 360°カメラに関するハードウェア、タイミング、データに関するすべての要件について詳しく説明しています。なお、このプログラムは操作機能や機械機能には適用されません。
画像
- 15 メガピクセル以上(7 FPS 以上)
- 水平 360° 画角
- 連続した垂直画角 135° 以上
- Google が画像とジオメトリの品質を審査します
IMU
推奨コンポーネント:
- 6 軸加速度計/ジャイロスコープ: BMI160 または ST-LSM6DSM
加速度計は、次の仕様を満たす必要があります。
- 解像度: 16 ビット以上
- 範囲:±8G 以上、4,096 LSB/g 以上(通常)
- サンプリング レート: 200 Hz 以上、ジッター 1% 未満
- エイリアシングを排除するには、ローパス フィルタリングを有効にする必要があります。カットオフ周波数は、ナイキスト周波数の下の可能な最大値(サンプリング レートの半分)に設定する必要があります。例えば、周波数が 200 Hz の場合、ローパスフィルタのカットオフは 100 Hz 未満、かつできるだけ近い値にする必要があります。
- 雑音密度: 300 μg/√Hz 以下、150 μg/√Hz 以下
- 定常ノイズのバイアス安定性 <15 μg * √Hz(24 時間の静的データセットから)
- 温度に対するバイアス変化: ≤ +/- 1 mg / °C
- 最良適合線の非線形性: ≤0.5%
- 温度に対する感度変化 0.03%/°C 以下
ジャイロスコープは、次の仕様を満たす必要があります。
- 解像度: 16 ビット以上
- 範囲: +/- 1,000 deg/s 以上、32 LSB/dps 以上
- サンプリング レート: 200 Hz 以上、ジッター 1% 未満
- エイリアシングを排除するには、ローパス フィルタリングを有効にする必要があります。カットオフ周波数は、ナイキスト周波数の下の可能な最大値(サンプリング レートの半分)に設定する必要があります。たとえば、サンプリング周波数が 200 Hz の場合、ローパス フィルタのカットオフは 100 Hz 未満、かつできるだけ近い値にする必要があります。
- 雑音密度: ≤0.01 °/s/√Hz
- 定常バイアス安定性 <0.0002 °/s *√Hz(24 時間の静的データセットから)
- 温度に対するバイアス変化:≤ +/- 0.015 °/ s / °C
- 最良適合線が非線形で 0.2% 以下、0.1% 以下
- 温度に対する感度の変化:<0.02% / °C
GPS
推奨コンポーネント
要件
- サンプリング レート: 4 Hz 以上
- コンステレーション: 少なくとも GPS と GLONASS の同時トラッキング
- 最初の修正にかかる時間:
- コールド: 40 秒以下
- 高温: 5 秒以下
- 機密性:
- トラッキング: -158 dBm
- 収集: -145 dBm
- 水平位置精度:2.5 メートル(サーキュラーエラー確率(CEP)、50%、24 時間静的 >6 SV)
- 速度精度:0.06 m/s (30 m/s で 50%)
- オペレーションの上限: 4 g 以上
- 既知のタイプの内蔵アンテナまたは固定された外部アンテナ
アンテナの設計
GPS レシーバー システムと多数の複雑な電子システムの両方を搭載したカメラなど、物理的に小さな製品は、付属の電子システムからの RF 放射によってラジオ受信機の性能に問題が生じやすくなります。多くの場合、この干渉はラジオ受信機の帯域内で発生するため、除去できません。
タイミングの仕様
すべてのセンサー測定値は、同じ安定したシステム クロックを基準として正確にタイムスタンプが付けられる必要があります。測定値には、プロセッサがセンサーチップからメッセージを受信した時点ではなく、センサーが量を測定したときにタイムスタンプを付与する必要があります。異なるセンサー測定値間のタイムスタンプ ジッターは、1 ms 未満でなければなりません。同じセンサーデータログに記録されるすべてのタイムスタンプは、不連続性がない状態で連続している必要があります。ハードウェアが再起動またはリセットされ、システム クロックがリセットされた場合は、新しい受信データを保存するために新しいログを作成する必要があります。
GPS
GPS センサーは、タイムパルスの出力と、タイムパルスに対応する GPS 時刻に関連付けられたメッセージをサポートしている必要があります。これを使用して、同じ GPS エポック タイムスタンプを持つ他の GPS データパケットにタイムスタンプを付けることができます。デバイスはこれらのタイムパルスを受信するための入力を持ち、リーディング エッジまたは立ち下がりエッジのいずれか適切であれば、安定したシステム クロックからタイムスタンプを記録する必要があります。GPS 時刻を含む対応するメッセージ パケットを受信し、GPS センサーから GPS 時刻を含むナビゲーション メッセージを受信すると、デバイスは、安定したシステム クロックに関するタイムスタンプを計算できるようになります。
動画 / 画像
イメージ センサーは、安定したシステム クロックの正確な時刻を判断するためのハードウェアのタイミングをサポートする必要があります。フレームがドロップされても、後続のフレームには正確なタイムスタンプが反映されている必要があります。タイムスタンプは、画像内の最初のアクティブなフォトンを基準とする必要があります。メーカーは、これが対応するピクセルを指定する必要があります。
免責事項
IMU(加速度計とジャイロスコープ)の測定値には、測定時刻ではなく測定時刻をタイムスタンプで示す必要があります。
データの仕様
ストリートビュー用に最適化されたカメラとシステムは、センサーごとに 1 秒あたり複数のデータ測定値を収集する必要があります。各測定データの詳細は以下のとおりです。
IMU データ要件
IMU(加速度計とジャイロスコープ)の測定データ:
int64 time_accel; // The time in nanoseconds when the accelerometer // measurement was taken. This is from the same stable // system clock that is used to timestamp the GPS and // image measurements. // The accelerometer readings in meters/sec^2. The x, y, z refer to axes of // the sensor. float accel_x; float accel_y; float accel_z; int64 time_gyro; // The time in nanoseconds when the gyroscope // measurement was taken. This is from the same stable // system clock that is used to timestamp the GPS and // image measurements. // The gyro readings in radians/sec. The x, y, z refer to axes of the sensor. float gyro_x; float gyro_y; float gyro_z;
GPS データの要件
int64 time; // Time in nanoseconds, representing when the GPS // measurement was taken, based on the same stable // system clock that issues timestamps to the IMU // and image measurements double time_gps_epoch; // Seconds from GPS epoch when measurement was taken int gps_fix_type; // The GPS fix type // 0: no fix // 2: 2D fix // 3: 3D fix double latitude; // Latitude in degrees double longitude; // Longitude in degrees float altitude; // Height above the WGS-84 ellipsoid in meters float horizontal_accuracy; // Horizontal (lat/long) accuracy in meters float vertical_accuracy; // Vertical (altitude) accuracy in meters float velocity_east; // Velocity in the east direction represented in // meters/second float velocity_north; // Velocity in the north direction represented in // meters/second float velocity_up; // Velocity in the up direction represented in // meters/second float speed_accuracy; // Speed accuracy represented in meters/second
動画に関する要件
動画は 7 Hz 以上のフレームレートで録画する必要があります。また、各画像フレームに関連付けられたメタデータもカメラで記録する必要があります。画像ごとに、
int64 time; // The time in nanoseconds when the image was taken. // This is from the same stable system clock that is used to // timestamp the IMU and GPS measurements. // The corresponding frame in the video. int32 frame_num;
MP4 360 動画には、次の user-data atoms も入力する必要があります。
moov/udta/manu
: カメラのメーカー(メーカー)(文字列)moov/udta/modl
: 文字列としてのカメラモデルmoov/udta/meta/ilst/FIRM
: ファームウェア バージョン(文字列)
$ ffprobe your_video.mp4 ... Metadata: make : my.camera.make model : my.camera.model firmware : v_1234.4321 ...
カメラのアーキテクチャ
加速度計 FOR に対し、各センサーと各カメラの基準フレーム(FOR)との間の 6 自由度(6 DOF)変換(相対位置と向き)を指定する必要があります。センサーの FOR は、センサーのデータシートに規定されているとおりに定義し、デバイス内のセンサーの物理的な配置に合わせる必要があります。各カメラの FOR は、Z 軸がデバイスからカメラの FOV に向かう方向を光軸で表しており、X 軸は右側、Y 軸は上から下へ、FOR の原点はカメラの光学中心です。GPS の FOR はアンテナにあります。
各センサーまたはカメラの 6 自由度変換(位置は 3 自由度、方位は 3 自由度)は 3x4 変換行列 T = [R p] として表されます。ここで、R は加速度計 FOR 内のセンサーまたはカメラの FOR の向きを表す 3x3 の回転行列、p は加速度計 FOR のセンサーまたはカメラの FOR の Z 方向の 3x1 位置ベクトル(x、y、メートル単位)を表す 3x1 の位置ベクトル(for z)を表す 3x3 の回転行列です。
要求される変換は、デバイスのコンピュータ支援設計(CAD)モデルによるもので、製造のばらつきを考慮してデバイス固有である必要はありません。この情報は、評価プロセスの開始時に Google と共有する必要があります。
カメラの設定
- カメラで画像に手ぶれ補正を適用しないでください。
- 屋内でも屋外でも画像をキャプチャできるように、カメラの設定を調整する必要があります。
電源(以下のモデルのいずれかまたは両方を使用する必要があります):
- USB 3.1 テザリング電源および充電、4 時間以上の録画をサポート
- バッテリー駆動で 1 時間以上の録画とアップロードに対応
ソフトウェア実装に関する注意事項
Street View Publish API を使用したアップロードに対応している必要があります。API へのリクエストはすべて、こちらの説明に沿って認証を受ける必要があります。
ストリートビューにアップロードしたすべての画像について:
- 画像の作成日時(画像が撮影された日時)を指定する必要があります。
- 製品のメーカー、モデル、ファームウェア バージョンを報告する必要があります。
- 手ぶれ補正をオフにする必要があります。
- 未加工の GPS および IMU データのデータ コンポーネントはすべて共有する必要があります(測定した時点ではなく、測定した日時に関して、測定データに正確なタイムスタンプが付加されている必要があります)。
ストリートビューにアップロードされたすべての 360°動画:
- テレメトリー データは、カメラ モーション メタデータを使用して通信する必要があります。
- 写真が撮影されたときの正しいフレームレートでフォトシーケンスをエンコードする必要があります。
また、ユーザーがアプリを公開する前に(少なくとも初回に)、次の文言と行をアプリに含めてください。
「このコンテンツは Google マップで一般公開されます。また、他の Google サービスでも表示される場合があります。マップのユーザーの投稿コンテンツに関するポリシーについて詳しくは、こちらをご覧ください。」商品の評価
- ストリートビュー対応プロに関心をお持ちですか?準備はいいですか?
- Open Spherical Camera API と Street View Publish API を確認する
- Street View Publish API サポート経由で 360°写真シーケンスへのアクセスをリクエストします。製品が上記の仕様をどのように満たしているかを記載してください。Google の提供するテンプレートを使用して、以下の情報の提供をお願いする場合もあります。
- MP4 ファイル 3 枚と写真 3 枚(カメラのモーション メタデータ仕様など、上記の仕様に準拠しているもの)
- ストリートビュー認定フォトグラファーの資格要件に必要な 360°写真シーケンスに関するドキュメントや方法にアクセスするには、アカウントをホワイトリストに登録してください。
- ストリートビュー対応プロに選ばれた場合、ぜひご利用ください。
- 製品のカメラ アーキテクチャをお知らせください
- Street View Publish API を使用して 360°写真と写真シーケンスをストリートビューにアップロードする機能
- 12 枚のフォト シーケンス(1 枚のフォト シーケンスあたり 20 km 以上)と 12 枚の写真を、下に均等に分散して公開します。Google のチームが提供しているテンプレートを使用して、調査結果を Google にお知らせください。
- カメラ制御オペレーティング システム: Android、iOS、オンデバイス
- ソフトウェア オペレーティング システムのアップロード: Android、iOS、MacOS、Windows、デバイス
- エリアタイプ: 都市の峡谷、その他の都市部、郊外地区
- 5 人以上のベータ版テスターに、それぞれ 3 つ以上のフォト シーケンス(1 つのフォト シーケンスあたり 5 km 以上)をアップロードする。Google のチームが提供しているテンプレートを使用して、調査結果を Google にお知らせください。 お送りいただいた内容を確認し、フィードバックを提供いたします。テストデータが完全かつ要件を満たしていることが確認されたら、次のステップに進みます。
- Google チームと連携して、必要な機器(アクセサリを含む)、アクセス権、ヘルプ コンテンツを準備し、プロダクトのエンドツーエンドのストリートビュー エクスペリエンスを評価してください。 テスト結果を確認し、フィードバックをお送りいたします。テストデータと公開フローがポリシーに準拠していることを確認したら、次のステップに進みます。
- ストリートビュー対応プロとして承認されましたか?おめでとうございます。
- 最後のステップとして、共生マーケティングの機会に備えるために、ヘルプ コンテンツとサポート チャネルへのリンクを含むリリース計画をご提出ください(Google のブランドの取り扱いガイドラインが適用されます)。Google のチームが用意したテンプレートを使用してプランを共有してください。申請が完全に承認されると、Google はストリートビュー対応プロバッジを付与し、共同マーケティングの機会を調整します。
- おめでとうございます。ストリートビュー対応(プロ仕様)が承認されました。このステータスは 1 年間有効です。最初の 1 年間にユーザーが 5,000 km を超える画像を Google マップに公開した場合、商品は自動的に 2 年目の対象となります。
例外
個々の要件には一致しないが、このドキュメントで規定されているエンドツーエンドのパフォーマンス指標全体を満たしている特定のハードウェアおよびソフトウェア ソリューションについては、例外が認められることがあります。