การไหลของแสง / การเปลี่ยนภาพโดยประมาณอย่างรวดเร็ว


9

ฉันต้องการตรวจสอบความเร็วของกล้องที่แพนกล้อง (ทั้งแนวนอน / แนวตั้ง) เพื่อเตือนผู้ปฏิบัติงานให้ชะลอตัวลง

ภาพทั้งหมดกำลังเคลื่อนไหวเป็นบล็อกฉันไม่ต้องการทิศทางที่แท้จริง (แม้ว่า H หรือ V จะเป็นโบนัส) และฉันต้องการเพียงขนาดโดยประมาณ - เช่น ทริกเกอร์ถ้ามากกว่า 'N' พิกเซลเปลี่ยนระหว่างเฟรม

ภาพมีขนาดใหญ่และโดยทั่วไปจะมีฉากที่มีคอนทราสต์ต่ำที่สม่ำเสมอฉันไม่มีไฮไลท์ที่ชัดเจนในการติดตาม ฉันต้องทำแบบเรียลไทม์ (60fps) และไม่ต้องใช้ CPU ทั้งหมด

วิธีแก้ปัญหาของ Niave คือเลือก RoI ที่กึ่งกลางหาขอบคำนวณความคล้ายคลึงกันระหว่างคู่ของเฟรมเลื่อนหนึ่งในเฟรมซ้าย / ขวา / ขึ้น / ลงทีละพิกเซลทำซ้ำ - ค้นหาขั้นต่ำ

ฉันสงสัยว่ามีวิธีการที่ชาญฉลาดกว่านี้หรือไม่?

คำตอบ:


3

อาจเป็นไปได้ว่าหากคุณกำลังมองหาวิธีที่ง่าย ๆก็คือการใช้อัลกอริธึมการประมาณค่าแบบมาตรฐานซึ่งมีความสมบูรณ์มากในคลาส MPEG ของตัวแปลงสัญญาณการบีบอัด พวกเขาเข้าใจง่ายและฉันเดาว่าคุณจะได้รับรหัสมากมายพร้อมใช้งาน อัลกอริทึมนี้สร้างเวคเตอร์แบบเคลื่อนที่บนบล็อกตามบล็อก - จากนั้นคุณสามารถค้นหากลุ่มที่โดดเด่นที่สุดและใช้ทิศทางเวกเตอร์การเคลื่อนไหวและขนาดโดยเฉลี่ย

MPEG4 - มีแนวคิดหลักอีกข้อหนึ่งที่เรียกว่า " การชดเชยการเคลื่อนไหวทั่วโลก " ซึ่งเป็นเทคนิคที่พยายามประมาณการและชดเชยการเคลื่อนไหวของกล้องและการแพนกล้องก่อน ความงามคือวิธีการดังกล่าวสามารถทำได้ง่ายขึ้นหรือละเอียดขึ้นอยู่กับความซับซ้อน นี่คือตัวอย่างกระดาษหนึ่งฉบับและอีกกระดาษหนึ่งสำหรับอันเดียวกัน

โดยทั่วไปการประมาณการส่ายกล้องและการเคลื่อนไหวค่อนข้างเป็นโดเมนวิจัยที่ได้รับการยอมรับ นี่คือการอ้างอิง: กระดาษและกระดาษอื่น

ในเรื่องนี้ คุณจะพบทั้งความแม่นยำและอัลกอริธึมที่แม่นยำรวมถึงวิธีที่ง่ายและรวดเร็ว


ถ้าฉันสามารถติดตั้ง MPEG lib ได้อย่างง่ายดายซึ่งจะดีฉันจำได้ว่า GMC ใน Mpeg มีการวิพากษ์วิจารณ์ ฉันคิดว่ามันน่าจะเป็นพื้นที่ส่วนกลางเพราะอัลกอริธึมการรักษาเสถียรภาพกล้อง
มาร์ตินเบ็คเก็ตต์

คุณสามารถขออัลกอริธึม MPEG (หรือแยก) ได้อย่างแน่นอน คุณสามารถใช้ FFMPEG เป็นไลบรารี่และแตกไฟล์นั้น - แต่อาจมีเล่ห์เหลี่ยม หรือคุณสามารถอ่านรหัสที่เรียบร้อยของMSSGเพื่อแยก
Dipan Mehta

เกี่ยวกับการวิพากษ์วิจารณ์เกี่ยวกับ GMC - มันมากกว่าสัญญาว่าจะลดอัตราบิตอย่างมากและสร้างการเข้ารหัสตามวัตถุ อย่างไรก็ตามมันไม่ยากที่จะประมาณค่าพารามิเตอร์การเคลื่อนไหวของกล้อง
Dipan Mehta

ขอบคุณฉันจะดูที่ MSSG ฉันใช้ ffmpeg แต่มันไม่ใช่ห้องสมุดง่าย ๆ ที่จะดึงสิ่งต่าง ๆ ออกมา!
Martin Beckett

3

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

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

คำถามนี้คล้ายกันและไม่มีใครแนะนำอะไรนอกจากความสัมพันธ์ข้ามดังนั้นอาจจะไม่เลวเลย: การใช้ MATLAB เพื่อคำนวณออฟเซ็ตระหว่างภาพต่อเนื่อง


ขอบคุณมันง่ายที่จะสมมติว่า FFT ช้า แต่ฉันสามารถทำหน้าต่าง 2 ^ n ขนาดเล็กได้ PS สำหรับการค้นหาstackoverflow.com/questions/1100100/…
Martin Beckett

3

วิธีหนึ่งที่คุณสามารถประมาณความเร็วและทิศทางคือการประมาณค่าการไหลของ "ท้องถิ่น" เช่นหน้าต่างสี่จุดที่อยู่ตรงกลางภาพ วิธีการที่แตกต่างกันของลูคัส - คานาเดคาดว่าการกระจัดนั้นมีค่าคงที่โดยประมาณและดังนั้นจึงเป็นไปได้ที่จะแก้สมการ

ดังนั้นคำแนะนำทีละขั้นตอนของฉันจะเป็น:

  1. รับหน้าต่างของพิกเซลที่อยู่ตรงกลางของภาพเช่น 20x20
  2. คำนวณการไล่ระดับสี Ix และ Iy
  3. แบ่งหน้าต่างไล่ระดับสีออกเป็นสี่ส่วนเช่น 4x10x10
  4. แก้สมการกำลังสองน้อยที่สุดเชิงเส้นสี่ตัวในเฟรมถัดไป
  5. เฉลี่ยเวกเตอร์สี่ความเร็ว

นี่เป็นตัวกำหนดทิศทางและความเร็วอย่างไรก็ตามคุณสามารถใช้หน้าต่างถ่วงน้ำหนักเพื่อทำให้มีประสิทธิภาพมากขึ้น ดูวิธี Lucas-Kanadeสำหรับส่วนขยาย


0

ฉันคิดว่า cross-correlation เป็นวิธีที่ดีในการค้นหาออฟเซ็ต แต่ถ้าคุณต้องการทำให้มันเร็วจริง ๆ คุณสามารถลอง จำกัด มันให้เป็นแนวตั้งเดี่ยวและเส้นแนวนอนเดียว scanline (เช่นผ่านจุดศูนย์กลางของภาพ) การคำนวณความสัมพันธ์ข้ามระหว่าง scanlines ในเฟรมทั้งสองควรให้ค่าประมาณออฟเซ็ตแนวนอนและแนวตั้ง


สิ่งนี้อาจใช้งานได้ แต่ถ้าปรากฎว่าเป็นเส้นทแยงมุมมันจะทำงานได้ไม่ดีแม้ว่ามันจะกระวนกระวายใจขึ้น ๆ ลง ๆ ในขณะที่ปรากฎว่าอยู่ด้านข้าง ฉันคิดว่า subregion แบบสี่เหลี่ยมผืนผ้าที่อยู่ตรงกลางของภาพจะดีกว่า
endolith
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.