7.2. สิ่งที่ ML เปลี่ยนแปลง¶
โมดูล image มีวิธีการตรวจจับ แบบเดิม อยู่หลายวิธี -- find_features() สำหรับการตรวจจับใบหน้าแบบ Haar-cascade, find_eye() สำหรับตัวค้นหาม่านตาแบบตายตัว, find_hog() สำหรับสรุปทิศทางการไล่ระดับ, เส้นทาง find_keypoints() และ find_lbp() สำหรับจุดสำคัญโดยทั่วไป ทั้งหมดยังคงใช้งานได้ ทั้งหมดถูกแทนที่โดยไปป์ไลน์การเรียนรู้ของเครื่อง
7.2.1. การแบ่งแบบคลาสสิก: สรุปที่ออกแบบด้วยมือ การตัดสินใจที่เรียนรู้¶
ไปป์ไลน์วิสัยทัศน์แบบคลาสสิกเป็นกระบวนการสองขั้น ขั้นแรกแปลงพิกเซลดิบเป็นชุดตัวเลขกระชับที่เลือกมาเพื่อ สรุป สิ่งที่อยู่ในภาพ -- ไม่ใช่ค่าพิกเซลเอง แต่เป็นคำอธิบายสั้นกว่าว่ารูปแบบใดปรากฏที่ไหน ขั้นที่สองรับการสรุปนั้นและตัดสินใจ: ใบหน้าหรือไม่ วัตถุนี้หรือนั้น เป้าหมายเดียวกันหรือต่างกัน
การแบ่งมีความสำคัญเพราะสองขั้นมีผู้เขียนต่างกัน ขั้นแรกถูกเขียนโดยมนุษย์ มีคนนั่งตัดสินใจว่าความต่างของความสว่างระหว่างสี่เหลี่ยมเฉพาะสองรูปเป็นการสรุปที่ดีของบริเวณตา ว่าทิศทางขอบที่โดดเด่นในแต่ละเซลล์ของกริดเป็นการสรุปที่ดีของโครงร่างบุคคลที่ยืน ว่ารูปแบบสว่าง-หรือ-มืดรอบแต่ละพิกเซลเป็นการสรุปที่ดีของพื้นผิวเฉพาะที่ แต่ละตัวเลือกเหล่านั้นเป็นอัลกอริทึมที่เขียนด้วยมือ -- เขียน แก้จุดบกพร่อง และเผยแพร่ วิธีการแบบเดิมข้างต้นล้วนเป็นการสรุปประเภทนี้ที่กลายเป็นเครื่องมือมาตรฐาน:
find_features()สรุปหน้าต่างของภาพโดยรวมความสว่างภายในสี่เหลี่ยมหลายรูปและเปรียบเทียบผลรวม รูปแบบสี่เหลี่ยมถูกเลือกเพราะใบหน้ามนุษย์แสดงความแตกต่างสว่าง-ต่อ-มืดที่เชื่อถือได้: คิ้วเทียบกับแก้ม เบ้าตาเทียบกับหน้าผาก จมูกเทียบกับผิวหนังโดยรอบfind_hog()สรุปภาพโดยเดินกริดของเซลล์เล็กๆ และบันทึกว่าทิศทางขอบใดโดดเด่นในแต่ละเซลล์ กริดถูกเลือกเพราะโครงร่างของบุคคลที่ยืนให้รูปแบบทิศทางขอบที่จดจำได้โดยไม่คำนึงถึงเสื้อผ้าหรือแสงfind_lbp()สรุปบริเวณใกล้เคียงของแต่ละพิกเซลโดยเข้ารหัสว่าพิกเซลโดยรอบใดสว่างกว่าและใดมืดกว่า การเข้ารหัสถูกเลือกเพราะรูปแบบสว่างกว่า/มืดกว่าเหล่านี้จับพื้นผิวของพื้นผิวโดยไม่ขึ้นกับแสงโดยรวมfind_keypoints()ค้นหาจุดมุมในภาพและบรรยายบริเวณรอบแต่ละมุมในแบบที่คงเดิมเมื่อมุมถูกหมุน แผนการมุม-และ-การหมุนถูกเลือกเพราะมุมเดิมปรากฏซ้ำเมื่อมองฉากจากมุมต่างกัน
เมื่อการสรุปถูกเขียนด้วยมือแล้ว ขั้น การเรียนรู้ เล็กๆ บนนั้นสามารถรวมตัวเลขเข้าเป็นการตัดสินใจได้ อัลกอริทึมการตรวจจับใบหน้าประกอบขั้นการเรียนรู้เข้ากับการสรุปความต่างของสี่เหลี่ยม ฝึกอบรมบนภาพใบหน้าและไม่ใช่ใบหน้าที่มีป้ายกำกับเพื่อเรียนรู้ว่าชุดค่าต่างๆ ใดบ่งบอกถึงใบหน้า การสรุปทิศทางขอบป้อนเข้าขั้นการเรียนรู้ที่ฝึกอบรมบนภาพบุคคลและไม่ใช่บุคคลที่มีป้ายกำกับ ตัวบ่งชี้ลักษณะมุมป้อนเข้าขั้นการจับคู่ที่เรียนรู้ว่าให้น้ำหนักกับแต่ละมุมแค่ไหน ขั้นที่สองแต่ละขั้นเหล่านี้เป็นอัลกอริทึมการเรียนรู้ -- ขนาดเล็กตามมาตรฐานสมัยใหม่ แต่เป็นอัลกอริทึมการเรียนรู้
การแบ่งการมีส่วนสนับสนุนคือสิ่งสำคัญ มนุษย์มีส่วนสนับสนุน การสรุป เครื่องเรียนรู้ การรวมกัน การเพิ่มเป้าหมายใหม่หมายถึงการเขียนการสรุปใหม่
7.2.2. สิ่งที่โครงข่ายประสาทเทียมเปลี่ยนแปลง¶
โครงข่ายประสาทเทียม ลบการแบ่งออก ชั้นแรกๆ ของโครงข่ายทำงานสรุปที่อัลกอริทึมที่เขียนด้วยมือเคยทำ -- ตรวจจับขอบ มุม แท่งที่มีทิศทาง พื้นผิว ซึ่งเป็นสิ่งที่วิธีการแบบเดิมที่ระบุข้างต้นแต่ละวิธีถูกปรับแต่งให้ตรวจจับ -- แต่ไม่ได้เขียนด้วยมือ มัน ถูกเรียนรู้ จากข้อมูลฝึกอบรมเดียวกับที่ขั้นการตัดสินใจเรียนรู้จาก ในการผ่านการฝึกอบรมเดี่ยวที่ปรับทั้งสองซีกของโครงข่ายพร้อมกัน ชั้นที่ลึกกว่าทำการรวมกันที่ขั้นการเรียนรู้เล็กๆ บนการสรุปที่เขียนด้วยมือเคยทำ ก็ถูกเรียนรู้เช่นกัน ในการผ่านเดิม
การเปลี่ยนแปลงว่าใครออกแบบอะไรเป็นสิ่งสมบูรณ์:
มนุษย์ออกแบบ อินพุต -- เฟรมที่ถ่ายในขนาดและรูปแบบที่กำหนด
มนุษย์ออกแบบ ผลลัพธ์ -- รูปแบบของเทนเซอร์ผลลัพธ์ (คะแนนหนึ่งต่อคลาสสำหรับการจำแนกประเภท รายการกรอบสำหรับการตรวจจับ กริดจุดสำคัญสำหรับจุดสังเกต)
มนุษย์จัดหา ข้อมูลฝึกอบรมที่มีป้ายกำกับ -- ตัวอย่างของเป้าหมายและตัวอย่างของที่ไม่ใช่เป้าหมายเพียงพอที่กระบวนการฝึกอบรมมีสิ่งที่จะเรียนรู้
ทุกอย่างระหว่างอินพุตและผลลัพธ์ถูกสร้างโดยกระบวนการฝึกอบรม ไม่มีขั้นการเขียนการสรุปแยกต่างหาก ชั้นต้นๆ กลายเป็นตัวตรวจจับขอบและพื้นผิวไม่ใช่เพราะใครเขียนมันแบบนั้น แต่เพราะการตรวจจับขอบและพื้นผิวคือสิ่งที่ทำให้การทำนายของโครงข่ายตรงกับป้ายกำกับ ชั้นที่ลึกกว่ากลายเป็นตัวตรวจจับรูปร่างและวัตถุด้วยเหตุผลเดียวกัน ทั้งสองซีกถูกฝึกอบรมพร้อมกัน ซึ่งทำให้การสรุปที่แต่ละชั้นผลิตเป็น สิ่งที่ ชั้นถัดไปต้องการแน่ๆ -- ไม่ใช่แบบทั่วไปที่ไปป์ไลน์ที่เขียนด้วยมือต้องยอมรับ
7.2.3. การเรียบเรียงกับโมดูล image¶
ไปป์ไลน์โครงข่ายประสาทเทียมยังคงถ่ายภาพผ่าน sensor APIs เดิม วาดผลลัพธ์ผ่านพื้นฐาน draw_rectangle() และ draw_circle() เดิม และกำหนดขอบเขตงานผ่าน ROI (x, y, w, h) เดิม ไปป์ไลน์ทั่วไปถ่ายเฟรม อาจค้นหาเป้าหมายหยาบๆ ด้วยตัวตรวจจับแบบคลาสสิกอย่าง find_blobs() และส่งกรอบล้อมรอบเป็น ROI ให้การอนุมาน รันการอนุมาน และใส่คำอธิบายการตรวจจับที่ส่งคืนกลับเข้าเฟรมต้นฉบับ พื้นฐานแบบคลาสสิกเป็นพื้นฐาน โครงข่ายเป็นขั้นตอนใหม่ตรงกลาง