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:
- Bir WFoV veya RFoV ITS-in-a-box satın alın veya oluşturun.
- Bir tableti Camera ITS yazılımıyla yapılandırın .
- Testleri çalıştırın .
- 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
- Tableti şarj edin ve açın. Bir hesap oluşturmanız istenirse bu adımı atlayın (Kamera ITS, tabletle eşleştirilmiş bir hesap gerektirmez).
- 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.
- Geliştirici modunu etkinleştirin.
- 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
- Kullanılabilir cihazları listelemek için
$ adb devices
çalıştırarak DUT ve grafik kimliklerini belirleyin.device_id
vechart_id
belirlemek için cihazları takıp çıkarın ve bağlanan ve bağlantısı kesilen cihazları gözlemleyin. - Tablet ekranındaki grafikleri gizleyebilecek ipuçlarını ve kullanıcı istemlerini bastırmak için üç test çalıştırması gerçekleştirin.
- Tableti yüzü yukarı bakacak şekilde bir masanın üzerine yerleştirin (tableti kutunun arka paneline takmayın).
- 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). - 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).
- 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
açın ve ardındanadb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
çalıştırın
- Arka kamera(0) testi için bir (1) Pixel NOF26W, S/N: FA6BM0305016. CTS Verifier uygulamasını yüklemek için
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:
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).
Ö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:
- Geç'e basın ve raporu kaydedin.
Şekil 3. Kamera ITS raporu - Raporları cihazdan çekin:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- Rapor dosyasını açın ve
test_result.xml
görüntüleyin.
Şekil 4. Kamera ITS raporları
- Geç'e basın ve raporu kaydedin.
Tablet gereksinimleri
Tabletlerin ekran boyutu yaklaşık 10 inç ve ekran çözünürlüğü 1920 x 1200 pikselden yüksek olmalıdır. Tablet, parlaklık düzeyini ayarlamak için darbe genişliği modülasyonunu (PWM) kullanmamalı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ınadist
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üzenleyerekchart_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 tüm sahne ç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:
-
tools/run_all_tests.py
dosyasınascenes
bayrağını ekleyerek bir sahne yükleyin:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
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=#
Bireysel bir test çalıştırın.
python tests/scene#/test_*.py device=# camera=#
Daha sonra yerel dizinde grafikler oluşturulur ve
stdout
vestderr
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çindebug=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:
config.yml
dosyasını düzenleyin.edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
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
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?
Bir
dialout
grubunda olduğunuzdan emin olun.groups | egrep ‘dialout'
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. …
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:- Telefon düzgün şekilde ortalanmamış.
- Görüntüde yeterli özellik bulunmuyor (genellikle FoV veya aydınlatma sorunu).
- 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.
- Testi
tools/run_all_tests.py
aracılığıyla çalıştırdıysanız, hataya sıkıştırılmış bir/tmp/
dizini ekleyin. - 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.
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 > Görüş Alanı > 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.