fbpx
บล็อก 10 พฤศจิกายน 2022

มัดรวม 12 คำศัพท์สาย Artificial Intelligence – AI ที่คนสายเทคไม่ควรพลาด ep.1: Computer Vision

เมื่อโลกการตลาดมีภาษาของการตลาด และในวงการหุ้นหรือการลงทุนก็มีศัพท์เทคนิคเฉพาะที่นักลงทุนหรือ Trader ต้องรู้แล้วเข้าใจ ฉะนั้น คนที่สนใจเทคโนโลยี AI จึงจำเป็นต้องรู้คำศัพท์พื้นฐาน ถ้าอยากเข้าสู่วงการนักพัฒนาสายเทค หรือ Data Scientist เพราะ ‘ถ้าไม่รู้…เดี๋ยวจะคุยกับเขาไม่รู้เรื่อง’

วันนี้ บลูบิค จึงได้ทำการรวบรวมคำศัพท์พื้นฐานของ Computer Vision ซึ่งเป็นหนึ่งในสาขาย่อยของ AI ที่กำลังมาแรง เพราะเป็นเทคโนโลยีที่ทำให้คอมพิวเตอร์สามารถมองเห็น จดจำ ทำความเข้าใจและตอบสนองต่อข้อมูลประเภทรูปภาพ ซึ่งเทคโนโลยีนี้สำคัญอย่างยิ่งต่อการใช้งาน AI ในหลายอุตสาหกรรม ยกตัวอย่างเช่น การพัฒนา Self-Driving Car และ Facial Recognition Technology เป็นต้น

Computer Vision

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

Pixel

มาจากการผสมกันของคำว่า “Picture Element” (pix = picture, el = element) หมายถึงหน่วยโครงสร้างหลักที่ใช้ในการเก็บข้อมูลและแสดงผลรูปภาพดิจิทัล มักถูกแสดงในรูปช่องสี่เหลี่ยมเล็กๆ ไว้เก็บค่าความเข้มสีที่เรียกว่า pixel value ซึ่งรูปภาพดิจิตัลจะประกอบด้วยหลายๆ pixel รวมกันในลักษณะตาราง (grid) อย่างที่เราเห็นในหน่วยของรูปภาพโดยทั่วไป เช่น

Pixel Value

ค่าความเข้มสีที่ถูกเก็บใน pixel มีค่าเป็นตัวเลข ตั้งแต่ 0-255 โดยยิ่งเข้าใกล้ 0 หมายถึง มีความเข้มมาก แต่ถ้าเข้าใกล้ 255 จะมีความเข้มน้อย ซึ่งในรูปภาพสีขาวดำ ค่า pixel value 0 คือสีดำ ค่า pixel value 255 คือสีขาวส่วนในรูปภาพสีนั้นก็ใช้หลักการเดียวกัน เพียงแต่จะเปลี่ยนจากความเข้มสีขาวดำเป็นความเข้มของระบบสีที่เก็บแทน เช่น RGB , HSV เป็นต้น

Image Classification

Use case ประเภทหนึ่งในทาง Computer Vision เพื่อแยกแยะข้อมูลประเภทรูปภาพว่าเป็นกลุ่มไหน ภาพอะไร หรือมีสิ่งที่สนใจในภาพหรือเปล่าตามข้อมูลที่สอน เช่น แยกแยะภาพแมวกับสุนัข, ตรวจภาพทางการแพทย์ว่ามีเนื้องอกหรือไม่มี เป็นต้น

Object Detection

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

Segmentation

Use case ประเภทหนึ่งในทาง Computer Vision เพื่อระบุตำแหน่งแบบละเอียดและประเภทของสิ่งที่สนใจบนรูปภาพว่าแต่ละตำแหน่ง Pixel เป็น กลุ่มอะไร ซึ่งแบ่งออกเป็น 2 ประเภท คือ Semantic Segmentation กับ Instance Segmentation เช่น ตรวจจับบริเวณ pixel ที่เป็น ถนน ตึกอาคารและทางเท้า ในระบบรถยนต์ขับอัตโนมัติ เป็นต้น

Convolution Neural Network (CNN)

รูปแบบหนึ่งของ Neuron Network ที่มีความสามารถในการวิเคราะห์ข้อมูลประเภทรูปภาพได้ดี โดยทำหน้าที่สกัดเอาลักษณะสำคัญส่วนต่างๆ (feature map) ของภาพออกมา เช่น เส้น ขอบ มุม พื้นผิว ดวงตา ใบหน้า เป็นต้น เพื่อเป็นข้อมูลให้โมเดลสามารถเรียนรู้ในงานต่างๆได้อย่างแม่นยำและมีประสิทธิภาพ โดย CNN จะประกอบไปด้วย layer หลักพื้นฐานหลายประเภท ได้แก่ Input layer, Convolution layers (สำหรับสกัด feature), Pooling layers, Fully connected layers และ Output layer  ต่อกันเป็นโครงสร้างต่างๆในการใช้งานจริง ตัวอย่างเช่น Alexnet , VGG, ResNet, GoogLenet, และ MobileNet เป็นต้น

Convolution Layer 

เป็นชั้นโครงสร้างหลักใน CNN ที่ทำหน้าที่ในการสกัดข้อมูลเอาลักษณะสำคัญส่วนต่างๆ ของภาพออกมา กระบวนการในการสกัดจะคล้ายกับการ คูณ input ด้วย weight แบบใน neuron network ปกติ เพียงแต่ใน CNN weight มีรูปร่างเป็นเป็นตาราง (matrix) ที่เรียกว่า Kernel / Filter โดย kernel จะถูกเลื่อนไปยังแต่ละบริเวณของรูปภาพ เพื่อทำคำนวณและสกัดข้อมูลทีละส่วนไปเก็บไว้ในตารางใหม่ ที่เรียกว่า feature map หรือ activation map จนครบทั้งรูปภาพ ในชั้นนี้มี parameter ให้ปรับหลายตัวได้แก่ ขนาดของ Kernel , จำนวนของ Kernel , Stride และ Padding

Stride 

จำนวนก้าวหรือจำนวน pixel ในการเลื่อน Filter ไปให้ครบทั้งบริเวณของรูปภาพ  เช่น Stride 1 คือเลื่อน Kernel ไปทีละ 1 pixel,  Stride 2 คือเลื่อนไป 2 pixel ถ้า Stride เล็ก จะใช้เวลาคำนวณมากแต่ได้ข้อมูลที่ละเอียดกลับกันถ้า Stride มาก จะใช้เวลาคำนวณน้อยกว่าแต่ได้ข้อมูลไม่ละเอียดเท่า Stride น้อย 

Padding

การทำ Convolution จะทำให้ Input มีขนาดหรือมิติที่เล็กลง รวมทั้ง ข้อมูลบริเวณขอบๆ ของภาพมักไม่ถูกนำมาคำนวณได้อย่างเต็มที่เท่าพื้นที่ตรงกลาง Padding จึงเป็นเทคนิคในการเติมกรอบของข้อมูลนิยมเติมด้วย 0 ( zero padding)  เช่น ถ้า input เดิมมีขนาด 5 * 5  pixel Padding = 1  ก่อนการทำ convolution จะเติมกรอบขนาด 1 pixel ทุกด้าน กลายเป็น 7 * 7  pixel โดย padding นอกจากทำให้ Input มีขนาดเท่าเดิมหลัง Convolution และข้อมูลบริเวณขอบถูกนำมาคำนวณมากขึ้นแล้ว ยังช่วยทำให้สามารถสร้าง CNN ที่มีโครงสร้างที่ลึก (หลายชั้น) ได้อีกด้วย

Pooling

หลักการ subsampling หรือเลือกข้อมูลมาบาง pixel เพื่อลดการใช้ทรัพยากรและเวลาในการคำนวณโดยในการ sampling จะใช้ค่าสถิติเพื่อเลือกข้อมูลที่เป็นตัวแทน วิธีการ Pooling ที่นิยมใช้มี 2 ประเภท ได้แก่ 1) Max Pooling คือ การดึงมาเฉพาะข้อมูลที่มีค่ามากที่สุดในแต่ละบริเวณ และ 2) Average Pooling คือ การหาค่าเฉลี่ยของข้อมูลในแต่ละบริเวณ โดยส่วนใหญ่นิยมใช้ Max Pooling 

Fully Connected

เป็น Layer ที่รับ input เป็น feature map  ที่ได้จากการทำ Convolution และ Pooling Layers โดยจะมีการ Flatten หรือการแปลงมิติของข้อมูลให้เหมาะสมก่อนนำมาคำนวณใน Hidden layer และส่งต่อไป Output Layer เหมือนกับโครงสร้าง ANN ในงานต่างๆ ต่อไปเช่น classification