ทำ Face Detection ง่าย ๆ ด้วย Sipeed Maix board

Apirak Sang-ngenchai
Chiang Mai Maker Club
3 min readOct 13, 2019

Face Detection with sipeed maix board

1st RV64 AI board for Edge Computing

จั่วหัวมาซะแรง แต่ของเค้าก็แรงจริง ๆ กับบอร์ดที่ใช้สถาปัตยกรรมแบบ RISC-V 64 bit IMAFDC แบบ dual-core โดยใช้ขุมพลังของ Kendryte K210 ซึ่งมี KPU (หน่วยประมวลผล neural network) ภายในขนาด 64 KPU ( 576bit) ที่ 230GOPs ความถี่ 400MHz และ SRAM ความเร็วสูงสุด 8MB ด้วยความสามารถหลายประการไม่ว่าจะเป็นขนาดของบอร์ดที่เล็ก กินพลังงานเพียง 0.5W รองรับการใช้งาน AI (AIoT)โดยสนนราคาเพียง $12 (300+ บาท ราคาเฉพาะชิปนะแจ๊ะ) บอกได้คำเดียวว่า “โอ้ ม่าย รอด”

https://th.mouser.com/new/seeed-studio/seeed-studio-m1w-dock-suit-dev-board/

โดยในบทความนี้ ผมจะขอเลือกใช้บอร์ด Sipeed M1w dock suit ที่มาพร้อมกับขอแสดงผลแบบ LCD 2.4 inch ( 320x240) และกล้อง OV2640 ที่คามละเอียด 2Mpixel โดยมีขาใช้งาน (GPIO) ทั้งหมด 48 ขาใช้งาน สามารถเชื่อมต่อกับไวไฟได้ผ่าน ESP8285 ทั้งนี้ตัวบอร์ด ยังรองรับการใช้งาน AI ต่าง ๆ ไม่ว่าจะเป็น Face Detection, Object Recognition และการทำ Neural Network

https://www.seeedstudio.com/Sipeed-M1-dock-suit-M1-dock-2-4-inch-LCD-OV2640-K210-Dev-Board-1st-RV64-AI-board-for-Edge-Computing.html

ตัดมาช่วงโฆษณา อยากได้แบบพร้อมใช้อะ ซื้อที่ไหนได้บ้าง
- Thaieasyelec
- Gravitechthai
- SeeedStudio

เอาละ ในเมื่อได้บอร์ดกันมาแล้ว ไม่พูดพร่ำทำเพลง มาเริ่มเล่นเจ้า Sipeed M1w dock กัน โดยเจ้าบอร์ดนี้สามารถใช้ Arduino IDE เขียนได้ด้วยนะเออ แต่ในบทความนี้จะขอไม่พูดถึง เราจะไปใช้ micropython กัน โดยลงโปรแกรมดังต่อไปนี้

  1. MaixPy IDE for windows
  2. kFlash GUI
  3. Firmware
  4. Face Detection model
  5. Example Code

เริ่มต้นอัพเดทโปรแกรม

1) เปิดโปรแกรม kFlash GUI ทำการเลือก Board และ Port ที่เชื่อมต่อให้เรียบร้อย จากนั้น เลือกไฟล์ Firmware (บทความนี้จะใช้ maixpy_v0.3.2_full.bin) และไฟล์ Face Detection model (face.kmodel) โดยเลือกที่ตำแหน่งของ Flash 0x300000

2) หน้าแรกของบอร์ด จะขึ้นประมาณนี้

3) เปิดโปรแกรม MaixPy IDE (แนะนำเวอร์ชั่น 0.2.3)

4) ดาวน์โหลด Example Code จากนั้นนำไปวางใน Folder MaixPyIDE ใน Documents

5) ในแถบเครื่องมือ IDE จะปรากฏโปรแกรมตัวอย่าง ให้เลือก machine_vision → demo_find_face.py

6) แสดงหน้าตาโปรแกรม ทำการเชื่อมต่อกับบอร์ด โดยกดที่รูปโซ่มุมล่างซ้าย

7) เมื่อเชื่อมต่อได้แล้ว สีของรูปโซ่จะเปลี่ยนเป็นสีแดง และจะปรากฏปุ่มเล่น สีเขียว เพื่อกดอัพโหลดโปรแกรมไปยังบอร์ด

8) เมื่อกดปุ่มเล่น โปรแกรมจะทำการรันบนบอร์ด M1 dock ผลลัพท์ที่ได้ก็คือ Face Detection นั้นเอง

9) เมื่อเปิด Serial Terminal จะปรากฏตำแหน่งที่ return มาจากไลบรารี่

10) จากข้อมูลที่ return ออกมา เราจะได้ตำแหน่งของใบหน้าที่ตรวจจับเจอ ดังนั้น เราสามารถเขียนโปรแกรมเพื่อบอร์ดสามารถทำงานเมื่อเจอใบหน้า หรือใบหน้าอยู่ในตำแหน่งใด ๆ ให้หมุนหุ่นยนต์ติดตามใบหน้าได้นั่นเอง

สรุป

หลังจากลองเล่นเจ้า Sipeed M1w dock มาได้ซักระยะ จะเห็นได้ว่าบอร์ดมีขนาดเล็ก และสามารถนำไปใช้ทำงานในส่วนของ AI หรือ AIoT ซึ่งด้วยความจุของ Flash ภายในอาจจะไม่สามารถเขียน AI ที่ใช้ Hidden node เยอะ ๆ ก็ตาม แต่เดี๋ยวก่อน ตัวบอร์ดเองยังสามารถเสียบ SD card Class 10 เพิ่มเข้าไปได้อีกด้วย นั่นหมายความว่า เราสามารถนำ model ที่ Train จาก IDE เรียบร้อยแล้ว เอาไปใส่ใน SD card ได้ด้วยนั่นเอง

ส่วนตัวผมยังไม่ค่อยเก่งเรื่อง AI มากนั้น อาจจะอธิบายได้ไม่กระจ่าง ต้องขออภัยมา ณ ที่นี้ด้วยครับ หรือผิดพลาดประการใด สามารถติดต่อ ชี้แนะ เพื่อทำการแก้ไขได้เลยครับ หลังจากนั้น จะลองไปเล่นพวก Example และการ Train model ต่าง ๆ มาให้เพื่อน ๆ ได้ลองเล่นกันอีกในภายภาคหน้า ส่วนวันนี้ ขอตัวก่อน Happy Coding ครับ

--

--

Apirak Sang-ngenchai
Chiang Mai Maker Club

Sometime, We need to take a step away from certain things to reclaim your own self .