Android Camera Image Test Suite (ITS) adalah bagian dari Android Compatibility Test Suite (CTS) Verifier dan mencakup pengujian yang memverifikasi konten gambar. CTS Verifier mendukung otomatisasi pengujian ITS dengan Kamera ITS-in-a-box; dukungan untuk pengujian manual mencakup semua faktor bentuk perangkat Android.
ITS-in-a-box mencakup manfaat berikut:
- Otomatisasi. Tidak diperlukan campur tangan manusia selama pengujian.
- Pemecahan masalah yang mudah. Konsistensi lingkungan pengujian menghasilkan lebih sedikit kesalahan pengaturan dan meningkatkan kemampuan reproduksi.
- Efisiensi. Kemampuan untuk mencoba ulang untuk masing-masing kamera/pemandangan meningkatkan efisiensi pelaksanaan pengujian.
Memulai
ITS-in-a-box terdiri dari kotak plastik yang dipotong laser dari gambar computer-aided design (CAD), tablet grafik, dan perangkat yang sedang diuji (DUT). Anda dapat menggunakan bidang pandang lebar (WFoV) ITS-in-a-box, yang mampu menguji kamera WFoV (FoV > 90 derajat) dan RFoV (FoV < 90 derajat), atau kamera bidang biasa. -view (RFoV) ITS-in-a-box.
Untuk memulai dengan Kamera ITS-in-a-box:
- Beli atau buat WFoV atau RFoV ITS-in-a-box.
- Konfigurasikan tablet dengan software Camera ITS.
- Jalankan tes .
- Dapatkan hasil dari DUT.
Konfigurasikan tablet
Bagian ini memberikan petunjuk langkah demi langkah untuk menyiapkan tablet untuk digunakan dengan pengujian Camera ITS yang terletak di direktori CameraITS
. Petunjuk ini menggunakan Pixel C sebagai contoh tablet. Untuk informasi tentang persyaratan dan rekomendasi tablet, lihat Persyaratan tablet .
Catatan: Skrip Python Kamera ITS secara otomatis mengatur opsi berikut di tablet untuk Anda:
Pengaturan > Tampilan > Tidur > Setelah 30 menit tidak aktif
Kecerahan adaptif > MATI
- Isi daya tablet dan hidupkan. Jika diminta untuk membuat akun, lewati saja (Kamera ITS tidak memerlukan akun apa pun yang dipasangkan dengan tablet).
- Perbarui tablet ke Android 7.0 atau lebih tinggi. Android 6.x dan versi lebih rendah tidak mendukung Kamera ITS.
- Aktifkan mode pengembang .
- Kembali ke Pengaturan dan pilih opsi Pengembang.
Aktifkan opsi - Pada
- Tetap terjaga
- USB debugging (Ini memungkinkan host untuk menjalankan tablet dalam mode debug. Saat Anda menyambungkan tablet ke host untuk pertama kalinya, tablet akan meminta Izinkan USB debugging? Jika tablet tidak menampilkan perintah debug, putuskan sambungan lalu sambungkan kembali tablet.)
Nonaktifkan opsi - Pembaruan sistem otomatis
- Verifikasi aplikasi melalui USB
- Tentukan DUT dan ID bagan dengan menjalankan
$ adb devices
untuk mencantumkan perangkat yang tersedia. Untuk menentukandevice_id
danchart_id
, pasang dan cabut perangkat dan amati perangkat yang terhubung dan terputus. - Lakukan tiga uji coba untuk menyembunyikan petunjuk dan perintah pengguna yang dapat mengaburkan grafik di layar tablet.
- Posisikan tablet menghadap ke atas di atas meja (jangan tempelkan tablet ke panel belakang kotak).
- Jalankan perintah berikut:
python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
Adegan 2 dan 3 mengharuskan tablet menampilkan gambar, sehingga tablet meminta Izinkan Drive mengakses foto, media, dan file di perangkat Anda? . Hapus perintah ini (dan cegah perintah di masa mendatang) dengan menekan Izinkan. - Jalankan perintah lagi. Tablet meminta Simpan salinan file ini? dan menyarankan Google Drive. Hapus perintah ini (dan cegah perintah di masa mendatang) dengan menekan ikon Drive lalu Batalkan untuk mengunggah ke drive.
- Terakhir, jalankan
tools/run_all_tests.py
dan konfirmasikan bahwa adegan berubah secara otomatis saat skrip menelusuri adegan yang berbeda. Meskipun sebagian besar pengujian gagal (karena kamera tidak mengarah ke grafik), Anda dapat memverifikasi bahwa tablet menelusuri adegan dengan benar tanpa menampilkan perintah atau popup apa pun di layar.
Jalankan tes
Sebelum menjalankan ITS-in-a-box, pastikan pengaturan pengujian Anda mencakup perangkat keras dan perangkat lunak berikut:
- Satu (1) ITS-in-a-box
- Satu (1) tablet 10" resolusi tinggi untuk menampilkan adegan, S/N: 5811000011
- Satu (1) DUT yang telah terinstal aplikasi CTS Verifier 7.0_8+. Contoh DUT:
- Satu (1) Pixel NOF26W untuk pengujian kamera belakang(0), S/N: FA6BM0305016. Untuk menginstal aplikasi CTS Verifier, unzip
android-cts-verifier.zip
lalu jalankanadb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
- Satu (1) Pixel NOF26W untuk pengujian kamera belakang(0), S/N: FA6BM0305016. Untuk menginstal aplikasi CTS Verifier, unzip
Jalankan adegan berbasis tablet
Untuk menjalankan adegan 0 hingga 4, 6, dan scene_change di kamera belakang:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
Contoh:
Coba lagi adegan
Anda dapat mencoba kembali adegan untuk satu kamera:
- Untuk mencoba kembali adegan pada satu kamera:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
Jalankan adegan 5
Adegan 5 memerlukan pengaturan khusus dengan pencahayaan khusus (untuk detailnya, lihat CameraITS.pdf
di CTS Verifier, yang dapat Anda unduh di Compatibility Test Suite Downloads ). Anda harus menjalankan adegan 5 secara terpisah (di luar kotak).
Untuk menjalankan adegan 5 pada kamera depan dan belakang pada satu perangkat:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
Dapatkan hasil
Anda dapat melihat hasil selama pengujian dan menyimpan hasil yang telah selesai sebagai laporan.
- Lihat hasil. Untuk menyimpan hasil Kamera ITS sebagai laporan:
- Tekan Lulus dan simpan laporannya.
Gambar 3. Laporan Kamera ITS - Tarik laporan dari perangkat:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- Buka zip file laporan dan lihat
test_result.xml
.
Gambar 4. Laporan Kamera ITS
- Tekan Lulus dan simpan laporannya.
Persyaratan tablet
Tablet harus memiliki ukuran layar sekitar 10 inci dengan resolusi layar lebih besar dari 1920 x 1200 piksel. Tablet tidak boleh menggunakan modulasi lebar pulsa (PWM) untuk mengatur tingkat kecerahan. Nilai brightness
harus diatur di config.yml
sesuai dengan model tablet. Tabel di bawah mencantumkan tablet yang direkomendasikan untuk pengujian ITS beserta versi rilis Android untuk DUT yang digunakan tablet tersebut.
Perangkat | Ukuran layar (inci) | Ukuran layar (piksel) | Dimensi tablet (inci) | Menampilkan kecerahan | Menampilkan bit | Didukung OS DUT | Didukung sistem operasi tablet |
---|---|---|---|---|---|---|---|
Samsung Galaksi Tab A8 | 10.5 | 1920x1200 | 9,72x6,37x0,27 | 192 | 8 | Android 13+ | Android 11+ |
Xiaomi Lapisan 5 | 11 | 2560x1600 | 10,03x6,55x0,27 | 1024 | 11 | Android 12+ | Hanya Android 11 |
Lenovo Tab M10 Ditambah | 10.3 | 1920x1200 | 9,61x6,03x0,32 | 192 | 8 | Android 12+ | Android 9+ |
Samsung Galaksi Tab A7 | 10.4 | 2000x1200 | 9,75x6,2x0,28 | 192 | 8 | Android 12+ | Android 10+ |
Chuwi Hi9 Udara 10.1 | 10.1 | 2560x1600 | 9,52x6,77x0,31 | 192 | 8 | Android 7+ | Android 8+ |
asus ZenPad 3 | 9.7 | 2048x1536 | 9,47x6,44x0,28 | 192 | 8 | Android 7+ | Android 6+ |
Huawei MediaPad m5 | 10.8 | 2560x1600 | 10,18x6,76x0,29 | 192 | 8 | Android 7+ | Android 8+ |
Google Piksel C | 10.2 | 2560x1800 | 9,53x7,05x0,28 | 96 | 8 | Android 7+ | Android 6+ |
Sony Xperia Z4 | 10.1 | 2560x1600 | 10 x 6,57 x 0,24 | 192 | 8 | Android 7+ | Android 5+ |
Pertanyaan yang sering diajukan
Q1: Bagaimana cara menentukan perlengkapan pengujian mana yang saya perlukan untuk perangkat saya?
RFoV ITS-in-a-box revisi 1 menguji kamera RFoV untuk pengujian adegan 0 hingga adegan 4 di direktori CameraITS/tests
. RFoV didefinisikan sebagai 60° < FoV < 90° . Untuk kamera FoV yang lebih besar, cahaya mungkin muncul di gambar atau grafik mungkin mencakup area yang terlalu kecil di FoV, sehingga memengaruhi hasil pengujian.
WFoV ITS-in-a-box revisi 2 menguji kamera WFoV untuk pengujian adegan 0 hingga adegan 4 di direktori CameraITS/tests
. WFoV didefinisikan sebagai FoV >= 90° . Secara fungsional identik dengan revisi 1, tetapi lebih besar. Rig pengujian revisi 2 dapat menguji kamera RFoV dan WFoV di Android 9 dan lebih tinggi.
Kotak fusi sensor menguji offset waktu kamera/giroskop dan sinkronisasi bingkai sistem multi-kamera dengan pengujian dalam scenes=sensor_fusion
. Offset waktu kamera/giroskop kurang dari 1 ms diperlukan untuk tanda fitur REALTIME
.
Perangkat multi-kamera dapat diuji dengan satu rig untuk pengujian ITS statis dan rig fusi sensor jika kamera memiliki tanda fitur REALTIME
.
Serangkaian contoh konfigurasi disediakan dalam tabel di bawah.
Contoh | FoV Kamera | WAKTU SEBENARNYA? | Rig yang direkomendasikan | Catatan |
---|---|---|---|---|
1 | 75° | TIDAK | Putaran 1 atau 2 | Android 7.0 atau lebih tinggi |
2 | 75° | Ya | Rev 1 atau 2 + fusi sensor | Android 9 atau lebih tinggi |
3 | 75° + 95° | Ya | Rev 2 + fusi sensor | Android 9 atau lebih tinggi |
Q2: Bagaimana cara menentukan rig pengujian mana yang digunakan?
Untuk menentukan rig pengujian yang benar, pastikan parameter jarak bagan sudah benar. Rig uji rev1 (RFoV) memiliki jarak grafik 31 cm, dan rig rev2 (WFoV) memiliki jarak grafik 22 cm. Secara default jarak grafik diatur ke 31 cm.
Android 10 hingga Android 11
Untuk mengidentifikasi rig pengujian yang benar di Android 10 hingga 11, tambahkan tandadist
pada baris perintah. Nilai default untuk dist
adalah 31
. Jalankan perintah berikut untuk mengubah parameter chart_distance
.python tools/run_all_tests.py ... chart=# dist=22
Android 12
Untuk mengidentifikasi rig pengujian yang benar di Android 12, Anda dapat mengedit file config.yml untuk mengubah parameterchart_distance
.edit config.yml chart_distance: 31.0 → chart_distance: 22.0
Q3: Bagaimana cara mengontrol kecerahan tablet?
Secara default, kecerahan tablet diatur ke 96.
Untuk mengubah kecerahan pada tablet yang menjalankan Android 7.0 hingga Android 9, jalankan:
edit tools/wake_up_screen.py DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192
Untuk mengubah kecerahan pada tablet yang menjalankan Android 10 hingga 11, nilainya dapat diubah pada baris perintah dengan menambahkan tanda brightness
:
python tools/run_all_tests.py device=# camera=# chart=# brightness=192
Untuk mengubah kecerahan pada tablet yang menjalankan Android 12, jalankan:
edit config.yml brightness: 96 → brightness: 192
Q4: Bagaimana cara men-debug satu pengujian?
Pengujian dapat dijalankan secara individual untuk tujuan debugging, namun hasilnya tidak dilaporkan ke CtsVerifier.apk
kecuali seluruh adegan dijalankan.
Untuk menjalankan adegan individual di Android 11 dan lebih rendah:
- Muat adegan dengan menambahkan tanda
scenes
ditools/run_all_tests.py
:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
Tekan Control+C untuk menghentikan pengujian setelah adegan dicatat sebagai dimuat ke
stdout
.Jika adegan yang benar sudah ada di layar, aktifkan layar:
python tools/wake_up_screen.py screen=#
Jalankan tes individu.
python tests/scene#/test_*.py device=# camera=#
Plot kemudian dibuat di direktori lokal dan
stdout
danstderr
dicetak ke layar.Untuk mendapatkan informasi lebih lanjut untuk debugging, tambahkan pernyataan
print
ke skrip. Untuk meningkatkan keluaran pengujian untuk debugging, tambahkan tandadebug=True
.python tests/scene#/test_*.py device=# camera=# debug=True
Hasilnya dicetak ke layar lokal dan gambar disimpan di direktori lokal, bukan di direktori /tmp/tmp###
yang dihasilkan saat menjalankan tools/run_all_tests.py
.
Untuk menjalankan adegan individual di Android 12:
Edit file
config.yml
.edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
Jalankan tes individu.
python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
Hasil dicetak di direktori /tmp/logs/mobly/TEST_BED_TABLET_SCENES/
yang diurutkan berdasarkan waktu proses.
Q5: Mengapa saya harus menjalankan pengujian yang gagal secara keseluruhan dan bukannya menjalankan kembali pengujian satu per satu?
Pengujian dapat dijalankan secara individual untuk tujuan debugging, namun hasilnya tidak dilaporkan ke CtsVerifier.apk
kecuali seluruh adegan dijalankan.
Kamera ITS memastikan aplikasi pihak ketiga memiliki antarmuka kamera yang kompatibel. Mirip dengan pengujian unit , setiap pengujian menekankan satu spesifikasi pada kamera. Untuk menangkap perilaku yang tidak dapat diandalkan, tes ini diharapkan dilakukan secara berkelompok untuk keseluruhan adegan. Misalnya, meskipun satu pengujian yang tidak dapat diandalkan mungkin lolos dari pemutaran ulang seluruh adegan, sulit untuk lulus beberapa pengujian yang tidak dapat diandalkan.
Sebagai contoh ekstrem, pertimbangkan kasus di mana terdapat 10 pengujian dalam sebuah adegan yang masing-masing memiliki probabilitas 50% untuk mengembalikan PASS
. Dengan menjalankan setiap pengujian secara individual, besar kemungkinan seorang operator dapat lolos dari Kamera ITS. Namun, jika pengujian dijalankan secara agregat sebagai sebuah adegan, hanya ada peluang 0,1% bahwa adegan tersebut akan lulus.
Q6: Bagaimana cara menjalankan satu adegan atau menyusun ulang adegan yang dijalankan?
Secara default, skrip tools/run_all_tests.py
menjalankan semua adegan secara berurutan. Namun, adegan dapat dijalankan secara individual atau dalam urutan tertentu dan dilaporkan ke CtsVerifier.apk
.
Untuk menjalankan satu adegan (misalnya, adegan 2) atau menjalankan lebih dari satu adegan dalam urutan tertentu di Android 11 atau lebih rendah:
python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2
Untuk menjalankan satu adegan atau menjalankan lebih dari satu adegan dalam urutan tertentu di Android 12:
python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2
Parameter tambahan diatur dalam file config.yml
.
Q7: Sejumlah pengujian adegan 1 gagal dengan pengaturan tablet tetapi lulus dengan bagan kertas. Apa yang salah?
Pastikan tablet dan lingkungan pengujian memenuhi spesifikasi berikut.
Spesifikasi tablet
Pastikan tablet memenuhi spesifikasi berikut:
- Ukuran layar (inci): 10 inci
- Ukuran tampilan (piksel): lebih besar dari 1920 x 1200 piksel
Untuk rincian lebih lanjut, lihat Persyaratan tablet .
Kecerahan tablet
Pengujian mungkin tidak memperoleh hasil yang benar jika kecerahan layar tablet terlalu rendah.
Untuk lebih jelasnya, lihat Bagaimana cara mengontrol kecerahan tablet?
Tingkat pencahayaan kotak (membutuhkan lux meter)
Pastikan target nilai lux pada pembukaan tablet antara 100 dan 300.
Jika tingkat lux terlalu tinggi, scene1/test_param_flash_mode.py
mengembalikan FAIL
. Jika tingkat lux terlalu rendah, beberapa pengujian akan gagal.
Q8: Bagaimana cara men-debug tes fusi sensor?
Pastikan Anda berada dalam grup
dialout
.groups | egrep ‘dialout'
Pastikan pengontrol fusi sensor terhubung dengan menentukan apakah Teknologi Microchip terhubung ke port USB.
lsusb … Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc. …
Jalankan pengujian beberapa kali untuk mendapatkan distribusi upaya pengujian dengan perintah berikut.
Di Android 11 atau lebih rendah:
python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
Di Android 12:
python tools/run_sensor_fusion_box.py num_runs=10
Parameter tambahan diatur dalam file
config.yml
.Output proses berada di folder
/tmp/tmp###
yang dibuat di bawah foldersensor_fusion_#
, dengan#
adalah nomor proses. Alasan umum kegagalan adalah:- Ponsel tidak berada di tengah dengan benar.
- Tidak cukup banyak fitur yang ditemukan pada gambar (seringkali masalah FoV atau pencahayaan).
-
FAIL
yang dikembalikan valid, dan offset waktu antara kamera dan giroskop harus diperbaiki.
Q9: Informasi apa yang harus saya sertakan saat melaporkan bug pengujian?
Saat melaporkan bug pengujian, sertakan file dan gambar yang dihasilkan untuk pengujian.
- Jika Anda menjalankan pengujian melalui
tools/run_all_tests.py
, lampirkan direktori zip/tmp/
ke bug. - Jika Anda menjalankan pengujian sendiri, lampirkan semua keluaran layar dan gambar yang dihasilkan ke bug.
Sertakan juga laporan bug. Setelah pengujian yang dimaksud gagal, gunakan perintah berikut untuk membuat laporan bug dan melampirkan file zip yang dihasilkan ke bug tersebut.
adb -s device_id bugreport
Q10: Bagaimana cara menjalankan adegan pengujian sensor_fusion dengan kamera yang memiliki jarak fokus minimum sehingga menghasilkan gambar buram pada jarak grafik 25 cm?
Jika kamera Anda tidak dapat fokus pada jarak 25 cm, lepaskan panel pemasangan grafik pada kotak fusi sensor. Tempatkan grafik pada jarak di mana DUT dapat fokus dan ubah chart_distance
di config.yml
menjadi jarak terukur antara DUT dan grafik. Gambar 5 menunjukkan contoh bagaimana mengukur jarak grafik dalam situasi ini.
edit config.yml chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART
Q11: Bagaimana cara menjalankan adegan pengujian tablet untuk kamera dengan jarak fokus minimum yang menghasilkan gambar buram pada jarak grafik 31 cm?
Jika kamera Anda tidak dapat menghasilkan gambar yang cukup tajam saat pengujian pada 31 cm (kedalaman alat uji RFoV), pasang kamera Anda di depan alat pada jarak tertentu agar pemandangan bagan memenuhi sekitar 60% bidang kamera. view (FoV) dengan gambar yang lebih tajam. Jarak ini bisa kurang dari jarak fokus minimum kamera. Biarkan chart_distance
di config.yml
pada 31 cm. Skala grafik pada tablet ditentukan oleh FoV kamera seperti yang ditunjukkan pada tabel berikut:
Kamera FoV | Faktor penskalaan grafik |
---|---|
60 > FoV > 40 | 0,67x |
40 > FoV > 25 | 0,5x |
FoV <25 | 0,33x |
Q12: Dengan API multi-kamera logis, pengujian apa yang dijalankan pada kamera mana?
Jika kamera Anda menggunakan REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
, semua pengujian ITS yang didukung dijalankan pada kamera logis tingkat atas. Subset pengujian ITS dijalankan pada sub-kamera fisik, dan pengujian ini tercantum dalam tools/run_all_tests.py
di bawah konstanta SUB_CAMERA_TESTS
.