Android 相機映像檔測試套件 (ITS) 是 Android 相容性測試的一部分 套件 (CTS) 驗證器,內含可驗證圖片內容的測試。CTS 驗證器 支援 ITS 測試自動化,並內建 Camera ITS。 手動測試支援涵蓋所有 Android 裝置 板型規格
內建 ITS 服務具備下列優點:
- 自動化:過程中不需要人為作業介入 測試。
- 輕鬆排解問題測試環境的一致性 可以減少設定錯誤,提高重現能力。
- 效率。針對個別攝影機/場景重試 可提高測試執行效率。
開始使用
ITS 型塑膠箱含有從電腦輔助下切割的塑膠箱 設計 (CAD) 繪圖、圖表平板電腦以及測試中裝置 (DUT)。下表 將說明可使用的各種 ITS 便捷功能與功能與規格。
支架用 | 圖表距離 | DUT 相機的 FoV 範圍 (約略值) | 功能 |
---|---|---|---|
模組化基本 rig | 22 公分 | 16° - 120° |
|
模組化底座和電話擴充 rig | 22 公分 - 100 公分* | 10° - 120° | |
WFoV ITS 手冊 | 22 公分 | 16° - 120° |
|
立即可用的 RFoV ITS | 31 公分 | 16° - 90° |
|
*你可以根據不同圖表距離調整電話延伸標準長度。 |
支架用 | 圖表距離 | DUT 相機的 FoV 範圍 (約略值) | 功能 |
---|---|---|---|
模組化基本 rig | 22 公分 | 16° - 120° |
|
模組化底座和電話擴充 rig | 22 公分 - 100 公分* | 10° - 120° | |
WFoV ITS 手冊 | 22 公分 | 16° - 120° |
|
立即可用的 RFoV ITS | 31 公分 | 16° - 90° |
|
*你可以根據不同圖表距離調整電話延伸標準長度。 |
如何依需求開始使用相機:
- 購買或建立模組。 WFoV 或 href="/docs/compatibility/cts/camera-modular-rig-system">模組化 WFoV,或 打開RFoV ITS。
- 使用相機 ITS 設定平板電腦 軟體
- 執行測試。
- 從 DUT 取得結果。
設定平板電腦
本節提供
配合多種裝置
相機 ITS 測試,位於
CameraITS
目錄。以下操作說明是以 Pixel C 為例
平板電腦範例平板電腦相關資訊
需求和建議,請參閱平板電腦版
需求。
注意:相機 ITS Python 指令碼
在平板電腦上自動設定以下選項:
設定 >顯示 >睡眠 >閒置 30 分鐘後
自動調整亮度 >關閉
- 為平板電腦充電並開機。如果系統提示您建立帳戶,請略過這個步驟 (相機 ITS 不需要任何與平板電腦配對的帳戶)。
- 將平板電腦更新至 Android 7.0 以上版本。Android 6.x 以下版本 不支援相機 ITS。
- 啟用開發人員模式。
- 返回「設定」,然後選取「開發人員選項」。
啟用選項 - 開啟
- 螢幕不休眠
- USB 偵錯功能,可讓主機以偵錯模式執行平板電腦。當您 首次將平板電腦連線至主機時,平板電腦會提示 允許 USB 偵錯嗎?如果平板電腦未顯示偵錯提示 並拔除平板電腦再重新連線)。
停用選項 - 自動系統更新
- 透過 USB 驗證應用程式
- 執行
$ adb devices
以列出 DUT 和圖表 ID 可用的裝置。如何判斷device_id
和chart_id
、插上及拔除裝置電源,然後觀察 。 - 執行三次測試,隱藏可能會遮蓋的提示和使用者提示
。
- 將平板電腦正面朝上放在桌上 (請勿將平板電腦裝在背面 方塊)。
- 執行下列指令:
python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
場景 2 和 3 需要平板電腦顯示圖片,因此平板電腦會顯示提示 要允許雲端硬碟存取裝置上的相片、媒體和檔案嗎?。晴朗 並按下「Allow」,避免系統日後顯示提示。 - 再次執行指令。平板電腦會提示「要保留這個檔案的副本嗎?」提示。 以及推薦 Google 雲端硬碟清除這則提示 (並避免日後出現提示) 依序按下「雲端硬碟」圖示,再按「取消」,即可上傳至雲端硬碟。
- 最後,執行
tools/run_all_tests.py
並確認場景 就能自動變更腳本。雖然大部分 測試失敗 (因為相機未指向圖表),您可以確認 平板電腦可正確循環切換場景,但不會顯示任何提示或 螢幕上的其他彈出式視窗
執行測試
執行 ITS 專用程序之前,請確認您的測試設定包含 下列軟硬體:
- 一 (1) 開箱 ITS
- 一 (1) 高解析度 10 吋用於展示場景的平板電腦,S/N:5811000011
- 一 (1) 具有 CTS 驗證器的 DUT
已安裝 7.0_8 以上版本的應用程式。DUT 範例:
- 一 (1) Pixel NOF26W 用於後置鏡頭(0) 測試;S/N:FA6BM0305016。目的地:
安裝 CTS Verifier 應用程式,解壓縮
android-cts-verifier.zip
,然後 執行adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
- 一 (1) Pixel NOF26W 用於後置鏡頭(0) 測試;S/N:FA6BM0305016。目的地:
安裝 CTS Verifier 應用程式,解壓縮
執行平板電腦場景
如要在後置鏡頭上執行場景 0 到 4、6 以及 scene_change 的場景,請按照以下步驟操作:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
例子:
重試場景
你可以重試單一攝影機的場景:
- 如何在單一攝影機上重試場景:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
執行場景 5
場景 5 需要特定光線的特殊設定 (詳情請參閱
CTS Verifier 中的 CameraITS.pdf
,請前往以下網址下載:
請參閱 Compatibility Test Suite 下載)。
場景 5 必須分開執行
(不在包裝盒內)。
如要在單一裝置上執行前置與後置鏡頭的畫面 5,請按照下列步驟操作:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
取得結果
您可以在測試期間查看結果,並將已完成的結果儲存為 報表。
- 查看結果。如要將相機 ITS 結果儲存為報表,請按照下列步驟操作:
- 按下「通過」並儲存報表。
圖 3.相機 ITS 報告 - 從裝置提取報告:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- 解壓縮報表檔案,然後查看「
test_result.xml
」。
圖 4.相機 ITS 報告
- 按下「通過」並儲存報表。
平板電腦需求
在 Android 15 以上版本中,平板電腦會當做 ITS 圖表顯示 必須列在下列平板電腦許可清單中。查看支援測試 低光源環境,請參閱 支援低光源環境的平板電腦。適用對象 Android 14 以下版本,請參閱 Android 14 以下版本的平板電腦需求。
系統會根據下列條件選擇許可清單中的平板電腦:
- 顯示大小約為 10 吋,螢幕解析度大於 1920 x 1200 像素。
- 必須對控制寬度調節 (PWM) 的螢幕造成任何測量到閃爍情形 調暗。
- 可以擷取 ITS 測試傳送的 ADB 指令,以及顯示含有 指示螢幕亮度。
必須根據平板電腦,在 config.yml
中設定 brightness
值
模型如要判斷平板電腦型號是否與裝置上的「裝置名稱」對應,
許可清單,則會執行ro.product.device
adb shell getprop | grep 'ro.product.device'
ADB 指令。
裝置 | 顯示大小 (英寸) |
顯示大小 (像素) |
平板電腦尺寸 (英寸) |
螢幕 亮度 |
裝置名稱 (ro.product .device) |
平板電腦 OS 版本 |
---|---|---|---|---|---|---|
Google Pixel C |
10.2 | 2560 x 1800 | 9.53 x 7.05 x 0.28 | 96 | 龍 | Android 6 以上版本 |
榮耀 學名:Pad 8 |
11 | 2000 x 1200 | 10.18 x 6.76 x 0.29 | 192 | HNHEY-Q | Android 12 |
Lenovo Tab M10 Plus |
10.3 | 1920 x 1200 | 9.61 x 6.03 x 0.32 | 192 | X606F | Android 9 以上版本 |
Lenovo Tab P11 |
11 | 2000 x 1200 | 10.17 x 6.42 x 0.30 | 192 | J606F | Android 11 以上版本 |
Lenovo Tab P11 第 2 代 |
11.5 分 | 2000 x 1200 | 10.59 x 6.67 x 0.29 | 192 | TB350FU | Android 13 以上版本 |
Nokia T21 |
10.4 分 | 2000 x 1200 | 9.74 x 6.19 x 0.30 | 192 | AGTA | Android 12 以上版本 |
Samsung Galaxy Tab A7 |
10.4 分 | 2000 x 1200 | 9.75 x 6.2 x 0.28 | 192 | gta4lwifi | Android 10 以上版本 |
Samsung Galaxy Tab A8 |
10.5 分 | 1920 x 1200 | 9.72 x 6.73 x 0.27 | 192 | gta8wifi | Android 11 以上版本 |
Samsung Galaxy Tab A9+ |
11 | 1920 x 1200 | 10.12 x 6.64 x 0.27 | 192 | gta9pwifi | Android 13 以上版本 |
Vivo Pad2 |
12.1 | 2800 x 1968 | 10.47 x 7.54 x 0.26 | 192 | DPD2221 | Android 13 以上版本 |
小米 Pad 5 |
11 | 2560 x 1600 | 10.18 x 6.76 x 0.29 | 192 | 納布 | Android 13 以上版本 |
小米 紅米 巴德 |
10.61 美元 | 2000 x 1200 | 9.86 x 6.22 x 0.28 | 192 | 尤魯 | Android 14 以上版本 |
小米 紅米 Pad SE |
11 | 2560 x 1600 | 10.06 x 6.58 x 0.29 | 192 | Xun | Android 13 以上版本 |
支援低光源環境的平板電腦
下表列出支援測試 低光源場景。 這些平板電腦可達到低光源環境所需的亮度,讓 DUT 能夠 正確公開圖表裝置 | 裝置名稱 (ro.product.device) | 平板電腦作業系統版本 |
---|---|---|
Samsung Galaxy Tab A8 | gta8wifi | Android 11 以上版本 |
Samsung Galaxy Tab A9+ | gta9pwifi | Android 13 以上版本 |
Android 14 以下版本的平板電腦需求
平板電腦的螢幕解析度必須為 10 英寸,且具有螢幕解析度
大於 1920 x 1200 像素平板電腦不得使用脈搏寬度調節 (PWM) 進行設定
調整亮度您必須在以下位置設定 brightness
值:
config.yml
(根據平板電腦型號)。
下表列出與 Android 版本進行 ITS 測試時建議使用的平板電腦
每個 Pod 都有專屬的 DUT 版本
裝置 | 顯示大小 (英寸) |
顯示大小 (像素) |
平板電腦尺寸 (英寸) |
螢幕 亮度 |
顯示 位元 |
支援 DUT OS |
支援的 平板電腦 OS |
---|---|---|---|---|---|---|---|
Samsung Galaxy Tab A8 |
10.5 分 | 1920 x 1200 | 9.72 x 6.37 x 0.27 | 192 | 8 | Android 13 以上版本 | Android 11 以上版本 |
小米 Pad 5 |
11 | 2560 x 1600 | 10.03 x 6.55 x 0.27 | 1024 | 11 | Android 12 以上版本 | 僅限 Android 11 |
Lenovo Tab M10 Plus |
10.3 | 1920 x 1200 | 9.61 x 6.03 x 0.32 | 192 | 8 | Android 12 以上版本 | Android 9 以上版本 |
Samsung Galaxy Tab A7 |
10.4 分 | 2000 x 1200 | 9.75 x 6.2 x 0.28 | 192 | 8 | Android 12 以上版本 | Android 10 以上版本 |
楚威 你好 9 航空 10.1 |
10.1 | 2560 x 1600 | 9.52 x 6.77 x 0.31 | 192 | 8 | Android 7 以上版本 | Android 8 以上版本 |
華碩 ZenPad 3 |
9.7 | 2048 x 1536 | 9.47 x 6.44 x 0.28 | 192 | 8 | Android 7 以上版本 | Android 6 以上版本 |
華為 MediaPad m5 |
10.8 | 2560 x 1600 | 10.18 x 6.76 x 0.29 | 192 | 8 | Android 7 以上版本 | Android 8 以上版本 |
Google Pixel C |
10.2 | 2560 x 1800 | 9.53 x 7.05 x 0.28 | 96 | 8 | Android 7 以上版本 | Android 6 以上版本 |
Sony Xperia Z4 |
10.1 | 2560 x 1600 | 10 x 6.57 x 0.24 | 192 | 8 | Android 7 以上版本 | Android 5 以上版本 |
常見問題
問題 1:如何判斷裝置需要哪種測試裝置?
RFoV ITS 立即支援的修訂版本 1:測試 RFoV 攝影機在平板電腦場景中的
CameraITS/tests
目錄內。RFoV 的定義如下
60° <FoV <90°。
如果是大型 FoV 相機,光線或圖表中可能會出現光源
可能的涵蓋範圍太小,因而影響測試結果
WFoV ITS 增益集
修訂版本 2 測試 WFoV 相機,在
CameraITS/tests
目錄內。WFoV 的定義
FoV >= 90°。
修訂版本 2 的測試核心與修訂版本 1 相同,但更大。修訂版本 2 測試 rig
在 Android 9 以上版本中,可同時測試 RFoV 和 WFoV 相機。由於佔用空間較大,修訂版本 2
如果 DUT 是平板電腦
模組式基本元件
透過 Google Home 應用程式
CameraITS/tests
目錄內。WFoV 的定義
FoV >= 90°。
針對搭載 Android 9 以上版本的裝置,模組底板可同時測試 RFoV 和 WFoV 相機。
也支援更長的電話延長設備,此元件可附加至測試望遠鏡頭的測試電話相機上
最短對焦距離。模組式底層在功能上與 WFoV ITS 形設計元件相同
但較小
感應器融合框 可測試相機/陀螺儀時機
偏移和多機系統影格與測試
scenes=sensor_fusion
。相機/陀螺儀時間偏移較少
REALTIME
功能旗標需要 1 毫秒以上的時間。
可以透過單一設備測試多機裝置,以便進行靜態 ITS 測試
以及感應器融合耳機 (如果相機具有 REALTIME
功能)
旗標。
下表提供一組設定範例。
範例 | 相機鏡頭 | 即時? | 建議的 rig | 附註 |
---|---|---|---|---|
1 | 24° | 否 | 修訂版本 1 或 2 | Android 7.0 以上版本 |
2 | 24° | 是 | 模組底座或 Rev 1、2 和感應器融合 | Android 9 以上版本 |
3 | 22° + 95° | 是 | Rev 2 + 感應器融合 | Android 9 以上版本 |
4 | 21° + 95° + 20° | 是 | 模組底座、電話擴充功能和感應器融合 | Android 9 以上版本 |
5 | 75° + 95° 平板電腦 | 否 | 修訂版本 2 | Android 9 以上版本 |
問題 2:如何指定使用中的測試硬體?
如要指定正確的測試強度,請確認圖表距離參數正確無誤。 rev1 測試 rig (RFoV) 有圖表 距離為 31 公分與 Rev2 rig (WFoV) 的距離,在圖表中的距離為 22 公分。根據預設, 圖表距離設為 31 公分。
Android 10 至 Android 11
如何在 Android 10 到 11 在指令列中新增dist
旗標。預設
dist
的值是 31
。執行下列指令
變更 chart_distance
參數。
python tools/run_all_tests.py ... chart=# dist=22
Android 12 以上版本
如要在 Android 12 以上版本中找出正確的測試硬體,您可以編輯 config.yml 檔案,即可變更chart_distance
參數。
edit config.yml chart_distance: 31.0 → chart_distance: 22.0
問題 3:如何控制平板電腦的亮度?
平板電腦的亮度預設為 96,
如要在搭載 Android 7.0 至 Android 9 的平板電腦上調整亮度, 執行:
edit tools/wake_up_screen.py DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192
如何調整搭載 Android 10 至 Android 版本的平板電腦亮度
11、
加入 brightness
標記,就能在指令列中變更這些值:
python tools/run_all_tests.py device=# camera=# chart=# brightness=192
如要在搭載 Android 12 以上版本的平板電腦上調整亮度, 執行:
edit config.yml brightness: 96 → brightness: 192
問題 4:如何對單一測試進行偵錯?
測試可以個別執行以偵錯,但結果不會
除非整個場景執行完畢,否則會回報給 CtsVerifier.apk
。
如要在 Android 11 以下版本中執行個別場景:
- 新增
scenes
旗標以載入場景tools/run_all_tests.py
:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
-
按下 Control+C 鍵即可在場景結束後停止測試 記錄為 已載入
stdout
。如果正確的場景已 喚醒螢幕:
python tools/wake_up_screen.py screen=#
-
執行個別測試。
python tests/scene#/test_*.py device=# camera=#
系統會在本機目錄中產生圖表
stdout
和stderr
已列印到螢幕上。如要進一步瞭解偵錯作業,請新增
print
陳述式。如要增加偵錯用的測試輸出內容,請新增debug=True
旗標。python tests/scene#/test_*.py device=# camera=# debug=True
結果會輸出至本機螢幕,並將圖片儲存至本機目錄中
而非產生的 /tmp/tmp###
目錄
跑步 tools/run_all_tests.py
。
如要在 Android 12 以上版本中執行個別場景:
-
編輯
config.yml
檔案。edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
-
執行個別測試。
python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
結果會顯示在 /tmp/logs/mobly/TEST_BED_TABLET_SCENES/
目錄中,並已排序
依照執行時間
問題 5:為什麼需要對整個情境執行失敗的測試 才能個別重新執行測試呢?
可以個別執行測試以便偵錯,但結果無法
除非整個場景執行完畢,否則會回報給 CtsVerifier.apk
。
相機 ITS 可確保第三方應用程式具有相容的相機介面。 與單元測試類似,每項測試都強調在 相機上為找出不可靠的行為,這些測試預期會 然後以群組的形式呈現整個場景舉例來說 測試可能會略過整個場景 以及可靠的測試
舉例來說,假設場景中有 10 次試驗
各有 50% 的機率會傳回 PASS
在每個 Pod 中
若是單獨測試
值勤人員仍有可能用到攝影機
或讓相機 ITS不過,如果測試是以場景的形式匯總執行
這個場景只有 0.1% 的機率會通過
問題 6:如何執行單一場景或重新排序執行場景?
根據預設,tools/run_all_tests.py
指令碼會執行所有場景
順序。不過,場景可以單獨或依特定順序執行
回報給 CtsVerifier.apk
。
執行個別場景 (例如場景 2),或是在特定場景中執行多個場景 Android 11 的順序或 低於:
python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2
執行個別場景,或在特定場景中執行多個場景 Android 12 以上版本的順序:
python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2
其他參數會在 config.yml
檔案中設定。
問題 7:一些場景 1 測試在平板電腦設定程序失敗,但通過 以紙張圖呈現哪裡出了問題?
確認平板電腦和測試環境符合下列條件 規格。
平板電腦規格
請確定平板電腦符合下列規格:
- 顯示大小 (英寸):10 英寸
- 顯示大小 (像素):大於 1920 x 1200 像素
詳情請參閱 平板電腦規格:
平板電腦亮度
如果平板電腦螢幕亮度太高,測試可能無法獲得正確的結果 低音。
詳情請參閱 如何控制平板電腦的亮度?
箱燈亮度 (需使用 Luxe 測光儀)
請確認平板電腦開盤時的目標 lux 值介於 100 至 100 之間 300。
如果 lux 等級過高,scene1/test_param_flash_mode.py
會傳回 FAIL
。如果 lux 等級過低,則多次測試會失敗。
問題 8:如何對感應器融合測試進行偵錯?
確認你已加入
dialout
群組。groups | egrep ‘dialout'
判斷是否連接感應器融合控制器 Microchip 技術已連接到 USB 連接埠。
lsusb … Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc. …
多次執行測試,取得以 400 為基礎的系統分配測試 以下指令。
Android 11 以下版本:
python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
Android 12 以上版本:
python tools/run_sensor_fusion_box.py num_runs=10
其他參數會在
config.yml
檔案中設定。執行作業輸出內容會在以下位置建立的
/tmp/tmp###
資料夾中:sensor_fusion_#
資料夾,其中#
是執行中的 號碼。失敗的常見原因包括:- 手機未正確置中。
- 圖片中的特徵不足 (通常是 FoV 或光線問題)。
- 傳回的
FAIL
有效,且 而且相機和陀螺儀必須修正。
問題 9:回報 測試錯誤?
回報測試錯誤時,請附上產生的檔案和圖片 進行測試。
- 如果您是透過
tools/run_all_tests.py
執行測試,請附加 將/tmp/
目錄壓縮到錯誤中。 - 如果您是單獨執行測試,請附加所有螢幕輸出內容並 產生的圖像
請一併附上錯誤報告。在有問題的測試失敗後,使用 以下指令產生錯誤報告,並將產生的 ZIP 檔案附加到 錯誤。
adb -s device_id bugreport
問題 10:如何在鏡頭已聚焦的相機的情況下,執行 sensor_fusion 測試場景 造成圖像距離在 25 公分的距離造成模糊的情況嗎?
如果攝影機的對焦距離無法超過 25 公分,請移除
感應器。將圖表放在 DUT 可以聚焦和改變的距離上
config.yml
的 chart_distance
至 DUT 和 DUT 之間的測量距離
圖表。圖 5 舉例說明如何在這種情況下測量圖表距離。
edit config.yml chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART
問題 11:如何針對有最小焦距的相機執行平板電腦測試場景 造成圖像距離在 31 公分的距離時有一張模糊嗎?
如果相機無法生成充足的圖像測試 31 公分 (
RFoV 測試元件的深度),請將攝影機安裝在機架前方,以便進行
用於填滿相機視野 (FoV) 約 60% 的圖表場景,
拍出更清晰的影像這個距離可能會低於最小焦距
以及相機之間的距離config.yml
的chart_distance
出發:
31 公分。平板電腦上的圖表縮放比例取決於相機
FoV,如下表所示:
相機視訊 | 圖表縮放比例係數 |
---|---|
60 >FoV >40 人 | 0.67 倍 |
40 >FoV >25 人 | 0.5 倍 |
FoV <25 人 | 0.33 倍 |
問題 12: 使用邏輯多鏡頭 API 時,哪些相機會執行哪些測試?
如果攝影機使用
REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
,所有支援的 ITS 測試
都是在頂層邏輯相機上執行部分 ITS 測試是在實體機台執行
和子相機,而這些測試會列在 tools/run_all_tests.py
在 SUB_CAMERA_TESTS
常數下。