ทดลองทำ 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

พบบั๊กบน Facebook API รูปภาพของผู้ใช้กว่า 6.8 ล้านคนเสี่ยงหลุดสู่ภายนอก

Facebook ออกแถลงการณ์ พบบั๊กบน Application Programming Interface (API) สำหรับรูปภาพบนแพลตฟอร์มโซเชียลมีเดียของตน ซึ่งอาจทำให้บุคคลที่สามสามารถเข้าถึงรูปภาพของผู้ใช้กว่า 6,800,000 คนเกินกว่าที่กำหนดไว้ได้โดยไม่ได้รับอนุญาต

บทความพิเศษ: การใช้ AI ให้เกิดประโยชน์ต่อสังคมไทย

หลายปีก่อนผมได้ฟังการบรรยายของ Hans Rosling นักสถิติชื่อดังชาวสวีเดนที่ทำงานด้านการนำเสนอแผนภาพข้อมูล (data visualization) เขาฝันถึงแดชบอร์ดสำหรับวิกฤตทั่วโลก เขากล่าวว่า "เรามีแดชบอร์ดสำหรับรถยนต์แล้ว แต่เรายังไม่มีแดชบอร์ดสำหรับปัญหาใหญ่ๆ ที่มนุษย์กำลังเผชิญอยู่"