回転ベクトル CV のクロスチェック

テストパターンのサムネイル

図 1. テストパターンのサムネイル。上のリンクからフル解像度の画像をダウンロードしてください。

このページでは、回転ベクトル センサーの実装の互換性を適切にテストする手順を説明します。このテストは、デバイスで TYPE_ROTATION_VECTOR 複合センサー機能が宣言されている場合に実行する必要があります。

テスト

  1. テストする Android デバイスに OpenCV Manager をインストールします。
  2. SourceForge.net から OpenCV-3.0.0-android-sdk.zip パッケージをダウンロードします。
  3. ダウンロードしたアーカイブ内の apk フォルダから APK を探します。--bypass-low-target-sdk-block オプションを指定し adb install コマンドを使用して、パソコンからデバイスに APK を読み込みます。Android 13 以前を搭載しているデバイスについては、この --bypass-low-target-sdk-block オプションは必要ありません。詳細については、アプリをインストールするをご覧ください。
  4. Google Play にログインしているアクティブなアカウントがある場合は、Google Play で OpenCV Manager を探し、コンテキスト メニュー([...] ボタンでポップアップされるメニュー)で自動更新を無効にします。

    OpenCV Manager の自動更新を無効にする

    図 2. Google Play で自動更新を無効化

  5. 拡大縮小オプションを無効にして、こちらのリンクのテストパターンを印刷します。このテストパターンは、横向きの US レター紙に収まるサイズになっています。

    注: 上記のインライン画像は低解像度であり、あくまでも例として示したものです。これを直接テストパターンとして印刷しないでください。

  6. テストパターンを水平面に置きます。
  7. CTS 検証ツールアプリで回転ベクトル CV クロスチェックを開始します。ガイドに沿って機内モードをオンにし、自動回転をオフにして、明るさの自動調節と位置を調整します(変更済みでない場合)。
    テストの開始

    図 3. テストの開始

  8. 動画プレビューが表示されたら、スマートフォンをテストパターンの 1 メートル上で、メインカメラがテストパターンを向くようにし、テストパターンの黄色のマーカーと画面上の黄色のマーカーを同じ角で合わせます。
    テストパターンの配置

    図 4. テストパターンの配置

  9. パターン全体がカメラビューに収まるようにしながら、テスト対象の Android デバイス(DUT)を回転範囲表示の指示に従って、パターンのまわりを回転させます。下図の示す 3 通りの方向に 1 方向ずつ、1、2、3 の順で回転させます。滑らかで安定した動きを維持してください。
    デバイスの動き

    図 5. テスト対象デバイスを動かす

  10. キャプチャ後、カメラのプレビューが消え、解析プロセスが開始します。解析が終わるまでしばらく待ちます。通常、スマートフォンの性能に応じて 1~5 分かかります。解析が完了すると、スマートフォンがバイブレーションと音で知らせます。解析が成功すると、結果の数値が画面に表示されます。
    テスト完了

    図 6. テストの終了

  11. [NEXT] をクリックして合否の画面に進み、結果を確認します。
    テストの成功

    図 7. テストに合格する

  12. 次のヒントを参考にしてください。
    1. この手動テストは複雑であるため、何度か試してみることをおすすめします。
    2. 適切な結果を得るには、加速度計、ジャイロスコープ、磁力計をテストの前に較正してください。

トラブルシューティング

  1. 症状: テストケースの開始時または録画終了直後にテストがクラッシュした。
    原因: OpenCV Manager の互換性に関する問題の可能性があります。logcat をチェックして、それが正しいかどうか確認します。正しいと確認した場合、インストールされている OpenCV Manager のバージョンとアーキテクチャをチェックします。
  2. 症状: 「Too many invalid frame」(無効なフレームが多すぎる)というエラーでテストが何度も失敗する。
    原因: 動画の品質が原因である可能性があります。次の条件を確認してください。
    1. テストに十分な周囲光がある。通常は自然光が最適です。それが利用できない場合は、はっきりとした影が生じないように複数の角度から大量の光を当てても構いません。反射を抑えるため、照射角度の狭い照明は使わないでください。
    2. 動画撮影中の動きが滑らかである。動きがぎくしゃくしているとぼけた映像となり、コンピュータ ビジョンのソフトウェアが混乱します。
    3. パターンは常に全体が動画プレビュー フレーム内にあり、中央付近に配置されている。パターンのサイズが動画プレビュー ウィンドウの 1/4~1/2 になるようにしてください。パターンが小さすぎると、精度が低下します。 パターンが大きすぎると、レンズ歪みが強くなり、常に録画フレーム内に収めることが難しくなります。
    4. カメラのピント合わせが正しく機能している。一部のデバイスでは、録画中のピント合わせに問題が発生します。これは一般に、シーンの変化が少なすぎるためです(無地の滑らか床面など)。通常、テストパターンを模様のある平面に置くか、テストパターンの周囲に物体を置くと改善されます。
    5. 手ぶれ補正機能がオフになっている。
  3. 症状: ピッチとロールのテストは正常だが、ヨーのテストが常に失敗する。
    原因: まず、磁気センサーの較正を確認してください。 磁気センサーが較正されていないと、回転ベクトルは正常に機能しません。
    また、撮影が原因となってヨー軸で失敗する場合があります。デバイスをしっかりと持ってテストパターンのまわりを移動しながら、ヨーのテストを行ってください。デバイスを手の中で回転させながら動画の品質を維持するのは容易でありません。

フィードバックを送信

上記の手順でも問題が解決しない場合は、以下のフィードバック手順に沿って問題をお知らせください。

バグを報告する際は、以下の情報をご確認ください。

  1. Android の bugreport
  2. エラーメッセージが表示された場合は、そのスクリーンショット。
  3. /sdcard/RVCVRecData/ の内容。このフォルダには動画ファイルが含まれているため、テストが複数回行われている場合は非常に大きなサイズになります。フォルダを空にしてもう一度テストを行うと、サイズが小さくなります。中の動画ファイルを調べて、録画に明らかな問題がないか確認してください。
  4. OpenCV Manager アプリのスクリーンショット。