พื้นฐาน AI
วิธีการทำงานของการจำแนกประเภทภาพ
โทรศัพท์ของคุณสามารถระบุวัตถุได้อย่างไรโดยการถ่ายภาพวัตถุนั้นได้เพียงอย่างเดียว? วิธีการที่เว็บไซต์โซเชียลมีเดียติดแท็กคนในภาพโดยอัตโนมัติคืออะไร? สิ่งนี้ทำได้โดยใช้การรู้จำและจำแนกภาพที่ใช้ AI
การรู้จำและจำแนกภาพเป็นสิ่งที่ทำให้ความสำเร็จที่น่าประทับใจมากมายของปัญญาประดิษฐ์เป็นไปได้ แต่คอมพิวเตอร์เรียนรู้การตรวจจับและจำแนกภาพได้อย่างไร? ในบทความนี้ เราจะพูดถึงวิธีการทั่วไปที่คอมพิวเตอร์ใช้ในการตีความและตรวจจับภาพ แล้วเราจะดูวิธีการจำแนกภาพที่ได้รับความนิยมมากที่สุด
การจำแนกประเภทระดับพิกเซล vs. การจำแนกประเภทตามวัตถุ
เทคนิคการจำแนกประเภทภาพสามารถแบ่งออกเป็นสองประเภทหลัก: การจำแนกประเภทตามพิกเซล และการจำแนกประเภทตามวัตถุ
พิกเซลเป็นหน่วยพื้นฐานของภาพ และการวิเคราะห์พิกเซลเป็นวิธีการหลักในการจำแนกประเภทภาพ อย่างไรก็ตาม อัลกอริทึมการจำแนกประเภทสามารถใช้ข้อมูลสเปกตรัมภายในพิกเซลเดียวเพื่อจำแนกภาพหรือตรวจสอบข้อมูลพื้นที่ (พิกเซลที่อยู่ใกล้เคียง) พร้อมด้วยข้อมูลสเปกตรัม การจำแนกประเภทตามพิกเซลใช้ข้อมูลสเปกตรัมเท่านั้น (ความเข้มของพิกเซล) ในขณะที่การจำแนกประเภทตามวัตถุพิจารณา cảข้อมูลสเปกตรัมของพิกเซลและข้อมูลพื้นที่
มีเทคนิคการจำแนกประเภทต่างๆ ที่ใช้ในการจำแนกประเภทตามพิกเซล ซึ่งรวมถึงการหาค่าเฉลี่ยขั้นต่ำ การหาความน่าจะเป็นสูงสุด และการหาค่า Mahalanobis ขั้นต่ำ วิธีการเหล่านี้ต้องการให้รู้ค่าเฉลี่ยและความแปรปรวนของคลาส และ它们ทั้งหมดทำงานโดยการตรวจสอบ “ระยะทาง” ระหว่างค่าเฉลี่ยของคลาสและพิกเซลเป้าหมาย
การจำแนกประเภทตามพิกเซลมีข้อจำกัดเนื่องจากไม่สามารถใช้ข้อมูลจากพิกเซลที่อยู่ใกล้เคียงได้ ในทางกลับกัน การจำแนกประเภทตามวัตถุสามารถรวมพิกเซลอื่นๆ ได้ และดังนั้นจึงใช้ข้อมูลพื้นที่ในการจำแนกประเภทวัตถุ โปรดทราบว่า “วัตถุ” หมายถึงพื้นที่ต่อเนื่องกันของพิกเซล ไม่ใช่ว่ามีวัตถุเป้าหมายภายในพื้นที่พิกเซลนั้นหรือไม่
การประมวลผลข้อมูลภาพสำหรับการตรวจจับวัตถุ
ระบบการจำแนกประเภทภาพที่ทันสมัยและเชื่อถือได้ใช้หลักการจำแนกประเภทระดับวัตถุเป็นหลัก และสำหรับแนวทางเหล่านี้ ข้อมูลภาพจะต้องเตรียมไว้ในรูปแบบเฉพาะ วัตถุ/พื้นที่ต้องเลือกและประมวลผล
ก่อนที่ภาพและวัตถุ/พื้นที่ภายในภาพจะถูกจำแนกประเภทได้ ข้อมูลที่ประกอบเป็นภาพจะต้องถูกตีความโดยคอมพิวเตอร์ ภาพต้องถูกประมวลผลและเตรียมพร้อมสำหรับการป้อนเข้าไปในอัลกอริทึมการจำแนกประเภท และสิ่งนี้ทำได้โดยใช้การตรวจจับวัตถุ นี่เป็นส่วนสำคัญของการเตรียมข้อมูลและเตรียมภาพเพื่อฝึกเครื่องจำแนกประเภทที่ใช้การเรียนรู้ของเครื่อง
การตรวจจับวัตถุทำได้โดยใช้ วิธีการและเทคนิคต่างๆ ขั้นแรก ไม่ว่าจะมีวัตถุเป้าหมายหลายวัตถุหรือวัตถุเดียวจะส่งผลต่อวิธีการประมวลผลภาพ หากมีวัตถุเป้าหมายเพียงวัตถุเดียว ภาพจะผ่านการระบุตำแหน่งภาพ พิกเซลที่ประกอบเป็นภาพจะมีค่าจำนวนเชิงซึ่งถูกตีความโดยคอมพิวเตอร์และใช้เพื่อแสดงสีและเฉดสีที่เหมาะสม วัตถุเรียกว่า “กล่องขอบเขต” ถูกวาดรอบวัตถุเป้าหมาย ซึ่งช่วยให้คอมพิวเตอร์ทราบว่าส่วนใดของภาพที่สำคัญและค่าพิกเซลใดที่กำหนดวัตถุ หากมีวัตถุเป้าหมายหลายวัตถุในภาพ เทคนิคที่เรียกว่าการตรวจจับวัตถุจะถูกใช้เพื่อใช้กล่องขอบเขตเหล่านี้กับทุกวัตถุภายในภาพ

ภาพ: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
วิธีการประมวลผลอีกวิธีหนึ่งคือการแบ่งส่วนภาพ การแบ่งส่วนภาพทำงานโดยการแบ่งภาพทั้งหมดออกเป็นส่วนต่างๆ ตามคุณลักษณะที่คล้ายคลึงกัน พื้นที่ต่างๆ ของภาพจะมีค่าพิกเซลที่คล้ายคลึงกันเมื่อเทียบกับพื้นที่อื่นๆ ของภาพ ดังนั้น พิกเซลเหล่านี้จึงถูกจัดกลุ่มเข้าด้วยกันเป็นหน้ากากภาพที่สอดคล้องกับรูปร่างและขอบเขตของวัตถุในภาพ การแบ่งส่วนภาพช่วยให้คอมพิวเตอร์แยกคุณลักษณะของภาพที่จะช่วยในการจำแนกประเภทวัตถุ เช่นเดียวกับกล่องขอบเขต แต่ให้ป้ายกำกับระดับพิกเซลที่แม่นยำยิ่งขึ้น
หลังจากการตรวจจับวัตถุหรือการแบ่งส่วนภาพเสร็จสิ้น แล้วป้ายกำกับจะถูกใช้กับพื้นที่ที่ต้องการ ป้ายกำกับเหล่านี้จะถูกป้อนเข้าไปพร้อมกับค่าพิกเซลที่ประกอบเป็นวัตถุไปยังอัลกอริทึมการเรียนรู้ของเครื่องซึ่งจะเรียนรู้รูปแบบที่เกี่ยวข้องกับป้ายกำกับต่างๆ
อัลกอริทึมการเรียนรู้ของเครื่อง
เมื่อข้อมูลถูกเตรียมและป้ายกำกับแล้ว ข้อมูลจะถูกป้อนเข้าไปในอัลกอริทึมการเรียนรู้ของเครื่อง ซึ่งจะฝึกอบรมด้วยข้อมูลนั้น เราจะพูดถึงอัลกอริทึมการจำแนกประเภทภาพที่ใช้การเรียนรู้ของเครื่องที่พบบ่อยที่สุดด้านล่าง
K-Nearest Neighbors
K-Nearest Neighbors เป็นอัลกอริทึมการจำแนกประเภทที่ตรวจสอบตัวอย่างการฝึกอบรมที่ใกล้ที่สุดและดูป้ายกำกับของตัวอย่างเหล่านั้นเพื่อกำหนดป้ายกำกับที่เป็นไปได้มากที่สุดสำหรับตัวอย่างทดสอบ เมื่อพูดถึงการจำแนกประเภทภาพโดยใช้ KNN เวกเตอร์特徵และป้ายกำกับของภาพการฝึกอบรมจะถูกเก็บไว้ และเพียงเวกเตอร์特徵เท่านั้นที่ถูกป้อนเข้าไปในอัลกอริทึมระหว่างการทดสอบ เวกเตอร์特徵การฝึกอบรมและทดสอบจะถูกเปรียบเทียบกันเพื่อความคล้ายคลึงกัน
อัลกอริทึมการจำแนกประเภทโดยใช้ KNN นั้นง่ายมากและสามารถจัดการกับหลายคลาสได้อย่างง่ายดาย อย่างไรก็ตาม KNN คำนวณความคล้ายคลึงกันตามคุณลักษณะทั้งหมดเท่าๆ กัน ซึ่งหมายความว่าอาจมีการจำแนกผิดเมื่อได้รับภาพที่มีเพียงคุณลักษณะบางส่วนที่สำคัญสำหรับการจำแนกประเภทภาพ
Support Vector Machines
Support Vector Machines เป็นวิธีการจำแนกประเภทที่วางจุดในพื้นที่และวาดเส้นแบ่งระหว่างจุดเหล่านั้น โดยวางวัตถุในคลาสต่างๆ ตามด้านของเส้นแบ่งที่จุดเหล่านั้นอยู่ Support Vector Machines สามารถทำการจำแนกประเภทที่ไม่เชื่อมต่อได้โดยใช้เทคนิคที่เรียกว่า “ทริคเคอร์เนล” ในขณะที่ตัวจำแนกประเภท SVM มักจะมีความแม่นยำสูง แต่ข้อเสียที่สำคัญของตัวจำแนกประเภท SVM คือมักจะถูกจำกัดด้วยขนาดและความเร็ว โดยความเร็วจะลดลงเมื่อขนาดเพิ่มขึ้น
Multi-Layer Perceptrons (Neural Nets)
มัลติเลเยอร์เปอร์เซปตรอน หรือที่เรียกว่าโมเดลเครือข่ายประสาทเทียม เป็นอัลกอริทึมการเรียนรู้ของเครื่องที่ได้รับแรงบันดาลใจจากสมองของมนุษย์ มัลติเลเยอร์เปอร์เซปตรอนประกอบด้วยหลายเลเยอร์ที่เชื่อมต่อกัน โดยเลเยอร์เหล่านี้เชื่อมต่อกันเหมือนกับเซลล์ประสาทในสมองของมนุษย์ เครือข่ายประสาทเทียมสร้างสมมติฐานเกี่ยวกับความสัมพันธ์ระหว่างคุณลักษณะการป้อนเข้ากับคลาสของข้อมูล และสมมติฐานเหล่านี้จะถูกปรับเปลี่ยนไปตลอดการฝึกอบรม โมเดลเครือข่ายประสาทเทียมที่ง่ายๆ เช่น มัลติเลเยอร์เปอร์เซปตรอนสามารถเรียนรู้ความสัมพันธ์ที่ไม่เชื่อมต่อได้ และด้วยเหตุนี้จึงสามารถให้ผลลัพธ์ที่แม่นยำมากกว่าโมเดลอื่นๆ อย่างไรก็ตาม โมเดล MLP มีปัญหาเช่น ฟังก์ชันขาดที่ไม่เชื่อมต่อ
อัลกอริทึมการเรียนรู้ลึก (CNNs)

ภาพ: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
อัลกอริทึมการจำแนกประเภทภาพที่ใช้กันมากที่สุดใน thời gianนี้คือเครือข่ายประสาทเทียมแบบโคนโวลูชัน (CNNs) CNNs เป็นรูปแบบที่ปรับแต่งของเครือข่ายประสาทเทียมที่รวมเครือข่ายประสาทเทียมหลายเลเยอร์กับเลเยอร์พิเศษที่สามารถดึงคุณลักษณะที่สำคัญที่สุดสำหรับการจำแนกประเภทวัตถุได้ CNNs สามารถค้นหาคุณลักษณะของภาพได้โดยอัตโนมัติ สร้างและเรียนรู้คุณลักษณะเหล่านี้ ซึ่งช่วยลดความจำเป็นในการป้ายกำกับและแบ่งส่วนภาพด้วยตนเองเพื่อเตรียมภาพสำหรับอัลกอริทึมการเรียนรู้ของเครื่อง พวกมันยังมีข้อได้เปรียบเหนือเครือข่ายประสาทเทียม MLP เนื่องจากสามารถจัดการฟังก์ชันขาดที่ไม่เชื่อมต่อได้
เครือข่ายประสาทเทียมแบบโคนโวลูชัน ได้รับการตั้งชื่อตาม “การโคนโวลูชัน” ที่พวกมันสร้างขึ้น CNNs ทำงานโดยการนำฟิลเตอร์แล้วเลื่อนไปตามภาพ คุณสามารถนึกภาพสิ่งนี้ได้ว่าเป็นการมองเห็นส่วนของภูมิประเทศผ่านหน้าต่างที่สามารถย้ายได้ โดยมุ่งเน้นไปที่คุณลักษณะที่มองเห็นได้เฉพาะผ่านหน้าต่างในขณะใดขณะหนึ่ง ฟิลเตอร์ประกอบด้วยค่าจำนวนเชิงซึ่งถูกคูณด้วยค่าพิกเซลเอง ผลลัพธ์คือเฟรมหรือเมทริกซ์ใหม่ที่เต็มไปด้วยตัวเลขซึ่งแสดงถึงภาพเดิม การกระบวนการนี้จะทำซ้ำสำหรับจำนวนฟิลเตอร์ที่เลือก และจากนั้นเฟรมจะถูกรวมเข้าด้วยกันเป็นภาพใหม่ที่มีขนาดเล็กกว่าและซับซ้อนน้อยกว่าภาพเดิม เทคนิคที่เรียกว่า “การรวม” จะถูกใช้เพื่อเลือกค่าสำคัญที่สุดภายในภาพ และเป้าหมายคือให้เลเยอร์โคนโวลูชันสามารถดึงคุณลักษณะที่สำคัญที่สุดของภาพที่จะช่วยให้เครือข่ายประสาทเทียมรู้จักวัตถุในภาพ
เครือข่ายประสาทเทียมแบบโคนโวลูชัน ประกอบด้วยสองส่วนต่างๆ เลเยอร์โคนโวลูชันคือส่วนที่ดึงคุณลักษณะของภาพและแปลงคุณลักษณะเหล่านั้นให้เป็นรูปแบบที่เลเยอร์ประสาทเทียมสามารถตีความและเรียนรู้ได้ เลเยอร์โคนโวลูชันในช่วงแรกมีความรับผิดชอบในการดึงองค์ประกอบพื้นฐานของภาพ เช่น เส้นและขอบเขตที่ง่ายๆ เลเยอร์โคนโวลูชันในช่วงกลางเริ่มจับภาพรูปร่างที่ซับซ้อนกว่า เช่น เส้นโค้งและมุม เลเยอร์โคนโวลูชันที่ลึกและลึกกว่านั้นดึงคุณลักษณะระดับสูงของภาพ ซึ่งเป็นสิ่งที่ถูกส่งเข้าไปในเลเยอร์ประสาทเทียมของ CNN และเป็นสิ่งที่ตัวจำแนกประเภทเรียนรู้












