कैमरे को अलग-अलग तरह से दिखाना

Android Camera Image Test Suite (ITS), Android Compatibility Test Suite (CTS) Verifier का हिस्सा है. इसमें ऐसे टेस्ट शामिल होते हैं जो इमेज के कॉन्टेंट की पुष्टि करते हैं. CTS Verifier, Camera ITS-in-a-box की मदद से, आईटीएस टेस्ट को अपने-आप पूरा होने की सुविधा देता है; मैन्युअल टेस्ट की सुविधा, Android डिवाइस के सभी फ़ॉर्म फ़ैक्टर पर काम करती है.

ITS-in-a-box के ये फ़ायदे हैं:

  • ऑटोमेशन. जांच के दौरान, किसी व्यक्ति के हस्तक्षेप की ज़रूरत नहीं होती.
  • समस्या को आसानी से हल किया जा सकता है. टेस्ट एनवायरमेंट में एक जैसा कॉन्फ़िगरेशन होने से, सेटअप से जुड़ी गड़बड़ियां कम होती हैं और टेस्ट को दोहराना आसान हो जाता है.
  • काम की क्षमता. अलग-अलग कैमरे/सीन के लिए फिर से कोशिश करने की सुविधा से, टेस्ट को ज़्यादा असरदार तरीके से लागू किया जा सकता है.

रिग चुनना

आईटीएस-इन-अ-बॉक्स में एक प्लास्टिक बॉक्स होता है. इसे कंप्यूटर की मदद से डिज़ाइन (सीएडी) की गई ड्रॉइंग से लेज़र कट किया जाता है. इसमें एक चार्ट टैबलेट और जांच किया जाने वाला डिवाइस (डीयूटी) भी होता है. यहां दी गई टेबल में, उपलब्ध अलग-अलग आईटीएस-इन-अ-बॉक्स रिग की सुविधाओं और खास बातों के बारे में बताया गया है. सही रिग चुनने के लिए, DUT के फ़ील्ड ऑफ़ व्यू और फ़ोकस की कम से कम दूरी पर ध्यान दें. हमारा सुझाव है कि 60 से 110 डिग्री के फ़ील्ड ऑफ़ व्यू और 22 से 31 सेमी की कम से कम फ़ोकस दूरी वाले कैमरा सिस्टम के लिए, मॉड्यूलर बेस रिग का इस्तेमाल करें. इससे कैमरे को अडजस्ट करने में आसानी होती है. अगर कैमरा सिस्टम में 31 से 110 सेंटीमीटर के बीच की कम से कम फ़ोकस दूरी वाला टेलीफ़ोटो लेंस शामिल है, तो हमारा सुझाव है कि आप मॉड्यूलर बेस रिग का इस्तेमाल करें. इसमें टेली एक्सटेंशन होना चाहिए, जो लेंस की फ़ोकस दूरी से मेल खाता हो. टेली एक्सटेंशन, 50 से 90 सेंटीमीटर की लंबाई में उपलब्ध हैं.

रिग चार्ट की दूरी DUT कैमरे का FoV (अनुमानित) सुविधाएं
मॉड्यूलर बेस रिग 22 cm 60° - 120°
  • कम फ़ुटप्रिंट
  • सामने की ओर बड़ा एपर्चर कटआउट, जिससे कटआउट के बिना मल्टी-कैमरा सिस्टम की टेस्टिंग की जा सकती है. इससे सेकंडरी कैमरे ब्लॉक नहीं होते
  • रिग को 90° घुमाया जा सकता है
  • मॉड्यूलर बेस रिग और टेली एक्सटेंशन रिग 22 सें॰मी॰ - 110 सें॰मी॰* 10° - 120°
  • सामने की ओर बड़ा एपर्चर कटआउट
  • यह उन कैमरों की जांच करने की सुविधा देता है जिनकी कम से कम फ़ोकस दूरी ज़्यादा होती है. जैसे, ज़्यादातर टेली कैमरे
  • एक्सटेंशन रिग की लंबाई को अलग-अलग चार्ट की दूरी के हिसाब से अडजस्ट किया जा सकता है.
  • WFoV ITS-in-a-box 22 cm 60° - 120°
  • बड़ा फ़ुटप्रिंट, जिससे DUT को कई तरह से माउंट किया जा सकता है
  • टैबलेट जैसे बड़े DUT के लिए सहायता
  • RFoV ITS-in-a-box 31 सें॰मी॰ 60° - 90°
  • चार्ट टैबलेट
  • इंटरनल लाइटिंग सिस्टम
  • Gen2 ITS-in-a-box 31 सें॰मी॰ 60° - 90°
  • पेपर चार्ट
  • इंटरनल लाइटिंग सिस्टम
  • डीयूटी के लिए सबसे सही रिग का पता लगाने के लिए, यहां दी गई टेबल में इमेज कैप्चर करने के उदाहरण दिए गए हैं. इनमें, 25° के फ़ील्ड ऑफ़ व्यू और 80 cm की कम से कम फ़ोकस दूरी वाले कैमरे का इस्तेमाल करके, चार्ट की दूरी और सीन के स्केलिंग प्रतिशत के अलग-अलग कॉम्बिनेशन का इस्तेमाल किया गया है. इस उदाहरण के लिए, 30 सेंटीमीटर या 50 सेंटीमीटर के एक्सटेंशन वाले मॉड्यूलर बेस रिग का इस्तेमाल करना सबसे सही है. इससे चार्ट की दूरी 50 सेंटीमीटर या 80 सेंटीमीटर हो जाती है. 31 सेमी की दूरी पर लिए गए चार्ट की इमेज बहुत धुंधली है. इसलिए, हो सकता है कि टेस्ट पास न हो.
    चार्ट की दूरी सीन को स्केल करने का प्रतिशत इमेज
    31 सें॰मी॰ 33%
    50 से॰मी॰ 50%
    80 सें॰मी॰ 100%

    Camera ITS-in-a-box का इस्तेमाल शुरू करने के लिए:

    1. मॉड्यूलर, WFoV या RFoV और सेंसर फ़्यूज़न ITS-in-a-box खरीदें या बनाएं.
    2. कैमरा आईटीएस सॉफ़्टवेयर की मदद से, टैबलेट को कॉन्फ़िगर करें.
    3. टेस्ट चलाएं.
    4. डीयूटी से नतीजे पाएं.

    टैबलेट को कॉन्फ़िगर करना

    इस सेक्शन में, CameraITS डायरेक्ट्री में मौजूद कैमरा आईटीएस टेस्ट के लिए, टैबलेट सेट अप करने के सिलसिलेवार निर्देश दिए गए हैं. इन निर्देशों में, Pixel C को उदाहरण के तौर पर इस्तेमाल किया गया है. टैबलेट से जुड़ी ज़रूरी शर्तों और सुझावों के बारे में जानने के लिए, टैबलेट से जुड़ी ज़रूरी शर्तें लेख पढ़ें.

    ध्यान दें: Camera ITS की Python स्क्रिप्ट, टैबलेट पर ये विकल्प अपने-आप सेट कर देती हैं:
    सेटिंग > डिसप्ले > स्लीप > 30 मिनट तक कोई गतिविधि न होने पर
    अडैप्टिव ब्राइटनेस > बंद है

    1. टैबलेट को चार्ज करें और उसे चालू करें. अगर खाता सेट अप करने के लिए कहा जाता है, तो इसे छोड़ें (Camera ITS के लिए, टैबलेट से लिंक किए गए किसी खाते की ज़रूरत नहीं होती).
    2. टैबलेट को Android 7.0 या इसके बाद के वर्शन पर अपडेट करें. Android 6.x और इससे पहले के वर्शन पर, Camera ITS काम नहीं करता.
    3. डेवलपर मोड चालू करें.
    4. सेटिंग पर वापस जाएं और डेवलपर के लिए सेटिंग और टूल चुनें.
      विकल्प चालू करना
      • चालू है
      • सचेत रहें
      • यूएसबी डीबग करने की सुविधा (इससे होस्ट को टैबलेट को डीबग मोड में चलाने की अनुमति मिलती है. टैबलेट को पहली बार होस्ट से कनेक्ट करने पर, टैबलेट पर यह मैसेज दिखता है: क्या यूएसबी डीबग करने की अनुमति देनी है? अगर टैबलेट पर डीबग करने का प्रॉम्प्ट नहीं दिखता है, तो टैबलेट को डिसकनेक्ट करें और फिर से कनेक्ट करें.)
      विकल्प बंद करना
      • अपने आप होने वाले सिस्टम अपडेट
      • यूएसबी पर ऐप्लिकेशन की पुष्टि करें
    5. उपलब्ध डिवाइसों की सूची बनाने के लिए, $ adb devices चलाकर DUT और चार्ट आईडी का पता लगाएं. device_id और chart_id का पता लगाने के लिए, डिवाइसों को प्लग और अनप्लग करें. साथ ही, देखें कि कौनसे डिवाइस कनेक्ट और डिसकनेक्ट होते हैं.
    6. तीन बार टेस्ट रन करें, ताकि टैबलेट की स्क्रीन पर चार्ट को धुंधला करने वाले संकेतों और उपयोगकर्ता के प्रॉम्प्ट को हटाया जा सके.
      1. टैबलेट को टेबल पर इस तरह रखें कि उसका डिसप्ले ऊपर की ओर हो. टैबलेट को बॉक्स के पिछले पैनल से अटैच न करें.
      2. यह कमांड चलाएं:
        python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
        
        दूसरे और तीसरे सीन में, टैबलेट पर इमेज दिखाने की ज़रूरत होती है. इसलिए, टैबलेट पर यह मैसेज दिखता है: क्या Drive को आपके डिवाइस पर मौजूद फ़ोटो, मीडिया, और फ़ाइलें ऐक्सेस करने की अनुमति दें?. अनुमति दें पर क्लिक करके, इस प्रॉम्प्ट को हटाएं और आने वाले समय में ऐसे प्रॉम्प्ट न पाएं.
      3. कमांड को फिर से चलाएं. टैबलेट पर यह मैसेज दिखता है: क्या आपको इस फ़ाइल की एक कॉपी रखनी है? साथ ही, Google Drive का सुझाव दिया जाता है. इस प्रॉम्प्ट को हटाएं. साथ ही, आने वाले समय में ऐसे प्रॉम्प्ट न दिखें. इसके लिए, Drive आइकॉन दबाएं. इसके बाद, Drive पर अपलोड करने के लिए रद्द करें पर क्लिक करें.
      4. आखिर में, tools/run_all_tests.py चलाएं और पुष्टि करें कि स्क्रिप्ट के अलग-अलग सीन के हिसाब से, सीन अपने-आप बदल रहे हैं. ज़्यादातर टेस्ट में, कैमरा चार्ट पर फ़ोकस नहीं करता. इसलिए, टेस्ट फ़ेल हो जाते हैं. हालांकि, यह पुष्टि की जा सकती है कि टैबलेट, स्क्रीन पर कोई प्रॉम्प्ट या अन्य पॉप-अप दिखाए बिना, सीन के बीच सही तरीके से स्विच कर रहा है.

    टेस्ट चलाना

    ITS-in-a-box को चलाने से पहले, पक्का करें कि आपके टेस्ट सेटअप में ये हार्डवेयर और सॉफ़्टवेयर शामिल हों:

    • एक (1) आईटीएस-इन-अ-बॉक्स
    • सीन दिखाने के लिए, एक (1) हाई रिज़ॉल्यूशन 10" टैबलेट, S/N: 5811000011
    • एक (1) DUT, जिसमें CTS Verifier 7.0_8+ ऐप्लिकेशन इंस्टॉल हो. DUT का उदाहरण:
      • बैक कैमरे (0) की टेस्टिंग के लिए, एक(1) Pixel NOF26W, S/N: FA6BM0305016. सीटीएस वेरिफ़ायर ऐप्लिकेशन इंस्टॉल करने के लिए, 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
    पहली इमेज. कैमरा 0 S/N: FA6BM0305016

    सीन फिर से जनरेट करने की कोशिश करें

    किसी एक कैमरे के लिए सीन फिर से आज़माए जा सकते हैं:

    • किसी एक कैमरे पर सीन फिर से आज़माने के लिए:
      python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
      

    सीन 5 चलाओ

    सीन 5 के लिए, खास सेटअप और खास लाइटिंग की ज़रूरत होती है. ज़्यादा जानकारी के लिए, CTS Verifier में CameraITS.pdf देखें. इसे Compatibility Test Suite के डाउनलोड से डाउनलोड किया जा सकता है. आपको सीन 5 को अलग से (बॉक्स के बाहर) और TEST_BED_MANUAL टेस्टबेड के साथ चलाना होगा.

    कैमरा सीन 5
    दूसरी इमेज. कैमरा सीन 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
    

    नतीजे पाना

    टेस्टिंग के दौरान नतीजे देखे जा सकते हैं. साथ ही, पूरे हो चुके नतीजों को रिपोर्ट के तौर पर सेव किया जा सकता है.

    • नतीजे देखें. Camera ITS के नतीजों को रिपोर्ट के तौर पर सेव करने के लिए:
      1. पास दबाएं और रिपोर्ट सेव करें.
        कैमरे की आईटीएस रिपोर्ट
        तीसरी इमेज. कैमरे के आईटीएस की रिपोर्ट
      2. डिवाइस से रिपोर्ट पाएं:
        adb -s FA6BM0305016 pull /sdcard/verifierReports
        
      3. रिपोर्ट फ़ाइल को अनज़िप करें और test_result.xml देखें.
        कैमरे की आईटीएस रिपोर्ट
        चौथी इमेज. कैमरा आईटीएस रिपोर्ट

    टैबलेट से जुड़ी ज़रूरी शर्तें

    Android 15 और इसके बाद के वर्शन वाले टैबलेट, जिनका इस्तेमाल आईटीएस चार्ट दिखाने के लिए किया जाता है वे इस सूची में शामिल होने चाहिए. कम रोशनी वाले सीन की टेस्टिंग के लिए काम करने वाले टैबलेट की सूची देखने के लिए, कम रोशनी वाले सीन के लिए काम करने वाले टैबलेट पर जाएं. Android 14 या इससे पहले के वर्शन के लिए, Android 14 और इससे पहले के वर्शन वाले टैबलेट के लिए ज़रूरी शर्तें देखें.

    अनुमति वाली सूची में शामिल टैबलेट, इन शर्तों के आधार पर चुने जाते हैं:

    • डिसप्ले का साइज़ करीब 10 इंच और स्क्रीन रिज़ॉल्यूशन 1920 x 1200 पिक्सल से ज़्यादा होना चाहिए.
    • पल्स-विड्थ मॉड्यूलेशन (पीडब्ल्यूएम) कंट्रोल वाली स्क्रीन की रोशनी कम करने की वजह से, स्क्रीन में फ़्लिकरिंग नहीं होनी चाहिए.
    • आईटीएस टेस्ट से भेजे गए adb कमांड को लागू कर सकता हो और स्क्रीन की तय की गई चमक के साथ चार्ट इमेज दिखा सकता हो.

    टैबलेट के मॉडल के हिसाब से, config.yml में brightness की वैल्यू सेट होनी चाहिए. यह पता लगाने के लिए कि आपका टैबलेट मॉडल, अनुमति वाली सूची में मौजूद डिवाइस के नाम से मेल खाता है या नहीं, adb shell getprop | grep 'ro.product.device' adb कमांड चलाकर ro.product.device वैल्यू प्रिंट करें.

    डिवाइस डिसप्ले का साइज़
    (इंच में)
    डिसप्ले का साइज़
    (पिक्सल)
    टैबलेट के डाइमेंशन
    (इंच)
    डिसप्ले
    की रोशनी
    डिवाइस का नाम
    (ro.product
    .device)
    टैबलेट ओएस
    वर्शन
    Google
    Pixel C
    10.2 2560 x 1800 9.53 x 7.05 x 0.28 96 ड्रैगन Android 6+
    Honor
    Pad 8
    11 2000 x 1200 10.18 x 6.76 x 0.29 192 HNHEY-Q Android 12
    Huawei
    MediaPad m5
    10.8 2560 x 1600 10.18 x 6.76 x 0.29 192 HWCMR09 Android 8 या इसके बाद के वर्शन
    Lenovo
    Tab M10 Plus
    10.3 1920 x 1200 9.61 x 6.03 x 0.32 192 X606F Android 9 या इसके बाद के वर्शन
    Lenovo
    Tab P11
    11 2000 x 1200 10.17 x 6.42 x 0.30 192 J606F Android 11 या इसके बाद के वर्शन
    Lenovo
    Tab P11 Gen2
    11.5 2000 x 1200 10.59 x 6.67 x 0.29 192 TB350FU Android 13+
    Nokia
    T21
    10.4 2000 x 1200 9.74 x 6.19 x 0.30 192 AGTA Android 12 या इसके बाद के वर्शन
    Samsung
    Galaxy Tab A7
    10.4 2000 x 1200 9.75 x 6.2 x 0.28 192 gta4lwifi Android 10+
    Samsung
    Galaxy Tab A8
    10.5 1920 x 1200 9.72 x 6.73 x 0.27 192 gta8wifi Android 11 या इसके बाद के वर्शन
    Samsung
    Galaxy Tab A9+
    11 1920 x 1200 10.12 x 6.64 x 0.27 192 gta9pwifi Android 13+
    Vivo
    Pad2
    12.1 2800 x 1968 10.47 x 7.54 x 0.26 192 DPD2221 Android 13+
    Xiaomi
    Pad 5
    11 2560 x 1600 10.18 x 6.76 x 0.29 192 nabu Android 13+
    Xiaomi
    Redmi
    Pad
    10.61 2000 x 1200 9.86 x 6.22 x 0.28 192 yunluo Android 14 या इसके बाद के वर्शन
    Xiaomi
    Redmi
    Pad SE
    11 2560 x 1600 10.06 x 6.58 x 0.29 192 xun Android 13+

    कम रोशनी वाले सीन के लिए, इन टैबलेट का इस्तेमाल किया जा सकता है

    यहां दी गई टेबल में, उन टैबलेट की सूची दी गई है जिन पर कम रोशनी वाले सीन की टेस्टिंग की जा सकती है. ये टैबलेट, कम रोशनी वाले सीन के लिए ज़रूरी ब्राइटनेस लेवल तक पहुंच सकते हैं. इससे डीयूटी, चार्ट को सही तरीके से दिखा पाता है.
    डिवाइस डिवाइस का नाम (ro.product.device) टैबलेट ओएस का वर्शन
    Huawei
    MediaPad m5
    HWCMR09 Android 8 या इसके बाद के वर्शन
    Samsung Galaxy Tab A8 gta8wifi Android 11 या इसके बाद के वर्शन
    Samsung Galaxy Tab A9+ gta9pwifi Android 13+
    Xiaomi Pad 5 nabu Android 13+
    Xiaomi
    Redmi
    Pad SE
    xun Android 13+

    Android 14 और इससे पुराने वर्शन वाले टैबलेट के लिए ज़रूरी शर्तें

    टैबलेट का डिसप्ले साइज़ करीब 10 इंच होना चाहिए. साथ ही, स्क्रीन रिज़ॉल्यूशन 1920 x 1200 पिक्सल से ज़्यादा होना चाहिए. टैबलेट में, चमक का लेवल सेट करने के लिए पल्स विड्थ मॉड्यूलेशन (पीडब्ल्यूएम) का इस्तेमाल नहीं किया जाना चाहिए. टैबलेट के मॉडल के हिसाब से, config.yml में brightness एट्रिब्यूट की वैल्यू सेट होनी चाहिए. नीचे दी गई टेबल में, आईटीएस टेस्टिंग के लिए सुझाए गए टैबलेट और उन टैबलेट के साथ काम करने वाले DUT के Android रिलीज़ वर्शन की जानकारी दी गई है.

    डिवाइस डिसप्ले का साइज़
    (इंच में)
    डिसप्ले का साइज़
    (पिक्सल)
    टैबलेट के डाइमेंशन
    (इंच)
    डिसप्ले
    की रोशनी

    बिट दिखाएं

    DUT ओएस पर काम करता है

    टैबलेट ओएस के साथ काम करता है
    Samsung
    Galaxy Tab A8
    10.5 1920 x 1200 9.72 x 6.37 x 0.27 192 8 Android 13+ Android 11 या इसके बाद के वर्शन
    Xiaomi
    Pad 5
    11 2560 x 1600 10.03 x 6.55 x 0.27 1024 11 Android 12 या इसके बाद के वर्शन सिर्फ़ Android 11
    Lenovo
    Tab M10 Plus
    10.3 1920 x 1200 9.61 x 6.03 x 0.32 192 8 Android 12 या इसके बाद के वर्शन Android 9 या इसके बाद के वर्शन
    Samsung
    Galaxy Tab A7
    10.4 2000 x 1200 9.75 x 6.2 x 0.28 192 8 Android 12 या इसके बाद के वर्शन Android 10+
    Chuwi
    Hi9 Air 10.1
    10.1 2560 x 1600 9.52 x 6.77 x 0.31 192 8 Android 7+ Android 8 या इसके बाद के वर्शन
    Asus
    ZenPad 3
    9.7 2048 x 1536 9.47 x 6.44 x 0.28 192 8 Android 7+ Android 6+
    Huawei
    MediaPad m5
    10.8 2560 x 1600 10.18 x 6.76 x 0.29 192 8 Android 7+ Android 8 या इसके बाद के वर्शन
    Google
    Pixel C
    10.2 2560 x 1800 9.53 x 7.05 x 0.28 96 8 Android 7+ Android 6+
    Sony
    Xperia Z4
    10.1 2560 x 1600 10 x 6.57 x 0.24 192 8 Android 7+ Android 5 या इसके बाद के वर्शन

    अक्सर पूछे जाने वाले सवाल

    पहला सवाल: मैं कैसे तय करूं कि मेरे डिवाइस के लिए मुझे किन टेस्ट रिग की ज़रूरत है?

    RFoV ITS-in-a-box revision 1, CameraITS/tests डायरेक्ट्री में टैबलेट के सीन टेस्ट के लिए RFoV कैमरों की जांच करता है. RFoV को इस तरह से तय किया जाता है: 60° < FoV < 90°. ज़्यादा FoV वाले कैमरों के लिए, इमेज में लाइट दिख सकती हैं या चार्ट, FoV में बहुत कम जगह घेर सकते हैं. इससे टेस्ट के नतीजों पर असर पड़ता है.

    WFoV ITS-in-a-box revision 2, CameraITS/tests डायरेक्ट्री में टैबलेट के सीन टेस्ट के लिए WFoV कैमरों की जांच करता है. WFoV को इस तरह से तय किया जाता है: FoV >= 90°. रिवाइज़न 2 का टेस्ट रिग, फ़ंक्शन के हिसाब से रिवाइज़न 1 जैसा ही है, लेकिन यह बड़ा है. Revision 2 टेस्ट रिग, Android 9 और इसके बाद के वर्शन में RFoV और WFoV, दोनों तरह के कैमरों की जांच कर सकता है. बड़ी स्क्रीन होने की वजह से, अगर DUT एक टैबलेट है, तो दूसरा वर्शन सबसे सही है

    मॉड्यूलर बेस रिग , CameraITS/tests डायरेक्ट्री में टैबलेट के सीन टेस्ट के लिए WFoV कैमरों की जांच करता है. WFoV को इस तरह से तय किया जाता है: FoV >= 90°. मॉड्यूलर बेस रिग, Android 9 और इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, RFoV और WFoV, दोनों तरह के कैमरों की जांच कर सकता है. यह टेली एक्सटेंशन रिग के साथ भी काम करता है. इसे ऐसे टेली कैमरों को टेस्ट करने के लिए अटैच किया जा सकता है जिनकी कम से कम फ़ोकस दूरी ज़्यादा होती है. मॉड्यूलर बेस रिग, WFoV ITS-in-a-box की तरह ही काम करता है, लेकिन यह छोटा होता है.

    सेंसर फ़्यूज़न बॉक्स, कैमरे/जायरोस्कोप के टाइमिंग ऑफ़सेट की जांच करता है. साथ ही, यह मल्टी-कैमरा सिस्टम के फ़्रेम सिंक की जांच करता है. ये जांच scenes=sensor_fusion में की जाती हैं. REALTIME फ़ीचर फ़्लैग के लिए, कैमरा/जायरोस्कोप टाइमिंग ऑफ़सेट 1 मि॰से॰ से कम होना चाहिए.

    एक से ज़्यादा कैमरे वाले डिवाइसों की जांच के लिए, स्टैटिक आईटीएस टेस्ट के लिए एक ही रिग का इस्तेमाल किया जा सकता है. साथ ही, अगर कैमरे में REALTIME सुविधा वाला फ़्लैग मौजूद है, तो सेंसर फ़्यूज़न रिग का इस्तेमाल किया जा सकता है.

    नीचे दी गई टेबल में, कॉन्फ़िगरेशन के कुछ उदाहरण दिए गए हैं.

    फ़ोकस की कम से कम दूरी कैमरे के फ़ील्ड ऑफ़ व्यू रीयलटाइम में? सुझाए गए रिग नोट
    31 सें॰मी॰ - 22 सें॰मी॰ 75° नहीं मॉड्यूलर बेस, WFoV या RFoV Android 7.0 या इसके बाद का वर्शन
    31 सें॰मी॰ - 22 सें॰मी॰ 75° हां मॉड्यूलर बेस, WFoV या RFoV, और सेंसर फ़्यूज़न Android 9 या इसके बाद का वर्शन
    22 सेंटीमीटर या इससे कम 75° + 95° हां मॉड्यूलर बेस या WFoV और सेंसर फ़्यूज़न Android 9 या इसके बाद का वर्शन
    110 सें॰मी॰ - 22 सें॰मी॰ 75° + 95° + 20° हां मॉड्यूलर बेस और टेली एक्सटेंशन और सेंसर फ़्यूज़न Android 9 या इसके बाद का वर्शन
    110 सें॰मी॰ - 22 सें॰मी॰ 75° + 95° + 20° हां मॉड्यूलर बेस और टेली एक्सटेंशन और सेंसर फ़्यूज़न और Gen2 रिग
    22 सेंटीमीटर या इससे कम 75° + 95° टैबलेट नहीं WFoV Android 9 या इसके बाद का वर्शन

    Q2: मैं यह कैसे तय करूं कि कौनसा टेस्ट रिग इस्तेमाल किया जा रहा है?

    सही टेस्ट रिग चुनने के लिए, पक्का करें कि चार्ट की दूरी का पैरामीटर सही हो. rev1 टेस्ट रिग (RFoV) में चार्ट की दूरी 31 सेमी है. वहीं, rev2 रिग (WFoV) में चार्ट की दूरी 22 सेमी है. डिफ़ॉल्ट रूप से, चार्ट की दूरी 31 cm पर सेट होती है.

    Android 10 से Android 11

    Android 10 से 11 में सही टेस्ट रिग की पहचान करने के लिए, कमांड लाइन में dist फ़्लैग जोड़ें. dist के लिए डिफ़ॉल्ट वैल्यू 31 है. chart_distance पैरामीटर बदलने के लिए, यह कमांड चलाएं.
    python tools/run_all_tests.py ... chart=# dist=22
    

    Android 12 और इसके बाद के वर्शन

    Android 12 और इसके बाद के वर्शन में, सही टेस्ट रिग की पहचान करने के लिए, config.yml फ़ाइल में बदलाव किया जा सकता है. इसके लिए, chart_distance पैरामीटर को बदलना होगा.
    edit config.yml
    chart_distance: 31.0 → chart_distance: 22.0
    

    तीसरा सवाल: मैं टैबलेट की चमक को कैसे कंट्रोल करूं?

    डिफ़ॉल्ट रूप से, टैबलेट की चमक 96 पर सेट होती है.

    Android 7.0 से लेकर Android 9 तक के वर्शन पर काम करने वाले टैबलेट की चमक बदलने के लिए, यह कमांड चलाएं:

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

    Android 10 से 11 तक वाले वर्शन पर चलने वाले टैबलेट की चमक बदलने के लिए, कमांड लाइन में brightness फ़्लैग जोड़कर वैल्यू बदली जा सकती है:

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

    Android 12 और इसके बाद के वर्शन वाले टैबलेट पर रोशनी बदलने के लिए, यह कमांड चलाएं:

    edit config.yml
    brightness: 96 → brightness: 192
    

    चौथा सवाल: मैं किसी एक टेस्ट को कैसे डीबग करूं?

    डीबग करने के मकसद से, टेस्ट अलग-अलग चलाए जा सकते हैं. हालांकि, जब तक पूरा सीन नहीं चलाया जाता, तब तक CtsVerifier.apk को नतीजे नहीं भेजे जाते.

    Android 11 और इससे पहले के वर्शन वाले डिवाइसों पर किसी सीन को चलाने के लिए:

    1. tools/run_all_tests.py में scenes फ़्लैग जोड़कर, कोई सीन लोड करें:
      python tools/run_all_tests.py device=# camera=# chart=# scenes=#
      
    2. सीन के stdout में लोड होने के बाद, टेस्ट रोकने के लिए Control+C दबाएं.

      अगर स्क्रीन पर सही सीन पहले से ही दिख रहा है, तो स्क्रीन चालू करें:

      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### को चलाने पर, नतीजे लोकल स्क्रीन पर प्रिंट होते हैं और इमेज, जनरेट की गई /tmp/tmp### डायरेक्ट्री के बजाय लोकल डायरेक्ट्री में सेव होती हैं.tools/run_all_tests.py

    Android 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/ डायरेक्ट्री में प्रिंट किए जाते हैं. इन्हें रन टाइम के हिसाब से क्रम से लगाया जाता है.

    पांचवां सवाल: मुझे हर टेस्ट को अलग-अलग फिर से चलाने के बजाय, पूरे सीन के तौर पर फ़ेल होने वाले टेस्ट क्यों चलाने चाहिए?

    डीबग करने के मकसद से, टेस्ट अलग-अलग चलाए जा सकते हैं. हालांकि, जब तक पूरा सीन नहीं चलाया जाता, तब तक नतीजे CtsVerifier.apk को नहीं भेजे जाते.

    Camera ITS यह पक्का करता है कि तीसरे पक्ष के ऐप्लिकेशन में, कैमरे का इंटरफ़ेस काम करता हो. यूनिट टेस्ट की तरह ही, हर टेस्ट में कैमरे की किसी एक सुविधा पर ज़ोर दिया जाता है. भरोसेमंद तरीके से काम न करने वाली सुविधाओं का पता लगाने के लिए, यह ज़रूरी है कि ये टेस्ट पूरे सीन के लिए एक ग्रुप के तौर पर पास हों. उदाहरण के लिए, ऐसा हो सकता है कि किसी सीन को फिर से चलाने पर, एक भरोसेमंद टेस्ट पास हो जाए. हालांकि, कई भरोसेमंद टेस्ट पास नहीं हो सकते.

    एक उदाहरण के तौर पर, मान लें कि किसी सीन में 10 टेस्ट हैं और हर टेस्ट के PASS के तौर पर वापस आने की संभावना 50% है. हर टेस्ट को अलग-अलग चलाने से, ऑपरेटर के पास इस बात की संभावना ज़्यादा होती है कि वह कैमरे को Camera ITS पास करा सके. हालांकि, अगर टेस्ट को एक सीन के तौर पर एग्रीगेट किया जाता है, तो सीन के पास होने की संभावना सिर्फ़ 0.1% होती है.

    छठा सवाल: मैं किसी एक सीन को कैसे चलाऊं या सीन के क्रम को कैसे बदलूं?

    डिफ़ॉल्ट रूप से, स्क्रिप्ट tools/run_all_tests.py सभी सीन को क्रम से चलाती है. हालांकि, सीन को अलग-अलग या तय किए गए क्रम में चलाया जा सकता है. साथ ही, इसकी जानकारी CtsVerifier.apk को दी जा सकती है.

    Android 11 या इससे पहले के वर्शन में, किसी सीन (उदाहरण के लिए, सीन 2) को चलाने या एक से ज़्यादा सीन को किसी खास क्रम में चलाने के लिए:

    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 फ़ाइल में सेट किए जाते हैं.

    Q7: टैबलेट सेटअप के साथ सीन 1 के कई टेस्ट फ़ेल हो जाते हैं, लेकिन पेपर चार्ट के साथ पास हो जाते हैं. क्या गड़बड़ है?

    पक्का करें कि टैबलेट और टेस्ट एनवायरमेंट, यहां दी गई खास बातों के मुताबिक हों.

    टैबलेट की खास बातें

    पक्का करें कि टैबलेट में ये सुविधाएं हों:

    • डिसप्ले का साइज़ (इंच में): 10 इंच
    • डिसप्ले का साइज़ (पिक्सल): 1920 x 1200 पिक्सल से ज़्यादा

    ज़्यादा जानकारी के लिए, टैबलेट से जुड़ी ज़रूरी शर्तें देखें.

    टैबलेट की रोशनी

    अगर टैबलेट की डिसप्ले ब्राइटनेस बहुत कम है, तो हो सकता है कि टेस्ट के नतीजे सही न हों.

    ज़्यादा जानकारी के लिए, मैं टैबलेट की चमक को कैसे कंट्रोल करूं? लेख पढ़ें

    बॉक्स लाइटिंग का लेवल (इसके लिए लक्स मीटर की ज़रूरत होती है)

    पक्का करें कि टैबलेट खोलने पर, टारगेट लक्स वैल्यू 100 से 300 के बीच हो.

    अगर लक्स लेवल बहुत ज़्यादा है, तो scene1/test_param_flash_mode.py FAIL दिखाता है. अगर लक्स लेवल बहुत कम है, तो कई टेस्ट पास नहीं हो पाते.

    सवाल 8: मैं सेंसर फ़्यूज़न टेस्ट को कैसे डीबग करूं?

    1. पक्का करें कि आप dialout ग्रुप में हों.

      groups | egrep ‘dialout'
    2. पक्का करें कि सेंसर फ़्यूज़न कंट्रोलर कनेक्ट हो. इसके लिए, यह पता लगाएं कि Microchip Technology, यूएसबी पोर्ट से कनेक्ट है या नहीं.

      lsusb
      …
      Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
      …
      
    3. नीचे दी गई कमांड का इस्तेमाल करके, टेस्ट को कई बार चलाएं, ताकि टेस्ट के नतीजों का डिस्ट्रिब्यूशन मिल सके.

      Android 11 या इससे पहले के वर्शन में:

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

      Android 12 और इसके बाद के वर्शन वाले डिवाइसों के लिए:

      python tools/run_sensor_fusion_box.py num_runs=10
      

      अतिरिक्त पैरामीटर, config.yml फ़ाइल में सेट किए जाते हैं.

      रन के आउटपुट, sensor_fusion_# फ़ोल्डर में बनाए गए /tmp/tmp### फ़ोल्डर में होते हैं. यहां # रन नंबर होता है. ऐसा इन वजहों से हो सकता है:

      1. फ़ोन को बीच में ठीक से नहीं रखा गया है.
      2. इमेज में ज़रूरी सुविधाएं नहीं मिली हैं. ऐसा अक्सर फ़ील्ड ऑफ़ व्यू (FoV) या लाइटिंग की समस्या की वजह से होता है.
      3. लौटाया गया FAIL मान्य है. साथ ही, कैमरे और जायरोस्कोप के बीच टाइमिंग ऑफ़सेट को ठीक किया जाना चाहिए.

    सवाल 9: टेस्टिंग से जुड़ी किसी गड़बड़ी की शिकायत करते समय, मुझे कौनसी जानकारी शामिल करनी चाहिए?

    टेस्टिंग से जुड़ी किसी गड़बड़ी की शिकायत करते समय, टेस्ट के लिए जनरेट की गई फ़ाइलें और इमेज शामिल करें.

    1. अगर आपने tools/run_all_tests.py के ज़रिए टेस्ट किया है, तो बग में /tmp/ की ज़िप की गई डायरेक्ट्री अटैच करें.
    2. अगर आपने टेस्ट खुद किया है, तो स्क्रीन पर दिखने वाले सभी आउटपुट और जनरेट की गई इमेज को बग से अटैच करें.

    गड़बड़ी की रिपोर्ट भी शामिल करें. जब टेस्ट फ़ेल हो जाए, तब गड़बड़ी की रिपोर्ट जनरेट करने के लिए, यहां दिया गया निर्देश इस्तेमाल करें. साथ ही, जनरेट की गई ज़िप फ़ाइल को गड़बड़ी की रिपोर्ट में अटैच करें.

    adb -s device_id bugreport
    

    Q10: मुझे ऐसे कैमरे के साथ sensor_fusion टेस्ट सीन चलाना है जिसका फ़ोकस कम से कम दूरी पर होता है. साथ ही, 25 सेमी की दूरी पर मौजूद चार्ट की इमेज धुंधली हो जाती हैं.

    अगर आपका कैमरा 25 सेंटीमीटर की दूरी पर फ़ोकस नहीं कर पाता है, तो सेंसर फ़्यूज़न बॉक्स के चार्ट-माउंटिंग पैनल को हटा दें. चार्ट को इतनी दूरी पर रखें कि डीयूटी उस पर फ़ोकस कर सके. साथ ही, डीयूटी और चार्ट के बीच की दूरी को config.yml से बदलकर chart_distance करें. पांचवीं इमेज में, इस स्थिति में चार्ट की दूरी को मेज़र करने का उदाहरण दिखाया गया है.

    sensor_fusion TELE testing example6
    पांचवीं इमेज. सेंसर फ़्यूज़न टेस्ट सीन के लिए, चार्ट की दूरी मापना
      edit config.yml
    chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART
    

    सवाल 11: मुझे ऐसे कैमरे के लिए टैबलेट टेस्ट सीन चलाने हैं जिसकी कम से कम फ़ोकस दूरी की वजह से, 31 सेंटीमीटर की दूरी पर रखे गए चार्ट की इमेज धुंधली हो जाती हैं. इसके लिए, मुझे क्या करना चाहिए?

    अगर आपका कैमरा 31 सेंटीमीटर (आरएफ़ओवी टेस्ट रिग की गहराई) पर टेस्ट करने के दौरान, साफ़ इमेज नहीं ले पाता है, तो अपने कैमरे को रिग के सामने इस तरह से लगाएं कि चार्ट सीन, कैमरे के फ़ील्ड ऑफ़ व्यू (एफ़ओवी) का करीब 60% हिस्सा कवर करे. इससे आपको साफ़ इमेज मिलेंगी. यह दूरी, कैमरे की कम से कम फ़ोकस दूरी से कम हो सकती है. chart_distance को config.yml में 31 सें॰मी॰ पर छोड़ें. टैबलेट पर चार्ट की स्केलिंग, कैमरे के फ़ील्ड ऑफ़ व्यू (FoV) के हिसाब से तय होती है. इसके बारे में यहां दी गई टेबल में बताया गया है:

    कैमरे का फ़ील्ड ऑफ़ व्यू चार्ट का स्केलिंग फ़ैक्टर
    60 > FoV > 40 0.67x
    40 > FoV > 25 0.5x
    FoV < 25 0.33x

    Q12: लॉजिकल मल्टी-कैमरा एपीआई की मदद से, किन कैमरों पर कौनसे टेस्ट किए जाते हैं?

    अगर आपका कैमरा REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA का इस्तेमाल करता है, तो आईटीएस के सभी टेस्ट, टॉप-लेवल के लॉजिकल कैमरे पर चलाए जाते हैं. आईटीएस टेस्ट का एक सबसेट, फ़िज़िकल सब-कैमरों पर चलाया जाता है. इन टेस्ट को tools/run_all_tests.py में SUB_CAMERA_TESTS कॉन्स्टेंट के तहत लिस्ट किया गया है.