Ghi chú phát hành Bộ kiểm tra hình ảnh máy ảnh dành cho Android 11

Trang này tóm tắt các thay đổi đối với Bộ kiểm thử hình ảnh máy ảnh (ITS) trong Android 11. Các thay đổi thuộc các danh mục sau:

Thay đổi về phần cứng

Android 11 giới thiệu một số thay đổi về phần cứng để giảm chi phí và tăng khả năng cung cấp. Những thay đổi này thuộc các danh mục sau:

Nhà sản xuất khác

Rahi Systems đủ điều kiện để sản xuất vỏ bọc thử nghiệm ITS ngoài nhà cung cấp hiện tại của chúng tôi là MYWAY design. Thông tin công ty cho các nhà cung cấp đủ điều kiện như sau:

Phương pháp sản xuất hợp nhất

Vỏ bọc thử nghiệm ITS-in-a-box (hệ thống thông tin giao thông trong hộp) có trường nhìn thông thường (RFoV) bản sửa đổi 1 được thiết kế lại để sử dụng các phương pháp sản xuất mà hộp có trường nhìn rộng (WFoV)hộp tích hợp cảm biến sử dụng. Chức năng giống hệt nhau và để đơn giản, thiết kế này được gọi là rev1a. Thiết kế lại cho phép nhà sản xuất dự trữ một loại nhựa duy nhất để sản xuất tất cả các hộp kiểm thử. Ngoài ra, giá đỡ máy tính bảng và giá đỡ đèn được thiết kế lại để xử lý nhiều biến thể hơn trong máy tính bảng và thanh đèn LED.

Để tải bản mô tả và bản vẽ cơ khí mới nhất, hãy xem RFoV box (rev1a)WFoV box (rev2.9).

Tăng số lượng tuỳ chọn cho máy tính bảng

Các máy tính bảng bao gồm Samsung Galaxy Tab A 10.1 và Chuwi Hi9 Air 10.1 được thêm vào danh sách máy tính bảng được đề xuất. Điều quan trọng là máy tính bảng không có phương thức điều chế độ rộng xung (PWM) để điều chỉnh độ sáng màn hình nhằm loại bỏ hiện tượng dải màu trong hình ảnh được chụp.

Để biết thông tin mới nhất về máy tính bảng được đề xuất, hãy xem phần Yêu cầu đối với máy tính bảng.

Giảm việc mở máy tính bảng

Để cho phép sử dụng Galaxy Tab A 10.1, chiều cao của khe mở máy tính bảng sẽ giảm một chút đối với cả hộp kiểm thử RFoV (rev1a) và WFoV (rev2). Các bản sửa đổi phản ánh những thay đổi này là bản sửa đổi 1a.1 và bản sửa đổi 2.9. Đối với các bản vẽ này, hãy xem hộp Tần số vô tuyến (bản 1a)hộp WFoV (bản 2.9).

Bộ điều khiển hợp nhất cảm biến mới

Phần cứng cho bộ điều khiển kết hợp cảm biến được thiết kế lại để cải thiện khả năng sản xuất. Bộ điều khiển mới dựa trên Arduino, với một mặt chắn (shield) của bảng định tuyến tuỳ chỉnh gắn trên Arduino. Hình 1 cho thấy mặt chắn và hình 2 cho thấy bản vẽ cơ khí của vỏ bọc. Bộ điều khiển mới được cấp nguồn bằng một nguồn 5 V cấp nguồn trực tiếp cho động cơ. Các thiết bị điện tử được kiểm soát hoàn toàn thông qua đầu nối USB. Nguồn điện riêng biệt cho phép tách biệt hoàn toàn giữa phần điện tử điều khiển và động cơ servo. Ngoài ra, một bộ điều khiển duy nhất có thể điều khiển tối đa 6 động cơ servo.

Hình ảnh nhìn từ trên cao của Arduino

Hình 1. Hình ảnh nhìn từ trên xuống của Arduino shield

Thiết kế vỏ

Hình 2. Thiết kế vỏ

Android 11 tương thích ngược với các tay điều khiển hiện có. Để gọi quy trình kiểm thử bằng trình điều khiển dựa trên Arduino, hãy sử dụng:

python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion

Cấp API đầu tiên

Trong Android 10, các bài kiểm thử ITS được chỉ định là MANDATEDNOT_YET_MANDATED. Để chạy dưới dạng thiết bị Android 10, tất cả các bài kiểm thử MANDATED đều phải đạt. Các kiểm thử NOT_YET_MANDATED có thể không thành công nhưng được lập bảng dưới dạng PASS để báo cáo trình xác minh CTS. Yêu cầu kiểm thử MANDATED cũng áp dụng cho các thiết bị đã nâng cấp. Yêu cầu này đối với các thiết bị đã nâng cấp phải vượt qua tất cả các bài kiểm thử MANDATED đã khiến các bài kiểm thử bị trì hoãn để trở thành các bài kiểm thử MANDATED vì các thiết bị cũ cũng phải vượt qua các bài kiểm thử.

Trong Android 11, các kiểm thử MANDATED được kiểm soát bằng cờ cấp độ API đầu tiên từ các thuộc tính điện thoại. Đối với các thiết bị nâng cấp lên Android 11, các bài kiểm thử sẽ chạy dưới dạng bài kiểm thử NOT_YET_MANDATED, nghĩa là một bài kiểm thử có thể không thành công nhưng được lập bảng dưới dạng PASS trong CtsVerifier.apk.

Ví dụ:

  • Trong Android 11, kiểm thử test_channel_saturationMANDATED đối với các thiết bị có cấp độ API đầu tiên lớn hơn 29.
  • Trong Android 10, kiểm thử test_channel_saturationMANDATED cho tất cả thiết bị.

Xác thực ánh sáng cảnh

Trong Android 11, ánh sáng cảnh được xác thực bằng cách phân tích độ sáng ở các góc của cảnh. Tất cả các cảnh thủ công đều được xác thực về ánh sáng, và các cảnh dựa trên máy tính bảng được xác thực cho máy ảnh RFoV trong thiết bị kiểm thử RFoV và máy ảnh WFoV trong thiết bị kiểm thử WFoV. Nếu mức độ ánh sáng không đủ, hệ thống sẽ báo lỗi và kiểm thử không thành công.

Thay đổi tên cảnh

Trong Android 10, cảnh 1 chiếm phần lớn các hoạt động kiểm thử và một tỷ lệ lớn tổng thời gian kiểm thử. Nếu có bất kỳ hoạt động kiểm thử nào trong cảnh 1 không thành công, thì bạn phải chạy lại toàn bộ cảnh. Theo thiết kế, việc chạy lại toàn bộ cảnh sẽ giúp giảm bớt thời gian kiểm thử biên. Trong Android 11, số lần chạy lại được giảm bằng cách chia cảnh 1 thành hai cảnh, scene1_1 và scene1_2.

Bảng sau đây cho thấy thời gian thử nghiệm được lập bảng cho máy ảnh sau của Pixel 4 đối với nhiều cảnh. Số lượng kiểm thử được chia để cân bằng thời gian kiểm thử, chứ không phải để cân bằng số lượng kiểm thử.

Ngoài ra, còn có tính năng dọn dẹp tên. Cảnh 2 được chia tách bằng các chữ cái còn cảnh 1 được chia tách bằng chữ số. Các phần mở rộng này có tên gọi khác nhau như sau:

  • Các cảnh có cùng biểu đồ, nhưng khác thử nghiệm: *_1,2,3
  • Cảnh có nhiều biểu đồ nhưng cùng một chương trình kiểm thử: *_a,b,c
Scene Số lượng xét nghiệm Thời gian chạy trên Pixel 4 (phút:giây)
0 11 1:12
1_1 22 5:12
1_2 13 5:20
2_a 5 3:22
2_b 1 0:24
2_c 1 0:24
3 6 2:04
4 2 2:46

Kiểm thử các thay đổi

Các bài kiểm thử đã được cập nhật để sử dụng cấp độ API đầu tiên

Trong Android 11, các chương trình kiểm thử trong bảng sau đây được cập nhật để sử dụng cờ cấp độ API đầu tiên. Tất cả các kiểm thử này đều sử dụng API cấp 29 đầu tiên, ngoại trừ kiểm thử test_tonemap_curve sử dụng API cấp 30 đầu tiên.

Scene Tên thử nghiệm Cấp độ API đầu tiên Mô tả
0 test_tonemap_curve 30 Đảm bảo quy trình có đầu ra màu sắc phù hợp với bản đồ 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).
1 test_ae_precapture_trigger 29 Kiểm thử máy trạng thái AE khi sử dụng trình kích hoạt trước khi chụp. Đảm bảo rằng khi AE bị tắt, trình kích hoạt trước khi chụp không có hiệu lực.
test_channel_saturation 29 Đảm bảo các kênh RGB bão hoà đến các giá trị tương tự để loại bỏ sắc thái trong các vùng bão hoà.
2_a/b/c test_num_faces 29 Tăng độ đa dạng về độ tuổi trong các cảnh mặt.

Kiểm thử với các thay đổi

Các bài kiểm thử trong bảng sau được cập nhật trong Android 11. Nội dung thay đổi được mô tả trong cột Mô tả các thay đổi.

Scene Tên thử nghiệm Cấp API đầu tiên Mô tả về nội dung thay đổi
1 test_burst_sameness_manual 30 Giảm dung sai xuống 2%.
4 test_aspect_ratio_and_crop 30 Thay đổi để chạy trên các thiết bị LIMITED.
test_multi_camera_alignment 30 Xem từng máy ảnh nếu tính năng quay nhiều máy ảnh không được hỗ trợ. Làm lại logic lựa chọn máy ảnh để tính đến hệ thống ba và bốn camera, đồng thời bỏ qua máy ảnh đơn sắc, chỉ có độ sâu và máy ảnh hồng ngoại.

Kiểm thử mới

Các bài kiểm thử trong bảng sau được bật trong Android 11. Các hoạt động kiểm thử được tóm tắt trong bảng và nội dung mô tả chi tiết được cung cấp trong những phần sau.

Scene Tên thử nghiệm Cấp độ API đầu tiên Mô tả
0 test_vibration_restrictions 30 Đảm bảo tính năng cảnh báo và rung không được kích hoạt trong khi chụp ảnh.
2_a test_jpeg_quality 30 Kiểm thử để đảm bảo rằng bảng lượng tử hoá làm giảm mức độ nén để tăng chất lượng JPEG.
2_ngày/2_e test_num_faces 30 Tăng tính đa dạng về độ tuổi của khuôn mặt.
2_e test_continuous_picture 30 Đảm bảo 3A được đặt trong android.control.afAvailableModes = CONTINUOUS_PICTURE.
thay đổi test_scene_change 31 android.control.afSceneChange đã xác nhận khi thay đổi cảnh.
6 test_zoom 30 Kiểm thử android.control.zoomRatioRange.

scene0/test_vibration_restriction

Quy trình kiểm thử này không yêu cầu cảnh cụ thể nhưng bạn phải đặt hoặc gắn thiết bị đang được kiểm thử (DUT) trên một bề mặt cứng. Điều này bao gồm cả việc gắn trên hộp kiểm thử ITS-in-a-box.

Câu nhận định

  • Không rung trong khi sử dụng máy ảnh

scene2_a/test_jpeg_quality

Phương thức

Các phần khác nhau của tệp JPEG được xác định bằng các điểm đánh dấu 2 byte. Để biết thêm thông tin, hãy xem phần JPEG.

Quy trình kiểm thử này trích xuất các ma trận lượng tử hoá từ ảnh chụp JPEG. Điểm đánh dấu cho ma trận lượng tử hoá trong ảnh chụp JPEG là trình tự [255, 219]. Khi tìm thấy điểm đánh dấu, hai mục danh sách tiếp theo sẽ là kích thước. Điểm đánh dấu kích thước DQT JPEG thường là [0, 132] = 256*0+132 = 132, tương ứng với kích thước của dữ liệu DQT trong ảnh chụp JPEG. Dữ liệu được nhúng có dạng: [255, 219, 0, 132, 0 (điểm đánh dấu độ sáng), ma trận 8x8 luma, 1 (điểm đánh dấu sắc độ), ma trận sắc độ 8x8].

0 cho điểm đánh dấu ma trận luma và 1 cho điểm đánh dấu sắc độ có vẻ nhất quán đối với một số thiết bị, bao gồm cả điện thoại tách hai ma trận thành các phần DQT riêng biệt trong tệp JPEG. Ma trận độ sáng có xu hướng có nhiều giá trị hơn so với ma trận sắc độ vì mắt người nhạy cảm hơn với độ sáng so với sắc độ và hình ảnh JPEG tính đến điều này.

Mẫu ma trận luma và chroma được trích xuất được hiển thị bên dưới cho các hệ số chất lượng là 85 và 25 đối với cảnh quay scene2_a của máy ảnh sau của Pixel 4 bằng thiết bị thử nghiệm ITS. Các giá trị ma trận tăng lên (biểu thị độ nén tăng lên) đáng kể đối với chế độ cài đặt chất lượng thấp hơn. Các ma trận này chỉ được in bằng tập lệnh nếu áp dụng cờ debug=True. Lưu ý sự khác biệt lớn hơn trong các mục nhập trong ma trận độ sáng so với ma trận sắc độ.

    luma matrix (quality = 85)    chroma matrix (quality = 85)

    [[ 5  3  4  4  4  3  5  4]    [[ 5  5  5  7  6  7 14  8]
     [ 4  4  5  5  5  6  7 12]     [ 8 14 30 20 17 20 30 30]
     [ 8  7  7  7  7 15 11 11]     [30 30 30 30 30 30 30 30]
     [ 9 12 17 15 18 18 17 15]     [30 30 30 30 30 30 30 30]
     [17 17 19 22 28 23 19 20]     [30 30 30 30 30 30 30 30]
     [26 21 17 17 24 33 24 26]     [30 30 30 30 30 30 30 30]
     [29 29 31 31 31 19 23 34]     [30 30 30 30 30 30 30 30]
     [36 34 30 36 28 30 31 30]]     [30 30 30 30 30 30 30 30]]

    luma matrix (quality = 25)            chroma matrix (quality = 25)

    [[ 32  22  24  28  24  20  32  28]    [[ 34  36  36  48  42  48  94  52]
     [ 26  28  36  34  32  38  48  80]     [ 52  94 198 132 112 132 198 198]
     [ 52  48  44  44  48  98  70  74]     [198 198 198 198 198 198 198 198]
     [ 58  80 116 102 122 120 114 102]     [198 198 198 198 198 198 198 198]
     [112 110 128 144 184 156 128 136]     [198 198 198 198 198 198 198 198]
     [174 138 110 112 160 218 162 174]     [198 198 198 198 198 198 198 198]
     [190 196 206 208 206 124 154 226]     [198 198 198 198 198 198 198 198]
     [242 224 200 240 184 202 206 198]]     [198 198 198 198 198 198 198 198]]

Hình 3 cho thấy các giá trị ma trận trung bình của camera sau Pixel 4 so với chất lượng JPEG. Khi chất lượng JPEG tăng lên, mức độ nén (trung bình của ma trận DQT độ sáng/độ sắc độ) sẽ giảm.

Giá trị trung bình của ma trận trên Pixel 4

Hình 3. Ma trận DQT độ sáng/sắc độ trung bình của máy ảnh sau trên Pixel 4 so với chất lượng JPEG

Câu nhận định

  • Đối với [25, 45, 65, 86], chất lượng +20 có mức trung bình của ma trận lượng tử hoá giảm 20%.
  • Trọng tải ma trận DQT là các số hình vuông.

Hình 4 cho thấy ví dụ về một chiếc điện thoại không vượt qua được kiểm thử. Xin lưu ý rằng đối với hình ảnh có chất lượng rất thấp (jpeg.quality < 50), mức độ nén trong ma trận lượng tử hoá sẽ không tăng lên.

Ví dụ về kiểm thử không thành công

Hình 4. Ví dụ về kiểm thử không thành công

scene2_d/e test_num_faces

Thêm hai cảnh phát hiện khuôn mặt mới để tăng tính đa dạng của khuôn mặt trong các bước kiểm tra thuật toán phát hiện khuôn mặt. Khi kiểm thử lặp lại một số máy ảnh, khuôn mặt khó nhất dự kiến sẽ là khuôn mặt ở ngoài cùng bên trái trong scene2_d. Cụ thể, mô hình này có cả mũ và râu, một điểm mới trong các cảnh mặt. Các cảnh mới được hiển thị trong hình 5 và 6.

scene2_d

Hình 5. scene2_d

cảnh_2

Hình 6. scene2_e

Câu nhận định

  • num_faces == 3

scene2_e/test_continuous_picture

Phương thức

Kiểm thử test_continuous_picture sử dụng scene2_e nhưng bạn có thể bật tính năng này với bất kỳ cảnh mặt nào. Trong thử nghiệm này, 50 khung hình có độ phân giải VGA được chụp bằng chế độ cài đặt yêu cầu chụp đầu tiên android.control.afMode = 4 (CONTINUOUS_PICTURE).

Hệ thống 3A được dự kiến sẽ ổn định khi kết thúc quá trình chụp 50 khung hình.

Xác nhận

  • 3A ở trạng thái hội tụ khi kết thúc quá trình chụp.

thay đổi cảnh/test_scene_change

Phương thức

Quy trình kiểm thử mới được bật để kiểm tra xem cờ android.control.afSceneChange có được xác nhận với thay đổi cảnh hay không. Tính năng thay đổi cảnh sử dụng máy tính bảng hiển thị cảnh khuôn mặt, sau đó bật và tắt máy tính bảng để tạo thay đổi cảnh. Cảnh này sử dụng lại scene2_e nhưng ở một cảnh riêng biệt do cần có chức năng điều khiển bằng máy tính bảng.

Ngoài ra, để kiểm thử thủ công, bạn có thể thực hiện thay đổi cảnh bằng cách vẫy tay trước máy ảnh.

Hình 7 cho thấy sơ đồ thời gian của kiểm thử. Thời gian từ khi tắt màn hình đến khi chụp được điều chỉnh dựa trên kết quả sự kiện từ lần quay trước.

Sơ đồ thời gian cho test_scene_change

Hình 7. Sơ đồ thời gian cho test_scene_change

Điều kiện thay đổi:

  • Nếu có thay đổi về cảnh và afSceneChange == 1, thì kiểm thử sẽ trả về PASS.
  • Nếu có thay đổi về cảnh và afSceneChange == 0, thì thay đổi về cảnh sẽ chuyển 5 khung hình sớm hơn để có thêm thời gian cho afSceneChange xác nhận.
  • Nếu không có thay đổi nào về cảnh và afSceneChange == 1, thì kiểm thử sẽ trả về FAIL.
  • Nếu không có thay đổi cảnh và afSceneChange == 0, thì thay đổi cảnh sẽ chuyển 30 khung hình trước đó để có thay đổi cảnh trong quá trình quay.

Câu nhận định

  • Bật/tắt màn hình (cảnh).
  • Cờ afSceneChange nằm trong [0, 1].
  • Nếu không có thay đổi nào về cảnh, 3A sẽ hội tụ (giống hệt về chức năng với test_continuous_picture).
  • Nếu là afSceneChange == 1, độ sáng phải thay đổi trong cảnh.
  • PASS trong vòng 6 lần thử với thời gian thay đổi dựa trên kết quả trước đó.

scene6/test_zoom

Phương thức

Cần có một cảnh mới để kiểm thử android.control.zoomRatioRange vì các cảnh đã được thiết lập không có tính năng đủ nhỏ để được phóng to (cảnh [1, 2, 4]) hoặc cảnh đó có nhiều đối tượng không dễ xác định, làm phức tạp việc trích xuất tính năng (cảnh 3).

Hình 8 thể hiện cảnh mới với một mảng vòng tròn thông thường. Mảng các vòng tròn làm giảm các yêu cầu về việc căn giữa DUT/biểu đồ và cho phép vòng tròn luôn ở gần trung tâm của hình ảnh đã chụp. Trong cảnh này, một mảng gồm 9x5 vòng tròn có đường viền màu đen bao phủ toàn bộ máy tính bảng. Một vòng tròn được thay thế bằng một hình vuông ở góc trên bên phải để cho biết hướng. Kích thước vòng tròn có một tính năng với diện tích khoảng 7500 pixel (radius=50pixels) cho cảm biến 4000x3000 được chụp với trường nhìn (FoV) khoảng 80 độ.

cảnh test_zoom

Hình 8. Cảnh test_zoom

Pixel 4 tìm thấy vòng tròn

Hình 9. Pixel 4 cam[0] zoom = [1, 3.33, 5.67, 8] hình ảnh có vòng tròn được tìm thấy

Hình 9 cho thấy hình ảnh được chụp bằng camera sau của Pixel 4 khi độ phóng đại tăng từ 1 đến 8 lần theo 4 bước. Bộ ảnh này được chụp mà không cần chú ý đến việc căn giữa, ngoại trừ việc sử dụng khẩu độ kiểm thử điện thoại với hai lỗ để cho phép kiểm thử cả camera trước và sau. Bạn sẽ thấy một độ lệch từ tâm và được quan sát khi bảng biểu đồ hơi lệch về bên trái tâm. Ngoài ra, biểu đồ này có vẻ đủ để kiểm thử với tỷ lệ thu phóng cao hơn 8 lần.

Tìm vòng tròn

Quy trình kiểm thử này bao gồm phương thức find_circle() sử dụng findContours. Phương thức này sẽ tìm tất cả các đường đồng mức và thu hẹp tìm kiếm đường đồng mức xuống các vòng tròn mong muốn bằng cách kiểm thử như sau:

  • Đường viền phải có diện tích lớn hơn 10 pixel.
  • Đường viền phải có NUM_PTS >= 15.
  • Đường viền phải có tâm màu đen.
  • Đường viền phải giống với hình tròn, tức là diện tích của đường bao gần với vùng pi*r2 của đường bao.

Phạm vi kiểm thử

android.control.zoomRatioRange được chia thành 10 bước.

  • [1, 7] kiểm thử [1, 1,67, 2,33, 3, 3,67, 4,33, 5, 5,67, 6,33, 7]

Thao tác thu phóng sẽ bị tạm dừng nếu vòng tròn tìm thấy chạm vào ranh giới của hình ảnh. Có một bước kiểm tra để đảm bảo đạt được mức thu phóng đủ trong quá trình kiểm thử (10x).

Câu nhận định

  • Có ít nhất một vòng tròn ở mỗi chế độ cài đặt thu phóng.
  • Kiểm thử 10 lần hoặc tối đa là android.control.zoomRatioRange.
  • Bán kính vòng tròn theo tỷ lệ thu phóng (RTOL 10% so với dự kiến).
  • Điểm bù trung tâm vòng tròn so với tỷ lệ trung tâm khi thu phóng (RTOL 10% so với dự kiến).
  • Đã đạt đến mức thu phóng đủ (2x).

Tăng cường kiểm thử máy ảnh LIMITED

Trong Android 11, các bài kiểm thử trong bảng sau đây kiểm thử máy ảnh LIMITED. Ngoài các bài kiểm thử mới, bài kiểm thử scene4/test_aspect_ratio_and_crop được cập nhật để cho phép kiểm thử các thiết bị LIMITED có cấp độ API đầu tiên là 30 trở lên.

Scene Tên thử nghiệm
0 test_vibration_restrictions
2_a test_jpeg_quality
2_d/2_e test_num_faces
4 test_aspect_ratio_and_crop
6 test_zoom

Hình 10 cho thấy vòng giải mã bí mật của Android 11 ITS. Vòng giải mã bí mật cho biết chế độ cài đặt kiểm thử từng kiểm thử được kiểm soát. Lưới được mã hoá màu để dễ xem. Các mục kiểm soát chính là:

  • MANUAL_SENSOR
  • READ_3A *cần MANUAL SENSOR
  • COMPUTE_TARGET_EXPOSURES *yêu cầu MANUAL SENSOR
  • PER_FRAME_CONTROL
  • RAW
  • SENSORS *REALTIME
  • MULTI_CAMERA

MANUAL SENSOR, READ_3A, COMPUTE_TARGET_EXPOSURESPER_FRAME_CONTROL kiểm thử phần lớn các kiểm thử. Ngoài ra, các bài kiểm thử được bật cho thiết bị LIMITED sẽ được đánh dấu bằng màu xanh lục nhạt.

vòng đeo tay giải mã bí mật

Hình 10. Vòng đeo giải mã bí mật của Android 11