วิธีสร้างและปรับใช้งานการตรวจจับการมองเห็นที่ดัดแปลงได้ระดับ Edge อย่างรวดเร็วด้วยแพลตฟอร์มที่พร้อมสำหรับการผลิต
Contributed By DigiKey's North American Editors
2022-02-03
การประยุกต์ใช้ปัญญาประดิษฐ์ (AI) กับกล้องอัจฉริยะระดับ Edge ได้รับการยอมรับอย่างรวดเร็วจากการใช้งานตรวจจับการมองเห็นแบบฝังตัวที่กำลังเติบโต เช่น แมชชีนวิชัน การรักษาความปลอดภัย การค้าปลีก และวิทยาการหุ่นยนต์ แม้ว่าอัลกอริธึมแมชชีนเลิร์นนิ่ง (ML) ที่สามารถเข้าถึงได้อย่างรวดเร็วได้ช่วยกระตุ้นให้เกิดความสนใจใน AI แต่นักพัฒนาก็ยังคงประสบปัญหาในการปฏิบัติตามกำหนดการของโครงการที่กระชั้นชิด และให้การใช้งานแบบตรวจจับการมองเห็นระดับ Edge ที่มีประสิทธิภาพสูงและใช้พลังงานต่ำ
มีเรื่องที่ซับซ้อนยิ่งขึ้น กล่าวคือแม้แต่โซลูชันที่เพิ่งปรับใช้ใหม่ก็อาจกลายเป็นตัวเลือกที่ไม่เหมาะสมได้อย่างรวดเร็ว เนื่องจากลักษณะความต้องการการใช้งานที่เปลี่ยนแปลงอย่างรวดเร็วและการปรับปรุงอัลกอริธึมที่พัฒนาอย่างต่อเนื่อง
บทความนี้จะแนะนำโซลูชัน System-on-module (SOM) ที่ยืดหยุ่นจาก Xilinx ที่นักพัฒนาสามารถนำมาใช้กับโซลูชันกล้องอัจฉริยะได้อย่างรวดเร็วสำหรับการตรวจจับการมองเห็นระดับ Edge ซึ่งแสดงให้เห็นว่านักพัฒนาสามารถปรับเปลี่ยนโซลูชันเหล่านี้ได้ง่ายขึ้นเพื่อตอบสนองความต้องการที่เปลี่ยนแปลงไปโดยไม่กระทบต่อข้อกำหนดหลักด้านเวลาแฝงและพลังงาน
การนำการประยุกต์ใช้การตรวจจับการมองเห็นมาใช้งานอย่างรวดเร็ว
จาก Zynq UltraScale+ multiprocessor system-on-chip (MPSoC) ที่สร้างขึ้นมาเฉพาะ Kria K26 SOM ของ Xilinx ให้ระบบการประมวลผลแบบฝังตัวที่ทนทานซึ่งประกอบด้วยหน่วยประมวลผลแอปพลิเคชัน (APU) Arm Cortex-A53 แบบ Quad-core 64 บิต, หน่วยประมวลผลแบบเรียลไทม์ Arm® Cortex®-R5F แบบ Dual-core 32 บิต และหน่วยประมวลผลกราฟิก (GPU) สามมิติ Arm Mali-400MP2 โดยที่ SOM รวม MPSoC เข้ากับหน่วยความจำ Double Data Rate 4 (DDR4) 64 บิต สี่กิกะไบต์ และตัวควบคุมหน่วยความจำที่เกี่ยวข้อง รวมทั้งอุปกรณ์หน่วยความจำแบบไม่ลบเลือน (NVM) แบบมัลติเพิล รวมถึงหน่วยความจำ Quad serial peripheral interface (QSPI) 512 เมกะบิต (Mbits), หน่วยความจำฝังตัว Multi-Media Card (eMMC) ขนาด 16 กิกะไบต์ (Gbytes) และ ของหน่วยความจำอ่านอย่างเดียวชนิดโปรแกรมและลบได้ด้วยกระแสไฟฟ้า (EEPROM) 64 กิโลบิต (Kbits) (รูปที่ 1)
รูปที่ 1: Xilinx Kria K26 SOM รวมความสามารถในการประมวลผลที่ครอบคลุมของ Zynq UltraScale+ MPSoC ที่สร้างขึ้นเฉพาะกับโมดูล Trusted Platform Module 2.0 (TPM2) และหน่วยความจำไม่ลบเลือนแบบไดนามิก (แหล่งรูปภาพ: Xilinx)
Xilinx เสริมการประมวลผลและหน่วยความจำด้วยระบบลอจิกโปรแกรมได้ที่ครอบคลุมซึ่งประกอบด้วยเซลล์ลอจิกระบบ 256K, ฟลิปฟล็อปลอจิกที่กำหนดค่าได้ (CLB) 234K, ตารางค้นหา (LUT) CLB 117K และหน่วยความจำรวมทั้งหมด 26.6 เมกะบิต (Mbits) สำหรับการกำหนดค่าต่าง ๆ ของหน่วยความจำ Distributed Random-access Memory (RAM), block RAM และ ultraRAM blocks นอกจากนี้ระบบลอจิกแบบโปรแกรมได้ยังรวมการประมวลผลสัญญาณดิจิทัล (DSP) 1,248 ชิ้น ตัวรับส่งสัญญาณ 4 ตัว และตัวแปลงสัญญาณวิดีโอสำหรับ H.264 และ H.265 ที่สามารถรองรับการเข้ารหัส/ถอดรหัสพร้อมกันสูงสุด 32 สตรีม สูงสุด 3840 x 2160 พิกเซลที่ 60 เฟรมต่อวินาที (fps) คอนเน็กเตอร์ 240 พินสองตัวของ SOM ช่วยให้สามารถเข้าถึงบล็อคการทำงานและอุปกรณ์ต่อพ่วงผ่านอินพุต/เอาต์พุต (I/O) ที่ผู้ใช้กำหนดค่าได้
การผสมผสานระหว่างคอร์ของโปรเซสเซอร์ หน่วยความจำ และลอจิกที่ตั้งโปรแกรมได้นี้ให้ระดับความยืดหยุ่นและประสิทธิภาพที่ไม่เหมือนใคร ซึ่งเอาชนะข้อเสียหลักใน GPU ที่ใช้สำหรับการประมวลผลอัลกอริธึม ML ความเร็วสูง นักพัฒนาซอฟต์แวร์สามารถกำหนดค่าเส้นทางข้อมูล K26 SOM ใหม่ได้ ซึ่งแตกต่างจากเส้นทางข้อมูลแบบคงที่ใน GPU เพื่อเพิ่มประสิทธิภาพปริมาณงานและลดเวลาแฝง นอกจากนี้สถาปัตยกรรมของ K26 SOM ยังเหมาะอย่างยิ่งสำหรับเครือข่ายแบบเบาบางซึ่งเป็นหัวใจสำคัญของการใช้งาน ML ที่มีจำนวนเพิ่มขึ้นเรื่อย ๆ
ความสามารถในการตั้งโปรแกรมของ K26 SOM ยังแก้ปัญหาคอขวดในหน่วยความจำที่เพิ่มการใช้พลังงานและจำกัดประสิทธิภาพในการใช้งานที่ใช้หน่วยความจำมาก เช่น ML ที่สร้างขึ้นด้วยสถาปัตยกรรมทั่วไปโดยใช้ GPU โปรเซสเซอร์มัลติคอร์ หรือแม้แต่ SoC ขั้นสูง ในการใช้งานใด ๆ ที่ออกแบบให้ใช้กับอุปกรณ์ทั่วไปเหล่านี้ โดยทั่วไปหน่วยความจำภายนอกใช้พลังงานประมาณ 40% ของการใช้พลังงานของระบบ ในขณะที่คอร์ของโปรเซสเซอร์และหน่วยความจำภายในโดยปกติใช้พลังงานประมาณ 30% ในทางกลับกันนักพัฒนาสามารถใช้ประโยชน์จากบล็อกหน่วยความจำภายในของ K26 SOM และความสามารถในการกำหนดค่าใหม่เพื่อใช้การออกแบบที่ต้องการการเข้าถึงหน่วยความจำภายนอกเพียงเล็กน้อยหรือไม่ต้องการเลย ผลลัพธ์ที่ได้คือประสิทธิภาพที่เพิ่มขึ้นและสิ้นเปลืองพลังงานน้อยกว่าอุปกรณ์แบบดั้งเดิม (รูปที่ 2)
รูปที่ 2: ในขณะที่ระบบที่ใช้ CPU แบบฝังและ SoC ทั่วไปต้องการการเข้าถึงหน่วยความจำที่สิ้นเปลืองพลังงานจำนวนมากเพื่อเรียกใช้แอปพลิเคชัน ระบบที่ใช้ Xilinx Kria ใช้ไปป์ไลน์ตรวจจับการมองเห็นที่มีประสิทธิภาพซึ่งสามารถออกแบบเพื่อหลีกเลี่ยงการเข้าถึง DDR ได้ (แหล่งรูปภาพ: Xilinx)
นอกเหนือจากประสิทธิภาพสูง การใช้พลังงานต่ำ และการกำหนดค่าใหม่ได้อย่างกว้างขวางแล้ว K26 SOM ยังช่วยให้มั่นใจในความปลอดภัยในการออกแบบกล้องอัจฉริยะสำหรับการใช้งานที่มีความละเอียดอ่อน นอกจากอุปกรณ์รักษาความปลอดภัย TPM ในตัวของ SOM แล้ว MPSoC ยังผสานรวมหน่วยรักษาความปลอดภัยการกำหนดค่าเฉพาะ (CSU) ที่รองรับการบู๊ตอย่างปลอดภัย การตรวจสอบการงัดแงะ การจัดเก็บข้อมูลคีย์ที่ปลอดภัย และการใช้ฮาร์ดแวร์ในการเร่งการเข้ารหัส (Cryptography) CSU รวมกับหน่วยความจำบนชิปภายใน (OCM) และที่เก็บข้อมูลคีย์ที่ปลอดภัยให้ปลอดภัยพื้นฐานสำหรับการรับรองอุปกรณ์ให้ความปลอดภัย (Root of Trust) ของฮาร์ดแวร์ที่เชื่อถือได้สำหรับการใช้การบูตที่ปลอดภัยและแพลตฟอร์มที่เชื่อถือได้สำหรับการดำเนินการ
ความสามารถมากมายที่มีใน K26 SOM นั้นเป็นรากฐานอันทรงพลังสำหรับความต้องการในการนำการใช้งานตรวจจับการมองเห็นระดับ Edge ไปใช้งาน อย่างไรก็ตามการใช้งานแต่ละแบบก็มีข้อกำหนดคุณสมบัติและฟังก์ชันการทำงานที่เกี่ยวข้องกับชุดอุปกรณ์ต่อพ่วงและส่วนประกอบอื่น ๆ โดยเฉพาะ เพื่อให้การใช้งานโซลูชันเฉพาะการใช้งานง่ายขึ้น K26 SOM ได้รับการออกแบบให้เสียบเข้ากับแคร์รีเออร์บอร์ด (Carrier board) ที่เชื่อมต่อกับอุปกรณ์ต่อพ่วงเพิ่มเติม Xilinx สาธิตวิธีการนี้ด้วยชุดเริ่มต้น Vision AI KV260 ที่มี Kria K26
ชุดเริ่มต้นช่วยลดความยุ่งยากในการพัฒนาการใช้งานตรวจจับการมองเห็น
ชุดอุปกรณ์เริ่มต้น Xilinx KV260 Vision AI Starter Kit ประกอบด้วย K26 SOM ที่เสียบเข้ากับแคร์รีเออร์บอร์ดที่ใช้ในงานตรวจจับการมองเห็นเป็นหลักนั้นเป็นแพลตฟอร์มที่พร้อมใช้งานทันทีที่ออกแบบมาโดยเฉพาะสำหรับการประเมินแบบทันทีและการพัฒนาการใช้งานตรวจจับการมองเห็นอัจฉริยะอย่างรวดเร็ว แม้ว่า K26 SOM จะให้ความสามารถในการประมวลผลที่จำเป็น แคร์รีเออร์บอร์ดของชุดอุปกรณ์เริ่มต้นจะมีการจัดการพลังงาน รวมถึงการเปิดเครื่องและลำดับการรีเซ็ต ตลอดจนตัวเลือกอินเทอร์เฟซและคอนเน็กเตอร์สำหรับกล้อง จอแสดงผล และการ์ด microSD (รูปที่ 3)
รูปที่ 3: Xilinx KV260 Vision AI Starter Kit ให้โซลูชันการตรวจจับการมองเห็นอัจฉริยะที่สมบูรณ์แบบโดยใช้ K26 SOM ที่เสียบเข้ากับแคร์รีเออร์บอร์ดที่ใช้ในงานตรวจจับการมองเห็นเป็นหลัก (แหล่งรูปภาพ: Xilinx)
นอกจากอินเทอร์เฟซที่หลากหลายแล้ว แคร์รีเออร์บอร์ดยังรองรับกล้องหลายตัวผ่านตัวเชื่อมต่อ Raspberry Pi และตัวเชื่อมต่อระบบการเข้าถึงรูปภาพ (IAS) หนึ่งคู่ ซึ่งหนึ่งในนั้นเชื่อมต่อไปยังตัวเชื่อมต่อเฉพาะโปรเซสเซอร์เซ็นเซอร์ภาพ (ISP) AP1302 13 ล้านพิกเซล (MP) ของ Onsemi ที่สามารถจัดการฟังก์ชั่นการประมวลผลภาพทั้งหมด
เพื่อเพิ่มความเร็วในการใช้งานการตรวจจับการมองเห็น Xilinx รองรับแพลตฟอร์มฮาร์ดแวร์ตรวจจับการมองเห็นที่กำหนดไว้ล่วงหน้านี้ด้วยชุดแอพพลิเคชั่นตรวจจับการมองเห็นที่สร้างไว้ล่วงหน้าพร้อมกับชุดเครื่องมือซอฟต์แวร์และไลบรารีที่ครอบคลุมสำหรับการพัฒนาแบบกำหนดเอง
แอปพลิเคชั่นแบบเร่งด่วนให้โซลูชั่นแบบทันที
สำหรับการประเมินทันทีและการพัฒนาแอพพลิเคชั่นการมองเห็นแบบเร่งด่วนอย่างรวดเร็ว Xilinx ได้นำเสนอแอปพลิเคชั่นที่สร้างไว้ล่วงหน้าหลายตัวที่แสดงให้เห็นถึงการดำเนินการในการใช้งานยอดนิยมหลายกรณี รวมถึงการตรวจจับใบหน้าด้วยกล้องอัจฉริยะโดยใช้ลอจิกที่ตั้งโปรแกรมได้ การระบุและติดตามคนเดินถนน การตรวจจับข้อบกพร่อง และการจับคู่คีย์เวิร์ดโดยใช้ ระบบประมวลผลของ MPSoC แอปพลิเคชันใน Xilinx Kria App Store แต่ละแอปพลิเคชันมีโซลูชันที่สมบูรณ์สำหรับแต่ละการใช้งานโดยเฉพาะพร้อมด้วยเครื่องมือและทรัพยากร ตัวอย่างเช่น แอปพลิเคชันการตรวจจับใบหน้าของกล้องอัจฉริยะใช้แครี่เออร์บอร์ด KV260 ที่มีเซ็นเซอร์รับภาพ AR1335 ในตัวและ AP1302 ISP เพื่อรับภาพและส่งเอาต์พุต HDMI หรือ DisplayPort (DP) ของการ์ดเพื่อแสดงผลลัพธ์ สำหรับการประมวลผลการตรวจจับใบหน้า แอปพลิเคชันจะกำหนดค่า K26 SOM เพื่อให้มีตัวเร่งไปป์ไลน์ระบบตรวจจับการมองเห็นและกลไกการอนุมานการเรียนรู้ของเครื่องที่สร้างไว้ล่วงหน้าสำหรับการตรวจจับใบหน้า การนับคน และแอปพลิเคชันกล้องอัจฉริยะอื่น ๆ (ภาพที่ 4)
รูปที่ 4: สามารถดาวน์โหลดแอปพลิเคชันเร่งความเร็วที่สร้างไว้ล่วงหน้าได้จาก Xilinx Kria App Store ซึ่งพร้อมที่จะทำงานทันทีบนชุดเริ่มต้น KV260 ซึ่งเป็นโซลูชันที่สมบูรณ์สำหรับโมเดลการใช้งานการมองเห็น เช่น การตรวจจับใบหน้า (แหล่งรูปภาพ: Xilinx)
นักพัฒนาสามารถออกแบบและใช้งานได้ภายในเวลาไม่ถึงหนึ่งชั่วโมง ด้วยการใช้งานและการสนับสนุนที่สมบูรณ์ และแอปพลิเคชันแบบเร่งด่วนที่สร้างไว้ล่วงหน้าจาก Xilinx App Store แม้ว่าจะขาดประสบการณ์เกี่ยวกับ FPGA ก็ตาม เมื่อพวกเขาประเมินแอปพลิเคชัน พวกเขาสามารถใช้ชุดซอฟต์แวร์ที่มีให้เพื่อปรับเปลี่ยนฟังก์ชันการทำงานเพื่อสำรวจโซลูชันทางเลือกอื่น สำหรับการพัฒนาแบบกำหนดเองที่ครอบคลุมยิ่งขึ้น Xilinx ได้จัดเตรียมชุดเครื่องมือและไลบรารีสำหรับการพัฒนาที่ครอบคลุม
สภาพแวดล้อมสำหรับการพัฒนา AI และเครื่องมือเร่งการพัฒนาแบบกำหนดเอง
สำหรับการพัฒนาแบบกำหนดเองของแอปพลิเคชันที่ใช้ AI นั้น สภาพแวดล้อมสำหรับการพัฒนา Vitis AI ของ Xilinx ให้เครื่องมือ ไลบรารี และโมเดลที่ได้รับการฝึกล่วงหน้าที่ปรับให้เหมาะสม ซึ่งสามารถใช้เป็นพื้นฐานของโมเดลแบบกำหนดเองที่มีความเชี่ยวชาญมากขึ้น สำหรับสภาพแวดล้อมการทำงานแบบรันไทม์ชุดพัฒนาซอฟต์แวร์ Linux แบบฝัง (SDK) PetaLinux ที่ใช้ Yocto ของ Xilinx ให้ชุดความสามารถที่จำเป็นในการสร้าง พัฒนา ทดสอบ และปรับใช้ระบบ Linux แบบฝังตัว
สภาพแวดล้อม Vitis AI ที่ออกแบบมาสำหรับทั้งผู้เชี่ยวชาญและนักพัฒนาที่ไม่มีประสบการณ์ FPGA จะให้รายละเอียดของฮาร์ดแวร์ซิลิกอนที่ซ่อนอยู่ ทำให้นักพัฒนาสามารถมุ่งเน้นไปที่การสร้างโมเดล ML ที่มีประสิทธิภาพมากขึ้น แท้จริงแล้วสภาพแวดล้อม Vitis AI นั้นถูกรวมเข้ากับคอมไพเลอร์สแต็คดีพเลิร์นนิ่งของ Apache Tensor Virtual Machine (TVM) แบบโอเพนซอร์ส ทำให้นักพัฒนาสามารถคอมไพล์โมเดลจากเฟรมเวิร์กต่าง ๆ ไปยังโปรเซสเซอร์, GPU หรือตัวเร่งความเร็วได้ เมื่อใช้ Vitis AI ร่วมกับ TVM นักพัฒนาสามารถปรับปรุงการออกแบบที่มีอยู่ของพวกเขาด้วยความสามารถในการมองเห็นแบบเร่งรัด ลดภาระงานด้านการมองเห็นที่เน้นการประมวลผล เช่น โมเดลการเรียนรู้เชิงลึกไปยัง Kria SOM เพื่อช่วยให้นักพัฒนาปรับปรุงโมเดลดีพเลิร์นนิ่งของตนให้เหมาะสมยิ่งขึ้น เครื่องมือ AI Optimization ของ Xilinx สามารถปรับปรุงโครงข่ายประสาทเทียมเพื่อลดความซับซ้อนในแง่ของจำนวนการดำเนินการกิกะต่อวินาที (Gops) เพิ่มเฟรมต่อวินาที (fps) และลดแบบจำลองที่มีพารามิเตอร์มากเกินไป โดยบีบอัดได้มากถึง 50 เท่าโดยมีผลกระทบต่อความแม่นยำเพียงเล็กน้อยในแง่ของความแม่นยำเฉลี่ย (mAP) (รูปที่ 5)
รูปที่ 5: กรณีศึกษาของ Xilinx Research แสดงให้เห็นว่าการปรับปรุงเพียงไม่กี่ครั้งโดยใช้เครื่องมือ Xilinx AI Optimization สามารถลดความซับซ้อนของเครือข่ายประสาทเทียมได้อย่างรวดเร็วในแง่ของจำนวน Gops ในขณะที่เพิ่มเฟรมต่อวินาที โดยทั้งหมดมีผลกระทบต่อความแม่นยำเพียงเล็กน้อย (แหล่งรูปภาพ: Xilinx)
สำหรับการใช้งานการตรวจจับการมองเห็น Vitis Vision Libraries แบบโอเพ่นซอร์ส ของ Xilinx ได้รับการปรับให้เหมาะสมเพื่อให้มีประสิทธิภาพสูงและการใช้ทรัพยากรต่ำบนแพลตฟอร์ม Xilinx โดยให้อินเทอร์เฟซที่คุ้นเคยตาม OpenCV สำหรับการวิเคราะห์ Video Analytics SDK ของ Xilinx เฟรมเวิร์กแอปพลิเคชันช่วยให้นักพัฒนาสร้างไปป์ไลน์การวิเคราะห์การมองเห็นและวิดีโอที่มีประสิทธิภาพมากขึ้นโดยไม่ต้องมีความรู้เชิงลึกเกี่ยวกับ FPGA ด้วยเฟรมเวิร์ก GStreamer แบบโอเพนซอร์สที่นำมาใช้กันอย่างแพร่หลาย Video Analytics SDK ช่วยให้นักพัฒนาสร้างเคอร์เนลเร่งด่วนแบบกำหนดเองได้อย่างรวดเร็วเป็นปลั๊กอิน GStreamer สำหรับการผสานรวมเข้ากับเฟรมเวิร์ก SDK
การใช้เครื่องมือเหล่านี้ นักพัฒนาแบบฝังตัวทั่วไปสามารถประกอบไปป์ไลน์เร่งด่วนแบบกำหนดเองที่มีหรือไม่มีเคอร์เนลเร่งด่วนแบบกำหนดเองได้อย่างง่ายดาย
บทสรุป
อัลกอริธึม ML ที่เน้นการประมวลผลช่วยให้สามารถใช้เทคโนโลยีการมองเห็นอัจฉริยะในการใช้งานหลายแบบที่ทำงานอยู่ที่ระดับ Edge แต่นักพัฒนาต้องเผชิญกับความท้าทายหลายประการในการปฏิบัติตามความต้องการด้านประสิทธิภาพสูง ใช้พลังงานต่ำ และความสามารถในการปรับตัวของระบบตรวจจับการมองเห็นระดับ Edge โซลูชัน Kria K26 SOM จาก Xilinx เป็นฮาร์ดแวร์พื้นฐานสำหรับการเร่งอัลกอริธึมขั้นสูงโดยไม่ใช้พลังงานเกินที่กำหนดไว้ ด้วยการใช้ชุดเริ่มต้นที่ใช้ Kria K26 กับแอปพลิเคชันที่สร้างไว้ล่วงหน้า นักพัฒนาสามารถเริ่มประเมินการตรวจจับการมองเห็นอัจฉริยะได้ทันที และใช้สภาพแวดล้อมการพัฒนาที่ครอบคลุมเพื่อสร้างโซลูชันอุปกรณ์ระดับ Edge แบบกำหนดเอง

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.