Kutuda Kamera ITS

Android Camera Image Test Suite (ITS), Android Uyumluluk Test Suite (CTS) Verifier'ın bir parçasıdır ve görüntü içeriğini doğrulayan testler içerir. CTS Verifier, ITS-in-a-box ile ITS test otomasyonunu destekler; manuel testler için destek, tüm Android cihaz form faktörlerini kapsar.

ITS-in-a-box aşağıdaki avantajları içerir:

  • Otomasyon. Test sırasında herhangi bir insan müdahalesine gerek yoktur.
  • Kolay sorun giderme. Test ortamının tutarlılığı, daha az kurulum hatasına yol açar ve tekrarlanabilirliği artırır.
  • Yeterlik. Ayrı kamera/sahne için yeniden deneme yeteneği, test yürütme verimliliğini artırır.

Başlarken

ITS-in-a-box, bilgisayar destekli tasarım (CAD) çizimlerinden lazerle kesilmiş bir plastik kutu, bir grafik tableti ve test edilen bir cihazdan (DUT) oluşur. Hem WFoV (FoV > 90 derece) hem de RFoV (FoV < 90 derece) kameraları veya normal görüş alanını test edebilen geniş görüş alanı (WFoV) ITS-in-a-box'ı kullanabilirsiniz. -görüntüleme (RFoV) ITS-in-a-kutu.

ITS-in-a-box'ı kullanmaya başlamak için:

  1. Kutuda bir WFoV veya RFoV ITS satın alın veya oluşturun.
  2. Bir tableti Camera ITS yazılımıyla yapılandırın .
  3. Testleri çalıştırın .
  4. DUT sonuçları alın .

Tableti yapılandırma

Bu bölüm, CameraITS dizininde bulunan Camera ITS testleri ile kullanım için bir tableti kurmak için adım adım talimatlar sağlar. Bu talimatlar, örnek tablet olarak bir Pixel C kullanır. Tablet gereksinimleri ve önerileri hakkında bilgi için bkz. Tablet gereksinimleri .

Not: Camera ITS Python komut dosyaları, tablette aşağıdaki seçenekleri sizin için otomatik olarak ayarlar:
Ayarlar > Ekran > Uyku > 30 dakika işlem yapılmadığında
Uyarlanabilir parlaklık > KAPALI

  1. Tableti şarj edin ve açın. Bir hesap oluşturmanız istenirse, atlayın (Camera ITS, tabletle eşleştirilmiş herhangi bir hesap gerektirmez).
  2. Tableti Android 7.0 veya sonraki bir sürüme güncelleyin. Android 6.x ve alt sürümleri Camera ITS'yi desteklemez.
  3. Geliştirici modunu etkinleştirin.
  4. Ayarlar'a dönün ve Geliştirici seçenekleri'ni seçin.
    Seçenekleri etkinleştir
    • Açık
    • Uyanık kal
    • USB hata ayıklama (Bu, ana bilgisayarın tableti hata ayıklama modunda çalıştırmasını sağlar. Tableti ana bilgisayara ilk kez bağladığınızda, tablet, USB hata ayıklamasına izin ver? tablet.)
    Seçenekleri devre dışı bırak
    • Otomatik sistem güncellemeleri
    • USB üzerinden uygulamaları doğrulayın
  5. Kullanılabilir cihazları listelemek için $ adb devices çalıştırarak DUT ve grafik kimliklerini belirleyin. device_id ve chart_id belirlemek için, aygıtları takıp çıkarın ve bağlanan ve bağlantısını kesen aygıtları gözlemleyin.
  6. Tablet ekranındaki çizelgeleri gizleyebilecek ipuçlarını ve kullanıcı istemlerini bastırmak için üç test çalıştırması gerçekleştirin.
    1. Tableti yüzü yukarı bakacak şekilde masaya yerleştirin (tableti kutunun arka paneline takmayın).
    2. Aşağıdaki komutu çalıştırın:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      Sahne 2 ve 3, tabletin bir resim görüntülemesini gerektirir, bu nedenle tablet, Drive'ın cihazınızdaki fotoğraflara, medyaya ve dosyalara erişmesine izin verilsin mi? . İzin Ver'e basarak bu istemi temizleyin (ve gelecekteki istemleri önleyin).
    3. Komutu tekrar çalıştırın. Tablet , Bu dosyanın bir kopyası saklansın mı? ve Google Drive'ı önerir. Sürücü simgesine ve ardından sürücüye yüklemek için İptal'e basarak bu istemi temizleyin (ve gelecekteki istemleri önleyin).
    4. Son olarak, tools/run_all_tests.py çalıştırın ve komut dosyası farklı sahneler arasında geçiş yaparken sahnelerin otomatik olarak değiştiğini onaylayın. Çoğu test başarısız olsa da (kamera tabloya doğrultulmadığı için), ekranda herhangi bir istem veya başka açılır pencere görüntülemeden tabletin sahneler arasında doğru şekilde geçiş yaptığını doğrulayabilirsiniz.

Çalışan testler

ITS-in-a-box'ı çalıştırmadan önce, test kurulumunuzun aşağıdaki donanım ve yazılımları içerdiğinden emin olun:

  • Bir (1) kutuda ITS
  • Sahneleri görüntülemek için bir (1) yüksek çözünürlüklü 10" tablet, S/N: 5811000011
  • CTS Verifier 7.0_8+ uygulamasının yüklü olduğu bir (1) DUT. Örnek DUT:
    • Arka kamera (0) testi için bir (1) Pixel NOF26W, S/N: FA6BM0305016. CTS Verifier uygulamasını yüklemek için android-cts-verifier.zip açın ve ardından
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      
      çalıştırın.

Tablet tabanlı sahneleri çalıştırma

0'dan 4'e, 6'ya kadar olan sahneleri ve sahne_değişimi'ni arka kamerada çalıştırmak için:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

Örnek:

Kamera 0 S/G: FA6BM0305016
Şekil 1. Kamera 0 S/N: FA6BM0305016

sahneleri yeniden deneme

Tek bir kamera için sahneleri yeniden deneyebilirsiniz:

  • Sahneleri tek bir kamerada yeniden denemek için:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Koşu sahnesi 5

Sahne 5, özel aydınlatma ile özel kurulum gerektirir (ayrıntılar için, Uyumluluk Testi Paketi İndirmeleri'nden indirebileceğiniz CTS Verifier'daki CameraITS.pdf bakın). Sahne 5'i ayrı olarak çalıştırmalısınız (kutunun dışında).

kamera sahnesi 5
Şekil 2. Kamera sahnesi 5

Sahne 5'i ön ve arka kameralar için tek bir cihazda çalıştırmak için:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

Sonuç alma

Test sırasında sonuçları görüntüleyebilir ve tamamlanan sonuçları rapor olarak kaydedebilirsiniz.

  • Sonuçları Görüntüle. Kamera ITS sonuçlarını bir rapor olarak kaydetmek için:
    1. Geç'e basın ve raporu kaydedin.
      kamera ITS raporu
      Şekil 3. Kamera ITS raporu
    2. Cihazdan raporları çekin:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Rapor dosyasını açın ve test_result.xml dosyasını görüntüleyin.
      kamera ITS raporları
      Şekil 4. Kamera ITS raporları

Tablet gereksinimleri

Tabletler, 1920 x 1200 pikselden daha büyük bir ekran çözünürlüğüne sahip yaklaşık 10 inç ekran boyutuna sahip olmalıdır. brightness değeri, tablet modeline göre config.yml ayarlanmalıdır. Aşağıdaki tablo, tabletlerin birlikte çalıştığı DUT için Android yayın sürümleriyle birlikte ITS testi için önerilen tabletleri listeler.

Cihaz Ekran boyutu
(inç)
Ekran boyutu
(piksel)
Tablet boyutları
(inç)
Görüntülemek
parlaklık
Desteklenen DUT
işletim sistemi
Xiaomi Pad 5 11 2560 x 1600 10,03 x 6,55 x 0,27 192 Android 12+
Lenovo Tab M10 Artı 10.3 1920 x 1200 9,61 x 6,03 x 0,32 192 Android 12+
Samsung Galaxy Tab A7 10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 Android 12+
Chuwi Hi9 Hava 10.1 10.1 2560 x 1600 9,52 x 6,77 x 0,31 192 Android 7+
Asus ZenPad3 9.7 2048 x 1536 9,47 x 6,44 x 0,28 192 Android 7+
Huawei MediaPad m5 10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 Android 7+
Piksel C 10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 Android 7+
Sony Xperia Z4 10.1 2560 x 1600 10x6.57x0.24 192 Android 7+

Sık sorulan sorular (SSS)

S1: Cihazım için hangi test donanımlarına ihtiyacım olduğunu nasıl belirleyebilirim?

RFoV ITS-in-a-box revizyon 1 , CameraITS/tests dizininde sahne 0 ila sahne 4 testleri için RFoV kameralarını test eder. RFoV, 60° < FoV < 90° olarak tanımlanır. Daha büyük FoV kameralar için, görüntülerde ışıklar görünebilir veya grafikler FoV'de çok küçük bir alanı kaplayarak test sonuçlarını etkileyebilir.

WFoV ITS-in-a-box revizyon 2 , CameraITS/tests dizininde sahne 0 ila sahne 4 testleri için WFoV kameralarını test eder. WFoV, FoV >= 90° olarak tanımlanır. İşlevsel olarak revizyon 1 ile aynıdır, ancak daha büyüktür. Revizyon 2 test donanımı, Android 9 ve sonraki sürümlerde hem RFoV hem de WFoV kameraları test edebilir.

Sensör füzyon kutusu , kamera/jiroskop zamanlama ofsetini ve çoklu kamera sistemleri çerçeve senkronizasyonunu scenes=sensor_fusion içindeki testlerle test eder. REALTIME özellik bayrağı ve VR/AR uygulamaları için 1 ms'den daha az bir kamera/jiroskop zamanlama ofseti gereklidir.

Çok kameralı cihazlar, statik ITS testleri için tek bir teçhizat ve kameranın REALTIME özellik bayrağına sahip olması halinde bir sensör füzyon teçhizatı ile test edilebilir.

Aşağıdaki tabloda bir dizi örnek konfigürasyon sağlanmıştır.

Örnek Kamera FoV'leri GERÇEK ZAMANLI? Önerilen kuleler notlar
1 75 ° Numara Rev 1 Android 7.0 veya üzeri
2 75 ° Evet Rev 1 + sensör füzyonu Android 9 veya üstü
3 75 ° + 95 ° Evet Rev 2 + sensör füzyonu Android 9 veya üstü

S2: Hangi test teçhizatının kullanımda olduğunu nasıl belirleyebilirim?

Doğru test teçhizatını belirlemek için çizelge mesafesi parametresinin doğru olduğundan emin olun. Rev1 test teçhizatı (RFoV) 31 cm'lik bir çizelge mesafesine ve rev2 teçhizatı (WFoV) 22 cm'lik bir çizelge mesafesine sahiptir. Varsayılan olarak harita mesafesi 31 cm'ye ayarlanmıştır.

Android 10'dan Android 11'e

Android 10'dan 11'e kadar olan sürümlerde doğru test donanımını belirlemek için komut satırına dist bayrağını ekleyin. dist için varsayılan değer 31 . chart_distance parametresini değiştirmek için aşağıdaki komutu çalıştırın.
python tools/run_all_tests.py ... chart=# dist=22

Android 12

Android 12'de doğru test donanımını belirlemek için chart_distance parametresini değiştirmek üzere config.yml dosyasını düzenleyebilirsiniz.
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

Q3: Tablet parlaklığını nasıl kontrol edebilirim?

Varsayılan olarak, tablet parlaklığı 96'ya ayarlanmıştır.

Android 7.0 ile Android 9 arasında çalışan tabletlerde parlaklığı değiştirmek için şunu çalıştırın:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

Android 10 ila 11 çalıştıran tabletlerde parlaklığı değiştirmek için, brightness bayrağı eklenerek değer komut satırında değiştirilebilir:

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

Android 12 çalıştıran tabletlerde parlaklığı değiştirmek için şunu çalıştırın:

edit config.yml
brightness: 96 → brightness: 192

S4: Tek bir testte nasıl hata ayıklayabilirim?

Testler, hata ayıklama amacıyla ayrı ayrı çalıştırılabilir, ancak tüm sahne çalıştırılmadıkça sonuçlar CtsVerifier.apk bildirilmez.

Android 11 ve önceki sürümlerde tek bir sahneyi çalıştırmak için:

  1. tools/run_all_tests.py içinde scenes bayrağını ekleyerek bir sahne yükleyin:
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Sahne stdout yüklenmiş olarak günlüğe kaydedildikten sonra testleri durdurmak için Control+C tuşlarına basın.

    Ekranda zaten doğru sahne varsa, ekranı uyandırın:

    python tools/wake_up_screen.py screen=#
    
  3. Bireysel bir test çalıştırın.

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

    Daha sonra yerel dizinde çizimler oluşturulur ve stdout ve stderr ekrana yazdırılır.

    Hata ayıklama için daha fazla bilgi almak için komut dosyasına print deyimleri ekleyin. Hata ayıklama için test çıktısını artırmak için debug=True bayrağını ekleyin.

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

tools/run_all_tests.py çalıştırılırken sonuçlar yerel ekrana yazdırılır ve görüntüler oluşturulan /tmp/tmp### dizini yerine yerel dizine kaydedilir.

Android 12'de tek bir sahneyi çalıştırmak için:

  1. config.yml dosyasını düzenleyin.

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Bireysel testi çalıştırın.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

Sonuçlar, çalışma zamanına göre sıralanmış olarak /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ dizininde yazdırılır.

S5: Testleri tek tek yeniden çalıştırmak yerine neden başarısız testleri tüm sahne olarak çalıştırmam gerekiyor?

Testler, hata ayıklama amacıyla ayrı ayrı çalıştırılabilir, ancak tüm sahne çalıştırılmadıkça sonuçlar CtsVerifier.apk bildirilmez.

Camera ITS, üçüncü taraf uygulamaların uyumlu bir kamera arayüzüne sahip olmasını sağlar. Birim testine benzer şekilde, her test kameradaki tek bir özelliği vurgular. Güvenilmez davranışları yakalamak için, bu testlerin bir sahnenin tamamı için bir grup olarak geçmesi beklenir. Örneğin, tek bir güvenilmez test tüm bir sahnenin tekrarını geçebilse de, birden fazla güvenilmez testin geçmesi zordur.

Uç bir örnek olarak, bir sahnede her birinin PASS döndürme olasılığı %50 olan 10 testin olduğu durumu düşünün. Her testi ayrı ayrı çalıştırarak, bir operatörün kameranın Kamera ITS'sini geçmesini sağlama olasılığı yüksektir. Bununla birlikte, testler bir sahne olarak toplu olarak çalıştırılırsa, sahnenin geçme olasılığı yalnızca %0,1'dir.

S6: Tek bir sahneyi nasıl çalıştırırım veya çalıştırma sahnelerini nasıl yeniden sıralarım?

Varsayılan olarak, tools/run_all_tests.py komut dosyası tüm sahneleri sırayla çalıştırır. Ancak, sahneler tek tek veya belirli bir sırayla çalıştırılabilir ve CtsVerifier.apk rapor edilebilir.

Android 11 veya önceki sürümlerde tek bir sahneyi (örneğin, sahne 2) veya belirli bir sırayla birden fazla sahneyi çalıştırmak için:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
tutucu18 l10n-yer
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

Android 12'de tek bir sahneyi çalıştırmak veya belirli bir sırayla birden fazla sahneyi çalıştırmak için:

python tools/run_all_tests.py scenes=2
tutucu20 l10n-yer
python tools/run_all_tests.py scenes=3,2

Ek parametreler config.yml dosyasında ayarlanır.

S7: Bir dizi sahne 1 testi, tablet kurulumunda başarısız oluyor, ancak kağıt grafikle başarılı oluyor. Sorun nedir?

Tabletin ve test ortamının aşağıdaki özellikleri karşıladığından emin olun.

Tablet özellikleri

Tabletin aşağıdaki özellikleri karşıladığından emin olun:

  • Ekran boyutu (inç): 10 inç
  • Ekran boyutu (piksel): 1920 x 1200 pikselden büyük

Daha fazla ayrıntı için bkz. Tablet gereksinimleri .

Tablet parlaklığı

Tablet ekran parlaklığı çok düşükse testler doğru sonuçlar vermeyebilir.

Daha fazla ayrıntı için bkz . Tablet parlaklığını nasıl kontrol ederim?

Kutu aydınlatma seviyesi (lüks metre gerektirir)

Tablet açılışında hedef lüks değerinin 100 ile 300 arasında olduğundan emin olun.

Lüks düzeyi çok yüksekse, scene1/test_param_flash_mode.py FAIL döndürür. Lüks seviyesi çok düşükse, birden fazla test başarısız olur.

S8: Sensör füzyon testlerinde nasıl hata ayıklayabilirim?

  1. Bir dialout grubunda olduğunuzdan emin olun.

    groups | egrep ‘dialout'
  2. Mikroçip Teknolojisinin USB bağlantı noktasına bağlı olup olmadığını belirleyerek sensör füzyon denetleyicisinin bağlı olduğundan emin olun.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Aşağıdaki komutlarla test denemelerinin dağılımını almak için testi birden çok kez çalıştırın.

    Android 11 veya önceki sürümlerde:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    Android 12'de:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    Ek parametreler config.yml dosyasında ayarlanır.

    Çalıştırma çıktıları, sensor_fusion_# klasörleri altında oluşturulan /tmp/tmp### klasöründedir; burada # çalıştırma numarasıdır. Başarısızlığın yaygın nedenleri şunlardır:

    1. Telefon düzgün merkezlenmemiş.
    2. Görüntüde yeterli özellik bulunmuyor (genellikle bir FoV veya aydınlatma sorunu).
    3. Döndürülen FAIL geçerlidir ve kamera ile jiroskop arasındaki zamanlama sapması düzeltilmelidir.

S9: Bir test hatasını bildirirken hangi bilgileri dahil etmeliyim?

Bir test hatasını bildirirken, test için oluşturulan dosyaları ve görüntüleri ekleyin.

  1. Testi tools/run_all_tests.py üzerinden çalıştırdıysanız, hataya sıkıştırılmış bir /tmp/ dizini ekleyin.
  2. Testi kendi başına çalıştırdıysanız, tüm ekran çıktılarını ve oluşturulan görüntüleri hataya ekleyin.

Ayrıca bir hata raporu ekleyin. Söz konusu test başarısız olduktan sonra, bir hata raporu oluşturmak ve oluşturulan zip dosyasını hataya eklemek için aşağıdaki komutu kullanın.

adb -s device_id bugreport

S10: Sahneyi engelleyen 16:10 tabletlerdeki gezinme çubuklarını nasıl kaldırırım?

16:10 (veya daha yüksek) en boy oranlarına sahip tabletler için, gezinme çubuğu sahnenin bir kısmını gizleyebilir. Gezinme çubuğunu gizlemek için tablet için aşağıdaki adb komutunu kullanın.

adb -s device_id shell settings put global policy_control immersive.full=*