test_preview_distortion在Android15-R2测试包Fail分析并解决的记录

ITS Sensor Fusion中的test_preview_distortion在Android15-R2测试包Fail分析并解决的记录

错误Log

11-14 16:06:15.710 INFO > PreviewDistortionTest <
11-14 16:06:24.998 INFO [Test] test_preview_distortion
11-14 16:06:26.471 ERROR Exception occurred in test_preview_distortion.
Traceback (most recent call last):
File “/home/.local/lib/python3.10/site-packages/mobly/base_test.py”, line 783, in exec_one_test
test_method()
File “/home/android-cts-verifier/CameraITS/tests/sensor_fusion/test_preview_distortion.py”, line 473, in test_preview_distortion
preview_size = preview_processing_utils.get_max_preview_test_size(
File “/home/android-cts-verifier/CameraITS/utils/preview_processing_utils.py”, line 370, in get_max_preview_test_size
raise AssertionError(‘capped_supported_preview_sizes is empty.’)
AssertionError: capped_supported_preview_sizes is empty.

### 测试文件概述 `test_multi_camera_alignment.py` 是 Android 16 XTS(兼容性测试套件)中用于验证多摄像头设备图像对齐能力的测试脚本。该测试确保多个摄像头在同一场景下拍摄时,输出图像在空间和时间上保持一致,特别是在广角、主摄和长焦摄像头之间实现像素级对齐和时间同步[^1]。 该测试脚本主要验证以下内容: - **空间对齐**:多个摄像头在相同场景下拍摄的图像应保持一致的视角和对齐方式,确保图像拼接或切换时无明显错位。 - **时间同步**:多个摄像头在触发拍摄时应尽可能同步,以避免因拍摄时间差异导致的运动模糊或图像不一致。 - **元数据一致性**:每个摄像头输出的图像元数据(如 `SENSOR_TIMESTAMP`、`LENS_POSE_ROTATION`)必须一致,以支持高级图像处理(如深度感知和图像融合)。 以下是一个简化版的测试逻辑示例: ```python def test_multi_camera_alignment(): camera_devices = get_available_cameras() reference_camera = camera_devices[0] frames_ref = reference_camera.capture_frames(5) timestamps_ref = [frame.metadata['SENSOR_TIMESTAMP'] for frame in frames_ref] for camera in camera_devices[1:]: frames = camera.capture_frames(5) timestamps = [frame.metadata['SENSOR_TIMESTAMP'] for frame in frames] assert all(abs(t1 - t2) < MAX_ALLOWED_TIMESTAMP_DIFF for t1, t2 in zip(timestamps, timestamps_ref)), \ f"Timestamp mismatch between {reference_camera} and {camera}" ``` ### 测试执行逻辑 测试脚本会依次获取设备上的所有摄像头,选择一个作为参考摄像头(通常为主摄)。随后,脚本会同时触发所有摄像头进行图像捕获,比对各摄像头输出图像的时间戳和空间对齐信息。若时间戳差异超过允许范围或图像对齐误差较大,则测试失败。 此外,测试还会验证摄像头之间的姿态信息是否一致,例如: ```python def test_camera_pose_consistency(): camera_devices = get_available_cameras() poses = [] for camera in camera_devices: frame = camera.capture_frame() pose = frame.metadata.get('LENS_POSE_ROTATION') poses.append(pose) assert all(pose == poses[0] for pose in poses), "Camera pose mismatch detected" ``` ### 测试环境与依赖 测试依赖于以下关键元数据字段: - `SENSOR_TIMESTAMP`:用于判断多个摄像头的拍摄时间是否同步。 - `LENS_POSE_ROTATION`:用于验证摄像头的姿态是否一致。 - `DISTORTION`:用于判断图像是否存在畸变,影响对齐效果。 测试环境支持不同类型的摄像头组合(如双摄、三摄),确保在不同光照条件下测试图像对齐的一致性。 ### 测试结果判定标准 - **通过标准**:所有摄像头在时间戳差异、图像对齐误差和姿态信息一致性方面均符合预期。 - **失败标准**:若时间戳差异超过允许范围,或图像对齐误差较大,或姿态信息不一致,则测试失败。 ### 多摄像头图像处理对测试的影响 在多摄像头系统中,图像的拼接、融合和深度感知依赖于摄像头之间的对齐精度。测试过程中会确保图像处理模块正确应用对齐算法,以避免因摄像头差异导致图像拼接错误或深度图不准确。此外,测试脚本会使用标准测试图案作为测试场景,以确保图像对齐行为的可预测性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值