การย้ายอัลกอริธึมการมองเห็นแอสเซมบลีไปยัง Ascend NPU ไม่ได้หมายถึงการคัดลอกไฟล์โมเดลดั้งเดิมไปยังอุปกรณ์ Atlas แต่เป็นการปรับแต่งระบบของรูปแบบโมเดล ตัวดำเนินการ อินพุตและเอาท์พุต อินเทอร์เฟซรันไทม์ และเกณฑ์การยอมรับให้เสร็จสิ้น วิธีทั่วไปคือ: แก้ไขพื้นฐานโมเดลดั้งเดิม, ส่งออก ONNX, ตรวจสอบโครงสร้างกราฟและตัวดำเนินการ, ใช้ ATC เพื่อสร้างโมเดล OM สำหรับโปรเซสเซอร์เป้าหมาย Ascend, เข้าถึงการอนุมานผ่าน AscendCL จากนั้นทำการตรวจสอบความสอดคล้องก่อนและหลังการประมวลผล ผลลัพธ์การตรวจจับ ประสิทธิภาพการทำงาน และการนำเวอร์ชันไปใช้
ซอฟต์แวร์ตรวจสอบด้วยภาพและแอปพลิเคชันอัลกอริทึมสำหรับการประกอบของ Winge Technology ทำงานบน Huawei Ascend Atlas 200I DK A2 แล้ว สำหรับโปรเจ็กต์ที่ใช้โมเดลการจำแนกประเภท การตรวจจับวัตถุ หรือการแบ่งส่วน คุณสามารถเพิ่มลิงก์การอนุมานโมเดล Ascend NPU ตามการเข้าถึงกล้องที่มีอยู่ การกำหนดค่า ROI การบันทึกผลลัพธ์ และการปรับใช้ในพื้นที่
รายการใดบ้างที่ต้องแก้ไขก่อนการย้ายข้อมูล
ก่อนที่จะเริ่มการย้ายข้อมูล ควรรวบรวมแพ็คเกจพื้นฐานที่สามารถทำซ้ำได้ซึ่งมีอย่างน้อยดังต่อไปนี้:
- กรอบการฝึกอบรมดั้งเดิม โครงสร้างแบบจำลอง น้ำหนัก และสคริปต์การส่งออก
- ชื่ออินพุต ขนาดอินพุต ประเภทข้อมูล และข้อกำหนดมิติไดนามิกสำหรับโมเดล ONNX
- วิธีการจัดลำดับ การปรับขนาด การครอบตัด การทำให้เป็นมาตรฐาน และการเทนเซอร์สีของรูปภาพ
- ป้ายการจำแนกประเภท การถอดรหัสเฟรมการรู้จำ เกณฑ์ความเชื่อมั่น NMS หรือกฎการประมวลผลหลังการแบ่งส่วน
- ชุดตัวอย่าง OK, NG และขีดจำกัดคงที่และผลลัพธ์ที่คาดหวัง
- อุปกรณ์ Target Atlas, รุ่นโปรเซสเซอร์ Ascend, ระบบปฏิบัติการ, CANN และเวอร์ชันแพ็คเกจของผู้ปฏิบัติงาน;
- ตัวบ่งชี้การยอมรับโครงการ เช่น ความถูกต้อง ผลบวกลวง ผลบวกลวง การใช้เวลาเฉพาะ ปริมาณงาน และการจัดเก็บ
หากอินพุตเหล่านี้ไม่ได้รับการแก้ไข แม้ว่าการแปลงโมเดลจะสำเร็จ ก็ไม่สามารถระบุได้ว่าความแตกต่างก่อนและหลังการโยกย้ายนั้นเนื่องมาจากโมเดล การประมวลผลล่วงหน้า การประมวลผลภายหลัง หรือสภาพแวดล้อมการกำหนดเวอร์ชัน
ขั้นตอนที่ 1: สร้างพื้นฐานของผลลัพธ์ของโมเดลดั้งเดิม
ใช้ชุดภาพการยอมรับชุดเดียวกันเพื่อเรียกใช้โมเดลดั้งเดิมและจัดเก็บเทนเซอร์อินพุต ผลลัพธ์ดั้งเดิม ผลลัพธ์หลังการประมวลผล และการตัดสินใจทางธุรกิจขั้นสุดท้าย โครงการตรวจจับวัตถุควรบันทึกกรอบการตรวจจับ หมวดหมู่ ความเชื่อมั่น และผลลัพธ์ NMS โครงการการแบ่งส่วนควรจัดเก็บขนาดมาสก์ การแมปหมวดหมู่ และผลลัพธ์ของเส้นขอบ
บทบาทของข้อมูลพื้นฐานไม่ใช่การให้อัตราความแม่นยำที่สม่ำเสมอ แต่เป็นการให้ตัวอย่างพื้นฐานในการเปรียบเทียบสำหรับผลลัพธ์ ONNX และ OM ที่ตามมา ตัวชี้วัดโครงการควรพิจารณาจากตัวอย่างลูกค้า คำจำกัดความของข้อบกพร่อง และสภาพสถานที่ทำงาน
ขั้นตอนที่ 2: ส่งออกและตรวจสอบโมเดล ONNX
หลังจากเอ็กซ์พอร์ต ONNX จากเฟรมเวิร์กการฝึก คุณต้องตรวจสอบสิ่งต่อไปนี้:
- ชื่อโหนดอินพุตและเอาต์พุตเสถียรหรือไม่
- ไม่ว่าขนาดอินพุตจะเป็นขนาดคงที่หรือขนาดไดนามิก
- เวอร์ชันของตัวดำเนินการและโครงสร้างกราฟสอดคล้องกับสภาพแวดล้อมการแปลงเป้าหมายหรือไม่
- ไม่ว่าจะรวมโหนดที่ใช้ระหว่างระยะการฝึกเท่านั้น
- ไม่ว่าผลลัพธ์การรัน ONNX และผลลัพธ์ของโมเดลดั้งเดิมจะอยู่ภายในช่วงข้อผิดพลาดที่ตกลงกันไว้หรือไม่
ในขั้นตอนนี้ คุณควรแก้ไขปัญหาการส่งออกโมเดลก่อน จากนั้นจึงทำการแปลงในด้าน Ascend เพื่อหลีกเลี่ยงความแตกต่างในโมเดลต้นทางที่จะถูกถ่ายโอนไปยังฝั่งอุปกรณ์
ขั้นตอนที่ 3: ตรวจสอบความเข้ากันได้ของผู้ปฏิบัติงานและโครงสร้างแผนภูมิ
ก่อนการแปลง ATC ควรตรวจสอบตัวดำเนินการ คุณลักษณะ ประเภทข้อมูล และข้อจำกัดของรูปร่างที่แบบจำลองใช้ หากมีตัวดำเนินการหรือชุดค่าผสมที่ไม่รองรับ คุณสามารถเลือกระหว่างการเขียนกราฟใหม่ การแทนที่ตัวดำเนินการที่เทียบเท่า การแยกและการประมวลผลภายหลัง หรือตัวดำเนินการแบบกำหนดเองตามโครงสร้างของโมเดล คุณไม่ควรใช้ "การดำเนินการคำสั่งการแปลงเสร็จสมบูรณ์" เป็นเกณฑ์สำหรับการปรับแต่งให้เสร็จสิ้นเท่านั้น
สำหรับสแต็กไดนามิก ขนาดรูปภาพไดนามิก หรือขนาดไดนามิก จำเป็นต้องกำหนดค่าเกียร์ที่เกี่ยวข้องตามอินพุตเวิร์กสเตชันจริง สถานีประกอบที่มีกล้องคงที่และขนาดการจับคงที่โดยทั่วไปสามารถใช้รูปร่างคงที่ในขั้นต้นเพื่อลดการแตกแขนงรันไทม์และทำให้การยอมรับง่ายขึ้น
ขั้นตอนที่ 4: ใช้ ATC เพื่อสร้างโมเดล OM
เอกสาร Ascend อย่างเป็นทางการของ Huawei ระบุว่า ATC ใช้ในการแปลงโมเดลเฟรมเวิร์กโอเพ่นซอร์ส เช่น ONNX ไปเป็นโมเดลออฟไลน์ OM ที่โปรเซสเซอร์ Ascend AI สามารถรับรู้ได้ โครงสร้างคำสั่งทั่วไปมีดังนี้:
“ทุบตี
atc --model=model.onnx
--เฟรมเวิร์ค=5
--output=model_atlas
--input_shape="ภาพ:1,3,H,W"
--soc_version=<เป้าหมายโมเดลตัวประมวลผล Ascend>
พารามิเตอร์จริงจะต้องตรงกับอินพุตของโมเดล ตัวประมวลผลเป้าหมาย และสภาพแวดล้อมของโปรเจ็กต์ ในระหว่างการแปลง ควรบันทึกคำสั่ง ATC SHA-256 เวอร์ชันสภาพแวดล้อม บันทึกการแปลง รายงานการตรวจสอบ และไฟล์ที่สร้างขึ้นเพื่อติดตามและทำซ้ำกระบวนการสร้างแบบจำลอง OM
ขั้นตอนที่ 5: เชื่อมต่อกับลิงก์การอนุมาน AscendCL
หลังจากสร้างโมเดล OM แล้ว แอปพลิเคชันฝั่งอุปกรณ์จำเป็นต้องดำเนินการเริ่มต้นทรัพยากร การเลือกอุปกรณ์ การโหลดโมเดล การจัดการหน่วยความจำอินพุตและเอาท์พุต การดำเนินการโมเดล การอ่านผลลัพธ์ และการปล่อยทรัพยากร เส้นทางข้อมูลที่สมบูรณ์สำหรับระบบวิชันซิสเต็มแอสเซมบลีโดยทั่วไปคือ:
กล้องอุตสาหกรรมหรือไฟล์ภาพ
-> ถอดรหัส ครอบตัด และตรวจสอบคุณภาพของภาพ
-> การปรับขนาด การแปลงสี การทำให้เป็นมาตรฐาน และการจัดเรียงเทนเซอร์
-> การให้เหตุผลแบบจำลอง OM
-> ถอดรหัสการจำแนกประเภท กรอบการตรวจจับ หรือผลการแบ่งส่วน
-> ROI พร้อมกฎเกณฑ์การประกอบธุรกิจ
-> ผ่าน / FAIL / ไม่ทราบ
-> แผนภูมิหลักฐาน บันทึกผลลัพธ์ และอินเทอร์เฟซเวิร์กสเตชัน
อินเทอร์เฟซการอนุมานมีหน้าที่รับผิดชอบในการคำนวณแบบจำลองเท่านั้น และการกำหนดเวิร์กสเตชันขั้นสุดท้ายยังจัดการการขจัดความซ้ำซ้อนของทริกเกอร์ คุณภาพของภาพ การพิสูจน์ผลลัพธ์ สถานะที่ผิดปกติ อินเทอร์เฟซ PLC หรือ I/O และการติดตามข้อมูล
ขั้นตอนที่ 6: ตรวจสอบความสอดคล้องของก่อนและหลังการประมวลผล
ความแตกต่างทั่วไปในโครงการการย้ายข้อมูลไม่จำเป็นต้องเกิดจากตัวโมเดลเองเสมอไป ลำดับสี วิธีการประมาณค่า ค่าสัมประสิทธิ์การทำให้เป็นมาตรฐาน วิธีการหาปริมาณ เค้าโครงเทนเซอร์ การปรับขนาดพิกัด และพารามิเตอร์ NMS สามารถเปลี่ยนเอาต์พุตได้
ขอแนะนำให้เปรียบเทียบในระดับต่อไปนี้:
- เลเยอร์อินพุต: เปรียบเทียบเทนเซอร์อินพุตกับรุ่นดั้งเดิมและรุ่น OM - เลเยอร์เอาต์พุต: เปรียบเทียบรูปร่าง ช่วงของค่า และลำดับโหนดของเอาต์พุตดั้งเดิมของโมเดล - ระดับอัลกอริทึม: เปรียบเทียบหมวดหมู่ ช่องการตรวจจับ มาสก์ และความมั่นใจ - ชั้นธุรกิจ: เปรียบเทียบผลลัพธ์ PASS, FAIL หรือ UNKNOWN ของแต่ละตัวอย่าง - ระดับหลักฐาน: เปรียบเทียบตำแหน่งของข้อบกพร่อง แผนที่คำอธิบายประกอบ และบันทึกผลลัพธ์ เพื่อพิจารณาว่าสิ่งเหล่านั้นสอดคล้องกับชิ้นงานเดียวกันหรือไม่
การระบุความแตกต่างทีละชั้นเท่านั้นที่ทำให้เราตัดสินได้ว่าจำเป็นต้องปรับเปลี่ยนการแปลงโมเดล การประมวลผลข้อมูล หรือกฎเกณฑ์ทางธุรกิจหรือไม่
ขั้นตอนที่ 7: ตรวจสอบประสิทธิภาพและความเสถียรของอุปกรณ์ให้เสร็จสิ้น
การทดสอบประสิทธิภาพควรทำบนอุปกรณ์เป้าหมาย Atlas ขนาดภาพที่เป็นทางการ และการเชื่อมต่อการประมวลผลจริง โดยแยกความแตกต่างระหว่าง:
- เวลาจับภาพหรือถอดรหัส - เวลาก่อนการประมวลผล - เวลาอนุมานสำหรับรุ่นเดียว - เวลาสำหรับการประมวลผลภายหลังและกฎเกณฑ์ทางธุรกิจ - เวลาในการเขียนภาพหลักฐานและไฟล์ผลลัพธ์ - เวลาตอบสนองเวิร์กสเตชันแบบ end-to-end
ผลการทดสอบควรบันทึกเวอร์ชันของโมเดล, แฮชของไฟล์ OM, เวอร์ชัน CANN, รุ่นโปรเซสเซอร์, ขนาดอินพุต, แบทช์, โหมดความแม่นยำ, จำนวนการอุ่นเครื่อง และจำนวนตัวอย่าง ความแม่นยำ ระยะเวลาของวงจรการผลิต และความเสถียรในระยะยาวได้รับการยืนยันโดยการตรวจสอบอิสระของโครงการเฉพาะและสภาพการทำงานที่ต่อเนื่อง
ขั้นตอนที่ 8: สร้างการจัดส่งเวอร์ชันแบบม้วนได้
การส่งมอบอย่างเป็นทางการควรมีอย่างน้อยดังต่อไปนี้:
- โมเดลต้นฉบับหรือไฟล์ต้นฉบับของโมเดลอยู่ในขอบเขตที่ตกลงกันไว้ - ONNX รุ่นและคำแนะนำในการส่งออก - โมเดล OM, คำสั่ง ATC, โปรโตคอลการแปลงและตรวจสอบค่า - โค้ดก่อนการประมวลผล การอนุมาน หลังการประมวลผล และโค้ดอินเทอร์เฟซทางธุรกิจ - ระบบปฏิบัติการ, CANN, แพ็คเกจโอเปอเรเตอร์ และรายการเวอร์ชันที่ต้องพึ่งพา - ตัวอย่างผลการตรวจสอบ บันทึกความแตกต่าง และรายงานผลการทดสอบประสิทธิภาพ - การกำหนดค่า การเริ่มต้นบริการ การบันทึก การอัพเกรด การสำรองข้อมูล และคำแนะนำในการย้อนกลับ
Winge Technology สามารถทำงานการย้ายโมเดลร่วมกับกล้อง เลนส์ ROI
ประเด็นใดมีแนวโน้มที่จะส่งผลกระทบต่อผลลัพธ์ของการย้ายถิ่นมากที่สุด
| คำถาม | อาการทั่วไป | ทิศทางการประมวลผล | |---|---|---| | คำจำกัดความอินพุตไม่สอดคล้องกัน | การเปลี่ยนแปลงทั่วไปของผลลัพธ์หรือระดับความเชื่อมั่นที่ผิดปกติ | แก้ไขสี ขนาด การทำให้เป็นมาตรฐาน และเค้าโครงเทนเซอร์แล้ว | ตัวดำเนินการหรือแบบฟอร์มเข้ากันไม่ได้ | การแปลง ATC ล้มเหลวหรือการเปลี่ยนแปลงโครงสร้างเอาต์พุต | เขียนกราฟใหม่ แทนที่ตัวดำเนินการ เฟืองไดนามิก หรือตัวดำเนินการแบบกำหนดเอง | | หลังการประมวลผลไม่สอดคล้องกัน | จำนวน ตำแหน่ง หรือหมวดหมู่ของเฟรมการจดจำต่างกัน | การถอดรหัสแบบครบวงจร การกำหนดขีดจำกัด NMS และการกู้คืนพิกัด | การรวมเวอร์ชันไม่ได้รับการแก้ไข | รุ่นเดียวกันมีพฤติกรรมแตกต่างกันในสภาพแวดล้อมที่แตกต่างกัน | ระบบคงที่, CANN, แพ็คเกจผู้ปฏิบัติงาน และบันทึกการก่อสร้าง OM | | แค่การทดสอบโมเดลต้องใช้เวลา | จังหวะสดยังไม่ตรงตามข้อกำหนด | การเชื่อมโยงที่สมบูรณ์ตั้งแต่การวัดค่าไปจนถึงเอาต์พุตผลลัพธ์ | | ไม่มีการรวบรวมการตรวจสอบอิสระ | ไม่มีวิธีใดในการพิจารณาว่าการย้ายข้อมูลจะรักษาผลลัพธ์ทางธุรกิจหรือไม่ | ใช้ OK, NG และจำกัดตัวอย่างที่ไม่เกี่ยวข้องกับการเพิ่มประสิทธิภาพพารามิเตอร์ |
คำถามที่พบบ่อย
### รุ่น ONNX สามารถรันโดยตรงบน Ascend NPU ได้หรือไม่
โดยทั่วไป จำเป็นต้องใช้ ATC เพื่อแปลงโมเดล ONNX เป็นโมเดล OM ออฟไลน์โดยยึดตามโปรเซสเซอร์ Ascend เป้าหมายและสภาพแวดล้อม CANN จากนั้นโหลดและดำเนินการผ่านอินเทอร์เฟซฝั่งอุปกรณ์ เช่น AscendCL
### การแปลงเพื่อสร้างไฟล์ OM หมายความว่าการย้ายข้อมูลเสร็จสมบูรณ์หรือไม่
ไม่ทันที. นอกจากนี้ ยังจำเป็นต้องดำเนินการเชื่อมต่ออินพุตและเอาต์พุตให้เสร็จสมบูรณ์ ความสอดคล้องก่อนและหลังการประมวลผล การเปรียบเทียบผลลัพธ์แบบสุ่ม การทดสอบประสิทธิภาพฝั่งอุปกรณ์ การจัดการข้อยกเว้น และการตรวจสอบการส่งมอบเวอร์ชัน
### กฎการมองเห็นแบบเดิมทั้งหมดจำเป็นต้องแปลงเป็นโครงข่ายประสาทเทียมหรือไม่
ไม่จำเป็น. กฎ ROI ที่มีตำแหน่งคงที่และขอบเขตที่ชัดเจนยังคงสามารถรักษาไว้ได้ โมเดลการจำแนกประเภท การตรวจจับวัตถุ หรือการแบ่งส่วนใช้เพื่อจัดการกับการเปลี่ยนแปลงหมวดหมู่ พื้นหลังที่ซับซ้อน และงานการจดจำความหมาย และทั้งสองอย่างสามารถรวมกันได้ในแอปพลิเคชัน Atlas เดียวกัน
### สามารถใช้ OM รุ่นเดียวกันโดยตรงกับอุปกรณ์ Atlas ทั้งหมดได้หรือไม่
พารามิเตอร์การแปลงของโมเดล OM เกี่ยวข้องกับโปรเซสเซอร์เป้าหมาย Ascend และสภาพแวดล้อมของซอฟต์แวร์ เมื่อดำเนินโครงการ ควรยืนยันรุ่นโปรเซสเซอร์, CANN และเวอร์ชันแพ็คเกจของผู้ปฏิบัติงานตามอุปกรณ์เป้าหมาย และควรเก็บบันทึกการสร้างที่เกี่ยวข้องไว้
### จะประเมินได้อย่างไรว่าผลลัพธ์ก่อนและหลังการย้ายข้อมูลมีความสอดคล้องกันหรือไม่
การสุ่มตัวอย่างแบบคงที่ควรใช้เพื่อเปรียบเทียบเทนเซอร์อินพุต ผลลัพธ์ดั้งเดิมของแบบจำลอง ผลลัพธ์ของอัลกอริทึม และการตัดสินทางธุรกิจขั้นสุดท้ายทีละชั้น การยอมรับควรขึ้นอยู่กับข้อผิดพลาด ความถูกต้อง และกฎของเวิร์กสเตชันที่ได้รับการยืนยันจากทั้งสองฝ่าย คุณไม่สามารถเปรียบเทียบภาพสาธิตจำนวนเล็กน้อยได้
แหล่งที่มาอย่างเป็นทางการ
- Huawei Ascend: รุ่น ONNX เปลี่ยนเป็นรุ่น OM https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/81RC1beta1/quickstart/quickstart/quickstart_18_0010.html - Huawei Ascend: พารามิเตอร์บรรทัดคำสั่ง ATC และข้อจำกัดของผู้ปฏิบัติงาน https://www.hiascend.com/document/detail/th/canncommercial/850/devaids/atctool/atlasatc_16_0039.html - Huawei Ascend: การสร้างโมเดล AscendCL และการพัฒนาแอปพลิเคชัน https://www.hiascend.com/document/detail/zh/canncommercial/850/appdevg/acldevg/aclcppdevg_000027.html
Atlas, Ascend, CANN, AscendCL และชื่อที่เกี่ยวข้องเป็นของผู้ถือลิขสิทธิ์ บทความนี้จะอธิบายวิธีการปรับแต่งสำหรับโครงการ Assembly Vision ที่จัดทำโดย Winge Technology ไม่ได้หมายความว่าผู้ถือสิทธิ์ที่เกี่ยวข้องมีส่วนร่วมหรือสนับสนุนโครงการเฉพาะ ความสามารถของอุปกรณ์และเครื่องมือขึ้นอยู่กับเอกสารเผยแพร่อย่างเป็นทางการที่เกี่ยวข้อง และผลลัพธ์ของโครงการขึ้นอยู่กับแบบจำลอง ตัวอย่าง อุปกรณ์ และเงื่อนไขการยอมรับจริง
ทรัพยากร Atlas ที่เกี่ยวข้อง
- การตรวจสอบด้วยภาพการประกอบที่แปลเป็นภาษาท้องถิ่นของจีนอย่างสมบูรณ์: กรณีศึกษาโครงการ Huawei Ascend Atlas
- Winge Technology ได้ทำการปรับภายในอุปกรณ์ของการตรวจสอบด้วยภาพการประกอบบน Atlas 200I DK A2 เสร็จสิ้นแล้ว
- งานทางเทคนิคใดบ้างที่รวมอยู่ในการปรับแต่งการตรวจสอบด้วยภาพ Atlas 200I DK A2
- ตั้งแต่การตรวจสอบชุดนักพัฒนา Atlas ไปจนถึงระบบการมองเห็นการผลิตที่แปลในประเทศจีน
- แพลตฟอร์ม Edge ของจีนสนับสนุนความสมบูรณ์ของการประกอบและการตรวจสอบชิ้นส่วนที่ขาดหายไปอย่างไร
- วิธีใช้งานและส่งมอบการตรวจสอบด้วยภาพในสถานที่ของชุดประกอบ Huawei Ascend Atlas
- การประมวลผลภาพด้วย Huawei Ascend Atlas
ออนไลน์
โทรศัพท์
WeChat
กลับไปด้านบน