ซอฟต์แวร์สแตก RK3588 NPU เข้ากันได้อย่างไร

ชุดซอฟต์แวร์ RKNN ของ Rockchip แยกการเตรียมโมเดลออกจากการดำเนินการบนอุปกรณ์ RKNN-Toolkit2 มีเครื่องมือในการแปลงและประเมินผล RKNN-Toolkit-Lite2 จัดหาอินเทอร์เฟซ Python บนแพลตฟอร์มเป้าหมายที่รองรับ ในขณะที่ RKNN Runtime จัดหาอินเทอร์เฟซ C/C++ ไดรเวอร์เคอร์เนลเชื่อมต่อรันไทม์กับ NPU ตรวจสอบความเข้ากันได้ของส่วนประกอบเหล่านี้ด้วยแพ็คเกจสนับสนุนบอร์ดที่จัดมาให้สำหรับโมดูลของคุณ

บันทึกการใช้งานที่เป็นประโยชน์จะระบุบอร์ดและการแก้ไข SoM, อิมเมจ Linux, ไดรเวอร์, รันไทม์, เวอร์ชันเครื่องมือการแปลง, รุ่นดั้งเดิมและรุ่นที่แปลงแล้ว บันทึกสคริปต์บิลด์และการตั้งค่าการประมวลผลล่วงหน้าข้างอาร์ติแฟกต์ของโมเดล ชื่อไฟล์ เช่น detector.rknn เพียงอย่างเดียวไม่สามารถอธิบายได้ว่าทำไมการปรับใช้หนึ่งจึงมีพฤติกรรมแตกต่างจากที่อื่น

เตรียมตัวโมเดลอ้างอิง อินพุต และเอาต์พุตที่คาดหวัง
แปลงการกำหนดค่าเป้าหมายและการตรวจสอบความแม่นยำ
ปรับใช้รันไทม์ แอปพลิเคชัน และการทดสอบอย่างต่อเนื่อง

ขั้นตอน 1: สร้างข้อมูลอ้างอิงก่อนการแปลง

รันโมเดลดั้งเดิมบนชุดการตรวจสอบตัวแทน บันทึกผลลัพธ์ดิบและตัวชี้วัดการใช้งานที่สำคัญ: ความแม่นยำในการจำแนกประเภท คุณภาพการตรวจจับ หรือการวัดผลเฉพาะงานอื่นๆ สำหรับเครื่องตรวจจับ ให้รักษาการเรียงลำดับฉลาก เกณฑ์ความเชื่อมั่น และการตั้งค่าหลังการประมวลผล นี่จะกลายเป็นจุดเปรียบเทียบสำหรับโมเดลที่แปลงแล้ว

เขียนสัญญาอินพุตทั้งหมด รวมขนาด ขนาดแบทช์ การเรียงลำดับ RGB หรือ BGR เค้าโครง ช่วงตัวเลข การทำให้เป็นมาตรฐาน การปรับขนาด และการขยาย โมเดลที่ถูกต้องอาจให้ผลลัพธ์ที่ไม่ดีหากแถบดำของแอปพลิเคชันมีรูปภาพแตกต่างจากแบบฝึกหรือลบออฟเซ็ตสองครั้ง เก็บการประมวลผลภายหลังภายนอกเครือข่ายบันทึกไว้อย่างระมัดระวังเช่นกัน

ใช้ Rockchip's สวนสัตว์จำลอง RKNN เป็นจุดเริ่มต้นเมื่อมีโมเดลและเป้าหมายที่ตรงกัน ตัวอย่างการแปลงและการอนุมานมีประโยชน์มากกว่าการสมมติว่าเครือข่ายที่ส่งออกใดๆ จะทำงานไม่เปลี่ยนแปลง เลือกการแก้ไขที่เก็บที่รู้จักและปฏิบัติตามคำแนะนำสำหรับตัวอย่างเฉพาะนั้น

ขั้นตอน 2: แปลงโมเดลและตรวจสอบการสนับสนุนของผู้ปฏิบัติงาน

  1. ตรงกับเป้าหมาย เลือกเป้าหมาย RK3588 และห่วงโซ่เครื่องมือที่เข้ากันได้กับอิมเมจบอร์ดที่ต้องการ
  2. ตรวจสอบกราฟ ยืนยันรูปร่าง การประมวลผลล่วงหน้า ผลลัพธ์ และการสนับสนุนสำหรับการดำเนินการจริงในแบบจำลองที่ส่งออก
  3. สร้างการแปลงอ้างอิง ใช้ตัวเลือกความแม่นยำที่กราฟและเวอร์ชันซอฟต์แวร์รองรับ
  4. อ่านบันทึกการสร้างฉบับสมบูรณ์ แก้ไขความล้มเหลวและตรวจสอบคำเตือนก่อนที่จะเพิ่มการรับกล้องหรืออินเทอร์เฟซผู้ใช้
  5. เปรียบเทียบผลลัพธ์ เรียกใช้อินพุตเดียวกันผ่านโมเดลดั้งเดิมและโมเดลที่แปลงแล้ว โดยมีการประมวลผลภายหลังแบบเดียวกัน

การดำเนินการที่ไม่รองรับอาจต้องมีการส่งออก การเขียนกราฟใหม่ หรือขั้นตอนการประมวลผล CPU ที่ชัดเจน อย่าคิดว่ารันไทม์จะดำเนินการทุกเลเยอร์ที่ไม่รองรับอย่างโปร่งใส หากส่วนหนึ่งของปริมาณงานย้ายไปยัง CPU ให้รวมการถ่ายโอนและการซิงโครไนซ์ในการวัดประสิทธิภาพ

ขั้นตอน 3: ประเมิน INT8 ตามข้อกำหนดด้านความแม่นยำของคุณ

การหาปริมาณการเปลี่ยนแปลงการแสดงตัวเลข เมื่อขั้นตอนการแปลงที่เลือกใช้ข้อมูลการสอบเทียบ ให้เลือกอินพุตที่เป็นตัวแทนของการใช้งาน: แสง ขนาดวัตถุ พื้นหลัง และสภาพการทำงาน เก็บชุดการตรวจสอบแยกต่างหากเพื่อประเมินผลลัพธ์ การแปลงที่เสร็จสมบูรณ์ยังต้องได้รับการตรวจสอบความถูกต้อง

เปรียบเทียบผลลัพธ์ของแอปพลิเคชัน ไม่ใช่แค่ความแตกต่างระหว่างเทนเซอร์สองตัวเท่านั้น ตัวอย่างเช่น การเปลี่ยนแปลงตัวเลขเล็กน้อยสามารถย้ายการตรวจจับข้ามเกณฑ์ความเชื่อมั่นได้ ตรวจสอบกรณีที่ยาก คลาสพร้อมตัวอย่างและเงื่อนไขเล็กน้อยที่โมเดลดั้งเดิมมีขอบเขตจำกัดอยู่แล้ว หากความถูกต้องต่ำกว่าขีดจำกัดที่ยอมรับ ให้ตรวจสอบความครอบคลุมของการสอบเทียบและการประมวลผลล่วงหน้าอีกครั้งก่อนที่จะเปลี่ยนฮาร์ดแวร์

ที่ เอกสารประกอบการหาปริมาณรันไทม์ ONNX เป็นพื้นฐานที่เป็นประโยชน์เกี่ยวกับการแลกเปลี่ยนเชิงตัวเลขและการตรวจสอบความถูกต้อง ตัวเลือกการแปลง RKNN และความแม่นยำที่รองรับยังต้องได้รับการตรวจสอบในเอกสารประกอบของ Rockchip สำหรับรุ่นที่เลือก

ขั้นตอน 4: วัดมากกว่าเวลาอนุมาน

วัดปริมาณงานที่ใช้งานหลังจากการวอร์มอัพและอีกครั้งในระหว่างการดำเนินการอย่างต่อเนื่อง บันทึกอุณหภูมิ โหมดพลังงาน กระบวนการที่เกิดขึ้นพร้อมกัน และ ตัวเรือนอุปกรณ์ หรือการจัดการความเย็น ผลลัพธ์ที่เป็นประโยชน์คือขอบเขตประสิทธิภาพที่สามารถทำซ้ำได้ รวมถึงความแม่นยำและความล่าช้า ภายใต้เงื่อนไขที่ผลิตภัณฑ์จะทำงาน

การวัดมันตอบอะไร.สิ่งที่จะบันทึก
ระยะเวลาดำเนินการโมเดลการเรียกใช้รันไทม์นี้ใช้เวลานานเท่าใดรูปร่างอินพุต ความแม่นยำ ขอบเขตของเวลา และเวอร์ชันรันไทม์
เวลาแฝงจากต้นทางถึงปลายทางการสังเกตมีอายุเท่าใดเมื่อมีการส่งมอบผลลัพธ์?บันทึกเวลา การประมวลผลล่วงหน้า การจัดคิว การอนุมาน และเวลาเอาท์พุต
ปริมาณงานที่ยั่งยืนมีผลลัพธ์ที่เสร็จสมบูรณ์กี่รายการในช่วงเวลาหนึ่ง?ระยะเวลาดำเนินการ คำขอที่เสร็จสมบูรณ์ และอินพุตที่ถูกทิ้งหรือข้าม
ความแม่นยำของแอปพลิเคชันโมเดลที่ปรับใช้ตรงตามข้อกำหนดของงานหรือไม่ชุดการตรวจสอบ ตัวชี้วัดงาน และเกณฑ์การตัดสินใจ
พฤติกรรมความร้อนผลลัพธ์จะคงที่หลังจากระบบอุ่นเครื่องหรือไม่?สภาพแวดล้อม การทำความเย็น อุณหภูมิ และนาฬิกา หากมี

ตามงบประมาณที่แสดงไว้ แอปพลิเคชันที่ได้รับเฟรมใหม่ทุกๆ 40 ms จะต้องตามทัน 25 เฟรมต่อวินาทีหากประมวลผลทุกเฟรม การวัดโดยอนุมาน 12 มิลลิวินาทีจะเหลืองบประมาณที่เหลือสำหรับการได้มา การเตรียมการ และการส่งมอบตามการออกแบบตามกำหนดเวลาที่เหมาะสมเท่านั้น ไม่ได้พิสูจน์ความล่าช้าจากกล้องถึงผลลัพธ์ของ 12 ms ตัวเลขเหล่านี้เป็นเพียงตัวอย่างการวางแผน ไม่ใช่วัดประสิทธิภาพของ ForgeEdge

ใช้นาฬิกาแบบโมโนโทนิกสำหรับระยะเวลาของซอฟต์แวร์ รายงานค่ามัธยฐานและเวลาแฝงส่วนท้ายมากกว่าการสังเกตที่ดีที่สุดเพียงครั้งเดียว และรักษาการวัดดิบไว้ สำหรับกล้องหลายตัว ให้พิจารณาภาระงานของสตรีมที่ใช้งานอยู่ทั้งหมด รวมถึงการถอดรหัส การแปลงภาพ การเคลื่อนไหวของหน่วยความจำ และการบันทึก คิวที่เพิ่มขึ้นตลอดการทดสอบบ่งชี้ว่าความจุโดยเฉลี่ยต่ำกว่าปริมาณงานที่เข้ามา

อาการการใช้งานทั่วไป

อาการการสอบสวนครั้งแรก
ตรงรุ่น ฉลากหรือกล่องไม่ถูกต้องลำดับสี การทำให้เป็นมาตรฐาน การปรับขนาด/การขยาย เค้าโครงเอาต์พุต และการประมวลผลภายหลัง
ไม่สามารถเริ่มต้นโมเดลที่แปลงแล้วได้การเลือกเป้าหมาย ความเข้ากันได้ของรันไทม์/ไดรเวอร์ และความสมบูรณ์ของสิ่งประดิษฐ์ของโมเดล
เกณฑ์มาตรฐานระยะสั้นที่ดี ประสิทธิภาพที่ยั่งยืนต่ำอุณหภูมิ โหมดพลังงาน ความกดดันของหน่วยความจำ และการแข่งขัน
เวลาในการอนุมานที่ยอมรับได้ ผลลัพธ์ล่าช้าอย่างเห็นได้ชัดบันทึกการบัฟเฟอร์ อายุคิว การทำสำเนา และกำหนดเวลาเอาต์พุต
เอาต์พุต INT8 สูญเสียการตรวจจับที่มีประโยชน์ความครอบคลุมของการสอบเทียบ ความเท่าเทียมกันในการประมวลผลล่วงหน้า และการตรวจสอบความถูกต้องระดับงาน

เปลี่ยนต้นแบบให้เป็นผลิตภัณฑ์ที่ทำซ้ำได้

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

เมื่อบอร์ดต้องการตัวเชื่อมต่อ การปรับกำลังไฟ หรืออินเทอร์เฟซ เซนเซอร์ ที่แตกต่างกัน ให้ตรวจสอบ การตัดสินใจ SoM กับ SBC และ กระบวนการออกแบบ บอร์ดฐานสำหรับโมดูลประมวลผล. การตัดสินใจเหล่านั้นเป็นตัวกำหนดว่าการสาธิตโมเดลที่ประสบความสำเร็จจะกลายเป็นระบบที่สามารถบำรุงรักษาได้อย่างไร

คำถามเกี่ยวกับการปรับใช้ RK3588 NPU

ONNX ทุกรุ่นสามารถรันบน RK3588 NPU ได้หรือไม่?

ความเข้ากันได้ขึ้นอยู่กับกราฟ รูปร่าง การทำงาน และสายโซ่เครื่องมือที่เลือก สร้างการสนับสนุนผ่านการแปลงและการตรวจสอบความถูกต้องบนอุปกรณ์ของรุ่นที่คุณต้องการจัดส่ง

อัตราเร่งที่โฆษณาทำนาย FPS ของแอปพลิเคชันหรือไม่

ไม่ เครือข่าย ความแม่นยำ พฤติกรรมของหน่วยความจำ การประมวลผลล่วงหน้า และรันไทม์จะกำหนดทรูพุตที่วัดได้ของแอปพลิเคชัน ใช้ปริมาณงานเป้าหมายและเส้นทางข้อมูลที่สมบูรณ์เมื่อเปรียบเทียบแพลตฟอร์ม

ฉันควรปรับโครงข่ายประสาทเทียมให้เหมาะสมก่อนหรือไม่?

โปรไฟล์ก่อน หากการได้มา การแปลงรูปภาพ หรือการเข้าคิวมีอิทธิพลเหนือ การลดเวลาดำเนินการโมเดลอาจส่งผลกระทบเพียงเล็กน้อยต่ออายุผลลัพธ์ที่แอปพลิเคชันประสบ

เปรียบเทียบงานคอมพิวเตอร์วิทัศน์ทั้งหมด

สำหรับแอปพลิเคชันการตรวจจับวัตถุ ให้วัดการจับภาพของกล้อง การปรับขนาดและการทำให้เป็นมาตรฐาน การอนุมาน NPU การถอดรหัสเอาต์พุต และการส่งมอบการตัดสินใจ รายงานเวอร์ชันโมเดล ความละเอียดอินพุต ความแม่นยำ เกณฑ์ความเชื่อมั่น และชุดข้อมูลการประเมินพร้อมผลลัพธ์ด้านเวลา มิฉะนั้น เกณฑ์มาตรฐาน Edge AI ที่คล้ายกันสองรายการอาจอธิบายงานที่แตกต่างกัน

ทดสอบกราฟที่ส่งออกและตัวดำเนินการที่จำเป็นผ่านชุดเครื่องมือ RKNN ที่เลือกก่อนที่จะยอมรับสถาปัตยกรรมโมเดล ตรวจสอบความถูกต้องหลังการหาปริมาณและพฤติกรรมระหว่างการดำเนินการอย่างต่อเนื่อง ไม่ใช่แค่ว่าการแปลงสำเร็จหรือไม่เท่านั้น การตรวจจับวัตถุ การแบ่งส่วน และการจำแนกประเภทมีต้นทุนการประมวลผลเอาท์พุตที่แตกต่างกัน ตรวจสอบปริมาณงานจริงที่เลือกสำหรับโครงการ

เปรียบเทียบบทบาทการออกแบบ FPGA, NPU และ MPU

ข้อมูลอ้างอิงทางเทคนิค

กำหนดขอบเขตภาระงาน Edge AI ของคุณ

แชร์โมเดล ความละเอียดอินพุต อินเทอร์เฟซของกล้อง อัตราผลลัพธ์ที่ต้องการ และขอบเขตพลังงาน เราสามารถประเมินงานบูรณาการรอบแพลตฟอร์ม Edge ที่ใช้ RK3588 ได้