วันก่อน Facebook เปิดให้เรา ๆ สามารถอัปโหลดภาพที่ถ่ายด้วยโหมด Portrait บน iOS แล้วให้มองเห็นเป็นภาพสามมิติบนฟีด Facebook ได้เรียบร้อย น่าจะเห็นกันหมดแล้วเนอะ คนไทยเล่นกันเยอะมาก ซึ่งส่วนตัวพอเห็นแล้วก็แอบรู้สึกสนใจมาก ก็เลยไปนั่งศึกษาวันนึงเต็ม ๆ ถึงเทคนิคเบื้องหลังจนถึงการ Reverse Engeering เพื่อสร้างภาพ Portrait ขึ้นมาเองเพื่ออัปเป็น 3D Photo บน Facebook โดยไม่จำเป็นต้องถ่ายด้วย iPhone แต่อย่างใด ทำด้วย Photoshop หรือถ่ายด้วย Note 9 ก็ยังได้ วันนี้ก็เลยเอาที่ศึกษามาเล่าลงบล็อกให้ฟังกัน
เทคนิคเบื้องหลัง 3D Photo
คนที่เคยอัปแล้วก็จะรู้ว่าไม่ใช่ทุกรูปที่เราสามารถอัปโหลดเป็น 3D Photo ได้ แต่จะมีแค่รูปที่ถ่ายด้วยโหมด "Portrait" ของ iOS เท่านั้นที่จะสามารถแสดงผลเป็น 3D Photo บน Facebook ได้ ถามว่าทำไม ?
อันนี้ต้องบอกถึงคุณสมบัติพิเศษของภาพโหมด Portrait ก่อนว่า มันไม่ใช่ภาพธรรมดา ๆ นะ แต่เป็นภาพที่แอบซ่อนอีกภาพนึงเอาไว้ภายในไฟล์ ซึ่งภาพที่ซ่อนอยู่นั้นคือภาพ "ข้อมูลความลึก (Depth Map)" ซึ่งเก็บมาตอนถ่ายด้วยกล้องคู่นั่นเอง ด้วยข้อมูลตรงนี้ทำให้ซอฟต์แวร์รู้ว่าส่วนไหนของภาพอยู่ใกล้กล้อง ส่วนไหนอยู่ไกลกล้อง
ซึ่งก็เหมือนตาเราแหละ พอเรารู้ว่าวัตถุไหนอยู่ใกล้อยู่ไกล เราก็จะมองเห็นเป็นสามมิติได้ คราวนี้พอเป็นภาพ Portrait ที่มีข้อมูลความลึกแนบมาด้วย ซอฟต์แวร์มันก็เลยรู้แล้วว่าส่วนไหนของภาพมันลึกหรือตื้นแค่ไหน เราก็จะสามารถนำภาพนั้นมาสร้างเป็นโมเดล 3 มิติจำลองขึ้นมาและแสดงผลอย่างที่เห็นใน 3D Photo บนฟีด Facebook นั่นเอง มันตรงไปตรงมามาก แต่ก็ต้องใช้ความรู้หลายอย่างเหมือนกันในการทำให้สมบูรณ์ และผลออกมาก็เจ๋งมากกกกก ประทับใจ
อาจจะพอเข้าใจแต่คงยังไม่เห็นภาพ งั้นเราเอาภาพที่แกะ Depth Map ออกมาแล้วมาให้ดูเลยละกัน ! รับรองเห็นภาพทันที
ตัวอย่างภาพพร้อม Depth Map ของ iPhone X และ Note 9
ทั้งภาพ Portrait บน iPhone X และภาพ Live Focus บน Note 9 ล้วนใช้เทคนิคเดียวกัน (แต่เก็บข้อมูลไว้คนละแบบ) ซึ่งเราแกะตัว Depth Map ของทั้งภาพบน iPhone X และ Note 9 ออกมาเรียบร้อย ภาพออกมาเป็นดังนี้ !
iPhone X
อันนี้เป็นรูปและ Depth Map ที่แกะออกมาจากภาพ Portrait ของ iPhone X ครับ
โดยภาพฝั่งซ้ายคือภาพที่คนเห็น มีขนาด 3024x4032 พิกเซล ส่วนภาพฝั่งขวาคือภาพ Depth Map ที่ถูกซ่อนไว้ มีขนาด 576x768 พิกเซล (เล็กกว่าภาพจริง 5.25 เท่า) โดยสียิ่งเข้ามก็คือจะยิ่งไกล ส่วนสีขาว ๆ คือส่วนที่ใกล้ ก็จะเห็นว่าเก็บรายละเอียดความลึกได้น่าประทับใจมากเลยนะ ต้องยอมรับความสามารถด้านวิศวกรรมของ Apple เลย
Samsung Galaxy Note 9
ส่วนอันนี้เป็นรูปและ Depth Map ที่แกะออกมาจากภาพ Live Focus ของ Samsung Galaxy Note 9 ครับ
Depth Map ของ Note 9 จะต่างกันไปหน่อย โดยภาพส่วนซ้ายจะมีขนาดเท่ากันกับของ iPhone X คือ 3024x4032 พิกเซล แต่ภาพ Depth Map จะมีความละเอียด 756x1008 พิกเซล หรือเล็กกว่าภาพจริง 4 เท่า
ทางด้านระยะความลึกความตื้น โหมด Live Focus ของ Samsung จะเก็บสีที่กลับกับของ iPhone คือวัตถุที่อยู่ใกล้จะสีเข้ม ในขณะที่วัตถุที่อยู่ไกลจะสีอ่อน และรายละเอียดสีก็จะน้อยกว่าพอสมควร (สังเกตว่าส่วนใหญ่จะเทา ๆ ไม่มีดำปี๋กับขาวปืดเท่าไหร่)
ส่วนรายละเอียด Depth Map ก็จะเห็นได้ว่าดีพอสมควร แต่ก็แย่กว่าของ iPhone X เล็กน้อย ทั้งนี้เพราะว่าใช้บิตสีน้อยนั่นเอง
ตัวอย่างภาพ 3D Photo ที่ถ่ายด้วย iPhone X และ Note 9
ถึงแม้ว่าตอนนี้ภาพ 3D Photo จะอัปได้เฉพาะ iPhone ที่มีกล้องคู่เท่านั้น แต่จากการแกะไฟล์เมื่อวานทำให้เราสามารถสร้างภาพ Portrait ในฟอร์แมตของ Apple ขึ้นมาด้วยซอฟต์แวร์ได้ ก็เลยลองเอาภาพที่ถ่ายจาก Note 9 มาอัปเป็น 3D Photo ได้เช่นกัน และนี่คือผลลัพธ์ครับ
ภาพที่ 1
ถ่ายด้วย iPhone X
ถ่ายด้วย Samsung Galaxy Note 9
ภาพที่ 2
ถ่ายด้วย iPhone X
ถ่ายด้วย Samsung Galaxy Note 9
ก็เทียบผลลัพธ์กันเอาเองนะคร้าบ ไม่ได้แต่งอะไรเลยทั้งสิ้น ใช้ข้อมูลดิบ ๆ เลย
ภาพแฝดในแบบสามมิติ
เนื่องจากเราสามารถสร้างภาพฟอร์แมต Portrait ขึ้นมาเองได้ เราก็เลยสามารถเอาเทคนิคการซ้อนรูปแฝดเข้ามาใช้ร่วมกับ Depth Map ได้ด้วย และนี่คือผลลัพธ์ขอรับกระผมมม
ถ่ายด้วย iPhone X
ถ่ายด้วย Samsung Galaxy Note 9
แถม
อันนี้ลองใช้ Unity สร้างภาพ 3 มิติพร้อม Depth Map มา ผลออกมาก็ใช้งานได้สวยงามเลย
ทำอะไรแปลก ๆ ได้หลายอย่างเลยนะนี่ =D
สรุป
โดยรวมก็ได้ความรู้อะไรเยอะอยู่เหมือนกันจากการ Research ครั้งนี้ ใครถามว่ามีโอกาสที่ Android จะใช้ฟีเจอร์นี้ได้มั้ย ? ก็ตอบว่ามีนะ เห็นจากภาพด้านบนว่าภาพจาก Note 9 ก็อัปเป็น 3D Photo ได้ ข้อมูลมีเพียงพอ แต่ปัญหาใหญ่ ๆ คือ ภาพจากกล้องคู่ของแอนดรอยด์มันไม่มีมาตรฐาน ทำให้ภาพของแต่ละแบรนด์ล้วนอยู่คนละฟอร์แมตกันทั้งสิ้น รวมถึงของ Huawei ด้วย ดังนั้นคงต้องใช้เวลาหน่อยกว่าฟีเจอร์นี้จะ Roll Out ให้ครบทุกแบรนด์ครับ (และนี่เป็นสาเหตุว่าทำไมฟีเจอร์นี้ถึงออกบน iOS ก่อน)
และที่น่าสนใจคือ หลังจากลองเล่น ๆ ดูแล้ว พบว่าภาพจาก Note 9 อัปออกมาได้มิติสวยกว่าภาพจาก iPhone X ด้วยนะ อันนี้เป็นความคิดเห็นส่วนตัว แต่ก็ลองดูจากด้านบนเอา นี่รอเล่นแบบ Native ไม่ต้องนั่งแฮคเลย
ก็รอกันต่อปายยยชาวดอย เอ้ย ชาวดรอยด์ ~