ออกแบบแบบจําลองการจัดประเภทรูปภาพบน Azure Sphere
ในสถานการณ์ดังกล่าว คุณได้รับมอบหมายให้ออกแบบระบบที่สามารถตรวจหากวางในรูปภาพได้ โซลูชันต้องทํางานแบบออฟไลน์ในสภาพแวดล้อมที่เป็นโฮสต์ เพื่อปฏิบัติตามข้อกําหนดคุณจะต้องใช้แบบจําลองเครือข่ายประสาทที่ดําเนินการจําแนกประเภทภาพแบบเรียลไทม์บน Azure Sphere (MT3620 Cortex-M4 core) โดยใช้ไลบรารี CMSIS-NN ของ Arm ไมโครคอนโทรลเลอร์เป็นระบบฝังตัวแบบวงจรที่มีขนาดกะทัดรัดซึ่งออกแบบมาเพื่อสร้างโซลูชันสําหรับการทํางานเฉพาะ โดยทั่วไปแล้ว ไมโครคอนโทรลเลอร์จะมีตัวประมวลผล หน่วยความจํา และอุปกรณ์ต่อพ่วงอินพุต/เอาต์พุต (I/O) บนชิปเดียว
Azure Sphere เป็นแพลตฟอร์มแอปพลิเคชันระดับสูงที่มีความปลอดภัยพร้อมด้วยคุณลักษณะการสื่อสารและการรักษาความปลอดภัยที่มีอยู่ภายในสําหรับอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต ประกอบด้วยหน่วยไมโครคอนโทรลเลอร์ (MCU) ที่มีความปลอดภัยเชื่อมต่อและเชื่อมต่อ (MCU) ระบบปฏิบัติการที่ใช้ Linux ระดับสูงที่กําหนดเอง (OS) และบริการความปลอดภัยบนคลาวด์ที่มีความปลอดภัยหมุนเวียนอย่างต่อเนื่อง
Azure Sphere MCU ได้รวมความสามารถในการประมวลผลแบบเรียลไทม์เข้ากับความสามารถในการเรียกใช้ระบบปฏิบัติการระดับสูง Azure Sphere MCU พร้อมกับระบบปฏิบัติการและแพลตฟอร์มแอปพลิเคชันช่วยให้สามารถสร้างอุปกรณ์ที่มีความปลอดภัยซึ่งเชื่อมต่ออินเทอร์เน็ตที่สามารถอัปเดตควบคุมตรวจสอบและรักษาไว้จากระยะไกลได้ การใช้อุปกรณ์เช่น Azure Sphere หมายความว่าคุณไม่จําเป็นต้องใช้เครื่องสเปคสูงหรือการคํานวณระบบคลาวด์เพื่อทํางาน ML แบบเรียลไทม์บนอุปกรณ์ Azure IoT Edge คุณสามารถทําได้อย่างรวดเร็วและมีประสิทธิภาพบนอุปกรณ์แบบฝังตัว
ในโมดูลนี้ เราใช้บอร์ด Azure Sphere MT3620 โปรดทราบว่าที่นี่คุณไม่ได้ใช้กล้องเพื่อตรวจหารูปภาพ แต่คุณจะต้องอัปโหลดรูปภาพแบบกําหนดเองลงในโครงการและจะเรียกใช้โครงการเพื่อตรวจหารูปภาพ (ในกรณีนี้คือรูปภาพกวาง)
คุณใช้ชุดข้อมูล CIFAR-10 ซึ่งได้รับการฝึกฝนกับ Caffe ในหน่วยนี้ เราจะอธิบายวิธีการปรับให้พอดีกับแบบจําลองที่จะทํางานบนอุปกรณ์ที่จํากัดทรัพยากร เช่น ไมโครคอนโทรลเลอร์ คุณต้องมีขั้นตอนเพิ่มเติมของการกําหนดปริมาณเนื่องจากแบบจําลองต้องมีขนาดเล็กเพื่อปรับใช้บนอุปกรณ์ที่บังคับ ต้องฝึกและสร้างปริมาณแบบจําลองจาก 32 บิตเป็น 8 บิต การทําปริมาณเป็นขั้นตอนสําคัญเพื่อให้สามารถปรับใช้แบบจําลองบน Azure Sphere วัตถุประสงค์ของการกําหนดปริมาณไม่ใช่เพื่อปรับปรุงความแม่นยําของแบบจําลอง การวัดปริมาณส่วนใหญ่จะลดขนาดของแบบจําลองโดยการแปลงแบบจําลองจุดทศนิยมลอยตัว 32 บิตเป็นแบบจําลองจุดทศนิยมคงที่ 8 บิต ขั้นตอนนี้มีผลกระทบน้อยที่สุดต่อความถูกต้อง แต่ช่วยให้แบบจําลองพอดีกับไมโครคอนโทรลเลอร์ เมื่อน้ําหนักคงที่หลังจากการฝึกคุณจะทราบช่วงต่ําสุด /สูงสุด พวกเขาจะ quantized หรือ discretized ถึง 256 ระดับโดยใช้ช่วงของพวกเขา นอกจากนี้ การกําหนดปริมาณยังช่วยปรับปรุงประสิทธิภาพการคํานวณโดยรวมอีกด้วย เมื่อการกําหนดปริมาณเสร็จสมบูรณ์ คุณต้องแปลงรูปแบบแบบจําลองเป็นรูปแบบ C ดังนั้นแบบจําลองของคุณจะสามารถปรับใช้บน Azure Sphere ได้
คําอธิบายด้านบนอธิบายโครงสร้างโดยรวม ในมอดูลนี้ คุณจะใช้ข้อมูลที่ได้ถูกวัดและแปลงแล้ว คุณจะเพิ่มข้อมูลเหล่านี้ลงในตัวอย่างโครงการของคุณและปรับใช้แอปพลิเคชันแบบเรียลไทม์บน Azure
คอมโพเนนต์ที่คุณจะใช้คือ:
บอร์ด Azure Sphere MT3620: MT3620 เป็น MCU ที่ได้รับการรับรองโดย Azure Sphere เป็นครั้งแรก MCU ที่ได้รับการรับรองจาก Azure Sphere เป็นไมโครคอนโทรลเลอร์ชนิดใหม่ที่มีความปลอดภัยและเชื่อมต่อกัน
ชุดข้อมูล CIFAR-10: ประกอบด้วยรูปภาพสี 60,000, 32x32 ในชั้นเรียน 10 ภาพ เอกสารอ้างอิงคือ CIFAR
เครือข่ายประสาท: เราใช้เครือข่ายประสาท 3 ชั้นที่ผ่านการฝึกอบรม
ไลบรารี CMSIS-NN: คอลเลกชันของเคอร์เนลเครือข่ายประสาทที่มีประสิทธิภาพซึ่งพัฒนาขึ้นเพื่อเพิ่มประสิทธิภาพการทํางานสูงสุดและลดจํานวนฟุตพริ้นท์หน่วยความจําของเครือข่ายประสาทบนแกนประมวลผล Cortex-M การอ้างอิงคือ ARM
แอปพลิเคชัน Hello World Real-Time: นี่คือแอปพลิเคชันตัวอย่างที่คุณจะปรับเปลี่ยน ซึ่งแสดงวิธีการสร้างแอปพลิเคชันตัวอย่างสําหรับแกนประมวลผลที่สามารถใช้งานแบบเรียลไทม์บนอุปกรณ์ Azure Sphere โดยใช้ Visual Studio Code
เพื่อสรุป คุณจะปรับเปลี่ยนโครงการแอปพลิเคชัน Hello World Real-Time ที่มีอยู่ ในโมดูลนี้ คุณจะลอกแบบที่เก็บตัวอย่าง ปรับการกําหนดค่าและอัปเดตซอร์สโค้ด นอกจากนี้ คุณยังจะเพิ่มไลบรารี CMSIS-NN ลงในโครงการตัวอย่าง และเรียกใช้ฟังก์ชันไลบรารีที่จะใช้ในโครงการของคุณ เมื่อคุณเรียกใช้โครงการ รหัสจะถูกปรับใช้โดยการถ่ายภาพอินพุตและจะแสดงเอาต์พุตบนตัวจําลองเทอร์มินัล