Application C/C++ on Ultra96v2 Part 2
ทำความเข้าใจ code C/C++ และการประยุกต์ใช้งานโปรแกรมและ AI

Figure | Name | Amount |
---|---|---|
![]() | 1 | |
DisplayPort monitor | 1 | |
![]() | Laptop | 1 |
![]() | SDcard | 1 |
![]() | SDcard reader | 1 |
Name | Link |
---|---|
WSL2 | |
Ubuntu 18.04 | |
Vitis-AI 1.4 | |
Ultra96v2 image |
ตัวแรกเป็น Platform ที่สร้างขึ้นมาเพื่อทำงานเฉพาะกับ Xilinx FPGA ซึ่งภายในจะประกอบด้วย environment สำคัญที่ช่วยให้เราทำงานได้ง่ายขึ้น เพื่อให้ AI สามารถนำไปใช้งานบน Xilinx FPGA ได้ โดยจะมี library ที่ช่วยในการทำงานของ AI ในการเพิ่มประสิทธิภาพในการแสดงผลบน FPGA

จากรูปเป็นโครงสร้างการจัดการ Vitis-AI สำหรับคนที่เข้ามาใช้งาน โดยจะแบ้งเป็นแต่ละส่วนดังนี้
- Frameworks เป็นส่วนหลักในการทำการสร้างสรรค์ AI ซึ่งจะมีขั้นตอนที่แตกต่างกันตามแต่ละ Framework ซึ่งจะมีข้อดี ข้อเสียแตกต่างกัน แต่โดยรวมแล้ว มันคือ Framework ที่ช่วยในการผลิด AI ออกมาใช้งานนั่นเอง
- Vitis-AI model เป็นส่วนที่ให้ผู้ใช้ได้ทดลองใช้งาน หรือสร้าง AI โดยจะมีส่วนประกอบดังนี้
- Model Zoo ส่วนที่เตรียมไว้สำหรับพร้อมใช้งานบน FPGA ในการ Programming หรือการใช้งานกับ AI Application ที่มีอยู่
- Custom models ส่วนที่เตรียมไว้สำหรับการตัดแต่ง และจัดการ AI เพื่อให้ตรงกับความต้องการของผู้ใช้
- Vitis AI Development kit เป็นในส่วน SDK ที่เก็บ Library ในการจัดการ AI ต่างๆที่เราจะได้ทดลองกันในบทเรียนถัดๆ ไป
- Overlay หรือส่วนที่นำไปใช้งานกับ DPU หรือตัวประมวลผล AI ที่เราได้เรียนกันในคาบที่แล้วนั่นเอง
Point pillars คือ ขั้นตอนในการทำงานของ AI จากคาบที่แล้วที่ตรวจจับวัตถุ 3D ผ่าน Sensor ที่ชื่อว่า Lidar โดยการทำงานของ sensor ตัวนี้จะใช้แสงในการส่งข้อมูลเพื่อตรวจสอบในจุดที่สะท้อนเราจึงเห็นเป็นภาพจุดๆที่เป็นวัตถุก้อนๆนั่นเอง โดยที่จุดที่ถูกส่งมาเป็นจุดบนโลก 3D นั้นถูกเรียกว่า "Point clouds" เมื่อเราตีกรอบวัตถุเพื่อบอกจุดต่างๆที่อยู่บนภาพ ว่าจุดรอบๆนั้นจะถูกเรียกว่า "Stack of pillars" และการบอกว่าจุดๆนั้นที่เราตีกรอบคืออะไร อยู่ตรงไหน ที่จะนำไปใช้สอน AI จะถูกเรียกว่า "Learned Features" โดยเมื่อเราได้กลุ่มของจุดและชื่อที่ตีกรอบไว้ชัดเจนแล้วจึงจะได้ตัวอย่างภาพสมมติของวัตถุที่อธิบายด้วยจุดว่า "Psuedo image" ที่จะใช้ในการฝึกสอน AI ด้วยกระบวนการ 2D convolution ในการฝึกสอน AI

Implementation of the PointPillars Network for 3D Object Detection in Reprogrammable Heterogeneous Devices Using FINN | SpringerLink

PointPillars object detection
โดยขั้นตอนในการทำงานอย่างที่อธิบายเมื่อเราได้ Pillars หรือกลุ่มก้อนจุดที่เราต้องการบอกว่าส่วนนี้คืออะไรแล้วนำไปทำการฝึกสอนด้วย 2D Convolution layers แล้วเราจะนำไปทำสิ่งที่เรียกว่าการทำแผนที่ ในการบอกถึงถนนและรถที่เราเห็นเป็นแผนที่ดำๆมีจุดเยอะๆแต่พอเดาได้ว่าส่วนนี้คือรถ ต้นไม้ หรือถนน ซึ่งพอเรานำแผนที่พวกนี้ไปรวมเข้ากับการประมวลผล AI แล้วเราก็จะบอกได้ว่ากรอบของจุดไหนคือ รถ ต้นไม้ หรือคนโดยที่เราไม่ต้องมานั่งเพ่งดูเอง เจ้า AI จะคอยเป็นตาคอยดูแทนเรานั่นเอง ซึ่งมันถูกนำไปใช้ในการช่วยเหลือในระบบ Automotive driving บน EV car ที่เราเห็นกันในปัจจุบันนั่นเอง

การทำงานของ Point pillars และ Object detection
โดยที่ถ้านิสิตอยากศึกษาเพิ่มเติมกับเรื่องนี้สามารถศึกษาได้ที่