ชุดทดสอบรูปภาพจากกล้อง (ITS) เป็นเฟรมเวิร์กสำหรับเรียกใช้การทดสอบในรูปภาพ ที่กล้อง Android สร้างขึ้น เป้าหมายทั่วไปของการทดสอบแต่ละครั้งใน ITS คือการ กำหนดค่ากล้องในลักษณะที่เฉพาะเจาะจง ถ่ายภาพอย่างน้อย 1 ช็อต และ ตรวจสอบช็อตเพื่อดูว่ามีข้อมูลรูปภาพที่คาดไว้หรือไม่ การทดสอบหลายอย่าง ต้องใช้กล้องที่เล็งไปยังชาร์ตเป้าหมายที่เฉพาะเจาะจงหรือ ส่องสว่างที่ความเข้มที่เฉพาะเจาะจง
ITS อยู่ในชุดทดสอบ CTS Verifier ใน
cts/apps/CameraITS
อุปกรณ์ต้องผ่านการทดสอบ ITS ที่สอดคล้องกับฟีเจอร์ที่รองรับ
ซึ่งเฟรมเวิร์กกล้องโฆษณาสำหรับแอปของบุคคลที่สามเป็นส่วนย่อยของ CTS
ตั้งค่า
หากต้องการเรียกใช้การทดสอบ ITS คุณต้องตั้งค่าสิ่งต่อไปนี้
- อุปกรณ์ภายใต้การทดสอบ (DUT)
- เครื่องโฮสต์ (เช่น เดสก์ท็อปหรือแล็ปท็อป Linux)
- ฉากที่กล้องถ่ายภาพ
การตั้งค่าอุปกรณ์ภายใต้การทดสอบ (DUT)
หากต้องการตั้งค่า DUT ให้ทำตามขั้นตอนต่อไปนี้
- เชื่อมต่อ DUT กับเครื่องโฮสต์ผ่าน USB
- ให้สิทธิ์โฮสต์ในการเข้าถึง DUT ผ่าน ADB
ติดตั้งแอป CTS Verifier (
CtsVerifier.apk
) ในอุปกรณ์ ดูข้อมูลเพิ่มเติมได้ที่การใช้ CTS Verifierextract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zip
cd android-cts-verifier
adb install -r -g CtsVerifier.apk
ใน DUT ให้เปิดแอปกล้องเริ่มต้นและปิดหน้าต่างทั้งหมดที่ ปรากฏขึ้นเมื่อเปิดแอปเพื่อหลีกเลี่ยงการรบกวนระหว่างการทดสอบ
การตั้งค่าโฮสต์
ITS กำหนดให้เครื่องโฮสต์ต้องเชื่อมต่อกับ DUT ผ่าน USB, ใช้ ADB เพื่อควบคุมและสื่อสารกับอุปกรณ์ได้ และต้องติดตั้งซอฟต์แวร์ที่จำเป็น
หากต้องการตั้งค่าเครื่องโฮสต์ ให้ตรวจสอบว่าได้ติดตั้งซอฟต์แวร์ต่อไปนี้แล้ว
เครื่องมือแพลตฟอร์ม Android SDK
ต้องติดตั้งเครื่องมือแพลตฟอร์ม Android SDK และ ADB ต้องอยู่ใน เส้นทางที่เรียกใช้งานได้ของเชลล์หรือเทอร์มินัลที่ทำงานในเครื่องโฮสต์ สำหรับเครื่องมือแพลตฟอร์ม Android SDK เวอร์ชันที่เผยแพร่ต่อสาธารณะ โปรดดู บันทึกประจำรุ่นของเครื่องมือแพลตฟอร์ม SDK
Python
ต้องติดตั้ง Python ในเครื่องโฮสต์ เราขอแนะนำให้ใช้การกระจาย Python ที่รวมมาด้วยเพื่อให้แน่ใจว่ารองรับเวอร์ชันที่เข้ากันได้ โปรดดูรายละเอียดเกี่ยวกับ เวอร์ชัน Python และแพ็กเกจที่จะติดตั้งสำหรับการเผยแพร่ที่เฉพาะเจาะจงใน บันทึกประจำรุ่นของ Camera ITS สำหรับการเผยแพร่ที่เกี่ยวข้อง
Mobly
สำหรับ Android 12 ขึ้นไป คุณต้องติดตั้งเฟรมเวิร์กการทดสอบ Mobly
Mobly ช่วยให้คุณตั้งค่า DUT และแท็บเล็ตแผนภูมิในits_base_test
ชั้นเรียนได้ หากต้องการติดตั้งเฟรมเวิร์กการทดสอบ Mobly ให้เรียกใช้คำสั่งต่อไปนี้
pip install mobly
การตั้งค่าสภาพแวดล้อม
หากต้องการตั้งค่าสภาพแวดล้อมการทดสอบ ให้เรียกใช้คำสั่งต่อไปนี้
cd CameraITS
source build/envsetup.sh
คำสั่งนี้จะตรวจสอบการติดตั้ง Python ตั้งค่าตัวแปรสภาพแวดล้อม PYTHONPATH
และเรียกใช้การทดสอบหน่วยในโมดูล utils/*.py
หากไม่มีข้อผิดพลาดปรากฏในเทอร์มินัล แสดงว่าสภาพแวดล้อมพร้อมที่จะเรียกใช้การทดสอบ ITS แล้ว
การตั้งค่าฉาก
หากต้องการตั้งค่าฉาก เราขอแนะนําให้ใช้การตั้งค่า Camera ITS-in-a-box เพื่อ ความสะดวกในการทำงานอัตโนมัติ ความน่าเชื่อถือ และประสิทธิภาพในการทดสอบ แท่นทดสอบ ITS-in-a-box รองรับข้อกำหนดด้านการจัดแสง การจัดกึ่งกลาง และการเปลี่ยนแผนภูมิทั้งหมด สำหรับ ITS นอกจากนี้ คุณต้องมี ITS-in-a-box สำหรับการทดสอบส่วนขยายกล้อง ด้วย
สำหรับการทดสอบด้วยตนเอง โปรดตรวจสอบสิ่งต่อไปนี้
- วาง DUT บนขาตั้ง
- DUT ชี้ไปยังฉากที่ถูกต้องสำหรับการทดสอบแต่ละครั้ง (สคริปต์การทดสอบ ITS ระบุพรอมต์เพื่อเปลี่ยนการตั้งค่าฉากก่อนเริ่มการทดสอบในฉากใหม่ )
- DUT เชื่อมต่อกับเครื่องโฮสต์ผ่าน USB
- DUT ไม่เคลื่อนที่ในระหว่างการทดสอบ
- ฉากสว่างด้วยแหล่งกำเนิดแสงที่สม่ำเสมอและไม่ผันผวน (อย่า ใช้หลอดฟลูออเรสเซนต์เพราะจะทำให้เกิดการกะพริบ)
สคริปต์ทดสอบ ITS จะแสดงข้อความแจ้งให้ผู้ใช้เปลี่ยนการตั้งค่าฉาก ก่อนเริ่มการทดสอบในฉากใหม่
ต้องตั้งค่าการวางแนวโทรศัพท์เพื่อให้กล้องถ่ายภาพโดยไม่มีการหมุน วิธีที่ง่ายที่สุดในการตรวจสอบคือการใช้ฉากใบหน้าใน scene2 โทรศัพท์ส่วนใหญ่จะอยู่ในแนวนอนโดยหมุนโทรศัพท์ทวนเข็มนาฬิกาสำหรับกล้องหลังและหมุนตามเข็มนาฬิกาสำหรับกล้องหน้า
ไฟล์การกำหนดค่า
เมื่อใช้เฟรมเวิร์ก Mobly คุณต้องสร้างไฟล์การกำหนดค่า config.yml
เพื่อ
กำหนดแท่นทดสอบ Mobly ตัวอย่างสำหรับกรณีการใช้งานต่างๆ มีดังนี้
ไฟล์ config.yml ของฉากที่ใช้แท็บเล็ต
ต่อไปนี้เป็นตัวอย่างconfig.yml
ไฟล์สำหรับฉากที่ใช้แท็บเล็ต สำหรับการทดสอบบนแท็บเล็ต ชื่อแท่นทดสอบต้องมีคีย์เวิร์ด TABLET
ในระหว่างการเริ่มต้น ตัวเรียกใช้การทดสอบ Mobly จะเริ่มต้นพารามิเตอร์ในไฟล์
และส่งไปยังการทดสอบแต่ละรายการ
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
หากต้องการเรียกใช้ Test Bed ให้เรียกใช้ tools/run_all_tests.py
หากไม่มีค่าในบรรทัดคำสั่งที่ระบุกล้องหรือฉาก ระบบจะเรียกใช้การทดสอบด้วยค่าในไฟล์ config.yml
หากมีค่าบรรทัดคำสั่งสำหรับกล้องหรือฉาก ค่าเหล่านี้จะลบล้างค่าในส่วน TestParams
ของไฟล์ config.yml
เช่น
python tools/run_all_tests.py
python tools/run_all_tests.py camera=1
python tools/run_all_tests.py scenes=2,1,0
python tools/run_all_tests.py camera=0 scenes=scene_tele
python tools/run_all_tests.py camera=0.4 scenes=4,scene6_tele
ไฟล์ sensor_fusion scene config.yml
ต่อไปนี้เป็นตัวอย่างconfig_yml
ไฟล์สำหรับsensor_fusion
การทดสอบ
สําหรับsensor_fusion
การทดสอบSENSOR_FUSION
คีย์เวิร์ดต้องอยู่ในชื่อ Testbed
Android 13 ขึ้นไปรองรับเฉพาะคอนโทรลเลอร์ Arduino
สำหรับการรวมเซ็นเซอร์เนื่องจากการทดสอบการแสดงตัวอย่างและการป้องกันภาพสั่นของวิดีโอ
Android 12 รองรับตัวควบคุม Arduino และ Canakit
Testbeds
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino
rotator_ch: 1
camera: 0
หากต้องการเรียกใช้การทดสอบ sensor_fusion
ด้วยกล่องรวมเซ็นเซอร์ ให้เรียกใช้คำสั่งต่อไปนี้
python tools/run_all_tests.py scenes=sensor_fusion
python tools/run_all_tests.py scenes=sensor_fusion camera=0
python tools/run_all_tests.py scenes=scene_flash,feature_combination
python tools/run_all_tests.py scenes=checkerboard camera=1
ไฟล์ config.yml ของ Testbed หลายรายการ
ต่อไปนี้เป็นตัวอย่างไฟล์ config.yml
ที่มีแพลตฟอร์มทดสอบหลายแพลตฟอร์ม ซึ่งได้แก่ แพลตฟอร์มทดสอบแท็บเล็ตและแพลตฟอร์มทดสอบ sensor_fusion
ระบบจะกำหนด Testbed ที่ถูกต้อง
ตามฉากที่ทดสอบ
Testbeds
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
chart_loc_arg: ""
camera: 0
scene: <scene-name> # if <scene-name> runs all scenes
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino # cntl can be arduino or canakit
rotator_ch: 1
camera: 0
ไฟล์ config.yml สำหรับการทดสอบด้วยตนเอง
ต่อไปนี้เป็นตัวอย่างไฟล์ config.yml
สำหรับการทดสอบด้วยตนเอง ตั้งแต่ Android 14 เป็นต้นไป ระบบจะรองรับการทดสอบด้วยตนเองสำหรับการทดสอบทั้งหมด ยกเว้นการทดสอบ scene_extensions
สำหรับการทดสอบด้วยตนเอง คีย์เวิร์ด MANUAL
ต้องอยู่ในชื่อ Testbed
นอกจากนี้ ส่วนAndroidDevice
ยังต้องไม่มีส่วนหมายเลขประจำเครื่องหรือส่วนป้ายกำกับสำหรับแท็บเล็ตด้วย
TestBeds:
- Name: TEST_BED_MANUAL
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
debug_mode: "False"
camera: 0
scene: 1
ไฟล์ Gen2 rig testing config.yml
ต่อไปนี้เป็นตัวอย่างconfig.yml
ไฟล์ของTEST_BED_GEN2
เทสต์เบด
โดยใช้แท่นทดสอบนี้สำหรับscene_ip
การทดสอบ ซึ่งใช้
แท่นทดสอบ Gen2](/docs/compatibility/cts/camera-its-box-gen2)
ตัวอย่างต่อไปนี้แสดงพารามิเตอร์ของ Testbed เมื่ออุปกรณ์ Gen2 พร้อมใช้งานและไม่ได้ข้ามการทดสอบ scene_ip
Testbeds
- Name: TEST_BED_GEN2
# Test configuration for scene_ip/test_default_jca_ip.py
Controllers:
AndroidDevice:
- serial: <device-id> # quotes needed if serial id entirely numeric
label: dut
TestParams:
debug_mode: "False" # quotes are needed here
chart_distance: 30
rotator_cntl: gen2_rotator # gen2 rig specific. "None" if gen2 rig not available
rotator_ch: 0
camera: <camera-id>
foldable_device: "False" # "True" if testing foldable device
tablet_device: "False" # "True" if testing tablet device
lighting_cntl: gen2_lights # gen2 rig specific. "None" if gen2 rig not available
lighting_ch: 1
scene: scene_ip
ตัวอย่างต่อไปนี้แสดงพารามิเตอร์ของ Testbed เมื่ออุปกรณ์ Gen2
ไม่พร้อมใช้งานและระบบข้ามการทดสอบ scene_ip
Testbeds
- Name: TEST_BED_GEN2
# Test configuration for scene_ip/test_default_jca_ip.py
Controllers:
AndroidDevice:
- serial: <device-id> # quotes needed if serial id entirely numeric
label: dut
TestParams:
debug_mode: "False" # quotes are needed here
chart_distance: 30
rotator_cntl: "None" # gen2 rig specific. "None" if gen2 rig not available
rotator_ch: <controller-channel>
camera: <camera-id>
foldable_device: "False" # "True" if testing foldable device
tablet_device: "False" # "True" if testing tablet device
lighting_cntl: "None" # gen2 rig specific. "None" if gen2 rig not available
lighting_ch: <controller-channel>
scene: scene_ip
หากต้องการเรียกใช้การทดสอบ scene_ip ให้ใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้
python tests/scene_ip/test_default_jca_ip.py -c config.yml
python tools/run_all_tests.py camera=<camera-id> scenes=scene_ip
การทดสอบ ITS ที่ทำงานอยู่
ส่วนนี้จะอธิบายวิธีเรียกใช้การทดสอบ ITS
การเรียกใช้การทดสอบ
หลังจากตั้งค่าอุปกรณ์ เครื่องโฮสต์ (รวมถึงสภาพแวดล้อม) และฉากจริงแล้ว ให้เรียกใช้การทดสอบ ITS โดยใช้กระบวนการต่อไปนี้
เปิดแอป CTS Verifier ในเมนูการทดสอบ ให้เลือก การทดสอบ ITS ของกล้อง
จากเครื่องโฮสต์ ให้เรียกใช้การทดสอบ ITS จาก
CameraITS/
ไดเรกทอรี เช่น สำหรับอุปกรณ์ที่มีกล้องหน้าและกล้องหลัง ให้เรียกใช้คำสั่งต่อไปนี้python tools/run_all_tests.py
สคริปต์จะวนซ้ำผ่านกล้องและฉากทดสอบตามไฟล์
config.yml
สำหรับการตั้งค่าการแก้ไขข้อบกพร่อง เราขอแนะนำให้เรียกใช้ฉากใดฉากหนึ่งของscene2
โดยมีการทดสอบเพียงครั้งเดียวเพื่อให้ได้ผลลัพธ์ที่เร็วที่สุดสำหรับการทดสอบด้วยตนเอง ก่อนที่จะเริ่มเรียกใช้ชุดการทดสอบ ITS ในแต่ละฉาก สคริปต์จะถ่ายรูปฉากปัจจุบัน บันทึกเป็น JPEG พิมพ์ เส้นทางไปยัง JPEG ไปยังคอนโซล และขอให้ผู้ใช้ยืนยันว่ารูปภาพ ใช้ได้หรือไม่ ขั้นตอนการจับภาพและยืนยันนี้จะวนซ้ำจนกว่าผู้ใช้จะ ยืนยันว่ารูปภาพใช้ได้ ข้อความในขั้นตอนการทำงานนี้มีดังนี้
Preparing to run ITS on camera 0 Start running ITS on camera: 0 Press Enter after placing camera 0 to frame the test scene: scene1_1 The scene setup should be: A grey card covering at least the middle 30% of the scene Running vendor 3A on device Capture an image to check the test scene Capturing 1 frame with 1 format [yuv] Please check scene setup in /tmp/tmpwBOA7g/0/scene1_1.jpg Is the image okay for ITS scene1_1? (Y/N)
การเรียกใช้สคริปต์แต่ละครั้งจะพิมพ์บันทึกที่แสดง
PASS
,FAIL
,FAIL*
หรือSKIP
สำหรับการทดสอบ ITS แต่ละรายการFAIL*
แสดงว่าการทดสอบล้มเหลว แต่เนื่องจากยังไม่มีการกำหนดให้ทำการทดสอบ การทดสอบจะรายงานเป็นPASS
ไปยัง CtsVerifierSKIP
แสดงว่าการทดสอบผ่านเนื่องจาก อุปกรณ์ไม่ได้โฆษณาความสามารถพื้นฐานที่กำลังทดสอบ ตัวอย่างเช่น หากอุปกรณ์ไม่ได้โฆษณาผ่านอินเทอร์เฟซกล้องว่ารองรับ DNG ระบบจะข้ามการทดสอบที่เกี่ยวข้องกับการจับภาพไฟล์ DNG และนับเป็นการทดสอบที่PASS
หากต้องการรับทราบว่าการทดสอบเป็นไปตามข้อกำหนดในการทดสอบ ให้แตะปุ่ม เครื่องหมายถูกสีเขียว จากนั้นรายการ Camera ITS Test ในเมนูการทดสอบของ CTS Verifier จะเปลี่ยนเป็นสีเขียว ซึ่งหมายความว่าโทรศัพท์ผ่าน Camera ITS แล้ว
การทดสอบ DUT แบบขนาน
อุปกรณ์ที่ใช้ Android 14 ขึ้นไปรองรับการทดสอบ DUT แบบขนาน ซึ่งช่วยให้คุณทดสอบ DUT พร้อมกันกับอุปกรณ์หลายเครื่องเพื่อเร่งการทดสอบโดยรวมได้ เช่น การทดสอบแบบคู่ขนานช่วยให้คุณทดสอบกล้อง 0 ในอุปกรณ์หนึ่งและกล้อง 1 ในอีกอุปกรณ์หนึ่งได้พร้อมกัน การทดสอบทั้งหมดสำหรับเซสชันการทดสอบแบบคู่ขนานจะรวมกันในเซสชัน CTS Verifier บน DUT อ้างอิง คุณต้องทำการทดสอบแบบคู่ขนานด้วยการควบคุมแสงสว่างของ Arduino เนื่องจากระบบควบคุมแสงสว่างด้วยตนเองไม่รองรับการทดสอบแบบคู่ขนาน ตรวจสอบว่าช่อง อื่นในตัวควบคุม Arduino เดียวกันควบคุมไฟสำหรับอุปกรณ์แต่ละเครื่อง
ต่อไปนี้เป็นตัวอย่างไฟล์ config.yml
ที่กำหนดแพลตฟอร์มทดสอบ 3 แพลตฟอร์มเพื่อเรียกใช้แบบขนาน
TestBeds:
- Name: TEST_BED_TABLET_SCENES_INDEX_0
Controllers:
AndroidDevice:
- serial: <device-id-0>
label: dut
- serial: <tablet-id-0>
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
lighting_cntl: "arduino"
lighting_ch: <controller-channel-0>
camera: 0
scene: <scene-name> # if <scene-name> left as-is runs all scenes
foldable_device: "False"
- Name: TEST_BED_TABLET_SCENES_INDEX_1
Controllers:
AndroidDevice:
- serial: <device-id-1>
label: dut
- serial: <tablet-id-1>
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
lighting_cntl: "arduino"
lighting_ch: <controller-channel-1>
camera: 1
scene: <scene-name> # if <scene-name> left as-is runs all scenes
foldable_device: "False"
# TEST_BED_SENSOR_FUSION represents testbed index 2
# Parallel sensor_fusion is currently unsupported due to Arduino requirements
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion
Controllers:
AndroidDevice:
- serial: <device-id>
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: "arduino"
rotator_ch: <controller-channel-2>
camera: <camera-id>
foldable_device: "False"
tablet_device: "False"
lighting_cntl: "None"
lighting_ch: <controller-channel>
scene: "sensor_fusion"
หากต้องการเรียกใช้ Testbed แบบคู่ขนาน ให้ใช้คำสั่งต่อไปนี้
for i in 0 1 2; do python3 tools/run_all_tests.py testbed_index=$i num_testbeds=3 & done; wait
โมเดลสัญญาณรบกวน DNG
อุปกรณ์ที่โฆษณาความสามารถในการจับภาพ RAW หรือ DNG ต้องระบุโมเดลสัญญาณรบกวน ในข้อมูลเมตาของผลลัพธ์การจับภาพของภาพ RAW แต่ละภาพ โมเดลสัญญาณรบกวนนี้ ต้องฝังอยู่ใน HAL ของกล้องสำหรับกล้องแต่ละตัว (เช่น กล้องหน้า และกล้องหลัง) ในอุปกรณ์ที่อ้างว่ารองรับ
การใช้งานโมเดลเสียง
หากต้องการใช้โมเดลสัญญาณรบกวน ให้ทำตามขั้นตอนต่อไปนี้เพื่อสร้างโมเดลสัญญาณรบกวนและ ฝังโมเดลลงใน HAL ของกล้อง
หากต้องการสร้างโมเดลสัญญาณรบกวนสำหรับกล้องแต่ละตัว ให้เรียกใช้สคริปต์
dng_noise_model.py
ในไดเรกทอรีtools
ซึ่งจะแสดงข้อมูลโค้ด C ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่ากล้องและจับภาพสภาพแวดล้อมได้ที่DngNoiseModel.pdf
เอกสารในไดเรกทอรีtools
หากต้องการใช้โมเดลสัญญาณรบกวนสำหรับอุปกรณ์ ให้ตัดและวางข้อมูลโค้ด C ลงใน HAL ของกล้อง
การตรวจสอบความถูกต้องของโมเดลเสียง
การทดสอบ ITS tests/scene1_1/test_dng_noise_model.py
อัตโนมัติจะตรวจสอบโมเดลสัญญาณรบกวนโดยยืนยันว่าค่าสัญญาณรบกวน
สำหรับการเปิดรับแสงและค่าเกนของช็อตที่ระบุในข้อมูลกล้องถูกต้อง