ฉันมีการสนทนาที่น่าสนใจเกิดขึ้นจากโครงการที่เรากำลังทำอยู่: เหตุใดจึงต้องใช้ระบบตรวจสอบด้วยภาพของ CNN ผ่านอัลกอริทึมการจับคู่แม่แบบ
พื้นหลัง: ฉันได้แสดงตัวอย่างของระบบการมองเห็นซีเอ็นเอ็นอย่างง่าย (เว็บแคม + แล็ปท็อป) ที่ตรวจพบว่าวัตถุชนิดใดชนิดหนึ่ง "แตก" / มีข้อบกพร่องหรือไม่ - ในกรณีนี้แผงวงจร PCB โมเดล CNN ของฉันแสดงตัวอย่างแผงวงจรที่เหมาะสมและชำรุด (ประมาณ 100 ภาพของแต่ละภาพ) บนพื้นหลังแบบคงที่ โมเดลของเราใช้เลเยอร์ Conv / maxpool สองสามตัวแรกของ VGG16 ที่ผ่านการฝึกอบรมล่วงหน้า (บน imagenet) และจากนั้นเราเพิ่มการฝึกอบรม / สระว่ายน้ำที่สามารถฝึกอบรมได้อีกสองสามอัน : (is_empty, has_good_product, has_defective_product)
รูปแบบการฝึกอบรมได้อย่างง่ายดายและถึง 99% การตรวจสอบตามมาตรฐานไม่มีปัญหา; เรายังได้รับการฝึกฝนด้วยการเพิ่มข้อมูลต่าง ๆ เนื่องจากเรารู้ว่าชุดข้อมูลของเรามีขนาดเล็ก ในทางปฏิบัติมันใช้งานได้ประมาณ 9 ครั้งจาก 10 ครั้ง แต่การแปลแบบสุ่ม / การหมุนของแผงวงจรเดียวกันสองสามครั้งจะทำให้มันอยู่ในชั้นตรงข้าม บางทีการเพิ่มข้อมูลเชิงรุกอาจช่วยได้ อย่างไรก็ตามสำหรับโครงการต้นแบบต้นแบบเรามีความสุข
ตอนนี้เรากำลังนำเสนอให้วิศวกรคนอื่นและเพื่อนร่วมงานของเขาและเขาได้โต้แย้งว่า NNs นั้นเกินความจริงสำหรับเรื่องนี้ควรใช้การจับคู่เทมเพลตทำไมเราถึงอยากทำ CNN
เราไม่มีคำตอบที่ดีว่าทำไมแนวทางของเราถึงดีกว่าในบางแอปพลิเคชัน (เช่นส่วนอื่น ๆ เพื่อตรวจสอบ) บางจุดที่เรานำมา:
1) แข็งแกร่งยิ่งขึ้นต่อการบุกรุก (ผ่านเช่นการเพิ่มข้อมูล)
2) สามารถเรียนรู้ออนไลน์เพื่อปรับปรุงระบบ (เช่นมนุษย์สามารถบอกได้ว่าซอฟต์แวร์ตัวใดที่ผิด)
3) ไม่จำเป็นต้องตั้งค่าขีด จำกัด เช่นเดียวกับในอัลกอริธึมการมองเห็นคอมพิวเตอร์แบบคลาสสิคพวกคุณคิดว่ามีข้อดีสำหรับระบบการตรวจสอบประเภทนี้ของ CNN หรือไม่? มันจะดีกว่าการจับคู่แม่แบบในกรณีใดบ้าง
ความคิดสุ่มอีกสองสามข้อเมื่อ NN ลึก ๆ อาจเป็นเทคโนโลยีสำหรับงาน: สำหรับระบบที่ต้องใช้การตรวจจับเชิงลึก 3D เป็นส่วนหนึ่งของอินพุตหรือวัตถุประเภทใด ๆ ที่สามารถเปลี่ยนรูป / ยืด / บีบ แต่ยังคงเป็น "ดี" และ ไม่มีข้อบกพร่อง (เช่นตุ๊กตาสัตว์, สายไฟ, ฯลฯ ) อยากได้ยินความคิดของคุณ :)