یادداشت‌های انتشار مجموعه تست تصویر دوربین اندروید 11

این صفحه تغییرات انجام شده در مجموعه تست تصویر دوربین (ITS) در اندروید 11 را خلاصه می‌کند. تغییرات در دسته‌های زیر قرار می‌گیرند:

تغییرات سخت افزاری

اندروید 11 چندین تغییر سخت افزاری را برای کاهش هزینه و افزایش در دسترس بودن معرفی می کند. این تغییرات در دسته های زیر قرار می گیرند:

سازنده اضافی

رهی سیستم علاوه بر تامین کننده موجود ما، طراحی MYWAY، واجد شرایط تولید محفظه های تست ITS است. اطلاعات شرکت برای فروشندگان واجد شرایط به شرح زیر است:

روش های تولید یکپارچه

محفظه تست میدان دید معمولی rev1 (RFoV) ITS-in-a-box برای استفاده از روش‌های تولیدی که توسط جعبه میدان دید گسترده (WFoV) و محفظه‌های تست جعبه فیوژن سنسور استفاده می‌شود، دوباره طراحی شده است. عملکرد یکسان است و برای سادگی، طراحی به عنوان rev1a نامیده می شود. طراحی مجدد به سازندگان اجازه می دهد تا یک نوع پلاستیک را برای تولید تمام محفظه های آزمایشی ذخیره کنند. علاوه بر این، پایه تبلت و نگهدارنده‌های نور برای کنترل تغییرات بیشتر در تبلت‌ها و میله‌های نور LED دوباره طراحی شده‌اند.

برای دانلود آخرین توضیحات و نقشه های مکانیکی، جعبه RFoV (rev1a) و جعبه WFoV (rev2.9) را ببینید.

گزینه های تبلت افزایش یافته است

تبلت هایی از جمله Samsung Galaxy Tab A 10.1 و Chuwi Hi9 Air 10.1 به لیست تبلت های پیشنهادی اضافه می شوند. مهم است که تبلت دارای مدولاسیون عرض پالس (PWM) برای تنظیم روشنایی صفحه برای از بین بردن نواربندی در تصاویر گرفته شده نیست.

برای آخرین اطلاعات در مورد تبلت های توصیه شده، به الزامات رایانه لوحی مراجعه کنید.

کاهش باز شدن تبلت

برای اجازه استفاده از Galaxy Tab A 10.1، دهانه تبلت برای هر دو محفظه تست RFoV (rev1a) و WFoV (rev2) کمی از ارتفاع کاهش می یابد. تجدید نظرهایی که منعکس کننده این تغییرات هستند rev1a.1 و rev2.9 هستند. برای این نقشه‌ها، جعبه RFoV (rev1a) و جعبه WFoV (rev2.9) را ببینید.

کنترل کننده فیوژن سنسور جدید

سخت افزار کنترل کننده فیوژن سنسور برای بهبود قابلیت ساخت مجدد طراحی شده است. کنترلر جدید مبتنی بر آردوینو است، با یک محافظ برد مسیریابی سفارشی که در بالای آردوینو قرار می گیرد. شکل 1 سپر و شکل 2 نقشه مکانیکی محفظه را نشان می دهد. کنترلر جدید با یک منبع تغذیه 5 ولتی تغذیه می شود که به طور مستقیم موتور را تغذیه می کند. قطعات الکترونیکی به طور کامل از طریق کانکتور USB کنترل می شوند. منبع تغذیه جداگانه امکان جداسازی کامل بین الکترونیک کنترل و سروو موتور را فراهم می کند. علاوه بر این، یک کنترلر می تواند تا شش موتور سروو را کنترل کند.

نمای بالای آردوینو

شکل 1. نمای بالایی شیلد آردوینو

طراحی محوطه

شکل 2. طراحی محوطه

اندروید 11 با کنترلرهای موجود سازگار است. برای فراخوانی تست با کنترلر مبتنی بر آردوینو از:

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

سطح اول API

در Android 10، تست‌های ITS به‌عنوان MANDATED و NOT_YET_MANDATED تعیین می‌شوند. برای راه اندازی به عنوان یک دستگاه اندروید 10، تمام تست های MANDATED باید قبول شوند. آزمون‌های NOT_YET_MANDATED ممکن است شکست بخورند، اما به‌عنوان PASS برای گزارش تأییدکننده CTS جدول‌بندی می‌شوند. الزام تست های MANDATED برای دستگاه های ارتقا یافته نیز اعمال می شود. این الزام برای دستگاه‌های ارتقا یافته برای گذراندن تمام تست‌های MANDATED باعث شد که آزمایش‌ها در تبدیل شدن به آزمون‌های MANDATED به تأخیر بیفتند زیرا دستگاه‌های قدیمی‌تر نیز باید آزمایش‌ها را پشت سر بگذارند.

در اندروید 11، تست‌های MANDATED توسط اولین پرچم سطح API از ویژگی‌های گوشی انتخاب می‌شوند. برای دستگاه‌هایی که به Android 11 ارتقا می‌یابند، آزمایش‌ها به‌عنوان تست NOT_YET_MANDATED اجرا می‌شوند، به این معنی که یک آزمایش ممکن است ناموفق باشد اما به‌عنوان PASS در CtsVerifier.apk جدول‌بندی شود.

مثلا:

  • در Android 11، تست test_channel_saturation برای دستگاه‌هایی با سطح API اول بیشتر از 29 MANDATED است.
  • در اندروید 10، تست test_channel_saturation برای همه دستگاه‌ها MANDATED است.

تایید نور صحنه

در اندروید 11، نور صحنه با تجزیه و تحلیل روشنایی در گوشه های صحنه تایید می شود. تمام صحنه‌های دستی برای نور و صحنه‌های مبتنی بر تبلت برای دوربین‌های RFoV در دستگاه تست RFoV و دوربین‌های WFoV در دستگاه تست WFoV تأیید می‌شوند. اگر سطوح روشنایی ناکافی باشد، یک خطا گزارش می شود و آزمایش با شکست مواجه می شود.

تغییر نام صحنه

در اندروید 10، صحنه 1 اکثر تست ها و درصد زیادی از کل زمان تست را به خود اختصاص می دهد. اگر هر آزمایشی در صحنه 1 ناموفق باشد، کل صحنه باید دوباره اجرا شود. با طراحی، اجرای مجدد کل صحنه، گذر از آزمون های حاشیه ای را کاهش می دهد. در اندروید 11، با تقسیم صحنه 1 به دو صحنه، صحنه 1_1 و صحنه 1_2، زمان اجرا کاهش می یابد.

جدول زیر زمان های تست جدول بندی شده برای دوربین عقب Pixel 4 را برای صحنه های مختلف نشان می دهد. تعداد تست ها برای یکسان کردن زمان تست تقسیم می شود، نه برای یکسان سازی تعداد تست ها.

علاوه بر این، یک نام پاکسازی وجود دارد. صحنه 2 با حروف و صحنه 1 با اعداد تقسیم شده است. نامگذاری برای پسوندهای مختلف عبارت است از:

  • صحنه هایی با نمودار یکسان، اما تست های متفاوت: *_1,2,3
  • صحنه هایی با نمودارهای مختلف، اما تست های مشابه: *_a,b,c
صحنه تعداد تست ها زمان اجرای Pixel 4 (دقیقه: ثانیه)
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_ج 1 0:24
3 6 2:04
4 2 2:46

تغییرات تست

آزمایش‌ها برای استفاده از اولین سطح API به‌روزرسانی شدند

در اندروید 11، تست های جدول زیر برای استفاده از اولین پرچم سطح API به روز می شوند. همه این تست‌ها از اولین سطح API 29 استفاده می‌کنند به جز تست test_tonemap_curve که از اولین سطح API 30 استفاده می‌کند.

صحنه نام آزمون سطح اول API شرح
0 test_tonemap_curve 30 اطمینان حاصل کنید که خط لوله دارای خروجی های رنگی مناسب با نقشه خطی و ورودی تصویر ایده آل است (متکی به test_test_patterns ).
1 test_ae_precapture_trigger 29 هنگام استفاده از ماشه پیش گرفتن، دستگاه حالت AE را تست کنید. مطمئن شوید که با AE غیرفعال، ماشه پیش گرفتن هیچ تاثیری ندارد.
test_channel_saturation 29 اطمینان حاصل کنید که کانال های RGB به مقادیر مشابه اشباع شده اند تا رنگ در مناطق اشباع از بین برود.
2_a/b/c test_num_faces 29 افزایش تنوع سنی در صحنه های صورت.

تست های با تغییرات

تست های جدول زیر در اندروید 11 به روز شده اند. تغییرات در ستون توضیحات تغییرات توضیح داده شده است.

صحنه نام آزمون سطح اول API شرح تغییرات
1 test_burst_sameness_manual 30 تحمل را به 2 درصد کاهش دهید.
4 test_aspect_ratio_and_crop 30 برای اجرا در دستگاه های محدود تغییر دهید.
test_multi_camera_alignment 30 اگر عکسبرداری با چند دوربین پشتیبانی نمی شود، به صورت جداگانه از دوربین ها عبور کنید. منطق انتخاب دوربین را برای در نظر گرفتن سیستم های سه و چهار دوربین تغییر دهید و از دوربین های تک، فقط عمق و IR صرف نظر کنید.

تست های جدید

تست های جدول زیر در اندروید 11 فعال هستند. تست ها در جدول خلاصه شده و توضیحات مفصل در قسمت های زیر ارائه شده است.

صحنه نام آزمون سطح اول API شرح
0 test_vibration_restrictions 30 اطمینان حاصل کنید که هشدارها و لرزش ها در هنگام ضبط تصویر فعال نمی شوند.
2_a test_jpeg_quality 30 آزمایش کنید که جداول کوانتیزاسیون فشرده سازی را برای افزایش کیفیت JPEG کاهش می دهد.
2_d/2_e test_num_faces 30 تنوع سنی صورت را افزایش دهید.
2_e test_continuous_picture 30 اطمینان حاصل کنید که 3A در android.control.afAvailableModes = CONTINUOUS_PICTURE.
تغییر دادن test_scene_change 31 android.control.afSceneChange پس از تغییر صحنه اظهار شد.
6 test_zoom 30 android.control.zoomRatioRange را تست کنید.

scene0/test_vibration_restriction

این آزمایش نیاز به صحنه خاصی ندارد، اما دستگاه تحت آزمایش (DUT) باید روی یک سطح سخت قرار داده شود یا روی آن نصب شود. این شامل نصب بر روی محفظه های تست ITS-in-a-box می شود.

ادعا می کند

  • بدون لرزش در هنگام استفاده از دوربین

scene2_a/test_jpeg_quality

روش

بخش های مختلف فایل JPEG با نشانگرهای 2 بایتی تعریف می شوند. برای اطلاعات بیشتر، JPEG را ببینید.

این آزمون ماتریس های کوانتیزه شدن را از ضبط JPEG استخراج می کند. نشانگر ماتریس های کوانتیزاسیون در ضبط JPEG دنباله است، [255، 219]. وقتی نشانگر پیدا شد، دو مورد بعدی لیست اندازه هستند. نشانگر اندازه JPEG DQT معمولاً [0, 132] = 256*0+132 = 132 است که اندازه داده های DQT در ضبط JPEG را به حساب می آورد. داده های جاسازی شده به این شکل است: [255، 219، 0، 132، 0 (مارکر لوما)، ماتریس لوما 8×8، 1 (مارکر کروم)، ماتریس کروم 8×8].

0 برای نشانگر ماتریس luma و 1 برای نشانگر کروما برای تعدادی از دستگاه‌ها از جمله تلفن‌هایی که دو ماتریس را به بخش‌های DQT جداگانه در فایل JPEG جدا می‌کنند، سازگار به نظر می‌رسد. ماتریس‌های Luma در مقایسه با ماتریس‌های کروما مقادیر بیشتری از مقادیر دارند، زیرا چشم انسان نسبت به کروما نسبت به لوما حساس‌تر است و تصاویر JPEG این را در نظر می‌گیرند.

نمونه‌های ماتریس‌های لوما و کروما استخراج‌شده در زیر برای فاکتورهای کیفیت 85 و 25 برای دوربین عقب Pixel 4 نشان داده شده‌اند که صحنه 2_a را با دستگاه تست ITS می‌گیرد. مقادیر ماتریس به طور قابل ملاحظه ای برای تنظیم کیفیت پایین افزایش می یابد (که نشان دهنده افزایش فشرده سازی است). این ماتریس ها فقط در صورتی با اسکریپت چاپ می شوند که علامت debug=True اعمال شود. به تنوع بیشتر ورودی ها در ماتریس های لوما در مقایسه با ماتریس های کروما توجه کنید.

    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]]

شکل 3 میانگین مقادیر ماتریس دوربین عقب Pixel 4 را در مقابل کیفیت JPEG نشان می دهد. با افزایش کیفیت JPEG، سطح فشرده سازی (متوسط ​​ماتریس لوما/کروم DQT) کاهش می یابد.

میانگین مقادیر ماتریک پیکسل 4

شکل 3. میانگین ماتریس لوما/کروما DQT دوربین عقب Pixel 4 در مقابل کیفیت JPEG

ادعا می کند

  • برای [25، 45، 65، 86]، 20+ در کیفیت دارای 20 درصد کاهش میانگین های ماتریس کوانتیزاسیون است.
  • بارهای ماتریس DQT اعداد مربعی هستند.

شکل 4 نمونه ای از تلفنی را نشان می دهد که در آزمون مردود شده است. توجه داشته باشید که برای تصاویر با کیفیت بسیار پایین ( jpeg.quality < 50 )، هیچ افزایشی در فشرده سازی در ماتریس کوانتیزاسیون وجود ندارد.

نمونه تست ناموفق

شکل 4. نمونه آزمون ناموفق

scene2_d/e test_num_faces

دو صحنه جدید تشخیص چهره برای افزایش تنوع چهره در بررسی الگوریتم تشخیص چهره اضافه شده است. با آزمایش مکرر تعدادی از دوربین‌ها، انتظار می‌رود چالش‌برانگیزترین چهره، سمت چپ‌ترین چهره در scene2_d باشد. به طور خاص، هم کلاه و هم ریش روی مدل وجود دارد، چیزی جدید در صحنه های صورت. صحنه های جدید در شکل 5 و 6 نشان داده شده است.

صحنه2_د

شکل 5. صحنه2_د

صحنه2_e

شکل 6. صحنه2_ه

ادعا می کند

  • num_faces == 3

scene2_e/test_continuous_picture

روش

تست test_continuous_picture از scene2_e استفاده می‌کند، اما می‌توان آن را با هر یک از صحنه‌های چهره فعال کرد. در این آزمایش، 50 فریم از وضوح VGA با اولین تنظیم درخواست ضبط android.control.afMode = 4 (CONTINUOUS_PICTURE) گرفته می شود.

انتظار می رود که سیستم 3A در پایان گرفتن 50 فریم مستقر شود.

ادعا می کند

  • 3A در پایان گرفتن در حالت همگرا است.

صحنه_تغییر/تست_سینه_تغییر

روش

یک آزمایش جدید برای آزمایش اینکه آیا پرچم android.control.afSceneChange با تغییر صحنه مشخص شده است یا خیر فعال می شود. تغییر صحنه از تبلت استفاده می‌کند که یک صحنه چهره را نمایش می‌دهد و سپس تبلت را روشن و خاموش می‌کند تا یک تغییر صحنه ایجاد شود. صحنه از scene2_e مجدد استفاده می کند اما به دلیل کنترل تبلت مورد نیاز در یک صحنه جداگانه است.

علاوه بر این، برای تست دستی، تغییر صحنه را می توان با تکان دادن دست در مقابل دوربین انجام داد.

شکل 7 نمودار زمان بندی آزمون را نشان می دهد. زمان بین خاموش شدن صفحه و عکسبرداری بر اساس نتایج رویداد از عکس‌برداری‌های قبلی تنظیم می‌شود.

نمودار زمان برای test_scene_change

شکل 7. نمودار زمانبندی برای test_scene_change

شرایط شیفت:

  • اگر صحنه تغییر کند و afSceneChange == 1 باشد، تست PASS را برمی گرداند.
  • اگر یک تغییر صحنه وجود داشته باشد و afSceneChange == 0 باشد، تغییر صحنه 5 فریم زودتر تغییر می کند تا زمان بیشتری برای اظهار نظر afSceneChange داده شود.
  • اگر هیچ تغییر صحنه ای وجود نداشته باشد و afSceneChange == 1 باشد، تست FAIL را برمی گرداند.
  • اگر تغییر صحنه وجود نداشته باشد و afSceneChange == 0 باشد، تغییر صحنه 30 فریم زودتر جابجا می شود تا تغییر صحنه در عکس گرفته شود.

ادعا می کند

  • صفحه نمایش (صحنه) تغییر می کند.
  • پرچم afSceneChange در [0، 1] است.
  • اگر صحنه تغییری نداشته باشد، 3A همگرا می شود (از لحاظ عملکردی مشابه test_continuous_picture است).
  • اگر afSceneChange == 1 باشد، روشنایی باید در صحنه تغییر کند.
  • PASS در شش تلاش با تغییر زمان بندی بر اساس نتایج قبلی.

صحنه6/test_zoom

روش

یک صحنه جدید برای آزمایش android.control.zoomRatioRange مورد نیاز است زیرا صحنه های ایجاد شده یا ویژگی به اندازه کافی کوچک برای بزرگنمایی ندارند (صحنه های [1، 2، 4]) یا صحنه دارای اشیاء زیادی است که به راحتی قابل شناسایی نیستند. ، پیچیده کردن استخراج ویژگی (صحنه 3).

شکل 8 صحنه جدید را با یک آرایه منظم از دایره ها نشان می دهد. آرایه دایره ها الزامات در مرکز DUT/نمودار را کاهش می دهد و اجازه می دهد دایره ای همیشه نزدیک مرکز تصویر گرفته شده باشد. در این صحنه آرایه‌ای از دایره‌های 9×5 با حاشیه سیاه کل تبلت را پوشانده است. یک دایره با یک مربع در گوشه بالا سمت راست جایگزین می شود تا جهت را نشان دهد. اندازه های دایره دارای یک ویژگی با مساحت حدود 7500 پیکسل ( radius=50pixels ) برای یک سنسور 4000x3000 با میدان دید (FoV) حدود 80 درجه هستند.

صحنه test_zoom

شکل 8. صحنه test_zoom

Pixel 4 دایره پیدا کرد

شکل 9. بزرگنمایی دوربین پیکسل 4[0] = [1، 3.33، 5.67، 8] تصاویر با دایره پیدا شده

شکل 9 تصاویر گرفته شده را برای دوربین پشتی پیکسل 4 نشان می دهد که زوم با چهار مرحله از 1 به 8 برابر افزایش می یابد. این مجموعه از تصاویر بدون دقت خاصی در مرکز گرفتن گرفته می شود، به جز استفاده از دیافراگم تست گوشی با دو دهانه برای فعال کردن تست دوربین های جلو و عقب. یک انحراف از مرکز انتظار می رود، و به عنوان قرص نمودار کمی از مرکز سمت چپ مشاهده می شود. علاوه بر این، نمودار برای آزمایش با نسبت بزرگنمایی بالاتر از 8 برابر به نظر می رسد.

یافتن حلقه ها

این تست شامل یک متد find_circle() با استفاده از findContours است که تمام خطوط را پیدا می‌کند و با آزمایش موارد زیر، جستجوی خطوط را به دایره‌های مورد نظر محدود می‌کند:

  • کانتورها باید مساحتی بیشتر از 10 پیکسل داشته باشند.
  • خطوط باید NUM_PTS >= 15 داشته باشند.
  • خطوط باید دارای مرکز سیاه باشند.
  • خطوط باید شبیه یک دایره باشند، یعنی مساحت آنها نزدیک به ناحیه pi*r2 کانتور باشد.

محدوده تست

android.control.zoomRatioRange به 10 مرحله تقسیم می شود.

  • [1، 7] تست [1، 1.67، 2.33، 3، 3.67، 4.33، 5، 5.67، 6.33، 7]

اگر دایره پیدا شده با مرزهای تصویر برخورد کند، بزرگنمایی متوقف می شود. برای اطمینان از رسیدن به سطح بزرگنمایی کافی در تست (10 برابر) یک بررسی وجود دارد.

ادعا می کند

  • حداقل یک دایره در هر تنظیم بزرگنمایی یافت می شود.
  • 10 برابر یا حداکثر android.control.zoomRatioRange آزمایش شده است.
  • مقیاس‌های شعاع دایره با بزرگ‌نمایی (RTOL 10٪ از حد انتظار).
  • فاصله مرکز دایره از مقیاس های مرکزی با بزرگنمایی (RTOL 10٪ از حد انتظار).
  • به سطح زوم کافی رسیده است (2x).

افزایش تست دوربین محدود

در اندروید 11، تست‌های جدول زیر دوربین‌های LIMITED تست می‌کنند. علاوه بر آزمایش‌های جدید ، آزمایش scene4/test_aspect_ratio_and_crop به‌روزرسانی می‌شود تا تست دستگاه‌های LIMITED با اولین سطح API 30 یا بالاتر را فعال کند.

صحنه نام آزمون
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

شکل 10 حلقه رمزگشای مخفی ITS اندروید 11 را نشان می دهد. حلقه رمزگشای مخفی نشان می‌دهد که تست‌های فردی با چه تنظیماتی آزمایش می‌شوند. دروازه برای سادگی در مشاهده کد رنگی دارد. موارد اصلی دروازه عبارتند از:

  • MANUAL_SENSOR
  • READ_3A *نیاز به MANUAL SENSOR دارد
  • COMPUTE_TARGET_EXPOSURES *به MANUAL SENSOR نیاز دارد
  • PER_FRAME_CONTROL
  • RAW
  • SENSORS * REALTIME
  • MULTI_CAMERA

MANUAL SENSOR ، READ_3A ، COMPUTE_TARGET_EXPOSURES ، و PER_FRAME_CONTROL اکثر آزمایش ها را در اختیار دارند. علاوه بر این، آزمایش‌هایی که برای دستگاه‌های LIMITED فعال می‌شوند با سبز روشن مشخص می‌شوند.

حلقه رمزگشای مخفی

شکل 10. حلقه رمزگشای مخفی اندروید 11