เหตุใดจึงต้องใช้ NN แบบ convolutional สำหรับงานตรวจสอบด้วยภาพผ่านการจับคู่แม่แบบ CV แบบคลาสสิก


9

ฉันมีการสนทนาที่น่าสนใจเกิดขึ้นจากโครงการที่เรากำลังทำอยู่: เหตุใดจึงต้องใช้ระบบตรวจสอบด้วยภาพของ 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 เป็นส่วนหนึ่งของอินพุตหรือวัตถุประเภทใด ๆ ที่สามารถเปลี่ยนรูป / ยืด / บีบ แต่ยังคงเป็น "ดี" และ ไม่มีข้อบกพร่อง (เช่นตุ๊กตาสัตว์, สายไฟ, ฯลฯ ) อยากได้ยินความคิดของคุณ :)


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

คำตอบ:


3

วิศวกรที่สงสัยว่าเสนอวิธี CV แบบดั้งเดิมสำหรับแอปพลิเคชันของคุณไม่เป็นนิสัย การใช้การจับคู่แม่แบบนั้นล้าสมัยมากและแสดงให้เห็นว่าทำงานได้ไม่ดีนัก อย่างไรก็ตามฉันคิดว่า CNN นั้นเกินขนาดขึ้นอยู่กับขนาดของชุดข้อมูลของคุณ

การจับคู่แม่แบบทำงานอย่างไร

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

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

เหตุใดจึงต้องใช้การเรียนรู้ของเครื่องแทน

เทคนิคการเรียนรู้ของเครื่องไม่เข้มงวด ซึ่งแตกต่างจากสิ่งที่ stmax กล่าวว่าCNNs สามารถที่จะพูดคุยชุดข้อมูลได้เป็นอย่างดี นั่นคือเหตุผลที่พวกเขามีพลังมาก เมื่อใช้ตัวอย่างสุนัข CNN ไม่จำเป็นต้องเห็นภาพของสุนัขทุกตัวที่มีอยู่เพื่อเข้าใจสิ่งที่ถือว่าเป็นสุนัข คุณสามารถแสดงภาพได้ 1,000 ภาพจากการค้นหาของ Google จากนั้นอัลกอริทึมจะสามารถตรวจสอบได้ว่าสุนัขของคุณเป็นสุนัขจริงหรือไม่ ความจริงที่ว่าอัลกอริธึมการเรียนรู้ด้วยเครื่องทำได้ดีมากโดยทั่วไปคือเหตุผลที่พวกเขาแทนที่เทคนิค CV โบราณทั้งหมด ตอนนี้ปัญหาคือปริมาณข้อมูลที่คุณต้องการในการฝึกอบรม CNN พวกเขามีข้อมูลที่เข้มข้นมาก

ฉันไม่คิดว่า 100 จุดข้อมูลเพียงพอที่จะฝึกอบรม CNN ที่แข็งแกร่ง เนื่องจากความซับซ้อนที่ลึกซึ้งของแบบจำลองเพื่อ จำกัด อคติที่คุณต้องเพิ่มจำนวนตัวอย่าง ฉันมักจะแนะนำ 100 ตัวอย่างสำหรับทุก ๆ คุณสมบัติสำหรับรุ่นลึกและ 10 ตัวอย่างสำหรับทุกคุณสมบัติสำหรับรุ่นตื้น ทุกอย่างขึ้นอยู่กับคุณสมบัติพื้นที่ของคุณ

สิ่งที่ฉันแนะนำ

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


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

1
นี่คือการทบทวนวรรณกรรมของการตรวจจับความผิดปกติ V. Chandola, A. Banerjee และ V. Kumar, "การตรวจจับความผิดปกติ: การสำรวจ", การสำรวจการคำนวณ ACM, ฉบับที่ 5 41, ไม่มี 3, p. 15, 2009.
JahKnows

5

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

แต่ไม่ว่า CNN จะเอาชนะการจับคู่เทมเพลตหรือไม่นั้นจะขึ้นอยู่กับงานเฉพาะและสิ่งที่คุณพยายามทำโดยเฉพาะ นี่คือวิทยาศาสตร์เชิงประจักษ์ ท้ายที่สุดวิธีที่คุณพบว่าใช้งานได้ดีกว่านั้นคือลองทั้งคู่ - หรือเรียนรู้จากผู้อื่นที่ได้ลอง (เช่นโดยการอ่านวรรณกรรม) ฉันไม่คิดว่าคุณจะหาทฤษฎีหรืออนุกรมวิธานที่จะมาแทนที่การประเมินเชิงประจักษ์เกี่ยวกับข้อมูลในโลกแห่งความเป็นจริง


5

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

คุณต้องการให้ NN เรียนรู้ "อะไรที่ไม่เหมือน PCB ที่ไม่มีข้อบกพร่องคือ PCB ที่มีข้อบกพร่อง" แต่จะเกิดอะไรขึ้นถ้ามันได้เรียนรู้ว่า "อะไรที่ไม่ได้ดูเหมือน PCB ที่ชำรุดก็คือ PCB ที่ไม่มีข้อบกพร่อง"?

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

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

ดังที่ DW กล่าวคุณจะต้องลองทั้งสองวิธีและหาวิธีที่ดีกว่า เพียงแค่ให้แน่ใจว่ามีชุดทดสอบที่ดีมากที่มีข้อบกพร่องใหม่ทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.