$type=grid$count=3$meta=0$sn=0$rm=0$label=no$show=home

Google อธิบายหลักการทำงานของระบบกันสั่นวิดีโอใน Pixel 2









Google Pixel 2 และ Google Pixel 2 XL  เป็น 2 สมาร์ทโฟนที่ได้รับการยอมรับว่ามีกล้องที่ยอดเยี่ยม ถึงขนาดได้คะแนนจากเว็บไซต์ DxOMark ถึง 98 คะแนน โดยหนึ่งในจุดเด่นของสมาร์ทโฟนทั้ง 2 ตัวนี้คือระบบกันสั่นวิดีโอที่เกิดจากการทำงานร่วมกันทั้งฮาร์ดแวร์และซอฟต์แวร์ (EIS+OIS) ก่อให้เกิดให้ผลลัพธ์อันน่าทึ่ง ทาง Google ได้ออกมาอธิบายการทำงานผ่าน Google Research Blog ว่ากว่าจะเป็นผลลัพธ์สุดท้ายที่เราเห็น ต้องผ่านขั้นตอนอะไรบ้างหนึ่งในพื้นฐานของการถ่ายวิดีโอคือต้องให้ภาพเคลื่อนไหวที่นิ่งและราบรื่น เพื่อให้ผู้ชมไม่โดนกวนใจจากการเคลื่อนไหวของภาพที่ไม่ต้องการ และโฟกัสในจุดที่ควรโฟกัส แต่การถ่ายวิดีโอด้วยสมาร์ทโฟนมีหลายปัจจัยที่ทำให้การถ่ายวิดีโอให้นิ่งนั้นเป็นไปได้ยาก ปัจจัยเหล่านี้ประกอบไปด้วย

กล้องสั่น

เนื่องจากคนส่วนใหญ่ถ่ายวิดีโอด้วยสมาร์ทโฟนโดยการถือด้วยมือเปล่า นั่นหมายความว่าตัวกล้องจะสั่นไปตามการสั่นของมือคนถ่าย ดังเช่นวิดีโอตัวอย่างด้านล่าง

การเบลอจากการเคลื่อนไหว (Motion Blur)


หากกล้องหรือวัตถุในภาพเคลื่อนไหวขณะที่เราถ่าย อาจจะทำให้ภาพเกิดการเบลอได้ แม้ว่าเราจะนำวิดีโอมาทำการแก้ปัญหาการสั่นทีหลัง แต่การแก้ไขเฟรมที่เบลอไปแล้วนั้นเป็นไปได้ยาก ทำให้เกิดอาการ "sharpness inconsistency" ซึ่งเป็นอาการที่วิดีโอจะสลับไปมาระหว่างชัดกับเบลออย่างรวดเร็ว ตามวิดีโอตัวอย่างดด้านล่าง

ภาพล้ม (Rolling Shutter)

เซ็นเซอร์รับภาพในกล้องที่นิยมใช้ในปัจจุบันคือเซ็นเซอร์ชนิด CMOS วิธีการเก็บข้อมูลแสงของเซ็นเซอร์ชนิดนี้คือจะค่อยๆ เก็บข้อมูลทีละแถว (Scanline) คล้ายคลึงกับการทำงานของเครื่องปริ๊นท์แบบ Inkjet ที่เวลาพิมพ์จะค่อยๆ พิมพ์ทีละแถวจนเป็นภาพ การเก็บข้อมูลภาพจากแถวบนสุดมาล่างสุดจะใช้เวลา 10 มิลลิวินาที หากมีวัตถุที่เคลื่อนไหวด้วยความรวดเร็วกว่าช่วงเวลานั้นจะทำให้เกิดความบิดเบี้ยวของภาพขึ้น ดังเช่นวิดีโอด้านล่างที่ตึกเกิดอาการเอียงผิดรูปทรง


(ซ้าย) ปกติ | (ขวา) ภาพล้ม

โฟกัสไหล (Focus Breathing)


อาการ "โฟกัสไหล" เกิดจากการเปลี่ยนจุดโฟกัสภาพแล้วทำให้มุมมองภาพ (Angle of view) เปลี่ยนไป สังเกตจากวิดีโอตัวอย่างด้านล่างจะเห็นว่า เมื่อเอามือมาไว้ที่หน้ากล้อง พอกล้องโฟกัสที่มือ มุมมองภาพที่เก็บได้จะแคบลง โดยสังเกตที่ตึกสีขาวด้านซ้ายมือจะเห็นชัดเจนที่สุด

ในระบบกันสั่นที่มีคุณภาพจะสามารถจัดการกับปัญหาเหล่านี้ได้ แต่ระบบกันสั่นที่มีคณภาพนั้นมีราคาแพงและมีขนาดใหญ่ แม้เราจะมี Gimbal สำหรับใช้กับสมาร์ทโฟนที่มีขนาดเล็กกว่ามาก แต่มันก็ยังเป็นอุปกรณ์ที่ต้องต่อแยกออกมาจากสมาร์ทโฟนก่อนใช้งาน ไม่สามารถหยิบขึ้นมาถ่ายได้ทันที ไม่คล่องตัวเหมือนใช้สมาร์ทโฟนเพียงอย่างเดียว
วิธีลดอาการสั่นที่ได้รับความนิยมที่สุดคือ Optical Image Stabilization (OIS) โดยการขัยบตัวเลนส์กล้องไปมาเพื่อตัดการสั่นจากมือของเรา แต่ระบบนี้มีข้อเสียคือ ระยะที่เลนส์สามารถขยับได้นั้นมีจำกัด สามารถลดการสั่นได้เพียง 1-2 องศาเท่านั้น ซึ่งหลายจังหวะไม่เพียงพอต่อการใช้งาน และ OIS ไม่สามารถแก้การสั่นบางประเภทได้ เช่น การสั่นที่เกิดจากการหมุนในระนาบเดียว หรือที่เรียกว่า "Jello Effect" ดังวิดีโอตัวอย่างด้านล่าง

การลดการสั่นอีกวิธีคือ Electronic Image Stabilization (EIS) จะทำการวิเคราะห์การเคลื่อนไหวของกล้อง ตรวจหาการเคลื่อนไหวที่ไม่ต้องการ และนำข้อมูลที่ได้มาปรับเปลี่ยนภาพแต่ละเฟรมให้ได้วิดีโอใหม่ที่ไม่มีการเคลื่อนไหวที่ไม่ต้องการ คุณภาพของผลลัพธ์ที่ได้ขึ้นอยู่กับอัลกอริทึมและความสามารถในการปรับปรุงวิดีโอ การใช้ EIS นั้นมีความยืดหยุ่นกว่า OIS สามารถแก้ไขอาการสั่นได้มากกว่า และหลายรูปแบบกว่า อย่างไรก็ตาม EIS เองก็มีข้อจำกัดของมัน คือการเข้าไปปรับแต่งภาพแต่ละเฟรมจะต้องแลกมาด้วยมุมมองภาพที่แคบลงและความละเอียดที่ลดลง นอกจากนั้น EIS ยังต้องการใช้พลังในการประมวลผลสูง ซึ่งมีจำกัดในสมาร์ทโฟน ทาง Google จึงได้เลือกใช้ทั้ง 2 ทางในการลดการสั่นของวิดีโอเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ซึ่ง Google เรียกวิธีนี้ว่า Fused Video Stabilization
Fused Video Stabilization มีทั้งหมด 3 ขั้นตอน คือ Motion analysis, Motion filtering และ Frame synthesis ตามแผนภาพด้านล่าง

Motion analysis

เครื่องจะนำข้อมูลจาก Gyroscope ความไวสูงมาคำนวณการหมุนของกล้องในแกน Roll, Pitch และ Yaw ซึ่งเราจะตรวจการเคลื่อนไหวของกล้องด้วยความถี่ 200 Hz ทำให้เราทราบการเคลื่อนไหวของเซ็นเซอร์ในแต่ละ scanline และนำข้อมูลนี้มาแก้ปัญหาภาพล้ม (Rolling Shutter) นอกจากนั้นยังมีการเก็บข้อมูลจากการเคลื่อนที่เข้าออกของเลนส์เวลาโฟกัส (แกน Z) และการเคลื่อนที่ของ OIS (แกน X และ Y) ด้วย ขั้นตอนนี้ต้องการความละเอียดในการระบุเวลาของตำแหน่งเลนส์ ตำแหน่ง Gyro และตำแหน่ง OIS อย่างถูกต้องและแม่นยำ เพราะหากมีการใส่เวลาคลาดเคลื่อนเพียงไม่กี่มิลลิวินาที เมื่อนำข้อมูลเหล่านี้มาปรับภาพจะทำให้เกิดการคลาดเคลื่อนแบบ "Jittering" ได้ ตามตัวอย่างวิดีโอด้านล่าง
 แผนภาพระบุการเคลื่อนไหวตามแกนต่างๆ

(ซ้าย) วิดีโอที่ระบุเวลาพลาดไป 3 มิลลิวินาที | (ขวา) วิดีโอที่ระบุเวลาถูกต้อง

Motion filtering

ขั้นตอนนี้จะนำข้อมูลการเคลื่อนไหวของกล้องจากขั้นตอน Motion analysis มาทำแบบจำลองการเคลื่อนไหวของกล้องที่ลดการสั่นแล้ว ซึ่งขั้นตอนนี้จะนำเฟรมที่ถัดจากเฟรมที่กำลังวิเคราะห์อยู่มาวิเคราะห์ด้วย ทำให้เรารู้การเคลื่อนไหวล่วงหน้าเฟรมที่วิเคราะห์อยู่ในปัจจุบัน จากนั้นใช้ Machine Learning มาคาดการณ์ความตั้งใจของผู้ถ่ายว่าต้องการให้วิดีโอเคลื่อนไหวแบบใด เราเรียกส่วนนี้ว่า Lookahead Motion Filtering ซึ่งส่วนนี้ยากต่อการนำมาใช้กับ OIS เพราะ OIS สามารถนำข้อมูลจากเฟรมปัจจุบันและเฟรมก่อนหน้ามาคาดเดาการเคลื่อนไหวได้เท่านั้น ไม่สามารถนำเฟรมที่เกิดในอนาคตมาวิเคราะห์ได้ ซึ่งเราจะกลับมาลงลึกในเรื่อง Lookahead Motion Filtering ทีหลัง

Frame Synthesis

ขั้นตอนนี้เราจะมาทำการระบุว่าจะต้องปรับแต่งเฟรมแต่ละเฟรมอย่างไร โดยใช้พื้นฐานจากข้อมูลการเคลื่อนไหวของกล้องจริงๆ และข้อมูลจากแบบจำลอง ส่วนการแก้ปัญหาภาพล้ม (Rolling shutter) จะทำโดยการแบ่งภาพเป็นช่องเล็กๆ และทำการปรับแต่ละช่องตามวิดีโอตัวอย่างด้านล่าง

Lookahead Motion Filtering

การทำ Lookahead Motion Filtering มีหลายขั้นตอน โดยขั้นตอนแรกคือใช้ Gaussian filtering ปรับภาพให้การเคลื่อนไหวราบรื่นขึ้น
(ซ้าย) วิดีโอที่ยังไม่ทำการลดการสั่นใดๆ | (ขวา) วิดีโอที่ได้หลังจากใช้ Gaussian filtering
จะเห็นว่าผลลัพธ์ที่ได้ยังไม่เป็นที่น่าพอใจเท่าไหร่ เพื่อเพิ่มคุณภาพเข้าไปอีก Google ได้ทำการสอนซอฟต์แวร์ให้แยกการเคลื่อนไหวที่ตั้งใจกับการเคลื่อนไหวที่ไม่ต้องการออกจากกัน เช่น หากซอฟต์แวร์คาดเดาว่ากล้องกำลังแพนในแนวราบอยู่ จะทำการตัดการเคลื่อนไหวในแนวตั้งส่วนใหญ่ทิ้ง ได้ผลลัพธ์ตามวิดีโอด้านล่าง

(ซ้าย) วิดีโอที่ได้หลังจากใช้ Gaussian filtering | (ขวา) วิดีโอผลลัพธ์จากการคาดเดาการเคลื่อนไหว

ในการใช้งานจริง ไม่มีสิ่งใดยืนยันได้ว่าเมื่อผ่านขั้นตอนด้านบนมาแล้วจะไม่เหลือการเคลื่อนไหวที่ไม่ต้องการอยู่เลย เช่น บางทีอาจมีการใส่กันสั่นมากเกินไป แล้วเฟรมถัดไปมีการเคลื่อนไหวที่ทำให้ภาพหลุดจากเฟรม ทาง Google จะทำการคาดเดาการเคลื่อนไหวจากเฟรมที่ถัดจากเฟรมที่มีปัญหาไป 2 เฟรมและทำการแก้ไขการเคลื่อนไหวใหม่ ดังเช่นวิดีโอตัวอย่าง จะเห็นเฟรมหนึ่งที่มุมซ้ายล่างเกิดการหลุดเฟรมขึ้นเป็นสีฟ้า

(ซ้าย) วิดีโอผลลัพธ์จากการคาดเดาการเคลื่อนไหว จะเห็นแถบสีฟ้าที่มุมซ้ายล่าง | (ขวา) วิดีโอผลลัพธ์จากการนำส่วนที่ไม่ต้องการออก

ถ้ายังจำกันได้ ก่อนหน้านี้เราพูดถึงเรื่องข้อจำกัดของ OIS กัน ก็คือ OIS จะมีขอบเขตการเคลื่อนไหวที่จำกัด หากการเคลื่อนไหวมีการเปลี่ยนแปลงมากเกินไปจะทำให้เกิดการเบลอจากการเคลื่อนไหว (Motion Blur) ขึ้น และเมื่อเรานำวิดีโอนั้นไปผ่านกระบวนการ EIS จะทำให้เกิดอาการ sharpness inconsistency ขึ้น ซึ่งรบกวนสายตาเวลาดูวิดีโอ


(ซ้าย) วิดีโอที่กันสั่นด้วย OIS อย่างเดียว | (ขวา) วิดีโอจาก Pixel 2 ที่ใช้ Fused Stabilization ขั้นพื้นฐานเท่านั้น จะเห็นการสูญเสียความคมชัดที่ป้าย Exit

จากการวิจัยพบว่าส่วนใหญ่ Motion Blur จะเป็นไปในทิศทางเดียวกัน และถ้าภาพเคลื่อนไหวไปตามทิศทางนั้น ตาเราจะไม่เห็นอาการเบลอ เพราะสมองจะถูกสั่งการว่าอาการเบลอนั้นเป็นธรรมชาติของการเคลื่อนไหวและจะสั่งให้เราไม่ต้องสนใจ
ด้วยข้อมูลจาก Gyroscope และ EIS ทำให้เราสามารถระบุอาการ Motion Blur ได้อย่างแม่นยำ จากนั้นทำการวิเคราะห์ว่าระหว่างที่เกิดอาการ Motion Blur นั้นกล้องชี้ไปที่จุดไหน และใช้อัลกอริทึมที่ได้จาก Machine Learning มาวิเคราะห์การเคลื่อนไหวของกล้องจริงๆ กับแบบจำลองการเคลื่อนไหวของกล้องที่ลดการสั่นแล้วในช่วงที่เกิด Motion Blur จากนั้นนำมาชั่งน้ำหนักว่าจะต้องการให้การเคลื่อนไหวของกล้องเป็นไปอย่างไร เพื่อเบี่ยงให้เราเห็นอาการเบลอน้อยลง ดังวิดีโอตัวอย่างด้านล่างจะเห็นว่าวิดีโอด้านขวามีอาการเบลอลดลงจากด้านซ้ายอย่างเห็นได้ชัด

(ซ้าย) วิดีโอจากที่ใช้ Fused Stabilization ขั้นพื้นฐานเท่านั้น | (ขวา) วิดีโอที่ใช้ Fused Stabilization แบบเต็มรูปแบบพร้อมลดอาการ Motion Blur

จากขั้นตอนทั้งหมดทำให้เราได้ภาพวิดีจากวิดีโอที่นิ่งและมีความคลาดเคลื่อนต่างๆ ของภาพน้อย โดยไม่จำเป็นต้องใช้อุปกรณ์เสริมใดๆ ให้ยุ่งยากเลย และทาง Google ก็มีมีวิดีโอตัวอย่างมาโชว์ว่าระบบกันสั่นของ Google Pixel 2 นั้นยอดเยี่ยมขนาดไหน


วิดีโอถ่ายด้วย Google Pixel 2 สองเครื่องที่ยึดอยู่บนแขนจับอันเดียวกัน วิดีโด้านซ้ายปิดระบบกันสั่น

วิดีโอถ่ายด้วย Google Pixel 2 สองเครื่องที่ยึดอยู่บนแขนจับอันเดียวกันโดยผู้ถ่ายกระโดดตามผู้ถูกถ่ายด้วย วิดีโด้านซ้ายปิดระบบกันสั่น

ความเห็น

|STAFF PICK_$color=red$type=three$author=no$comment=no$count=3$label=no

Name

18:9,1,7-11,1,787-9,1,Air Sofa,1,Airbus,1,amazon,1,Android,10,anime news,1,apollo cloud,1,App,1,apple,1,APS-C,1,arm,1,asus,1,aukey,1,Austrian,1,Auto,2,background,1,backpack,1,bag,1,Bags,1,Bangkok,1,belkin,2,Boeing,1,Boeing 787-9,1,buffet,3,Caden L5,1,Cafe,1,camera,1,Car,2,Case,1,cbs,1,chromecast,1,Cozistyle,1,display,1,dlink,1,doa,1,DxOMark,1,EasySwitch,1,esim,1,essential,1,Eurowings,1,featured,29,filmakr,1,firefox,1,Food,1,Food and Travel Review,1,food news,1,food review,28,Fuji X Series,1,Full Frame,1,G Master,1,G6,1,Galaxy,1,Garmin,1,gboard,1,godzilla earth,1,google,9,googlemaps,1,gutr,1,Haagen-Dazs,1,Huawei,4,Ice Cream,1,ifttt,1,imobile,1,insta,1,insta360,1,intel,3,intrendmall,1,iOS,1,iPhone,1,JetBlack,1,kakuni,1,Kimber Kable,1,kingston,1,kyochon,1,laos,1,laptop,1,ldac,1,LG,2,life style,10,linetv,1,luangprabang,1,Lufthansa,1,Lufthansa Group,1,maps,1,meizu,1,micron,1,microsoft,3,mirrorless,2,Mokacam,1,Moodang Icecream,1,navigation,1,netflix,2,NFC,1,nokia,1,Noriball VR,1,Novotel,1,NW-WM1A,1,oneplus,2,oppo,1,oreo,2,phablet,1,phillips,1,pixel,2,project treble,2,promotion,1,razer,1,Restaurant,1,review,1,Samsung,2,Sashimi,1,secure,1,selfie,1,Shinkanzen Sushi,1,shortcut,1,Smartphone,3,snoppa,1,Sony,13,star trek,1,star wars,1,Subaru,1,Sushi,1,Swiss,1,system 2000,1,tech news,24,tech review,51,tech tip,30,tecmo,1,Tesla,1,Thai Airways,1,thailand,1,tigernu,1,Tips,1,toho,1,traffic,1,travel review,2,true,1,TrueID,1,tubio,1,twitter,1,ubtech,1,Univisium,1,urban tool,1,V7+,1,vivo,2,wacom,1,Walkman,1,whizzer,1,widevine,1,Xperia,2,XZ Premium,1,youtube,1,กระเป๋า,1,การบินไทย,1,กูเกิ้ลแมพ,1,คมชัด,1,คาคูนิ,1,คิทเช่นจอย,1,โครมแคส,1,จอใหญ่,1,เซเว่น,1,เต็มจอ,1,ทางลัด,1,นำทาง,1,บ้านกกกอด,1,แผนที่,1,พรจากฟ้า,1,รถติด,1,รีสอร์ท,1,ไลน์ทีวี,1,ส่งขึ้นจอ,1,สีฟ้า,2,
ltr
item
NuaNia: Google อธิบายหลักการทำงานของระบบกันสั่นวิดีโอใน Pixel 2
Google อธิบายหลักการทำงานของระบบกันสั่นวิดีโอใน Pixel 2
https://2.bp.blogspot.com/-w4hOfsTW32E/Wtcs748H4DI/AAAAAAABaA4/OoxNHB98Tv8BnDoGviXIfTZMOAefLe5rgCKgBGAs/s640/videoplayback-2-1038x584.jpg
https://2.bp.blogspot.com/-w4hOfsTW32E/Wtcs748H4DI/AAAAAAABaA4/OoxNHB98Tv8BnDoGviXIfTZMOAefLe5rgCKgBGAs/s72-c/videoplayback-2-1038x584.jpg
NuaNia
https://www.nuania.com/2017/11/google-pixel-2_89.html
https://www.nuania.com/
https://www.nuania.com/
https://www.nuania.com/2017/11/google-pixel-2_89.html
true
5802716779837662579
UTF-8
โหลดบทความทั้งหมด ไม่พบบทความที่ต้องการ ดูทั้งหมด อ่านต่อ ตอบ ยกเลิกการตอบ ลบ โดย หน้าหลัก หน้า บทความ ดูทั้งหมด บทความแนะนำ LABEL ARCHIVE ค้นหา บทความทั้งหมด ไม่พบบทความที่ต้องการ กลับหน้าหลัก อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ อาทิตย์ จันทร์ อังคาร พุธ พฤหัส ศุกร์ เสาร์ มกราคม กุมภาพันธ์ มีนาคม เมษายน พฤษภาคม มิถุนายน กรกฎาคม สิงหาคม กันยายน ตุลาคม พฤศจิกายน ธันวาคม ม.ค. ก.พ. มี.ค. เม.ย. พฤษภาคม มิ.ย. ก.ค. ส.ค. ก.ย. ต.ค. พ.ย. ต.ค. เมื่อครู่ 1 นาทีที่แล้ว $$1$$ minutes ago 1 ชั่วโมงที่แล้ว $$1$$ hours ago เมื่อวาน $$1$$ days ago $$1$$ weeks ago มากกว่า 5 สัปดาห์ ผู้ติดตาม ติดาตาม เนื้อหาพรีเมี่ยม แชร์เพื่อปลดล็อกเนื้อหา คัดลอกทั้งหมด เลือกทั้งหมด โค๊ดถูกคัดลอก ไม่สามารถคัดลอกได้