สารบัญ:
- ขั้นตอนที่ 1: Flash Micropython Firmware
- ขั้นตอนที่ 2: เชื่อมต่อกับ MaiX Bit
- ขั้นตอนที่ 3: เรียกใช้การสาธิต
วีดีโอ: Sipeed MaiX Bit การสาธิต OpenMV - Computer Vision: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
นี่เป็นบทความที่สองในซีรีส์เกี่ยวกับ Sipeed AI บนแพลตฟอร์มไมโครคอนโทรลเลอร์ Edge คราวนี้ฉันจะเขียนเกี่ยวกับ MaiX Bit (ลิงก์ไปยัง Seeed Studio Shop) ซึ่งเป็นบอร์ดพัฒนาที่เล็กกว่าและพร้อมใช้เขียงหั่นขนม ข้อมูลจำเพาะของมันคล้ายกับ MaiX Dock มาก บอร์ดที่ฉันใช้สำหรับบทช่วยสอนที่แล้ว เพราะมันใช้ชิปตัวเดียวกัน Kendryte K210
เรากำลังจะใช้เฟิร์มแวร์ micropython เพื่อทดลองใช้การสาธิต OpenMV นี่คือคำอธิบายจากโฮมเพจ OpenMV:
โปรเจ็กต์ OpenMV เกี่ยวกับการสร้างต้นทุนต่ำ ขยายได้ โมดูล Python ขับเคลื่อนด้วยแมชชีนวิชั่น และมีเป้าหมายที่จะกลายเป็น “Arduino ของ Machine Vision”…Python ทำให้การทำงานกับอัลกอริธึมแมชชีนวิชั่นง่ายขึ้นมาก ตัวอย่างเช่น เมธอด find_blobs() ในโค้ดจะค้นหา color blobs และส่งคืนรายการของอ็อบเจ็กต์ที่มีมูลค่า 8 ค่าซึ่งแสดงถึงแต่ละ Blob สีที่พบ ใน Python ที่วนซ้ำรายการวัตถุที่ส่งคืนโดย find_blobs() และการวาดสี่เหลี่ยมรอบ ๆ blob สีแต่ละอันนั้นทำได้ง่ายๆ ด้วยโค้ดเพียงสองบรรทัด
ดังนั้นแม้ว่า MaiX Bit จะมีคุณสมบัติตัวเร่งเครือข่ายประสาทเฉพาะ แต่บางครั้งอาจง่ายกว่าถ้าใช้อัลกอริธึมแบบฮาร์ดโค้ดของ OpenMV เพื่อทำงานหรือใช้ร่วมกัน
กรณีการใช้งานบางอย่างที่อยู่ในใจของฉันคือ:
1) การตรวจจับสายสำหรับบอทตามสาย
2) การตรวจจับสัญญาณไฟจราจรด้วยการตรวจจับวงกลมและสี
3) การใช้การตรวจจับใบหน้าเพื่อค้นหาใบหน้าสำหรับการจดจำใบหน้า (ด้วย DNN)
ที่เก็บ Github สำหรับบทความนี้
ขั้นตอนที่ 1: Flash Micropython Firmware
ก่อนอื่นเราจะต้องแฟลชเฟิร์มแวร์ micropython ไปที่บอร์ดของเรา ไบนารีที่คอมไพล์ล่วงหน้าจะรวมอยู่ในที่เก็บ github สำหรับบทความนี้ ร่วมกับ kflash.py (ยูทิลิตี้แฟลช) หากคุณต้องการคอมไพล์เฟิร์มแวร์จากซอร์สโค้ด เพียงดาวน์โหลดซอร์สโค้ดจาก https://github.com/sipeed/MaixPy ติดตั้ง toolchain และคอมไพล์ซอร์สโค้ดลงในไฟล์ maixpy.bin สามารถดูคำแนะนำการสร้างโดยละเอียดได้ที่นี่
แฟลชไฟล์ไบนารีด้วย
sudo python3 kflash.py kpu.bin
หลังจากแฟลชสำเร็จแล้ว ให้ทำตามขั้นตอนต่อไป
ขั้นตอนที่ 2: เชื่อมต่อกับ MaiX Bit
ตอนนี้ MaiX Bit ของเราน่าจะสามารถเข้าถึงได้ผ่านการเชื่อมต่อแบบอนุกรม USB กับ baudrate 115200 คุณสามารถใช้ซอฟต์แวร์ที่คุณชื่นชอบสำหรับการสื่อสารแบบอนุกรมหรือเพียงแค่คำสั่ง cat และ echo อะไรก็ได้ที่เหมาะกับความต้องการของคุณ ฉันใช้หน้าจอสำหรับการสื่อสารแบบอนุกรมและพบว่าสะดวกมาก
คำสั่งสำหรับสร้างเซสชันการสื่อสารแบบอนุกรมพร้อมหน้าจอคือ
หน้าจอ sudo /dev/ttyUSB0 115200
โดยที่ /dev/ttyUSB0 คือที่อยู่ของอุปกรณ์ของคุณ
คุณอาจต้องกดปุ่มรีเซ็ตบนไมโครคอนโทรลเลอร์เพื่อดูข้อความทักทายและพรอมต์ของตัวแปลหลาม
ขั้นตอนที่ 3: เรียกใช้การสาธิต
ตอนนี้คุณสามารถเข้าถึงโหมดคัดลอกได้โดยกด Ctrl+E และคัดลอกและวางรหัสสาธิต หากต้องการเรียกใช้ให้กด Ctrl+D ในโหมดคัดลอก
หากคุณไม่ต้องการบันทึกวิดีโอ คุณต้องแสดงความคิดเห็นบรรทัดการบันทึกวิดีโอ มิฉะนั้น รหัสจะมีข้อยกเว้นหากไม่มีการ์ด SD เสียบอยู่
นี่คือคำอธิบายสั้นๆ ของแต่ละเดโม:
ค้นหาแวดวง - ใช้ฟังก์ชัน find_circles จาก OpenMV ต้องการการปรับแต่งเพิ่มเติมสำหรับแอปพลิเคชันเฉพาะของคุณ โดยเฉพาะขีดจำกัด (ควบคุมว่าวงกลมใดที่ตรวจพบจากการแปลง hough ส่งกลับเฉพาะวงกลมที่มีขนาดมากกว่าหรือเท่ากับเกณฑ์) และค่า r_min, r_max
ค้นหาสี่เหลี่ยม - ใช้ฟังก์ชัน find_rects จาก OpenMV คุณสามารถเล่นกับค่าเกณฑ์ได้ แต่ค่าที่ฉันมีในการสาธิตนั้นค่อนข้างดีสำหรับการค้นหาสี่เหลี่ยม
ค้นหาใบหน้า ค้นหาดวงตา - ใช้ฟังก์ชัน find_features กับ Haar Cascades เพื่อตรวจจับดวงตาและใบหน้าหน้าผากในภาพ คุณสามารถเล่นกับเกณฑ์และค่ามาตราส่วนเพื่อการแลกเปลี่ยนความแม่นยำความเร็วที่เหมาะสม
ค้นหาเส้นอนันต์ - ใช้ฟังก์ชัน find_lines เพื่อค้นหาเส้นอนันต์ทั้งหมดในรูปภาพโดยใช้การแปลง Hough
ตรวจจับสี - ใช้ฟังก์ชัน get_statistics เพื่อรับอ็อบเจ็กต์เปอร์เซ็นไทล์ จากนั้นจึงแปลงค่ากลางของ LAB tuple เป็นค่า RGB tuple ฉันเขียนตัวอย่างนี้ด้วยตัวเองและใช้งานได้ดี แต่โปรดทราบว่าผลลัพธ์ของการตรวจจับสีจะได้รับผลกระทบจากสภาพแสงแวดล้อม
คุณสามารถค้นหาการสาธิตที่น่าสนใจอีกมากมายในที่เก็บ OpenMV github! ส่วนใหญ่เข้ากันได้กับ micropython ของ MaiX Bit สิ่งเดียวที่คุณต้องจำไว้คือเพิ่ม sensor.run(1) หลังจากตั้งค่า pixformat และขนาดเฟรม
ทดลองใช้โค้ด OpenMV อย่างมีความสุข หากคุณมีคำถามหรือต้องการแบ่งปันผลลัพธ์ที่น่าสนใจ อย่าลังเลที่จะติดต่อฉันทาง Youtube หรือ LinkedIn ขอโทษนะ ฉันจะไปสร้างหุ่นยนต์!
แนะนำ:
การตรวจจับวัตถุด้วยบอร์ด Sipeed MaiX (Kendryte K210): 6 ขั้นตอน
การตรวจจับวัตถุด้วยบอร์ด Sipeed MaiX (Kendryte K210): เนื่องจากเป็นความต่อเนื่องของบทความก่อนหน้าของฉันเกี่ยวกับการจดจำรูปภาพด้วยบอร์ด Sipeed MaiX ฉันตัดสินใจเขียนบทช่วยสอนอื่นโดยเน้นที่การตรวจจับวัตถุ มีฮาร์ดแวร์ที่น่าสนใจปรากฏขึ้นเมื่อเร็วๆ นี้ด้วยชิป Kendryte K210 รวมถึง S
Micro:bit MU Vision Sensor - การติดตามวัตถุ: 7 ขั้นตอน
Micro:bit MU Vision Sensor - การติดตามวัตถุ: ดังนั้นในคำแนะนำนี้เราจะเริ่มเขียนโปรแกรม Smart Car ที่เราสร้างในคำแนะนำนี้และเราติดตั้งเซ็นเซอร์วิชันซิสเต็ม MU ในคำแนะนำนี้ เราจะตั้งโปรแกรมไมโคร: บิตด้วยการติดตามวัตถุง่ายๆ ดังนั้น th
กระเป๋าเป้สะพายหลัง #1: กล้อง OpenMV: 7 ขั้นตอน
กระเป๋าเป้สะพายหลัง #1: กล้อง OpenMV: กระเป๋าเป้ SPIKE Prime เป็นส่วนขยายสำหรับ LEGO Education SPIKE Prime กล้อง Open MV คือสมองของ Camera Backpack ที่ให้คุณรวมการประมวลผลภาพและความสามารถในการมองเห็นด้วยเครื่องของกล้อง Open MV เข้ากับ LEGO SPIKE Prime พวกเราอัล
Arduino Atmospheric Tape Measure / MS5611 GY63 GY86 การสาธิต: 4 ขั้นตอน (พร้อมรูปภาพ)
Arduino Atmospheric Tape Measure/ MS5611 GY63 GY86 Demonstration: นี่คือบารอมิเตอร์/เครื่องวัดระยะสูงจริงๆ แต่คุณจะเห็นเหตุผลของชื่อด้วยการดูวิดีโอ เซ็นเซอร์ความดัน MS5611 ที่พบในบอร์ดฝ่าวงล้อม Arduino GY63 และ GY86 ให้ประสิทธิภาพที่น่าทึ่ง . ในวันที่สงบ มันจะวัด
การสาธิต 4x4 ของกระดานหมากรุกอิเล็กทรอนิกส์/ ด้วย Arduino Mega + เครื่องอ่าน RFID + เซ็นเซอร์ Hall-Effect: 7 ขั้นตอน
การสาธิต 4x4 ของกระดานหมากรุกอิเล็กทรอนิกส์/ด้วย Arduino Mega + เครื่องอ่าน RFID + เซ็นเซอร์ Hall-effect: สวัสดีผู้ผลิต ฉันชื่อ Tahir Miriyev จบการศึกษาจาก Middle East Technical University ในกรุงอังการา/ ตุรกี ปี 2018 ฉันเรียนเอกคณิตศาสตร์ประยุกต์ แต่ฉันชอบทำสิ่งต่างๆ เสมอ โดยเฉพาะอย่างยิ่งเมื่อต้องอาศัยฝีมือกับอุปกรณ์อิเล็กทรอนิกส์ การออกแบบและการเขียนโปรแกรม