Catatan rilis Rangkaian Uji Gambar Kamera Android 11

Halaman ini merangkum perubahan pada Camera Image Test Suite (ITS) di Android 11. Perubahan tersebut termasuk dalam kategori berikut:

Perubahan perangkat keras

Android 11 memperkenalkan beberapa perubahan perangkat keras untuk mengurangi biaya dan meningkatkan ketersediaan. Perubahan ini termasuk dalam kategori berikut:

Pabrikan tambahan

Rahi Systems memenuhi syarat untuk memproduksi penutup pengujian ITS selain pemasok kami yang sudah ada, desain MYWAY. Informasi perusahaan untuk vendor yang memenuhi syarat adalah sebagai berikut:

Metode manufaktur terpadu

Penutup uji bidang pandang reguler (RFoV) ITS-in-a-box rev1 didesain ulang untuk menggunakan metode manufaktur yang digunakan oleh kotak bidang pandang lebar (WFoV) dan penutup uji kotak fusi sensor . Fungsionalitasnya identik, dan untuk kesederhanaan, desainnya disebut rev1a . Desain ulang ini memungkinkan produsen untuk menyimpan satu jenis plastik untuk memproduksi semua wadah pengujian. Selain itu, dudukan tablet dan dudukan lampu didesain ulang untuk menangani variasi yang lebih besar pada tablet dan bilah lampu LED.

Untuk mengunduh deskripsi dan gambar mekanik terbaru, lihat kotak RFoV (rev1a) dan kotak WFoV (rev2.9) .

Peningkatan opsi tablet

Tablet termasuk Samsung Galaxy Tab A 10.1 dan Chuwi Hi9 Air 10.1 ditambahkan ke daftar tablet yang direkomendasikan. Penting agar tablet tidak memiliki modulasi lebar pulsa (PWM) untuk menyesuaikan kecerahan layar guna menghilangkan garis melintang pada gambar yang diambil.

Untuk informasi terbaru mengenai tablet yang direkomendasikan, lihat Persyaratan tablet .

Pembukaan tablet berkurang

Untuk memungkinkan penggunaan Galaxy Tab A 10.1, tinggi bukaan tablet dikurangi sedikit untuk wadah pengujian RFoV (rev1a) dan WFoV (rev2). Revisi yang mencerminkan perubahan tersebut adalah rev1a.1 dan rev2.9. Untuk gambar ini, lihat kotak RFoV (rev1a) dan kotak WFoV (rev2.9) .

Pengontrol fusi sensor baru

Perangkat keras untuk pengontrol fusi sensor didesain ulang untuk meningkatkan kemampuan manufaktur. Pengontrol baru ini berbasis Arduino , dengan pelindung papan perutean khusus yang dipasang di atas Arduino. Gambar 1 menunjukkan pelindung dan gambar 2 menunjukkan gambar mekanis selungkup. Pengontrol baru ini ditenagai oleh pasokan 5 V tunggal yang memberi daya pada motor secara langsung. Elektronik dikontrol sepenuhnya melalui konektor USB. Catu daya terpisah memungkinkan isolasi lengkap antara elektronik kontrol dan motor servo. Selain itu, satu pengontrol dapat mengontrol hingga enam motor servo.

Tampilan atas Arduino

Gambar 1. Tampak atas perisai Arduino

Desain kandang

Gambar 2. Desain penutup

Android 11 kompatibel dengan pengontrol yang ada. Untuk menjalankan pengujian dengan pengontrol berbasis Arduino, gunakan:

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

tingkat API pertama

Di Android 10, pengujian ITS ditetapkan sebagai MANDATED dan NOT_YET_MANDATED . Untuk diluncurkan sebagai perangkat Android 10, semua pengujian MANDATED harus lulus. Tes NOT_YET_MANDATED bisa gagal tetapi ditabulasikan sebagai PASS untuk pelaporan verifikator CTS. Persyaratan pengujian MANDATED juga berlaku untuk perangkat yang ditingkatkan. Persyaratan bagi perangkat yang ditingkatkan untuk lulus semua pengujian MANDATED menyebabkan pengujian tertunda menjadi pengujian MANDATED karena perangkat yang lebih lama juga harus lulus pengujian tersebut.

Di Android 11, pengujian MANDATED dibatasi oleh tanda API level pertama dari properti ponsel. Untuk perangkat yang diupgrade ke Android 11, pengujian dijalankan sebagai pengujian NOT_YET_MANDATED , artinya pengujian dapat gagal tetapi ditabulasikan sebagai PASS di CtsVerifier.apk .

Misalnya:

  • Di Android 11, pengujian test_channel_saturation MANDATED untuk perangkat dengan API level pertama yang lebih besar dari 29.
  • Di Android 10, pengujian test_channel_saturation MANDATED untuk semua perangkat.

Memvalidasi pencahayaan pemandangan

Di Android 11, pencahayaan pemandangan divalidasi dengan menganalisis kecerahan di sudut pemandangan. Semua adegan manual divalidasi untuk pencahayaan, dan adegan berbasis tablet divalidasi untuk kamera RFoV di alat uji RFoV dan kamera WFoV di alat uji WFoV. Jika tingkat pencahayaan tidak memadai, kesalahan dilaporkan dan pengujian gagal.

Perubahan nama adegan

Di Android 10, adegan 1 menyumbang sebagian besar pengujian dan sebagian besar total waktu pengujian. Jika tes apa pun dalam adegan 1 gagal, seluruh adegan harus dijalankan ulang. Secara desain, memutar ulang seluruh adegan akan mengurangi kelulusan tes marjinal. Di Android 11, waktu pemutaran ulang dikurangi dengan membagi adegan 1 menjadi dua adegan, adegan1_1 dan adegan1_2.

Tabel berikut menunjukkan tabulasi waktu pengujian untuk kamera belakang Pixel 4 untuk berbagai pemandangan. Jumlah tes dibagi untuk menyamakan waktu tes, bukan untuk menyamakan jumlah tes.

Selain itu, ada pembersihan nama. Adegan 2 dipisahkan dengan huruf dan adegan 1 dipisahkan dengan angka. Nomenklatur untuk ekstensi yang berbeda adalah:

  • Adegan dengan bagan yang sama, tetapi pengujiannya berbeda: *_1,2,3
  • Adegan dengan grafik berbeda, tetapi pengujiannya sama: *_a,b,c
Pemandangan Jumlah tes Waktu pengoperasian Pixel 4 (menit:dtk)
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

Uji perubahan

Pengujian diperbarui untuk menggunakan API level pertama

Di Android 11, pengujian dalam tabel berikut diperbarui untuk menggunakan tanda API level pertama. Semua pengujian ini menggunakan API level pertama 29 kecuali pengujian test_tonemap_curve , yang menggunakan API level pertama 30.

Pemandangan Nama tes tingkat API pertama Keterangan
0 test_tonemap_curve 30 Pastikan saluran memiliki keluaran warna yang tepat dengan peta nada linier dan masukan gambar ideal (bergantung pada test_test_patterns ).
1 test_ae_precapture_trigger 29 Uji mesin status AE saat menggunakan pemicu pra-pengambilan. Pastikan pemicu pra-pengambilan yang dinonaktifkan dengan AE tidak berpengaruh.
test_channel_saturation 29 Pastikan saluran RGB jenuh dengan nilai yang sama untuk menghilangkan warna di daerah jenuh.
2_a/b/c test_num_faces 29 Tingkatkan keragaman usia dalam adegan wajah.

Tes dengan perubahan

Pengujian pada tabel berikut diperbarui di Android 11. Perubahannya dijelaskan di kolom Deskripsi perubahan .

Pemandangan Nama tes tingkat API pertama Deskripsi perubahan
1 test_burst_sameness_manual 30 Kurangi toleransi menjadi 2%.
4 test_aspect_ratio_and_crop 30 Ubah untuk dijalankan pada perangkat TERBATAS.
test_multi_camera_alignment 30 Telusuri kamera satu per satu jika pengambilan multi-kamera tidak didukung. Susun ulang logika pemilihan kamera untuk memperhitungkan sistem tiga dan empat kamera, dan lewati kamera mono, depth-only, dan IR.

Tes baru

Pengujian pada tabel berikut diaktifkan di Android 11. Pengujian dirangkum dalam tabel dan deskripsi mendetail disediakan di bagian berikut.

Pemandangan Nama tes tingkat API pertama Keterangan
0 test_vibration_restrictions 30 Pastikan peringatan dan getaran tidak diaktifkan selama pengambilan gambar.
2_a test_jpeg_quality 30 Uji apakah tabel kuantisasi menurunkan kompresi untuk meningkatkan kualitas JPEG.
2_h/2_e test_num_faces 30 Meningkatkan keragaman usia wajah.
2_e test_continuous_picture 30 Pastikan 3A menetap di android.control.afAvailableModes = CONTINUOUS_PICTURE.
mengubah test_scene_change 31 android.control.afSceneChange ditegaskan setelah perubahan adegan.
6 test_zoom 30 Uji android.control.zoomRatioRange .

adegan0/test_vibration_restriction

Pengujian ini tidak memerlukan pemandangan tertentu, namun perangkat yang diuji (DUT) harus diletakkan atau dipasang pada permukaan yang keras. Ini termasuk pemasangan pada penutup uji ITS-in-a-box.

Menegaskan

  • Tidak ada getaran selama penggunaan kamera

adegan2_a/test_jpeg_quality

metode

Bagian berbeda dari file JPEG ditentukan oleh penanda 2 byte. Untuk informasi lebih lanjut, lihat JPEG .

Tes ini mengekstrak matriks kuantisasi dari tangkapan JPEG. Penanda matriks kuantisasi dalam tangkapan JPEG adalah urutannya, [255, 219]. Ketika penanda ditemukan, dua item daftar berikutnya adalah ukurannya. Penanda ukuran JPEG DQT biasanya [0, 132] = 256*0+132 = 132, yang menjelaskan ukuran data DQT dalam pengambilan JPEG. Data yang disematkan berbentuk: [255, 219, 0, 132, 0 (luma marker), matriks luma 8x8, 1 (chroma marker), matriks kroma 8x8].

Angka 0 untuk penanda matriks luma dan 1 untuk penanda kroma tampak konsisten untuk sejumlah perangkat termasuk telepon yang memisahkan kedua matriks menjadi bagian DQT terpisah dalam file JPEG. Matriks luma cenderung memiliki variasi nilai yang lebih tinggi dibandingkan matriks kroma karena mata manusia lebih sensitif terhadap luma dibandingkan gambar kroma dan JPEG yang memperhitungkan hal ini.

Sampel matriks luma dan kroma yang diekstraksi ditampilkan di bawah untuk faktor kualitas 85 dan 25 untuk kamera belakang Pixel 4 yang menangkap adegan2_a dengan alat pengujian ITS. Nilai matriks meningkat (menunjukkan peningkatan kompresi) secara substansial untuk pengaturan kualitas yang lebih rendah. Matriks ini hanya dicetak dengan skrip jika flag debug=True diterapkan. Perhatikan variasi yang lebih besar dalam entri dalam matriks luma dibandingkan dengan matriks kroma.

    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]]

Gambar 3 menunjukkan nilai matriks rata-rata untuk kamera belakang Pixel 4 versus kualitas JPEG. Ketika kualitas JPEG ditingkatkan, tingkat kompresi (rata-rata matriks luma/chroma DQT) menurun.

Nilai matriks rata-rata piksel 4

Gambar 3. Rata-rata matriks luma/chroma DQT kamera belakang Pixel 4 versus kualitas JPEG

Menegaskan

  • Untuk [25, 45, 65, 86], kualitas +20 memiliki rata-rata matriks kuantisasi reduksi 20%.
  • Muatan matriks DQT adalah bilangan persegi.

Gambar 4 menunjukkan contoh telepon yang gagal dalam pengujian. Perhatikan bahwa untuk gambar berkualitas sangat rendah ( jpeg.quality < 50 ), tidak ada peningkatan kompresi dalam matriks kuantisasi.

Contoh tes yang gagal

Gambar 4. Contoh pengujian yang gagal

adegan2_d/e test_num_faces

Dua adegan deteksi wajah baru ditambahkan untuk meningkatkan keragaman wajah pada pemeriksaan algoritma deteksi wajah. Dengan pengujian berulang terhadap sejumlah kamera, wajah yang paling menantang diharapkan menjadi wajah paling kiri dalam adegan2_d. Secara khusus, terdapat topi dan janggut pada modelnya, sesuatu yang baru dalam adegan wajah. Adegan baru ditunjukkan pada gambar 5 dan 6.

adegan2_d

Gambar 5. adegan2_d

adegan2_e

Gambar 6. adegan2_e

Menegaskan

  • num_faces == 3

adegan2_e/test_continuous_picture

metode

Tes test_continuous_picture menggunakan scene2_e tetapi dapat diaktifkan dengan adegan wajah mana pun. Dalam pengujian ini, 50 frame resolusi VGA ditangkap dengan permintaan pengambilan terlebih dahulu dengan pengaturan android.control.afMode = 4 (CONTINUOUS_PICTURE) .

Sistem 3A diperkirakan telah selesai pada akhir pengambilan 50 frame.

Menegaskan

  • 3A berada dalam keadaan konvergen pada akhir penangkapan.

adegan_perubahan/test_adegan_perubahan

metode

Pengujian baru diaktifkan untuk menguji apakah flag android.control.afSceneChange diterapkan dengan perubahan adegan. Perubahan pemandangan memanfaatkan tablet yang menampilkan pemandangan wajah lalu menyalakan dan mematikan tablet untuk membuat perubahan pemandangan. Adegan tersebut menggunakan kembali adegan2_e tetapi berada dalam adegan terpisah karena diperlukan kontrol tablet.

Selain itu, untuk pengujian manual, perubahan pemandangan dapat dilakukan dengan melambaikan tangan Anda di depan kamera.

Gambar 7 menunjukkan diagram waktu pengujian. Waktu antara mematikan layar dan pengambilan disesuaikan berdasarkan hasil peristiwa dari pengambilan sebelumnya.

Diagram waktu untuk test_scene_change

Gambar 7. Diagram waktu untuk test_scene_change

Kondisi peralihan:

  • Jika ada perubahan adegan dan afSceneChange == 1 , pengujian akan mengembalikan PASS .
  • Jika ada perubahan adegan dan afSceneChange == 0 , perubahan adegan bergeser 5 frame lebih awal untuk memberikan lebih banyak waktu bagi afSceneChange untuk menegaskan.
  • Jika tidak ada perubahan adegan dan afSceneChange == 1 , pengujian akan mengembalikan FAIL .
  • Jika tidak ada perubahan adegan dan afSceneChange == 0 , perubahan adegan bergeser 30 frame sebelumnya untuk mendapatkan perubahan adegan dalam pengambilan.

Menegaskan

  • Layar (adegan) mati.
  • Bendera afSceneChange ada di [0, 1].
  • Jika tidak ada perubahan adegan, 3A menyatu (secara fungsional identik dengan test_continuous_picture ).
  • Jika afSceneChange == 1 , kecerahan dalam adegan harus berubah.
  • PASS dalam enam kali percobaan dengan waktu diubah berdasarkan hasil sebelumnya.

adegan6/test_zoom

metode

Adegan baru diperlukan untuk menguji android.control.zoomRatioRange karena adegan yang ada tidak memiliki fitur yang cukup kecil untuk diperbesar (adegan [1, 2, 4]) atau adegan tersebut memiliki banyak objek yang tidak mudah diidentifikasi , mempersulit ekstraksi fitur (adegan 3).

Gambar 8 menunjukkan adegan baru dengan susunan lingkaran yang teratur. Susunan lingkaran melonggarkan persyaratan pada pemusatan DUT/grafik dan memungkinkan lingkaran selalu berada di dekat pusat gambar yang diambil. Dalam adegan ini susunan lingkaran berukuran 9x5 dengan tepian hitam menutupi seluruh tablet. Satu lingkaran diganti dengan persegi di pojok kanan atas untuk menunjukkan orientasi. Ukuran lingkaran memiliki fitur dengan luas sekitar 7500 piksel ( radius=50pixels ) untuk sensor 4000x3000 yang ditangkap dengan bidang pandang (FoV) sekitar 80 derajat.

adegan uji_zoom

Gambar 8. adegan test_zoom

Pixel 4 menemukan lingkaran

Gambar 9. Zoom kamera Pixel 4[0] = gambar [1, 3.33, 5.67, 8] dengan lingkaran yang ditemukan

Gambar 9 menunjukkan gambar yang diambil untuk kamera belakang Pixel 4 saat zoom ditingkatkan dari 1 menjadi 8x dengan empat langkah. Kumpulan gambar ini diambil tanpa kehati-hatian khusus saat memusatkannya kecuali menggunakan bukaan pengujian ponsel dengan dua bukaan untuk memungkinkan pengujian kamera depan dan belakang. Diperkirakan ada offset dari tengah, dan diamati saat tablet grafik sedikit ke kiri dari tengah. Selain itu, bagan tersebut tampak cukup untuk diuji dengan rasio zoom lebih tinggi dari 8x.

Menemukan lingkaran

Pengujian ini mencakup metode find_circle() menggunakan findContours yang menemukan semua kontur dan mempersempit pencarian kontur hingga ke lingkaran yang diinginkan dengan menguji hal berikut:

  • Kontur harus memiliki luas lebih dari 10 piksel.
  • Kontur harus memiliki NUM_PTS >= 15 .
  • Kontur harus memiliki bagian tengah berwarna hitam.
  • Kontur harus menyerupai lingkaran, artinya luasnya dekat dengan luas pi*r2 kontur.

Rentang tes

android.control.zoomRatioRange dibagi menjadi 10 langkah.

  • [1, 7] tes [1, 1.67, 2.33, 3, 3.67, 4.33, 5, 5.67, 6.33, 7]

Pembesaran dihentikan jika lingkaran yang ditemukan menyentuh batas gambar. Ada pemeriksaan untuk memastikan tingkat zoom yang memadai tercapai dalam pengujian (10x).

Menegaskan

  • Setidaknya satu lingkaran ditemukan pada setiap pengaturan zoom.
  • android.control.zoomRatioRange diuji 10x atau maksimal.
  • Skala radius lingkaran dengan zoom (RTOL 10% dari yang diharapkan).
  • Offset tengah lingkaran dari skala tengah dengan zoom (RTOL 10% dari yang diharapkan).
  • Tingkat zoom yang memadai tercapai (2x).

Peningkatan pengujian kamera TERBATAS

Di Android 11, pengujian pada tabel berikut menguji kamera LIMITED . Selain pengujian baru , pengujian scene4/test_aspect_ratio_and_crop diperbarui untuk memungkinkan pengujian perangkat LIMITED dengan level API pertama 30 atau lebih tinggi.

Pemandangan Nama tes
0 test_vibration_restrictions
2_a test_jpeg_quality
2_h/2_e test_num_faces
4 test_aspect_ratio_and_crop
6 test_zoom

Gambar 10 menunjukkan cincin dekoder rahasia Android 11 ITS. Cincin dekoder rahasia menunjukkan pengaturan pengujian yang digunakan untuk masing-masing pengujian. Gerbangnya diberi kode warna untuk kemudahan tampilan. Item gerbang utama adalah:

  • MANUAL_SENSOR
  • READ_3A *membutuhkan MANUAL SENSOR
  • COMPUTE_TARGET_EXPOSURES *membutuhkan MANUAL SENSOR
  • PER_FRAME_CONTROL
  • RAW
  • SENSORS * REALTIME
  • MULTI_CAMERA

MANUAL SENSOR , READ_3A , COMPUTE_TARGET_EXPOSURES , dan PER_FRAME_CONTROL merupakan gerbang sebagian besar pengujian. Selain itu, pengujian yang diaktifkan untuk perangkat LIMITED disorot dengan warna hijau muda.

cincin dekoder rahasia

Gambar 10. Cincin dekoder rahasia Android 11