ต้นขั้ว การจำแนกประเภทรูปภาพทำงานอย่างไร - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

การจำแนกประเภทรูปภาพทำงานอย่างไร

mm
วันที่อัพเดท on

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

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

ระดับพิกเซลเทียบกับการจำแนกตามวัตถุ

เทคนิคการจำแนกภาพสามารถแบ่งออกเป็นสองประเภท: การจำแนกตามพิกเซล และการจำแนกตามวัตถุ

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

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

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

การประมวลผลข้อมูลภาพล่วงหน้าสำหรับการตรวจจับวัตถุ

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

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

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

ภาพถ่าย: Adrian Rosebrock ผ่าน Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

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

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

อัลกอริธึมการเรียนรู้ของเครื่อง

เมื่อเตรียมข้อมูลและติดป้ายกำกับแล้ว ข้อมูลจะถูกป้อนเข้าสู่อัลกอริทึมการเรียนรู้ของเครื่อง ซึ่งจะฝึกกับข้อมูล เราจะกล่าวถึงประเภทการเรียนรู้ของเครื่องที่พบบ่อยที่สุด อัลกอริธึมการจำแนกภาพ ด้านล่าง

K-เพื่อนบ้านที่ใกล้ที่สุด

K-Nearest Neighbors เป็นอัลกอริทึมการจำแนกประเภทที่ตรวจสอบตัวอย่างการฝึกที่ใกล้เคียงที่สุด และดูที่ป้ายกำกับเพื่อระบุป้ายกำกับที่เป็นไปได้มากที่สุดสำหรับตัวอย่างการทดสอบที่กำหนด เมื่อพูดถึงการจำแนกภาพโดยใช้ KNN เวกเตอร์คุณลักษณะและป้ายกำกับของภาพการฝึกอบรมจะถูกเก็บไว้ และมีเพียงเวกเตอร์คุณลักษณะเท่านั้นที่จะถูกส่งผ่านไปยังอัลกอริทึมในระหว่างการทดสอบ เวกเตอร์คุณสมบัติการฝึกอบรมและการทดสอบจะถูกเปรียบเทียบกันเพื่อความคล้ายคลึงกัน

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

สนับสนุนเครื่องเวกเตอร์

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

Perceptron หลายชั้น (Neural Nets)

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

อัลกอริทึมการเรียนรู้เชิงลึก (CNN)

รูปภาพ: APhex34 ผ่าน Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

อัลกอริธึมการจำแนกภาพที่ใช้บ่อยที่สุดในยุคปัจจุบันคือ Convolutional Neural Network (CNN) CNN เป็นเวอร์ชันที่ปรับแต่งของโครงข่ายประสาทเทียมที่รวมโครงข่ายประสาทเทียมหลายชั้นเข้ากับชั้นพิเศษที่สามารถแยกคุณลักษณะที่สำคัญที่สุดและเกี่ยวข้องกับการจำแนกประเภทของวัตถุได้ CNN สามารถค้นพบ สร้าง และเรียนรู้คุณลักษณะของภาพได้โดยอัตโนมัติ ซึ่งช่วยลดความจำเป็นในการติดป้ายกำกับและแบ่งส่วนรูปภาพด้วยตนเองได้อย่างมาก เพื่อเตรียมรูปภาพสำหรับอัลกอริธึมการเรียนรู้ของเครื่อง พวกเขายังมีข้อได้เปรียบเหนือเครือข่าย MLP เนื่องจากสามารถจัดการกับฟังก์ชันการสูญเสียที่ไม่นูนได้

Convolutional Neural Networks ได้ชื่อมาจากความจริงที่ว่าพวกเขาสร้าง "convolutions" CNN ทำงานโดยใช้ตัวกรองและเลื่อนไปเหนือรูปภาพ คุณสามารถคิดได้ว่านี่เป็นการดูส่วนต่างๆ ของภูมิทัศน์ผ่านหน้าต่างที่เลื่อนได้ โดยเน้นเฉพาะคุณลักษณะที่สามารถดูผ่านหน้าต่างได้ตลอดเวลา ตัวกรองประกอบด้วยค่าตัวเลขซึ่งคูณด้วยค่าของพิกเซลเอง ผลลัพธ์คือเฟรมหรือเมทริกซ์ใหม่ที่เต็มไปด้วยตัวเลขที่แสดงภาพต้นฉบับ กระบวนการนี้ทำซ้ำสำหรับจำนวนฟิลเตอร์ที่เลือก จากนั้นเฟรมจะถูกรวมเข้าด้วยกันเป็นภาพใหม่ที่มีขนาดเล็กกว่าเล็กน้อยและซับซ้อนน้อยกว่าภาพต้นฉบับ เทคนิคที่เรียกว่าการรวมภาพจะใช้เพื่อเลือกเฉพาะค่าที่สำคัญที่สุดภายในภาพ และเป้าหมายคือเพื่อให้เลเยอร์คอนโวลูชันนัลดึงเฉพาะส่วนที่เด่นที่สุดของภาพ ซึ่งจะช่วยให้โครงข่ายประสาทเทียมจดจำวัตถุในภาพได้ในที่สุด

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

บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม