สารบัญ:

Sipeed MaiX Bit การสาธิต OpenMV - Computer Vision: 3 ขั้นตอน
Sipeed MaiX Bit การสาธิต OpenMV - Computer Vision: 3 ขั้นตอน

วีดีโอ: Sipeed MaiX Bit การสาธิต OpenMV - Computer Vision: 3 ขั้นตอน

วีดีโอ: Sipeed MaiX Bit การสาธิต OpenMV - Computer Vision: 3 ขั้นตอน
วีดีโอ: หาค่า threshold ของบอร์ด Maix bit 2024, กรกฎาคม
Anonim
Image
Image

นี่เป็นบทความที่สองในซีรีส์เกี่ยวกับ 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

เชื่อมต่อกับ MaiX Bit
เชื่อมต่อกับ MaiX Bit

ก่อนอื่นเราจะต้องแฟลชเฟิร์มแวร์ 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 ขอโทษนะ ฉันจะไปสร้างหุ่นยนต์!

แนะนำ: