v5.1.0#

v5.1.0 เป็นรุ่นเพิ่มคุณสมบัติ แผงใต้เฟรมบัฟเฟอร์เติบโตจากฮิสโทแกรมเป็นชุดของ มุมมองสด -- Board Info, Memory, Statistics และมุมมอง Channels ใหม่ที่เปลี่ยนค่าที่สคริปต์เผยแพร่เป็นวิดเจ็ต กราฟ สเปกตรัม และแผนที่ความลึก และบันทึกลงไฟล์ -- เฟรมบัฟเฟอร์ได้รับ ตัวเลือกแหล่ง สำหรับกล้องหลายเซ็นเซอร์ IDE เรียนรู้ที่จะโหลด พื้นที่เก็บข้อมูลของบุคคลที่สาม ของบอร์ด เฟิร์มแวร์ ตัวอย่าง โมเดล และสตับ และการบันทึกวิดีโอเปลี่ยนไปใช้ H.264 บอร์ดและเซ็นเซอร์ใหม่ได้รับการรองรับ เครื่องมือเฟิร์มแวร์ได้รับการเสริมความแข็งแกร่งจากการตรวจสอบเต็มรูปแบบของทุกการเปลี่ยนแปลงตั้งแต่ v5.0.0 และพฤติกรรมจำนวนหนึ่งถูกนำมาจาก OpenMV Studio สร้างบน Qt Creator 14.0.2 และรวมเฟิร์มแวร์ v5.0.1 มาด้วย

จุดเด่น#

  • มุมมองของแผง -- แถบชื่อของแผงฮิสโทแกรมได้รับตัวเลือกที่สลับแผงระหว่างมุมมอง Histogram, Board Info (ฮาร์ดแวร์ เวอร์ชัน และความสามารถของกล้องที่เชื่อมต่อ), Memory (กราฟสดของฮีป MicroPython และพูล UMA ทุกพูล พร้อมการติดตามค่าสูงสุด), Statistics (ตัวนับแพ็กเก็ต ข้อผิดพลาด และเหตุการณ์ต่อแชนเนลของโปรโตคอลดีบัก) และ Channels

  • มุมมอง Channels -- สคริปต์สามารถเผยแพร่แชนเนลที่มีชื่อของข้อมูลและตัวควบคุมผ่านโปรโตคอลดีบัก และ IDE จะแสดงผลแบบสด: ป้ายกำกับ สวิตช์สลับ แถบเลื่อน กล่องหมุนค่า ปุ่มตัวเลือก ช่องข้อความ ตัวเลือก ปุ่มกด และบล็อกข้อความที่เขียนกลับไปยังกล้อง; กราฟรูปคลื่นพร้อมการเลื่อน การซูม มาร์กเกอร์ ทริกเกอร์ ประวัติ และตัววิเคราะห์สเปกตรัม; และแผนที่ความลึกพร้อมพาเลตต์ของกล้องเอง ฟิลเตอร์ปรับขนาดสามแบบ และการแมปโทน กราฟหรือแผนที่ใด ๆ บันทึกเป็นไฟล์ CSV, WAV, NumPy หรือ Edge Impulse JSON และ CBOR ได้ -- รวมถึง Record All สำหรับทั้งแชนเนล -- เพื่อเก็บข้อมูลสำหรับการฝึก ค่าล่าสุดยังคงอยู่บนหน้าจอเมื่อสคริปต์หยุด

  • ตัวเลือกแหล่งเฟรมบัฟเฟอร์ -- กล้องที่มีเซ็นเซอร์ภาพมากกว่าหนึ่งตัวจะแสดงตัวเลือกในแถบชื่อของเฟรมบัฟเฟอร์เพื่อเลือกว่าเซ็นเซอร์ใดจะสตรีมไปยัง IDE (หรือปิดการสตรีม) ปุ่มสลับ JPG กลายเป็นตัวเลือกโหมดสตรีม JPG / RAW และชื่อของแผงระบุรูปแบบที่แต่ละเฟรมมาถึง

  • พื้นที่เก็บข้อมูลของบุคคลที่สาม -- ผู้จำหน่ายสามารถเผยแพร่พื้นที่เก็บข้อมูลของบอร์ด เฟิร์มแวร์ (แชนเนลรุ่นปล่อยและรุ่นพัฒนา) ตัวอย่าง โมเดลแมชชีนเลิร์นนิง และสตับ .pyi; IDE ติดตั้งจาก URL หรือจากโฟลเดอร์ที่ตัวติดตั้งวางไว้ ผสานเข้ากับเนื้อหาของตัวเอง คอยอัปเดตให้ทันสมัย และให้คุณจัดลำดับความสำคัญของผู้จำหน่ายได้ จัดการได้จาก Preferences → OpenMV → Third Party Repositories

  • ฮาร์ดแวร์ใหม่ -- บอร์ด OpenMV N6 Classic (รวมถึงไดรเวอร์ bootloader กฎ udev และรายการกู้คืน ROM-DFU ของบอร์ด) และเซ็นเซอร์ FLIR Lepton 3.1R และ UW

  • การบันทึกแบบ H.264 -- ตัวบันทึกเฟรมบัฟเฟอร์และตัวแปลงวิดีโอตอนนี้เข้ารหัสเป็น H.264 แทน MPEG-4 Part 2 พร้อมช่วงคีย์เฟรมที่กำหนดตายตัวเพื่อให้การบันทึกเลื่อนตำแหน่งได้อย่างราบรื่น และอัตราเฟรมถูกปัดเป็นจำนวนเต็ม

  • การแก้ไขจากการตรวจสอบ -- ทุกคอมมิตตั้งแต่ v5.0.0 ได้รับการตรวจทานสองรอบเพื่อหาการถดถอย โดยให้ความสนใจเป็นพิเศษกับเส้นทางเฟิร์มแวร์ bootloader และ ROMFS ข้อบกพร่องที่พบได้รับการแก้ไขในรุ่นนี้ (ดู การแก้ไขข้อบกพร่อง)

คุณสมบัติใหม่#

  • มุมมอง Board Info, Memory และ Statistics ในแผงฮิสโทแกรม พร้อมสไตล์แบบเต็มพื้นที่ในทั้งธีมมืดและธีมสว่าง และข้อความที่เลือกได้ (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd)

  • มุมมอง Channels -- ชุดตัวควบคุมครบถ้วน (label, toggle, slider, spin box, radio, line edit, select, push button, text), กราฟรูปคลื่นพร้อมตัววิเคราะห์สเปกตรัม (หน้าต่าง Hann, Hamming, Blackman และสี่เหลี่ยม, การเฉลี่ย, peak hold, ความถี่แบบลอการิทึม), ทริกเกอร์ขอบขาขึ้นและขาลง, มาร์กเกอร์, ประวัติ และการส่งออกพล็อต; แผนที่ความลึกพร้อมพาเลตต์ Depth, Rainbow, Ironbow และ Event, การปรับขนาดแบบ nearest / bilinear / bicubic, การแมปโทนแบบ Script Range / Auto Range / Equalize, ปุ่มหยุดชั่วคราว, การอ่านค่าเมื่อวางเมาส์, ส่วนหัวที่แสดงช่วงที่ประกาศไว้และค่า min / max / mean ของเฟรม และ Save Image; การบันทึกเป็น CSV, WAV, NumPy และ Edge Impulse JSON / CBOR พร้อมป้ายกำกับ Edge Impulse ที่เลือกใส่ได้, การแบ่งส่วนสำหรับการจับข้อมูลที่ยาว และ Record All; ช่วงเวลา Channel Polling ในการตั้งค่าโปรโตคอล (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee)

  • ตัวเลือกแหล่งเฟรมบัฟเฟอร์และการแสดงรูปแบบ -- เลือกเซ็นเซอร์ที่จะสตรีมบนกล้องหลายเซ็นเซอร์ หรือ Off; รูปแบบเฟรมที่ได้รับแสดงในชื่อของแผง; ปุ่มสลับ JPG ตอนนี้เป็นตัวเลือก JPG Mode / RAW Mode (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd)

  • พื้นที่เก็บข้อมูลของบุคคลที่สาม -- พื้นที่เก็บข้อมูลเฟิร์มแวร์ที่ขับเคลื่อนด้วยไฟล์ซึ่งผสานเข้ากับรายการบอร์ดในตัว การอัปเดตผ่านเครือข่ายพร้อมหน้า Preferences แชนเนลเฟิร์มแวร์รุ่นพัฒนาต่อผู้จำหน่าย ลำดับความสำคัญของผู้จำหน่ายที่ผู้ใช้ควบคุม ตัวอย่างของผู้จำหน่ายผสานเข้ากับ File → Examples โมเดลของผู้จำหน่ายผสานเข้ากับ Model Zoo สตับ .pyi แบบกำหนดเองป้อนให้การเติมโค้ดอัตโนมัติ คำเตือนการแทนที่เมื่อผู้จำหน่ายบดบังเนื้อหาในตัว และการตรวจสอบสัญญาอนุญาตสำหรับบอร์ดของผู้จำหน่าย (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888)

  • การตัดคอมเมนต์ก่อน Run -- คอมเมนต์จะถูกลบออกจากสคริปต์ก่อนส่งไปยังกล้อง ช่วยประหยัด RAM ของกล้องสำหรับสคริปต์ที่มีคอมเมนต์มาก บรรทัดยังคงอยู่ หมายเลขบรรทัดใน traceback จึงยังตรงกับตัวแก้ไข (677546ee033)

  • เครื่องหมายข้อผิดพลาดแบบอินไลน์ -- เมื่อสคริปต์หยุดทำงานด้วยข้อยกเว้น ตัวแก้ไขจะทำเครื่องหมายบรรทัดที่มีปัญหาเป็นสีแดงพร้อมข้อความข้อผิดพลาดข้าง ๆ; เครื่องหมายจะหายไปเมื่อคุณแก้ไขไฟล์ รันอีกครั้ง หรือยกเลิกการเชื่อมต่อ (677546ee033)

  • การลากและวางลงในตัวแก้ไข ROMFS -- ไฟล์ที่ลากมาจากเดสก์ท็อปจะผ่านการคอมไพล์สคริปต์และการแปลงโมเดลแบบเดียวกับ Add File ลงในโฟลเดอร์ที่ไฟล์ถูกวาง (677546ee033)

การปรับปรุงตัวแก้ไข เทอร์มินัล และ UI#

  • ฮิสโทแกรมคำนวณจาก RGB 8 บิตเต็ม แทนตาราง RGB565 ของกล้อง พร้อมพาเลตต์พล็อตที่ใช้ร่วมกัน การเติมสีแบบผสมอัลฟา และเส้นกริดที่จางลง (238e099373e, f126e8f34c0, cebbf0c9e2c)

  • มุมมองของแผงที่ซ่อนอยู่ไม่ทำงาน -- ฮิสโทแกรมจะข้ามการคำนวณและการพล็อตใหม่ขณะที่มุมมองอื่นแสดงอยู่หรือแผงถูกยุบ และตามให้ทันเมื่อแสดงอีกครั้ง; การพล็อตใหม่ขนาดศูนย์ถูกระงับ (c8730df8399)

  • สคริปต์ตัวอย่างเปิดโดยมีบรรทัดว่างหลังคำสั่ง import และตัวอย่างที่รวมมาถูกจัดรูปแบบใหม่ในลักษณะเดียวกัน (1f88f617ec5, 87c8f7d41c7)

  • การเติมโค้ดอัตโนมัติแสดงชื่อแบบส่วนตัว -- เซิร์ฟเวอร์ภาษาในตัวไม่กรองสมาชิกที่ขึ้นต้นด้วย _ ออกอีกต่อไป ซึ่งโมดูลของกล้องใช้ชื่อแบบนี้ (23ab5b38bb3)

  • macOS -- กล่องกลุ่มตัวควบคุมโปรโตคอลในการตั้งค่าไม่แน่นเกินไปอีกต่อไป มุมมองรายการได้รับการป้องกันจากการล่มของ Cocoa accessibility ผู้ใช้ Apple Silicon ได้รับคำเตือนเกี่ยวกับการตั้งค่าความปลอดภัย "Allow accessories to connect" และผู้ใช้ RT1062 ได้รับคำเตือนเมื่อไม่ได้ให้สิทธิ์ Input Monitoring (การอัปเดตเฟิร์มแวร์ต้องใช้); คำเตือนทั้งสองแสดงหลังเชื่อมต่อ (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d)

  • ปุ่มลัดในโหมด Viewer -- ปุ่มลัดที่หลงเหลือซึ่งทำให้โหมด viewer (และ IDE ปกติ) เสียถูกปิดใช้งาน และโหมด viewer ไม่บันทึกปุ่มลัดที่ถูกล้างของตนลงในการตั้งค่าของ IDE แบบเต็มอีกต่อไป (251b422f642, 0d153671c1d)

  • เซ็นเซอร์ที่ไม่รู้จักถูกตั้งชื่อตาม chip id ในแถบสถานะ จึงระบุและเพิ่มลงในตารางเซ็นเซอร์ได้ (df561775b54)

เฟิร์มแวร์ บอร์ด และเครื่องมือ#

  • รองรับ OpenMV N6 Classic: รายการบอร์ด ไดรเวอร์ DFU สำหรับ Windows และรหัสตัวติดตั้ง กฎ udev สำหรับ Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60)

  • FLIR Lepton 3.1R และ UW รองรับเซ็นเซอร์ (12c03024f3c)

  • การส่งต่อ bootloader ของ IMX -- ตัวดักจับที่เตรียมพร้อมไว้ล่วงหน้าจะยึด bootloader ของ RT1062 ทันทีที่มัน enumerate แทนที่ลูปที่สร้างโปรเซสใหม่ทุกครั้งที่ตรวจสอบ ซึ่งอาจพลาดช่วงเวลาหนึ่งวินาทีบนโฮสต์ที่มีภาระงานสูง (3d8b63c6859)

  • ไฟล์ zip ของเฟิร์มแวร์ -- Load Custom Firmware รับบันเดิลที่มีเฉพาะ romfs และบันเดิลที่ไม่มี ROMFS และเฟิร์มแวร์แบบกำหนดเองหรือรุ่นพัฒนาจะถูกเตรียมไว้สำหรับบอร์ด IMX ที่อยู่ในโหมด bootloader อยู่แล้ว (b6f16f54c1a, 94d5fd5c30e)

  • ไดเรกทอรีพักไฟล์แบบส่วนตัว สำหรับเฟิร์มแวร์รุ่นพัฒนา / แบบกำหนดเอง อิมเมจของตัวแก้ไข ROMFS และไฟล์ชั่วคราวของเครื่องมือวิดีโอ ไฟล์ค้างจากโปรเซสอื่นจึงไม่มีทางถูกแฟลชหรือแปลงโดยผิดพลาด (939154501af, a288fe712e7, 5c8c717adec)

  • วิดีโอ H.264 -- การบันทึกและการแปลงเข้ารหัสเป็น H.264 พร้อมช่วงคีย์เฟรมที่กำหนดตายตัว; อัตราเฟรมที่บันทึกได้ใกล้จำนวนเต็มจะถูกปัดเป็นจำนวนเต็มนั้น โปรแกรมเล่นจึงรายงาน 30 FPS แทน 29.97 (6ad1968341d, d62c110e155, bab488a54fe)

  • เช็กซัมของไฟล์ zip ทรัพยากร -- การอัปเดตทรัพยากรของ IDE ถูกตรวจสอบกับค่า SHA-256 ที่เผยแพร่คู่กับเวอร์ชัน (677546ee033)

  • User-Agent ที่ตรงไปตรงมา ในคำขอไปยังเซิร์ฟเวอร์ของ OpenMV (c4279c0213e)

การแก้ไขข้อบกพร่อง#

การตรวจทานสองรอบของทุกการเปลี่ยนแปลงตั้งแต่ v5.0.0 พบและแก้ไขสิ่งต่อไปนี้ (ccea3b17d01, 71826200611):

  • เส้นทางเฟิร์มแวร์และ bootloader -- การใช้ Load Custom Firmware ด้วยไฟล์ zip กับบอร์ดที่อยู่ในโหมด bootloader อยู่แล้วกลับแฟลชบิลด์รุ่นปล่อยแทน; เส้นทางกู้คืนของ Alif ตอนนี้ปฏิเสธบิลด์แบบกำหนดเองแทนที่จะแฟลชรุ่นปล่อย; N6 Classic ที่บริกถูกซ่อมด้วย bootloader และเฟิร์มแวร์ของ N6 ธรรมดา; รากทรัพยากรของบุคคลที่สามที่ค้างอยู่อาจนำบอร์ดในตัวที่บริกไปยังไฟล์ของผู้จำหน่าย; ตัวดักจับ IMX อาจดำเนินการแฟลชต่อหลังจากที่มันล่ม ไม่สนใจ Cancel ขณะรอ flashloader และปล่อยพอร์ตอนุกรมเปิดค้างหลังยกเลิกระหว่างเตรียมพร้อม; bootloader ของ N6 Classic ไม่มีกฎ udev; รหัสออกที่ยอมรับของตัวติดตั้งไดรเวอร์ Windows มีการพิมพ์ผิด

  • ตัวแก้ไข ROMFS -- Cancel ระหว่างการอ่าน ROMFS รายงานว่า "Failed to unpack ROMFS!" และรอสิบวินาทีสำหรับกล้องที่ยังอยู่ใน bootloader; Cancel ระหว่างการเขียนจบลงเงียบ ๆ โดย ROMFS อาจถูกเขียนไม่ครบ; ข้อผิดพลาดของ dfu-util ระหว่างการเขียนถูกรายงานว่าสำเร็จ; Cancel ในกล่องโต้ตอบถัดไปทิ้งการแก้ไขทั้งหมด; Auto Reconnect อาจเชื่อมต่อซ้อนใต้ตัวแก้ไขที่เปิดอยู่; Edit ROMFS ขณะเชื่อมต่ออยู่ยกเลิกการเชื่อมต่อแล้วเชื่อมต่อใหม่ก่อนโดยไม่จำเป็น; ไดเรกทอรีชั่วคราวของตัวแปลงรั่วไหล หลังจากการดำเนินการที่ถูกยกเลิก ตอนนี้ bootloader จะถูกขอให้ออกจาก DFU เพื่อให้กล้องกลับมาเองได้

  • พื้นที่เก็บข้อมูลของบุคคลที่สาม -- รายการในไฟล์ zip ถูกตรวจสอบก่อนแตกไฟล์ (ไม่มี path traversal หรือ symlink), การติดตั้งบางส่วนและการติดตั้งซ้ำเก็บสำเนาเก่าไว้จนกว่าสำเนาใหม่จะพร้อม, บอร์ดของผู้จำหน่ายที่ถูกปฏิเสธไม่ดึงบอร์ดในตัวที่ทับซ้อนกันให้หายไปด้วยอีกต่อไป, PID mask ที่หายไปไม่ตรงกับอะไรเลยขณะรันไทม์, และแถวดัชนีตัวอย่าง / โมเดลพื้นฐานไม่จับไฟล์ของผู้จำหน่ายที่ชื่อเดียวกันอีกต่อไป

  • เฟรมบัฟเฟอร์และเซ็นเซอร์ -- เซ็นเซอร์เหตุการณ์ GENX320 (chip id สูงกว่า 0x80000000) ปิดเฟรมบัฟเฟอร์; การเลือกเซ็นเซอร์ที่บันทึกไว้ไม่คงอยู่หลังรีสตาร์ท; การตั้งค่า "disable frame buffer" แบบเก่าไม่ถูกย้าย; คำสั่ง stream-source ถูกจำกัดตามเวอร์ชันโปรโตคอล; เมตริกโฟกัสค้างขณะที่หน้าฮิสโทแกรมถูกซ่อน; รูปแบบเฟรมค้างอยู่ในชื่อแผงหลังยกเลิกการเชื่อมต่อ

  • ขั้นตอนการเชื่อมต่อ -- คำเตือนบน macOS อาจกลืนการตอบ "Yes" ของข้อความแจ้งอัปเกรดเฟิร์มแวร์; Model Zoo เปิดในสภาพยุบอยู่เสมอโดยไม่คืนค่าการเลือก; ทางสำรองแบบไดรฟ์เดียวสำหรับไดรฟ์ของกล้องไม่สามารถเข้าถึงได้เมื่อกล้องเสียบอยู่นานกว่าสิบวินาที

  • มุมมอง Channels และตัวบันทึก -- ขนาดเฟรมที่ไม่พึงประสงค์อาจทำให้การตรวจสอบขนาดล้น; ตัวบันทึก Edge Impulse จัดสรรหน่วยความจำใหม่ทุกชิ้นข้อมูล และตอนนี้ถูกจำกัดไว้ที่ 64 MB ต่อส่วน; สคีมาที่มีตัวคั่นในชื่ออาจอ้างดัชนีเกินรายการเรคคอร์ด; เรคคอร์ดที่ซ้ำกันทำให้ตัวบันทึกที่กำลังทำงานถูกทิ้งค้าง; การเขียนจะถูกทิ้งขณะที่มุมมองถูกตรึง; รายการแชนเนลตอนนี้รีเฟรชเมื่อเกิดเหตุการณ์ยกเลิกการลงทะเบียนและซอฟต์รีบูต

  • วิดีโอ -- ความกว้างเลขคี่ที่ผู้ใช้ป้อนทำให้การเข้ารหัส H.264 บนบิลด์ libx264 เสีย; การแปลง .bin ที่ถูกยกเลิกหรือล้มเหลวทิ้งเฟรมไว้ซึ่งการรันครั้งถัดไปรวมเข้ามาด้วย

  • โปรโตคอล -- การล้างบัฟเฟอร์อ่านที่รันก่อนการตรวจจับโปรโตคอลมีขอบเขตจำกัดแล้ว (issue #336) (77cd13af76f); การจับคู่กล้องกับไดรฟ์ไม่แพ้การแข่งขันกับโวลุมอื่นอีกต่อไป (9877480c304)

  • คำเตือน -Wdeprecated-copy ในตัวห่อหุ้มข้อมูลพอร์ตอนุกรม (abcfaa8af5e)

การแปลภาษา#

  • แคตตาล็อกทั้ง 37 ภาษาได้รับการอัปเดตสำหรับมุมมองของแผง มุมมอง Channels และแผนที่ความลึกของมัน และสตริงใหม่ทุกรายการในรุ่นนี้ (1b71f243733, dc13c23ed81, a7debafdafa, 173a57422f7)

การรองรับแพลตฟอร์มและเครื่องมือ#

การเปลี่ยนแปลงที่ทำให้เข้ากันไม่ได้#

ไม่มีสำหรับโปรเจกต์ที่มีอยู่ ปุ่มสลับ JPG ในแถบชื่อของเฟรมบัฟเฟอร์ตอนนี้เป็นตัวเลือก JPG Mode / RAW Mode และการตั้งค่า "disable frame buffer" แบบเก่าถูกย้ายไปเป็นรายการ Off ของตัวเลือกแหล่งใหม่ คอมเมนต์จะถูกตัดออกจากสคริปต์ก่อนรัน; สคริปต์ที่พึ่งพาการอ่านซอร์สของตัวเองขณะรันไทม์ไม่ควรทำเช่นนั้น