การทดสอบกล้อง ITS

หน้านี้แสดงรายการการทดสอบที่ครอบคลุมภายใต้ชุดทดสอบภาพกล้อง (ITS) ซึ่งเป็นส่วนหนึ่งของตัวตรวจสอบชุดทดสอบความเข้ากันได้ของ Android (CTS) การทดสอบ ITS เป็นการทดสอบการทำงาน ซึ่งหมายความว่าไม่ได้วัดคุณภาพของภาพ แต่ฟังก์ชันกล้องที่โฆษณาทั้งหมดทำงานตามที่คาดไว้ เอกสารนี้ช่วยให้นักพัฒนาและผู้ทดสอบเข้าใจถึงสิ่งที่การทดสอบแต่ละรายการทำ และวิธีแก้ไขจุดบกพร่องในการทดสอบที่ล้มเหลว

การทดสอบประตู ITS ของกล้องตามคุณสมบัติของกล้องที่จำเป็น ระดับ API และระดับประสิทธิภาพของสื่อ (MPC) สำหรับระดับ API นั้น ITS จะใช้ ro.product.first_api_level เพื่อเกตการทดสอบที่เพิ่มในระดับ API เฉพาะที่ทดสอบประสบการณ์ผู้ใช้เชิงลบสำหรับฟังก์ชันการทำงานในระดับ API ที่ต่ำกว่า ITS ใช้ ro.vendor.api_level เพื่อทดสอบคุณสมบัติที่เพิ่มในระดับ API เฉพาะที่ต้องใช้ความสามารถด้านฮาร์ดแวร์ใหม่ หากมีการกำหนด ro.odm.build.media_performance_class ไว้สำหรับอุปกรณ์ ITS จำเป็นต้องมีการทดสอบเฉพาะจึงจะรันได้ ทั้งนี้ขึ้นอยู่กับระดับ MPC

การทดสอบจะจัดกลุ่มตามฉากดังนี้:

  • scene0 : บันทึกข้อมูลเมตา, ความกระวนกระวายใจ, ไจโรสโคป, การสั่นสะเทือน
  • ฉาก 1 : ค่าแสง, ความไวแสง, การชดเชย EV, YUV เทียบกับ JPEG/RAW
  • scene2 : การตรวจจับใบหน้า การทดสอบที่ต้องใช้ฉากสีหรือความมืดสนิท
  • ฉาก 3 : การปรับปรุงขอบ การเคลื่อนไหวของเลนส์
  • ฉาก 4 : อัตราส่วนภาพ, การครอบตัด, ขอบเขตการมองเห็น
  • ฉากที่ 5 : การบังแสงของเลนส์
  • ฉากที่ 6 : ซูม
  • scene_extensions : ส่วนขยายของกล้อง
  • sensor_fusion : ชดเชยเวลาของกล้อง/ไจโรสโคป

ดูแต่ละส่วนสำหรับคำอธิบายของแต่ละฉาก

ฉาก0

การทดสอบ Scene0 ไม่จำเป็นต้องมีข้อมูลฉากเฉพาะ อย่างไรก็ตาม โทรศัพท์จะต้องอยู่กับที่เพื่อทดสอบไจโรสโคปและการสั่นสะเทือน

test_burst_capture

ตรวจสอบว่าไปป์ไลน์การดักจับทั้งหมดสามารถตามทันความเร็วของการดักจับขนาดเต็มและเวลาของ CPU

API ที่ทดสอบแล้ว:

ผ่าน: ถ่ายภาพต่อเนื่องเป็นภาพขนาดเต็มและกล้องเร็วพอที่จะหลีกเลี่ยงการหมดเวลา

test_capture_result_dump

ทดสอบว่าผลลัพธ์การจับภาพจะถูกส่งกลับจากการจับภาพด้วยตนเอง แล้วจึงทิ้งข้อมูลนั้น

API ที่ทดสอบแล้ว:

ผ่าน: เสร็จสิ้นการจับภาพและทิ้งผลการจับภาพ

test_gyro_bias

ทดสอบว่าไจโรมีเอาต์พุตที่เสถียรหรือไม่เมื่ออุปกรณ์อยู่กับที่ ข้อมูลถูกพล็อตเป็นจุดข้อมูลโดยเฉลี่ย 20 จุด

API ที่ทดสอบแล้ว:

ผ่าน: เดลต้าของไจโรที่อ่านได้น้อยกว่า 0.01 เมื่อเวลาผ่านไป

test_gyro_bias_plot.png

test_gyro_bias_plot.png

ทดสอบ_กระวนกระวายใจ

วัดความกระวนกระวายใจในการประทับเวลาของกล้อง

API ที่ทดสอบแล้ว:

ผ่าน: มีเดลต้าอย่างน้อย 30 ms ระหว่างเฟรม

test_jitter_plot.png

test_jitter_plot.png (สังเกตช่วงแกน y เล็ก ๆ จริง ๆ แล้ว Jitter มีขนาดเล็กในพล็อตนี้)

test_metadata

ทดสอบความถูกต้องของรายการข้อมูลเมตา ดูผลการจับภาพและวัตถุลักษณะเฉพาะของกล้อง การทดสอบนี้ใช้การเปิดรับแสง auto_capture_request และรับค่าเนื่องจากเนื้อหารูปภาพไม่สำคัญ

API ที่ทดสอบแล้ว:

ผ่าน: ระดับฮาร์ดแวร์, rollingShutterSkew , แท็ก frameDuration , timestampSource , croppingType , blackLevelPattern , pixel_pitch , FoV, Hyperfocal Distance มีอยู่และมีค่าที่ถูกต้อง

test_param_sensitivity_burst

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity อย่างถูกต้องในการถ่ายภาพต่อเนื่อง ตรวจสอบข้อมูลเมตาของเอาต์พุตเท่านั้น

API ที่ทดสอบแล้ว:

ผ่าน: ข้อมูลเอาต์พุตมีความทนทานต่อข้อผิดพลาดน้อยกว่า 0.2%

ทดสอบ_อ่าน_เขียน

ทดสอบว่าอุปกรณ์เขียนค่าแสงที่ถูกต้องและรับค่าโดยการอ่านกลับข้อมูลเมตาของการจับภาพ

API ที่ทดสอบแล้ว:

ผ่าน: ค่าอ่านและเขียนตรงกันในทุกช็อต

test_sensor_เหตุการณ์

ทดสอบว่าอุปกรณ์ค้นหาและพิมพ์เหตุการณ์เซ็นเซอร์สำหรับอุปกรณ์ที่โฆษณาการรองรับการรวมเซ็นเซอร์ เซ็นเซอร์ที่คาดหวัง ได้แก่ มาตรความเร่ง ไจโรสโคป และแมกนีโตมิเตอร์ การทดสอบนี้จะใช้งานได้เฉพาะเมื่อหน้าจอเปิดอยู่ ซึ่งหมายความว่าอุปกรณ์ไม่อยู่ในโหมดสแตนด์บาย

API ที่ทดสอบแล้ว:

ผ่าน: ได้รับเหตุการณ์สำหรับเซ็นเซอร์แต่ละตัว

test_solid_color_test_pattern

ทดสอบว่ารูปแบบการทดสอบสีทึบถูกสร้างขึ้นอย่างเหมาะสมสำหรับการปิดเสียงกล้อง หากรองรับการปิดเสียงกล้อง จะต้องรองรับรูปแบบการทดสอบสีทึบ หากไม่รองรับการปิดเสียงกล้อง รูปแบบการทดสอบสีทึบจะถูกทดสอบเมื่อมีการโฆษณาความสามารถไว้เท่านั้น

หากรองรับภาพ RAW จะมีการทดสอบการกำหนดสีด้วย สีที่ทดสอบคือ สีดำ สีขาว สีแดง สีน้ำเงิน และสีเขียว สำหรับกล้องที่ไม่รองรับภาพ RAW จะมีการทดสอบเฉพาะสีดำเท่านั้น

API ที่ทดสอบแล้ว:

ผ่าน: รูปแบบการทดสอบทึบที่รองรับคือสีที่ถูกต้อง และมีความแปรปรวนต่ำในภาพ

test_test_รูปแบบ

ทดสอบพารามิเตอร์ android.sensor.testPatternMode เพื่อจับภาพเฟรมสำหรับรูปแบบการทดสอบที่ถูกต้องแต่ละรูปแบบ และตรวจสอบว่าเฟรมถูกสร้างขึ้นอย่างถูกต้องสำหรับสีทึบและแถบสี การทดสอบนี้มีขั้นตอนต่อไปนี้:

  1. จับภาพสำหรับรูปแบบการทดสอบที่รองรับทั้งหมด
  2. ดำเนินการตรวจสอบความถูกต้องอย่างง่ายสำหรับรูปแบบการทดสอบสีทึบและแถบสี

API ที่ทดสอบแล้ว:

ผ่าน: รูปแบบการทดสอบที่รองรับถูกสร้างขึ้นอย่างถูกต้อง

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

ทดสอบการแปลงรูปแบบการทดสอบจาก RAW เป็น YUV ด้วยโทนแมปเชิงเส้น การทดสอบนี้ต้องใช้ android.sensor.testPatternMode = 2 (COLOR_BARS) เพื่อสร้างรูปแบบภาพที่สมบูรณ์แบบสำหรับการแปลงโทนแมป ตรวจสอบให้แน่ใจว่าไปป์ไลน์มีเอาต์พุตสีที่เหมาะสมพร้อมโทนแมปเชิงเส้นและอินพุตรูปภาพในอุดมคติ (อาศัย test_test_patterns )

API ที่ทดสอบแล้ว:

ผ่าน: YUV และ RAW มีลักษณะคล้ายกัน

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

ทดสอบว่าเหตุการณ์เซ็นเซอร์ภาพและการเคลื่อนไหวอยู่ในโดเมนเวลาเดียวกันหรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: การประทับเวลาการเคลื่อนไหวอยู่ระหว่างการประทับเวลาของรูปภาพทั้งสอง

ทดสอบ_การสั่นสะเทือน_ข้อจำกัด

ทดสอบว่าการสั่นสะเทือนของอุปกรณ์ทำงานตามที่คาดไว้หรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: อุปกรณ์ไม่สั่นเมื่อปิดเสียงโดย API การจำกัดเสียงของกล้อง

ฉาก1

Scene1 เป็นแผนภูมิสีเทา แผนภูมิสีเทาต้องครอบคลุมจุดศูนย์กลาง 30% ของขอบเขตการมองเห็นของกล้อง แผนภูมิสีเทาคาดว่าจะท้าทาย 3A (การเปิดรับแสงอัตโนมัติ สมดุลสีขาวอัตโนมัติ โฟกัสอัตโนมัติ) ในระดับปานกลาง เนื่องจากบริเวณกึ่งกลางไม่มีคุณสมบัติใดๆ อย่างไรก็ตาม คำขอจับภาพจะระบุฉากทั้งหมดซึ่งรวมถึงคุณสมบัติที่เพียงพอสำหรับ 3A ที่จะมาบรรจบกัน

สามารถทดสอบกล้อง RFoV ใน WFaV หรือแท่นทดสอบ RFoV ได้ หากมีการทดสอบกล้อง RFoV ในแท่นทดสอบ WFaV แผนภูมิจะถูกปรับขนาดเป็น ⅔ เพื่อให้แน่ใจว่าขอบเขตบางประการสำหรับแผนภูมิสีเทาใน FoV เพื่อช่วยให้ 3A มาบรรจบกัน สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับแท่นทดสอบกล้อง โปรดดูที่ Camera ITS-in-a-box

ฉาก1

ฉากที่ 1: ตารางขนาดเต็ม (ซ้าย) ⅔ แผนภูมิมาตราส่วน (ขวา)

ทดสอบ_3a

ทดสอบการบรรจบกันของ 3A กับเป้าหมายที่ท้าทายปานกลาง

API ที่ทดสอบแล้ว:

ผ่าน: 3A มาบรรจบกันและค่า 3A ที่ส่งคืนนั้นถูกต้อง

test_ae_af

ทดสอบอัลกอริธึมการรับแสงอัตโนมัติ 3A (AE) และโฟกัสอัตโนมัติ (AF) แยกกัน

API ที่ทดสอบแล้ว:

ผ่าน: 3A มาบรรจบกันและค่า 3A ที่ส่งคืนนั้นถูกต้องตามกฎหมาย

test_ae_precapture_trigger

ทดสอบเครื่องสถานะ AE เมื่อใช้ทริกเกอร์จับภาพล่วงหน้า บันทึกคำขอด้วยตนเองห้าคำขอโดยปิดใช้งาน AE คำขอสุดท้ายมีทริกเกอร์การจับภาพล่วงหน้าของ AE ซึ่งควรละเว้นเนื่องจาก AE ถูกปิดใช้งาน

API ที่ทดสอบแล้ว:

ผ่าน: AE มาบรรจบกัน

test_auto_vs_manual

การทดสอบที่ถ่ายแบบอัตโนมัติและแบบแมนนวลจะมีลักษณะเหมือนกัน

API ที่ทดสอบแล้ว:

ผ่าน: การเพิ่มไวต์บาลานซ์แบบแมนนวลและการแปลงที่รายงานในผลการจับภาพแต่ละรายการจะตรงกับ estimate ไวต์บาลานซ์อัตโนมัติจากอัลกอริธึม 3A ของกล้อง

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

ทดสอบว่าอุปกรณ์สร้างภาพขาวดำที่สมบูรณ์ ถ่ายภาพสองครั้ง ภาพแรกให้อัตราขยายและการเปิดรับแสงที่ต่ำมาก ซึ่งส่งผลให้ได้ภาพสีดำ และภาพที่สองที่มีอัตราขยายสูงและค่ารับแสงที่นานมาก ซึ่งส่งผลให้ได้ภาพสีขาว

API ที่ทดสอบแล้ว:

ผ่าน: สร้างภาพขาวดำ ช่องสัญญาณอิ่มตัวของภาพสีขาวมีค่า RGB ที่ [255, 255, 255] โดยมีความคลาดเคลื่อนต่างกันน้อยกว่า 1%

ทดสอบ_สีดำ_สีขาว_สีดำทดสอบ_สีดำ_สีขาว_สีดำ
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

ถ่ายภาพต่อเนื่อง 5 ภาพจาก 50 ภาพด้วยการตั้งค่าการถ่ายภาพแบบแมนนวล และตรวจสอบว่าภาพเหมือนกันทุกภาพ การทดสอบนี้สามารถใช้เพื่อระบุว่ามีเฟรมประปรายที่ได้รับการประมวลผลแตกต่างออกไปหรือมีอาร์ทิแฟกต์หรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพจะเหมือนกันทั้งทางสายตาและในค่า RGB

ล้มเหลว: แสดงการเพิ่มขึ้นหรือลดลงของแผนภูมิค่าเฉลี่ย RGB ที่จุดเริ่มต้นของการระเบิดแต่ละครั้ง

  • ความอดทนคือ 3% สำหรับ first_API_level < 30
  • ความคลาดเคลื่อนคือ 2% สำหรับ first_API_level >= 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

ทดสอบว่าข้อมูลที่ถูกต้องกลับมาในออบเจ็กต์ CaptureResult ทำการจับภาพอัตโนมัติ แมนนวล และอัตโนมัติ

API ที่ทดสอบแล้ว:

ผ่าน: ข้อมูลเมตาใช้ได้กับการบันทึกทั้งหมด และการตั้งค่าด้วยตนเองจะไม่รั่วไหลไปสู่การบันทึกอัตโนมัติครั้งที่สอง แสดงการแก้ไขแสงเงาของเลนส์สำหรับการถ่ายภาพ

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

ทดสอบว่าสตรีม RAW ไม่สามารถครอบตัดได้

API ที่ทดสอบแล้ว:

ผ่าน: ภาพ YUV จะถูกครอบตัดตรงกลาง แต่ไม่ใช่ภาพ RAW

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

ทดสอบว่าพื้นที่เพาะปลูกทำงานอย่างไร ถ่ายภาพเต็มและสร้างแพตช์ของ 5 ภูมิภาคที่แตกต่างกัน (มุมและกึ่งกลาง) ถ่ายภาพโดยตั้งค่าครอบตัดสำหรับ 5 ภูมิภาค เปรียบเทียบแพตช์และค่าครอบตัดรูปภาพ

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพของขอบเขตที่ครอบตัดตรงกับแพตช์ที่สอดคล้องกับรูปภาพครอบตัด

test_dng_noise_model

ตรวจสอบว่าพารามิเตอร์โมเดลดิบของ DNG ถูกต้อง โครงเรื่องแสดงให้เห็นถึงความแปรปรวนที่วัดได้ของจุดกึ่งกลางของการ์ดสีเทาในช็อตดิบที่ถ่ายในช่วงความไว และเปรียบเทียบค่าเหล่านี้กับความแปรปรวนที่คาดหวังที่ความไวแต่ละอย่างโดยโมเดลสัญญาณรบกวน DNG ในกล้อง HAL (ขึ้นอยู่กับ พารามิเตอร์ O,S ส่งคืนในออบเจ็กต์ผลลัพธ์การจับภาพ) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับแบบจำลองสัญญาณรบกวน DNG ให้ดาวน์โหลดเอกสารต่อไปนี้เกี่ยวกับ แบบจำลองสัญญาณรบกวน DNG

API ที่ทดสอบแล้ว:

ผ่าน: พารามิเตอร์โมเดลดิบของ DNG ถูกต้อง ค่า RGB ที่คาดหวังจะตรงกับค่า RGB จริงที่วัดได้

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

ทดสอบว่ามีการใช้การชดเชยค่าแสง (EV) หรือไม่ การทดสอบจะเพิ่มการรับแสงในแปดขั้นตอน และตรวจสอบความสว่างที่วัดได้เทียบกับความสว่างที่คาดหวัง ค่าที่คาดหวังจะคำนวณจากความสว่างภาพของภาพโดยไม่มีการชดเชย EV และค่าที่คาดหวังจะอิ่มตัวหากค่าที่คำนวณเกินช่วงค่าของภาพจริง การทดสอบล้มเหลวหากค่าที่คาดหวังและค่าที่วัดได้ไม่ตรงกันหรือภาพได้รับแสงมากเกินไปภายในห้าขั้นตอน

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพแสดงการเปิดรับแสงที่เพิ่มขึ้นโดยไม่เปิดรับแสงมากเกินไปภายในห้าขั้นตอน

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

ทดสอบว่ามีการชดเชย EV โดยใช้ช่วงที่สร้างด้วย CONTROL_AE_COMPENSATION_STEP แปดเฟรมจะถูกบันทึกในแต่ละค่าการชดเชย

API ที่ทดสอบแล้ว:

ผ่าน: ถ่ายภาพลูมาที่เพิ่มขึ้นด้วยการตั้งค่าการชดเชย EV ที่เพิ่มขึ้น และแปดเฟรมที่บันทึกสำหรับการตั้งค่าการชดเชย EV แต่ละรายการจะมีค่าลูม่าที่คงที่

test_ev_compensation_basic

test_ev_compensation_basic.png

ทดสอบ_แสง

ทดสอบว่าได้ค่าแสงคงที่โดยค่า ISO และเวลาเปิดรับแสงจะแตกต่างกันไป ถ่ายภาพชุดโดยเลือก ISO และเวลาเปิดรับแสงเพื่อปรับสมดุลระหว่างกัน ผลลัพธ์ควรมีความสว่างเท่ากัน แต่ในลำดับภาพควรมีนอยส์มากขึ้น ตรวจสอบว่าค่าเฉลี่ยพิกเซลตัวอย่างอยู่ใกล้กัน ตรวจสอบให้แน่ใจว่ารูปภาพไม่ได้ถูกบีบให้อยู่ที่ 0 หรือ 1 (ซึ่งจะทำให้รูปภาพดูเหมือนเส้นแบน) การทดสอบยังสามารถดำเนินการกับภาพ RAW ได้ด้วยการตั้งค่าสถานะ debug ในไฟล์การกำหนดค่าของคุณ

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพมีความสว่างเท่ากัน แต่จะนอยส์กว่าด้วยค่า ISO ที่สูงกว่า ระนาบ RGB จะแบนราบเมื่อค่า การรับแสง ISO* คงที่เหนือพื้นที่เกนที่ทดสอบ

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

ทดสอบ_jpeg

การทดสอบที่แปลงรูปภาพ YUV และรูปภาพ JPEG ของอุปกรณ์จะมีลักษณะเหมือนกัน การทดสอบใช้จุดศูนย์กลาง 10% ของรูปภาพและคำนวณค่า RGB และตรวจสอบว่าตรงกัน

API ที่ทดสอบแล้ว:

ผ่าน: ความแตกต่าง RGB โดยเฉลี่ยระหว่างแต่ละภาพน้อยกว่า 3%

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

ทดสอบว่าการตั้งค่า (การรับแสงและอัตราขยาย) ล็อคบนเฟรมด้านขวาสำหรับกล้อง FULL และ LEVEL_3 ถ่ายภาพเป็นชุดโดยใช้คำขอแบบหันหลังชนกัน โดยเปลี่ยนพารามิเตอร์คำขอจับภาพระหว่างช็อตต่างๆ ตรวจสอบว่ารูปภาพมีคุณสมบัติตามที่คาดหวัง

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพ [2, 3, 6, 8, 10, 12, 13] ได้เพิ่ม ISO หรือค่าแสง และแสดงด้วยวิธี RGB ที่สูงขึ้นใน test_latching_plot_means.png

test_latching_i=00.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

ทดสอบ_ความเป็นเชิงเส้น

ทดสอบว่าการประมวลผลอุปกรณ์สามารถแปลงเป็นพิกเซลเชิงเส้นได้ จับภาพต่อเนื่องกันโดยอุปกรณ์ชี้ไปที่เป้าหมายที่สม่ำเสมอ

API ที่ทดสอบแล้ว:

ผ่าน: ค่า R, G, B จะต้องเพิ่มขึ้นเชิงเส้นโดยมีความไวเพิ่มขึ้น

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

ทดสอบการล็อค 3A และการระเบิด YUV (โดยใช้การตั้งค่าอัตโนมัติ) การทดสอบนี้ได้รับการออกแบบมาให้ผ่านการทดสอบแม้ในอุปกรณ์จำนวนจำกัดที่ไม่มี MANUAL_SENSOR หรือ PER_FRAME_CONTROLS การทดสอบจะตรวจสอบความสอดคล้องของภาพ YUV ในขณะที่การตรวจสอบอัตราเฟรมอยู่ใน CTS

API ที่ทดสอบแล้ว:

ผ่าน: การจับภาพดูสม่ำเสมอ

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

ทดสอบว่ามีการใช้พารามิเตอร์ android.colorCorrection.* เมื่อตั้งค่า ถ่ายภาพด้วยการแปลงที่แตกต่างกันและเพิ่มค่า และทดสอบว่าภาพเหล่านั้นดูแตกต่างกันตามนั้น การแปลงและเกนถูกเลือกเพื่อทำให้เอาต์พุตเป็นสีแดงหรือสีน้ำเงินมากขึ้น ใช้โทนแมปเชิงเส้น การทำแผนที่โทนสีเป็นเทคนิคที่ใช้ในการประมวลผลภาพเพื่อจับคู่สีชุดหนึ่งกับอีกชุดหนึ่ง เพื่อประมาณลักษณะที่ปรากฏของภาพที่มีช่วงไดนามิกสูงในตัวกลางที่มีช่วงไดนามิกที่จำกัดมากขึ้น

API ที่ทดสอบแล้ว:

ผ่าน: ค่า R และ B จะเพิ่มขึ้นตามการเปลี่ยนแปลง

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*แกน x คือคำขอจับภาพ: 0 = เอกภาพ, 1= บูสต์สีแดง, 2= บูสต์สีน้ำเงิน

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (เพิ่ม R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (เพิ่ม B)

test_param_exposure_time

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.exposureTime หรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: แต่ละช็อตจะสว่างกว่าช็อตก่อนหน้า

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

ทดสอบว่ามีการใช้พารามิเตอร์ android.flash.mode ตั้งค่าการเปิดรับแสงด้วยตนเองให้เป็นด้านมืด เพื่อให้ชัดเจนว่ายิงแฟลชหรือไม่ และใช้โทนแมปเชิงเส้น ตรวจสอบตรงกลางด้วยภาพย่อยเพื่อดูว่ามีการไล่ระดับสีขนาดใหญ่ที่สร้างขึ้นเพื่อตรวจสอบว่ามีการยิงแฟลชหรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: กึ่งกลางของภาพย่อยมีการไล่ระดับสีขนาดใหญ่ หมายความว่ายิงแฟลช

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

ทดสอบว่าพารามิเตอร์ android.noiseReduction.mode ถูกนำไปใช้อย่างถูกต้องเมื่อตั้งค่า ถ่ายภาพด้วยกล้องที่มีแสงสลัว ใช้เกนแบบอะนาล็อกที่สูงเพื่อให้แน่ใจว่าภาพที่ถ่ายจะมีสัญญาณรบกวน ถ่ายภาพสามภาพ สำหรับปิด NR, "เร็ว" และ "คุณภาพสูง" นอกจากนี้ยังจับภาพที่มีเกนต่ำและปิด NR และใช้ความแปรปรวนของสิ่งนี้เป็นพื้นฐาน ยิ่ง SNR (อัตราส่วนสัญญาณต่อสัญญาณรบกวน) สูงเท่าไร คุณภาพของภาพก็จะยิ่งดีขึ้นเท่านั้น

API ที่ทดสอบแล้ว:

ผ่าน: SNR จะแตกต่างกันไปตามโหมดการลดเสียงรบกวนที่แตกต่างกัน และมีลักษณะการทำงานคล้ายกับกราฟด้านล่าง

test_param_noise_reduction_plot_SNR

test_param_noise_reduction_plot_SNRs.png

0: ปิด, 1: เร็ว, 2: HQ, 3: นาที , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity การทดสอบจะเพิ่มความไวใน 5 ขั้นตอนโดยมีค่าแสงคงที่สำหรับแต่ละช็อต

API ที่ทดสอบแล้ว:

ผ่าน: ค่า RGB ที่กึ่งกลางจะสว่างขึ้น 10% พร้อมความไวที่เพิ่มขึ้น

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

ทดสอบว่ามีการใช้พารามิเตอร์ android.shading.mode

API ที่ทดสอบแล้ว:

ผ่าน: เปลี่ยนโหมดแรเงาและแผนที่แรเงาของเลนส์ได้รับการแก้ไขตามที่คาดไว้

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

ทดสอบว่ามีการใช้พารามิเตอร์ android.tonemap.mode ใช้เส้นโค้งโทนแมปที่แตกต่างกันกับแต่ละช่อง R, G, B และตรวจสอบว่าภาพที่ส่งออกได้รับการแก้ไขตามที่คาดไว้ การทดสอบนี้ประกอบด้วยการทดสอบสองแบบ คือ การทดสอบ 1 และการทดสอบ 2

API ที่ทดสอบแล้ว:

ผ่าน:

  • test1: รูปภาพทั้งสองมีแผนผังโทนเชิงเส้น แต่ n=1 มีการไล่ระดับสีที่ชันกว่า ช่อง G (สีเขียว) จะสว่างกว่าสำหรับภาพ n=1
  • test2: tonemap เดียวกัน แต่ความยาวต่างกัน รูปภาพก็เหมือนกัน
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

ทดสอบ_post_raw_sensitivity_boost

ตรวจสอบการเพิ่มความไวของโพสต์ RAW จับภาพชุดภาพ RAW และ YUV ด้วยความไวที่แตกต่างกัน โพสต์การผสมผสานการเพิ่มความไวของ RAW และตรวจสอบว่าค่าเฉลี่ยพิกเซลเอาต์พุตตรงกับการตั้งค่าคำขอหรือไม่

API ที่ทดสอบแล้ว:

ผ่าน: ภาพ RAW จะมืดลงเมื่อบูสต์เพิ่มขึ้น ในขณะที่ภาพ YUV จะมีความสว่างคงที่

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

จับภาพชุดภาพดิบโดยเพิ่มเกนและวัดสัญญาณรบกวน จับภาพแบบดิบเท่านั้นในการถ่ายภาพต่อเนื่อง

API ที่ทดสอบแล้ว:

ส่งผ่าน: แต่ละช็อตจะมีเสียงดังกว่าช็อตก่อนหน้า เนื่องจากได้รับเพิ่มขึ้น

ใช้ความแปรปรวนของเซลล์ตารางสถิติตรงกลาง

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

จับภาพชุดภาพดิบโดยเพิ่มเวลารับแสงและวัดค่าพิกเซล

API ที่ทดสอบแล้ว:

ผ่าน: การเพิ่ม ISO (เกน) จะทำให้พิกเซลมีความไวต่อแสงมากขึ้น ดังนั้นโครงเรื่องจึงเคลื่อนไปทางซ้าย

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ คือ 1 ms, 10¹ คือ 10 ms, 10⁻¹ คือ 0.1 ms)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

จับภาพชุดภาพ Raw ด้วยความไวแสงที่เพิ่มขึ้น และวัดสัญญาณรบกวน (ความแปรปรวน) ที่อยู่ตรงกลาง 10% ของภาพ ทดสอบว่าแต่ละช็อตมีเสียงรบกวนมากกว่าครั้งก่อน

API ที่ทดสอบแล้ว:

ผ่าน: ความแปรปรวนเพิ่มขึ้นในแต่ละช็อต

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

ทดสอบว่าใช้ android.noiseReduction.mode สำหรับการประมวลผลคำขอซ้ำ จับภาพที่ประมวลผลใหม่ด้วยกล้องที่มีแสงสลัว ใช้เกนแบบอะนาล็อกที่สูงเพื่อให้แน่ใจว่าภาพที่ถ่ายจะมีสัญญาณรบกวน จับภาพที่ประมวลผลซ้ำสามภาพ สำหรับปิด NR, "เร็ว" และ "คุณภาพสูง" จับภาพที่ประมวลผลใหม่โดยมีค่าเกนต่ำและปิด NR และใช้ค่าความแปรปรวนเป็นค่าพื้นฐาน

API ที่ทดสอบแล้ว:

ผ่าน: เร็ว >= ปิด, HQ >= เร็ว, HQ >> ปิด

พล็อต SNR ทั่วไปเทียบกับ NR_MODE

พล็อต SNR ทั่วไปเทียบกับ NR_MODE

test_tonemap_sequence

ทดสอบลำดับช็อตด้วยกราฟโทนแมปที่แตกต่างกัน ถ่ายภาพแบบแมนนวล 3 ภาพด้วยโทนแมปเชิงเส้น ถ่ายภาพแบบแมนนวล 3 ภาพด้วยโทนแมปเริ่มต้น คำนวณเดลต้าระหว่างแต่ละคู่เฟรมที่ต่อเนื่องกัน

API ที่ทดสอบแล้ว:

ผ่าน: มี 3 เฟรมที่เหมือนกัน ตามด้วยชุดที่แตกต่างกัน 3 เฟรมที่เหมือนกัน

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

ทดสอบว่าขนาดและรูปแบบที่รายงานทั้งหมดสำหรับงานจับภาพ ใช้คำขอด้วยตนเองกับ tonemap เชิงเส้นเพื่อให้ YUV และ JPEG มีลักษณะเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils รูปภาพไม่ได้รับการบันทึกตามค่าเริ่มต้น แต่สามารถบันทึกได้โดยเปิดใช้งาน debug_mode

API ที่ทดสอบแล้ว:

ผ่าน: ศูนย์กลางภาพทั้งหมดมีความแตกต่างสูงสุด RMS (ค่าราก-ค่าเฉลี่ย-กำลังสองของสัญญาณ) ในภาพที่แปลงด้วย RGB พร้อมด้วยภาพ YUV ที่มีความละเอียดสูงสุด 3%

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

ทดสอบว่าขนาดและรูปแบบที่รายงานสำหรับงานจับภาพ

API ที่ทดสอบแล้ว:

ผ่าน: การทดสอบเสร็จสิ้นและส่งคืนรูปภาพที่ร้องขอ

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

ทดสอบการจับเฟรมเดียวเป็นทั้งเอาต์พุต YUV และ JPEG ใช้คำขอด้วยตนเองกับ tonemap เชิงเส้นเพื่อให้ YUV และ JPEG มีลักษณะเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพ YUV และ JPEG คล้ายกันและมีความแตกต่างน้อยกว่า 1% RMS (ค่าราก-ค่าเฉลี่ย-กำลังสองของสัญญาณ)

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

ทดสอบการถ่ายภาพเฟรมเดียวเป็นทั้งเอาต์พุต RAW/RAW10/RAW12 และ YUV หากรองรับ ใช้คำขอแบบแมนนวลกับโทนแมปเชิงเส้น ดังนั้น Raw และ YUV คาดว่าจะเหมือนกัน เปรียบเทียบค่า RGB 10% ที่อยู่ตรงกลางของภาพที่แปลงเป็น RGB บันทึก android.shading.mode

API ที่ทดสอบแล้ว:

ผ่าน: ภาพ YUV และ Raw มีความคล้ายคลึงกันและมีความแตกต่างน้อยกว่า 3.5% RMS (ค่าราก-ค่าเฉลี่ย-กำลังสองของสัญญาณ)

test_yuv_plus_raw_shading=1_raw.jpgtest_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

ฉาก2_a

scene2_a มีสามหน้าโดยมีพื้นหลังสีเทาและเสื้อผ้าที่เป็นกลาง ใบหน้าถูกเลือกให้มีโทนสีผิวที่หลากหลาย แผนภูมิต้องมีการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างเหมาะสมที่สุด

ฉาก2_a

ฉาก2_a

ทดสอบ_อัตโนมัติ_แฟลช

ทดสอบว่าแฟลชอัตโนมัติทำงานในฉากที่มืด ตรวจสอบว่าใช้แฟลชอัตโนมัติโดยตรวจสอบว่าตรงกลางภาพมีการไล่ระดับสีขนาดใหญ่ หากต้องการเรียกใช้แฟลชอัตโนมัติ จะต้องปิดแท็บเล็ตและไฟในแท่นทดสอบ แท็บเล็ตถูกปิดโดยการทดสอบ และสามารถปิดไฟได้โดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากจะต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง ด้วยเหตุนี้ ช่องเปิดของแท็บเล็ตด้านหลังจึงต้องปิดด้วย Scene Tablet ทั้งหมด และช่องเปิดด้านหน้าต้องมีรูรับแสงปิดไว้และโทรศัพท์ DUT เพื่อกันแสงเล็ดลอดไม่ให้เข้าไปในแท่นขุดเจาะ

API ที่ทดสอบแล้ว:

ผ่าน: จุดกึ่งกลางของภาพย่อยมีการไล่ระดับสีขนาดใหญ่ ซึ่งหมายความว่าจะใช้แฟลชอัตโนมัติ

test_การจัดกรอบอัตโนมัติ

ทดสอบพฤติกรรมการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ทำการซูมขนาดใหญ่โดยไม่ให้เห็นใบหน้าใดๆ ในฉาก เปิดใช้งานโหมดการจัดกรอบอัตโนมัติโดยตั้งค่า AUTOFRAMING ใน CaptureRequest เป็น True และตรวจสอบว่าใบหน้าทั้งหมดในฉากดั้งเดิมสามารถตรวจพบได้หรือไม่เมื่อสถานะมาบรรจบกัน (นั่นคือ เมื่อ AUTOFRAMING_STATE ใน CaptureResult ถูกตั้งค่าเป็น AUTOFRAMING_STATE_CONVERGED )

API ที่ทดสอบแล้ว:

ผ่าน: ตรวจพบทั้งสามใบหน้า

test_display_p3

ทดสอบการจับภาพ P3 ในรูปแบบ JPEG โดยใช้ ColorSpaceProfiles API ทดสอบว่า JPEG ที่ถ่ายมี โปรไฟล์ ICC ที่เหมาะสมในส่วนหัว และรูปภาพมีสีที่อยู่นอกขอบเขต sRGB

API ที่ทดสอบแล้ว:

ผ่าน: JPEG มีโปรไฟล์ Display P3 ICC และสีที่อยู่นอกช่วง sRGB

ทดสอบ_ผลกระทบ

จับภาพเฟรมสำหรับเอฟเฟกต์กล้องที่รองรับและตรวจสอบว่าสร้างขึ้นอย่างถูกต้องหรือไม่ การทดสอบจะตรวจสอบเฉพาะเอฟเฟกต์ OFF และ MONO แต่บันทึกรูปภาพสำหรับเอฟเฟกต์ที่รองรับทั้งหมด

API ที่ทดสอบแล้ว:

ผ่าน: จับภาพฉากโดย OFF ฟเฟ็กต์ และภาพเอกรงค์โดยตั้งค่าเอฟเฟ็กต์เป็น MONO

ทดสอบ_ผลกระทบ_โมโน

test_effects_MONO.jpg

test_format_combos

ทดสอบการผสมผสานรูปแบบเอาต์พุตต่างๆ

API ที่ทดสอบแล้ว:

ผ่าน: การรวมกันทั้งหมดถูกจับได้สำเร็จ

test_jpeg_quality

ทดสอบคุณภาพการบีบอัด JPEG ของกล้อง ขั้นตอนคุณภาพ JPEG ผ่าน android.jpeg.quality และตรวจสอบว่าตาราง Quantization เปลี่ยนแปลงอย่างถูกต้อง

API ที่ทดสอบแล้ว:

ผ่าน: เมทริกซ์การหาปริมาณจะลดลงตามการเพิ่มคุณภาพ (เมทริกซ์แสดงถึงปัจจัยการหาร)

test_jpeg_quality

ค่าเฉลี่ยเมทริกซ์ Luma/Chroma DQT ของกล้องหลัง Pixel 4 เทียบกับคุณภาพ JPEG

test_jpeg_quality ล้มเหลว

ตัวอย่างการทดสอบที่ล้มเหลว

โปรดทราบว่าสำหรับรูปภาพคุณภาพต่ำมาก (jpeg.quality < 50) จะไม่มีการบีบอัดเพิ่มขึ้นในเมทริกซ์เชิงปริมาณ

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหาสามหน้า

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

ทดสอบว่าอัตราเฟรมแสดงตัวอย่างลดลงอย่างถูกต้องในฉากที่มืด เพื่อให้การทดสอบนี้ทำงานได้อย่างถูกต้อง ผู้ควบคุมจะต้องปิดไฟในแท่นทดสอบหรือปิดเองด้วยตนเอง

API ที่ทดสอบแล้ว:

ผ่าน: อัตราเฟรมแสดงตัวอย่างอยู่ที่ขั้นต่ำของช่วงอัตราเฟรมที่ร้องขอ และความแปรผันระหว่างเฟรมน้อยกว่าค่าเผื่อสัมบูรณ์ที่ตั้งไว้ในการทดสอบ

test_reprocess_uv_swap

ทดสอบว่าการประมวลผล YUV ใหม่ไม่ได้สลับระนาบ U และ V สิ่งนี้ตรวจพบได้โดยการคำนวณผลรวมของความแตกต่างสัมบูรณ์ (SAD) ระหว่างภาพที่ประมวลผลใหม่และภาพที่ไม่ได้รับการประมวลผล หากการสลับระนาบเอาต์พุต U และ V ของการจับที่ประมวลผลซ้ำส่งผลให้ SAD เพิ่มขึ้น ดังนั้นเอาต์พุตจะถือว่ามีระนาบ U และ V ที่ถูกต้อง

API ที่ทดสอบแล้ว:

ผ่าน: เครื่องบิน U และ V จะไม่สลับกัน

test_reprocess_uv_swap

test_reprocess_uv_swap.png

ฉาก2_b

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้าด้วยการเพิ่มความหลากหลายของสีผิวในฉากใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหา 3 ใบหน้า

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

จับภาพสองภาพโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่ใหญ่ที่สุดด้วยอัตราส่วนภาพเดียวกันกับรูปแบบ JPEG ที่ใหญ่ที่สุดที่มีความละเอียดไม่เกิน 1920x1440 ตั้งค่า jpeg.quality เป็น 100 และบันทึกคำขอพื้นผิวคู่ แปลงรูปภาพทั้งสองเป็นอาร์เรย์ RGB และคำนวณความแตกต่างราก 3D ค่าเฉลี่ยกำลังสอง (RMS) ระหว่างรูปภาพทั้งสอง

API ที่ทดสอบแล้ว:

ผ่าน: รูปภาพ YUV และ JPEG คล้ายกันและมีความแตกต่างน้อยกว่า 1% RMS (ค่าราก-ค่าเฉลี่ย-กำลังสองของสัญญาณ)

ฉาก2_c

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้าด้วยการเพิ่มความหลากหลายของสีผิวในฉากใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหา 3 ใบหน้า

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

ทดสอบเวลาแฝงในการจับภาพ JPEG สำหรับคลาสประสิทธิภาพ S ตามที่ระบุไว้ใน ส่วน 2.2.7.2 กล้อง ใน CDD

ผ่าน: ต้องมีเวลาแฝงในการจับภาพ JPEG ของกล้อง < 1000ms สำหรับความละเอียด 1080p ซึ่งวัดโดยการทดสอบประสิทธิภาพของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้งสองตัว

test_cam_launch_perf_class

ทดสอบเวลาแฝงในการเปิดกล้องสำหรับคลาสประสิทธิภาพ S ตามที่ระบุไว้ ส่วนที่ 2.2.7.2 กล้อง ใน CDD

ผ่าน: ต้องมีเวลาแฝงในการเริ่มต้นของกล้อง 2 (เปิดกล้องเพื่อดูเฟรมแรก) < 600ms ซึ่งวัดโดยการทดสอบประสิทธิภาพของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้งสองตัว

ฉาก2_d

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้าด้วยการเพิ่มความหลากหลายของสีผิวในฉากใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหา 3 ใบหน้า

ฉาก2_e

ทดสอบ_ต่อเนื่อง_รูปภาพ

เฟรมความละเอียด VGA 50 เฟรมจะถูกบันทึกพร้อมกับคำขอจับภาพก่อน โดยตั้งค่า android.control.afMode = 4 (CONTINUOUS_PICTURE).

API ที่ทดสอบแล้ว:

ผ่าน: ระบบ 3A จะตัดสินเมื่อสิ้นสุดการจับภาพ 50 เฟรม

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้าด้วยการเพิ่มความหลากหลายของสีผิวในฉากใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหา 3 ใบหน้า

ฉาก2_f

scene2_f มีสามหน้า พื้นหลังสีขาว และเสื้อผ้าสีขาว ใบหน้ามีโทนสีผิวที่หลากหลายและมีคอนทราสต์สูงกับพื้นหลัง

scene2_f.png

ฉาก2_f

ทดสอบ_num_faces

ทดสอบการตรวจจับใบหน้าด้วยการเพิ่มความหลากหลายของสีผิวในฉากใบหน้า

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหา 3 ใบหน้า

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

ฉาก3

Scene3 ใช้แผนภูมิ ISO12233 และการทดสอบส่วนใหญ่ใช้วิธีการแยกแผนภูมิเพื่อค้นหาแผนภูมิในฉาก ด้วยเหตุนี้ภาพที่บันทึกไว้ส่วนใหญ่ไม่มีเส้นขอบเหมือนภาพสำหรับฉาก 1, 2 หรือ 4 แต่มีเพียงแผนภูมิ แผนภูมิจะต้องอยู่ในทิศทางที่ถูกต้องสำหรับการค้นหาแผนภูมิเพื่อทำงานอย่างเหมาะสม

test_3a_consistency

การทดสอบความสอดคล้อง 3A

APIS ทดสอบ:

ผ่าน: 3A มาบรรจบกันสำหรับการเปิดรับ, Gain, AWB (สมดุลสีขาวอัตโนมัติ) และ FD (ระยะโฟกัส) สามครั้งภายในความอดทน

test_edge_enhancement

ทดสอบว่าพารามิเตอร์ android.edge.mode ถูกนำไปใช้อย่างถูกต้อง จับภาพที่ไม่ได้ดำเนินการสำหรับแต่ละโหมดขอบและส่งคืนความคมชัดของภาพเอาต์พุตและข้อมูลเมตาผลการจับภาพ ประมวลผลคำขอจับภาพด้วยโหมดขอบที่กำหนดความไวเวลาการเปิดรับแสงระยะโฟกัสและพารามิเตอร์พื้นผิวเอาต์พุต

ผ่าน: โหมด HQ (2) คมชัดกว่าโหมด OFF (0) โหมด FAST (1) คมชัดกว่าโหมด OFF โหมด HQ คมชัดขึ้นหรือเท่ากับโหมด FAST

APIS ทดสอบ:

พารามิเตอร์กล้องที่ได้รับผลกระทบ:

  • EDGE_MODE

test_edge_enhancement_edge = 0

test_edge_enhancement_edge = 0.jpg

test_edge_enhancement_edge = 1

test_edge_enhancement_edge = 1.jpg (โหมดเร็ว)

test_edge_enhancement_edge = 2

test_edge_enhancement_edge = 2.jpg (โหมดคุณภาพสูง)

test_flip_mirror

การทดสอบว่าภาพนั้นมุ่งเน้นอย่างถูกต้องตาม ส่วน CDD ส่วน 7.5.2 กล้องหน้าหันหน้าไปทาง [C-1-5]

สามารถระบุภาพมิเรอร์พลิกหรือหมุนได้โดยคุณสมบัติของเพชรใกล้ตรงกลาง

Pass: ภาพไม่พลิกกระจกหรือหมุน

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

การทดสอบว่าภูมิทัศน์เพื่อแทนที่ภาพเหมือนกันทำงานอย่างถูกต้องสำหรับเซ็นเซอร์ที่มุ่งเน้นภูมิทัศน์

APIS ทดสอบ:

PASS: การทดสอบสามารถค้นหาแผนภูมิที่มีการหมุนที่คาดหวัง (0 องศาเมื่อปิดการใช้งานแนวนอนเพื่อแทนที่ 90 องศาเมื่อเปิดใช้งาน)

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

การทดสอบหากรายงานการเคลื่อนไหวของเลนส์มีการรายงานอย่างถูกต้อง จับภาพการระเบิด 24 ภาพด้วย 12 เฟรมแรกที่ระยะโฟกัสที่เหมาะสม (ตามที่พบโดย 3A) และ 12 เฟรมสุดท้ายที่ระยะโฟกัสขั้นต่ำ รอบเฟรม 12 เลนส์เคลื่อนที่ทำให้เกิดความคมชัดลดลง ความคมชัดในที่สุดก็เสถียรเมื่อเลนส์เคลื่อนที่ไปยังตำแหน่งสุดท้าย ธงการเคลื่อนไหวของเลนส์ควรได้รับการยืนยันในทุกเฟรมที่ความคมชัดอยู่ตรงกลางถึงความคมชัดในเฟรมสองสามเฟรมแรกที่มีเลนส์อยู่กับที่ระยะทางโฟกัสที่เหมาะสมและเฟรมสองสามอันสุดท้ายที่เลนส์อยู่นิ่งในระยะโฟกัสขั้นต่ำ เฟรมที่แน่นอนการเคลื่อนที่ของเลนส์ไม่สำคัญ: สิ่งที่ตรวจสอบคือการยืนยันธงการเคลื่อนไหวเมื่อเลนส์เคลื่อนที่

APIS ทดสอบ:

PASS: ธงการเคลื่อนไหวของเลนส์เป็น True ในเฟรมที่มีการเปลี่ยนแปลงความคมชัด

กลไกล้มเหลว:

  • lens_moving: True ( android.hardware.camera2.CaptureResult#LENS_STATE = 1) ใน test_log.DEBUG ถูกยืนยันเฉพาะในเฟรมที่ความคมชัดไม่เปลี่ยนแปลง
  • เฟรมที่มี lens_moving: False ( android.hardware.camera2.CaptureResult#LENS_STATE = 0) ใน test_log.DEBUG มีความแตกต่างของความคมชัดเมื่อเทียบกับเฟรมสองสามเฟรมแรกที่ระยะทางโฟกัสที่เหมาะสมที่สุด

test_reprocess_edge_enhancement

การทดสอบหากวิธีการประมวลผลซ้ำสำหรับการปรับปรุงขอบทำงานอย่างถูกต้อง ประมวลผลคำขอจับภาพด้วยโหมดการประมวลผลใหม่ที่กำหนดและเปรียบเทียบโหมดที่แตกต่างกันเพื่อจับภาพด้วยโหมดการประมวลผลซ้ำ

APIS ทดสอบ:

ผ่าน: ความคมชัดสำหรับโหมดขอบที่แตกต่างกันถูกต้อง HQ (โหมด 2) มีความคมชัดกว่า OFF (โหมด 0) และการปรับปรุงระหว่างโหมดที่แตกต่างกันนั้นคล้ายกัน

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

ฉาก 4

Scene4 ประกอบด้วยวงกลมสีดำบนพื้นหลังสีขาวภายในสี่เหลี่ยม

ฉาก 4

ฉาก 4

test_aspect_ratio_and_crop

การทดสอบหากภาพบิดเบี้ยวหรือถูกครอบตัดอย่างไม่คาดคิดในท่อส่งภาพ ถ่ายภาพวงกลมเหนือทุกรูปแบบ ตรวจสอบว่าวงกลมไม่ได้บิดเบือนวงกลมไม่ได้ย้ายจากศูนย์กลางของภาพและวงกลมไม่เปลี่ยนขนาดไม่ถูกต้องด้วยอัตราส่วนหรือความละเอียดที่แตกต่างกัน

APIS ทดสอบ:

Pass: ภาพไม่ยืดออกศูนย์กลางของภาพไม่แตกต่างกันมากกว่า 3%และค่า FOV ที่เป็นไปได้สูงสุด (มุมมอง) จะถูกเก็บรักษาไว้

กลไกล้มเหลว:

  • วงกลมในภาพที่ถูกจับจะถูกบิดเบือนโดยไปป์ไลน์การประมวลผล
  • ภาพความละเอียดที่ต่ำกว่านั้นถูกตัดสองครั้งในท่อส่งภาพที่สร้าง FOV ที่แตกต่างกันระหว่างภาพความละเอียดสูงและต่ำ
  • วงกลมในภาพที่ถูกจับถูกครอบตัดเนื่องจากการร้องขอการจับภาพอัตราส่วนที่รุนแรงลดความสูงหรือความกว้างของภาพ
  • วงกลมในภาพที่ถูกจับมีภาพสะท้อนอยู่ตรงกลางและไม่ปรากฏเต็มไปอย่างเต็มที่

test_multi_camera_alignment

ทดสอบพารามิเตอร์การสอบเทียบกล้องที่เกี่ยวข้องกับการวางตำแหน่งกล้องสำหรับระบบหลายกล้อง การใช้กล้องย่อยทางกายภาพหลายกล้องถ่ายภาพด้วยกล้องถ่ายรูปตัวใดตัวหนึ่ง พบศูนย์วงกลม ฉายภาพศูนย์วงกลมไปยังพิกัดโลกสำหรับกล้องแต่ละตัว เปรียบเทียบความแตกต่างระหว่างศูนย์วงกลมของกล้องในพิกัดโลก ทำซ้ำการประสานงานของโลกกลับไปที่พิกเซลพิกเซลและเปรียบเทียบกับต้นฉบับเป็นการตรวจสอบความถูกต้อง เปรียบเทียบการตรวจสอบขนาดของวงกลมว่าความยาวโฟกัสของกล้องแตกต่างกันหรือไม่

APIS ทดสอบ:

ผ่าน: ศูนย์วงกลมและขนาดเป็นไปตามที่คาดไว้ในภาพที่คาดการณ์เมื่อเทียบกับภาพที่ถ่ายโดยใช้ข้อมูลการสอบเทียบกล้องและความยาวโฟกัส

กลไกล้มเหลว:

  • LENS_INTRINSIC_CALIBRATION , LENS_POSE_TRANSLATION หรือ LENS_POSE_ROTATION เป็นค่าการออกแบบและไม่ใช่ข้อมูลการสอบเทียบจริง
  • ระบบกล้องไม่เหมาะสมสำหรับการตั้งค่าการทดสอบ ตัวอย่างเช่นการทดสอบระบบกล้องที่กว้างและกว้างเป็นพิเศษด้วยอุปกรณ์ทดสอบ RFOV สำหรับข้อมูลเพิ่มเติมให้ดู กล้องที่พบบ่อยในกล่อง

test_preview_aspect_ratio_and_crop

เช่นเดียวกับการทดสอบ test_aspect_ratio_and_crop สำหรับการจับภาพยังคงการทดสอบนี้ตรวจสอบรูปแบบตัวอย่างที่รองรับเพื่อให้แน่ใจว่าเฟรมตัวอย่างจะไม่ยืดหรือถูกครอบตัดอย่างไม่เหมาะสม ตรวจสอบว่าอัตราส่วนภาพของวงกลมไม่เปลี่ยนแปลงภาพที่ถูกครอบตัดจะทำให้วงกลมอยู่ตรงกลางของเฟรมและขนาดวงกลมไม่เปลี่ยนเป็นรูปแบบคงที่หรือมีความละเอียดที่แตกต่างกัน (การตรวจสอบมุมมอง)

APIS ทดสอบ:

Pass: ภาพไม่ยืดออกศูนย์กลางของภาพไม่แตกต่างกันมากกว่า 3%และค่า FOV ที่เป็นไปได้สูงสุด (มุมมอง) จะถูกเก็บรักษาไว้

test_preview_stabilization_fov

ตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่า FOV ถูกครอบตัดอย่างเหมาะสม การทดสอบจะจับวิดีโอสองวิดีโอหนึ่งรายการที่มีการแสดงความเสถียรของการแสดง ON และอีกวิดีโอที่มีความเสถียรในการแสดง OFF เฟรมตัวแทนถูกเลือกจากวิดีโอแต่ละรายการและวิเคราะห์เพื่อให้แน่ใจว่าการเปลี่ยนแปลง FOV ในวิดีโอทั้งสองนั้นอยู่ในข้อมูลจำเพาะ

APIS ทดสอบ:

PASS: อัตราส่วนภาพวงกลมยังคงเกี่ยวกับค่าคงที่ตำแหน่งกลางของวงกลมยังคงมีเสถียรภาพและขนาดของวงกลมเปลี่ยนไม่มากขึ้น 20%

test_video_aspect_ratio_and_crop

ถ่ายวิดีโอวงกลมภายในสี่เหลี่ยมเหนือรูปแบบวิดีโอทั้งหมด แยกเฟรมคีย์และตรวจสอบอัตราส่วนภาพของวงกลมไม่เปลี่ยนแปลงภาพที่ถูกครอบตัดจะทำให้วงกลมอยู่ตรงกลางและขนาดของวงกลมจะไม่เปลี่ยนแปลงสำหรับรูปแบบคงที่หรือมีความละเอียดที่แตกต่างกัน

APIS ทดสอบ:

Pass: เฟรมวิดีโอไม่ยืดศูนย์กลางของเฟรมไม่แตกต่างกันมากกว่า 3%และ FOV สูงสุดที่เป็นไปได้ (มุมมองของมุมมอง) จะถูกเก็บรักษาไว้

ฉาก 5

ฉาก 5 ต้องใช้ฉากสีเทาที่มีแสงสว่างสม่ำเสมอ สิ่งนี้สามารถทำได้โดย diffuser ที่วางอยู่เหนือเลนส์กล้อง เราขอแนะนำ diffuser ต่อไปนี้: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168

ในการเตรียมฉากให้ติดตั้งตัวกระจายที่ด้านหน้าของกล้องและชี้กล้องไปยังแหล่งแสงประมาณ 2,000 Lux ภาพที่จับได้สำหรับฉาก 5 ต้องใช้แสงกระจายโดยไม่มีคุณสมบัติที่เห็นได้ชัด ต่อไปนี้เป็นภาพตัวอย่าง:

ฉาก 5

Scene5 Capture

test_lens_shading_and_color_uniformity

การทดสอบว่าการแก้ไขการแรเงาเลนส์ถูกนำไปใช้อย่างเหมาะสมและสีของฉากโมโนโครมมีการกระจายอย่างสม่ำเสมอ ทำการทดสอบนี้บนเฟรม YUV ด้วย Auto 3A การแรเงาเลนส์ได้รับการประเมินตามช่อง Y วัดค่า y เฉลี่ยสำหรับแต่ละบล็อกตัวอย่างที่ระบุและกำหนดผ่านหรือล้มเหลวโดยการเปรียบเทียบกับค่าศูนย์ y การทดสอบความสม่ำเสมอของสีได้รับการประเมินในพื้นที่ R/G และ B/G

APIS ทดสอบ:

ผ่าน: ที่รัศมีที่ระบุของภาพความแปรปรวนของค่า R/G และ B/G จะต้องน้อยกว่า 20% เพื่อผ่านการทดสอบ

ฉาก 6

Scene6 เป็นกริดของวงกลมขนาดเล็กที่มีสี่เหลี่ยมจัตุรัสในมุมหนึ่งเพื่อบ่งบอกถึงการวางแนว จำเป็นต้องใช้วงกลมขนาดเล็กเพื่อทดสอบฟังก์ชั่นซูมในช่วงขนาดใหญ่

ฉาก 6

ฉาก 6

test_in_sensor_zoom

ทดสอบพฤติกรรมของคุณลักษณะการซูมในเซ็นเซอร์ซึ่งสร้างภาพดิบที่ครอบตัด

ด้วยการตั้งค่ากรณีการใช้สตรีมเป็น CROPPED_RAW การทดสอบจะใช้การจับสองครั้งในช่วงซูมภาพเต็มรูปแบบ (FOV) ภาพดิบและภาพดิบที่ถูกครอบตัด การทดสอบจะแปลงภาพเป็นอาร์เรย์ RGB ลดระดับภาพดิบที่ถูกครอบตัดขนาดเต็มให้เป็นขนาดที่รายงานโดย SCALER_RAW_CROP_REGION และคำนวณความแตกต่างของสแควร์รูต 3D (RMS) ระหว่างภาพทั้งสอง

APIS ทดสอบ:

PASS: ความแตกต่างของ Root 3D Root Mean (RMS) ระหว่างภาพดิบที่ถูกครอบตัดลงและภาพดิบ FOV เต็มรูปแบบน้อยกว่า 1%

test_zoom

ทดสอบพฤติกรรมการซูมกล้อง ถ่ายภาพในช่วงซูมและตรวจสอบว่าวงกลมมีขนาดใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่

APIS ทดสอบ:

PASS: ขนาดสัมพัทธ์ของวงกลมที่จับได้นั้นแม่นยำกับอัตราส่วนซูมที่ร้องขอเพื่อให้แน่ใจว่ากล้องกำลังซูมอย่างถูกต้อง

test_zoom

test_zoom เพื่อค้นหารูปร่างของวงกลมที่อยู่ใกล้กับศูนย์

test_low_latency_zoom

ทดสอบพฤติกรรมการซูมเวลาแฝงต่ำของกล้อง ถ่ายภาพผ่านช่วงซูมด้วย android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) และตรวจสอบว่าวงกลมในภาพเอาต์พุตตรงกับอัตราส่วนการซูมในข้อมูลเมตาการจับภาพหรือไม่

APIS ทดสอบ:

PASS: ขนาดสัมพัทธ์ของวงกลมที่จับได้นั้นแม่นยำเมื่อเทียบกับเมตาดาต้าผลอัตราส่วนซูม

test_preview_video_zoom_match

ทดสอบว่าในขณะที่การบันทึกและซูมตัวอย่างวิดีโอและการแสดงผลวิดีโอและบันทึกเอาต์พุตเดียวกัน คำนวณขนาดของวงกลมที่อยู่ใกล้กับกึ่งกลางที่อัตราส่วนซูมที่แตกต่างกันและตรวจสอบว่าขนาดของวงกลมเพิ่มขึ้นหรือไม่เมื่ออัตราส่วนซูมเพิ่มขึ้น

APIS ทดสอบ:

PASS: ขนาดสัมพัทธ์ของวงกลมที่จับได้นั้นถูกต้องกับอัตราส่วนซูมที่ร้องขอในวิดีโอและตัวอย่าง

vga_640x480_key_frame.png

vga_640x480_key_frame.png (ก่อนซูม)

preview_640x480_key_frame.png

preview_640x480_key_frame.png (ก่อนซูม)

vga_640x480_key_frame_zoomed.png

vga_640x480_key_frame.png (หลังซูม)

preview_640x480_key_frame_zoomed.png

preview_640x480_key_frame.png (หลังซูม)

scene_extensions

การทดสอบ scene_extensions ใช้สำหรับการขยายกล้องและต้องใช้ กล้องถ่ายรูปในกล่อง เนื่องจากต้องมีการควบคุมสภาพแวดล้อมการทดสอบที่แม่นยำ

scene_hdr

ฉาก scene_hdr ประกอบด้วยภาพบุคคลทางด้านซ้ายและรหัส QR แบบคอนทราสต์ต่ำทางด้านขวา

scene_hdr

scene_hdr

test_hdr_extension

ทดสอบ ส่วนขยาย HDR ใช้การจับภาพที่มีและไม่มีส่วนขยายเปิดใช้งานและตรวจสอบว่าส่วนขยายทำให้รหัส QR ตรวจพบได้มากขึ้นหรือไม่

APIS ทดสอบ:

PASS: ส่วนขยาย HDR ช่วยลดจำนวนการเปลี่ยนแปลงความคมชัดที่จำเป็นในการตรวจจับรหัส QR หรือลดการไล่ระดับสีในรหัส QR

scene_night

ฉากที่ scene_night ประกอบด้วยวงกลมสีขาวที่มีวงกลมเล็ก ๆ สี่วงอยู่ข้างในทั้งหมดกับพื้นหลังสีดำ วงกลมขนาดเล็กที่มุมบนขวานั้นมืดกว่าวงอื่น ๆ เพื่อระบุการวางแนว

scene_night

scene_night

test_night_extension

ทดสอบ การขยายเวลากลางคืน ใช้การจับภาพที่มีและไม่มีส่วนขยายและตรวจสอบต่อไปนี้:

  • การจับภาพด้วยการขยายเวลากลางคืนที่เปิดใช้งานใช้เวลานานขึ้น
  • การจับภาพด้วยการขยายเวลากลางคืนนั้นสว่างขึ้นหรือมีสิ่งประดิษฐ์ฉากพร้อมรูปลักษณ์ที่ดีขึ้น

APIS ทดสอบ:

ผ่าน: เมื่อเปรียบเทียบกับการจับภาพโดยไม่เปิดใช้งานการขยายเวลากลางคืนการจับภาพที่เปิดใช้งานการขยายเวลากลางคืนนั้นใช้เวลาอย่างน้อย 0.5 วินาที การจับต้องจะต้องสว่างขึ้นอย่างน้อย 10% หรือจุดสีเทาในฉากจะต้องมีค่า 20 พิกเซลต่ำกว่าศูนย์กลางของวงกลมโดยรอบ

sensor_fusion

การทดสอบเซ็นเซอร์ฟิวชั่นจำเป็นต้องมีการเคลื่อนไหวของโทรศัพท์ที่เฉพาะเจาะจงต่อหน้ารูปแบบกระดานหมากรุก เพื่อผลลัพธ์ที่ดีที่สุดตรวจสอบให้แน่ใจว่าแผนภูมิทดสอบนั้นแบน แผนภูมิที่ไม่แบนส่งผลกระทบต่อการคำนวณการหมุนสำหรับการทดสอบจำนวนมาก การทดสอบ sensor_fusion สามารถเป็นไปโดยอัตโนมัติด้วย กล่องฟิวชั่นเซ็นเซอร์

กระดานหมากรุก

รูปภาพของ Checkerboard

test_multi_camera_frame_sync

การทดสอบว่าการประทับเวลาเฟรมที่ถ่ายโดยกล้องแบบลอจิคัลอยู่ในระยะ 10 มิลลิวินาทีโดยคำนวณมุมของสี่เหลี่ยมภายในกระดานหมากรุกเพื่อกำหนดเวลา

APIS ทดสอบ:

ผ่าน: มุมระหว่างภาพจากกล้องแต่ละตัวจะไม่เปลี่ยนไปอย่างเห็นได้ชัดเนื่องจากโทรศัพท์หมุน

test_preview_stabilization

การทดสอบที่วิดีโอแสดงตัวอย่างมีความเสถียรจะหมุนน้อยกว่าไจโรสโคป

APIS ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดเหนือเฟรมน้อยกว่า 70% ของการหมุนไจโรสโคป

ต่อไปนี้เป็นวิดีโอตัวอย่างที่มีและไม่มีการรักษาเสถียรภาพ

  • ตัวอย่างวิดีโอที่มีความเสถียร

  • ตัวอย่างวิดีโอโดยไม่ต้องเสถียร

test_sensor_fusion

ทดสอบความแตกต่างของการประทับเวลาระหว่างกล้องและไจโรสโคปสำหรับแอปพลิเคชัน AR และ VR โทรศัพท์หมุน 90 องศา 10 ครั้งต่อหน้ารูปแบบกระดานหมากรุก การเคลื่อนไหวคือการเดินทางไปกลับประมาณ 2 วินาที การทดสอบนี้ถูกข้ามหากไม่มีการรวมไจโรสโคปหรือหากไม่มีการเปิดใช้งานพารามิเตอร์ REALTIME ของแหล่งเวลา

การทดสอบ test_sensor_fusion สร้างจำนวนแปลง สองแปลงที่สำคัญที่สุดสำหรับการดีบักคือ:

  • test_sensor_fusion_gyro_events : แสดงเหตุการณ์ไจโรสโคปสำหรับโทรศัพท์ในระหว่างการทดสอบ การเคลื่อนไหวในทิศทาง x และ y หมายถึงโทรศัพท์ไม่ได้ติดตั้งอย่างปลอดภัยบนแผ่นยึดลดความน่าจะเป็นของการทดสอบที่ผ่าน จำนวนรอบในพล็อตขึ้นอยู่กับความเร็วในการเขียนสำหรับการบันทึกเฟรม

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : แสดงการจัดตำแหน่งของ Gyroscope และเหตุการณ์กล้อง พล็อตนี้จะต้องแสดงการเคลื่อนไหวที่ตรงกันระหว่างกล้องและไจโรสโคปถึง +/- 1 มิลลิวินาที

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

APIS ทดสอบ:

ผ่าน: การชดเชยการประทับเวลาของกล้องและไจโรสโคปน้อยกว่า 1 มิลลิวินาทีตามส่วน CDD 7.3.9 เซ็นเซอร์ความเที่ยงตรงสูง [C-2-14]

กลไกล้มเหลว:

  • ข้อผิดพลาดออฟเซ็ต: ออฟเซ็ตกล้องถ่ายรูปกล้องไม่ได้ทำการสอบเทียบอย่างถูกต้องภายใน +/- 1 ms
  • Frame Drops: ท่อไม่เร็วพอที่จะจับ 200 เฟรมต่อเนื่อง
  • ข้อผิดพลาดของซ็อกเก็ต: adb ไม่สามารถเชื่อมต่อกับ DUT ได้นานพอที่จะดำเนินการทดสอบได้อย่างน่าเชื่อถือ
  • แผนภูมิไม่ได้ติดตั้งแบน พล็อต test_sensor_fusion_plot_rotations มีเฟรมที่การหมุนของไจโรสโคปและกล้องแตกต่างกันมากเมื่อกล้องหมุนผ่านส่วนของแผนภูมิที่ไม่แบน
  • กล้องไม่ได้ติดตั้งแบน พล็อต test_sensor_fusion_gyro_events แสดงการเคลื่อนไหวในระนาบ x และ y ความล้มเหลวนี้เป็นเรื่องธรรมดามากขึ้นในกล้องหน้าเนื่องจากกล้องด้านหลังมักจะมีการยกขึ้นไปยังส่วนที่เหลือของตัวถังโทรศัพท์สร้างความเอียงเมื่อติดตั้งด้านหลังของโทรศัพท์ไปยังแผ่นยึด

test_video_stabilization

การทดสอบที่วิดีโอเสถียรหมุนน้อยกว่าไจโรสโคป

APIS ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดเหนือเฟรมน้อยกว่า 60% ของการหมุนไจโรสโคป

ต่อไปนี้เป็นวิดีโอตัวอย่างที่มีและไม่มีการรักษาเสถียรภาพ

  • ตัวอย่างวิดีโอที่มีความเสถียร

  • ตัวอย่างวิดีโอโดยไม่ต้องเสถียร

test_led_snapshot

ทดสอบว่าสแน็ปช็อต LED ไม่อิ่มตัวหรือย้อมสี

การทดสอบนี้เพิ่มตัวควบคุมแสงไปยังกล่องฟิวชั่นเซ็นเซอร์เพื่อควบคุมไฟ เมื่อปิดไฟให้ OFF การทดสอบจะทำการจับภาพด้วยโหมด AUTO_FLASH ที่ตั้ง ON ในระหว่างการจับภาพนี้การทดสอบจะดำเนินการตามลำดับ precapture ด้วยทริกเกอร์ aePrecapture ตั้งค่าให้ START และตั้งค่าความตั้งใจในการจับภาพเพื่อ Preview เพื่อถ่ายภาพด้วยแฟลช

เนื่องจากการจับภาพมีฮอตสปอตที่โดดเด่นเนื่องจากแฟลชการทดสอบจึงคำนวณค่าเฉลี่ยภาพแฟลชของการจับภาพทั้งหมดและตรวจสอบว่าค่าอยู่ในช่วง (68, 102) หรือไม่ ในการตรวจสอบว่าภาพมีความสมดุลสีขาวอย่างสมเหตุสมผลการทดสอบจะคำนวณอัตราส่วน R/G และ B/G และตรวจสอบว่าอัตราส่วนอยู่ภายใน 0.95 และ 1.05

APIS ทดสอบ:

ผ่าน: อัตราส่วน R/G และ B/G อยู่ใน 0.95 และ 1.05 ค่าเฉลี่ยภาพแฟลชอยู่ในช่วง (68, 102)