Halaman ini meringkas perubahan pada Camera Image Test Suite (ITS) di Android 11. Perubahan tersebut termasuk dalam kategori berikut:
- Perubahan hardware
- Pengujian MANDATED level API pertama
- Pencahayaan pengujian divalidasi
- Perubahan nama scene
- Menguji perubahan dan penambahan
- Meningkatkan pengujian kamera LIMITED
Perubahan hardware
Android 11 memperkenalkan beberapa perubahan hardware untuk mengurangi biaya dan meningkatkan ketersediaan. Perubahan ini termasuk dalam kategori berikut:
- Produsen tambahan
- Metode manufaktur terpadu
- Penambahan opsi tablet
- Mengurangi pembukaan tablet
- Pengontrol penggabungan sensor baru
Produsen tambahan
Rahi Systems memenuhi syarat untuk memproduksi enclosure pengujian ITS selain pemasok kami yang sudah ada, MYWAY design. Informasi perusahaan untuk vendor yang memenuhi syarat adalah sebagai berikut:
Rahi Systems Inc.
48303 Fremont Blvd, Fremont CA 94538, USA
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802MYWAY design
4F., No. 163, Fu-Ying Road, XinZhuang District, New Taipei City, Taiwan
twmyway.com
sales@myway.tw
+886-2-29089060
Metode manufaktur terpadu
Penutup pengujian ITS-in-a-box bidang pandang reguler (RFoV) rev1 didesain ulang untuk menggunakan metode manufaktur yang digunakan oleh penutup pengujian kotak bidang pandang lebar (WFoV) dan kotak penggabungan sensor. Fungsinya identik, dan untuk memudahkan, desain disebut sebagai rev1a. Desain ulang memungkinkan produsen menyimpan satu jenis plastik untuk memproduksi semua penutup pengujian. Selain itu, dudukan tablet dan penahan lampu didesain ulang untuk menangani variasi yang lebih besar pada tablet dan panel lampu LED.
Untuk mendownload deskripsi dan gambar mekanis terbaru, lihat kotak RFoV (rev1a) dan kotak WFoV (rev2.9).
Lebih banyak opsi tablet
Tablet termasuk Samsung Galaxy Tab A 10.1 dan Chuwi Hi9 Air 10.1 ditambahkan ke daftar tablet yang direkomendasikan. Tablet harus tidak memiliki modulasi lebar denyut (PWM) untuk menyesuaikan kecerahan layar guna menghilangkan garis berwarna pada gambar yang diambil.
Untuk informasi terbaru tentang tablet yang direkomendasikan, lihat Persyaratan tablet.
Mengurangi pembukaan tablet
Untuk memungkinkan penggunaan Galaxy Tab A 10.1, tinggi pembukaan tablet sedikit dikurangi untuk penutup pengujian RFoV (rev1a) dan WFoV (rev2). Revisi yang mencerminkan perubahan ini adalah rev1a.1 dan rev2.9. Untuk gambar ini, lihat Kotak RFoV (rev1a) dan Kotak WFoV (rev2.9).
Pengontrol penggabungan sensor baru
Hardware untuk pengontrol penggabungan sensor didesain ulang untuk meningkatkan kemampuan manufaktur. Pengontrol baru ini berbasis Arduino, dengan shield papan pemilihan rute kustom yang dipasang di atas Arduino. Gambar 1 menunjukkan pelindung dan gambar 2 menunjukkan gambar mekanis untuk penutup. Pengontrol baru diberi daya oleh satu catu daya 5 V yang langsung memberi daya pada motor. Elektronik dikontrol sepenuhnya melalui konektor USB. Catu daya terpisah memungkinkan isolasi lengkap antara elektronik kontrol dan motor servo. Selain itu, satu pengontrol dapat mengontrol maksimal enam motor servo.
Gambar 1. Tampilan atas shield Arduino
Gambar 2. Desain pembatas
Android 11 kompatibel dengan pengontrol yang ada. Untuk memanggil pengujian dengan pengontrol berbasis Arduino, gunakan:
python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion
API level pertama
Di Android 10, pengujian ITS ditetapkan sebagai MANDATED
dan NOT_YET_MANDATED
. Untuk diluncurkan sebagai perangkat
Android 10, semua pengujian MANDATED
harus lulus. Pengujian NOT_YET_MANDATED
dapat gagal,
tetapi ditabulasi sebagai PASS
untuk pelaporan pemverifikasi CTS. Persyaratan
pengujian MANDATED
juga berlaku untuk perangkat yang diupgrade. Persyaratan untuk perangkat
yang diupgrade agar lulus semua pengujian MANDATED
ini menyebabkan pengujian tertunda menjadi
pengujian MANDATED
karena perangkat yang lebih lama juga harus lulus pengujian.
Di Android 11, pengujian MANDATED
dibatasi oleh
flag level API pertama dari properti ponsel. Untuk perangkat yang diupgrade ke
Android 11, pengujian akan dijalankan sebagai pengujian NOT_YET_MANDATED
,
yang berarti pengujian dapat gagal, tetapi ditabulasikan sebagai PASS
di
CtsVerifier.apk
.
Contoh:
- Di Android 11, pengujian
test_channel_saturation
adalahMANDATED
untuk perangkat dengan level API pertama yang lebih besar dari 29. - Di Android 10, pengujian
test_channel_saturation
adalahMANDATED
untuk semua perangkat.
Memvalidasi pencahayaan scene
Di Android 11, pencahayaan scene divalidasi dengan menganalisis kecerahan di sudut-sudut scene. Semua scene manual divalidasi untuk pencahayaan, dan scene berbasis tablet divalidasi untuk kamera RFoV di rig pengujian RFoV dan kamera WFoV di rig pengujian WFoV. Jika tingkat pencahayaan tidak memadai, error akan dilaporkan dan pengujian akan gagal.
Perubahan nama adegan
Di Android 10, scene 1 mencakup sebagian besar pengujian dan persentase besar dari total waktu pengujian. Jika ada pengujian dalam scene 1 yang gagal, seluruh scene harus dijalankan ulang. Secara desain, menjalankan ulang seluruh tampilan akan mengurangi kelancaran pengujian marginal. Di Android 11, waktu pemutaran ulang berkurang dengan membagi scene 1 menjadi dua scene, scene1_1 dan scene1_2.
Tabel berikut menunjukkan waktu pengujian yang ditabulasi untuk kamera belakang Pixel 4 untuk berbagai scene. Jumlah pengujian dibagi untuk menyamakan waktu pengujian, bukan untuk menyamakan jumlah pengujian.
Selain itu, ada pembersihan nama. Scene 2 dibagi dengan huruf dan scene 1 dipisahkan dengan angka. Nomenklatur untuk berbagai ekstensi adalah:
- Scene dengan diagram yang sama, tetapi pengujian yang berbeda:
*_1,2,3
- Scene dengan diagram yang berbeda, tetapi pengujian yang sama:
*_a,b,c
Scene | Jumlah tes | Waktu proses Pixel 4 (mnt: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 |
Menguji perubahan
Pengujian diperbarui untuk menggunakan level API pertama
Di Android 11, pengujian dalam tabel berikut
diupdate untuk menggunakan flag API level pertama. Semua pengujian ini menggunakan
API level pertama 29, kecuali pengujian test_tonemap_curve
, yang menggunakan
API level pertama 30.
Scene | Nama pengujian | API level pertama | Deskripsi |
---|---|---|---|
0 | test_tonemap_curve |
30 | Pastikan pipeline memiliki output warna yang tepat dengan tonemap linear dan input gambar
yang ideal (bergantung pada test_test_patterns ). |
1 | test_ae_precapture_trigger |
29 | Menguji mesin status AE saat menggunakan pemicu pra-perekaman. Pastikan dengan AE dinonaktifkan, pemicu pra-perekaman tidak akan berpengaruh. |
test_channel_saturation |
29 | Pastikan saluran RGB memiliki saturasi ke nilai yang serupa untuk menghilangkan tint di area saturasi. | |
2_a/b/c | test_num_faces |
29 | Meningkatkan keragaman usia dalam tampilan wajah. |
Pengujian dengan perubahan
Pengujian dalam tabel berikut diperbarui di Android 11. Perubahan dijelaskan di kolom Deskripsi perubahan.
Scene | Nama pengujian | API level pertama | Deskripsi perubahan |
---|---|---|---|
1 | test_burst_sameness_manual |
30 | Kurangi toleransi menjadi 2%. |
4 | test_aspect_ratio_and_crop |
30 | Ubah agar dapat berjalan di perangkat LIMITED. |
test_multi_camera_alignment |
30 | Lakukan langkah demi langkah pada kamera satu per satu jika perekaman multi-kamera tidak didukung. Buat ulang logika pemilihan kamera untuk memperhitungkan sistem tiga dan empat kamera, dan lewati kamera mono, khusus kedalaman, dan IR. |
Pengujian baru
Pengujian dalam tabel berikut diaktifkan di Android 11. Pengujian dirangkum dalam tabel dan deskripsi mendetail diberikan di bagian berikut.
Scene | Nama pengujian | API level pertama | Deskripsi |
---|---|---|---|
0 | test_vibration_restrictions |
30 | Pastikan notifikasi dan getaran tidak diaktifkan selama pengambilan gambar. |
2_a | test_jpeg_quality |
30 | Uji apakah tabel kuantisasi mengurangi 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. |
ubah | test_scene_change |
31 | android.control.afSceneChange ditegaskan saat perubahan scene. |
6 | test_zoom |
30 | Uji android.control.zoomRatioRange . |
scene0/test_vibration_restriction
Pengujian ini tidak memerlukan scene tertentu, tetapi perangkat yang sedang diuji (DUT) harus diletakkan atau dipasang di permukaan yang keras. Hal ini mencakup pemasangan pada penutup pengujian ITS-in-a-box.
Menyatakan
- Tidak ada getaran selama penggunaan kamera
scene2_a/test_jpeg_quality
Metode
Berbagai bagian file JPEG ditentukan oleh penanda 2 byte. Untuk mengetahui informasi selengkapnya, lihat JPEG.
Pengujian ini mengekstrak matriks kuantisasi dari pengambilan JPEG. Penanda untuk matriks kuantisasi dalam pengambilan JPEG adalah urutan, [255, 219]. Saat penanda ditemukan, dua item daftar berikutnya adalah ukuran. Penanda ukuran JPEG DQT biasanya [0, 132] = 256*0+132 = 132, yang memperhitungkan ukuran data DQT dalam pengambilan JPEG. Data yang disematkan berupa: [255, 219, 0, 132, 0 (penanda luma), matriks luma 8x8, 1 (penanda kroma), matriks kroma 8x8].
0
untuk penanda matriks luma dan 1
untuk penanda kroma tampak
konsisten untuk sejumlah perangkat, termasuk ponsel yang memisahkan kedua
matriks menjadi bagian DQT terpisah dalam file JPEG. Matriks luma cenderung memiliki
variasi nilai yang lebih tinggi dibandingkan dengan matriks kroma karena mata manusia lebih
sensitif terhadap luma daripada kroma dan gambar JPEG memperhitungkannya.
Contoh matriks luma dan kroma yang diekstrak ditampilkan di bawah untuk faktor kualitas
85 dan 25 untuk kamera belakang Pixel 4 yang merekam scene2_a dengan rig pengujian ITS.
Nilai matriks meningkat (menunjukkan peningkatan kompresi) secara substansial untuk
setelan kualitas yang lebih rendah. Matriks ini hanya dicetak dengan skrip jika flag debug=True
diterapkan. Perhatikan variasi entri yang lebih besar 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. Seiring peningkatan kualitas JPEG, tingkat kompresi (rata-rata matriks DQT luma/kroma) akan menurun.
Gambar 3. Rata-rata matriks DQT luma/kroma kamera belakang Pixel 4 versus kualitas JPEG
Pernyataan
- Untuk [25, 45, 65, 86], kualitas +20 memiliki rata-rata matriks kuantisasi pengurangan 20%.
- Payload matriks DQT adalah bilangan kuadrat.
Gambar 4 menunjukkan contoh ponsel yang gagal dalam pengujian. Perhatikan bahwa untuk gambar berkualitas
sangat rendah (jpeg.quality < 50
), tidak ada peningkatan kompresi dalam
matriks kuantisasi.
Gambar 4. Contoh pengujian yang gagal
scene2_d/e test_num_faces
Dua scene deteksi wajah baru ditambahkan untuk meningkatkan keragaman wajah dari pemeriksaan algoritme deteksi wajah. Dengan pengujian berulang terhadap sejumlah kamera, wajah yang paling menantang diharapkan menjadi wajah paling kiri dalam scene2_d. Secara khusus, ada topi dan janggut pada model, sesuatu yang baru dalam adegan wajah. Scene baru ditampilkan dalam gambar 5 dan 6.
Gambar 5. scene2_d
Gambar 6. scene2_e
Pernyataan
num_faces == 3
scene2_e/test_continuous_picture
Metode
Pengujian test_continuous_picture
menggunakan scene2_e, tetapi dapat diaktifkan
dengan salah satu scene wajah. Dalam pengujian ini, 50 frame resolusi VGA diambil dengan permintaan pengambilan gambar terlebih dahulu yang menyetel android.control.afMode = 4
(CONTINUOUS_PICTURE)
.
Sistem 3A diharapkan telah stabil di akhir pengambilan 50 frame.
Menyatakan
- 3A berada dalam status gabungan di akhir pengambilan.
scene_change/test_scene_change
Metode
Pengujian baru diaktifkan untuk menguji apakah tanda android.control.afSceneChange
dinyatakan dengan perubahan scene. Perubahan scene menggunakan tablet
yang menampilkan scene wajah, lalu mengaktifkan dan menonaktifkan tablet untuk membuat
perubahan scene. Scene menggunakan kembali scene2_e, tetapi berada dalam scene terpisah karena
kontrol tablet yang diperlukan.
Selain itu, untuk pengujian manual, perubahan scene dapat dilakukan dengan melambaikan tangan di depan kamera.
Gambar 7 menunjukkan diagram pengaturan waktu pengujian. Pengaturan waktu antara layar mati dan pengambilan disesuaikan berdasarkan hasil peristiwa dari pengambilan sebelumnya.
Gambar 7. Diagram waktu untuk test_scene_change
Kondisi shift:
- Jika ada perubahan scene dan
afSceneChange == 1
, pengujian akan menampilkanPASS
. - Jika ada perubahan scene dan
afSceneChange == 0
, perubahan scene akan bergeser 5 frame lebih awal untuk memberi lebih banyak waktu bagiafSceneChange
untuk menyatakan. - Jika tidak ada perubahan scene dan
afSceneChange == 1
, pengujian akan menampilkanFAIL
. - Jika tidak ada perubahan scene dan
afSceneChange == 0
, perubahan scene akan bergeser 30 frame lebih awal untuk mendapatkan perubahan scene dalam pengambilan.
Menyatakan
- Tombol layar (adegan).
- Flag
afSceneChange
berada di [0, 1]. - Jika tidak ada perubahan scene, 3A akan dikonvergensi (secara fungsional identik dengan
test_continuous_picture
). - Jika
afSceneChange == 1
, kecerahan harus berubah dalam tampilan. PASS
dalam enam percobaan dengan pengaturan waktu yang diubah berdasarkan hasil sebelumnya.
scene6/test_zoom
Metode
Scene baru diperlukan untuk menguji android.control.zoomRatioRange
karena
adegan yang sudah ditetapkan tidak memiliki fitur yang cukup kecil untuk diperbesar
(adegan [1, 2, 4]) atau scene memiliki banyak objek yang tidak mudah diidentifikasi,
sehingga mempersulit ekstraksi fitur (adegan 3).
Gambar 8 menunjukkan tampilan baru dengan array lingkaran reguler. Array
lingkaran akan mengendurkan persyaratan pemusatan DUT/diagram dan memungkinkan lingkaran
selalu berada di dekat pusat gambar yang diambil. Dalam tampilan ini, array lingkaran 9x5
dengan batas hitam menutupi seluruh tablet. Satu lingkaran diganti dengan persegi di sudut kanan atas untuk menampilkan orientasi. Ukuran lingkaran
memiliki fitur dengan luas sekitar 7500 piksel (radius=50pixels
) untuk
sensor 4000x3000 yang ditangkap dengan ruang pandang (FoV) sekitar 80 derajat.
Gambar 8. Tampilan test_zoom
Gambar 9. Zoom cam[0] Pixel 4 = [1, 3,33, 5,67, 8] gambar dengan lingkaran yang ditemukan
Gambar 9 menunjukkan gambar yang diambil untuk kamera belakang Pixel 4 saat zoom bertambah dari 1 hingga 8x dengan empat langkah. Kumpulan gambar ini diambil tanpa perhatian khusus dalam pemusatan, kecuali menggunakan bukaan pengujian ponsel dengan dua bukaan untuk memungkinkan pengujian kamera depan dan belakang. Offset dari bagian tengah diperkirakan akan terjadi, dan diamati karena tablet diagram berada sedikit di kiri tengah. Selain itu, diagram tampaknya cukup untuk diuji dengan rasio zoom yang lebih tinggi dari 8x.
Menemukan lingkaran
Pengujian ini mencakup metode find_circle()
menggunakan findContours
yang menemukan semua kontur dan mempersempit penelusuran kontur ke lingkaran yang diinginkan dengan menguji hal berikut:
- Kontur harus memiliki area lebih besar dari 10 piksel.
- Kontur harus memiliki
NUM_PTS >= 15
. - Kontur harus memiliki bagian tengah berwarna hitam.
- Kontur harus menyerupai lingkaran, yaitu, areanya dekat dengan area pi*r2 kontur.
Rentang pengujian
android.control.zoomRatioRange
dibagi menjadi 10 langkah.
- [1, 7] menguji [1, 1,67, 2,33, 3, 3,67, 4,33, 5, 5,67, 6,33, 7]
Zoom akan dihentikan jika lingkaran yang ditemukan menyentuh batas gambar. Ada pemeriksaan untuk memastikan tingkat zoom yang memadai dicapai dalam pengujian (10x).
Pernyataan
- Setidaknya satu lingkaran ditemukan di setiap setelan zoom.
- 10x atau maksimum
android.control.zoomRatioRange
diuji. - Radius lingkaran diskalakan dengan zoom (RTOL 10% dari yang diharapkan).
- Offset pusat lingkaran dari skala tengah dengan zoom (RTOL 10% dari yang diharapkan).
- Tingkat zoom yang memadai tercapai (2x).
Meningkatkan pengujian kamera LIMITED
Di Android 11, pengujian dalam tabel berikut
menguji kamera LIMITED
. Selain pengujian baru,
pengujian scene4/test_aspect_ratio_and_crop
diperbarui untuk memungkinkan pengujian
perangkat LIMITED
dengan API level pertama 30 atau yang lebih tinggi.
Scene | Nama pengujian |
---|---|
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 decoder secret ITS Android 11. Decoder rahasia menunjukkan setelan pengujian yang digunakan untuk membatasi setiap pengujian. Pembatasan diberi kode warna agar mudah dilihat. Item utama yang membatasi adalah:
MANUAL_SENSOR
READ_3A
*memerlukanMANUAL SENSOR
COMPUTE_TARGET_EXPOSURES
*memerlukanMANUAL SENSOR
PER_FRAME_CONTROL
RAW
SENSORS
*REALTIME
MULTI_CAMERA
MANUAL SENSOR
, READ_3A
, COMPUTE_TARGET_EXPOSURES
, dan
PER_FRAME_CONTROL
mengontrol sebagian besar pengujian. Selain itu, pengujian yang
diaktifkan untuk perangkat LIMITED
akan ditandai dengan warna hijau muda.
Gambar 10. Cincin dekode rahasia Android 11