Trang này cung cấp danh sách đầy đủ các bài kiểm thử trong Bộ kiểm thử hình ảnh (ITS) của Camera, đây là một phần của Trình xác minh Bộ kiểm thử tính tương thích (CTS) của Android. Các kiểm thử ITS là kiểm thử chức năng, tức là các kiểm thử này không đo lường chất lượng hình ảnh, nhưng tất cả các chức năng camera được quảng cáo đều hoạt động như mong đợi. Tài liệu này giúp nhà phát triển và người kiểm thử hiểu rõ chức năng của từng kiểm thử và cách gỡ lỗi khi kiểm thử thất bại.
Camera ITS kiểm thử theo các thuộc tính bắt buộc của camera, cấp độ API và cấp độ lớp hiệu suất nội dung nghe nhìn (MPC). Đối với cấp độ API, ITS sử dụng ro.product.first_api_level
để kiểm soát các kiểm thử được thêm vào một cấp độ API cụ thể nhằm kiểm thử trải nghiệm tiêu cực của người dùng đối với chức năng ở các cấp độ API thấp hơn. ITS sử dụng ro.vendor.api_level
để kiểm thử cổng cho các tính năng được thêm vào một cấp độ API cụ thể yêu cầu khả năng phần cứng mới. Nếu ro.odm.build.media_performance_class
được xác định cho một thiết bị, thì ITS yêu cầu chạy các kiểm thử cụ thể tuỳ thuộc vào cấp MPC.
Các kiểm thử được nhóm theo cảnh như sau:
scene0
: Ghi lại siêu dữ liệu, độ rung, con quay hồi chuyển, độ rungscene1
: Độ phơi sáng, độ nhạy, giá trị phơi sáng (EV), mức bù EV, YUV so với JPEG và RAWscene2
: Phát hiện khuôn mặt, các bài kiểm thử yêu cầu cảnh có màuscene3
: Tăng cường viền, chuyển động của ống kínhscene4
: Tỷ lệ khung hình, cắt, góc nhìnscene5
: Hiện tượng đổ bóng ống kínhscene6
: Thu phóngscene7
: Công tắc nhiều camerascene8
: Đo sáng theo vùng cân bằng trắng tự động (AWB) và độ phơi sáng tự động (AE)scene9
: Nén JPEGscene_extensions
: Tiện ích máy ảnhscene_tele
: Chuyển đổi ống kính tiêu cự dàiscene_flash
: Autoflash, minimum frame ratescene_video
: Loại khung hìnhsensor_fusion
: Độ lệch thời gian của camera và con quay hồi chuyểnfeature_combination
: Tổ hợp tính năngscene_ip
: Tính tương đồng về hình ảnh giữa ứng dụng máy ảnh mặc định và Ứng dụng máy ảnh Jetpack (JCA)
Hãy xem từng phần để biết nội dung mô tả của từng cảnh.
scene0
Các bài kiểm thử không yêu cầu thông tin cụ thể về cảnh. Tuy nhiên, điện thoại phải ở trạng thái tĩnh để kiểm tra con quay hồi chuyển và độ rung.
test_jitter
Đo độ rung trong dấu thời gian của camera.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Đạt: Có ít nhất 30 mili giây giữa các khung hình.
Trong hình sau, hãy lưu ý đến phạm vi trục y nhỏ. Độ trễ thực sự nhỏ trong biểu đồ này.
Hình 1. biểu đồ test_jitter.
test_metadata
Kiểm tra tính hợp lệ của các mục siêu dữ liệu, xem xét kết quả chụp và các đối tượng đặc điểm của camera. Thử nghiệm này sử dụng các giá trị độ phơi sáng và độ khuếch đại auto_capture_request
vì nội dung hình ảnh không quan trọng.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Đạt: Cấp độ phần cứng, thẻ rollingShutterSkew
, frameDuration
, timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, trường nhìn (FoV) và khoảng cách siêu tiêu điểm đều có giá trị hợp lệ.
test_request_capture_match
Kiểm thử để thiết bị ghi các giá trị phơi sáng và độ khuếch đại chính xác bằng cách đọc lại siêu dữ liệu chụp.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Đạt: Yêu cầu và ghi lại các giá trị siêu dữ liệu khớp với nhau trên tất cả các cảnh.
test_sensor_events
Đối với những thiết bị quảng cáo khả năng hỗ trợ hợp nhất cảm biến, kiểm thử này sẽ kiểm tra xem thiết bị có truy vấn và in các sự kiện cảm biến hay không. Các cảm biến dự kiến là gia tốc kế, con quay hồi chuyển và từ kế. Thử nghiệm này chỉ hoạt động nếu màn hình đang bật, tức là thiết bị không ở chế độ chờ.
Các API đã được kiểm thử:
Đạt: Nhận được các sự kiện cho từng cảm biến.
test_solid_color_test_pattern
Kiểm thử để đảm bảo các mẫu kiểm thử màu đơn được tạo đúng cách cho tính năng tắt tiếng camera. Nếu tính năng tắt tiếng camera được hỗ trợ, thì các mẫu kiểm thử màu đồng nhất cũng phải được hỗ trợ. Nếu tính năng tắt tiếng camera không được hỗ trợ, thì các mẫu kiểm thử màu đồng nhất sẽ chỉ được kiểm thử nếu tính năng này được quảng cáo.
Nếu hình ảnh thô được hỗ trợ, thì việc chỉ định màu cũng được kiểm thử. Các màu được kiểm thử là đen, trắng, đỏ, xanh dương và xanh lục. Đối với những camera không hỗ trợ hình ảnh thô, chỉ có màu đen được kiểm thử.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Đạt: Các mẫu kiểm thử màu trơn được hỗ trợ có màu sắc chính xác và có độ biến thiên thấp trong hình ảnh.
test_test_pattern
Kiểm thử tham số android.sensor.testPatternMode
để ghi lại các khung hình cho từng mẫu kiểm thử hợp lệ và kiểm tra để đảm bảo các khung hình được tạo đúng cách cho màu đơn sắc và thanh màu. Thử nghiệm này bao gồm các bước sau:
- Chụp ảnh cho tất cả các mẫu kiểm thử được hỗ trợ.
- Thực hiện kiểm tra độ chính xác cho mẫu kiểm thử màu đồng nhất và thanh màu.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Đạt: Các mẫu kiểm thử được hỗ trợ được tạo đúng cách.
Hình 2. Ví dụ về test_test_patterns.
test_tonemap_curve
Kiểm thử việc chuyển đổi mẫu kiểm thử từ định dạng thô sang YUV bằng phương pháp ánh xạ tông màu tuyến tính. Thử nghiệm này yêu cầu android.sensor.testPatternMode = 2
(COLOR_BARS
) tạo ra một mẫu hình ảnh hoàn hảo để chuyển đổi tông màu. Xác minh rằng quy trình có đầu ra màu sắc phù hợp với ánh xạ tông màu tuyến tính và đầu vào hình ảnh lý tưởng (dựa vào test_test_patterns
).
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Đạt: YUV và RAW trông giống nhau.
Hình 3. Ví dụ thô về test_tonemap_curve.
Hình 4. Ví dụ về YUV test_tonemap_curve.
test_unified_timestamp
Kiểm tra xem các sự kiện của cảm biến hình ảnh và chuyển động có nằm trong cùng một miền thời gian hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
Đạt: Dấu thời gian của chuyển động nằm giữa dấu thời gian của hai hình ảnh.
test_vibration_restriction
Kiểm thử xem chế độ rung của thiết bị có hoạt động như mong đợi hay không.
Các API đã được kiểm thử:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
Đạt: Thiết bị không rung khi bị tắt tiếng bằng API hạn chế âm thanh của camera.
scene1_1
scene1
là một biểu đồ màu xám. Biểu đồ màu xám phải bao phủ 30% FoV ở giữa của camera. Biểu đồ màu xám dự kiến sẽ thách thức 3A (AE, AWB và AF) ở mức vừa phải vì vùng trung tâm không có đặc điểm nào.
Tuy nhiên, yêu cầu chụp ảnh chỉ định toàn bộ cảnh, bao gồm cả các đối tượng đủ để 3A hội tụ.
Bạn có thể kiểm thử camera RFoV trong giàn kiểm thử WFoV hoặc RFoV. Nếu một camera RFoV được kiểm thử trong giàn kiểm thử WFoV, thì biểu đồ sẽ được điều chỉnh theo tỷ lệ 2/3 để chỉ định một số ranh giới cho biểu đồ màu xám trong FoV nhằm giúp 3A hội tụ. Để biết nội dung mô tả chi tiết hơn về các giàn thử nghiệm camera, hãy xem phần Camera ITS-in-a-box.
Hình 5. Biểu đồ cảnh 1 có kích thước đầy đủ (trái), biểu đồ có tỷ lệ 2/3 (phải).
test_ae_precapture_trigger
Kiểm thử trạng thái AE khi sử dụng trình kích hoạt chụp trước. Chụp 5 yêu cầu thủ công khi tắt AE. Yêu cầu cuối cùng có một trình kích hoạt chụp trước AE, trình kích hoạt này sẽ bị bỏ qua vì AE bị vô hiệu hoá.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Đạt: AE hội tụ.
test_auto_vs_manual
Các bức ảnh chụp tự động và thủ công trong các thử nghiệm trông giống nhau.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Đạt: Mức tăng và biến đổi cân bằng trắng thủ công được báo cáo trong mỗi kết quả chụp khớp với cân bằng trắng tự động estimate
từ thuật toán 3A của camera.
Hình 6. Ví dụ về test_auto_vs_manual tự động.
Hình 7. Ví dụ về cân bằng trắng test_auto_vs_manual.
Hình 8. Ví dụ về phép biến đổi cân bằng trắng thủ công test_auto_vs_manual.
test_black_white
Kiểm thử để đảm bảo thiết bị tạo ra hình ảnh đen trắng hoàn chỉnh. Chụp hai bức ảnh, bức ảnh đầu tiên có độ khuếch đại cực thấp và thời gian phơi sáng ngắn, dẫn đến bức ảnh đen và bức ảnh thứ hai có độ khuếch đại cực cao và thời gian phơi sáng dài, dẫn đến bức ảnh trắng.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Pass: Tạo ra hình ảnh đen trắng. Các kênh bão hoà của hình ảnh màu trắng có giá trị RGB là [255, 255, 255] với biên độ sai số dưới 1%.
Hình 9. test_black_white, ví dụ về màu đen.
Hình 10. test_black_white, ví dụ về màu trắng.
Hình 11. test_black_white, ví dụ về biểu đồ trung bình.
test_burst_capture
Xác minh rằng toàn bộ quy trình chụp có thể theo kịp tốc độ chụp ở kích thước đầy đủ và thời gian CPU.
Các API đã được kiểm thử:
Đạt: Chụp một loạt ảnh có kích thước đầy đủ, kiểm tra tình trạng giảm khung hình và độ sáng của hình ảnh.
test_burst_sameness_manual
Chụp 5 chuỗi gồm 50 bức ảnh bằng chế độ chụp thủ công và kiểm tra để đảm bảo tất cả đều giống hệt nhau. Sử dụng thử nghiệm này để xác định xem có khung hình rời rạc nào được xử lý khác đi hoặc có hiện tượng giả tạo hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Đạt: Hình ảnh giống hệt nhau về mặt thị giác và giá trị RGB.
Thất bại: Cho thấy mức tăng hoặc giảm đột ngột của biểu đồ trung bình RGB ở đầu mỗi chuỗi
- Dung sai là 3% đối với
first_API_level
< 30 - Dung sai là 2% đối với
first_API_level
>= 30
Hình 12. Ví dụ về giá trị trung bình test_burst_sameness_manual.
Hình 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
Kiểm tra để đảm bảo rằng bạn không thể cắt các luồng RAW.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Đạt: Hình ảnh YUV bị cắt ở giữa nhưng hình ảnh RAW thì không.
Hình 14. test_crop_region_raw comp raw crop example.
Hình 15. test_crop_region_raw comp raw full example.
Hình 16. test_crop_region_raw comp Ví dụ về vùng cắt YUV.
Hình 17. test_crop_region_raw YUV full example.
test_crop_regions
Kiểm thử để đảm bảo các vùng cắt hoạt động. Lấy một hình ảnh đầy đủ và tạo các mảng của 5 vùng khác nhau (các góc và tâm). Chụp ảnh có chế độ cắt được đặt cho 5 khu vực. So sánh các giá trị của bản vá và hình ảnh bị cắt.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Đạt: Hình ảnh của vùng bị cắt khớp với mảng tương ứng với hình ảnh bị cắt.
test_ev_compensation
Kiểm thử để đảm bảo rằng chế độ bù giá trị phơi sáng (EV) được áp dụng. Bài kiểm tra bao gồm một phần cơ bản và một phần nâng cao.
Các kiểm thử cơ bản cho thấy tính năng bù phơi sáng được áp dụng bằng cách sử dụng một dải được tạo bằng CONTROL_AE_COMPENSATION_STEP
. Tám khung hình được ghi lại ở mỗi giá trị bù.
Phần nâng cao tăng độ phơi sáng theo 8 bước và kiểm tra độ sáng đo được so với độ sáng dự kiến. Các giá trị dự kiến được tính từ độ sáng hình ảnh của hình ảnh không áp dụng bù EV và giá trị dự kiến sẽ bão hoà nếu các giá trị được tính vượt quá phạm vi giá trị hình ảnh thực tế. Thử nghiệm sẽ thất bại nếu các giá trị dự kiến và giá trị đo được không khớp hoặc nếu hình ảnh bị phơi sáng quá mức trong vòng 5 bước.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Đạt yêu cầu cơ bản về phần này: Hình ảnh cho thấy độ phơi sáng tăng dần mà không bị phơi sáng quá mức trong vòng 5 bước.
Hình 18. test_ev_compensation_basic.
Chế độ chuyển cảnh nâng cao: Ghi lại sự gia tăng độ chói khi chế độ cài đặt bù EV tăng lên. 8 khung hình được chụp cho mỗi chế độ bù EV đều có giá trị độ chói ổn định.
Hình 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
Kiểm thử để đạt được độ phơi sáng không đổi khi ISO và thời gian phơi sáng thay đổi. Chụp một loạt ảnh có ISO và thời gian phơi sáng được chọn để cân bằng lẫn nhau.
Kết quả phải có cùng độ sáng, nhưng trong chuỗi, hình ảnh sẽ bị nhiễu hơn. Xác minh rằng các giá trị trung bình của pixel mẫu gần nhau. Xác minh rằng hình ảnh không bị kẹp ở 0 hoặc 1 (điều này sẽ khiến hình ảnh trông giống như các đường thẳng). Bạn cũng có thể chạy kiểm thử bằng hình ảnh RAW bằng cách đặt cờ debug
trong tệp cấu hình.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Đạt: Hình ảnh có cùng độ sáng, nhưng bị nhiễu hơn khi ISO cao hơn. Các mặt phẳng RGB bằng phẳng khi giá trị ISO*exposure không đổi trong không gian tăng ích đã kiểm thử.
Cơ chế thất bại: Trong hình sau, khi các giá trị hệ số nhân độ khuếch đại (trục x) tăng lên, các giá trị trung bình của mặt phẳng RGB được chuẩn hoá (trục y) bắt đầu lệch khỏi các giá trị hệ số nhân độ khuếch đại thấp.
Hình 20. test_exposure_plot_means.
Hình 21. test_exposure_mult=1.00.
Hình 22. test_exposure_mult=64.00.
test_latching
Các chế độ cài đặt (độ phơi sáng và độ khuếch đại) sẽ được áp dụng cho khung hình bên phải của camera FULL
và LEVEL_3
. Chụp một loạt ảnh bằng các yêu cầu liên tiếp, thay đổi các tham số yêu cầu chụp giữa các bức ảnh. Kiểm tra để đảm bảo hình ảnh có các thuộc tính dự kiến.
Các API đã được kiểm thử:
Đạt: Hình ảnh [2, 3, 6, 8, 10, 12, 13] có ISO hoặc độ phơi sáng tăng lên và xuất hiện với giá trị trung bình RGB cao hơn trong biểu đồ ở hình sau.
Hình 23. Ví dụ về biểu đồ test_latching.
Hình 24. test_latching i=00.
Hình 25. test_latching i=01.
Hình 26. test_latching i=02.
Hình 27. test_latching i=03.
Hình 28. test_latching i=04.
Hình 29. test_latching i=05.
Hình 30. test_latching i=06.
Hình 31. test_latching i=07.
Hình 32. test_latching i=08.
Hình 33. test_latching i=09.
Hình 34. test_latching i=10.
Hình 35. test_latching i=11.
Hình 36. test_latching i=12.
test_linearity
Các bài kiểm thử mà quá trình xử lý của thiết bị có thể được đảo ngược thành các pixel tuyến tính. Chụp một chuỗi ảnh khi thiết bị hướng vào một mục tiêu đồng nhất.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Đạt: Các giá trị R, G, B phải tăng tuyến tính khi độ nhạy tăng.
Hình 37. Biểu đồ test_linearity có nghĩa là ví dụ.
test_locked_burst
Kiểm thử chế độ khoá 3A và chế độ chụp liên tục YUV (sử dụng chế độ cài đặt tự động). Thử nghiệm này được thiết kế để vượt qua ngay cả trên những thiết bị có giới hạn không có MANUAL_SENSOR
hoặc PER_FRAME_CONTROLS
.
Bài kiểm thử này kiểm tra tính nhất quán của hình ảnh YUV trong khi kiểm tra tốc độ khung hình trong CTS.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Đạt: Ảnh chụp trông nhất quán.
Hình 38. Ví dụ về khung test_locked_burst 0.
Hình 39. Ví dụ về khung hình 1 của test_locked_burst.
Hình 40. Ví dụ về khung test_locked_burst 2.
scene1_2
scene 1_2
là bản sao có chức năng giống hệt scene 1_1
, triển khai cấu trúc cảnh phụ để giảm bớt thời lượng mở rộng của scene 1
.
test_param_color_correction
Kiểm thử rằng các tham số android.colorCorrection.*
được áp dụng khi được đặt.
Chụp ảnh với các giá trị biến đổi và độ khuếch đại khác nhau, đồng thời kiểm tra xem các giá trị đó có tương ứng khác nhau hay không. Các phép biến đổi và mức tăng được chọn để làm cho đầu ra ngày càng có màu đỏ hoặc xanh dương. Sử dụng một ánh xạ tông tuyến tính.
Ánh xạ tông màu là một kỹ thuật được dùng trong quá trình xử lý hình ảnh để ánh xạ một nhóm màu sang một nhóm màu khác nhằm ước chừng sự xuất hiện của hình ảnh có dải tương phản động cao trong một phương tiện có dải tương phản động hạn chế hơn.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Đạt: Giá trị R và B tăng lên theo quá trình chuyển đổi.
Hình 41. Ví dụ về biểu đồ test_param_color_correction.
Trong các hình sau, trục x là yêu cầu chụp: 0 = unity, 1 = tăng cường màu đỏ và 2 = tăng cường màu xanh dương.
Hình 42. test_param_color_correction req=0 ví dụ về unity.
Hình 43. test_param_color_correctness req=1 ví dụ về tăng cường màu đỏ.
Hình 44. test_param_color_correction req=2 ví dụ về tăng cường màu xanh dương.
test_param_flash_mode
Các kiểm thử được áp dụng tham số android.flash.mode
. Đặt độ phơi sáng theo cách thủ công ở phía tối để biết rõ liệu đèn flash có bật hay không và sử dụng một ánh xạ tông màu tuyến tính. Kiểm tra tâm của hình ảnh ô để xem có một độ dốc lớn được tạo ra để xác minh xem đèn flash có bật hay không.
Các API đã được kiểm thử:
Đạt: Tâm của hình ảnh ô có một hiệu ứng chuyển màu lớn, tức là đèn flash đã bật.
Hình 45. Ví dụ về test_param_flash_mode 1.
Hình 46. Ví dụ về một ô test_param_flash_mode.
Hình 47. Ví dụ 2 về test_param_flash_mode.
Hình 48. test_param_flash_mode ví dụ về 2 ô.
test_param_noise_reduction
Kiểm thử để đảm bảo tham số android.noiseReduction.mode
được áp dụng đúng cách khi được đặt. Chụp ảnh bằng camera trong điều kiện ánh sáng yếu. Sử dụng mức tăng tương tự cao để giúp đảm bảo hình ảnh chụp được có nhiều nhiễu. Chụp 3 bức ảnh, cho NR tắt, nhanh và chất lượng cao. Cũng chụp ảnh với độ khuếch đại thấp và tắt tính năng NR, đồng thời sử dụng phương sai của ảnh này làm đường cơ sở. Tỷ lệ tín hiệu trên nhiễu (SNR) càng cao thì chất lượng hình ảnh càng tốt.
Các API đã được kiểm thử:
Đạt: Tỷ lệ tín hiệu trên tạp âm (SNR) thay đổi theo các chế độ giảm tiếng ồn và hoạt động tương tự như biểu đồ sau:
Hình 49. Ví dụ về SNR của biểu đồ test_param_noise_reduction.
0: TẮT, 1: NHANH, 2: CHẤT LƯỢNG CAO, 3: TỐI THIỂU , 4: ZSL
Hình 50. Ví dụ về test_param_noise_reduction high gain nr=0.
Hình 51. Ví dụ về test_param_noise_reduction high gain nr=1.
Hình 52. Ví dụ về test_param_noise_reduction nr=2 có độ khuếch đại cao.
Hình 53. Ví dụ về test_param_noise_reduction high gain nr=3.
Hình 54. Ví dụ về độ khuếch đại thấp test_param_noise_reduction.
test_param_shading_mode
Các kiểm thử được áp dụng tham số android.shading.mode
.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Đạt: Các chế độ đổ bóng được chuyển đổi và bản đồ đổ bóng ống kính được sửa đổi như mong đợi.
Hình 55. test_param_shading_mode lens shading map, mode 0 loop 0 example.
Hình 56. test_param_shading_mode lens shading map, mode 1 loop 0 example.
Hình 57. test_param_shading_mode lens shading map, mode 2 loop 0 example.
test_param_tonemap_mode
Các kiểm thử được áp dụng tham số android.tonemap.mode
. Áp dụng các đường cong ánh xạ tông màu khác nhau cho từng kênh R, G, B và kiểm tra để đảm bảo rằng các hình ảnh đầu ra được sửa đổi như mong đợi. Bài kiểm thử này bao gồm 2 bài kiểm thử, test1
và test2
.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Mật khẩu:
test1
: Cả hai hình ảnh đều có một ánh xạ tông màu tuyến tính, nhưngn=1
có độ dốc cao hơn. Kênh G (xanh lục) sáng hơn đối với hình ảnhn=1
.test2
: Cùng một ánh xạ tông màu, nhưng có độ dài khác nhau. Các hình ảnh giống nhau.
Hình 58. test_param_tonemap_mode với n=0.
Hình 59. test_param_tonemap_mode với n=1.
test_post_raw_sensitivity_boost
Kiểm tra mức tăng độ nhạy thô sau khi đăng. Chụp một nhóm hình ảnh thô và YUV với độ nhạy khác nhau, đăng sự kết hợp tăng độ nhạy thô và kiểm tra xem giá trị trung bình của pixel đầu ra có khớp với chế độ cài đặt yêu cầu hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Đạt: Hình ảnh thô sẽ tối hơn khi mức tăng cao hơn, trong khi độ sáng của hình ảnh YUV vẫn không đổi.
Hình 60. Ví dụ về test_post_raw_sensitivity_boost raw s=3583 boost=0100.
Hình 61. Ví dụ về test_post_raw_sensitivity_boost raw s=1792 boost=0200.
Hình 62. Ví dụ về test_post_raw_sensitivity_boost raw s=0896 boost=0400.
Hình 63. Ví dụ về test_post_raw_sensitivity_boost raw s=0448 boost=0800.
Hình 64. test_post_raw_sensitivity_boost raw s=0224 boost=1600 example.
Hình 65. test_post_raw_sensitivity_boost raw s=0112 boost=3199 example.
Hình 66. test_post_raw_sensitivity_boost ví dụ về giá trị trung bình của biểu đồ thô.
Hình 67. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 example.
Hình 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example.
Hình 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example.
Hình 70. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example.
Hình 71. Ví dụ về test_post_raw_sensitivity_boost YUV s=3585 boost=0100.
Hình 72. test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
Chụp một nhóm hình ảnh thô với thời gian phơi sáng tăng dần và đo các giá trị pixel.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Đạt: Tăng ISO (độ lợi) sẽ làm cho các pixel nhạy cảm hơn với ánh sáng, vì vậy, biểu đồ sẽ di chuyển sang trái.
Hình 73. Ví dụ về ISO=55 test_raw_exposure.
10⁰ là 1 mili giây, 10¹ là 10 mili giây và 10⁻¹ là 0, 1 mili giây.
Hình 74. Ví dụ về test_raw_exposure ISO=132.
Hình 75. Ví dụ về test_raw_exposure ISO=209.
Hình 76. Ví dụ về test_raw_exposure ISO=286.
Hình 77. Ví dụ về test_raw_exposure ISO=363.
Hình 78. Ví dụ về test_raw_exposure ISO=440.
test_reprocess_noise_reduction
Các kiểm thử mà android.noiseReduction.mode
được áp dụng cho các yêu cầu xử lý lại.
Chụp ảnh được xử lý lại bằng camera trong điều kiện ánh sáng yếu. Sử dụng mức tăng tương tự cao để xác minh rằng hình ảnh chụp bị nhiễu. Chụp 3 bức ảnh được xử lý lại, cho chế độ khử nhiễu tắt, nhanh và chất lượng cao. Chụp một hình ảnh được xử lý lại với độ khuếch đại thấp và tắt tính năng giảm nhiễu, đồng thời sử dụng phương sai của hình ảnh này làm đường cơ sở.
Các API đã được kiểm thử:
Đạt: FAST >= OFF, HQ >= FAST và HQ >> OFF.
Hình 79. Ví dụ điển hình về biểu đồ SNR so với chế độ NR.
test_tonemap_sequence
Kiểm thử một chuỗi cảnh quay với các đường cong ánh xạ tông màu khác nhau. Chụp 3 bức ảnh theo cách thủ công bằng một giản đồ tông màu tuyến tính. Chụp 3 bức ảnh thủ công bằng cách sử dụng phương thức ánh xạ tông màu mặc định. Tính toán độ lệch giữa mỗi cặp khung hình liên tiếp.
Các API đã được kiểm thử:
Đạt: Có 3 khung hình giống hệt nhau, sau đó là một nhóm khác gồm 3 khung hình giống hệt nhau.
Hình 80. Ví dụ về test_tonemap_sequence i=0.
Hình 81. Ví dụ về test_tonemap_sequence i=1.
Hình 82. Ví dụ về test_tonemap_sequence i=2.
Hình 83. Ví dụ về test_tonemap_sequence i=3.
Hình 84. Ví dụ về test_tonemap_sequence i=4.
Hình 85. Ví dụ về test_tonemap_sequence i=5.
test_yuv_jpeg_all
Các kiểm thử hoạt động với tất cả kích thước và định dạng được báo cáo để chụp ảnh. Sử dụng yêu cầu thủ công với một ánh xạ tông màu tuyến tính để YUV và JPEG có giao diện giống nhau khi được chuyển đổi bằng mô-đun image_processing_utils
. Theo mặc định, hình ảnh sẽ không được lưu, nhưng bạn có thể lưu bằng cách bật debug_mode
.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Đạt: Tất cả các tâm ảnh đều có độ chênh lệch tối đa về căn bậc hai trung bình (RMS) (giá trị của tín hiệu) trong hình ảnh được chuyển đổi RGB với 3% hình ảnh YUV có độ phân giải cao nhất.
Hình 86. Ví dụ về test_yuv_jpeg_all.
test_yuv_plus_dng
Kiểm tra xem các kích thước và định dạng được báo cáo cho tính năng chụp ảnh có hoạt động hay không.
Các API đã được kiểm thử:
Đạt: Kiểm thử hoàn tất và trả về những hình ảnh được yêu cầu.
Hình 87. Ví dụ về test_yuv_plus_dng.
scene1_3
scene 1_3
là bản sao có chức năng giống hệt scene 1_1
, triển khai cấu trúc cảnh phụ để giảm bớt thời lượng mở rộng của scene 1
.
test_capture_result
Kiểm thử để đảm bảo dữ liệu hợp lệ được trả về trong các đối tượng CaptureResult
. Bài kiểm thử bao gồm một lần chụp tự động, một lần chụp thủ công và một lần chụp tự động thứ hai.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Đạt: Siêu dữ liệu hợp lệ cho tất cả các lần chụp và chế độ cài đặt thủ công không bị rò rỉ vào lần chụp tự động thứ hai. Vẽ biểu đồ hiệu chỉnh độ đổ bóng của ống kính cho các bức ảnh chụp.
Hình 88. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
Xác minh rằng các tham số mô hình thô DNG là chính xác. Biểu đồ mô tả phương sai đo được của một mảng trung tâm của thẻ xám trong các bức ảnh thô được chụp trong một phạm vi độ nhạy và so sánh các giá trị này với phương sai dự kiến ở mỗi độ nhạy theo mô hình nhiễu DNG trong HAL camera (dựa trên các tham số O,S được trả về trong các đối tượng kết quả chụp). Để biết thêm thông tin chi tiết về mô hình nhiễu DNG, hãy tải tài liệu sau đây xuống về Mô hình nhiễu DNG.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Đạt: Các tham số mô hình thô DNG đều chính xác. Giá trị RGB dự kiến khớp với giá trị RGB thực tế đo được.
Hình 89. test_dng_noise_model_plog.
test_jpeg
Các thử nghiệm chuyển đổi hình ảnh YUV và hình ảnh JPEG trên thiết bị trông giống nhau. Thử nghiệm lấy 10% ở giữa của hình ảnh và tính toán giá trị RGB, đồng thời xác minh rằng các giá trị này khớp với nhau.
Các API đã được kiểm thử:
Đạt: Khoảng chênh lệch trung bình về RGB giữa mỗi hình ảnh nhỏ hơn 3%.
Hình 90. test_jpeg_fmt=jpg.jpg.
Hình 91. test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
Chụp một nhóm hình ảnh thô với độ khuếch đại tăng dần và đo lường độ nhiễu. Chỉ chụp ảnh thô ở chế độ chụp liên tục.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Đạt: Mỗi cảnh quay đều có nhiều hạt hơn cảnh quay trước đó, vì độ khuếch đại đang tăng lên.
Sử dụng phương sai của ô lưới số liệu thống kê trung tâm.
Hình 92. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
Chụp một bộ hình ảnh thô với độ nhạy tăng dần và đo lường độ nhiễu (phương sai) ở 10% trung tâm của hình ảnh. Kiểm thử xem mỗi cảnh có nhiều hạt nhiễu hơn cảnh trước đó hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Chuyền: Phương sai tăng lên theo mỗi cú sút.
Hình 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
Kiểm thử việc chụp một khung hình duy nhất dưới dạng cả đầu ra YUV và JPEG. Sử dụng yêu cầu thủ công với một ánh xạ tông màu tuyến tính để YUV và JPEG có giao diện giống nhau khi được chuyển đổi bằng mô-đun image_processing_utils
.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Đạt: Hình ảnh YUV và JPEG tương tự nhau và có sự khác biệt dưới 1% RMS (giá trị của tín hiệu).
Hình 94. test_yuv_plus_jpeg ở định dạng JPEG.
Hình 95. test_yuv_plus_jpeg ở định dạng YUV.
test_yuv_plus_raw
Kiểm thử việc chụp một khung hình dưới dạng cả đầu ra thô (thô 10 bit và thô 12 bit) và YUV nếu được hỗ trợ. Sử dụng yêu cầu thủ công với ánh xạ tông màu tuyến tính để dữ liệu thô và YUV dự kiến sẽ giống nhau. So sánh 10% giá trị RGB ở tâm của hình ảnh được chuyển đổi RGB. Nhật kýandroid.shading.mode
.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
Đạt: Hình ảnh YUV và hình ảnh thô tương tự nhau và có mức chênh lệch RMS (giá trị trung bình bình phương của tín hiệu) dưới 3,5%.
Hình 96. test_yuv_plus_raw_shading=1_raw.jpg.
Hình 97. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
Kiểm thử CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
trong nhiều chế độ cài đặt ISO để xác nhận mối tương quan giữa ISO cao hơn và mức độ nhiễu tăng lên.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Đạt: ISO càng cao thì mức độ nhiễu càng tăng.
Tiêu chí bỏ qua kiểm thử
Thử nghiệm test_sensitivity_priority.py
sẽ bị bỏ qua nếu đáp ứng bất kỳ tiêu chí nào sau đây:
- Thiết bị có cấp độ API đầu tiên (
first_api_level
) là 35 trở xuống. - Thiết bị không quảng cáo
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
trongCONTROL_AE_AVAILABLE_PRIORITY_MODES
.
test_exposure_time_priority
Kiểm thử CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
trong nhiều thời gian phơi sáng, kiểm tra độ sáng ổn định trong phạm vi mà ISO có thể bù.
Các API đã được kiểm thử:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Đạt: Độ sáng ổn định (trong phạm vi dung sai) trong các khoảng thời gian phơi sáng nếu ISO nằm trong phạm vi bù sáng.
Tiêu chí bỏ qua kiểm thử
Thử nghiệm test_exposure_time_priority
sẽ bị bỏ qua nếu đáp ứng bất kỳ tiêu chí nào sau đây:
- Thiết bị có cấp độ API đầu tiên (
first_api_level
) là 35 trở xuống. - Thiết bị không quảng cáo
CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
trongCONTROL_AE_AVAILABLE_PRIORITY_MODES
.
scene2_a
scene2_a
có 3 khuôn mặt trên nền xám và trang phục trung tính. Các khuôn mặt được chọn có nhiều tông màu da. Biểu đồ phải có hướng chính xác để tính năng phát hiện khuôn mặt hoạt động tối ưu.
Hình 98. Ví dụ về scene2_a.
test_autoframing
Kiểm thử hành vi tự động lấy khung hình của thiết bị camera. Thực hiện thao tác thu phóng lớn để không thấy khuôn mặt nào trong cảnh, bật chế độ tự động lấy khung hình bằng cách đặt AUTOFRAMING
trong CaptureRequest
thành True
và xác minh xem có thể phát hiện tất cả khuôn mặt trong cảnh ban đầu khi trạng thái hội tụ hay không (tức là khi AUTOFRAMING_STATE
trong CaptureResult
được đặt thành AUTOFRAMING_STATE_CONVERGED
).
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
Đạt: Phát hiện được cả 3 khuôn mặt.
test_display_p3
Kiểm thử Hiển thị P3 chụp ở định dạng JPEG bằng API ColorSpaceProfiles
. Kiểm thử để đảm bảo JPEG đã chụp có cấu hình ICC phù hợp trong tiêu đề và hình ảnh chứa các màu nằm ngoài gam màu sRGB.
Các API đã được kiểm thử:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
Đạt: Tệp JPEG chứa một cấu hình ICC Display P3 và các màu bên ngoài gam màu sRGB.
test_effects
Chụp khung hình cho các hiệu ứng camera được hỗ trợ và kiểm tra xem các hiệu ứng đó có được tạo đúng cách hay không. Bài kiểm thử chỉ kiểm tra hiệu ứng OFF
và MONO
, nhưng lưu hình ảnh cho tất cả các hiệu ứng được hỗ trợ.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Pass: Chụp ảnh cảnh có hiệu ứng OFF
và ảnh đơn sắc có hiệu ứng được đặt thành MONO
.
Hình 99. test_effects_MONO.
test_exposure_keys_consistent
Bài kiểm thử này so sánh độ chói trung bình của một bản chụp có bật AE với một bản chụp có tắt AE, trong đó áp dụng các thông số phơi sáng theo cách thủ công (độ nhạy, thời gian phơi sáng, thời lượng khung hình, mức tăng độ nhạy sau khi xử lý thô) nhận được trong CaptureResult
của bản chụp có bật AE.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
Đạt: Mức chênh lệch tương đối về độ chói giữa hai bản chụp nhỏ hơn 4%.
test_format_combos
Thử nghiệm nhiều kiểu kết hợp định dạng đầu ra.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
Đạt: Tất cả các tổ hợp đều được ghi lại thành công.
test_num_faces
Kiểm thử tính năng phát hiện khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt.
Hình 100. Ví dụ về chế độ phát hiện khuôn mặt test_num_faces 1.
test_reprocess_uv_swap
Các kiểm thử mà quá trình xử lý lại YUV không hoán đổi các mặt phẳng U và V. Điều này được phát hiện bằng cách tính tổng giá trị tuyệt đối của sự khác biệt (SAD) giữa hình ảnh được xử lý lại và ảnh chụp không được xử lý lại. Nếu việc hoán đổi các mặt phẳng U và V đầu ra của bản ghi được xử lý lại dẫn đến SAD tăng lên, thì đầu ra được giả định là có các mặt phẳng U và V chính xác.
Các API đã được kiểm thử:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Đạt: Các mặt phẳng U và V không bị hoán đổi.
Hình 101. Ví dụ về test_reprocess_uv_swap.
scene2_b
test_preview_num_faces
Kiểm thử tính năng phát hiện khuôn mặt trong bản xem trước với độ đa dạng về tông da tăng lên trong các cảnh có khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt có các điểm trên khuôn mặt trong khung hình giới hạn khuôn mặt.
Hình 102. Ví dụ về chế độ phát hiện khuôn mặt test_num_faces 1.
test_yuv_jpeg_capture_sameness
Chụp 2 bức ảnh bằng cách sử dụng các định dạng YUV và JPEG phổ biến nhất có cùng tỷ lệ khung hình với định dạng JPEG lớn nhất không vượt quá độ phân giải 1920x1440.
Đặt jpeg.quality
thành 100 và ghi lại yêu cầu về hai nền tảng. Chuyển đổi cả hai hình ảnh thành mảng RGB và tính toán sự khác biệt về căn bậc hai trung bình (RMS) 3D giữa hai hình ảnh.
Ngoài ra, kiểm thử này xác minh rằng đầu ra YUV cho tất cả các trường hợp sử dụng luồng được hỗ trợ tương đối giống với YUV trong trường hợp sử dụng STILL_CAPTURE
.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
Đạt: Hình ảnh YUV và JPEG cho trường hợp sử dụng STILL_CAPTURE
có sự khác biệt RMS (giá trị trung bình bình phương căn của tín hiệu) dưới 3%; hình ảnh YUV cho tất cả các trường hợp sử dụng được hỗ trợ có sự khác biệt RMS dưới 10% so với hình ảnh YUV trong trường hợp sử dụng STILL_CAPTURE
.
scene2_c
test_num_faces
Kiểm thử tính năng phát hiện khuôn mặt với độ đa dạng về tông da tăng lên trong các cảnh khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt.
Hình 103. Ví dụ về chế độ phát hiện khuôn mặt test_num_faces.
test_jpeg_capture_perf_class
Kiểm thử độ trễ chụp JPEG cho lớp hiệu suất S như được chỉ định trong mục 2.2.7.2 Camera trong CDD.
Đạt: PHẢI có độ trễ chụp ảnh JPEG bằng camera2 < 1000 ms cho độ phân giải 1080p theo đo lường của CTS camera PerformanceTest trong điều kiện ánh sáng ITS (3000K) cho cả camera chính.
test_camera_launch_perf_class
Kiểm thử độ trễ khi khởi chạy camera cho lớp hiệu suất S theo quy định tại mục 2.2.7.2 Camera trong CDD.
Đạt: PHẢI có độ trễ khởi động camera2 (mở camera đến khung hình xem trước đầu tiên) < 600 mili giây theo đo lường của PerformanceTest camera CTS trong điều kiện ánh sáng ITS (3000K) cho cả hai camera chính.
test_default_camera_hdr
Các bài kiểm thử mà chế độ chụp mặc định của camera là Ultra HDR cho lớp hiệu suất 15 như được chỉ định trong mục 2.2.7.2 Camera của CDD.
Đạt: Gói chụp ảnh mặc định của camera PHẢI là Ultra HDR đối với thiết bị có hiệu suất loại 15.
scene2_d
test_preview_num_faces
Kiểm thử tính năng phát hiện khuôn mặt trong bản xem trước với độ đa dạng về tông da tăng lên trong các cảnh có khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt có các điểm trên khuôn mặt trong khung hình giới hạn khuôn mặt.
scene2_e
test_continuous_picture
50 khung hình có độ phân giải VGA được ghi lại bằng chế độ cài đặt đầu tiên của yêu cầu ghi hình
android.control.afMode = 4 (CONTINUOUS_PICTURE).
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Đạt: Hệ thống 3A ổn định vào cuối quá trình chụp 50 khung hình.
test_num_faces
Kiểm thử tính năng phát hiện khuôn mặt với độ đa dạng về tông da tăng lên trong các cảnh khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt.
scene2_f
scene2_f
có 3 khuôn mặt với nền trắng và quần áo màu trắng. Các khuôn mặt có nhiều tông màu da và độ tương phản cao với nền.
Hình 104. Ví dụ về scene2_f.
test_preview_num_faces
Kiểm thử tính năng phát hiện khuôn mặt với độ đa dạng về tông da tăng lên trong các cảnh khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt có các điểm trên khuôn mặt trong khung hình giới hạn khuôn mặt.
Hình 105. Ví dụ về test_num_faces_fd_mode_1.
scene2_g
scene2_g
có 3 khuôn mặt hồ sơ với nền trắng và quần áo màu trắng.
Các khuôn mặt có nhiều tông màu da và độ tương phản cao với nền.
Hình 106. Ví dụ về scene2_g.
test_preview_num_faces
Kiểm thử tính năng phát hiện khuôn mặt với độ đa dạng về tông da tăng lên trong các cảnh khuôn mặt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Đạt: Tìm thấy 3 khuôn mặt có các điểm trên khuôn mặt trong khung hình giới hạn khuôn mặt.
Hình 107. Ví dụ về test_preview_num_faces.
scene3
scene3
sử dụng biểu đồ ISO12233 và hầu hết các bài kiểm tra đều sử dụng phương thức trích xuất biểu đồ để tìm biểu đồ trong cảnh. Vì lý do này, hầu hết hình ảnh đã lưu không có đường viền như hình ảnh cho cảnh 1, 2 hoặc 4, mà chỉ có biểu đồ. Biểu đồ phải ở đúng hướng để bộ tìm biểu đồ hoạt động tối ưu.
test_edge_enhancement
Kiểm thử để đảm bảo tham số android.edge.mode
được áp dụng đúng cách. Chụp ảnh không xử lý lại cho từng chế độ cạnh và trả về độ sắc nét của hình ảnh đầu ra và siêu dữ liệu kết quả chụp. Xử lý một yêu cầu chụp với chế độ cạnh, độ nhạy, thời gian phơi sáng, khoảng cách lấy nét và tham số bề mặt đầu ra đã cho.
Pass: Chế độ HQ
(2) sắc nét hơn chế độ OFF
(0). FAST
(1) sắc nét hơn chế độ OFF
. Chế độ HQ
sắc nét hơn hoặc bằng chế độ FAST
.
Các API đã được kiểm thử:
Các thông số camera bị ảnh hưởng:
EDGE_MODE
Hình 108. Ví dụ về test_edge_enhancement edge=0.
Hình 109. Ví dụ về test_edge_enhancement edge=1 (chế độ nhanh).
Hình 110. Ví dụ về test_edge_enhancement edge=2 (chế độ chất lượng cao).
test_flip_mirror
Kiểm tra xem hình ảnh có được định hướng đúng theo 7.5.2 Camera trước trong CDD hay không.
Bạn có thể nhận biết hình ảnh bị phản chiếu, lật hoặc xoay bằng tính năng hình kim cương ở gần tâm.
Đạt: Hình ảnh không bị lật, phản chiếu hoặc xoay.
Hình 111. Ví dụ về bản vá cảnh test_flip_mirror.
test_imu_drift
Kiểm tra xem đơn vị đo lường quán tính (IMU) có đầu ra ổn định trong 30 giây hay không trong khi thiết bị đứng yên và ghi lại bản xem trước có độ phân giải cao.
Các API đã được kiểm thử:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
Mật khẩu:
- Độ lệch của con quay hồi chuyển nhỏ hơn 0,01 rad trong thời gian thử nghiệm.
- Phương sai của số đọc con quay hồi chuyển nhỏ hơn 1E-7 rad2/s2/Hz trong thời gian thử nghiệm.
- Độ lệch của vectơ xoay nhỏ hơn 0,01 rad trong thời gian thử nghiệm.
- (Chưa bắt buộc) Độ lệch của con quay hồi chuyển nhỏ hơn 1 độ mỗi giây.
Hình 112. Ví dụ về độ lệch con quay hồi chuyển test_imu_drift.
Hình 113. Ví dụ về độ lệch vectơ xoay test_imu_drift.
test_landscape_to_portrait
Kiểm thử xem chế độ ghi đè từ hướng ngang sang hướng dọc có hoạt động đúng cách đối với các cảm biến hướng ngang hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
Đạt: Kiểm thử xác định vị trí của một biểu đồ có độ xoay dự kiến (0 độ khi chế độ ghi đè từ chế độ ngang sang chế độ dọc bị tắt, 90 độ khi chế độ này được bật).
Hình 114. Ví dụ về test_landscape_to_portrait.
test_lens_movement_reporting
Kiểm tra xem cờ chuyển động của ống kính có được báo cáo đúng cách hay không. Chụp một loạt 24 bức ảnh, trong đó 12 khung hình đầu tiên ở khoảng cách lấy nét tối ưu (do 3A tìm thấy) và 12 khung hình cuối cùng ở khoảng cách lấy nét tối thiểu. Khoảng khung hình 12, ống kính di chuyển khiến độ sắc nét giảm. Độ sắc nét cuối cùng sẽ ổn định khi ống kính di chuyển đến vị trí cuối cùng.
Cờ chuyển động của ống kính phải được xác nhận trong tất cả các khung hình có độ sắc nét trung bình so với độ sắc nét trong vài khung hình đầu tiên khi ống kính đứng yên ở khoảng cách tiêu cự tối ưu và vài khung hình cuối cùng khi ống kính đứng yên ở khoảng cách tiêu cự tối thiểu. Khung hình chính xác mà ống kính di chuyển không quan trọng: điều quan trọng là cờ di chuyển được xác nhận khi ống kính đang di chuyển.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Đạt: Cờ chuyển động của ống kính là True
trong khung hình có sự thay đổi về độ sắc nét.
Cơ chế thất bại:
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) trongtest_log.DEBUG
chỉ được xác nhận trong những khung hình không thay đổi độ sắc nét.- Các khung hình có
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) trongtest_log.DEBUG
có sự khác biệt về độ sắc nét so với một vài khung hình đầu tiên ở khoảng cách tiêu cự tối ưu hoặc một vài khung hình cuối cùng ở khoảng cách lấy nét tối thiểu.
test_reprocess_edge_enhancement
Kiểm thử xem các phương thức xử lý lại được hỗ trợ để tăng cường cạnh có hoạt động đúng cách hay không. Xử lý yêu cầu chụp bằng một chế độ cạnh xử lý lại nhất định và so sánh các chế độ khác nhau để chụp khi chế độ cạnh xử lý lại bị tắt.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Đạt: Độ sắc nét cho các chế độ cạnh khác nhau là chính xác. HQ
(chế độ 2) sắc nét hơn OFF
(chế độ 0) và mức cải thiện giữa các chế độ là tương tự nhau.
Hình 115. Ví dụ về biểu đồ test_reprocess_edge_enhancement.
scene4
scene4
bao gồm một vòng tròn màu đen trên nền trắng bên trong một hình vuông.
Các kiểm thử trong scene4 có thể nhạy cảm với việc căn chỉnh, vì vậy, bắt đầu từ Android 15, bạn có thể sử dụng check_alignment.py
trong thư mục công cụ để bật chế độ kiểm tra việc căn chỉnh DUT và biểu đồ.
Hình 116. Ví dụ về scene4.
test_30_60fps_preview_fov_match
Kiểm thử để đảm bảo video xem trước 30 FPS và 60 FPS có cùng FoV. Bài kiểm thử này ghi lại 2 video, một video có tốc độ 30 khung hình/giây và một video có tốc độ 60 khung hình/giây. Một khung hình đại diện được chọn từ mỗi video và phân tích để xác minh rằng các thay đổi về FoV trong hai video nằm trong phạm vi quy cách. Kiểm tra để đảm bảo tỷ lệ khung hình của hình tròn không đổi, tâm của hình tròn không đổi và bán kính của hình tròn không đổi.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Đạt: Hình ảnh không bị kéo giãn, tâm của hình ảnh không khác nhau quá 3% và mức thay đổi tỷ lệ khung hình tối đa giữa video 30 FPS và 60 FPS không quá 7,5%
Cơ chế thất bại:
- Vòng tròn trong video 30 khung hình/giây có kích thước khác biệt đáng kể so với video 60 khung hình/giây.
- Vòng tròn trong ảnh chụp bị biến dạng do quy trình xử lý.
- Vòng tròn trong hình ảnh đã chụp bị cắt do yêu cầu chụp có tỷ lệ khung hình cực đoan làm giảm chiều cao hoặc chiều rộng của hình ảnh.
- Vòng tròn trong hình ảnh chụp được có một vết phản chiếu ở giữa và không xuất hiện đầy đủ.
test_aspect_ratio_and_crop
Kiểm tra xem hình ảnh có bị biến dạng hoặc cắt xén ngoài ý muốn trong quy trình xử lý hình ảnh hay không. Chụp ảnh một vòng tròn trên mọi định dạng. Xác minh rằng hình tròn không bị biến dạng, không di chuyển khỏi tâm của hình ảnh và không thay đổi kích thước không chính xác với các tỷ lệ khung hình hoặc độ phân giải khác nhau.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Đạt: Hình ảnh không bị kéo giãn, tâm của hình ảnh không khác nhau quá 3% và FoV tối đa có thể được giữ nguyên.
Cơ chế thất bại:
- Camera không thẳng hàng với vòng tròn xuất hiện trên máy tính bảng ở giữa cảnh được chụp.
- Vòng tròn trong ảnh chụp bị biến dạng do quy trình xử lý.
- Hình ảnh có độ phân giải thấp hơn sẽ bị cắt đôi trong quy trình xử lý hình ảnh, tạo ra FoV khác nhau giữa hình ảnh có độ phân giải cao và hình ảnh có độ phân giải thấp.
- Vòng tròn trong hình ảnh đã chụp bị cắt do yêu cầu chụp có tỷ lệ khung hình cực đoan làm giảm chiều cao hoặc chiều rộng của hình ảnh.
- Vòng tròn trong hình ảnh chụp được có một vết phản chiếu ở giữa và không xuất hiện đầy đủ.
test_multi_camera_alignment
Kiểm thử các thông số hiệu chuẩn camera liên quan đến vị trí camera cho hệ thống nhiều camera. Sử dụng các camera phụ vật lý có nhiều camera, chụp ảnh bằng một trong các camera vật lý. Tìm tâm đường tròn. Chiếu tâm đường tròn vào toạ độ thế giới cho từng camera. So sánh sự khác biệt giữa tâm đường tròn của các camera theo toạ độ thế giới. Chiếu lại toạ độ thế giới về toạ độ pixel và so sánh với toạ độ gốc để kiểm tra tính hợp lệ. So sánh kích thước vòng tròn để kiểm tra xem tiêu cự của các camera có khác nhau hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Đạt: Tâm và kích thước của vòng tròn đúng như dự kiến trong hình ảnh được chiếu so với hình ảnh được chụp bằng dữ liệu hiệu chuẩn camera và tiêu cự.
Cơ chế thất bại:
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
vàLENS_POSE_ROTATION
là các giá trị thiết kế chứ không phải dữ liệu hiệu chuẩn thực tế.- Hệ thống camera không phù hợp với chế độ thiết lập kiểm thử, ví dụ: kiểm thử hệ thống camera góc rộng và siêu rộng bằng giàn kiểm thử RFoV. Để biết thêm thông tin, hãy xem Câu hỏi thường gặp về ITS-in-a-box của camera Q1.
test_preview_aspect_ratio_and_crop
Tương tự như kiểm thử test_aspect_ratio_and_crop
đối với ảnh chụp tĩnh, kiểm thử này sẽ kiểm tra các định dạng xem trước được hỗ trợ để xác minh rằng các khung hình xem trước không bị kéo giãn hoặc cắt xén không đúng cách. Xác minh rằng tỷ lệ khung hình của vòng tròn không thay đổi, hình ảnh bị cắt giữ vòng tròn ở giữa khung hình và kích thước vòng tròn không thay đổi đối với một định dạng cố định hoặc với các độ phân giải khác nhau (kiểm tra FoV).
Các API đã được kiểm thử:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Hình ảnh không bị kéo giãn, tâm của hình ảnh không khác nhau quá 3% và FoV tối đa có thể được giữ nguyên.
test_preview_stabilization_fov
Kiểm tra các kích thước xem trước được hỗ trợ để đảm bảo FoV được cắt một cách thích hợp. Bài kiểm thử này quay 2 video, một video có tính năng chống rung khi xem trước ON
và một video có tính năng chống rung khi xem trước OFF
. Một khung hình đại diện được chọn từ mỗi video và được phân tích để xác minh rằng các thay đổi về FoV trong hai video nằm trong phạm vi quy cách.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Tỷ lệ khung hình của vòng tròn vẫn gần như không đổi, vị trí tâm của vòng tròn vẫn ổn định và kích thước của vòng tròn không thay đổi quá 20%.
test_video_aspect_ratio_and_crop
Quay video về một vòng tròn bên trong một hình vuông ở mọi định dạng video. Trích xuất các khung hình chính và xác minh tỷ lệ khung hình của vòng tròn không thay đổi, hình ảnh bị cắt giữ vòng tròn ở giữa và kích thước vòng tròn không thay đổi đối với một định dạng cố định hoặc với độ phân giải khác (kiểm tra FoV).
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Khung hình video không bị kéo giãn, tâm của khung hình không khác nhau quá 3% và FoV tối đa có thể được giữ nguyên.
scene5
scene5
yêu cầu một cảnh xám được chiếu sáng đồng đều. Điều này được thực hiện bằng một bộ khuếch tán đặt trên ống kính máy ảnh. Bạn nên sử dụng bộ khuếch tán sau đây:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
Để chuẩn bị cảnh, hãy gắn một bộ khuếch tán trước camera và hướng camera vào một nguồn sáng khoảng 2000 lux. Hình ảnh được chụp cho scene5
yêu cầu ánh sáng khuếch tán mà không có đặc điểm nào rõ ràng. Sau đây là hình ảnh mẫu:
Hình 117. Ví dụ về cách chụp cảnh 5.
test_lens_shading_and_color_uniformity
Kiểm thử để đảm bảo chế độ hiệu chỉnh độ đổ bóng của ống kính được áp dụng đúng cách và màu sắc của cảnh đơn sắc đồng nhất được phân phối đồng đều. Thực hiện kiểm thử này trên khung hình YUV có 3A tự động. Hiện tượng đổ bóng ống kính được đánh giá dựa trên kênh y. Đo giá trị trung bình y cho mỗi khối mẫu được chỉ định và xác định kết quả đạt hoặc không đạt bằng cách so sánh với giá trị y ở tâm. Bài kiểm tra tính đồng nhất về màu sắc được đánh giá trong không gian màu đỏ-xanh lục và xanh dương-xanh lục.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Đạt: Tại bán kính đã chỉ định của hình ảnh, phương sai của giá trị đỏ-xanh lục và xanh dương-xanh lục phải nhỏ hơn 20% để vượt qua bài kiểm thử.
scene6
scene6
là một lưới gồm các điểm đánh dấu ArUco có thể nhận dạng riêng biệt.
Các kiểm thử trong scene6
có thể nhạy cảm với việc căn chỉnh, vì vậy, từ phiên bản 15 trở đi, bạn có thể sử dụng check_alignment.py
trong thư mục công cụ để bật chế độ kiểm tra việc căn chỉnh DUT và biểu đồ.
Hình 118. Ví dụ về scene6.
test_in_sensor_zoom
Kiểm thử hành vi của tính năng thu phóng trong cảm biến của camera, tạo ra hình ảnh thô bị cắt.
Khi trường hợp sử dụng luồng được đặt thành CROPPED_RAW
, quy trình kiểm thử sẽ chụp hai ảnh trong phạm vi thu phóng, một ảnh thô có FoV đầy đủ và một ảnh thô bị cắt. Thử nghiệm này chuyển đổi hình ảnh thành mảng RGB, giảm tỷ lệ hình ảnh thô đã cắt có kích thước đầy đủ xuống kích thước do SCALER_RAW_CROP_REGION
báo cáo và tính toán sự khác biệt RMS 3D giữa hai hình ảnh.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
Đạt: Chênh lệch RMS 3D giữa hình ảnh thô đã cắt giảm tỷ lệ và hình ảnh thô có FoV đầy đủ nhỏ hơn ngưỡng được đặt trong kiểm thử.
test_zoom
Kiểm tra hành vi thu phóng của camera từ ống kính siêu rộng sang ống kính rộng. Chụp ảnh trong phạm vi thu phóng và kiểm tra xem các điểm đánh dấu ArUco có lớn hơn khi máy ảnh phóng to hay không. Bài kiểm thử này cũng kiểm tra xem vị trí của điểm đánh dấu trung tâm có thay đổi một cách có thể dự đoán được trong mỗi lần chụp hay không. Khoảng cách từ tâm của điểm đánh dấu trung tâm đến tâm của hình ảnh có thể thay đổi với tốc độ không đổi theo tỷ lệ thu phóng cho đến khi chuyển đổi camera thực, hoặc có thể thay đổi đơn điệu theo hướng vị trí của cùng một điểm đánh dấu sau khi chuyển đổi camera thực. Bạn phải cài đặt Ứng dụng Camera Jetpack (JCA) trên thiết bị trước khi kiểm thử.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Đạt: Kích thước tương đối của điểm đánh dấu ArUco đã chụp chính xác so với tỷ lệ thu phóng được yêu cầu để xác minh rằng máy ảnh đang thu phóng chính xác và khoảng cách của điểm đánh dấu đến tâm hình ảnh thay đổi theo tiêu chí nêu trong phần mô tả kiểm thử.
Hình 119. test_zoom để tìm đường viền của điểm đánh dấu ArUco gần tâm nhất.
test_low_latency_zoom
Kiểm thử hành vi thu phóng có độ trễ thấp của camera. Chụp ảnh trong phạm vi thu phóng bằng android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
và kiểm tra xem các điểm đánh dấu trong hình ảnh đầu ra có khớp với tỷ lệ thu phóng trong siêu dữ liệu chụp hay không. Cùng một phiên chụp bằng camera được dùng để hội tụ 3A và chụp ảnh.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
Đạt: Kích thước tương đối của điểm đánh dấu được chụp chính xác so với siêu dữ liệu kết quả của tỷ lệ thu phóng.
test_preview_video_zoom_match
Các thử nghiệm cho thấy trong khi quay và thu phóng, bản xem trước video và đầu ra video sẽ hiển thị và ghi lại cùng một đầu ra. Tính toán kích thước của điểm đánh dấu gần tâm nhất ở các tỷ lệ thu phóng khác nhau và kiểm tra xem kích thước của điểm đánh dấu có tăng khi tỷ lệ thu phóng tăng hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Đạt: Kích thước tương đối của điểm đánh dấu được ghi lại chính xác so với tỷ lệ thu phóng được yêu cầu trong video và bản xem trước.
Hình 120. HD_1280x720_key_frame.png (trước khi thu phóng).
Hình 121. preview_1280x720_key_frame.png (trước khi phóng to).
Hình 122. HD_1280x720_key_frame.png (sau khi thu phóng).
Hình 123. preview_1280x720_key_frame.png (sau khi phóng to).
test_preview_zoom
Kiểm thử để đảm bảo tỷ lệ thu phóng của mỗi khung hình xem trước khớp với siêu dữ liệu chụp tương ứng từ ống kính siêu rộng đến ống kính rộng. Thử nghiệm này lấy các khung hình xem trước trong phạm vi thu phóng và tìm điểm đánh dấu ArUco gần tâm nhất. Sau đó, kiểm tra xem vị trí của điểm đánh dấu trung tâm có thay đổi một cách có thể dự đoán được trong mỗi lần chụp hay không. Khoảng cách từ tâm của điểm đánh dấu trung tâm đến tâm của hình ảnh có thể thay đổi với tốc độ không đổi theo tỷ lệ thu phóng cho đến khi chuyển đổi camera thực, hoặc có thể thay đổi đơn điệu theo hướng vị trí của cùng một điểm đánh dấu sau khi chuyển đổi camera thực.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Đạt: Kích thước tương đối của điểm đánh dấu ArUco đã chọn là chính xác đối với tỷ lệ thu phóng được báo cáo của kết quả chụp tương ứng cho tất cả các khung hình xem trước. Khoảng cách tương đối của điểm đánh dấu đã chọn so với tâm của hình ảnh là chính xác đối với tỷ lệ thu phóng được báo cáo của kết quả chụp tương ứng của tất cả các khung hình xem trước.
Hình 124. Hình ảnh test_preview_zoom cho thấy điểm đánh dấu được chọn gần tâm nhất
test_session_characteristics_zoom
Kiểm thử phạm vi tỷ lệ thu phóng cho tất cả các cấu hình phiên được hỗ trợ có trong CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
Đối với mỗi cấu hình đó, nếu CameraDeviceSetup#isSessionConfigurationSupported
trả về true
, thì quy trình kiểm thử sẽ xác minh rằng có thể đạt được dải tỷ lệ thu phóng được trả về trong CameraDeviceSetup#getSessionCharacteristics
.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
Đạt: Bạn có thể đạt được cả tỷ lệ thu phóng tối thiểu và tối đa cho từng SessionConfiguration
được hỗ trợ có trong CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
scene7
scene7
là một khung hình chữ nhật được chia thành 4 góc phần tư bằng nhau, mỗi góc phần tư được tô bằng một màu khác nhau. Ở giữa hình chữ nhật là biểu đồ cạnh nghiêng để kiểm tra độ sắc nét. Bốn điểm đánh dấu ArUco được căn chỉnh với 4 góc ngoài của hình chữ nhật để hỗ trợ việc lấy toạ độ chính xác của khung hình chữ nhật chính ở các tỷ lệ thu phóng khác nhau.
Hình 125. scene7.
test_multi_camera_switch
Thử nghiệm này xác minh rằng trong quá trình ghi hình xem trước ở các tỷ lệ thu phóng khác nhau, việc chuyển đổi giữa ống kính siêu rộng (UW) và ống kính rộng (W) sẽ cho ra các giá trị RGB tương tự nhau.
Bài kiểm thử sử dụng các tỷ lệ thu phóng khác nhau trong phạm vi xác định trước để thực hiện bản ghi xem trước động và xác định điểm mà camera thực thay đổi. Điểm này đánh dấu sự chuyển đổi từ ống kính UW sang ống kính W.
Các khung hình được chụp tại và trước điểm giao nhau sẽ được phân tích để xác định độ phơi sáng tự động (AE), cân bằng trắng tự động (AWB) và tự động lấy nét (AF).
Chế độ kiểm tra AE xác minh rằng sự thay đổi về độ chói nằm trong phạm vi dự kiến cho cả hình ảnh ống kính UW và W. Quy trình kiểm tra AWB xác minh rằng tỷ lệ giữa màu đỏ và màu xanh lục, cũng như màu xanh dương và màu xanh lục nằm trong các giá trị ngưỡng cho cả hình ảnh ống kính UW và W. Chế độ kiểm tra AF đánh giá giá trị ước tính độ sắc nét dựa trên độ lớn trung bình của độ dốc giữa hình ảnh ống kính UW và W.
Trong khi thực hiện thử nghiệm này, nếu hiệu ứng Moire ảnh hưởng đến kết quả, hãy sử dụng một máy tính bảng có độ phân giải cao hơn trong danh sách Danh sách máy tính bảng được Camera ITS phê duyệt.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Để bài kiểm thử đạt, các bước kiểm tra AE và AWB phải đạt. Kết quả kiểm tra AF chỉ được dùng cho mục đích ghi nhật ký. Sau đây là các tiêu chí cho từng bước kiểm tra:
- Kiểm tra AE: Sự thay đổi độ chói (giá trị Y) giữa hình ảnh ống kính siêu rộng và ống kính rộng phải nhỏ hơn 4% đối với tất cả các mảng màu nếu thiết bị hỗ trợ cả
ae_regions
vàawb_regions
. Nếu chỉ hỗ trợae_regions
thì chỉ các giá trị của mảng màu xám mới phải đáp ứng tiêu chí. - Kiểm tra AWB: Chênh lệch giữa giá trị đỏ-xanh lục và xanh lam-xanh lục đối với hình ảnh ống kính UW và W phải nhỏ hơn 3% đối với mảng màu xám và phải nhỏ hơn 10% đối với các mảng màu khác nếu thiết bị hỗ trợ cả
ae_regions
vàawb_regions
. - Kiểm tra AF: Độ sắc nét của hình ảnh chụp bằng ống kính W phải cao hơn độ sắc nét của hình ảnh chụp bằng ống kính UW.
Hình 126. Mảng màu xám được chụp bằng ống kính siêu rộng.
Hình 127. Mảng màu xám được chụp bằng ống kính W.
scene8
scene8
là một khung hình chữ nhật được chia thành 4 vùng bằng nhau, mỗi vùng chứa một bức chân dung được chụp với độ phơi sáng khác nhau hoặc được phủ một sắc độ màu khác (sắc độ xanh dương, tăng độ phơi sáng, giảm độ phơi sáng, sắc độ vàng).
Bốn điểm đánh dấu ArUco được căn chỉnh với 4 góc ngoài của hình chữ nhật để có được toạ độ chính xác của khung hình chữ nhật chính.
Hình 128. Ví dụ về scene8.
test_ae_awb_regions
Kiểm tra xem giá trị RGB và độ chói có khác nhau hay không khi xem trước bản ghi ở các vùng AE và AWB khác nhau.
Bài kiểm thử sẽ quay một bản ghi xem trước dài 8 giây, thực hiện đo sáng AE và AWB trên mỗi góc phần tư trong 2 giây. Sau đó, quy trình kiểm thử sẽ trích xuất một khung hình từ bản ghi xem trước của mỗi khu vực và dùng các khung hình đã trích xuất để thực hiện các bước kiểm tra AE và AWB sau đây:
- Kiểm tra AE: Xác minh rằng khung hình đo sáng vùng có độ phơi sáng giảm có giá trị độ chói tăng hơn 1% so với khung hình đo sáng vùng có độ phơi sáng tăng. Điều này xác minh rằng hình ảnh được làm sáng khi đo sáng một vùng tối.
- Kiểm tra AWB: Xác minh rằng tỷ lệ giữa màu đỏ và màu xanh dương (trong các giá trị RGB trung bình của hình ảnh) trong khung hình có vùng đo sáng màu xanh dương cao hơn 2% so với khung hình có vùng đo sáng màu vàng. Điều này xác minh rằng hình ảnh có giá trị RGB cân bằng khi đo sáng một vùng màu vàng (ấm) hoặc màu xanh dương (lạnh).
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
Đạt: Cả quy trình kiểm tra AE và AWB đều đạt.
Hình 129. Đo sáng khung hình vùng tối với độ phơi sáng tăng lên.
Hình 130. Vùng sáng đo sáng khung hình có độ phơi sáng giảm.
Cơ chế thất bại:
Việc phát hiện chính xác cả 4 điểm đánh dấu ArUco là điều cần thiết cho bài kiểm thử này. Nếu lần phát hiện ban đầu không thành công, hệ thống sẽ thử phát hiện lần thứ hai bằng cách sử dụng phiên bản đen trắng của hình ảnh. Hình ảnh thang độ xám sau đây biểu thị bước xử lý thứ cấp:
Hình 131. Điểm đánh dấu ArUco bị lệch.
test_color_correction_mode_cct
Kiểm thử COLOR_CORRECTION_MODE
ở nhiều nhiệt độ màu và sắc độ, xác minh các thay đổi về tỷ lệ RGB so với cảnh chụp, scene8.
Các API đã được kiểm thử:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
Đạt: Tỷ lệ RGB cho thấy mức tăng hoặc giảm dự kiến so với nhiệt độ màu và sắc độ đã chọn.
Tiêu chí bỏ qua kiểm thử
Thử nghiệm test_color_correction_mode_cct
sẽ bị bỏ qua nếu đáp ứng bất kỳ tiêu chí nào sau đây:
- Thiết bị có cấp độ API đầu tiên (
first_api_level
) là 35 trở xuống. - Thiết bị không quảng cáo
COLOR_CORRECTION_MODE_CCT
trongCOLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
.
scene9
scene9
bao gồm hàng nghìn vòng tròn có kích thước và màu sắc ngẫu nhiên để tạo ra một cảnh có khả năng lặp lại rất thấp nhằm nhấn mạnh các thuật toán nén JPEG.
Hình 132. Ví dụ về scene9.
test_jpeg_high_entropy
Các kiểm thử cho thấy tính năng nén JPEG của camera hoạt động trên scene9
với entropy cao và hệ số chất lượng JPEG được đặt thành 100%. Hệ số thu phóng được tăng lên để xác minh rằng cảnh hiển thị trên máy tính bảng lấp đầy FoV của camera.
Các API đã được kiểm thử:
Đạt: Tệp JPEG được nén, ghi và đọc lại từ ổ đĩa đúng cách.
test_jpeg_quality
Kiểm thử chất lượng nén JPEG của camera. Bước chất lượng JPEG thông qua android.jpeg.quality
và xác minh rằng các bảng lượng tử hoá thay đổi chính xác.
Các API đã được kiểm thử:
Đạt: Ma trận lượng tử hoá giảm khi chất lượng tăng. (Ma trận này biểu thị hệ số phân chia.)
Hình 133. Giá trị trung bình của ma trận DQT về độ chói và độ bão hoà của camera sau trên Pixel 4 so với chất lượng JPEG.
Hình 134. Ví dụ về kiểm thử không thành công.
scene_video
scene_video
là một cảnh video gồm 4 vòng tròn có màu sắc khác nhau di chuyển qua lại ở các tốc độ khung hình khác nhau trên nền trắng.
Hình 135. Ví dụ về scene_video.
test_preview_frame_drop
Kiểm thử để đảm bảo tốc độ khung hình xem trước được yêu cầu vẫn duy trì với một cảnh động. Bài kiểm thử này chạy trên tất cả các camera được cung cấp cho ứng dụng bên thứ ba.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Tốc độ khung hình xem trước ở mức tối đa của dải tốc độ khung hình được yêu cầu và mức biến thiên trung bình giữa các khung hình liên tiếp nhỏ hơn dung sai tương đối được đặt trong thử nghiệm.
scene_extensions
Các kiểm thử scene_extensions
dành cho các tiện ích camera và phải sử dụng Camera ITS-in-a-Box, vì chúng yêu cầu kiểm soát chính xác môi trường kiểm thử. Ngoài ra, bạn phải kiểm soát mọi hiện tượng rò rỉ ánh sáng. Việc này có thể yêu cầu bạn phủ một tấm vải lên giàn thử nghiệm, DUT và máy tính bảng, cũng như loại bỏ tình trạng rò rỉ ánh sáng từ màn hình trước của DUT.
scene_hdr
Cảnh scene_hdr
bao gồm một bức chân dung ở bên trái và mã QR có độ tương phản thấp ở bên phải.
Hình 136. Ví dụ về scene_hdr.
test_hdr_extension
Kiểm thử tiện ích HDR. Chụp ảnh khi bật và tắt tiện ích, đồng thời kiểm tra xem tiện ích có giúp phát hiện mã QR dễ dàng hơn hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Đạt: Tiện ích HDR giảm số lượng thay đổi về độ tương phản cần thiết để phát hiện mã QR hoặc giảm độ dốc trên mã QR.
scene_low_light
Cảnh scene_low_light
bao gồm một lưới các ô vuông có nhiều sắc độ xám trên nền đen và lưới các ô vuông được bao quanh bởi một đường viền màu đỏ. Các ô vuông được sắp xếp theo hướng đường cong Hilbert.
Hình 137. Ví dụ về scene_low_light.
test_night_extension
Kiểm thử tiện ích Night. Chụp ảnh khi bật tiện ích và thực hiện những việc sau:
- Phát hiện sự hiện diện của 20 hình vuông
- Tính toán độ chói bị giới hạn bởi mỗi hình vuông
- Tính giá trị luma trung bình của 6 ô vuông đầu tiên theo hướng lưới đường cong Hilbert
- Tính mức chênh lệch về giá trị độ chói của các ô vuông liên tiếp (ví dụ: ô vuông 2 – ô vuông 1) cho đến ô vuông 5 và 6 (ô vuông 6 – ô vuông 5), đồng thời tìm giá trị trung bình của 5 mức chênh lệch đã tính.
Đối với các thiết bị chạy Android 16 trở lên, yêu cầu chụp bao gồm một vùng đo lường tương ứng với hình chữ nhật giới hạn lưới ô vuông. Việc bổ sung này làm thay đổi tiêu chí đạt ngưỡng.
Các API đã được kiểm thử:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Mật khẩu:
- Đối với các thiết bị chạy Android 16 trở lên, giá trị độ chói trung bình của 6 ô vuông đầu tiên phải ít nhất là 80 và mức chênh lệch trung bình về giá trị độ chói của các ô vuông liên tiếp cho đến ô vuông thứ 5 và thứ 6 phải ít nhất là 18, 75.
- Đối với các thiết bị chạy Android 15 trở xuống, giá trị độ chói trung bình của 6 ô vuông đầu tiên phải ít nhất là 85 và mức chênh lệch trung bình về giá trị độ chói của các ô vuông liên tiếp cho đến ô vuông thứ 5 và thứ 6 phải ít nhất là 17.
Biểu đồ độ chói sau đây cho thấy kết quả kiểm thử đạt yêu cầu.
Hình 138. Ví dụ về bài kiểm thử cảnh đêm trong điều kiện thiếu sáng.
test_low_light_boost_extension
Kiểm thử chế độ AE Tăng cường ánh sáng yếu. Nếu Camera2 hỗ trợ chế độ AE tăng cường ánh sáng yếu, thì thử nghiệm này sẽ được thực hiện cho Camera2. Nếu tiện ích camera ở chế độ ban đêm được hỗ trợ và tiện ích này hỗ trợ chế độ AE tăng cường ánh sáng yếu, thì thử nghiệm này cũng được thực hiện cho tiện ích camera ở chế độ ban đêm. Bài kiểm thử này đặt chế độ AE thành tăng cường ánh sáng yếu, lấy một khung hình từ bản xem trước và thực hiện các thao tác sau:
- Phát hiện sự hiện diện của 20 hộp
- Tính toán độ chói bị giới hạn bởi mỗi hộp
- Tính giá trị luma trung bình của 6 ô vuông đầu tiên theo hướng lưới đường cong Hilbert
- Tính mức chênh lệch về giá trị độ chói của các ô vuông liên tiếp (ví dụ: ô vuông 2 – ô vuông 1) cho đến ô vuông 5 và 6 (ô vuông 6 – ô vuông 5), đồng thời tìm giá trị trung bình của 5 mức chênh lệch đã tính.
Đối với các thiết bị chạy Android 16 trở lên, yêu cầu chụp bao gồm một vùng đo lường tương ứng với hình chữ nhật giới hạn lưới ô vuông. Việc bổ sung này làm thay đổi tiêu chí đạt ngưỡng.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
Mật khẩu:
Đối với các thiết bị chạy Android 16 trở lên, giá trị luma trung bình của 6 ô vuông đầu tiên phải ít nhất là 54 và mức chênh lệch trung bình về giá trị luma của các ô vuông liên tiếp cho đến ô vuông thứ 5 và thứ 6 phải ít nhất là 17.
Đối với các thiết bị chạy Android 15 trở xuống, giá trị độ chói trung bình của 6 ô vuông đầu tiên phải ít nhất là 70 và sự khác biệt trung bình về giá trị độ chói của các ô vuông liên tiếp cho đến ô vuông thứ 5 và thứ 6 phải ít nhất là 18.
scene_tele
Một yêu cầu quan trọng đối với các bài kiểm tra scene_tele
là khoảng cách biểu đồ phải ít nhất bằng khoảng cách lấy nét tối thiểu của ống kính tele. Vì khoảng cách lấy nét tối thiểu này có thể khác nhau giữa các thiết bị, nên bạn phải định cấu hình chế độ thiết lập cho phù hợp với camera tele cụ thể.
Hình 139. Thiết lập scene_tele dựa trên khoảng cách lấy nét của camera góc rộng và camera tele.
Để biết thêm thông tin về cách thiết lập phần cứng kiểm thử, hãy xem phần Thiết lập giàn mở rộng từ xa.
scene6_tele
Cảnh scene6_tele
bao gồm một lưới các điểm đánh dấu ArUco trên nền trắng.
Nếu ảnh chụp scene6_tele
có vẻ bị phơi sáng quá mức trong giàn mô-đun, hãy tháo tấm trước của giàn mô-đun.
Ngắt kết nối giàn thử nghiệm WFoV khỏi phần mở rộng và tháo giá đỡ điện thoại.
Hình 140. Ngắt kết nối giàn thử nghiệm WFoV khỏi phần mở rộng và tháo giá đỡ điện thoại.
Hình 141. Tháo tấm mặt trước.
test_zoom_tele
Kiểm thử hành vi thu phóng của camera từ ống kính rộng sang ống kính tele. Bài kiểm tra này giống với test_zoom
, nhưng kiểm tra hành vi thu phóng của camera từ ống kính rộng sang ống kính tele.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Đạt: Kích thước tương đối của điểm đánh dấu ArUco đã chụp chính xác so với tỷ lệ thu phóng được yêu cầu để xác minh rằng máy ảnh đang thu phóng chính xác và khoảng cách của điểm đánh dấu đến tâm hình ảnh thay đổi theo các tiêu chí được liệt kê trong test_zoom
.
test_preview_zoom_tele
Kiểm thử hành vi thu phóng của camera đối với các khung hình xem trước từ ống kính góc rộng đến ống kính tele. Bài kiểm thử này giống với test_preview_zoom
, nhưng kiểm thử hành vi thu phóng của camera đối với các khung hình xem trước từ ống kính rộng đến ống kính tele.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Đạt: Kích thước tương đối của điểm đánh dấu ArUco đã chụp chính xác so với tỷ lệ thu phóng được yêu cầu để xác minh rằng máy ảnh đang thu phóng chính xác và khoảng cách của điểm đánh dấu đến tâm hình ảnh thay đổi theo các tiêu chí được liệt kê trong test_preview_zoom.
scene7_tele
scene7_tele
giống với scene7
, nhưng được thiết lập để kiểm thử ống kính tele. Đây là một khung hình chữ nhật được chia thành 4 góc phần tư bằng nhau, mỗi góc phần tư có một màu sắc riêng. Ở giữa hình chữ nhật là biểu đồ cạnh nghiêng để kiểm tra độ sắc nét. Bốn điểm đánh dấu ArUco được căn chỉnh với 4 góc ngoài của hình chữ nhật để hỗ trợ việc lấy toạ độ chính xác của khung hình chữ nhật chính ở các tỷ lệ thu phóng khác nhau.
test_multi_camera_switch_tele
Thử nghiệm này xác minh rằng trong quá trình ghi hình xem trước ở các tỷ lệ thu phóng khác nhau, việc chuyển đổi giữa ống kính góc rộng (W) và ống kính tele (tele) sẽ cho ra các giá trị RGB tương tự.
Bài kiểm thử sử dụng các tỷ lệ thu phóng khác nhau trong phạm vi xác định trước để thực hiện bản ghi xem trước động và xác định điểm mà camera thực thay đổi. Điểm này đánh dấu sự chuyển đổi từ ống kính W sang ống kính tele.
Các khung hình được chụp tại và trước điểm giao nhau sẽ được phân tích về AE, AWB và AF.
Quy trình kiểm tra AE xác minh rằng sự thay đổi về độ chói nằm trong phạm vi dự kiến cho cả hình ảnh ống kính W và ống kính tele. Quy trình kiểm tra AWB xác minh rằng tỷ lệ giữa màu đỏ và màu xanh lục, cũng như màu xanh dương và màu xanh lục nằm trong các giá trị ngưỡng cho cả hình ảnh ống kính W và ống kính tele. Chế độ kiểm tra AF đánh giá giá trị ước tính độ sắc nét dựa trên độ lớn độ dốc trung bình giữa hình ảnh ống kính W và ống kính tele.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Để kiểm thử đạt, các bước kiểm tra AE, AWB và AF đều phải đạt. Sau đây là tiêu chí cho từng bước kiểm tra:
- Kiểm tra AE: Sự thay đổi độ chói giữa hình ảnh ống kính W và ống kính tele phải nhỏ hơn 4%.
- Kiểm tra AWB: Trong không gian màu LAB, delta C giữa màu đỏ và màu xanh lục, màu xanh dương và màu xanh lục đối với ống kính góc rộng và ống kính tele không được vượt quá 10.
- Kiểm tra AF: Độ sắc nét của hình ảnh do ống kính tele chụp phải cao hơn ống kính W.
scene_flash
Các bài kiểm tra scene_flash
yêu cầu có cảnh tối trong hộp hợp nhất cảm biến.
test_auto_flash
Các bài kiểm thử cho biết đèn flash tự động được kích hoạt trong cảnh tối đối với camera sau và camera trước. Đối với camera trước, đèn flash tự động sử dụng màn hình để chiếu sáng cảnh, chứ không phải một thiết bị đèn flash vật lý. Bài kiểm thử này xác minh rằng đèn flash tự động được kích hoạt bằng cách kiểm tra xem tâm của hình ảnh ô có sáng hơn khi bật đèn flash tự động hay không. Để kích hoạt tính năng tự động nháy sáng, bạn phải tắt đèn trong giàn thử nghiệm. Đèn có thể tự động tắt bằng bộ điều khiển Arduino. Cảnh phải hoàn toàn tối để kiểm tra đúng cách. Bạn phải cài đặt Ứng dụng Camera Jetpack (JCA) trên thiết bị trước khi kiểm thử. Đèn flash tự động cho camera sau dựa vào trạng thái AE để kích hoạt, nhưng đèn flash tự động cho camera trước không dựa vào AE và luôn được kích hoạt.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Đạt: Tâm của hình ảnh ô có chế độ đèn flash tự động được bật sẽ sáng hơn hình ảnh cảnh gốc đối với tất cả các camera.
test_flash_strength
Các kiểm thử kiểm soát cường độ đèn flash ở chế độ SINGLE
được triển khai đúng cách.
Xác minh rằng nếu thiết bị hỗ trợ chế độ kiểm soát cường độ đèn flash trong quá trình sử dụng camera ở chế độ SINGLE
, thì cường độ đèn flash sẽ thay đổi theo các mức cường độ được yêu cầu khác nhau. Xác minh rằng chế độ kiểm soát cường độ đèn flash hoạt động với nhiều AE_MODES
.
Ví dụ: nếu chế độ phơi sáng tự động là ON
hoặc OFF
, thì mức cường độ đèn flash sẽ ảnh hưởng đến độ sáng. Nếu chế độ là ON_AUTO_FLASH
, thì mức cường độ đèn flash sẽ không ảnh hưởng đến độ sáng.
Để tiến hành kiểm thử, bạn phải tắt đèn trong giàn kiểm thử. Bạn có thể tắt đèn tự động bằng bộ điều khiển Arduino. Cảnh phải hoàn toàn tối để kiểm tra đúng cách.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
Mật khẩu:
Khi chế độ phơi sáng tự động là ON
hoặc OFF
, độ sáng của các mảng hình ảnh sẽ tăng lên khi mức cường độ đèn flash tăng từ không có đèn flash lên FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
Khi chế độ phơi sáng tự động là ON_AUTO_FLASH
, sự khác biệt về độ sáng của các mảng hình ảnh nằm trong phạm vi dung sai khi mức cường độ đèn flash tăng từ không có đèn flash lên FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
test_led_snapshot
Kiểm tra để đảm bảo ảnh chụp nhanh của đèn LED không làm bão hoà hoặc làm đổi màu hình ảnh.
Bài kiểm thử này thêm một bộ điều khiển ánh sáng vào Sensor Fusion Box để điều khiển đèn. Khi đèn được đặt thành OFF
, quy trình kiểm thử sẽ chụp ảnh ở chế độ AUTO_FLASH
được đặt thành ON
. Trong quá trình chụp này, quy trình kiểm thử sẽ chạy một chuỗi trước khi chụp với chế độ cài đặt trình kích hoạt aePrecapture
thành START
và đặt ý định chụp thành Preview
để chụp bằng đèn flash.
Vì ảnh chụp có một điểm nóng đặc biệt do đèn flash, nên quy trình kiểm thử sẽ tính toán giá trị trung bình của hình ảnh đèn flash của toàn bộ ảnh chụp và xác minh xem giá trị đó có nằm trong phạm vi (68, 102) hay không. Để kiểm tra xem hình ảnh có cân bằng trắng hợp lý hay không, kiểm thử sẽ tính toán tỷ lệ đỏ-xanh lục và xanh dương-xanh lục, đồng thời xác minh xem các tỷ lệ này có nằm trong khoảng từ 0,95 đến 1,05 hay không.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Đạt: Tỷ lệ đỏ – xanh lục và xanh dương – xanh lục nằm trong khoảng từ 0,95 đến 1,05. Giá trị trung bình của hình ảnh có đèn flash nằm trong khoảng (68, 102).
test_night_mode_indicator
Kiểm thử chức năng của chỉ báo chế độ ban đêm, một tính năng cho biết liệu camera có đang hoạt động trong điều kiện ánh sáng yếu hay không và có được lợi từ tiện ích Chế độ ban đêm chụp ảnh tĩnh bằng camera hay không. Tính năng này chỉ có trên những thiết bị hỗ trợ tiện ích Camera ở chế độ ban đêm.
Bài kiểm thử này kiểm tra để đảm bảo chỉ báo chế độ ban đêm phản ánh chính xác điều kiện ánh sáng trong quá trình xem trước bằng camera. Bài kiểm thử thực hiện các bước sau:
- Khởi chạy: Thử nghiệm khởi chạy một
ItsSession
và truy xuất các thuộc tính của camera. Thiết bị này cũng thiết lập kết nối với bộ điều khiển đèn. - Điều kiện bỏ qua: Thử nghiệm sẽ bị bỏ qua nếu thiết bị không hỗ trợ cấp độ API bắt buộc hoặc tính năng chỉ báo chế độ ban đêm.
- Phiên Camera2:
- Bài kiểm thử bắt đầu một phiên chụp xem trước bằng cách sử dụng phiên
Camera2
. - Đèn bật và một khung hình xem trước được chụp.
- Bài kiểm thử này xác minh rằng chỉ báo chế độ ban đêm đang ở trạng thái
OFF
. - Đèn sẽ tắt và một khung hình xem trước sẽ được chụp.
- Bài kiểm thử này xác minh rằng chỉ báo chế độ ban đêm đang ở trạng thái
ON
.
- Bài kiểm thử bắt đầu một phiên chụp xem trước bằng cách sử dụng phiên
- Phiên tiện ích máy ảnh:
- Thử nghiệm này lặp lại quy trình tương tự như đối với phiên
Camera2
, nhưng sử dụng phiênCameraExtension
có tiện íchEXTENSION_NIGHT
.
- Thử nghiệm này lặp lại quy trình tương tự như đối với phiên
- Dọn dẹp: Thử nghiệm đóng
ItsSession
và giải phóng bộ điều khiển ánh sáng.
Các API đã được kiểm thử:
Mật khẩu:
- Khi đèn bật, chỉ báo chế độ ban đêm phải ở trạng thái
OFF
. - Khi đèn tắt, chỉ báo chế độ ban đêm phải ở trạng thái
ON
. - Áp dụng cho cả phiên
Camera2
vàCameraExtension
.
test_preview_min_frame_rate
Kiểm thử để đảm bảo tốc độ khung hình xem trước giảm đúng cách trong cảnh tối. Để kiểm thử này hoạt động chính xác, bộ điều khiển phải tắt đèn trong giàn kiểm thử hoặc nhân viên kiểm thử phải tắt đèn theo cách thủ công.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Tốc độ khung hình xem trước ở mức tối thiểu của dải tốc độ khung hình được yêu cầu và độ biến thiên giữa các khung hình nhỏ hơn dung sai tuyệt đối được đặt trong kiểm thử.
test_torch_strength
Các kiểm thử kiểm soát cường độ đèn flash ở chế độ TORCH
được triển khai đúng cách.
Xác minh rằng nếu thiết bị hỗ trợ chế độ kiểm soát cường độ đèn flash trong khi sử dụng camera ở chế độ TORCH
, thì cường độ đèn pin sẽ thay đổi theo các mức cường độ được yêu cầu khác nhau. Xác minh rằng chế độ kiểm soát cường độ đèn flash hoạt động với nhiều AE_MODES
.
Ví dụ: nếu chế độ phơi sáng tự động là ON
hoặc OFF
, thì mức cường độ đèn flash sẽ ảnh hưởng đến độ sáng. Nếu chế độ là ON_AUTO_FLASH
, thì mức cường độ đèn flash sẽ không ảnh hưởng đến độ sáng.
Xác minh rằng cường độ đèn pin vẫn giữ nguyên trong suốt thời gian chụp liên tục, mô phỏng một phiên quay video. Để tiến hành kiểm thử, bạn phải tắt đèn trong giàn kiểm thử. Đèn có thể tự động tắt bằng bộ điều khiển Arduino. Cảnh phải hoàn toàn tối để kiểm tra đúng cách.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
Mật khẩu:
Khi chế độ phơi sáng tự động là ON
hoặc OFF
, độ sáng của các mảng ảnh chụp liên tục sẽ tăng khi mức cường độ đèn flash tăng từ không có đèn flash lên FLASH_TORCH_STRENGTH_MAX_LEVEL
.
Khi chế độ phơi sáng tự động là ON_AUTO_FLASH
, sự khác biệt về độ sáng của các mảng ảnh chụp liên tục nằm trong phạm vi dung sai khi mức cường độ đèn flash tăng từ không có đèn flash lên FLASH_TORCH_STRENGTH_MAX_LEVEL
.
sensor_fusion
Các bài kiểm thử hợp nhất cảm biến yêu cầu điện thoại phải di chuyển theo một cách cụ thể trước một mẫu bàn cờ và các điểm đánh dấu ArUco. Để có kết quả tối ưu, hãy xác minh rằng biểu đồ kiểm thử được gắn phẳng. Những biểu đồ không bằng phẳng sẽ ảnh hưởng đến các phép tính xoay cho nhiều thử nghiệm. Biểu đồ phải lấp đầy mặt sau của hộp kết hợp cảm biến bằng cách in ở kích thước 17x17 inch. (43x43 cm). Bạn có thể tự động hoá các quy trình kiểm thử sensor_fusion
bằng Sensor Fusion Box.
Hình 142. Biểu đồ kết hợp cảm biến.
Hình 143. Biểu đồ kết hợp cảm biến lấp đầy mặt sau của hộp kết hợp cảm biến.
test_lens_intrinsic_calibration
Kiểm thử rằng tâm quang học của ống kính thay đổi khi ống kính di chuyển do tính năng chống rung hình ảnh quang học (OIS). Nếu các mẫu nội tại của ống kính được hỗ trợ, hãy kiểm thử xem tâm quang học của các mẫu nội tại của ống kính có thay đổi hay không khi ống kính di chuyển do OIS.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Tâm quang học của ống kính thay đổi từ 1 pixel trở lên. Nếu các mẫu nội tại của ống kính được hỗ trợ, thì tâm quang học của các mẫu nội tại của ống kính sẽ thay đổi từ 1 pixel trở lên.
Hình sau đây là ví dụ về biểu đồ test_lens_intrinsic_calibration
cho thấy những thay đổi về điểm chính theo pixel cho mỗi khung hình:
Hình 144. Ví dụ về biểu đồ test_lens_intrinsic_calibration cho thấy những thay đổi về điểm chính theo pixel cho mỗi khung hình.
test_multi_camera_frame_sync
Các bài kiểm thử có dấu thời gian khung hình do camera logic ghi lại nằm trong khoảng 10 mili giây bằng cách tính toán các góc của hình vuông trong bàn cờ để xác định dấu thời gian.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Đạt: Góc giữa các hình ảnh từ mỗi camera không thay đổi đáng kể khi điện thoại xoay.
test_preview_distortion
Kiểm thử để đảm bảo hiện tượng biến dạng được điều chỉnh trong từng khung hình xem trước được chụp ở nhiều mức thu phóng. Đối với mỗi khung hình xem trước, kiểm thử sẽ tính toán các điểm lý tưởng dựa trên các thông số nội tại và bên ngoài của camera.
Trong hình ảnh ví dụ, các điểm lý tưởng được hiển thị bằng màu xanh lục; các điểm thực tế được hiển thị bằng màu đỏ. Lỗi biến dạng được tính dựa trên khoảng cách pixel RMS giữa các điểm thực tế và điểm lý tưởng. Điểm nổi bật màu xanh lục và màu đỏ trên hình ảnh được dùng để phát hiện trực quan khu vực có lỗi biến dạng.
Hình 145. Hình ảnh bàn cờ với các điểm lý tưởng là màu xanh lục và các điểm thực tế là màu đỏ.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Sai số biến dạng được chuẩn hoá của mỗi khung hình xem trước nhỏ hơn ngưỡng được đặt trong kiểm thử.
test_preview_stabilization
Các thử nghiệm cho thấy video xem trước ổn định xoay ít hơn con quay hồi chuyển.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Góc xoay tối đa trên các khung hình nhỏ hơn 70% góc xoay của con quay hồi chuyển.
Sau đây là các video mẫu có và không có tính năng ổn định hình ảnh:
Hình 146. Video mẫu có sử dụng tính năng ổn định.
Hình 147. Video mẫu không có tính năng ổn định.
test_sensor_fusion
Kiểm thử sự khác biệt về dấu thời gian giữa camera và con quay hồi chuyển cho các ứng dụng thực tế tăng cường và thực tế ảo. Điện thoại được xoay 90 độ 10 lần trước mẫu bàn cờ. Thời gian di chuyển là khoảng 2 giây cho cả chiều đi và về. Thử nghiệm này sẽ bị bỏ qua nếu không có con quay hồi chuyển hoặc nếu tham số nguồn dấu thời gian REALTIME
không được bật.
Thử nghiệm test_sensor_fusion
tạo ra một số biểu đồ. Hai biểu đồ quan trọng nhất để gỡ lỗi là:
test_sensor_fusion_gyro_events
: Hiển thị các sự kiện con quay hồi chuyển cho điện thoại trong quá trình kiểm thử. Chuyển động theo hướng x và y cho thấy điện thoại không được gắn chắc chắn vào giá treo tường, làm giảm khả năng vượt qua bài kiểm tra. Số chu kỳ trong biểu đồ phụ thuộc vào tốc độ ghi để lưu khung hình.Hình 148. Ví dụ về các sự kiện con quay hồi chuyển test_sensor_fusion.
test_sensor_fusion_plot_rotations
: Cho biết sự liên kết của con quay hồi chuyển và các sự kiện trên camera. Biểu đồ này phải cho thấy chuyển động khớp giữa camera và con quay hồi chuyển trong khoảng +/-1 mili giây.Hình 149. Ví dụ về độ xoay biểu đồ test_sensor_fusion.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Đạt: Độ lệch của dấu thời gian máy ảnh và con quay hồi chuyển nhỏ hơn 1 mili giây theo 7.3.9 Cảm biến có độ trung thực cao trong CDD.
Cơ chế thất bại:
- Lỗi độ lệch: Độ lệch của con quay hồi chuyển trong camera chưa được hiệu chỉnh chính xác trong khoảng +/-1 mili giây.
- Giảm khung hình: Đường truyền không đủ nhanh để ghi lại 200 khung hình liên tục.
- Lỗi ổ cắm:
adb
không thể kết nối với DUT đủ lâu để thực thi kiểm thử. - Biểu đồ không được gắn phẳng. Cốt truyện
test_sensor_fusion_plot_rotations
có những khung hình mà con quay hồi chuyển và độ xoay camera thay đổi đáng kể khi camera xoay qua các phần không bằng phẳng của biểu đồ. - Camera không được lắp đặt trên bề mặt phẳng. Biểu đồ
test_sensor_fusion_gyro_events
cho thấy chuyển động trên mặt phẳng X và Y. Lỗi này thường xảy ra hơn ở camera trước vì camera sau thường có một phần nhô lên so với phần còn lại của thân điện thoại, tạo ra độ nghiêng khi gắn mặt sau của điện thoại vào tấm gắn.
test_video_stabilization
Các thử nghiệm cho thấy video được ổn định xoay ít hơn con quay hồi chuyển.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Đạt: Góc xoay tối đa trên các khung hình nhỏ hơn 60% góc xoay của con quay hồi chuyển.
Sau đây là các video mẫu có và không có tính năng ổn định hình ảnh.
Hình 150. Video mẫu có sử dụng tính năng ổn định.
Hình 151. Video mẫu không có tính năng ổn định.
test_video_stabilization_jca
Các thử nghiệm cho thấy video ổn định được quay bằng JCA xoay ít hơn so với con quay hồi chuyển. Bạn phải cài đặt JCA trên thiết bị trước khi kiểm thử.
Các API đã được kiểm thử:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
Đạt: Góc xoay tối đa trên các khung hình được trích xuất từ video quay bằng JCA nhỏ hơn 70% góc xoay của con quay hồi chuyển.
feature_combination
Các kiểm thử feature_combination
xác minh rằng các tính năng hoạt động đúng cách khi nhiều tính năng camera được bật cùng một lúc. Các bài kiểm thử này sử dụng cùng một hình ảnh bàn cờ được dùng trong cảnh hợp nhất cảm biến.
test_feature_combination
Kiểm thử tất cả các tổ hợp của nhiều tổ hợp luồng, chế độ ổn định video, dải tốc độ khung hình mục tiêu, video HDR 10 bit và Ultra HDR mà thiết bị camera hỗ trợ.
Đối với Android 16 trở lên, quy trình kiểm thử sẽ chạy tất cả các tổ hợp tính năng được hỗ trợ và ghi kết quả vào một tệp proto. Các câu lệnh khẳng định lỗi chỉ được gọi cho những tổ hợp tính năng mà isSessionConfigurationSupported
trả về True
.
Các API đã được kiểm thử:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
Đạt: Đối với mỗi tổ hợp tính năng được hỗ trợ:
- Luồng xem trước sẽ được ổn định nếu tính năng chống rung khi xem trước đang bật.
- Tốc độ khung hình xem trước nằm trong
AE_TARGET_FPS_RANGE
đã định cấu hình. - Hệ màu của luồng xem trước được ghi lại khớp với hệ màu đã đặt.
- Ảnh chụp Ultra HDR có bản đồ độ khuếch đại hợp lệ.
scene_ip
Trong Android 16 trở lên, cảnh scene_ip
cho phép kiểm tra tính chẵn lẻ của hình ảnh giữa ứng dụng máy ảnh mặc định và ứng dụng máy ảnh Jetpack (JCA) để xác định những điểm khác biệt chính giữa các hình ảnh đã chụp. JCA sao chép ảnh chụp màn hình của ứng dụng mạng xã hội và cung cấp một hình ảnh cơ sở mà sau đó các ứng dụng mạng xã hội sẽ xử lý và tinh chỉnh.
Yêu cầu về việc thiết lập phần cứng
Bạn phải thiết lập phần cứng như sau để chạy các bài kiểm thử scene_ip
:
- Các bài kiểm thử được thực thi trong ITS-in-a-box của camera Gen2.
- Bộ điều khiển chiếu sáng và bộ điều khiển servo là một phần của giàn thử nghiệm Gen2, được dùng để kiểm soát môi trường thử nghiệm
- Một biểu đồ tính năng thử nghiệm được đặt bên trong giàn Gen2.
Hình 152. Ví dụ Gen2chart_sample.
Tiêu chí bỏ qua kiểm thử
Các kiểm thử scene_ip
sẽ bị bỏ qua nếu đáp ứng bất kỳ tiêu chí nào sau đây:
- Thiết bị có cấp độ API đầu tiên (
first_api_level
) là 35 trở xuống. - Thiết bị không phải là thiết bị điện thoại có camera trước và sau (ví dụ: máy tính bảng hoặc TV).
test_default_jca_ip
Chụp biểu đồ tính năng kiểm thử trong điều kiện ánh sáng được kiểm soát bằng ứng dụng camera mặc định và JCA, đồng thời thực hiện các bước kiểm tra sau:
FoV: Kiểm tra để đảm bảo ứng dụng máy ảnh mặc định và các bản chụp JCA có cùng FoV. Quy trình kiểm tra này sử dụng tính năng mã QR ở giữa được trích xuất từ hình ảnh biểu đồ chụp.
Độ sáng: Kiểm tra để đảm bảo độ chênh lệch độ sáng đo được giữa ứng dụng máy ảnh mặc định và JCA không vượt quá 10. Quy trình kiểm tra này sử dụng bản vá dải tương phản động để đo độ sáng.
Cân bằng trắng: Kiểm tra để đảm bảo sự khác biệt về cân bằng trắng giữa ứng dụng camera mặc định và JCA không vượt quá 4. Quy trình kiểm tra này sử dụng bản vá dải tương phản động để đo độ sáng.
Đạt yêu cầu cơ bản: Bài kiểm thử đạt yêu cầu về FoV, độ sáng và độ cân bằng trắng. Trong Android 16, bạn không bắt buộc phải thực hiện kiểm thử này (NOT_YET_MANDATED
).