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

Bu sayfada, Android 11'deki Kamera Görüntüsü Test Paketi (ITS) ile ilgili değişiklikler özetlenmektedir. 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 sağlayıcıların şirket bilgileri aşağıdaki gibidir:

Birleştirilmiş üretim yöntemleri

rev1 normal görüş alanı (RFoV) ITS-in-a-box 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 tür plastik stoklamasına olanak tanır. Ayrıca, tablet montajı ve ışık tutucular, tabletlerde ve LED ışık çubuklarında daha fazla çeşitliliği destekleyecek şekilde 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. Tablette, çekilen resimlerdeki bantlanmayı önlemek için ekran parlaklığını ayarlamak üzere darbe genişliği modülasyonu (PWM) olmaması önemlidir.

Önerilen tabletlerle ilgili en son bilgiler için Tablet gereksinimleri başlıklı makaleyi inceleyin.

Tablet açılış süresinin kısalması

Galaxy Tab A 10.1'in kullanılabilmesi için hem RFoV (rev1a) hem de WFoV (rev2) test muhafazalarında tablet açıklığı yükseklik açısından 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) başlıklı makalelere bakın.

Yeni sensör füzyon denetleyicisi

Sensör füzyonu denetleyicisinin donanımı, üretilebilirliği artırmak için yeniden tasarlandı. Yeni kontrol cihazı, Arduino'nun üzerine monte edilen özel bir yönlendirme kartı kalkanı ile Arduino tabanlıdır. Şekil 1'de kalkan, Şekil 2'de ise muhafazanın mekanik çizimi gösterilmektedir. Yeni kontrol cihazı, motoru doğrudan çalıştıran tek bir 5 V güç kaynağıyla çalışır. Elektronik parçalar 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ı adede kadar servo motoru kontrol edebilir.

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

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

Yapı tasarımı

Şekil 2. Yapı tasarımı

Android 11, mevcut kumandalarla geriye dönük olarak uyumludur. Arduino tabanlı kontrol cihazıyla testi başlatmak için şunu kullanın:

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 sunmak 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 tablolandırılır. MANDATED testleri şartı, yükseltilmiş cihazlar için de geçerlidir. Yükseltilmiş cihazların tüm MANDATED testlerini geçmesiyle ilgili bu şart, eski cihazların da testleri geçmesi gerektiğinden testlerin MANDATED testlerine dönüşmesini geciktirdi.

Android 11'de MANDATED testleri, telefon özelliklerindeki ilk API düzeyi işaretiyle sınırlanır. Android 11'e yükseltme yapan cihazlarda testler NOT_YET_MANDATED testleri olarak çalıştırılır. Bu nedenle, bir test başarısız olabilir ancak CtsVerifier.apk'de PASS olarak tablolandırılabilir.

Örneğin:

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

Sahne aydınlatması doğrulanıyor

Android 11'de sahne aydınlatması, sahnenin köşelerindeki parlaklık analiz edilerek doğrulanır. Tüm manuel sahneler aydınlatma açısından, tablet tabanlı sahneler ise RFoV test düzeneğindeki RFoV kameralar ve WFoV test düzeneğindeki WFoV kameralar için RFoV açısından doğrulanır. Işık seviyeleri yetersizse 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 bölümünü oluşturur. 1. sahnedeki testlerden herhangi biri başarısız olursa sahnenin tamamı yeniden çalıştırılmalıdır. Tasarım gereği, tüm sahnenin yeniden çalıştırılması marjinal testlerin geçmesini azaltır. Android 11'de, sahne 1 iki sahneye (sahne1_1 ve sahne1_2) bölünerek yeniden oynatma süreleri kısaltılır.

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

Ayrıca, ad temizleme işlemi de yapılır. 2. sahne harflerle, 1. sahne ise sayılarla bölünür. Farklı uzantıların adlandırması şöyledir:

  • Aynı grafiğe sahip ancak farklı testlerin yapıldığı sahneler: *_1,2,3
  • Farklı grafiklere ancak aynı testlere sahip sahneler: *_a,b,c
Sahne Test sayısı Pixel 4 çalışma süresi (dakika:saniye)
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

Testler, ilk API düzeyini kullanacak şekilde güncellendi

Android 11'de, aşağıdaki tablodaki testler ilk API düzeyi işaretini kullanacak şekilde güncellenir. Bu testlerin tümünde, test_tonemap_curve testi hariç ilk API düzeyi 29'dur. test_tonemap_curve testinde ise ilk API düzeyi 30'dur.

Sahne Test adı İlk API düzeyi Açıklama
0 test_tonemap_curve 30 İşleme hattının, doğrusal ton eşleme ve ideal görüntü girişiyle uygun renk çıkışlarına sahip olduğundan emin olun (test_test_patterns'ya bağlıdır).
1 test_ae_precapture_trigger 29 Ön çekim tetikleyicisini kullanırken AE durum makinesini test edin. AE devre dışı bırakılmış ön yakalama tetikleyicisinin hiçbir etkisi olmadığından emin olun.
test_channel_saturation 29 Doygun bölgelerdeki renk tonunu 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üzlerin yer aldığı sahnelerde yaş çeşitliliğini artırın.

Değişiklik içeren testler

Aşağıdaki tablodaki testler Android 11'de güncellenir. 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ı %2'ye düşürün.
4 test_aspect_ratio_and_crop 30 Yalnızca SINIRLI cihazlarda çalışacak şekilde değiştirin.
test_multi_camera_alignment 30 Çok kameralı çekim desteklenmiyorsa kameraları tek tek inceleyin. Üç ve dört kameralı sistemleri hesaba katmak için kamera seçimi mantığını yeniden düzenleyin ve mono, yalnızca derinlik ve IR kameraları atlayın.

Yeni testler

Aşağıdaki tablodaki testler Android 11'de etkinleştirilmiştir. Testler tabloda özetlenmiş, ayrıntılı açıklamalar ise sonraki bölümlerde verilmiştir.

Sahne Test adı İlk API düzeyi Açıklama
0 test_vibration_restrictions 30 Fotoğraf çekerken uyarıların ve titreşimin etkinleştirilmediğinden emin olun.
2_a test_jpeg_quality 30 Kuantizasyon tablolarının, JPEG kalitesini artırmak için sıkıştırmayı azalttığını test edin.
2_d/2_e test_num_faces 30 Yüzlerdeki yaş çeşitliliğini artırın.
2_e test_continuous_picture 30 3A'nın android.control.afAvailableModes = CONTINUOUS_PICTURE.'da yerleştiğinden emin olun.
değiştir test_scene_change 31 android.control.afSceneChange sahne değişikliğinde onaylandı.
6 test_zoom 30 Test android.control.zoomRatioRange.

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. Buna ITS-in-a-box test muhafazalarına montaj da dahildir.

Asserts

  • Kamera kullanılırken titreşim olmaması

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ünü inceleyin.

Test, nicemleme matrislerini JPEG yakalamadan çıkarır. JPEG yakalamadaki nicemleme matrisleri için işaretleyici, [255, 219] dizisidir. İşaretçi bulunduğunda sonraki iki liste öğesi boyuttur. JPEG DQT boyut işaretçisi genellikle [0, 132] = 256*0+132 = 132 olur. Bu, JPEG yakalamadaki DQT verilerinin boyutunu ifade eder. Yerleştirilmiş veriler şu biçimdedir: [255, 219, 0, 132, 0 (parlaklık işaretçisi), 8x8 parlaklık matrisi, 1 (renk işaretçisi), 8x8 renk matrisi].

Luma matris işaretçisi için 0 ve kroma 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ı bir şekilde görünür. İnsan gözü, kromaya kıyasla lümaya daha duyarlı olduğundan ve JPEG resimler bunu dikkate aldığından lüma matrisleri, kroma matrislerine kıyasla daha çeşitli değerlere sahip olma eğilimindedir.

ITS test düzeneğiyle scene2_a'yı yakalayan Pixel 4 arka kamerası için 85 ve 25 kalite faktörlerinde çıkarılan örnek parlaklık ve renk matrisleri aşağıda gösterilmiştir. Daha düşük kalite ayarında matris değerleri önemli ölçüde artar (sıkıştırmanın arttığını gösterir). Bu matrisler yalnızca debug=True işareti uygulanırsa komut dosyasıyla birlikte yazdırılır. Luma matrislerindeki girişlerde, kroma 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ı ile JPEG kalitesine kıyasla ortalama matris değerleri gösterilmektedir. JPEG kalitesi arttıkça sıkıştırma düzeyi (parlaklık/renk DQT matris ortalaması) azalır.

Pixel 4 ortalama matris değerleri

3.Şekil Pixel 4 arka kamera parlaklık/renk DQT matrisi ortalamaları ve JPEG kalitesi

Asserts

  • [25, 45, 65, 86] için kalitede +20, nicemleme matrisi ortalamalarında% 20 azalmaya neden olur.
  • DQT matris yükleri kare sayılardır.

Şekil 4'te testi geçemeyen bir telefon örneği gösterilmektedir. Çok düşük kaliteli görüntülerde (jpeg.quality < 50) nicemleme matrisinde sıkıştırma 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 tanıma algoritması kontrollerinin yüz çeşitliliğini artırmak için iki yeni yüz algılama sahnesi eklendi. Bir dizi kameranın tekrar tekrar test edilmesiyle, en zorlu yüzün scene2_d'deki en soldaki yüz olması bekleniyor. Özellikle modelde hem şapka hem de sakal var. Bu, yüz sahnelerinde yeni bir özellik. Yeni sahneler 5. ve 6. şekilde gösterilmektedir.

scene2_d

Şekil 5. scene2_d

scene2_e

Şekil 6. scene2_e

Asserts

  • num_faces == 3

scene2_e/test_continuous_picture

Yöntem

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

3A sisteminin 50 karelik bir çekimin sonunda yerleşmesi beklenir.

Asserts

  • 3A, yakalama sonunda birleşmiş durumda.

scene_change/test_scene_change

Yöntem

android.control.afSceneChange işaretinin sahne değişikliğiyle onaylanıp onaylanmadığını test etmek için yeni bir test etkinleştirilir. Sahne değişikliği için yüz sahnesi gösteren tablet kullanılıyor ve ardından sahne değişikliği oluşturmak için tablet açılıp kapatılıyor. Sahne, scene2_e'yi yeniden kullanır ancak gerekli tablet kontrolü nedeniyle ayrı bir sahnede yer alır.

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

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

test_scene_change için zamanlama şeması

Şekil 7. test_scene_change için zamanlama şeması

Vardiya koşulları:

  • Sahne değişimi varsa ve afSceneChange == 1 varsa test PASS değerini döndürür.
  • Sahne değişikliği varsa ve afSceneChange == 0 varsa sahne değişikliği, afSceneChange'nin onaylanması için daha fazla zaman tanımak amacıyla 5 kare önceye kaydırılır.
  • Sahne değişikliği yoksa ve afSceneChange == 1 ise test FAIL değerini döndürür.
  • Sahne değişikliği yoksa ve afSceneChange == 0, sahne değişikliği yakalamada sahne değişikliği elde etmek için 30 kare önceye kaydırılır.

Asserts

  • Ekran (sahne) geçişleri.
  • afSceneChange işareti [0, 1] aralığındadır.
  • Sahne değişikliği yoksa 3A yakınlaşır (test_continuous_picture ile işlevsel olarak aynıdır).
  • afSceneChange == 1 ise parlaklık sahnede değişmelidir.
  • Önceki sonuçlara göre zamanlaması değiştirilerek altı deneme içinde PASS.

scene6/test_zoom

Yöntem

android.control.zoomRatioRange'yı test etmek için yeni bir sahne gerekir. Bunun nedeni, mevcut sahnelerde büyütülebilecek kadar küçük bir özellik olmaması (1, 2, 4 numaralı sahneler) veya sahnede kolayca tanımlanamayan çok sayıda nesne bulunarak özellik çıkarımını zorlaştırmasıdır (3 numaralı sahne).

Şekil 8'de, dairelerin düzenli bir dizilimini içeren yeni sahne gösterilmektedir. Daire dizisi, DUT/grafik merkezleme ile ilgili koşulları gevşetir ve yakalanan görüntünün merkezine yakın bir dairenin her zaman görünmesine olanak tanır. Bu sahnede, siyah kenarlıklı 9x5 daire dizisi tabletin tamamını kaplıyor. Yönü göstermek için sağ üst köşedeki dairelerden biri kareyle değiştirilir. Daire boyutları, yaklaşık 80 derecelik bir görüş alanı (FoV) ile çekilen 4.000 x 3.000 sensör için yaklaşık 7.500 piksellik (radius=50pixels) bir alana sahip 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] images with found circle

Şekil 9'da, Pixel 4'ün arka kamerasıyla çekilen görüntüler gösterilmektedir. Görüntülerde, dört adımda 1x'ten 8x'e yükselen yakınlaştırma seviyesi gösterilmektedir. Bu resim grubu, ön ve arka kameraların test edilmesini sağlamak için iki açıklıklı telefon test diyaframı kullanılması dışında, ortalama konusunda özel bir dikkat gösterilmeden çekilmiştir. Merkezden uzaklaşma beklenir ve grafik tableti merkezden biraz solda olduğu için bu durum gözlemlenir. Ayrıca, grafiğin 8x'ten yüksek yakınlaştırma oranlarıyla test etmek için yeterli olduğu görülüyor.

Çevreleri bulma

Test, tüm konturları bulan ve aşağıdakileri test ederek kontur aramasını istenen dairelerle sınırlayan find_circle() yöntemini içerir:findContours

  • 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 daireye benzemelidir. Yani alanları, konturun pi*r2 alanına yakın olmalıdır.

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 seviyesine (10x) ulaşıldığından emin olmak için bir kontrol yapılır.

Asserts

  • Her yakınlaştırma ayarında en az bir daire bulunur.
  • 10 kat veya maksimum android.control.zoomRatioRange test edilir.
  • Çember yarıçapı, yakınlaştırma ile ölçeklenir (beklenenden% 10 RTOL).
  • Merkezden uzaklık, merkez ölçekli daire, yakınlaştırma ile ölçeklenir (beklenenden% 10 RTOL).
  • Yeterli yakınlaştırma düzeyine (2x) ulaşıldı.

SINIRLI kamera testi artırıldı

Android 11'de aşağıdaki tablodaki testler LIMITED kamerayı 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 çözme halkası gösterilmektedir. Gizli kod çözme halkası, her bir testin hangi test ayarlarıyla sınırlı olduğunu gösterir. Giriş, görüntülemeyi kolaylaştırmak için renk kodlarıyla işaretlenir. Başlıca sınırlama öğeleri şunlardır:

  • MANUAL_SENSOR
  • READ_3A *gerektirir MANUAL SENSOR
  • COMPUTE_TARGET_EXPOSURES *gerektirir MANUAL SENSOR
  • 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şille vurgulanır.

gizli kod çözme halkası

10.şekil Android 11 gizli şifre çözme halkası