Tags:
Node Thumbnail

เมื่อไม่กี่วันก่อน Instagram ออก Hyperlapse แอพสำหรับถ่ายวิดีโอแบบ Time Lapse จุดเด่นของมันคือการใช้งานง่าย และฟีเจอร์ "กันสั่น" ในระดับซอฟต์แวร์

หลังจากนั้นไม่นาน Instagram ก็ออกมาอธิบายเบื้องหลังการทำงานของอัลกอริทึมตัวนี้ (ที่เรียกกันภายในว่า Cinema) ว่าช่วยให้วิดีโอดูนิ่งได้อย่างไร

กระบวนการทำงานของมันคือ ดึงแค่เซ็นเซอร์ gyroscope กับเฟรมของวิดีโอแต่ละเฟรมมาประมวลผลหาค่าความแกว่ง (orientation) ของกล้องในแต่ละช่วงเวลา การประมวลผลหา orientation จะเกิดขึ้นแบบออฟไลน์

No Description

จากนั้นนำค่า orientation ที่ได้เข้ามาประมวลผลใน video filtering pipeline แบบเรียลไทม์ขณะเล่นวิดีโอเพื่อปรับแต่ง (ก่อนบันทึกวิดีโอสุดท้าย) เพื่อให้ได้เฟรมที่นิ่งออกมาเป็นผลลัพธ์

No Description

  • กระบวนการประมวลผลช่วงหลังจะทำงานทีละเฟรม ดังนั้นเฟรมผลลัพธ์ที่ได้จะถูก crop หลังจากหมุนเอียงเฟรมให้พอดีกับเฟรมอื่นๆ แล้ว
  • อัลกอริทึม Cinema จะถูกใช้เฉพาะกับเฟรมที่เลือกเท่านั้น (เช่น เลือกวิดีโอด้วยความเร็ว 6x คือเลือก 1 เฟรมจากทุก 6 เฟรม) เพื่อให้ประหยัดทรัพยากรการประมวลผล

ดูวิดีโอสาธิตการทำงานเพิ่มเติมได้จาก Instagram Engineering นะครับ

Get latest news from Blognone

Comments

By: pasuth73
iPhoneWindows PhoneAndroidUbuntu
on 31 August 2014 - 09:54 #736571

ภาพมันดูเป็นของปลอมแหะ รู้สึกเหมือนของไมโครซอฟท์วิจัยเลยอะ หรือยืมงานวิจัยมาทำแอพนะ

By: deargerous
ContributoriPhoneAndroidWindows
on 31 August 2014 - 14:28 #736611 Reply to:736571
deargerous's picture

ของ Microsoft ประมวลผลออกมาเป็น 3 มิติครับแล้วเอามา render ใหม่ อันนี้ยังประมวลผลแค่ 2 มิติ
ของ Microsoft ไม่ได้ใช้ข้อมูลจาก Gyro วิเคราะห์การแกว่งของภาพ แล้วปรับใหม่ให้นิ่ง

By: aduly
Windows PhoneAndroidWindows
on 31 August 2014 - 14:42 #736619 Reply to:736611

มีใน Lumia เลยหรือเปล่าครับ หรือ ยังวิจัยอยู่ครับ

By: thanathornboss
ContributorWindows PhoneAndroidUbuntu
on 31 August 2014 - 10:02 #736572
thanathornboss's picture

ดึงค่ -> ดึงแค่
เฉพะ -> เฉพาะ


I am Cortana.
Nice to meet you.

By: birtbirt_p
iPhoneIn Love
on 31 August 2014 - 19:13 #736660

เหตุผลที่ออก iOS ก่อนเพราะ gyroscope บน iOS ค่อนข่างจะแม่นหว่า Android รุ่นล่างๆเยอะเลยส่วนของ Android คงต้องรอ optimize อีกแปปนึงผมว่า

By: tr
Writer
on 31 August 2014 - 19:28 #736665 Reply to:736660

คิดว่าเป็นเพราะใน Android ต้องรองรับ Gyroscope หลากรุ่นกว่าด้วยครับเลยทำได้ช้ากว่า

By: pepporony
ContributorAndroid
on 31 August 2014 - 20:01 #736681 Reply to:736660

ช่วงที่ตัวนี้ออกมาเหมือนผมเห็นข่าวแวบๆบอกว่า "API กล้องของ Android ต้องเปิดมากกว่านี้ถึงจะทำได้" น่ะครับ

ไม่รู้ไปอ่านจากไหน

By: ZicmA
Android
on 31 August 2014 - 22:20 #736713

Sony ใช้วิธีการอะไรไม่ทราบ แต่ Z2 ถ่ายวิดีโอนิ่งที่สุดในบรรดาเรือธงทั้งหมดของทุกค่าย

By: adamy
iPhoneAndroidBlackberryUbuntu
on 1 September 2014 - 00:03 #736734

ทำได้ดีมากๆเลยครับสำหรับกำลังประมวลผลแค่นี้และในระยะเวลาการประมวลผลที่สั้นมากครับ โดยปกติพวก Tracking Software ทั่วไปในงานด้านนี้ใช้เวลานานและไม่ค่อยจะเนียนขนาดนั้นครับ การ Tracking ยังยึดหลัก Point Cloud แล้วสร้างมิติ XYZ Plane ขึ้นมาซึ่งยุ่งยากและนานกว่ามากเลยครับ การที่ใช้ Gyro ทำแบบนี้ได้โดยรู้ว่าภาพขยับ ภาพแพน ภาพเลื่อนเข้าเลื่อออก หรือสั่น กระตุก หรือมีการเปลี่ยนแปลงภายในของภาพนี่ถือว่าฉลาดมากๆเลยทีเดียวนะครับ

ตอนผมใช้ครั้งแรกรู้สึกทึ่งมากๆครับ เพราะมันใช้ทรัพยากรน้อย และทำได้ดีมากๆเลยครับ

จุดที่ Android ได้ใช้ช้ากว่า (มากๆ) เพราะกล้องของ iPhone มีแค่ไม่กี่รุ่นครับ การปรับตีบ และ Distortion ของภาพเพื่อเรียนรู้การขยับเลยง่ายกว่า (กล้องของฝั่ง Android มีหลากหลาย Hardware ก็หลากหลายครับ การจะทำให้ Software รู่ว่าตรงไหนเบี้ยว ตรงไหนขยับแค่ไหนต้องทดสอบกันเยอะอยู่นะครับในความคิดผม)

สำหรับหลายๆคนที่คิดว่ามันเฉยๆ .... ผมกลับคิดว่ามันน่าทึ่งมากๆทีเดียวครับ ยิ่งผมทำงานด้านนี้และได้ใช้วิธีการ Tracking ที่หลากหลายมาตลอดช่วง 6 ปีที่ผ่านมา จะเห็นเลยครับว่านี่มันกินทรัพยากรน้่อยมาก และทำได้ดีมากๆแล้วครับ

ขอบคุณครับ สวัสดีครับ