ช่วยผู้ป่วยออทิสติกให้สามารถรับรู้อารมณ์บนใบหน้าของคนปกติด้วยแอปพลิเคชัน Emotion Detection

Jaws McAvoy
Mar 27 · 5 min read

“โปรเจคนี้เกิดขึ้นจากความร่วมมือของ BotnoiCV_Fundamental #Group 2”

1. บทนำ

อาการออทิสซึมคืออาการของผู้ป่วยออทิสติกที่เกิดจากความผิดปกติของสมองทำให้เกิดภาวะบกพร่องทางพัฒนาการ และการปฏิสัมพันธ์ทางสังคม สามารถสังเกตพบอาการออทิสซึมกับเด็กอายุไม่เกิน 3 ขวบ โดยประเทศไทยในตอนนี้ในเด็กอายุไม่เกิน 5 ขวบ พบเด็กที่มีอาการออทิสซึม 1 คนต่อเด็ก 161 คน (ข้อมูลจากจากกรมสุขภาพจิต กระทรวงสาธารณสุข)

ตัวละครผู้ป่วยออทิสติกจากซีรีส์ It ‘s Okay to Not Be Okay

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

ตัวละครผู้ป่วยออทิสติกกำลังพยายามฝึกอ่านสีหน้าจาก Flash Card ที่ติดบนผนังจากซีรีส์ It ‘s Okay to Not Be Okay

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

https://www.unlockmen.com/how-to-comfort-sad-people/

จากปัญหาที่ได้กล่าวมาข้างต้นจึงทำให้เกิดโปรเจคนี้ขึ้นเพื่อช่วยเหลือผู้ป่วยออทิสติก โดยเราจะทำการตรวจจับความรู้สึกจากสีหน้าท่าทาง (Emotion Detection)

2. วัตถุประสงค์ของโปรเจคนี้

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

https://www.youtube.com/watch?v=sAghTwKSEEw

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

https://www.pinterest.jp/pin/38139928067692540/

3. วิธีการทำงาน

ในส่วนนี้เราจะพูดถึงกระบวนการตั้งแต่การเริ่มหา Dataset จนไปถึงกระบวกการนำ model ที่ได้ ไปขึ้นระบบ cloud เพื่อนำมาใช้ใน Application โดยกระบวนการต่างๆ ถูกแบ่งออกเป็น 4 ส่วน หลักๆ ตาม Pipeline ดังนี้

3.1 Getting data

3.2 Preparing Data

3.3 Create & Train Model

3.4 Evaluate

3.1 Getting Data

เนื่องจากข้อมูล dataset นำมาใช้นั้น รูปภาพของคน จึงอาจจะต้องมีการดำเนินการอะไรบางอย่างเพิ่มเติม เพราะถือว่าเป็นข้อมูลส่วนบุคคล (Privacy Data) โดยในส่วนของการได้รับข้อมูลมานั้น เราขอแบ่งเป็น 2 ส่วน ได้แก่ งานวิจัยด้าน Data Science & Privacy Data และ Emotic Dataset ซึ่งจะอธิบายข้อมูลใน Dataset ต่อไป

3.1.1 งานด้าน Data Science กับ Privacy Data

เราน่าจะได้ยินข่าวเกี่ยวกับ พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล หรือ PDPA (Personal Data Protection Act) ซึ่งได้ประกาศบังคับใช้งานไปแล้ว และจะมีบทลงโทษตามกฏหมายในวันที่ 1 มิถุนายน 2564 โดยมีการกำหนดนิยามของข้อมูลว่าข้อมูลลักษณะใดเป็นข้อมูลส่วนบุคคล รวมทั้งกำหนดกรอบรูปแบบเกี่ยวกับการดำเนินการที่มีข้อมูลส่วนบุคคลนั้นเกี่ยวข้อง อีกทั้งยิงมีแนวทางการปฏิบัติต่างๆ (Thailand Data Protection Guidelines) เพื่อให้การดำเนินงานที่มีข้อมูลส่วนบุคคลมาเกี่ยวข้องเป็นไปอย่างถูกต้อง และปลอดภัย (ในต่างประเทศก็ต่างมีข้อกฏหมาย หรือข้อกำหนดเกี่ยวกับข้อมูลส่วนบุคคลเช่นเดียวกัน เช่น GDPR-General Data Protection Regulation)

https://www.slideshare.net/ETDAofficialRegist/ss-180583593

เนื่องจากโครงการในครั้งนี้มีข้อมูล Dataset ที่เกี่ยวข้องกับการทำนายอารมณ์จากใบหน้า ซึ่งมีแหล่งข้อมูลดังนี้

โดยที่ข้อมูลภาพใบหน้าบุคคลนั้นถือว่าข้อมูล ส่วนบุคคล หรือข้อมูลที่สามารถระบุถึงตัวตนได้ (PII-Personally Identifiable Information) ดังนั้นการนำข้อมูลเหล่านี้มาใช้งาน จึงมีผลเข้าข่ายดังนี้

ดังนั้นเพื่อให้เป็นไปตามข้อกำหนด ทางทีมงานจึงได้ดำเนินการดังนี้ (ประยุกต์ใช้แนวทางการจัดความสำคัญของข้อมูล Data Severity Classification เพื่อใช้กับโครงการในครั้งนี้)

1) ชุดข้อมูลที่สามารถเข้าถึงได้แบบสาธารณะ (Public Dataset)

2) ชุดข้อมูลที่ต้องขอเข้าถึงก่อน (Require Access Dataset)

3) ชุดข้อมูลที่ถูกระบุว่าห้างเผยแพร่ และห้ามส่งต่อ (Restricted Dataset)

3.1.2 Emotic dataset

Emotic dataset [1–2] เป็นเซตข้อมูลข้อมูลรูปภาพของคนที่ประกอบไปด้วย 23,571 ภาพ และมีการทำคำอธิบาย (annotation) ไว้ในตัวเซตข้อมูล 34,320 คน โดยข้อมูลเหล่านี้ได้เก็บมากจาก COCO dataset [3], Ade20k dataset [4] และมาจาก Google search engine โดยในส่วนของคำอธิบายนั้นประกอบไปด้วย 2 ส่วน คือ Continuous Dimension และ Emotion Categories

ตัวอย่างของข้อมูลใน emotic dataset ที่มีการกำหนดค่า Valence, Arousal, Dominance ในระดับต่างๆ
ตัวอย่างของข้อมูลแต่ละคลาสของเซตข้อมูล Emotic

[1] R. Kosti, J.M. Álvarez, A. Recasens and A. Lapedriza, “Context based emotion recognition using emotic dataset”, IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2019.

[2] R. Kosti, J.M. Álvarez, A. Recasens and A. Lapedriza, “Emotion Recognition in Context”, Computer Vision and Pattern Recognition (CVPR), 2017.

[3] COCO dataset : https://cocodataset.org/

[4] ADE20K dataset : https://groups.csail.mit.edu/vision/datasets/ADE20K/

3.2 Preparing Data

หลังจากเราได้รับ dataset มาแล้วนั้นเราพบว่า dataset ที่ได้รับมานั้นเป็นรูปแบบของไฟล์ MATLAB Data ซึ่งเราจำเป็นต้องทำการ Preprocess Data เพื่อดูข้อมูลด้านในว่ามีลักษณะเป็นอย่างไร โดยเริ่มจากการเข้าไปดู data ข้างในด้วยโปรแกรม MATLAB พบว่าข้อมูลข้างในนั้นถูกเก็บในลักษณะของ Structure ดังนี้

ข้อมูลนันถูกแบ่งในลักษณะของ Train data, Validation data และ Test data เป็นขนาด 23266, 3315 และ 7203 ตามลำดับ หลังจากนั้นเราจึงทำการ Generate ข้อมูลจาก MATLAB data เป็น Numpy Array Data ดังรูป

3.3 Create & Train Model

ในแอปพลิเคชันของกลุ่มเราจะใช้โมเดลที่ประกอบไปด้วย 2 ส่วนหลักๆ ได้แก่ object detection model และ emotion recognition model

3.3.1 Object detection model ในที่นี้เราใช้ Yolov3 ในการทำ object detection เพื่อหา bbbox ของคนในภาพ

3.3.2 Emotion recognition model เป็น convolutional neural network ประกอบด้วย 3 ส่วนย่อย ได้แก่

Emotion recognition architecture

3.4 Evaluate Model

จากการ train ข้อมูลด้วย Train data และ Validation data หลังจากผ่านไป 10 epochs โมเดลเริ่มเกิดการ Overfiting ของค่า loss ดังรูป ทำให้เราต้องเลือกหยุดการ train ที่ 10–11 epochs

4. ผลการใช้งานจริง

จากการทดสอบเรานำรูปถ่ายที่ได้มาลดขนาดให้เหลือเพียง 224 x 224 Pixels แล้วนำมาเข้าโมเดลเพื่อการทำนายอารมณ์เบื้องต้น ที่อาจมีการทำนาย Label ของอารมณ์ได้มากกว่า 1 อารมณ์ดังข้อมูลใน Dataset ที่อาจมีอารมณ์แฝง หรืออารมณ์ที่เข้าข่าย โดยเราจะยึดค่าความจะเป็นของอารมณ์ที่สูงที่สุดในการจำแนกอารมณ์ ในตัวอย่างนั้นเรานำรูปเด็กมาทำนายอารมณ์ (ขออนุญาตใช้ภาพถ่ายจากหนังสือของบริษัท Plan For Kid ในการทดสอบ) พบว่าสามารถจำแนกได้ว่า Happiness หรือมีความสุขที่ 80%

5. สรุป

จากการทดสอบการใช้งานจริง โปรเจคนี้ยังอยู่ในขั้นทดลองไม่สามารถใช้งานจริง ๆ ได้ เพราะสามารถรับ Input ได้แค่ภาพนิ่งยังไม่สามารถประมวลผลข้อมูลที่เป็น Real Time และไม่สามารถนำ Code Colab ไป Deploy ใช้งานบนมือถือได้ ถ้ามีโอกาสเราก็จะพัฒนาโปรเจคนี้ให้ใช้งานได้จริงในโอกาสถัดไป

6. ขั้นถัดไปของโปรเจคนี้

http://www.securitysystems.in.th/2018/05/face-recognition/

7. Colab Code

https://drive.google.com/file/d/1hCEB7Q0Hba-UB33tceL-NjIlfkg2WcrZ/view?usp=sharing

8. ผู้จัดทำ

botnoi-classroom

This publication consists of articles related to Data…

botnoi-classroom

This publication consists of articles related to Data science and AI written from Botnoi’s data scientists and students.

Jaws McAvoy

Written by

botnoi-classroom

This publication consists of articles related to Data science and AI written from Botnoi’s data scientists and students.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store