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 aşağıdaki kategorilere ayrılır:

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 ayrılır:

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ştirilmiş üretim yöntemleri

rev1 normal görüş alanı (RFoV) kutu içinde 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 tasarım, basitlik açısından rev1a olarak adlandırılır. Yeniden tasarım, üreticilerin tüm test muhafazalarını üretmek için tek bir plastik türü stoklamasına olanak tanır. Ayrıca tablet ve LED ışık çubuklarında daha fazla çeşitlilik sunmak için tablet montajı ve ışık tutucular 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. Tabletin, çekilen resimlerdeki bantları ortadan kaldırmak için ekran parlaklığını ayarlayan darbe genişliği modülasyonu (PWM) içermemesi önemlidir.

Önerilen tabletler hakkında en son bilgiler için Tablet gereksinimleri bölümüne bakın.

Tablet açılma sayısının 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 birleştirme 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. Muhafaza tasarımı

Android 11, mevcut denetleyicilerle geriye dönük uyumludur. Arduino tabanlı denetleyiciyle testi başlatmak 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 belirlenir. Android 10 cihaz olarak kullanıma sunulmak için tüm MANDATED testlerinin başarılı olması gerekir. NOT_YET_MANDATED testleri başarısız olabilir ancak CTS doğrulayıcı raporlaması için PASS olarak tabloya eklenir. MANDATED testi koşulu, 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şaretine 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. Bu, bir testin başarısız olabileceği ancak CtsVerifier.apk'de PASS olarak tabloya eklenebileceği anlamına gelir.

Örnek:

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

Sahne aydınlatmasını doğrulama

Android 11'de sahne aydınlatması, 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ğ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çişini 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, Pixel 4 arka kamerasının farklı sahneler için tablolaştırılmış test süreleri 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 harflerle, 1. sahne ise rakamlarla bölünür. Farklı uzantıların adlandırılması şu şekildedir:

  • Aynı grafiğe sahip ancak farklı testlere sahip sahneler: *_1,2,3
  • Aynı testler farklı grafiklerle gösterilen 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 Doğrusal ton haritası ve ideal resim girişi (test_test_patterns kullanır) ile ardışık düzenin doğru renk çıkışlarına sahip olduğundan emin olun.
1 test_ae_precapture_trigger 29 Çekim öncesi tetikleyiciyi 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 Doygun bölgelerdeki tonu ortadan kaldırmak için RGB kanallarının benzer değerlere doygun olduğ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çıklanır.

Sahne Test adı İlk 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 Resim çekerken uyarıların ve titreşimlerin etkin olmadığından 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ştirilmeli 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 boyut işaretçisi genellikle [0, 132] = 256*0+132 = 132'dir. Bu değer, JPEG yakalamadaki DQT verilerinin boyutunu belirtir. Yerleştirilen veriler şu biçimdedir: [255, 219, 0, 132, 0 (luma işaretçisi), 8x8 luma matrisi, 1 (chroma işaretçisi), 8x8 chroma matrisi].

Luma matrisi işaretçisi için 0 ve renk matrisi işaretçisi için 1, iki matrisi JPEG dosyasında ayrı DQT bölümlerine ayıran telefonlar da dahil olmak üzere çeşitli cihazlarda tutarlı görünüyor. İnsan gözü, renk doygunluğuna kıyasla parlaklık değerine daha duyarlı olduğundan ve JPEG resimleri bunu hesaba kattığından parlaklık matrisleri, renk doygunluğu matrislerine kıyasla daha fazla değere sahip olma eğilimindedir.

Aşağıda, ITS test düzeneğiyle scene2_a'yı çeken Pixel 4 arka kamera için 85 ve 25 kalite faktörlerine sahip örnek ayıklanmış parlaklık ve renk matrisleri gösterilmektedir. 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 birlikte 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 matris değerleri

Şekil 3. Pixel 4 arka kamerası luma/chroma DQT matrisi ortalamaları ve JPEG kalitesi

İddialar

  • [25, 45, 65, 86] için kalitede +20, kesme matrisi ortalamalarında% 20 azalma sağlar.
  • DQT matrisi yükü 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 scene2_d'deki 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. scene2_d

scene2_e

Şekil 6. scene2_e

İddialar

  • num_faces == 3

scene2_e/test_continuous_picture

Yöntem

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

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

İddialar

  • 3A, yakalama işleminin sonunda birleşik durumdadır.

scene_change/test_scene_change

Yöntem

android.control.afSceneChange işaretinin bir sahne değişikliğiyle doğrulanıp doğrulanmadığını 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 zaman çizelgesi 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

Vardiya koşulları:

  • 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, afSceneChange'un iddia etmesine daha fazla zaman tanımak için 5 kare önceye kaydırılı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üğmeleri.
  • afSceneChange işareti [0, 1] aralığındadır.
  • Sahne değişikliği yoksa 3A birleşir (test_continuous_picture ile işlevsel olarak 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. Çember dizisi, DUT/grafik merkezlemeyle ilgili koşulları gevşetir ve her zaman çekilen görüntünün ortasına yakın bir çemberin görünmesini sağlar. Bu sahnede, siyah kenarlıklı 9x5'lik bir daire dizisi tabletin tamamını kaplıyor. Yönlendirmeyi göstermek için sağ üst köşedeki bir daire kareyle değiştirilir. 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 kaplayan bir özelliğe sahiptir.

test_zoom 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 kadar artarken Pixel 4'ün arka kamerasıyla çekilen resimler gösterilmektedir. Bu resim grubu, hem ön hem de arka kameraların test edilmesini sağlamak için telefonun test açıklığını iki açıklıkla kullanmak dışında, merkezleme konusunda özel bir özen gösterilmeden çekilmiştir. Grafik tableti merkezden biraz sola kaydığı için 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

Test, aşağıdakileri test ederek tüm kontürleri bulan ve kontürler aramasını istenen dairelere daraltan findContours kullanan bir find_circle() yöntemi içerir:

  • Konturların alanı 10 pikselden büyük olmalıdır.
  • Konturlarda NUM_PTS >= 15 olmalıdır.
  • Konturların merkezleri siyah olmalıdır.
  • Konturların bir daireye benzemesi gerekir. Yani, alanlarının, konturun 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 yeterli yakınlaştırma düzeyine (10x) ulaşıldığından emin olmak için bir kontrol vardır.

İddialar

  • Her yakınlaştırma ayarında en az bir daire bulunur.
  • 10 kat veya en fazla android.control.zoomRatioRange test edilir.
  • Çember yarıçapı, yakınlaştırmayla ölçeklenir (RTOL, beklenen değerden% 10).
  • Yakınlaştırmayla birlikte daire merkezinin merkez ölçeklerinden sapması (RTOL, beklenen değerden% 10).
  • Yeterli yakınlaştırma düzeyine ulaşılır (2x).

Sınırlı kamera testi artırı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 test edilmesini sağlayacak şekilde güncellendi.

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ü

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