เมื่อไม่กี่วันก่อน Instagram ออก Hyperlapse แอพสำหรับถ่ายวิดีโอแบบ Time Lapse จุดเด่นของมันคือการใช้งานง่าย และฟีเจอร์ "กันสั่น" ในระดับซอฟต์แวร์
หลังจากนั้นไม่นาน Instagram ก็ออกมาอธิบายเบื้องหลังการทำงานของอัลกอริทึมตัวนี้ (ที่เรียกกันภายในว่า Cinema) ว่าช่วยให้วิดีโอดูนิ่งได้อย่างไร
กระบวนการทำงานของมันคือ ดึงแค่เซ็นเซอร์ gyroscope กับเฟรมของวิดีโอแต่ละเฟรมมาประมวลผลหาค่าความแกว่ง (orientation) ของกล้องในแต่ละช่วงเวลา การประมวลผลหา orientation จะเกิดขึ้นแบบออฟไลน์
จากนั้นนำค่า orientation ที่ได้เข้ามาประมวลผลใน video filtering pipeline แบบเรียลไทม์ขณะเล่นวิดีโอเพื่อปรับแต่ง (ก่อนบันทึกวิดีโอสุดท้าย) เพื่อให้ได้เฟรมที่นิ่งออกมาเป็นผลลัพธ์
- กระบวนการประมวลผลช่วงหลังจะทำงานทีละเฟรม ดังนั้นเฟรมผลลัพธ์ที่ได้จะถูก crop หลังจากหมุนเอียงเฟรมให้พอดีกับเฟรมอื่นๆ แล้ว
- อัลกอริทึม Cinema จะถูกใช้เฉพาะกับเฟรมที่เลือกเท่านั้น (เช่น เลือกวิดีโอด้วยความเร็ว 6x คือเลือก 1 เฟรมจากทุก 6 เฟรม) เพื่อให้ประหยัดทรัพยากรการประมวลผล
ดูวิดีโอสาธิตการทำงานเพิ่มเติมได้จาก Instagram Engineering นะครับ
Comments
ภาพมันดูเป็นของปลอมแหะ รู้สึกเหมือนของไมโครซอฟท์วิจัยเลยอะ หรือยืมงานวิจัยมาทำแอพนะ
ของ Microsoft ประมวลผลออกมาเป็น 3 มิติครับแล้วเอามา render ใหม่ อันนี้ยังประมวลผลแค่ 2 มิติของ Microsoft ไม่ได้ใช้ข้อมูลจาก Gyro วิเคราะห์การแกว่งของภาพ แล้วปรับใหม่ให้นิ่ง
มีใน Lumia เลยหรือเปล่าครับ หรือ ยังวิจัยอยู่ครับ
Microsoft Research พัฒนาซอฟต์แวร์ปรับคลิปวิดีโอแบบมุมมองบุคคลที่หนึ่งให้นิ่งและเนียนขึ้น - Hyperlapse
ดึงค่ -> ดึงแค่เฉพะ -> เฉพาะ
I am Cortana.Nice to meet you.
เหตุผลที่ออก iOS ก่อนเพราะ gyroscope บน iOS ค่อนข่างจะแม่นหว่า Android รุ่นล่างๆเยอะเลยส่วนของ Android คงต้องรอ optimize อีกแปปนึงผมว่า
คิดว่าเป็นเพราะใน Android ต้องรองรับ Gyroscope หลากรุ่นกว่าด้วยครับเลยทำได้ช้ากว่า
ช่วงที่ตัวนี้ออกมาเหมือนผมเห็นข่าวแวบๆบอกว่า "API กล้องของ Android ต้องเปิดมากกว่านี้ถึงจะทำได้" น่ะครับ
ไม่รู้ไปอ่านจากไหน
Sony ใช้วิธีการอะไรไม่ทราบ แต่ Z2 ถ่ายวิดีโอนิ่งที่สุดในบรรดาเรือธงทั้งหมดของทุกค่าย
ทำได้ดีมากๆเลยครับสำหรับกำลังประมวลผลแค่นี้และในระยะเวลาการประมวลผลที่สั้นมากครับ โดยปกติพวก Tracking Software ทั่วไปในงานด้านนี้ใช้เวลานานและไม่ค่อยจะเนียนขนาดนั้นครับ การ Tracking ยังยึดหลัก Point Cloud แล้วสร้างมิติ XYZ Plane ขึ้นมาซึ่งยุ่งยากและนานกว่ามากเลยครับ การที่ใช้ Gyro ทำแบบนี้ได้โดยรู้ว่าภาพขยับ ภาพแพน ภาพเลื่อนเข้าเลื่อออก หรือสั่น กระตุก หรือมีการเปลี่ยนแปลงภายในของภาพนี่ถือว่าฉลาดมากๆเลยทีเดียวนะครับ
ตอนผมใช้ครั้งแรกรู้สึกทึ่งมากๆครับ เพราะมันใช้ทรัพยากรน้อย และทำได้ดีมากๆเลยครับ
จุดที่ Android ได้ใช้ช้ากว่า (มากๆ) เพราะกล้องของ iPhone มีแค่ไม่กี่รุ่นครับ การปรับตีบ และ Distortion ของภาพเพื่อเรียนรู้การขยับเลยง่ายกว่า (กล้องของฝั่ง Android มีหลากหลาย Hardware ก็หลากหลายครับ การจะทำให้ Software รู่ว่าตรงไหนเบี้ยว ตรงไหนขยับแค่ไหนต้องทดสอบกันเยอะอยู่นะครับในความคิดผม)
สำหรับหลายๆคนที่คิดว่ามันเฉยๆ .... ผมกลับคิดว่ามันน่าทึ่งมากๆทีเดียวครับ ยิ่งผมทำงานด้านนี้และได้ใช้วิธีการ Tracking ที่หลากหลายมาตลอดช่วง 6 ปีที่ผ่านมา จะเห็นเลยครับว่านี่มันกินทรัพยากรน้่อยมาก และทำได้ดีมากๆแล้วครับ
ขอบคุณครับ สวัสดีครับ