สวัสดีค่ะ วันนี้เรามีเรื่องน่าสนใจมาพูดถึง คือ ระบบจดจำใบหน้า AI(facial recognition AI system) ซึ่งถึงแม้อาจจะเป็นที่รู้จักกันโดยทั่วไป แต่ยังคงมีหลาย ๆ คนไม่รู้ถึงเบื้องหลังการสร้างระบบนี้ขึ้นมา เราจึงรวบรวมข้อมูลมาเรียบเรียงให้ผู้อ่านเข้าใจค่ะ
การสร้างระบบจดจำใบหน้า AI นั้นจำเป็นต้องใช้ความรู้เกี่ยวกับ computer vision, machine learning, และ deep learning และมีขั้นตอนหลายขั้น ได้แก่:
1. การเก็บข้อมูล: ขั้นตอนแรกคือการเก็บ dataset ขนาดใหญ่ของภาพใบหน้า dataset นี้ควรจะประกอบไปด้วยรูปภาพของผู้คนภายใต้แสงที่แตกต่างกัน รวมไปถึงท่าทาง, สีหน้า, และอายุต่างๆ
2. การประมวลผลล่วงหน้า (pre-processing): ชุดข้อมูลจำเป็นต้องถูกประมวลผลล่วงหน้าเพื่อเป็นการเตรียมพร้อมสำหรับการ Train การประมวลผลใบหน้าเพื่อเวลาใช้งานจริง ซึ่งอาจรวมไปถึงการปรับขนาด, การตัด (crop), การ normalize รูปภาพ, และการแปลงรูปภาพอื่น ๆ อีก เพื่อปรับปรุงให้ชุดข้อมูลมีคุณภาพโดยมีความหลากหลายมากขึ้น ทำให้เหมาะสมต่อขั้นตอนถัดต่อจากนี้มากขึ้น ขั้นตอนการประมวลผลล่วงหน้าที่มักพบโดยทั่วไป อาทิ:
1. การตรวจจับใบหน้า: ขั้นตอนแรกในการประมวลผลล่วงหน้าคือการตรวจจับใบหน้าในภาพ ซึ่งมีวิธีการทำหลายวิธี เช่น Haar cascades หรือการใช้โมเดล deep learning-based อย่าง MTCNN โดยเมื่อตรวจพบใบหน้าแล้วก็จะสามารถตัดรูปภาพหรือปรับให้มีขนาดหรือแนวตามมาตรฐานได้
2. การปรับขนาดรูป: รูปจะถูกปรับให้เป็นขนาด (size) มาตรฐานเพื่อช่วยให้มั่นใจว่าทุก ๆ รูปจะมีขนาด (dimension) ที่เท่ากัน ขั้นตอนนี้จำเป็นสำหรับการ Train โมเดล deep learning ที่ต้องใช้รูปภาพ input ที่มีขนาดเท่ากัน
3. การทำให้เป็นมาตรฐาน (normalization): ค่าพิกเซลในภาพสามารถทำให้เป็นค่ามาตรฐานเพื่อให้มีค่าเฉลี่ยและความแปรปรวนของหน่วย (unit variance) เป็นศูนย์ ทำให้กระบวนการ Train มีความมั่นคงมากขึ้นและสามารถปรับปรุงความแม่นยำของโมเดลได้
4. การเพิ่มข้อมูล: เทคนิคการเพิ่มข้อมูลสามารถถุกใช้เพื่อเพิ่มขนาดของชุดข้อมูลและทำให้ชุดข้อมูลมีความหลากหลายมากขึ้น โดยใช้เทคนิคต่าง ๆ เช่น การตัดแบบสุ่ม, การพลิก, การหมุน, และการกระตุกของสี ซึ่งจะสามารถสร้างภาพใหม่จากภาพที่มีอยู่
5. การจัดตำแหน่งใบหน้า: เทคนิคการจัดตำแหน่งใบหน้าจะถูกนำมาใช้เพื่อจัดใบหน้าในรูปภาพให้เป็นระบบพิกัดร่วมกัน (common coordinate system) โดยจะช่วยลดความแตกต่างในท่าทางและการแสดงออกและทำให้โมเดลสามารถประมวลผลได้อย่างมั่นคงมากขึ้นหากเผชิญหน้ากับปัจจัยที่สามารถทำให้เกิดความแตกต่างเหล่านี้
3. การ Train : ขั้นตอนถัดมาคือการ Train โมเดล deep learning ในชุดข้อมูลที่ประมวลล่วงหน้าแล้ว ซึ่งมีโมเดลหลายแบบที่สามารถใช้ในการจดจำใบหน้าได้ เช่น Convolutional Neural Networks (CNNs) โดยสำหรับขั้นตอนนี้เราสามาถใช้เครื่องมือและ library หลายชนิด ตัวอย่างเช่น:
- TensorFlow: TensorFlow เป็น library machine learning แบบ open-source ที่พัฒนาโดย Google ซึ่งมีเครื่องมือและ API หลายอย่างสำหรับการสร้างและ Train โมเดล deep learning ประกอบไปด้วยโมเดลสำหรับการจดจำใบหน้า
- Keras: Keras คือ library machine learning แบบ open-source อีกตัวที่ได้นับความนิยม ซึ่งมีอินเตอร์เฟซที่ user-friendly สำหรับการสร้างและ Train โมเดล deep learning และสามารถใช้งานในฐานะ back-end ร่วมกับ TensorFlow
- PyTorch: PyTorch เป็น library machine learning แบบ open-source ที่เป็นที่นิยม ซึ่งถูกพัฒนาโดย Facebook โดยมีเครื่องมือและ API หลายชนิดสำหรับการสร้างและ Train โมเดล deep learning ที่รวมถึงโมเดลการจดจำใบหน้า
- OpenCV: OpenCV เป็น library computer vision แบบ open-source ที่มีเครื่องมือและ API หลายอย่างสำหรับการประมวลผลรูปภาพและวิดีโอ โดยสามารถนำไปใช้ในการประมวลผลภาพล่วงหน้าและการจำแนกองค์ประกอบของใบหน้าซึ่งต้องใช้สำหรับการจดจำใบหน้า
- Dlib: Dlib เป็น library machine learning แบบ open-source ที่มีเครื่องมือและ API หลายอย่างสำหรับการประมวลผลใบหน้า รวมไปถึง task ของ computer vision อื่น ๆ เช่น การตรวจจับและติดตามวัตถุ
4. การทดสอบ: เมื่อตัวโมเดลได้ผ่านการ Train มาแล้ว ก็จะต้องนำไปทดสอบในชุดข้อมูลที่แยกออกมา ที่โมเดลไม่เคยเห็นมาก่อน ซึ่งเป็นไปเพื่อการประเมินประสิทธิภาพของโมเดลและเพื่อทำให้แน่ใจว่าโมเดลจะสามารถใช้งานกับรูปภาพใหม่ ๆ ได้
5. การปรับใช้: ขั้นตอนสุดท้ายคือการปรับใช้ระบบจดจำใบหน้า AI ซึ่งคือการรวมโมเดลที่ถูก Train เข้ากับแอปพลิเคชันหรือระบบที่สามารถทำการจับภาพ, ประมวลผลภาพโดยใช้โมเดลที่ถูก Train มา, และ output ใบหน้าที่ได้จำแนกและจดจำ
อย่างไรก็ตาม อยากจะขอกล่าวทิ้งท้ายไว้สักนิดว่าเทคโนโลยีนี้ยังมีเรื่องของความเป็นส่วนตัวที่ยังเป็นที่กังวลและถกเถียงกันอยู่ ดังนั้นเราจำเป็นจะต้องใช้งานอย่างมีความรับผิดชอบและมีจริยธรรมค่ะ