ใช้ AI ตรวจจับใบหน้าคนในรูป
สมัยนี้ดูจะธรรมดาเกินไป คงเห็นกันทำเยอะแล้ว
เรามาดูผลงานวิจัย AI อีกเวอร์ชั่นหนึ่ง
ใช้ตรวจจับอารมณ์คนขณะเรียลไทม์ได้ด้วย … อะฮะไม่ธรรมดา
จาก paper ต้นฉบับ
“Real-time Convolutional Neural Networks for emotion and gender classification”
https://arxiv.org/abs/1710.07557
เทคนิคโดยย่อเขาจะใช้ Deep learning เป็นประเภท CNN (Convolutional Neural Networks)
โดยมันมีความสามารถตรวจจับ 2 อย่างในรูปภาพได้แก่
1) ตรวจสอบว่าเป็น เพศชาย เพศหญิง …มีความแม่นยำสูง ถูกต้อง 96%
2) ตรวจจับอารมณ์คน ….แต่ความแม่นยำยังต่ำอยู่ ถูกแค่ 66%
ซึ่งอารมณ์คนที่จับได้ มี 8 อย่าง ดังนี้
?angry?, ?disgust?, ?fear?, ?happy?, ?sad?, ?surprise?, ?neutral?
แปลเป็นไทย
?โกรธ?, ?รังเกียจ?, ?กลัว?, ?มีความสุข?, ?เศร้า?, ?แปลกใจ?, ?เฉยๆ?
ซึ่งเทคนิคนี้สามารถตรวจจับภาพหน้าคนได้ทั้งแบบภาพนิ่ง
หรือเป็นภาพวีดีโอก็ได้
ในระดับเรียลไทม์ ….ขอบอกเลย
แต่เท่าที่ลองจับอารมณ์คน
ก็ยังเห็นผิดพลาดเยอะอยู่นะ
ถ้าคนสีหน้านิ่งเกิ๊นไป ก็ตรวจไม่ได้
ถือว่าปราบเซียนอยู่เหมือนกัน
คิดไปคิดมา เปลี่ยนมาตรวจจับหน้าคนในละครแทนดีกว่า
เลยไปเอามาจากละคร “น้ำตากามเทพ” ของจีทีเฮช
เหตุผลนักแสดงเรื่องนี้ เขาเล่นโอเวอร์แอคติ้ง เล่นใหญ่ดี
ผลปรากฏว่าตรวจจับได้ดีขึ้นเยอะ
(แต่ก็ยังมีผิดอยู่ เอ่อๆ บ้าง)
ทั้งนี้ในคลิปที่เห็นข้างบน จะตรวจจับอารมณ์คนอย่างเดียว
จะเห็นเป็นกรอบสี่เหลี่ยมครอบหน้าคน
แล้วขึ้นข้อความบอกว่าสีหน้าอารมณ์ตอนนี้คืออะไร?
แต่ไม่ได้โชว์เพศชาย หรือหญิงให้ดูนะบอกก่อน
ใครสนใจอยากลองทำ
ก็เชิญดูโค้ดเขาตามนี้เลยครับ
มันเป็นของงานวิจัยเขาโดยตรง
https://github.com/oarriaga/face_classification/
ทั้งนี้โค้ดสามารถอ่านจากรูปภาพ
หรือจากกล้องเวบเคมก็ได้ …ชีวิตดีดี
ภาษาที่ใช้เป็น python ครับผม
แต่เท่าที่ลองรัน ก็เจอผู้สร้างวางยา ยังมีบั๊กอยู่นะครับ ฮ่าาาา
ยังไงก็เอาไปศึกษาได้
หรือจะไปต่อยอด ….ทำให้เหนือกว่าเขาก็ได้ครับ
หมายเหตุ ในคลิปข้างบนผมใส่เสียงพูดตัวละครเข้าไป เพื่ออรรถรสในการชม
วิธีติดตั้งและใช้งาน
ในหัวข้อนี้ผมจะพูดถึงการติดตั้งโปรเจค face_classification ของงานวิจัยเขานะครับ
ซึ่งจะเป็นแบบคอมมานไลน์ทั้งหมด อ้างอิงบนวินโดวส์นะครับ
1) แนะนำให้ลง Anaconda ซึ่งเป็นแพลตฟอร์มสำหรับงาน machine learning และ Deep learning โดยเฉพาะ
ทำให้เราสามารถใช้ python ได้ ลิงค์ดาวน์โหลด https://www.anaconda.com/download/
2) ดาวน์โหลดแพ็กเกจเป็น zip จากโปรเจคต้นตำรับ
https://github.com/oarriaga/face_classification
ดาวน์โหลดเสร็จก็แตกไฟล์ด้วยครับ
ถ้าใครใช้ git เป็น ก็ใช้คำสั่งบนคอมมานไลน์
git clone https://github.com/oarriaga/face_classification.git
เดี่ยวโค้ดของโปรเจคจะดาวน์โหลดมาอยู่ที่เครื่องเรา (อย่าลืมต่อเน็ตด้วย)
3) cd ไปไดเรคเทอรี่ที่เราดาวน์โหลดโค้ด
cd face_classification
pip install -r requirements.txt
pip install keras pip install tensorflow pip install pandas pip install numpy pip install h5py pip install statistics pip install opencv-python
6) ก่อนจะรันให้ cd เข้าไปที่ src ซึ่งไฟล์ที่ใช้รันจะอยู่นั้น
cd src
ถึงตอนนี้ควรอยู่ที่โฟลเดอร์ face_classification/src นะครับ อย่าผิดโฟลเดอร์ละ
7) ตัวอย่างคำสั่งที่รันแบบตรวจจับในภาพเพียงอันเดียว
python image_emotion_gender_demo.py ../images/test_image.jpg
คำสั่งข้างบนมันจะไปเอาไฟล์ test_image.jpg ที่อยู่ในไดเรคเทอรี่ images (อยู่ระดับเดียวกับ src)
นำมาตรววจับทั้งสีหน้าอารมณ์คนและเพศสภาพ
ส่วนเอาท์พุตต้องไปดูโค้ดในไฟล์ src/image_emotion_gender_demo.py
cv2.imwrite('../images/predicted_test_image.png', bgr_image)
โดยผลลัพธ์มันทิ้งไว้เป็นไฟล์ /images/predicted_test_image.png (เข้าไปแก้โค้ดได้ครับ ถ้าอยากให้เอาท์พุตอยู่ที่อื่น)
ข้างล่างจะเป็นผลลัพธ์ จากการใช้ไฟล์ตัวอย่าง test_image.jpg ของงานวิจัยเขามาเป็นกรณีศึกษา ซึ่งมันจะโชว์ทั้งเพศ และอารมณ์สีหน้าออกมา
โดยเบื้องหลังการทำงาน จะใช้ 3 โมเดล ซึ่งพอวาดรูปได้ดังต่อไปนี้ครับ
8) สำหรับคำสั่งรันผ่านกล้องเว็บแคมให้ทำงานแบบเรียลไทม ก็คำสั่งนี้ครับ (ตรวจจับสีหน้าอารมณ์อย่างเดียว ไม่ได้ตรววจับเพศ)
python video_emotion_color_demo.py
ถ้าต้องการตรวจจับทั้งอารมณ์ และเพศด้วยก็ใช้คำสั่งข้างล่างนี้
python video_emotion_gender_demo.py
9) ถ้าใครใช้ docker ก็ลองดูได้ครับ (ผมยังไม่ได้ลอง)
docker pull ekholabs/face-classifier docker run -d -p 8084:8084 --name=face-classifier ekholabs/face-classifier curl -v -F image=@[path_to_image] http://localhost:8084/classifyImage > image.png
หมายเหตุ โปรเจคนี้มีบั๊กพอควร นะครับ ผมจึงเขียนได้เท่าที่เขียนครับ
ถ้าสงสัยมีปัญหาก็ติดต่อทีมงานวิจัยโดยตรงดีกว่า
เพราะอนาคตตัวโปรเจคอาจเปลี่ยนแปลงได้
https://github.com/oarriaga/face_classification
บทความ AI อื่นๆ ที่น่าสนใจ
- วิชาเลขตอนม.ปลาย นำไปใช้ในวิชาคอมขั้นสูงอะไรบ้าง?
- ใช้ AI เขียนหนังสือเอง ซึ่งอาจถูกนำไปใช้ในทางที่ผิดได้
- เห็นหน้าคนปุ๊บก็รู้ว่าชื่ออะไร ด้วยเทคโนโลยีจดจำใบหน้า Face recognition
- ตรวจจับภาพลามก อนาจาร ด้วยความแม่นยำสูงเวอร์ ด้วย AI
- สุดล้ำใช้ AI แต่งดนตรี
- รู้จำเสียงพูด Speech Recognition ด้วย JavaScript ง่ายนิดเดียว
- ใช้ AI เล่มเกมอัตโนมัติ
- ใช้ AI ตรวจจับการเคลื่อนไหวของมนุษย์แบบเรียลไทม์
- ใช้ AI ตรวจจับใบหน้า อารมณ์คน และเพศ
- ใช้ AI แปลงภาพขาวดำเป็นภาพสี
- ใช้ AI ลบภาพพื้นหลังออก
- ตรวจจับวัตถุในรูปภาพด้วยโค้ด AI แค่ 10 บรรทัด สู่การตรวจจับวัตถุแบบเรียลไทม์ และการทำ segmentation
- สร้าง Chat bots อย่างง่ายๆ ด้วย Python
- ตัดคำภาษาไทยโดยใช้ Deep learning (AI)
- ใช้ AI เขียนโค้ดอัตโนมัติ เพียงดูภาพหน้าจอ GUI ของโปรแกรม
- วิธีเขียนโค้ดดึงข้อมูลหุ้นไทย ด้วยภาษา Python (แจกโค้ดฟรี)
- ตัวอย่างใช้ AI เนรมิตรูปภาพ
- เป็นไปได้ไหม? ที่ AI จะมาเขียนโปรแกรมแทนโปรแกรมเมอร์
เขียนโดยแอดมินโฮ โอน้อยออก