ทดลองทำ Video Face Sentiment Analysis ด้วย Google Cloud Vision API และ Google Cloud Video Intelligence

Google Cloud Vision API สามารถทำ Face Detection ได้ อีกทั้งยังสามารถบอกได้ด้วยว่าใบหน้านั้นมีความรู้สึกอย่างไรเช่น สนุกสนาน เศร้า โกรธ หรือประหลาดใจเป็นต้น เมื่อนำ Google Cloud Vision API มารวมกับ Google Cloud Video Intelligence เราก็สามารถวิเคราะห์ซีนต่างๆ ของวิดิโอได้ว่าซีนไหนมีอะไรที่น่าสนใจบ้าง บทความนี้เราจะทดลองนำเอาวิดิโอจาก Youtuber ชื่อดังเจ้าหนึ่งมาลองวิเคราะห์ดู

 

 

 

ขั้นตอนการวิเคราะห์อารมณ์ในแต่ละซีน

ถ้ายังไม่ได้สมัคร Google Cloud Platform สามารถสมัคร Free Trial ได้ และสร้าง project ใน Google Cloud Console แล้ว ให้ติดตั้ง Google Cloud SDK (gcloud) ในที่นี้จะอ้างอิงระบบปฏิบัติการ Ubuntu เป็นหลัก ถ้าใช้ Microsoft Windows หรือ macOS สามารถใช้ Docker เพื่อเรียกใช้ Ubuntu ได้

 

1. ตัดวิดิโอออกเป็นภาพที่ความถี่ 1 fps

$ pip install youtube-dl
$ mkdir face-sentiment && cd face-sentiment
$ youtube-dl -f "best[height=720, ext=mp4]" https://www.youtube.com/watch?v=exYXWI3tIsQ
$ mv *.mp4 bearhug1.mp4
$ mkdir frames && cd frames
$ ffmpeg -i ../bearhug1.mp4 -vf fps=1 %d.png

 

2. นำภาพแต่ละเฟรมเข้า Google Cloud Vision API

$ pip install --upgrade google-cloud google-cloud-vision
$ gcloud auth application-default login
$ python face-sentiment.py

 

3. Upload วิดิโอขึ้น Google Cloud Storage เพื่อให้ Google Cloud Video Intelligence แบ่งซีนของวิดิโอ

$ wget https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/video/cloud-client/shotchange/shotchange.py
$ python shotchange.py gs://teera-ait/videos/bearhug1.mp4

ขั้นตอนนี้ใช้เวลาประมาณ 1 นาที จะได้ผลลัพธ์ดังนี้

Processing video for shot change annotations:
Finished processing.
        Shot 0: 0.0 to 5.96
        Shot 1: 6.0 to 7.84
        Shot 2: 7.88 to 13.12
        Shot 3: 13.16 to 14.44
        ...
        Shot 208: 917.64 to 926.04

จากนั้นนำผลลัพธ์ที่ได้แปลงเป็นไฟล์ CSV

$ cat shots.csv
n_shot,begin,end
0,1.0,5.96
1,6.0,7.84
2,7.88,13.12
3,13.16,14.44
...

 

4. นำข้อมูล Face Emotion จาก Google Cloud Vision API มาเรียงตามซีนที่วิเคราะห์ได้มาจาก Google Cloud Video Intelligence API

จะได้ผลลัพธ์เรียงตามซีนของวิดิโอที่มีความน่าสนใจดังนี้

https://youtu.be/exYXWI3tIsQ?t=4m8s  joy: 21 surprise: 1
https://youtu.be/exYXWI3tIsQ?t=2m14s joy: 17
https://youtu.be/exYXWI3tIsQ?t=2m39s joy: 16
https://youtu.be/exYXWI3tIsQ?t=2m92s joy: 11
https://youtu.be/exYXWI3tIsQ?t=3m33s joy: 10
https://youtu.be/exYXWI3tIsQ?t=3m52s joy: 10
https://youtu.be/exYXWI3tIsQ?t=8m41s joy: 10
https://youtu.be/exYXWI3tIsQ?t=8m69s joy: 10
https://youtu.be/exYXWI3tIsQ?t=2m62s joy: 9
https://youtu.be/exYXWI3tIsQ?t=2m72s joy: 9

ตัววิดิโอมีความยาวทั้งหมด 15:27 นาทีมีจำนวนเฟรมต่อ 1 วินาทีจำนวน 927 เฟรม Google Cloud Vision API ในส่วนของ Face Detection ให้ใช้ฟรีถึง 1000 ครั้งต่อเดือน ถ้าเกิน 1000 รูปราคาจะอยู่ที่ 1000 รูปละ $1.5 และ Google Cloud Video Intelligence Shot Detection ให้ใช้ฟรี 1000 นาทีแรก หลังจากนั้น $0.05 ต่อนาที

Google Cloud Vision API Pricing

Google Cloud Video Intelligence Pricing

Google Cloud Vision API และ Google Cloud Intelligence ยังสามารถทำอะไรได้อีกมากมาย เช่นนำข้อมูล 3D Landmark ไปทำ Face Alignment สำหรับการทำ Face Recognition หรือทำการวิเคราะห์ภาพเพื่อสืบค้นข้อมูลต่างๆ จากในภาพหรือวิดิโอได้ และในอนาคตอันใกล้มี Google AutoML ที่สามาถใช้งานกับ dataset ของเราเองได้อีกด้วย นอกเหนือจากที่กล่าวไปข้างต้น Google Cloud Platform ยังมีบริการ Machine Learning API อีกมากมายให้เลือกใช้สำหรับ Application ของเราอีกด้วย

Google Machine Learning Services
Credit: https://cloud.google.com/blog/big-data/2017/03/announcing-google-cloud-video-intelligence-api-and-more-cloud-machine-learning-updates

 

ผู้ที่สนใจสามารถสมัคร Google Cloud Platform เพื่อทดลองใช้งานได้ฟรี $300 ได้ที่
https://cloud.google.com/free หรือหากต้องการติดต่อเพื่อขอรายละเอียดเพิ่มเติมสามารถติดต่อได้ที่ https://cloud.google.com/contact




About Teera Laiteerapong

กำลังทำวิจัยปริญญาโทด้าน Machine Learning และ Computer Vision เพื่อร่วมเป็นส่วนหนึ่งในการพัฒนาคอมพิวเตอร์ให้เข้าใจสิ่งที่มนุษย์เห็น เวลาว่างหัดเล่นกีตาร์ ทำอาหาร และวิ่งมาราธอน

Check Also

SAP แพตช์ช่องโหว่ด้านความมั่นคงปลอดภัยประจำเดือนสิงหาคม

เมื่อวันอังคารที่ผ่านมา SAP เจ้าของผลิตภัณฑ์ ERP รายใหญ่ได้ออกแพตช์อุตช่องโหว่ด้านความมั่นคงปลอดภัยกว่า 27 รายการ อย่างไรก็ตามในแพตช์ชุดนี้ไม่มีช่องโหว่ระดับร้ายแรง

Intel เปิดตัว NUC รุ่นใหม่ มีหน่วยประมวผลกราฟฟิกในตัว เล่นเกมได้

Intel ได้ออกมาประกาศเปิดตัว Intel NUC kit และ Intel NUC mini PC รุ่นใหม่ที่ใช้หน่วยประมวลผล 8th Gen Intel® Core™ …