מצלמה ITS-in-a-Box

Android Camera Image Test Suite (ITS) היא חלק מ-Android Compatibility Test Suite (CTS) Verifier וכוללת בדיקות המאמתות תוכן תמונה. CTS Verifier תומך באוטומציה של בדיקות ITS עם מצלמה ITS-in-a-box; תמיכה בבדיקות ידניות מכסה את כל גורמי הצורה של מכשירי אנדרואיד.

ITS-in-a-box כולל את היתרונות הבאים:

  • אוטומציה. אין צורך בהתערבות אנושית במהלך הבדיקה.
  • פתרון תקלות קל. עקביות של סביבת הבדיקה מובילה לפחות שגיאות הגדרה ומגבירה את יכולת השחזור.
  • יְעִילוּת. היכולת לנסות שוב עבור מצלמה/סצנה בודדת משפרת את יעילות ביצוע הבדיקה.

להתחיל

ITS-in-a-box מורכב מקופסת פלסטיק הנחתכת בלייזר משרטוטי עיצוב בעזרת מחשב (CAD), טאבלט תרשים ומכשיר בבדיקה (DUT). אתה יכול להשתמש בשדה הראייה הרחב (WFoV) ITS-in-a-box, המסוגלת לבדוק גם את מצלמות ה-WFoV (FoV > 90 מעלות) ו-RFoV (FoV < 90 מעלות), או את השדה הרגיל של -View (RFoV) ITS-in-a-box.

כדי להתחיל עם המצלמה ITS-in-a-box:

  1. קנה או בנה WFoV או RFoV ITS-in-a-box.
  2. הגדר טאבלט עם תוכנת Camera ITS.
  3. הפעל בדיקות .
  4. קבל תוצאות מה-DUT.

הגדר את הטאבלט

סעיף זה מספק הוראות שלב אחר שלב להגדרת טאבלט לשימוש עם מבחני ה-ITS של המצלמה הממוקמים בספריית CameraITS . הוראות אלה משתמשות ב-Pixel C כטאבלט לדוגמה. למידע על דרישות והמלצות לטאבלט, ראה דרישות לטאבלט .

הערה: הסקריפטים של Camera ITS Python מגדירים עבורך באופן אוטומטי את האפשרויות הבאות בטאבלט:
הגדרות > תצוגה > שינה > לאחר 30 דקות של חוסר פעילות
בהירות מסתגלת > כבוי

  1. טען את הטאבלט והפעל אותו. אם תתבקש להגדיר חשבון, דלג עליו (מצלמה ITS אינה מצריכה שום חשבון משויך לטאבלט).
  2. עדכן את הטאבלט לאנדרואיד 7.0 ומעלה. גרסאות אנדרואיד 6.x ומטה אינן תומכות במצלמה ITS.
  3. הפעל מצב מפתח .
  4. חזור להגדרות ובחר אפשרויות מפתח.
    אפשר אפשרויות
    • עַל
    • הישאר ער
    • איתור באגים ב-USB (זה מאפשר למארח להפעיל את הטאבלט במצב ניפוי באגים. כאשר אתה מחבר את הטאבלט למארח בפעם הראשונה, הטאבלט יבקש לאפשר איתור באגים ב-USB? אם הטאבלט לא מציג את בקשת ניפוי הבאגים, נתק ואז חבר מחדש את לוּחַ.)
    השבת אפשרויות
    • עדכוני מערכת אוטומטיים
    • אמת אפליקציות באמצעות USB
  5. קבע מזהי DUT ומזהי תרשים על ידי הפעלת $ adb devices לרשימה של מכשירים זמינים. כדי לקבוע device_id ו- chart_id , חבר ונתק התקנים וצפה בהתקנים שמתחברים ומתנתקים.
  6. בצע שלוש ריצות בדיקה כדי לדכא רמזים והנחיות משתמש שיכולות לטשטש תרשימים על מסך הטאבלט.
    1. מקם את הטאבלט עם הפנים כלפי מעלה על שולחן (אל תחבר את הטאבלט ללוח האחורי של הקופסה).
    2. הפעל את הפקודה הבאה:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      סצנות 2 ו-3 מחייבות את הטאבלט להציג תמונה, אז הטאבלט מבקש לאפשר ל-Drive לגשת לתמונות, מדיה וקבצים במכשיר שלך? . נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על אפשר.
    3. הפעל את הפקודה שוב. הטאבלט מבקש לשמור עותק של קובץ זה? ומציע את Google Drive. נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על סמל הכונן ולאחר מכן על ביטול להעלאה לכונן.
    4. לבסוף, הפעל את tools/run_all_tests.py ואשר שסצנות משתנות אוטומטית כאשר התסריט עובר במחזוריות של סצנות שונות. בעוד שרוב הבדיקות נכשלות (כיוון שהמצלמה אינה מכוונת אל התרשים), אתה יכול לוודא שהטאבלט עובר כהלכה בין הסצנות מבלי להציג הנחיות או חלונות קופצים אחרים על המסך.

הפעל בדיקות

לפני הפעלת ה-ITS-in-a-box, ודא שהגדרת הבדיקה שלך כוללת את החומרה והתוכנה הבאים:

  • ITS אחד (1) בקופסה
  • טאבלט אחד (1) ברזולוציה גבוהה בגודל 10 אינץ' להצגת סצנות, S/N: 5811000011
  • DUT אחד (1) שבו מותקנת אפליקציית CTS Verifier 7.0_8+. דוגמה DUT:
    • Pixel NOF26W אחד (1) לבדיקת המצלמה האחורית(0), S/N: FA6BM0305016. כדי להתקין את אפליקציית CTS Verifier, פתח את android-cts-verifier.zip ואז הפעל את
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

הפעל סצנות מבוססות טאבלט

כדי להפעיל סצנות 0 עד 4, 6 ו-scene_change במצלמה האחורית:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

דוגמא:

מצלמה 0 S/N: FA6BM0305016
איור 1. מצלמה 0 S/N: FA6BM0305016

נסה שוב סצנות

אתה יכול לנסות שוב סצנות עבור מצלמה בודדת:

  • כדי לנסות שוב סצנות במצלמה אחת:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

הרץ סצנה 5

סצנה 5 דורשת הגדרה מיוחדת עם תאורה ספציפית (לפרטים, עיין ב- CameraITS.pdf ב-CTS Verifier, אותו תוכל להוריד ב- Compatibility Test Suite Downloads ). עליך להפעיל את סצנה 5 בנפרד (מחוץ לקופסה).

סצנת מצלמה 5
איור 2. סצנת מצלמה 5

כדי להפעיל סצנה 5 עבור מצלמות קדמיות ואחוריות במכשיר יחיד:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

קבל תוצאות

תוכל לצפות בתוצאות במהלך הבדיקה ולשמור את התוצאות שהושלמו כדוח.

  • צפה בתוצאות. כדי לשמור את תוצאות ITS של המצלמה כדוח:
    1. לחץ על העבר ושמור את הדוח.
      דוח ITS של מצלמה
      איור 3. דוח ITS של מצלמה
    2. משוך דוחות מהמכשיר:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. פתח את קובץ הדוח והצג test_result.xml .
      מצלמה ITS דוחות
      איור 4. דוחות ITS של מצלמה

דרישות הטאבלט

לטאבלטים חייבים להיות גודל תצוגה של כ-10 אינץ' עם רזולוציית מסך גדולה מ-1920 x 1200 פיקסלים. יש להגדיר את ערך brightness ב- config.yml בהתאם לדגם הטאבלט. הטבלה למטה מפרטת את הטאבלטים המומלצים לבדיקת ITS יחד עם גרסאות השחרור של אנדרואיד עבור ה-DUT שאיתם הטאבלטים עובדים.

התקן גודל תצוגה
(אינץ)
גודל תצוגה
(פיקסלים)
מידות הטאבלט
(אינץ)
לְהַצִיג
בְּהִירוּת
לְהַצִיג
ביטים
נתמך
DUT OS
נתמך
מערכת ההפעלה של טאבלט
סמסונג
Galaxy Tab A8
10.5 1920 x 1200 9.72 x 6.37 x 0.27 192 8 אנדרואיד 13+ אנדרואיד 11+
שיאומי
כרית 5
11 2560 x 1600 10.03 x 6.55 x 0.27 1024 11 אנדרואיד 12+ רק אנדרואיד 11
לנובו
Tab M10 Plus
10.3 1920 x 1200 9.61 x 6.03 x 0.32 192 8 אנדרואיד 12+ אנדרואיד 9+
סמסונג
Galaxy Tab A7
10.4 2000 x 1200 9.75 x 6.2 x 0.28 192 8 אנדרואיד 12+ אנדרואיד 10+
צ'ווי
Hi9 Air 10.1
10.1 2560 x 1600 9.52 x 6.77 x 0.31 192 8 אנדרואיד 7+ אנדרואיד 8+
אסוס
ZenPad 3
9.7 2048 x 1536 9.47 x 6.44 x 0.28 192 8 אנדרואיד 7+ אנדרואיד 6+
Huawei
MediaPad m5
10.8 2560 x 1600 10.18 x 6.76 x 0.29 192 8 אנדרואיד 7+ אנדרואיד 8+
גוגל
Pixel C
10.2 2560 x 1800 9.53 x 7.05 x 0.28 96 8 אנדרואיד 7+ אנדרואיד 6+
סוני
Xperia Z4
10.1 2560 x 1600 10 x 6.57 x 0.24 192 8 אנדרואיד 7+ אנדרואיד 5+

שאלות נפוצות

ש 1: כיצד אוכל לקבוע אילו ציוד בדיקה אני צריך עבור המכשיר שלי?

גרסת RFoV ITS-in-a-box 1 בודקת מצלמות RFoV עבור בדיקות סצנה 0 עד סצנה 4 בספריית CameraITS/tests . RFoV מוגדר כ -60° < FoV < 90° . עבור מצלמות FoV גדולות יותר, האורות עשויים להופיע בתמונות או שהתרשימים עשויים לכסות שטח קטן מדי ב- FoV, מה שישפיע על תוצאות הבדיקה.

גרסה 2 של WFoV ITS-in-a-box בודקת מצלמות WFoV עבור מבחני סצנה 0 עד סצנה 4 בספריית CameraITS/tests . WFoV מוגדר כ- FoV >= 90° . זהה מבחינה תפקודית לגרסה 1, אבל גדול יותר. מתקן הבדיקה של גרסה 2 יכול לבדוק גם מצלמות RFoV וגם מצלמות WFoV באנדרואיד 9 ומעלה.

תיבת היתוך החיישן בודקת את היסט תזמון המצלמה/גירוסקופ וסנכרון המסגרת של מערכות מרובות מצלמות עם בדיקות ב- scenes=sensor_fusion . נדרש היסט תזמון של מצלמה/גירוסקופ של פחות מ-1 ms עבור דגל התכונה REALTIME .

ניתן לבדוק התקני ריבוי מצלמות עם מתקן יחיד לבדיקות ITS סטטיות ומתקן היתוך חיישנים אם למצלמה יש את דגל ה- REALTIME .

קבוצה של תצורות לדוגמה מסופקת בטבלה שלהלן.

דוגמא FoVs של מצלמה זמן אמת? אסדות מומלצות הערות
1 75° לא Rev 1 או 2 אנדרואיד 7.0 ומעלה
2 75° כן Rev 1 או 2 + היתוך חיישן אנדרואיד 9 ומעלה
3 75° + 95° כן Rev 2 + היתוך חיישן אנדרואיד 9 ומעלה

ש 2: כיצד אוכל לקבוע איזו מתקן בדיקה נמצא בשימוש?

כדי לייעד את מתקן הבדיקה הנכון, ודא שפרמטר מרחק התרשים נכון. למתקן הבדיקה rev1 (RFoV) יש מרחק תרשים של 31 ס"מ, ולמתקן rev2 (WFoV) מרחק תרשים של 22 ס"מ. כברירת מחדל, מרחק התרשים מוגדר ל-31 ס"מ.

אנדרואיד 10 עד אנדרואיד 11

כדי לזהות את מתקן הבדיקה הנכון ב-Android 10 עד 11 הוסף את דגל dist בשורת הפקודה. ערך ברירת המחדל עבור dist הוא 31 . הפעל את הפקודה הבאה כדי לשנות את הפרמטר chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

אנדרואיד 12

כדי לזהות את מתקן הבדיקה הנכון באנדרואיד 12, אתה יכול לערוך את הקובץ config.yml כדי לשנות את הפרמטר chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

ש 3: כיצד אוכל לשלוט בבהירות הטאבלט?

כברירת מחדל, בהירות הטאבלט מוגדרת ל-96.

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 7.0 עד אנדרואיד 9, הפעל:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 10 עד 11, ניתן לשנות את הערך בשורת הפקודה על ידי הוספת דגל brightness :

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 12, הפעל:

edit config.yml
brightness: 96 → brightness: 192

ש 4: כיצד אוכל לנפות באגים בבדיקה בודדת?

ניתן להריץ בדיקות בנפרד למטרות ניפוי באגים, אך התוצאות אינן מדווחות ל- CtsVerifier.apk אלא אם כל הסצנה מופעלת.

כדי להפעיל סצנה בודדת באנדרואיד 11 ומטה:

  1. טען סצנה על ידי הוספת דגל scenes ב- tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. הקש Control+C כדי לעצור את הבדיקות לאחר שהסצינה תירשם כנטען ל- stdout .

    אם הסצנה הנכונה כבר על המסך, התעורר את המסך:

    python tools/wake_up_screen.py screen=#
    
  3. הפעל מבחן פרטני.

    python tests/scene#/test_*.py device=# camera=#

    לאחר מכן נוצרות עלילות בספרייה המקומית ו- stdout ו- stderr מודפסים למסך.

    כדי לקבל מידע נוסף על ניפוי באגים, הוסף הצהרות print לסקריפט. כדי להגדיל את פלט הבדיקה עבור איתור באגים, הוסף את הדגל debug=True .

    python tests/scene#/test_*.py device=# camera=# debug=True

התוצאות מודפסות למסך המקומי והתמונות נשמרות בספרייה המקומית במקום בספריית /tmp/tmp### שנוצרה בעת הפעלת tools/run_all_tests.py .

כדי להפעיל סצנה בודדת באנדרואיד 12:

  1. ערוך את הקובץ config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. הפעל את הבדיקה האישית.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

התוצאות מודפסות בספריית /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ ממוינות לפי זמן ריצה.

ש 5: למה אני צריך להריץ מבחנים נכשלים כסצנה שלמה במקום להריץ מבחנים חוזרים בנפרד?

ניתן להריץ בדיקות בנפרד למטרות ניפוי באגים, אך התוצאות אינן מדווחות ל- CtsVerifier.apk אלא אם כל הסצנה מופעלת.

מצלמה ITS מבטיחה שלאפליקציות צד שלישי יש ממשק מצלמה תואם. בדומה לבדיקת יחידה , כל בדיקה מדגישה מפרט בודד במצלמה. כדי לתפוס התנהגות לא אמינה, מבחנים אלו צפויים לעבור כקבוצה עבור סצנה שלמה. לדוגמה, למרות שמבחן אחד לא אמין עשוי לעבור שידור חוזר של סצנה שלמה, קשה למספר מבחנים לא אמינים לעבור.

כדוגמה קיצונית, שקול את המקרה שבו יש 10 בדיקות בסצנה שלכל אחת יש סבירות של 50% להחזיר PASS . על ידי הפעלת כל בדיקה בנפרד, יש סיכוי גבוה שמפעיל יכול לגרום למצלמה לעבור את המצלמה ITS. עם זאת, אם הבדיקות מתנהלות במצטבר כסצנה, יש רק סיכוי של 0.1% שהסצנה תעבור.

ש6: כיצד אוכל להריץ סצנה בודדת או לסדר מחדש את סצינות הריצה?

כברירת מחדל, tools/run_all_tests.py מריצים את כל הסצנות לפי הסדר. עם זאת, ניתן להריץ סצנות בנפרד או בסדר מוגדר ולדווח ל- CtsVerifier.apk .

כדי להריץ סצנה בודדת (לדוגמה, סצנה 2) או להפעיל יותר מסצנה אחת בסדר מסוים ב-Android 11 ומטה:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

כדי להריץ סצנה בודדת או להפעיל יותר מסצנה אחת בסדר מסוים ב-Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

הפרמטרים הנוספים מוגדרים בקובץ config.yml .

ש7: מספר מבחנים של סצנה 1 נכשלים בהגדרת הטאבלט אך עוברים עם טבלת נייר. מה לא בסדר?

ודא שהטאבלט וסביבת הבדיקה עומדים במפרטים הבאים.

מפרט טאבלט

ודא שהטאבלט עומד במפרטים הבאים:

  • גודל תצוגה (אינץ'): 10 אינץ'
  • גודל תצוגה (פיקסלים): יותר מ-1920 x 1200 פיקסלים

לפרטים נוספים, ראה דרישות לטאבלט .

בהירות טאבלט

ייתכן שבדיקות לא יקבלו תוצאות נכונות אם בהירות תצוגת הטאבלט נמוכה מדי.

לפרטים נוספים, ראה כיצד אוכל לשלוט בבהירות הטאבלט?

רמת תאורה בתיבה (דורש מד לוקס)

ודא שערך היעד לוקס בפתיחת הטאבלט הוא בין 100 ל-300.

אם רמת הלוקס גבוהה מדי, scene1/test_param_flash_mode.py מחזירה FAIL . אם רמת הלוקס נמוכה מדי, בדיקות מרובות נכשלות.

ש8: כיצד ניתן לאתר באגים בבדיקות היתוך חיישנים?

  1. ודא שאתה בקבוצת dialout .

    groups | egrep ‘dialout'
  2. ודא שבקר היתוך החיישן מחובר על ידי קביעה אם טכנולוגיית Microchip מחוברת ליציאת ה-USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. הפעל את הבדיקה מספר פעמים כדי לקבל חלוקה של ניסיונות בדיקה עם הפקודות הבאות.

    באנדרואיד 11 ומטה:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    באנדרואיד 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    הפרמטרים הנוספים מוגדרים בקובץ config.yml .

    פלטי ההפעלה נמצאים בתיקייה /tmp/tmp### שנוצרה תחת התיקיות sensor_fusion_# , כאשר # הוא מספר הריצה. הסיבות הנפוצות לכישלון הן:

    1. הטלפון לא מרוכז כראוי.
    2. לא נמצאות מספיק תכונות בתמונה (לעיתים קרובות בעיה של FoV או תאורה).
    3. ה- FAIL שהוחזר תקף, ויש לתקן את היסט התזמון בין המצלמה לג'ירוסקופ.

ש9: איזה מידע עלי לכלול בעת דיווח על באג בדיקה?

בעת דיווח על באג בדיקה, כלול את הקבצים והתמונות שנוצרו עבור הבדיקה.

  1. אם הפעלת את הבדיקה דרך tools/run_all_tests.py , צרף ספריית /tmp/ מכווץ לבאג.
  2. אם הפעלת את הבדיקה בעצמה, צרף את כל פלטי המסך והתמונות שנוצרו לבאג.

כלול גם דוח באג. לאחר שהבדיקה המדוברת נכשלה, השתמש בפקודה הבאה כדי ליצור דוח באג ולצרף את קובץ ה-zip שנוצר לבאג.

adb -s device_id bugreport

ש10: כיצד אוכל להריץ סצנת בדיקת sensor_fusion עם מצלמה בעלת מרחק מיקוד מינימלי שיוצר תמונות מטושטשות במרחק של 25 ס"מ בתרשים?

אם המצלמה שלך לא יכולה להתמקד במרחק של 25 ס"מ, הסר את לוח ההרכבה בתרשים של תיבת היתוך החיישן. מקם את התרשים במרחק שבו ה-DUT יכול להתמקד ולשנות chart_distance ב- config.yml למרחק הנמדד בין ה-DUT לתרשים. איור 5 מציג דוגמה כיצד למדוד את מרחק התרשים במצב זה.

sensor_fusion דוגמה לבדיקת TELE6
איור 5. מדידת מרחק תרשים עבור סצנת בדיקת היתוך חיישנים
  edit config.yml
chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART

ש11: כיצד אוכל להריץ סצנות בדיקה בטאבלט למצלמה עם מרחק מיקוד מינימלי שיוצר תמונות מטושטשות במרחק של 31 ס"מ בתרשים?

אם המצלמה שלך לא מצליחה להפיק תמונות חדות מספיק בבדיקה ב-31 ס"מ (עומק מתקן הבדיקה של RFoV), התקן את המצלמה שלך לפני המתקן במרחק כדי לאפשר לסצינת התרשים למלא כ-60% משדה המצלמה של תצוגה (FoV) עם תמונות חדות יותר. מרחק זה יכול להיות פחות ממרחק המיקוד המינימלי של המצלמה. השאר את chart_distance ב- config.yml ב-31 ס"מ. קנה המידה של התרשים בטאבלט נקבע על ידי המצלמה FoV כפי שמוצג בטבלה הבאה:

מצלמה FoV גורם קנה מידה של תרשים
60 > FoV > 40 0.67x
40 > FoV > 25 0.5x
FoV < 25 0.33x

ש12: עם ה-API ההגיוני של ריבוי מצלמות, אילו בדיקות מופעלות באילו מצלמות?

אם המצלמה שלך משתמשת ב- REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA , כל בדיקות ה-ITS הנתמכות מופעלות במצלמה הלוגית ברמה העליונה. תת-קבוצה של בדיקות ה-ITS מופעלת במצלמות המשנה הפיזיות, ובדיקות אלו מופיעות ב- tools/run_all_tests.py תחת הקבוע SUB_CAMERA_TESTS .