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
- İlk API düzeyinde zorunlu testler
- Test ışığı doğrulandı
- Sahnenin adı değiştirildiğinde
- Değişiklikleri ve eklemeleri test etme
- Sınırlı kamera testini artırdık
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
- Birleştirilmiş üretim yöntemleri
- Daha fazla tablet seçeneği
- Tablet açma işlemi azaltıldı
- Yeni sensör birleştirme denetleyicisi
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:
Rahi Systems Inc.
48303 Fremont Blvd, Fremont CA 94538, ABD
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802MYWAY design
4F., No. 163, Fu-Ying Road, XinZhuang District, New Taipei City, Tayvan
twmyway.com
sales@myway.tw
+886-2-29089060
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.
Şekil 1. Arduino kalkanının üstten görünü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
testiMANDATED
olur. - Android 10'da
test_channel_saturation
testi tüm cihazlar içinMANDATED
'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.
Ş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.
Ş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.
Şekil 5. scene2_d
Ş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.
Şekil 7. test_scene_change için zaman çizelgesi
Vardiya koşulları:
- Sahne değişikliği varsa ve
afSceneChange == 1
ise testPASS
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 testFAIL
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.
Şekil 8. test_zoom sahnesi
Ş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
gerektirirCOMPUTE_TARGET_EXPOSURES
*MANUAL SENSOR
gerektirirPER_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.
Şekil 10. Android 11 gizli kod çözücüsü