Android 13 リリースには、 Camera ITSに対する多くの変更が含まれています。 Android 13 では、更新された Python とパッケージのバージョン、テスト ハードウェアの更新などの段階的な変更に加えて、ビデオ テストがサポートされています。
このページでは、Android 13 のカメラ ITS の変更点をまとめています。変更点は、大きく 6 つのカテゴリに分類されます。
Python とパッケージのバージョン
Android 13 は、Android 12 でサポートされている Python バージョンとライブラリに加えて、次の Python バージョンをサポートしています。
- パイソン 3.9.2
- OpenCV 4.2.0
- ナンピー 1.20.3
- Matplotlib 3.3.4
- スパイ 1.6.2
- pyシリアル3.5
- 枕 8.3.1
- PyYAML 5.4.1
- モブリー 1.11
- FFmpeg 4.4.1
構成ファイルの追加
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_faces
はtest_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_utils
とvideo_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 を参照) も含まれています。
図 1. Arduino シールド rev2.0 で回転と照明を制御
また、13の場合、既存のコントローラーのファームウェアを更新して、回転速度制御を有効にする必要があります。このファームウェアは、次の場所からダウンロードできます。
新しいコントローラーの詳細については、 Android 13 センサー フュージョン コントローラーを参照してください。