Kamera ITS-in-a-Box

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:

  1. Beli atau buat WFoV atau RFoV ITS-in-a-box.
  2. Konfigurasikan tablet dengan software Camera ITS.
  3. Jalankan tes .
  4. 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

  1. Isi daya tablet dan hidupkan. Jika diminta untuk membuat akun, lewati saja (Kamera ITS tidak memerlukan akun apa pun yang dipasangkan dengan tablet).
  2. Perbarui tablet ke Android 7.0 atau lebih tinggi. Android 6.x dan versi lebih rendah tidak mendukung Kamera ITS.
  3. Aktifkan mode pengembang .
  4. 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
  5. Tentukan DUT dan ID bagan dengan menjalankan $ adb devices untuk mencantumkan perangkat yang tersedia. Untuk menentukan device_id dan chart_id , pasang dan cabut perangkat dan amati perangkat yang terhubung dan terputus.
  6. Lakukan tiga uji coba untuk menyembunyikan petunjuk dan perintah pengguna yang dapat mengaburkan grafik di layar tablet.
    1. Posisikan tablet menghadap ke atas di atas meja (jangan tempelkan tablet ke panel belakang kotak).
    2. 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.
    3. 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.
    4. 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 jalankan
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

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:

Kamera 0 S/N: FA6BM0305016
Gambar 1. Kamera 0 S/N: FA6BM0305016

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).

adegan kamera 5
Gambar 2. Adegan kamera 5

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:
    1. Tekan Lulus dan simpan laporannya.
      laporan kamera ITS
      Gambar 3. Laporan Kamera ITS
    2. Tarik laporan dari perangkat:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Buka zip file laporan dan lihat test_result.xml .
      kamera laporan ITS
      Gambar 4. Laporan Kamera ITS

Persyaratan tablet

Tablet harus memiliki ukuran layar sekitar 10 inci dengan resolusi layar lebih besar dari 1920 x 1200 piksel. 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 tanda dist 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 parameter chart_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:

  1. Muat adegan dengan menambahkan tanda scenes di tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. 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=#
    
  3. Jalankan tes individu.

    python tests/scene#/test_*.py device=# camera=#

    Plot kemudian dibuat di direktori lokal dan stdout dan stderr dicetak ke layar.

    Untuk mendapatkan informasi lebih lanjut untuk debugging, tambahkan pernyataan print ke skrip. Untuk meningkatkan keluaran pengujian untuk debugging, tambahkan tanda debug=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:

  1. Edit file config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. 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 Camera 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?

  1. Pastikan Anda berada dalam grup dialout .

    groups | egrep ‘dialout'
  2. 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.
    …
    
  3. 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 folder sensor_fusion_# , dengan # adalah nomor proses. Alasan umum kegagalan adalah:

    1. Ponsel tidak berada di tengah dengan benar.
    2. Tidak cukup banyak fitur yang ditemukan pada gambar (seringkali masalah FoV atau pencahayaan).
    3. 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.

  1. Jika Anda menjalankan pengujian melalui tools/run_all_tests.py , lampirkan direktori zip /tmp/ ke bug.
  2. 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.

sensor_fusion contoh pengujian TELE6
Gambar 5. Grafik pengukuran jarak untuk adegan uji fusi sensor
  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 .