ก้าวเข้าสู่โลกของ AI ด้วย Jetson Nano

Phairoj Tirasukvongsa
Super AI Engineer
Published in
3 min readFeb 1, 2021

โดย 22p25c0239 — ไพโรจน์ ติรสุขวงศา

สวัสดีครับ เนื่องจากนี่เป็นบทความแรกของผม ถ้ามีอะไรขาดตกบกพร่องไป ผมก็ขออภัยมา ณ ที่นี้ด้วยนะครับ

ขอเริ่มเรื่องกันเลยครับ ยุคนี้เป็นยุคที่ ใคร ๆ ก็พูดถึง AI สิ่งของไหนหรือโปรแกรมอะไรที่ได้ชื่อว่ามี AI เข้ามาร่วมด้วย มักจะขายดิบขายดี อัพราคาได้

ผมก็เป็นคนหนึ่ง ที่อยากจะเข้าสู่โลกของ AI เนื่องจากพอจะมีความรู้ด้าน IOT อยู่บ้าง เคยเล่นพวก Arduino, ESP8266/ESP32 ตลอดจนถึง RPi3B, RPi4B ก็อยากจะเอาอุปกรณ์เหล่านี้มาเล่นเกี่ยวกับ AI บ้าง มาต่อกล้อง i.e. PIXY, CSI-Camera, webcam, … แล้วทำ object detection บ้าง มันก็พอทำได้หล่ะ แต่ถ้าเราอยากจะทำโมเดลเอง??? อยากจะสอนให้อุปกรณ์เหล่านี้มันฉลาดขึ้น แก้โจทย์เฉพาะของเราได้ มันจะไหวมั๊ยนะ?? ถ้าเป็น Rpi4B ก็พอจะไหวอยู่ แต่ก็ต้องมีอุปกรณ์เสริมเข้ามาช่วยด้วย เช่นต้องมี Intel Movidius Neural Network Compute Stick Deep Neural Network ดังรูป แต่ถ้าเราชื้อ 2 อย่าง ราคามันก็ปาไป 5 พันบาทแล้วเนี่ย ยังไม่รวมอย่างอื่นที่จำเป็นอีก อืม… คิดหนัก!!!!

เนื่องจากจะใช้เพื่อการศึกษาหรืออาจใช้ต่อยอดได้ถ้าจำเป็น ประกอบกับเงินเดือนอันน้อยนิด พออยู่ได้เป็นเดือน ๆ ก็เลยต้องมองหาโซลูชั่นอื่น และแล้วก็เจอ มันก็คือ

บอร์ด Jetson Nano ซึ่งเป็น SBC — Single Board Computer จากค่าย NVIDIA เจ้าของค่ายที่มี GPU อันทรงพลัง ที่ระดับเซียน AI เค้าใช้เทรนโมเดลกัน แหม!! ก็มีชื่อ Nvidia ก็เป็นประกันอยู่แล้ว ผมก็เลยสั่งซื้อเข้ามาทดสอบซะเลยสัก 1 บอร์ด (ปัจจุบัน ผมมี 3 บอร์ดแล้ว อันล่าสุดแพงสุดสำหรับผมก็ Jetson Xavier NX ครับ แต่ยังไม่มีเวลาและไม่ค่อยได้ใช้ เพราะติดโครงการ SuperAI อยู่)

จริง ๆ แล้ว ประวัติความเป็นมาของ Jetson Nano มันเริ่มประกาศตัวตั้งแต่ไตรมาส 1 ของปี 2019 แล้ว โดยเวอร์ชั่นแรกเรียกว่า Jetson Nano A02 ที่มีแรม 4GB ซึ่งจะแตกต่างกันกับ B01 รุ่นปัจจุบันนิดหน่อยคือ A02 จะต่อกล้อง CSI ได้ตัวเดียว (กล้องรุ่นเดียวกันที่ใช้กับ PRi) แต่ Nano B01 สามารถต่อกล้องได้ 2 ตัว อื้อ!!! สุดยอดเลยถ้าใครคิดจะทำ Stereo Camera จะมีสักกี่บอร์ดที่ทำ feature แบบนี้ได้ ต้องยอมรับว่า การตลาดของ NVIDIA ดีมาก สร้างบอร์ดขึ้นมาเพื่อ Developer โดยเฉพาะ ไม่ว่าจะสำหรับด้าน IOT Hardware หรือ AI Software รับได้หมด (ปัจจุบัน มีบอร์ด Jetson Nano อีกรุ่น มีแรม 2 GB ที่ราคา 59USD — ถ้าไม่จำเป็นต้องเทรนโมเดล แค่ใช้เป็นตัว IOT Client และรันพวก TensorRT engine ผมว่าก็น่าสนใจนะครับ งานนี้ RPi มีหนาวนะผมว่า โดยเฉพาะเหมาะสำหรับคนที่เบี้ยน้อยและเริ่มต้นอย่างยิ่ง ถ้าไม่คิดว่าจะต้องใช้ถึงขั้นเทรนโมเดลเอง ผมว่านี่แหละเป็นทางเลือกที่ดีเลย ประหยัดสุด ๆ สำหรับ IOT + AI)

Jetson Nano A02 — มี 1 CSI Camera port
Jetson Nano B02 — มี 2 CSI Camera ports
Jetson Nano รุ่น แรม 2GB — Interface แตกต่างจาก A02 กับ B01 เพราะเป็นรุ่นประหยัด

ขอย้อนกลับมาที่ Jetson Nano อีกที ตามที่ NVIDIA โปรโมทไว้ มันเป็นบอร์ดที่รองรับ AI frameworks ที่มีชื่อเสียงหลาย ๆ ตัวอันได้แก่ TensorFlow, PyTorch, CAFFÉ and MXNet ได้ยินแล้วก็ อื้อ!!! มันคือสิ่งที่ตอบโจทย์เราดีที่สุด ในราคา 99USD ถ้ารวม Wifi Card + SDCard + Alu-Case + PWM Fan รวมทั้งหมดก็แค่ 4 พันกว่าบาท ไม่ถึง 5 พัน ได้ครบเซต สุดยอดมั๊ยครับ ไม่มีคงไม่ได้แล้วครับ….

สำหรับคนที่คิดจะเอาบอร์ด Jetson Nano มาใช้ควบคุมอุปกรณ์ IOT & Robot ต่าง ๆ ที่เคยใช้กับ Arduino หรือ RPi เราก็สามารถต่อเซนเซอร์อื่น ๆ ได้เหมือนกัน เช่นต่อกับ IMU, LIDAR, Servo Driver, Kinect, CSI Camera-IMX-219, … etc. อะไรที่คุณเคยใช้กับ RPi ได้ ผมว่าเอามาใช้กับ Nano ได้หมด (ผมไม่เคยใช้ทุกเซนเซอร์ แต่ที่ผมกล่าวมาเบื้องต้น ผมทดสอบมาแล้วว่าใช้ได้ และใช้งานได้ดีกว่าบน RPi อีกนะ อันนี้ถ้าไม่เชื่อ ต้องลองทดสอบดูเอง แล้วได้ผลอย่างไร ก็เอามาแชร์กันบ้างนะครับ ช่วย ๆ กันแชร์ความรู้)

พอดีผมกำลังทำโปรเจคเกี่ยวกับ AMR — Autonomous Mobile Robot บน ROS อยู่ ผมก็ใช้ Nano นี่แหละทำ ลองดูภาพตัวอย่างก่อนแล้วกัน มันสุดยอดมาก เอาไว้จะมาเล่ารายละเอียดให้ฟังในบทความหน้าแล้วกัน

ขอกลับมาพูดเรื่อง AI บ้างดีกว่า ส่วนใหญ่คนที่จะเริ่ม AI กับพวก IOT ก็ต้องเริ่มจาก Object Detection, Object Classification เรามาลองดูว่า Nano ทำอะไรได้บ้าง

จากประสบการณ์ผม ถ้าใช้ Tiny Yolo3 บน Nano ก็ถือว่าทำ Frame rate ได้ดีทีเดียวคือ มากกว่า 20 fps อีก ลองดูตารางเปรียบเทียบที่เค้าทำไว้

คราวนี้ลองมาดูโปรแกรมที่เขียนบน Nano กัน ใช้แค่ 10 บรรทัด ก็ทำ Object Detection ได้แล้ว

ตัวอย่างโปรแกรม Object Detection บน Jetson

ผลก็คือ ดังรูปด้านล่าง

เจ๋งใช่มั๊ย!!! นี่แหละโลกของ AI สำหรับมือใหม่อย่างผม จริง ๆ แล้วยังมีเรื่องที่อยากจะเล่าให้ฟังอีกเยอะเลย ผมจะค่อย ๆ ทยอยส่งมาให้อ่านก็แล้วกัน ถ้ามีข้อเสนอแนะหรือคำติชมใด ๆ สามารถติดต่อผมได้ที่ tphairoj@hotmail.com นะครับ ขอบคุณครับ 😉

แหล่งอ้างอิง:

· Jetson Nano: Deep Learning Inference Benchmarks — https://developer.nvidia.com/embedded/jetson-nano-dl-inference-benchmarks

· Real-Time Object Detection in 10 lines of Python Code on Jetson Nano — https://www.youtube.com/watch?v=bcM5AQSAzUY&t=1243s

· Jetson-Nano — https://elinux.org/Jetson_Nano

--

--