Android 13 カメラ画像テスト スイートのリリースノート

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Android 13 リリースには、 Camera ITSに対する多くの変更が含まれています。 Android 13 では、更新された Python とパッケージのバージョン、テスト ハードウェアの更新などの段階的な変更に加えて、ビデオ テストがサポートされています。

このページでは、Android 13 のカメラ ITS の変更点をまとめています。変更点は、大きく 6 つのカテゴリに分類されます。

Python とパッケージのバージョン

Android 13 は、Android 12 でサポートされている Python バージョンとライブラリに加えて、次の Python バージョンをサポートしています。

構成ファイルの追加

test_auto_flash.pyテストの照明制御が追加されたため、 config.ymlファイルにはコントローラーと照明チャネル用に 2 つの追加パラメーターが必要です。以下は、タブレット ベースの実行用のconfig.ymlファイルのサンプルです。

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      scene: <scene-name>  # if <scene-name> runs all scenes

変更のテスト

scene1_1/test_black_white.py

test_black_whiteテストには、以前のバージョンの Android と一貫性のあるチャネル飽和チェックがあります。つまり、チャネル飽和チェックに必要な最初の API レベルは Android 10 です。

scene1_2/test_yuv_plus_raw.py

test_yuv_plus_rawテストは、16:9 または 4:3 以外のセンサーを処理して、RAW をより適切にサポートします。テストでセンサーの RAW 形式と YUV キャプチャ形式の間で共通の形式が見つからない場合、アスペクト比が異なっていても、テストは RAW キャプチャを最大の YUV キャプチャと比較します。

scene2_a/test_faces.py

test_facestest_num_facesにリファクタリングされます。

scene2_a/test_num_faces.py

test_num_facesテストは、センサー トリミングを処理し、トリミングされた UW カメラ キャプチャに顔の四角形を正しく配置します。

Scene3/test_lens_position.py

test_lens_positionテストは Android 13 で廃止されました。

scene6/test_zoom.py

test_zoomテストがリファクタリングされ、3 台および 4 台のカメラ システムのテストが容易になりました。カメラがズームの 10 倍の比率の範囲で正しくテストされる場合、テストは正しく終了します。これにより、単一のチャート距離でズーム テストを実行できます。

scene_change/test_scene_change.py

test_scene_changeテストは Android 13 で廃止されました。

新しいタブレット ベースのテスト

Android 13 には、2 つの新しいタブレット ベースのテストが含まれています。 Android 13 で起動するデバイスには両方のテストが必須ですが、Android 13 にアップグレードするデバイスではスキップされます。

シーンテスト名最初の API レベル説明
2_a test_auto_flash 33暗いシーンでオートフラッシュが作動することを確認。
2_b test_yuv_jpg_capture_sameness 33 YUV と JPEG のキャプチャがビット単位で同一であることを確認します。

scene2_a/test_auto_flash.py

Android 13 では、 test_auto_flashテストが追加されています。

パラメーター

  • flash : フラッシュが利用できない場合、テストをスキップします。

方法

このテストでは、オート フラッシュのキャプチャ リクエストを構成し、フラッシュ イベントを必要とするシーンを提示します。テスト リグとタブレットの照明をオフにして、自動露出アルゴリズムの暗いシーンを表示します。このテストでは、自動フラッシュを有効にして一連のNUM_FRAMESキャプチャを構成します。 AE_STATE設定が「FLASH_REQUIRED」を返す場合、テストはキャプチャでフラッシュが発生することを確認します。

照明は、プロンプトが表示されたときに手動で制御することも、自動テスト用に照明制御を追加した Arduino コントローラーを使用して自動的に制御することもできます。新しいユーティリティ フォルダーlighting_control_utilsは、テストで照明を制御するためのコードを一元化します。

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 では、 test_yuv_jpeg_capture_samenessテストが追加されています。

パラメーター

  • streamUseCase : カメラがストリーム ユース ケースをサポートするかどうかを決定します。
  • android.jpeg.quality : JPEG 品質を 100 に設定します。

方法

このテストでは、1920x1440 の解像度を超えない最大の JPEG 形式と同じ縦横比を持つ、最大の一般的な YUV および JPEG 形式を使用して 2 つの画像をキャプチャします。このテストでは、 jpeg.qualityを 100 に設定し、デュアル サーフェス リクエストをキャプチャします。次に、両方のイメージを RGB 配列に変換し、2 つのイメージ間の 3D 二乗平均平方根 (RMS) の差を計算します。差の許容範囲は 1% に設定されています。

ビデオテスト

Camera ITS は、Android 13 でビデオ テストのサポートを追加します。

Android 13 では、次のテストが追加されています。

シーンテスト名最初の API レベル説明
4 test_preview_stabilization_fov 33手ぶれ補正を有効にしても、ビデオ プレビューのトリミングが大きくなりすぎないことを確認します。
4 test_video_aspect_ratio_and_crop 33ビデオ形式の FoV、アスペクト比、およびクロッピングを確認します。
センサーフュージョンtest_preview_stabilition 33プレビューの安定化が機能することを確認します。
センサーフュージョンtest_video_stabilition 33ビデオの手ぶれ補正が機能することを確認します。

scene4/test_preview_stabilization_fov.py

Android 13 では、 test_preview_stabilization_fovテストが追加されています。このテストでは、サポートされているプレビュー サイズをチェックして、FoV が不適切にトリミングされていないことを確認します。

方法

このテストでは、プレビュー安定化がオンのビデオとプレビュー安定化がオフのビデオの 2 つをキャプチャします。各ビデオから代表的なフレームが選択され、分析されて、2 つのビデオの FoV の変化が仕様の範囲内であることを確認します。

具体的には、テストはプレビュー安定化の有無にかかわらず、次のパラメーターをチェックします。

  • 円の真円度は一定のままです。
  • 円の中心は安定しています。
  • 円のサイズは 20% を超えて変化することはありません。つまり、FoV は最大で 20% 変化します。

scene4/test_video_aspect_ratio_and_crop.py

Android 13 では、 test_video_aspect_ratio_and_cropテストが追加されています。静止キャプチャのtest_aspect_ratio_and_cropテストと同様に、このテストは、サポートされているビデオ形式をチェックして、ビデオ フレームが不適切に引き伸ばされたりトリミングされたりしていないことを確認します。すべての自己申告ビデオ品質がテストされます。さらに、カメラがHLG10ビデオをサポートしている場合、10 ビット ビデオがテストされます。

Android 13 では、 get_available_video_qualitiesメソッドがits_session_utilsに追加されています。既存のテストと共通のコードを共有するために、Android 13 には 2 つの新しいユーティリティ関数image_fov_utilsvideo_processing_utilsも含まれています。

方法

このテストでは、RAW 形式または RAW がサポートされていない場合は最高解像度の JPEG 形式で参照画像をキャプチャします。参照イメージから、円のサイズと位置が決定されます。次に、サポートされているすべてのビデオ品質で短いビデオが撮影されます。最終参照フレームは、各ビデオ品質から抽出されます。参照フレームから、各ビデオ品質の視野 (FoV)、センタリング (クロップ)、およびアスペクト比が計算されます。

FoV の計算では、ビデオ フレームの円のサイズと、参照画像およびビデオ形式のサイズから計算された円のサイズを比較します。クロップ チェックでは、ビデオ フレームのセンタリングと参照画像のセンタリングを比較します。アスペクト比チェックでは、白い背景に大きな黒い円であるシーンを使用して、円のアスペクト比を決定し、フレームが歪んでいないことを確認します。

sensor_fusion/test_preview_stabilization.py

Android 13 では、1920x1080 までのサポートされているすべてのプレビュー品質をテストするtest_preview_stabilizationテストが追加されています。このテストではセンサー フュージョンテスト リグを使用し、新しいリビジョン 2 センサー フュージョン コントローラーまたは以前の Arduino コントローラー バージョンのファームウェア アップグレードが必要です。新しいコントローラーの詳細については、「ハードウェアの更新と追加」を参照してください。

方法

プレビュー安定化を有効にして、電話を約 15 度の角度でゆっくり動かします。次に、画像の回転がジャイロスコープの回転と比較されます。

sensor_fusion/test_video_stabilization.py

Android 13 では、サポートされている最大 1920x1080 のビデオ品質をテストするtest_video_stabilizationテストが追加されています。 QCIF の低解像度ビデオ品質は除外されます。このテストではセンサー フュージョンテスト リグを使用し、新しいリビジョン 2 センサー フュージョン コントローラーまたは以前の Arduino コントローラー バージョンのファームウェア アップグレードが必要です。新しいコントローラーの詳細については、「ハードウェアの更新と追加」を参照してください。

方法

テスト リグは、プレビューの安定化を有効にして、約 15 度の角度で電話をゆっくりと動かします。次に、画像の回転がジャイロスコープの回転と比較されます。

ハードウェアの更新と追加

Android 13 には、Arduino ベースのリビジョン 2 センサー フュージョン コントローラーへのアップグレードが含まれています。このアップグレードには、ハードウェアとファームウェアの両方の変更が含まれます。アップグレードにより、コントローラーは回転速度と雷制御を設定できます。このアップグレードには、3 つの回転チャンネルと 3 つの照明制御チャンネルを提供する新しいシールド (図 1 を参照) も含まれています。

Arduino シールド rev2.0

図 1. Arduino シールド rev2.0 で回転と照明を制御

また、13の場合、既存のコントローラーのファームウェアを更新して、回転速度制御を有効にする必要があります。このファームウェアは、次の場所からダウンロードできます。

新しいコントローラーの詳細については、 Android 13 センサー フュージョン コントローラーを参照してください。