4.20. สรุป¶
คุณได้เดินผ่านส่วนต่างๆ ของสแต็กการสร้างภาพของกล้องที่ปรากฏขึ้นทุกครั้งที่สคริปต์จับภาพเฟรม:
ออปติกส์หน้าเซนเซอร์ -- รูเข็มในฐานะองค์ประกอบการสร้างภาพที่ง่ายที่สุด จากนั้นเลนส์ที่รวบรวมแสงได้มากกว่ามากในขณะที่ยังโฟกัสได้ โดยมีความยาวโฟกัส รูรับแสง ระยะชัดลึก และมุมมองภาพเป็นตัวปรับที่แอปพลิเคชันเลือก เลนส์จริงมาพร้อมกับการบิดเบี้ยว วิญเนตติ้ง และผลกระทบของมุมรังสีหลักที่เซนเซอร์และ ISP จะชดเชยในภายหลัง
กริดเซนเซอร์ -- อาร์เรย์สองมิติของโฟโตไดโอดที่แปลงโฟตอนเป็นประจุ โดยมีเวลาการรับแสงและค่าเกนอนาล็อกที่แลกเปลี่ยนความสว่างกับความพร่ามัวของการเคลื่อนไหวและสัญญาณรบกวน ชัตเตอร์แบบโรลลิ่งและโกลบอลเลือกวิธีการอ่านแถวของอาร์เรย์ออก และชุดการสอบเทียบบนชิปขนาดเล็ก -- คอลัมน์ FPN, ระดับดำ, พิกเซลบกพร่อง, เงาเลนส์ -- ทำความสะอาดข้อมูลก่อนออกจากชิป บัส I2C ช้าสำหรับรีจิสเตอร์ควบคุม และบัสแบบขนานหรือ MIPI เร็วสำหรับพิกเซล เชื่อมต่อชิปกับ MCU
สีและ ISP -- อาร์เรย์ฟิลเตอร์สี Bayer ให้พิกเซลแต่ละตัวมีสีแดง เขียว หรือน้ำเงิน การ debayering แทรกช่องสัญญาณที่ขาดหายไปสองช่องล โปรเซสเซอร์สัญญาณภาพเชื่อมต่อส่วนที่เหลือของไปป์ไลน์ -- การดึงสถิติ, การปรับสมดุลขาวอัตโนมัติ, การ debayering, การแก้ไขเมทริกซ์สี, แกมมา, การปรับขนาด, การครอบตัด และการบรรจุขั้นสุดท้ายเป็นรูปแบบพิกเซลที่ร้องขอ
รูปแบบพิกเซล -- Bayer ดิบ, RGB888, RGB565, YUV422, ระดับสีเทา, BINARY และเอาต์พุต JPEG / PNG ที่บีบอัดแลกขนาดหน่วยความจำกับความแม่นยำของสีและความเข้ากันได้ของอัลกอริทึมปลายทาง RGB565 เป็นค่าเริ่มต้นสำหรับสีสำเร็จเพราะสอดคล้องกับความกว้างคำของ MCU และลดต้นทุนหน่วยความจำครึ่งหนึ่งเมื่อเทียบกับ RGB888
CSI API -- โค้ดตั้งค่าห้าบรรทัดบวกลูปสแนปช็อตเป็นรูปทรงที่สคริปต์ทุกตัวเริ่มต้น พูลบัฟเฟอร์เฟรม (เดี่ยว, คู่, ไตรเปิล, FIFO วิดีโอ หรือทริกเกอร์) ตัดสินว่าแอปพลิเคชันและกล้องแบ่งปันเฟรมอย่างไร ช่องพรีวิวแยกต่างหากป้อนโปรแกรมดีบักที่เชื่อมต่อโดยไม่แข่งขันกับบัฟเฟอร์ของแอปพลิเคชัน ตัวปรับเซนเซอร์ครอบคลุมการวางแนว, การรับแสง, ค่าเกน, สมดุลขาว, ขีดจำกัดอัตราเฟรม และรูปแบบทดสอบแถบสี
เซนเซอร์หลายตัวและพูลหน่วยความจำ -- บอร์ดที่มีเซนเซอร์สองตัวสร้าง
CSIหนึ่งตัวต่อชิปและรันแต่ละตัวที่อัตราของตัวเอง ภายใต้นั้น พูลบัฟเฟอร์เฟรม, ภูมิภาคพรีวิว, ฮีป MicroPython และการจัดสรรหน่วยความจำเร็วขนาดเล็กกว่าอาศัยอยู่ในภูมิภาคหน่วยความจำ RAM ที่แตกต่างกัน วางตำแหน่งเพื่อให้ส่วนที่ต้องการความเร็วได้รับ และส่วนที่ต้องการขนาดก็ได้รับแทน
นั่นเพียงพอสำหรับการนำเฟรมออกจากเซนเซอร์ด้วยรูปแบบ ขนาดเฟรม และการรับแสงที่เหมาะสมสำหรับฉาก เลือกโหมดบัฟเฟอร์เฟรมที่ตรงกับเวลาการประมวลผลของแอปพลิเคชัน เปิดเผยพรีวิวสดให้กับสิ่งที่เชื่อมต่อ และอ่าน Image กลับเข้า Python พร้อมใช้งาน
4.20.1. การใช้ข้อมูลอ้างอิงนี้ในภายหลัง¶
ปฏิบัติต่อบทการสร้างภาพเหมือนเอกสารอ้างอิง ไม่ใช่การอ่านครั้งเดียว การกลับมาทบทวนโหมดบัฟเฟอร์เฟรม รูปแบบพิกเซล หรือความหมายของตัวปรับเซนเซอร์ที่กำหนดเป็นการใช้งานที่ตั้งใจ หน้าอ้างอิง csi.CSI แสดงทุกเมธอดในที่เดียวเมื่อคำถามคือแค่ "ชื่อที่แน่นอนของการเรียกนี้คืออะไร"
4.20.2. จะไปต่อที่ไหน¶
การประมวลผลภาพ เป็นหัวข้อถัดไปตามธรรมชาติ ด้วยบัฟเฟอร์ในมือและ csi API ที่เข้าใจแล้ว สิ่งที่เหลือคือสิ่งที่ ต้องทำ กับพิกเซล: ค่าขีดแบ่ง, การตรวจจับขอบ, การค้นหาบลอบ, การตรวจจับเส้นและรูปร่าง, QR codes, AprilTags, การอนุมานการเรียนรู้ของเครื่อง ชุดเครื่องมือย้ายไปยังโมดูล image และแค็ตตาล็อกเมธอดบนออบเจกต์ Image ทุกอย่างจากส่วนนี้ส่งต่อไป ได้แก่ รูปทรงลูป, โหมดบัฟเฟอร์เฟรม, รูปแบบพิกเซล -- ทั้งหมดนี้คือสิ่งที่เมธอดการประมวลผลภาพทำงานบน