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

Bu sayfada Android 11'deki Camera Image Test Suite'te (ITS) yapılan değişiklikler özetlenmektedir. Değişiklikler aşağıdaki kategorilere ayrılır:

Donanım değişiklikleri

Android 11, maliyeti azaltmak 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 tasarımına ek olarak ITS test muhafazaları üretme hakkına sahiptir. Nitelikli satıcılar için şirket bilgileri aşağıdaki gibidir:

Birleşik ü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ı tarafından kullanılan üretim yöntemlerini kullanacak şekilde yeniden tasarlanmıştır. İşlevsellik aynıdır ve basitlik açısından tasarıma rev1a adı verilir. Yeniden tasarım, üreticilerin tüm test muhafazalarını üretmek için tek bir plastik türünü stoklamalarına olanak tanıyor. Ek olarak tablet tutucusu ve ışık tutucuları, tabletler ve LED ışık çubuklarındaki daha büyük çeşitliliği karşılayacak şekilde yeniden tasarlandı.

En son açıklamaları ve mekanik çizimleri indirmek için bkz. RFoV kutusu (rev1a) ve WFoV kutusu (rev2.9) .

Artan tablet seçenekleri

Samsung Galaxy Tab A 10.1 ve Chuwi Hi9 Air 10.1 dahil tabletler önerilen tabletler listesine eklendi. Tabletin, çekilen görüntülerdeki şeritlenmeyi ortadan kaldırmak amacıyla ekran parlaklığını ayarlamak için darbe genişliği modülasyonuna (PWM) sahip olmaması önemlidir.

Önerilen tabletlere ilişkin en son bilgiler için bkz. Tablet gereksinimleri .

Azaltılmış tablet açıklığı

Galaxy Tab A 10.1'in kullanımına izin vermek için, hem RFoV (rev1a) hem de WFoV (rev2) test muhafazaları için tablet açıklığının yüksekliği biraz azaltıldı. Bu değişiklikleri yansıtan revizyonlar rev1a.1 ve rev2.9'dur. Bu çizimler için bkz. RFoV kutusu (rev1a) ve WFoV kutusu (rev2.9) .

Yeni sensör füzyon denetleyicisi

Sensör füzyon denetleyicisinin donanımı, üretilebilirliği artırmak için yeniden tasarlandı. Yeni denetleyici, Arduino'nun üstüne monte edilen özel bir yönlendirme kartı kalkanına sahip Arduino tabanlıdır. Şekil 1'de ekranlama gösterilmektedir ve şekil 2'de muhafazanın mekanik çizimi gösterilmektedir. Yeni denetleyici, motora doğrudan güç sağlayan tek bir 5 V beslemeyle çalıştırılıyor. Elektronikler tamamen USB konektörü aracılığıyla kontrol edilir. Ayrı güç kaynağı, kontrol elektroniği ile servo motor arasında tam izolasyon sağlar. Ek olarak, tek bir kontrolör altı adede kadar servo motoru kontrol edebilir.

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

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

Muhafaza tasarımı

Şekil 2. Muhafaza tasarımı

Android 11, mevcut denetleyicilerle geriye dönük olarak uyumludur. Arduino tabanlı denetleyici kullanımıyla 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 belirlenmiştir. Android 10 cihazı olarak piyasaya sürülebilmesi için tüm MANDATED testlerin geçmesi gerekir. NOT_YET_MANDATED testleri başarısız olabilir ancak CTS doğrulayıcı raporlaması için PASS olarak tablolaştırılır. MANDATED test gereklilikleri yükseltilmiş cihazlar için de geçerlidir. Yükseltilmiş cihazların tüm MANDATED testleri geçmesine yönelik bu gereklilik, eski cihazların da testleri geçmesi gerektiğinden testlerin MANDATED testler haline gelmesinin gecikmesine neden oldu.

Android 11'de MANDATED testler, telefon özelliklerinden ilk API düzeyi işaretiyle kontrol edilir. 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 dosyasında PASS olarak tablolandırılabileceği anlamına gelir.

Örneğin:

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

Sahne aydınlatmasının doğrulanması

Android 11'de sahne aydınlatması, sahnenin köşelerindeki parlaklık analiz edilerek doğrulanıyor. Tüm manuel sahneler aydınlatma için doğrulanır ve tablet tabanlı sahneler, RFoV test ekipmanındaki RFoV kameralar ve WFoV test ekipmanındaki 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 sahne 1, testlerin çoğunluğunu ve toplam test süresinin büyük bir yüzdesini oluşturur. Sahne 1'deki herhangi bir test başarısız olursa, tüm sahnenin yeniden çalıştırılması gerekir. Tasarım gereği, tüm sahnenin yeniden çalıştırılması marjinal testlerin geçişini azaltır. Android 11'de sahne 1, sahne1_1 ve sahne1_2 olmak üzere iki sahneye bölünerek yeniden çalıştırma süreleri kısaltılır.

Aşağıdaki tabloda Pixel 4 arka kameranın farklı sahneler için tablo halindeki 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 isim temizliği de var. Sahne 2 harflerle, sahne 1 ise rakamlarla bölünmüştür. Farklı uzantıların isimlendirilmesi şöyledir:

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

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

Android 11'de aşağıdaki tabloda yer alan testler, ilk API düzeyi bayrağını kullanacak şekilde güncellenmiştir. Bu testlerin tümü, ilk API düzeyi 30'u kullanan test_tonemap_curve testi dışında, ilk API düzeyi 29'u kullanır.

Sahne Test adı İlk API düzeyi Tanım
0 test_tonemap_curve 30 İşlem hattının doğrusal ton haritası ve ideal görüntü girişi ile uygun renk çıktılarına sahip olduğundan emin olun ( test_test_patterns dayanır).
1 test_ae_precapture_trigger 29 Ön yakalama tetikleyicisini kullanırken AE durum makinesini test edin. AE devre dışı bırakıldığında ön yakalama tetikleyicisinin hiçbir etkisi olmadığından emin olun.
test_channel_saturation 29 Doymuş bölgelerdeki renk tonunu 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şikliklerle yapılan testler

Aşağıdaki tabloda yer alan testler Android 11'de güncellenmiştir. Değişiklikler Değişikliklerin açıklaması sütununda açıklanmıştı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 SINIRLI cihazlarda çalışacak şekilde değiştirin.
test_multi_camera_alignment 30 Çoklu kamera yakalama desteklenmiyorsa kameralar arasında tek tek geçiş yapın. Üç ve dört kameralı sistemleri hesaba katmak için kamera seçim mantığını yeniden çalışın ve mono, yalnızca derinlikli ve IR kameraları atlayın.

Yeni testler

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

Sahne Test adı İlk API düzeyi Tanım
0 test_vibration_restrictions 30 Görüntü yakalama sırasında uyarıların ve titreşimlerin etkinleştirilmediğinden emin olun.
2_a test_jpeg_quality 30 Niceleme tablolarının, artan JPEG kalitesi için sıkıştırmayı azalttığı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.
değiştirmek test_scene_change 31 android.control.afSceneChange sahne değişikliği üzerine ileri sürüldü.
6 test_zoom 30 android.control.zoomRatioRange test edin.

scene0/test_vibration_restriction

Bu test belirli bir sahne gerektirmez ancak teste tabi tutulan cihazın (DUT) sert bir yüzeye yerleştirilmesi veya monte edilmesi gerekir. Buna ITS-in-a-box test muhafazalarına montaj da 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şaretleyicilerle tanımlanır. Daha fazla bilgi için bkz. JPEG .

Test, niceleme matrislerini JPEG yakalamasından çıkarır. JPEG yakalamadaki niceleme matrislerinin işaretçisi [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'dir; bu, JPEG yakalamadaki DQT verilerinin boyutunu açıklar. Gömülü veriler şu biçimdedir: [255, 219, 0, 132, 0 (luma işaretçisi), 8x8 luma matrisi, 1 (kroma işaretçisi), 8x8 kroma 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 birçok cihaz için tutarlı görünüyor. İnsan gözü luma'ya kromadan daha duyarlı olduğundan ve JPEG görüntüleri bunu hesaba kattığından, Luma matrisleri, kroma matrislerine kıyasla daha çeşitli değerlere sahip olma eğilimindedir.

Örnek çıkarılan luma ve kroma matrisleri, ITS test donanımıyla sahne2_a yakalayan Pixel 4 arka kamera için 85 ve 25 kalite faktörleri için aşağıda gösterilmiştir. Daha düşük kalite ayarı için matris değerleri önemli ölçüde artar (artan sıkıştırmayı belirtir). Bu matrisler yalnızca debug=True bayrağı uygulandığında komut dosyasıyla birlikte yazdırılır. Kroma matrisleriyle karşılaştırıldığında luma matrislerindeki girişlerdeki daha büyük farklılıklara dikkat edin.

    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, Pixel 4 arka kameranın JPEG kalitesine karşı ortalama matris değerlerini göstermektedir. JPEG kalitesi arttıkça sıkıştırma düzeyi (luma/chroma DQT matris ortalaması) azalır.

Pixel 4 ortalama matris değerleri

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

İddialar

  • [25, 45, 65, 86] için +20 kalite, %20 azalma kuantizasyon matrisi ortalamalarına sahiptir.
  • DQT matrisi 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üler için ( jpeg.quality < 50 ), nicemleme matrisinde sıkıştırmada bir 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. Bir dizi kameranın tekrar tekrar test edilmesiyle, en zorlu yüzün sahne2_d'deki en soldaki yüz olması bekleniyor. Özellikle modelde hem şapka hem de sakal var, yüz sahnelerinde yeni bir şey. Yeni sahneler şekil 5 ve 6'da gösterilmektedir.

sahne2_d

Şekil 5. sahne2_d

sahne2_e

Şekil 6. sahne2_e

İddialar

  • num_faces == 3

scene2_e/test_continuous_picture

Yöntem

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

3A sisteminin 50 karelik çekim sonunda yerleşmesi bekleniyor.

İddialar

  • 3A, yakalamanın sonunda birleşmiş durumdadır.

scene_change/test_scene_change

Yöntem

android.control.afSceneChange bayrağının bir sahne değişikliğiyle geçerli olup olmadığını test etmek için yeni bir test etkinleştirildi. Sahne değişikliği, tabletin bir yüz sahnesi görüntülemesini ve ardından bir sahne değişikliği oluşturmak için tableti açıp kapatmayı kullanır. Sahne, scene2_e'yi yeniden kullanıyor ancak gerekli tablet kontrolü nedeniyle ayrı bir sahnede.

Ayrıca manuel test için, kamera önünde elinizi sallayarak sahne değişikliği gerçekleştirilebilir.

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

test_scene_change için zamanlama diyagramı

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

Vites koşulları:

  • Bir sahne değişikliği varsa ve afSceneChange == 1 ise test PASS değerini döndürür.
  • Bir sahne değişikliği varsa ve afSceneChange == 0 ise, afSceneChange geçerli olması için daha fazla zaman sağlamak üzere sahne değişikliği 5 kare erken 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 ise, çekimde sahne değişikliği elde etmek için sahne değişikliği 30 kare önce kaydırılır.

İddialar

  • Ekran (sahne) geçiş yapar.
  • afSceneChange bayrağı [0, 1] içindedir.
  • Sahne değişikliği olmazsa, 3A birleşir (işlevsel olarak test_continuous_picture ile aynıdır).
  • afSceneChange == 1 ise sahnedeki parlaklık değişmelidir.
  • Önceki sonuçlara göre zamanlama değiştirilerek altı denemede PASS .

sahne6/test_zoom

Yöntem

android.control.zoomRatioRange test etmek için yeni bir sahne gereklidir, çünkü oluşturulan sahneler ya büyütülecek kadar küçük bir özelliğe sahip değildir (sahneler [1, 2, 4]) ya da sahnede kolayca tanımlanamayan birçok nesne bulunmaktadır. , özellik çıkarımını karmaşık hale getiriyor (sahne 3).

Şekil 8, düzenli bir daire dizisine sahip yeni sahneyi göstermektedir. Daire dizisi, DUT/grafik merkezleme gerekliliklerini gevşetir ve her zaman yakalanan görüntünün merkezine yakın bir daire oluşturulmasına olanak tanır. Bu sahnede, siyah kenarlıklı 9x5'lik dairelerden oluşan bir dizi tabletin tamamını kaplamaktadır. Yönü göstermek için sağ üst köşedeki bir dairenin yerini bir kare aldı. Daire boyutları, yaklaşık 80 derecelik bir görüş alanıyla (FoV) yakalanan 4000x3000 sensör için yaklaşık 7500 piksel ( radius=50pixels ) alana sahip bir özelliğe sahiptir.

test_zoom sahnesi

Şekil 8. test_zoom sahnesi

Pixel 4 bulunan daire

Şekil 9. Pixel 4 cam[0] yakınlaştırma = bulunan daire ile [1, 3,33, 5,67, 8] görüntüler

Şekil 9, yakınlaştırma dört adımda 1'den 8x'e çıkarken Pixel 4'ün arka kamerası için çekilen görüntüleri göstermektedir. Bu görüntü seti, hem ön hem de arka kameraların test edilmesini sağlamak üzere iki açıklığa sahip telefon test açıklığının kullanılması dışında, merkezleme konusunda özel bir özen gösterilmeden çekilmiştir. Merkezden bir kayma bekleniyor ve grafik tableti merkezin biraz solunda olduğu için gözlemleniyor. Ek olarak grafik, 8x'ten yüksek yakınlaştırma oranlarıyla test yapmak için yeterli görünüyor.

Çevre bulma

Test, aşağıdakileri test ederek tüm konturları bulan ve kontur aramasını istenen dairelere kadar daraltan findContours kullanan bir find_circle() yöntemini içerir:

  • Konturların alanı 10 pikselden büyük olmalıdır.
  • Konturların NUM_PTS >= 15 olması gerekir.
  • Konturların siyah merkezleri olmalıdır.
  • Konturlar bir daireye benzemelidir, yani alanları konturun pi*r2 alanına yakın olmalıdır.

Test aralığı

android.control.zoomRatioRange 10 adıma bölünmüştür.

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

Bulunan daire görüntünün sınırlarına temas ederse yakınlaştırma durdurulur. Testte yeterli yakınlaştırma seviyesine (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.
  • 10x veya maksimum android.control.zoomRatioRange test edilir.
  • Daire yarıçapı yakınlaştırmayla ölçeklenir (RTOL beklenenin %10'u).
  • Yakınlaştırmayla merkez ölçeklerden daire merkezi uzaklığı (beklenenden %10 RTOL).
  • Yeterli yakınlaştırma düzeyine ulaşıldı (2x).

LIMITED kamera testinde artış

Android 11'de aşağıdaki tabloda yer alan 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, Android 11 ITS gizli kod çözücü halkasını göstermektedir. Gizli kod çözücü halkası, bireysel testlerin hangi test ayarlarına göre yönlendirildiğini gösterir. Geçit, görüntülemeyi kolaylaştırmak için renk kodludur. Ana yolluk öğ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ğunluğunu geçer. 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 şifre çözücü halkası