Kutuda Kamera ITS

Android Kamera Görüntü Test Paketi (ITS), Android Uyumluluk Test Paketi (CTS) Doğrulayıcı'nın bir parçasıdır ve görüntü içeriğini doğrulayan testleri içerir. CTS Doğrulayıcı, Kutuda Kamera ITS ile ITS test otomasyonunu destekler; manuel testler desteği tüm Android cihaz form faktörlerini kapsar.

Kutuda ITS aşağıdaki avantajları içerir:

  • Otomasyon. Test sırasında hiç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. Tek tek kamera/sahne için yeniden deneme yeteneği, test yürütme verimliliğini artırır.

Başlamak

Kutu içinde ITS, bilgisayar destekli tasarım (CAD) çizimlerinden lazerle kesilmiş plastik bir kutu, bir grafik tableti ve test altındaki 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. -view (RFoV) Kutuda ITS.

Kutuda Kamera ITS'yi kullanmaya başlamak için:

  1. Bir kutuda 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'tan sonuçları alın .

Tableti yapılandırma

Bu bölümde, bir tabletin CameraITS dizininde bulunan Camera ITS testleriyle kullanılacak şekilde ayarlanmasına yönelik adım adım talimatlar verilmektedir. Bu talimatlarda örnek tablet olarak Pixel C kullanılmaktadır. Tablet gereksinimleri ve önerileri hakkında bilgi için bkz. Tablet gereksinimleri .

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

  1. Tableti şarj edin ve açın. Hesap oluşturmanız istenirse bu adımı atlayın (Kamera ITS, tabletle eşleştirilmiş bir hesap gerektirmez).
  2. Tableti Android 7.0 veya sonraki bir sürüme güncelleyin. Android 6.x ve daha düşük sürümler Kamera ITS'yi desteklemez.
  3. Geliştirici modunu etkinleştirin.
  4. Ayarlar'a dönün ve Geliştirici seçeneklerini 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ına olanak tanır. Tableti ana bilgisayara ilk kez bağladığınızda tablet, USB hata ayıklamasına izin ver? Tablette hata ayıklama istemini görüntülemezse, bağlantıyı kesip yeniden bağlayın. tablet.)
    Seçenekleri devre dışı bırak
    • Otomatik sistem güncellemeleri
    • Uygulamaları USB üzerinden 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 değerlerini belirlemek için cihazları takıp çıkarın ve bağlanan ve bağlantısı kesilen cihazları gözlemleyin.
  6. Tablet ekranındaki grafikleri 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 bir masanın üzerine 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 gerektirdiğinden 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 engelleyin).
    3. Komutu tekrar çalıştırın. Tablet şu soruyu sorar : Bu dosyanın bir kopyası saklansın mı? ve Google Drive'ı önerir. Sürücü simgesine ve ardından sürücüye yükleme 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ş yaptıkça sahnelerin otomatik olarak değiştiğini doğrulayın. Çoğu test başarısız olsa da (kamera grafiğe doğrultulmadığından), tabletin ekranda herhangi bir istem veya başka açılır pencere görüntülemeden sahneler arasında doğru şekilde geçiş yaptığını doğrulayabilirsiniz.

Testleri çalıştır

Kutuda ITS'yi çalıştırmadan önce test kurulumunuzun aşağıdaki donanım ve yazılımı içerdiğinden emin olun:

  • Bir (1) kutuda ITS
  • Sahneleri görüntülemek için bir (1) adet 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 dosyasını 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ırın

Arka kamerada 0'dan 4'e kadar olan sahneleri, 6'yı ve scene_change'i ç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/N: FA6BM0305016
Şekil 1. Kamera 0 S/N: FA6BM0305016

Sahneleri yeniden dene

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
    

Çalıştırma sahnesi 5

Sahne 5, özel ışıklandırmaya sahip özel kurulum gerektirir (ayrıntılar için Uyumluluk Test Paketi İndirmeleri bölümünden indirebileceğiniz CTS Verifier'daki CameraITS.pdf dosyasına bakın). Sahne 5'i ayrı ayrı çalıştırmalısınız (kutunun dışında).

kamera sahnesi 5
Şekil 2. Kamera sahnesi 5

Ön ve arka kameralar için sahne 5'i 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ç almak

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ı rapor olarak kaydetmek için:
    1. Geç'e basın ve raporu kaydedin.
      kamera ITS raporu
      Şekil 3. Kamera ITS raporu
    2. Raporları cihazdan ç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

Tabletlerin ekran boyutu yaklaşık 10 inç ve ekran çözünürlüğü 1920 x 1200 pikselden yüksek olmalıdır. brightness değeri tablet modeline göre config.yml dosyasında ayarlanmalıdır. Aşağıdaki tablo, ITS testi için önerilen tabletleri ve tabletlerin birlikte çalıştığı DUT'un Android sürümlerini listelemektedir.

Cihaz Ekran boyutu
(inç)
Ekran boyutu
(piksel)
Tablet boyutları
(inç)
Görüntülemek
parlaklık
Görüntülemek
bitler
Destekleniyor
DUT işletim sistemi
Destekleniyor
tablet işletim sistemi
SAMSUNG
Galaxy Tab A8
10.5 1920x1200 9,72x6,37x0,27 192 8 Android13+ Android11+
Xiaomi
Ped 5
11 2560x1600 10,03x6,55x0,27 1024 11 Android12+ Yalnızca Android 11
Lenova
Sekme M10 Artı
10.3 1920x1200 9,61x6,03x0,32 192 8 Android12+ Android9+
SAMSUNG
Galaxy Tab A7
10.4 2000x1200 9,75x6,2x0,28 192 8 Android12+ Android10+
Çuwi
Hi9 Hava 10.1
10.1 2560x1600 9,52x6,77x0,31 192 8 Android7+ Android8+
Asus
ZenPad3
9.7 2048x1536 9,47x6,44x0,28 192 8 Android7+ Android 6+
Huawei
MediaPad m5
10.8 2560x1600 10,18x6,76x0,29 192 8 Android7+ Android8+
Google
Piksel C
10.2 2560x1800 9,53x7,05x0,28 96 8 Android7+ Android 6+
sony
Xperia Z4
10.1 2560x1600 10x6,57x0,24 192 8 Android7+ Android5+

Sıkça Sorulan Sorular

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

RFoV ITS-in-a-box revizyon 1, CameraITS/tests dizinindeki 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 dizinindeki 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, scenes=sensor_fusion içindeki testlerle kamera/jiroskop zamanlama sapmasını ve çoklu kamera sistemi çerçeve senkronizasyonunu test eder. REALTIME özelliği bayrağı için 1 ms'den daha az bir kamera/jiroskop zamanlama sapması gereklidir.

Çoklu kamera cihazları, statik ITS testleri için tek bir donanımla ve kameranın REALTIME özelliği bayrağına sahip olması durumunda bir sensör füzyon donanımıyla test edilebilir.

Aşağıdaki tabloda bir dizi örnek konfigürasyon verilmiştir.

Örnek Kamera Görüş Alanları GERÇEK ZAMANLI? Önerilen teçhizatlar Notlar
1 75° HAYIR Rev 1 veya 2 Android 7.0 veya üzeri
2 75° Evet Rev 1 veya 2 + sensör füzyonu Android 9 veya üzeri
3 75° + 95° Evet Rev 2 + sensör füzyonu Android 9 veya üzeri

S2: Hangi test donanımının kullanımda olduğunu nasıl belirleyebilirim?

Doğru test donanımını belirlemek için grafik mesafe parametresinin doğru olduğundan emin olun. Rev1 test donanımının (RFoV) grafik mesafesi 31 cm'dir ve rev2 donanımının (WFoV) grafik mesafesi 22 cm'dir. 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 config.yml dosyasını düzenleyerek chart_distance parametresini değiştirebilirsiniz.
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

S3: Tablet parlaklığını nasıl kontrol ederim?

Varsayılan olarak tablet parlaklığı 96'ya ayarlıdır.

Android 7.0 ile Android 9 arasındaki sürümleri çalıştıran 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 ile 11 arasındaki sürümleri çalıştıran tabletlerde parlaklığı değiştirmek için değer, brightness bayrağı eklenerek komut satırından 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 sahnenin tamamı çalıştırılmadığı sürece sonuçlar CtsVerifier.apk raporlanmaz.

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

  1. tools/run_all_tests.py dosyasına 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.

    Doğru sahne zaten ekrandaysa 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 grafikler oluşturulur ve stdout ve stderr ekrana yazdırılır.

    Hata ayıklamaya yönelik daha fazla bilgi almak için komut dosyasına print ifadeleri ekleyin. Hata ayıklamaya yönelik test çıktısını artırmak için debug=True bayrağını ekleyin.

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

Sonuçlar yerel ekrana yazdırılır ve tools/run_all_tests.py çalıştırılırken 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: Başarısız olan testleri neden tek tek yeniden çalıştırmak yerine tüm sahne olarak çalıştırmam gerekiyor?

Testler hata ayıklama amacıyla ayrı ayrı çalıştırılabilir, ancak sahnenin tamamı çalıştırılmadığı sürece sonuçlar CtsVerifier.apk raporlanmaz.

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 spesifikasyonu vurgular. Güvenilmez davranışları yakalamak için bu testlerin tüm sahne boyunca grup halinde geçmesi bekleniyor. Örneğin, tek bir güvenilmez test tüm 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ığının %50 olduğu 10 testin olduğu durumu düşünün. Her testi ayrı ayrı çalıştırarak operatörün kameranın Kamera ITS'yi geçmesini sağlama şansı yüksektir. Ancak testler toplu olarak sahne olarak yapılırsa sahnenin geçme şansı 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 betiği tüm sahneleri sırayla çalıştırır. Ancak sahneler ayrı ayrı veya belirli bir sırayla çalıştırılabilir ve CtsVerifier.apk bildirilebilir.

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

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

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

python tools/run_all_tests.py scenes=2
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ının parlaklığı çok düşükse testler doğru sonuç vermeyebilir.

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

Kutu aydınlatma seviyesi (lüks ölçer gerektirir)

Tablet açılışında hedef lüks değerinin 100 ile 300 arasında olmasına dikkat edin.

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

S8: Sensör füzyon testlerindeki hataları nasıl 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ı elde etmek 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 şekilde ortalanmamış.
    2. Görüntüde yeterli özellik bulunmuyor (genellikle FoV veya aydınlatma sorunu).
    3. Döndürülen FAIL geçerlidir ve kamera ile jiroskop arasındaki zamanlama farkının düzeltilmesi gerekir.

S9: Bir test hatasını bildirirken hangi bilgileri eklemeliyim?

Bir test hatasını bildirirken, test için oluşturulan dosyaları ve görselleri ekleyin.

  1. Testi tools/run_all_tests.py aracılığıyla çalıştırdıysanız, hataya sıkıştırılmış bir /tmp/ dizini ekleyin.
  2. Testi tek 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 da 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: 25 cm grafik mesafesinde bulanık görüntüler oluşturan minimum odak mesafesine sahip bir kamerayla sensör_füzyon test sahnesini nasıl çalıştırırım?

Kameranız 25 cm mesafeye odaklanamıyorsa sensör füzyon kutusunun grafik montaj panelini çıkarın. Grafiği DUT'un odaklanabileceği bir mesafeye yerleştirin ve config.yml dosyasındaki chart_distance DUT ile grafik arasında ölçülen mesafeye değiştirin. Şekil 5 bu durumda harita mesafesinin nasıl ölçüleceğine dair bir örneği göstermektedir.

sensör_füzyonu TELE test örneği6
Şekil 5. Sensör füzyon testi sahnesi için ölçüm tablosu mesafesi
  edit config.yml
chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART

S11: 31 cm grafik mesafesinde bulanık görüntüler oluşturan minimum odak mesafesine sahip bir kamera için tablet test sahnelerini nasıl çalıştırırım?

Kameranız 31 cm'de (RFoV test donanımının derinliği) yapılan testlerde yeterince keskin görüntüler üretemezse, kameranızı, grafik sahnesinin kamera alanının yaklaşık %60'ını doldurmasına izin verecek bir mesafede donanımın önüne monte edin. Daha keskin görüntülerle (FoV) görüntüleyin. Bu mesafe kameranın minimum odak mesafesinden daha az olabilir. config.yml dosyasındaki chart_distance 31 cm'de bırakın. Tabletteki grafik ölçeklendirmesi, aşağıdaki tabloda gösterildiği gibi kamera FoV'si tarafından belirlenir:

Kamera Görüş Alanı Grafik ölçeklendirme faktörü
60 > Görüş Alanı > 40 0,67x
40 > FoV > 25 0,5x
FoV < 25 0,33x

S12: Mantıksal çoklu kamera API'si ile hangi kameralarda hangi testler yapılıyor?

Kameranız REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA kullanıyorsa, desteklenen tüm ITS testleri üst düzey mantıksal kamerada çalıştırılır. ITS testlerinin bir alt kümesi, fiziksel alt kameralarda çalıştırılır ve bu testler, SUB_CAMERA_TESTS sabiti altında tools/run_all_tests.py dosyasında listelenir.