Application C/C++ on Ultra96v2 Part 2
ทำความเข้าใจ code C/C++ และการประยุกต์ใช้งานโปรแกรมและ AI
Last updated
Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University
ทำความเข้าใจ code C/C++ และการประยุกต์ใช้งานโปรแกรมและ AI
Last updated
1
DisplayPort monitor
1
Laptop
1
SDcard
1
SDcard reader
1
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
โดยขั้นตอนในการทำงานอย่างที่อธิบายเมื่อเราได้ Pillars หรือกลุ่มก้อนจุดที่เราต้องการบอกว่าส่วนนี้คืออะไรแล้วนำไปทำการฝึกสอนด้วย 2D Convolution layers แล้วเราจะนำไปทำสิ่งที่เรียกว่าการทำแผนที่ ในการบอกถึงถนนและรถที่เราเห็นเป็นแผนที่ดำๆมีจุดเยอะๆแต่พอเดาได้ว่าส่วนนี้คือรถ ต้นไม้ หรือถนน ซึ่งพอเรานำแผนที่พวกนี้ไปรวมเข้ากับการประมวลผล AI แล้วเราก็จะบอกได้ว่ากรอบของจุดไหนคือ รถ ต้นไม้ หรือคนโดยที่เราไม่ต้องมานั่งเพ่งดูเอง เจ้า AI จะคอยเป็นตาคอยดูแทนเรานั่นเอง ซึ่งมันถูกนำไปใช้ในการช่วยเหลือในระบบ Automotive driving บน EV car ที่เราเห็นกันในปัจจุบันนั่นเอง
โดยที่ถ้านิสิตอยากศึกษาเพิ่มเติมกับเรื่องนี้สามารถศึกษาได้ที่