Android 11 Kamera Görüntü Test Paketi sürüm notları

Bu sayfada, Android 11'de Kamera Görüntüsü Testi Paketi (ITS) ile ilgili değişiklikler özetlenmiştir. Değişiklikler şu kategorilere girer:

Donanım değişiklikleri

Android 11, maliyeti düşürmek ve kullanılabilirliği artırmak için çeşitli donanım değişiklikleri sunar. Bu değişiklikler aşağıdaki kategorilere girer:

Ek üretici

Rahi Systems, mevcut tedarikçimiz MYWAY Design'a ek olarak ITS test muhafazaları üretmeye uygundur. Uygun tedarikçi firmaların şirket bilgileri aşağıdaki gibidir:

Birleşik üretim yöntemleri

rev1 normal görüş alanı (RFoV) ITS test muhafazası, geniş görüş alanı (WFoV) kutusu ve sensör füzyon kutusu test muhafazalarında kullanılan üretim yöntemlerini kullanacak şekilde yeniden tasarlandı. İşlevler aynıdır ve basitlik açısından tasarım rev1a olarak adlandırılır. Bu yeniden tasarım, üreticilerin tüm test muhafazalarını imal etmek için tek bir plastik türünü stoklamalarına olanak tanıyor. Ek olarak, tablet montajı ve ışık tutucular, tabletlerde ve LED ışık çubuklarında daha fazla çeşitlilik barındırmak için yeniden tasarlandı.

En son açıklamaları ve mekanik çizimleri indirmek için RFoV kutusu (rev1a) ve WFoV kutusu (rev2.9) başlıklı makalelere bakın.

Daha fazla tablet seçeneği

Samsung Galaxy Tab A 10.1 ve Chuwi Hi9 Air 10.1 gibi tabletler, önerilen tabletler listesine eklendi. Ekran parlaklığını, çekilen görüntülerde şerit oluşumunu ortadan kaldıracak şekilde ayarlamak için tablette nabız genişlik modülasyonuna (PWM) sahip olmaması önemlidir.

Önerilen tabletlerle ilgili en güncel bilgiler için Tablet gereksinimleri bölümüne bakın.

Tablet açma işleminin azaltılması

Galaxy Tab A 10.1'in kullanılmasına izin vermek için hem RFoV (rev1a) hem de WFoV (rev2) test muhafazalarında tablet açıklığının yüksekliği biraz azaltılmıştır. Bu değişiklikleri yansıtan düzeltmeler rev1a.1 ve rev2.9'dur. Bu çizimler için RFoV kutusu (rev1a) ve WFoV kutusu (rev2.9) bölümüne bakın.

Yeni sensör füzyon denetleyicisi

Sensör füzyon denetleyicisinin donanımı, üretim kolaylığını artırmak için yeniden tasarlandı. Yeni kontrolör, Arduino'nun üzerine monte edilen özel bir yönlendirme kartı kalkanı ile Arduino tabanlı. Şekil 1'de kalkan, şekil 2'de ise muhafazanın mekanik çizimi gösterilmektedir. Yeni kontrolör, motoru doğrudan besleyen tek bir 5 V güç kaynağıyla çalışır. Elektronikler tamamen USB konnektörü üzerinden kontrol edilir. Ayrı güç kaynağı, kontrol elektroniği ile servo motor arasında tam yalıtım sağlar. Ayrıca tek bir kontrol cihazı altı servo motoru kontrol edebilir.

Arduino'nun üstten görünümü

Şekil 1. Arduino kalkanının üstten görünümü

Muhafaza tasarımı

Şekil 2. Kasa tasarımı

Android 11, mevcut denetleyicilerle geriye dönük uyumludur. Arduino tabanlı kumandayla testi çağırmak için:

python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion

İlk API düzeyi

Android 10'da ITS testleri MANDATED ve NOT_YET_MANDATED olarak belirtilir. Android 10 cihaz olarak kullanıma başlamak için tüm MANDATED testlerinin geçilmesi gerekir. NOT_YET_MANDATED testleri başarısız olabilir ancak CTS doğrulayıcı raporlaması için PASS olarak tabloya eklenir. MANDATED test şartı, yükseltilen cihazlar için de geçerlidir. Yükseltilen cihazların tüm MANDATED testlerini geçmesi şartı, eski cihazların da testleri geçmesi gerektiği için testlerin MANDATED testleri haline gelmesinin gecikmesine neden oldu.

Android 11'de MANDATED testleri, telefon özelliklerindeki ilk API düzeyi işaretçisine göre sınırlandırılır. Android 11'e yükseltilen cihazlarda testler NOT_YET_MANDATED testleri olarak çalıştırılır. Yani bir test başarısız olabilir ancak CtsVerifier.apk'de PASS olarak tabloya eklenir.

Örnek:

  • Android 11'de test_channel_saturation testi, birinci API düzeyi 29'dan yüksek olan cihazlar için MANDATED şeklindedir.
  • Android 10'da test_channel_saturation testi tüm cihazlar için MANDATED'dur.

Sahne aydınlatmasını doğrulama

Android 11'de sahne ışıklandırması, sahnenin köşelerindeki parlaklık analiz edilerek doğrulanır. Tüm manuel sahneler ışıklandırma açısından doğrulanır. Tablet tabanlı sahneler ise RFoV test düzeneğindeki RFoV kameralar ve WFoV test düzeneğindeki WFoV kameralar için doğrulanır. Aydınlatma seviyeleri yetersizse bir hata bildirilir ve test başarısız olur.

Sahne adı değişiklikleri

Android 10'da 1. sahne, testlerin çoğunluğunu ve toplam test süresinin büyük bir yüzdesini oluşturur. 1. sahnedeki herhangi bir test başarısız olursa sahnenin tamamının yeniden çalıştırılması gerekir. Tasarım gereği, sahnenin tamamının yeniden çalıştırılması, marjinal testlerin geçme olasılığını azaltır. Android 11'de 1. sahne, scene1_1 ve scene1_2 olmak üzere iki sahneye bölünerek yeniden çalıştırma süreleri azaltılır.

Aşağıdaki tabloda farklı sahneler için Pixel 4 arka kamerasıyla ilgili test süreleri tablo olarak gösterilmektedir. Test sayısı, test sayısını eşitlemek için değil, test süresini eşitlemek için bölünür.

Ayrıca, ad temizliği de yapılır. 2. sahne harflerden, 1. sahne ise sayılardan oluşur. Farklı uzantıların adlandırılması şu şekildedir:

  • Aynı grafiğe sahip ancak farklı testlere sahip sahneler: *_1,2,3
  • Grafikleri farklı, ancak aynı testleri içeren sahneler: *_a,b,c
Sahne Test sayısı Pixel 4 çalışma süresi (dk:sn)
0 11 1:12
1_1 22 5:12
1_2 13 5:20
2_a 5 3:22
2_b 1 0:24
2_c 1 0:24
3 6 2:04
4 2 2:46

Değişiklikleri test etme

İlk API düzeyini kullanacak şekilde güncellenen testler

Android 11'de aşağıdaki tablodaki testler, ilk API düzeyi işaretçisini kullanacak şekilde güncellendi. Bu testlerin tümü, ilk API düzeyi 30 olan test_tonemap_curve testi dışında ilk API düzeyi 29'u kullanır.

Sahne Test adı İlk API düzeyi Açıklama
0 test_tonemap_curve 30 Ardışık düzenin doğrusal tonlamayla ve ideal resim girişiyle (test_test_patterns üzerinden) doğru renk çıkışlarına sahip olduğundan emin olun.
1 test_ae_precapture_trigger 29 Ön yakalama tetikleyicisini kullanırken AE durum makinesini test edin. AE'de devre dışı bırakılmış ön kayıt tetikleyicisinin hiçbir etkisi olmadığından emin olun.
test_channel_saturation 29 Doymuş bölgelerdeki tonlamayı ortadan kaldırmak için RGB kanallarının benzer değerlere doyduğundan emin olun.
2_a/b/c test_num_faces 29 Yüz sahnelerinde yaş çeşitliliğini artırın.

Değişiklik içeren testler

Aşağıdaki tablodaki testler Android 11'de güncellenmiştir. Değişiklikler, Değişikliklerin açıklaması sütununda açıklanmıştır.

Sahne Test adı Birinci API düzeyi Değişikliklerin açıklaması
1 test_burst_sameness_manual 30 Tolerans değerini %2'ye düşürün.
4 test_aspect_ratio_and_crop 30 SINIRLI cihazlarda çalıştırılacak şekilde değiştirin.
test_multi_camera_alignment 30 Çok kameralı çekim desteklenmiyorsa kameralar arasında tek tek geçiş yapın. Kamera seçim mantığını, üç ve dört kameralı sistemleri hesaba katacak şekilde yeniden çalışın ve mono, yalnızca derinlik ve kızılötesi kameraları atlayın.

Yeni testler

Aşağıdaki tablodaki testler Android 11'de etkindir. Testler tabloda özetlenmiştir ve ayrıntılı açıklamalar aşağıdaki bölümlerde verilmiştir.

Sahne Test adı İlk API düzeyi Açıklama
0 test_vibration_restrictions 30 Görüntü yakalarken uyarıların ve titreşimlerin etkinleştirilmediğinden emin olun.
2_a test_jpeg_quality 30 JPEG kalitesini artırmak için sıkıştırmayı azaltan kesme noktaları tablolarını test edin.
2_d/2_e test_num_faces 30 Yüz yaşı çeşitliliğini artırın.
2_e test_continuous_picture 30 3A'nın android.control.afAvailableModes = CONTINUOUS_PICTURE.'te yerleştiğinden emin olun
değiştir test_scene_change 31 android.control.afSceneChange sahne değişikliğinde iddia edilir.
6 test_zoom 30 android.control.zoomRatioRange testini çalıştırın.

scene0/test_vibration_restriction

Bu test için belirli bir sahne gerekmez, ancak test edilen cihaz (DUT) sert bir yüzeye yerleştirilmelidir veya monte edilmelidir. Kutudaki ITS test muhafazalarına montaj da buna dahildir.

İddialar

  • Kamera kullanımı sırasında titreşim yok

scene2_a/test_jpeg_quality

Yöntem

JPEG dosyasının farklı bölümleri 2 baytlık işaretçilerle tanımlanır. Daha fazla bilgi için JPEG bölümüne bakın.

Test, JPEG yakalamadan kesme matrislerini çıkarır. JPEG yakalamadaki kesme matrisleri için işaretçi, [255, 219] dizisidir. İşaretçi bulunduğunda sonraki iki liste öğesi boyutu belirtir. JPEG DQT boyutu işaretçisi genellikle [0, 132] = 256*0+132 = 132'dir. Bu değer, JPEG yakalamasındaki DQT verilerinin boyutunu dikkate alır. Yerleştirilmiş veriler şu biçimdedir: [255, 219, 0, 132, 0 (luma işaretçisi), 8x8 luma matrisi, 1 (renk işaretçisi), 8x8 renk matrisi].

Luna matrisi işaretleyici için 0 ve renk işaretçisi için 1 değerleri, JPEG dosyasında iki matrisi ayrı DQT bölümlerine ayıran telefonlar da dahil olmak üzere çeşitli cihazlar için tutarlı görünmektedir. İnsan gözü lumaya karşı renk ve JPEG resimlerinin dikkate alınmasından daha hassas olduğundan, Luma matrislerinde renk çeşitliliği genellikle daha yüksektir.

ITS test düzeneği kullanılan Pixel 4 arka kamera çekim sahnesi2_a için 85 ve 25 kalite faktörleri için ayıklanan örnek luma ve kroma matrisleri aşağıda gösterilmiştir. Matris değerleri, daha düşük kalite ayarı için önemli ölçüde artar (artan sıkıştırmayı gösterir). Bu matrisler, yalnızca debug=True işareti uygulanırsa komut dosyasıyla yazdırılır. Parlaklık matrislerindeki girişlerde, renk matrislerine kıyasla daha büyük bir varyasyon olduğunu unutmayın.

    luma matrix (quality = 85)    chroma matrix (quality = 85)

    [[ 5  3  4  4  4  3  5  4]    [[ 5  5  5  7  6  7 14  8]
     [ 4  4  5  5  5  6  7 12]     [ 8 14 30 20 17 20 30 30]
     [ 8  7  7  7  7 15 11 11]     [30 30 30 30 30 30 30 30]
     [ 9 12 17 15 18 18 17 15]     [30 30 30 30 30 30 30 30]
     [17 17 19 22 28 23 19 20]     [30 30 30 30 30 30 30 30]
     [26 21 17 17 24 33 24 26]     [30 30 30 30 30 30 30 30]
     [29 29 31 31 31 19 23 34]     [30 30 30 30 30 30 30 30]
     [36 34 30 36 28 30 31 30]]     [30 30 30 30 30 30 30 30]]

    luma matrix (quality = 25)            chroma matrix (quality = 25)

    [[ 32  22  24  28  24  20  32  28]    [[ 34  36  36  48  42  48  94  52]
     [ 26  28  36  34  32  38  48  80]     [ 52  94 198 132 112 132 198 198]
     [ 52  48  44  44  48  98  70  74]     [198 198 198 198 198 198 198 198]
     [ 58  80 116 102 122 120 114 102]     [198 198 198 198 198 198 198 198]
     [112 110 128 144 184 156 128 136]     [198 198 198 198 198 198 198 198]
     [174 138 110 112 160 218 162 174]     [198 198 198 198 198 198 198 198]
     [190 196 206 208 206 124 154 226]     [198 198 198 198 198 198 198 198]
     [242 224 200 240 184 202 206 198]]     [198 198 198 198 198 198 198 198]]

Şekil 3'te, Pixel 4 arka kamerası ve JPEG kalitesi için ortalama matris değerleri gösterilmektedir. JPEG kalitesi arttıkça sıkıştırma seviyesi (luma/kroma DQT matrisi ortalaması) azalır.

Pixel 4 ortalama matrik değerleri

Şekil 3. Pixel 4 arka kamera luma/renk DQT matrisi ortalamaları ile JPEG kalitesi karşılaştırması

İddialar

  • [25, 45, 65, 86] için kalitede +20, kesme matrisi ortalamalarında% 20 azalma sağlar.
  • DQT matris yükleri kare sayılardır.

Şekil 4'te, testte başarısız olan bir telefon örneği gösterilmektedir. Çok düşük kaliteli resimlerde (jpeg.quality < 50), kesme matrisinde sıkıştırma oranında artış olmadığını unutmayın.

Başarısız test örneği

Şekil 4. Başarısız test örneği

scene2_d/e test_num_faces

Yüz algılama algoritması kontrollerinin yüz çeşitliliğini artırmak için iki yeni yüz algılama sahnesi eklendi. Birkaç kameranın tekrar tekrar test edilmesiyle, en zor yüzün sahne2_d'nin en soldaki yüz olması beklenir. Özellikle modelde hem şapka hem de sakal var. Bu, yüz sahnelerinde yeni bir özellik. Yeni sahneler 5. ve 6. resimlerde gösterilmektedir.

scene2_d

Şekil 5. Sahne2_d

scene2_e

Şekil 6. scene2_e

İddialar

  • num_faces == 3

sahne2_e/test_sürekli_resim

Yöntem

test_continuous_picture testi, scene2_e'yi kullanır ancak yüz sahnelerinden herhangi biriyle etkinleştirilebilir. Bu testte, yakalama isteğinin ilk ayarı android.control.afMode = 4 (CONTINUOUS_PICTURE) kullanılarak 50 VGA çözünürlüğü karesi yakalanmıştır.

3A sisteminin 50 karelik bir çekimin sonunda kararlı hale gelmesi beklenir.

İddialar

  • 3A, yakalamanın sonunda tümleşik durumda.

scene_change/test_scene_change

Yöntem

android.control.afSceneChange işaretinin bir sahne değişikliğiyle iddia edilip edilmediğini test etmek için yeni bir test etkinleştirilir. Sahne değişikliği, tabletin bir yüz sahnesi göstermesi ve ardından sahne değişikliği oluşturmak için tabletin açılıp kapatılmasından oluşur. Sahne, scene2_e'yi yeniden kullanır ancak gerekli tablet kontrolü nedeniyle ayrı bir sahnededir.

Ayrıca manuel test için sahne değişikliği, elinizi kameranın önünde sallayarak da yapılabilir.

Şekil 7'de testin bir zamanlama diyagramı gösterilmektedir. Ekranın kapanması ile yakalama arasındaki zamanlama, önceki yakalamalardan elde edilen etkinlik sonuçlarına göre ayarlanır.

test_scene_change için zaman çizelgesi

Şekil 7. test_scene_change için zaman çizelgesi

Koşulları değiştir:

  • Sahne değişikliği varsa ve afSceneChange == 1 ise test PASS değerini döndürür.
  • Sahne değişikliği ve afSceneChange == 0 varsa sahne değişikliği 5 kare önce kaydırılarak afSceneChange'ın doğrulama yapması için daha fazla zaman tanır.
  • Sahne değişikliği yoksa ve afSceneChange == 1 ise test FAIL döndürür.
  • Sahne değişikliği yoksa ve afSceneChange == 0 ise sahne değişikliği, yakalamada sahne değişikliği elde etmek için 30 kare önceye kayar.

İddialar

  • Ekran (sahne) açma/kapatma düğmesi.
  • afSceneChange işareti [0, 1] aralığındadır.
  • Sahne değişikliği yoksa 3A birleşir (işlevsel olarak test_continuous_picture ile aynıdır).
  • afSceneChange == 1 ise sahnede parlaklık değişmelidir.
  • PASS altı deneme içinde, zamanlama önceki sonuçlara göre değiştirilmiş şekilde.

scene6/test_zoom

Yöntem

Mevcut sahnelerde büyütülebilecek kadar küçük bir özellik olmadığından ([1, 2, 4] numaralı sahneler) veya sahnede kolayca tanımlanamayan çok sayıda nesne bulunduğundan (3 numaralı sahne) android.control.zoomRatioRange özelliğini test etmek için yeni bir sahne gerekir. Bu durum, özellik ayıklama işlemini zorlaştırır.

Şekil 8'de, normal bir daire dizisi içeren yeni sahne gösterilmektedir. Daire dizisi, DUT/grafik ortalaması sırasındaki gereksinimleri hafifletir ve yakalanan görüntünün merkezine yakın bir yerde her zaman bir daire oluşmasını sağlar. Bu sahnede, siyah kenarlıklı 9x5'lik bir daire dizisi tabletin tamamını kaplıyor. Yönü göstermek için bir dairenin yerini sağ üst köşede bir kare alıyor. Daire boyutları, yaklaşık 80 derecelik bir görüş alanıyla (FoV) çekilen 4.000x3.000 piksellik bir sensör için yaklaşık 7.500 piksel (radius=50pixels) alan içeren bir özelliğe sahiptir.

test_yakınlaştırma sahnesi

Şekil 8. test_zoom sahnesi

Pixel 4&#39;te bulunan daire

Şekil 9. Pixel 4 cam[0] zoom = [1, 3,33, 5,67, 8] bulunan daire içeren resimler

Şekil 9'da, yakınlaştırma dört adımda 1'den 8 kata çıktığında Pixel 4'ün arka kamerası için çekilen resimler gösterilmektedir. Bu resim grubu, hem ön hem de arka kameraların test edilmesini sağlamak için iki açıklıklı telefon test açıklığı kullanılması dışında, merkezleme konusunda özel bir özen gösterilmeden çekilmiştir. Grafik tableti merkezden biraz sola kaydırıldığından merkezden bir kayma olması beklenir ve bu gözlemlenir. Ayrıca, grafik 8x'ten yüksek yakınlaştırma oranlarıyla test etmek için yeterli görünüyor.

Çevreleri bulma

Bu test, tüm konturları bulan ve aşağıdakileri test ederek kontur aramasını istenen dairelere indiren findContours kullanılan bir find_circle() yöntemi içerir:

  • Kontürlerin alanı 10 pikselden fazla olmalıdır.
  • Konturlarda NUM_PTS >= 15 olmalıdır.
  • Konturların merkezleri siyah olmalıdır.
  • Konturların daireye benzemesi gerekir. Yani, alanlarının konturdaki pi*r2 alanına yakın olması gerekir.

Test aralığı

android.control.zoomRatioRange 10 adıma ayrılmıştır.

  • [1, 7] testleri [1, 1,67, 2,33, 3, 3,67, 4,33, 5, 5,67, 6,33, 7]

Bulunan daire resmin sınırlarına dokunursa yakınlaştırma durdurulur. Testte (10x) yeterli yakınlaştırma seviyesine ulaşıldığından emin olmak için bir kontrol yapılır.

İddialar

  • Her yakınlaştırma ayarında en az bir daire bulunur.
  • 10 kat veya en fazla android.control.zoomRatioRange test edilir.
  • Daire yarıçapı, yakınlaştırma ile ölçeklenir (RTOL beklenenin% 10'u).
  • Yakınlaştırma ile merkez ölçeklerden dairesel uzaklık (RTOL beklenenin% 10'u).
  • Yeterli yakınlaştırma düzeyine ulaşılır (2x).

LIMITED kamera testinde artış yapıldı

Android 11'de aşağıdaki tablodaki testler LIMITED kameraları test eder. Yeni testlere ek olarak scene4/test_aspect_ratio_and_crop testi, ilk API düzeyi 30 veya daha yüksek olan LIMITED cihazlarının test edilmesini sağlayacak şekilde güncellenir.

Sahne Test adı
0 test_vibration_restrictions
2_a test_jpeg_quality
2_d/2_e test_num_faces
4 test_aspect_ratio_and_crop
6 test_zoom

Şekil 10'da, Android 11 ITS gizli kod çözücü halkası gösterilmektedir. Gizli kod çözücü halka, her bir testin hangi test ayarlarına göre kısıtlandığını gösterir. Görüntüleme kolaylığı için filtreleme renk kodludur. Ana engelleme öğeleri şunlardır:

  • MANUAL_SENSOR
  • READ_3A *MANUAL SENSOR gerektirir
  • COMPUTE_TARGET_EXPOSURES *MANUAL SENSOR gerektirir
  • PER_FRAME_CONTROL
  • RAW
  • SENSORS *REALTIME
  • MULTI_CAMERA

MANUAL SENSOR, READ_3A, COMPUTE_TARGET_EXPOSURES ve PER_FRAME_CONTROL, testlerin çoğunu kontrol eder. Ayrıca, LIMITED cihazlar için etkinleştirilen testler açık yeşil renkle vurgulanır.

gizli kod çözücü halkası

Şekil 10. Android 11 gizli kod çözücü halkası