บทความ: กระแสน้ำวน, วิธีการเชิงแสง การสร้างกระแสแสง วิธีการกำหนดการไหลทางแสง
นี่คือการแสดงร่องรอยการเคลื่อนไหวของวัตถุ พื้นผิว และขอบของฉากที่มองเห็นได้ ซึ่งสังเกตได้เมื่อมีการเคลื่อนไหวสัมพันธ์กันระหว่างผู้สังเกตการณ์ (เช่น ดวงตาของมนุษย์หรือกล้อง) และฉากนั้น
แนวคิดเรื่องการไหลของแสงถูกเสนอโดยนักจิตวิทยาชาวอเมริกัน เจมส์ เจ. กิบสัน ในคริสต์ทศวรรษ 1940 เพื่ออธิบายสิ่งเร้าทางการมองเห็น (สัญญาณ) ที่เกิดขึ้นในสัตว์ที่เคลื่อนที่ในอวกาศโดยสัมพันธ์กับสภาพแวดล้อมของพวกมัน
James Gibson เน้นย้ำถึงความสำคัญของการไหลของแสงสำหรับความสามารถในการรับรู้ ความสามารถในการแยกแยะข้อจำกัด และโอกาสในการดำเนินการในสภาพแวดล้อม ผู้ติดตามหุ่นยนต์ของกิ๊บสันและแนวทางทางนิเวศวิทยาของเขาในด้านจิตวิทยาในเวลาต่อมาสามารถแสดงบทบาทของตัวกระตุ้นการไหลของแสงในการรับรู้การเคลื่อนไหวของผู้สังเกตการณ์ที่สัมพันธ์กับโลกโดยรอบ การรับรู้รูปร่าง ระยะห่าง และการเคลื่อนที่ของวัตถุโดยรอบ และการควบคุมการเคลื่อนไหว
เมื่อเร็วๆ นี้ วิทยาการหุ่นยนต์ได้เลือกใช้คำศัพท์การไหลด้วยแสงเพื่อรวมเทคนิคที่เกี่ยวข้องสำหรับการประมวลผลภาพและการควบคุมการนำทาง เช่น การตรวจจับการเคลื่อนไหว การแบ่งส่วนวัตถุ ข้อมูลการสัมผัสเวลา การคำนวณการขยายโฟกัส ความส่องสว่าง การเข้ารหัสชดเชยการเคลื่อนไหว และสเตอริโอ การวัดความแตกต่าง
เมื่อเร็วๆ นี้ คำว่าการไหลของแสงได้รับความร่วมมือจากนักวิทยาการหุ่นยนต์เพื่อรวมเทคนิคที่เกี่ยวข้องสำหรับการประมวลผลภาพและการควบคุมการนำทาง เช่น การตรวจจับการเคลื่อนไหว การแบ่งส่วนวัตถุ ข้อมูลเวลาในการสัมผัส จุดเน้นของการคำนวณการขยาย ความส่องสว่าง การเข้ารหัสการชดเชยการเคลื่อนไหว และ การวัดความไม่เท่าเทียมกันของสเตอริโอ
การคำนวณ
ลำดับของภาพที่เรียงลำดับทำให้สามารถประมาณการเคลื่อนไหวได้ ไม่ว่าจะเป็นความเร็วของภาพทันที หรือเป็นค่าแยกของการกระจัดของภาพ มีสื่อการสอนในรูปแบบของบทเรียนเกี่ยวกับวิธีการไหลของแสงตามการไล่ระดับสี นักวิจัยยังได้วิเคราะห์การเปรียบเทียบเทคนิคการไหลของแสงต่างๆ และวิเคราะห์ความแม่นยำและความถี่ของการวัด
วิธีการคำนวณการเคลื่อนที่ด้วยแสงจะพยายามประมาณการเคลื่อนไหวระหว่างเฟรมภาพสองเฟรมที่เห็นในช่วงเวลาหนึ่ง ทีและในแต่ละตำแหน่งวอเซล วิธีการดังกล่าวเรียกว่าดิฟเฟอเรนเชียลเนื่องจากขึ้นอยู่กับการประมาณค่าเฉพาะของอนุกรมเทย์เลอร์สำหรับสัญญาณภาพ กล่าวคือ ใช้อนุพันธ์บางส่วนเกี่ยวกับพิกัดเชิงพื้นที่และพิกัดเวลา
สำหรับกรณีมิติ 2D+ ที(เหมือนกันสำหรับ 3D หรือ ไม่มีกรณี) ตำแหน่งของว็อกเซลที่มีความเข้มที่จะเคลื่อนที่ต่อไป และระหว่างสองเฟรมภาพ และด้วยข้อจำกัดที่ตามมา ความสม่ำเสมอของความสว่างข้อจำกัดด้านความมั่นคง) สามารถเขียนได้:
สมมติว่าการเคลื่อนไหวไม่มีนัยสำคัญ เมื่อคำนวณการประมาณภาพโดยใช้อนุกรม Taylor เราจะได้:
… (สมาชิกลำดับที่สูงกว่า)จากสมการเหล่านี้มีดังนี้:
ส่งผลให้
โดยที่สิ่งเหล่านี้คือส่วนประกอบและความเร็วหรือการไหลของแสง และเป็นอนุพันธ์ของภาพในทิศทางที่สอดคล้องกัน และสามารถเขียนเพิ่มเติมเพื่อหาอนุพันธ์ได้
ดังนั้น:
สมการที่มีไม่ทราบค่าสองตัวนี้ไม่สามารถแก้ไขได้เช่นนี้ สิ่งนี้เรียกว่า ปัญหารูรับแสง (ไดอะแฟรม)อัลกอริธึมการไหลของแสง ในการคำนวณการไหลของแสง จำเป็นต้องใช้ชุดสมการอื่น โดยระบุตามเงื่อนไขเพิ่มเติมบางประการ แนะนำวิธีการคำนวณการไหลของแสงทั้งหมด เงื่อนไขเพิ่มเติมเพื่อประมาณการไหลจริง
เซ็นเซอร์วัดการไหลของแสง
เซ็นเซอร์วัดการไหลแบบออปติคัลเป็นเซ็นเซอร์วิชันที่สามารถวัดการไหลของแสงหรือการเคลื่อนไหวของภาพ และสร้างผลการวัดตามการไหลของแสง เซ็นเซอร์ดังกล่าวมีการกำหนดค่าที่แตกต่างกันมากมาย นี่อาจเป็นเซ็นเซอร์ภาพที่เชื่อมต่อกับโปรเซสเซอร์ซึ่งโปรแกรมอัลกอริธึมการไหลของแสงถูกตั้งโปรแกรมไว้ การกำหนดค่าอีกอย่างหนึ่งใช้ชิปวิชันซิสเต็มที่ออกแบบมาเป็นวงจรรวมที่มีทั้งเซ็นเซอร์และโปรเซสเซอร์บนชิปตัวเดียวในอุปกรณ์ขนาดกะทัดรัด ตัวอย่างนี้คือเซ็นเซอร์ออปติคัลเมาส์ทั่วไปที่ใช้ในเมาส์ออปติคัล ในบางกรณี วงจรคำนวณที่ใช้วงจรสัญญาณผสมแอนะล็อกสามารถใช้เพื่อคำนวณการไหลของแสงอย่างรวดเร็วโดยสิ้นเปลืองกระแสไฟน้อยที่สุด
การวิจัยด้านหนึ่งในปัจจุบันคือการใช้เทคนิคทางวิศวกรรมนิวโรมอร์ฟิกเพื่อใช้วงจรที่รับรู้การไหลของแสงและสามารถใช้เป็นเซ็นเซอร์ออปติคัลได้ วงจรดังกล่าวนำแนวคิดจากโครงข่ายประสาทเทียมทางชีวภาพและตรวจจับการไหลของแสงโดยใช้หลักการที่คล้ายกัน
รูปภาพที่เกี่ยวข้อง
ในระบบคอมพิวเตอร์วิทัศน์และระบบประมวลผลภาพ มักจะเกิดปัญหาในการกำหนดการเคลื่อนไหวของวัตถุในพื้นที่สามมิติโดยใช้เซ็นเซอร์ออปติคัลซึ่งก็คือกล้องวิดีโอ การมีลำดับของเฟรมเป็นอินพุต จำเป็นต้องสร้างพื้นที่สามมิติที่บันทึกไว้และการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป ฟังดูซับซ้อน แต่ในทางปฏิบัติ มักจะเพียงพอที่จะค้นหาการกระจัดของการฉายภาพสองมิติของวัตถุในระนาบเฟรม
หากเราต้องการทราบว่าวัตถุนี้หรือวัตถุนั้นมีการเลื่อนไปมากน้อยเพียงใดเมื่อเทียบกับตำแหน่งในเฟรมก่อนหน้าในช่วงเวลาที่ผ่านไประหว่างเฟรมที่ยึด อันดับแรก เป็นไปได้มากว่าเราจะจำเกี่ยวกับการไหลของแสงได้ ในการค้นหาการไหลของแสง คุณสามารถใช้การใช้งานอัลกอริธึมสำเร็จรูป ทดสอบ และปรับให้เหมาะสมได้อย่างปลอดภัย เช่น จากไลบรารี OpenCV อย่างไรก็ตาม ในขณะเดียวกัน การเข้าใจทฤษฎีนี้ก็ไม่เป็นอันตรายอย่างยิ่ง ดังนั้นฉันจึงขอเชิญชวนทุกคนที่สนใจลองดูวิธีการหนึ่งที่ได้รับความนิยมและมีการศึกษาดีวิธีหนึ่ง ไม่มีรหัสในบทความนี้และ คำแนะนำการปฏิบัติแต่มีสูตรและอนุพันธ์ทางคณิตศาสตร์จำนวนหนึ่ง
มีหลายวิธีในการกำหนดออฟเซ็ตระหว่างสองเฟรมที่อยู่ติดกัน ตัวอย่างเช่น สำหรับแต่ละส่วนเล็กๆ (เช่น 8 x 8 พิกเซล) ของหนึ่งเฟรม คุณจะพบส่วนที่คล้ายกันมากที่สุดในเฟรมถัดไป ในกรณีนี้ ความแตกต่างระหว่างพิกัดของชิ้นส่วนดั้งเดิมกับชิ้นส่วนที่พบจะทำให้เรามีการกระจัด ปัญหาหลักที่นี่คือวิธีค้นหาส่วนที่ต้องการอย่างรวดเร็วโดยไม่ต้องผ่านทั้งเฟรมทีละพิกเซล การใช้งานแนวทางนี้หลายวิธีช่วยแก้ปัญหาความซับซ้อนในการคำนวณไม่ทางใดก็ทางหนึ่ง บางส่วนประสบความสำเร็จมากจนถูกนำมาใช้ เช่น ในมาตรฐานการบีบอัดวิดีโอทั่วไป แน่นอนว่าราคาของความเร็วคือคุณภาพ เราจะพิจารณาวิธีอื่นซึ่งช่วยให้เราได้รับค่าชดเชยไม่ใช่สำหรับชิ้นส่วน แต่สำหรับแต่ละพิกเซล และใช้เมื่อความเร็วไม่สำคัญนัก ด้วยเหตุนี้เองที่คำว่า "กระแสแสง" มักมีความเกี่ยวข้องในวรรณกรรม
วิธีการนี้มักเรียกว่าดิฟเฟอเรนเชียล เนื่องจากเป็นการคำนวณอนุพันธ์บางส่วนตามทิศทางแนวนอนและแนวตั้งของภาพ ดังที่เราจะได้เห็นในภายหลัง อนุพันธ์เพียงอย่างเดียวไม่เพียงพอที่จะระบุการกระจัด นั่นคือเหตุผลว่าทำไมบนพื้นฐานของแนวคิดง่ายๆ เพียงหนึ่งเดียวจึงมีวิธีการที่หลากหลายซึ่งแต่ละวิธีใช้การเต้นรำทางคณิตศาสตร์กับแทมบูรีนเพื่อให้บรรลุเป้าหมาย มาดูวิธีลูคัส-คานาเดะที่เสนอในปี 1981 โดยบรูซ ลูคัส และทาเคโอะ คานาเดะ
วิธีลูคัส-คานาเดะ
การให้เหตุผลเพิ่มเติมทั้งหมดตั้งอยู่บนสมมติฐานที่สำคัญมากและไม่ยุติธรรมอย่างยิ่ง: สมมติว่าค่าพิกเซลจะย้ายจากเฟรมหนึ่งไปยังเฟรมถัดไปโดยไม่มีการเปลี่ยนแปลง- ดังนั้นเราจึงตั้งสมมติฐานว่าพิกเซลที่เป็นของวัตถุเดียวกันสามารถเปลี่ยนไปในทิศทางใดก็ได้ แต่ค่าของมันจะไม่เปลี่ยนแปลง แน่นอนว่าสมมติฐานนี้ไม่เกี่ยวข้องกับความเป็นจริงเลย เนื่องจากสภาพแสงโดยรวมและการส่องสว่างของวัตถุที่กำลังเคลื่อนที่สามารถเปลี่ยนไปในแต่ละเฟรมได้ สมมติฐานนี้มีปัญหามากมาย แต่น่าแปลกที่แม้จะมีทุกอย่าง แต่ก็ใช้งานได้ค่อนข้างดีในทางปฏิบัติในภาษาคณิตศาสตร์ สมมติฐานนี้สามารถเขียนได้ดังนี้: โดยที่ I เป็นฟังก์ชันของความสว่างพิกเซลจากตำแหน่งบนเฟรมและเวลา กล่าวอีกนัยหนึ่ง x และ y คือพิกัดพิกเซลในระนาบเฟรม และเป็นออฟเซ็ต และ t คือหมายเลขเฟรมในลำดับ ตกลงกันว่าช่วงเวลาหนึ่งผ่านไประหว่างสองเฟรมที่อยู่ติดกัน
กรณีมิติเดียว
ก่อนอื่น เรามาพิจารณากรณีมิติเดียวกัน ลองนึกภาพเฟรมหนึ่งมิติสองเฟรมสูง 1 พิกเซลและกว้าง 20 พิกเซล (ภาพด้านขวา) ในเฟรมที่สอง ภาพจะเลื่อนไปทางขวาเล็กน้อย การกระจัดนี่แหละที่เราต้องการหา เมื่อต้องการทำเช่นนี้ ลองจินตนาการถึงเฟรมเดียวกันเหล่านี้เป็นฟังก์ชัน (รูปด้านซ้าย) อินพุตคือตำแหน่งพิกเซล เอาต์พุตคือความเข้มของมัน ในการเป็นตัวแทนนี้ การกระจัดที่ต้องการ (d) จะมองเห็นได้ชัดเจนยิ่งขึ้น ตามสมมติฐานของเรา นี่เป็นเพียงการเลื่อน นั่นคือเราสามารถพูดได้ว่า .โปรดทราบว่าหากต้องการ คุณสามารถเขียนเข้ามาได้เช่นกัน มุมมองทั่วไป- โดยที่ y และ t คงที่และเท่ากับศูนย์
สำหรับแต่ละพิกัดเรารู้ค่า ณ จุดนี้ นอกจากนี้เรายังสามารถคำนวณอนุพันธ์ของพวกมันได้ ให้เราเชื่อมโยงค่าที่รู้จักกับออฟเซ็ต d เพื่อทำเช่นนี้ เราเขียนส่วนขยายซีรีส์ Taylor สำหรับ:
เรามาตั้งสมมติฐานที่สำคัญประการที่สองกัน: ให้เราสมมติว่ามันประมาณค่าด้วยอนุพันธ์อันดับหนึ่งได้ดีเพียงพอ- เมื่อตั้งสมมติฐานนี้แล้ว เราจะทิ้งทุกอย่างหลังจากอนุพันธ์อันดับหนึ่ง:
สิ่งนี้ถูกต้องแค่ไหน? โดยทั่วไปแล้ว ไม่มากนัก ในกรณีนี้เราจะสูญเสียความแม่นยำ เว้นแต่ว่าฟังก์ชัน/รูปภาพของเราจะเป็นเส้นตรงอย่างเคร่งครัด ดังตัวอย่างที่สร้างขึ้น แต่วิธีนี้ทำให้วิธีการง่ายขึ้นอย่างมาก และเพื่อให้ได้ความแม่นยำที่ต้องการ คุณสามารถทำการประมาณต่อเนื่องได้ ซึ่งเราจะพิจารณาในภายหลัง
เราเกือบจะถึงที่นั่นแล้ว การกระจัด d คือค่าที่เราต้องการ ดังนั้นเราจึงต้องทำอะไรสักอย่างด้วย ตามที่เราตกลงกันไว้ก่อนหน้านี้ ดังนั้นเราจะเขียนใหม่:
กรณีสองมิติ
ตอนนี้เรามาดูจากเคสมิติเดียวไปเป็นเคสสองมิติกัน ให้เราเขียนส่วนขยายในซีรีส์ Taylor และทิ้งอนุพันธ์ที่สูงกว่าทั้งหมดทันที แทนที่จะเป็นอนุพันธ์อันดับหนึ่ง การไล่ระดับสีจะปรากฏขึ้น:เวกเตอร์การกระจัดอยู่ที่ไหน
ตามสมมติฐานที่ตั้งไว้ โปรดทราบว่านิพจน์นี้เทียบเท่ากับ นี่คือสิ่งที่เราต้องการ มาเขียนใหม่:
เนื่องจากช่วงเวลาหนึ่งหน่วยผ่านไประหว่างสองเฟรม เราจึงสามารถพูดได้ว่าไม่มีอะไรมากไปกว่าอนุพันธ์ที่เกี่ยวข้องกับเวลา
มาเขียนใหม่:
มาเขียนใหม่อีกครั้งโดยขยายการไล่ระดับสี:
เรามีสมการที่บอกเราว่าผลรวมของอนุพันธ์ย่อยต้องเท่ากับศูนย์ ปัญหาเดียวคือเรามีสมการเดียว แต่มีสองสิ่งที่ไม่ทราบอยู่ในนั้น: และ เมื่อมาถึงจุดนี้ การบินสุดจินตนาการและแนวทางที่หลากหลายได้เริ่มต้นขึ้น
เรามาตั้งสมมติฐานข้อที่สามกัน: สมมติว่าพิกเซลข้างเคียงถูกเลื่อนไปในระยะห่างเท่ากัน- ลองใช้ส่วนของภาพขนาด 5 คูณ 5 พิกเซลแล้วตกลงว่าแต่ละพิกเซลจาก 25 พิกเซลจะเท่ากัน แทนที่จะได้สมการเดียว เราจะได้ 25 สมการในคราวเดียว! เห็นได้ชัดว่าในกรณีทั่วไป ระบบไม่มีวิธีแก้ปัญหา ดังนั้นเราจะมองหาวิธีแก้ปัญหาดังกล่าวและลดข้อผิดพลาดให้เหลือน้อยที่สุด:
โดยที่ g คือฟังก์ชันที่กำหนดค่าสัมประสิทธิ์การถ่วงน้ำหนักสำหรับพิกเซล ตัวเลือกที่พบบ่อยที่สุดคือ Gaussian สองมิติ ซึ่งให้น้ำหนักมากที่สุดกับพิกเซลส่วนกลาง และน้อยลงเรื่อยๆ เมื่อเคลื่อนออกจากศูนย์กลาง
ในการค้นหาค่าต่ำสุด เราใช้วิธีกำลังสองน้อยที่สุดและค้นหาอนุพันธ์ย่อยที่เกี่ยวข้องกับและ:
มาเขียนมันใหม่ในรูปแบบที่กะทัดรัดกว่านี้แล้วเท่ากับศูนย์:
ลองเขียนสมการทั้งสองนี้ใหม่ในรูปแบบเมทริกซ์:
หากเมทริกซ์ M กลับด้านได้ (มีอันดับ 2) เราสามารถคำนวณ และ ซึ่งจะลดข้อผิดพลาด E ให้เหลือน้อยที่สุด:
นั่นคือทั้งหมดที่ เรารู้การกระจัดของพิกเซลโดยประมาณระหว่างสองเฟรมที่อยู่ติดกัน
เนื่องจากพิกเซลที่อยู่ติดกันยังมีส่วนร่วมในการค้นหาออฟเซ็ตของแต่ละพิกเซลด้วย เมื่อใช้วิธีนี้ ขอแนะนำให้คำนวณอนุพันธ์แนวนอนและแนวตั้งของเฟรมก่อน
ข้อเสียของวิธีการ
วิธีการที่อธิบายไว้ข้างต้นตั้งอยู่บนสมมติฐานที่สำคัญ 3 ข้อ ซึ่งในอีกด้านหนึ่ง ทำให้เรามีโอกาสพื้นฐานในการพิจารณาการไหลของแสง แต่ในทางกลับกัน กลับทำให้เกิดข้อผิดพลาด ข่าวดีสำหรับผู้ชอบความสมบูรณ์แบบก็คือ เราจำเป็นต้องมีสมมติฐานเพียงข้อเดียวเพื่อทำให้วิธีการนี้ง่ายขึ้น และเราสามารถจัดการกับผลที่ตามมาได้ เราสันนิษฐานว่าเพื่อประมาณค่าการกระจัด อนุพันธ์อันดับ 1 น่าจะเพียงพอสำหรับเรา ในกรณีทั่วไปจะไม่เป็นเช่นนั้นอย่างแน่นอน (รูปด้านซ้าย) เพื่อให้บรรลุความแม่นยำที่ต้องการ สามารถคำนวณออฟเซ็ตสำหรับคู่เฟรมแต่ละคู่ (เรียกว่า และ ) ซ้ำได้ ในวรรณคดีสิ่งนี้เรียกว่าการแปรปรวน ในทางปฏิบัติ หมายความว่า เมื่อคำนวณการกระจัดในการวนซ้ำครั้งแรก เราจะย้ายแต่ละพิกเซลของเฟรมไปในทิศทางตรงกันข้ามเพื่อชดเชยการกระจัดนี้ ในการวนซ้ำครั้งต่อไป เราจะใช้เวอร์ชันที่บิดเบี้ยวแทนเฟรมดั้งเดิม และต่อๆ ไป จนกระทั่งถึงการวนซ้ำครั้งถัดไป การกระจัดที่เกิดขึ้นทั้งหมดจะน้อยกว่าค่าเกณฑ์ที่ระบุ เราได้ค่าการกระจัดสุดท้ายสำหรับแต่ละพิกเซลโดยเป็นผลรวมของการกระจัดในการวนซ้ำทั้งหมดโดยธรรมชาติ วิธีนี้เป็นแบบท้องถิ่น นั่นคือเมื่อพิจารณาออฟเซ็ตของพิกเซลใดพิกเซลหนึ่ง จะพิจารณาเฉพาะพื้นที่รอบพิกเซลนี้เท่านั้น - พื้นที่ใกล้เคียงในท้องถิ่น ด้วยเหตุนี้ จึงเป็นไปไม่ได้ที่จะระบุการกระจัดภายในพื้นที่ที่มีสีสม่ำเสมอขนาดใหญ่เพียงพอ (ใหญ่กว่าขนาดของพื้นที่ใกล้เคียง) โชคดีที่พื้นที่ดังกล่าวมักไม่พบในเฟรมจริง แต่คุณลักษณะนี้ยังคงให้ค่าเบี่ยงเบนเพิ่มเติมจากออฟเซ็ตจริง
ปัญหาอีกประการหนึ่งคือพื้นผิวบางส่วนในภาพสร้างเมทริกซ์เอกพจน์ M ซึ่งไม่พบเมทริกซ์ผกผัน ดังนั้นสำหรับพื้นผิวดังกล่าว เราจะไม่สามารถกำหนดออฟเซ็ตได้ คือดูเหมือนมีการเคลื่อนไหวแต่ยังไม่ชัดเจนว่าไปในทิศทางใด โดยทั่วไปไม่เพียงแต่วิธีที่พิจารณาเท่านั้นที่ประสบปัญหานี้ แม้แต่สายตามนุษย์ก็ไม่รับรู้การเคลื่อนไหวดังกล่าวอย่างชัดเจน (เสาตัดผม)
บทสรุป
เราได้จัดเรียงมันออก รากฐานทางทฤษฎีหนึ่งในวิธีการหาค่าการไหลเชิงแสง มีวิธีการที่น่าสนใจอื่นๆ อีกมากมาย ซึ่งบางวิธีในปัจจุบันให้ผลลัพธ์ที่น่าเชื่อถือมากกว่า อย่างไรก็ตาม วิธีลูคัส-คานาเดะ แม้จะค่อนข้างมีประสิทธิภาพ แต่ก็ยังค่อนข้างเข้าใจง่าย ดังนั้นจึงเหมาะอย่างยิ่งสำหรับการแนะนำพื้นฐานทางคณิตศาสตร์แม้ว่าปัญหาในการค้นหาการไหลของแสงจะได้รับการศึกษามานานหลายทศวรรษแล้ว แต่วิธีการต่างๆ ก็ยังได้รับการปรับปรุงให้ดีขึ้น งานยังคงดำเนินต่อไปโดยคำนึงถึงข้อเท็จจริงที่ว่าเมื่อตรวจสอบอย่างใกล้ชิดแล้ว ปัญหาจะกลายเป็นเรื่องยากมาก และความเสถียรและประสิทธิภาพของอัลกอริธึมอื่น ๆ อีกมากมายนั้นขึ้นอยู่กับคุณภาพของการพิจารณาอคติในการประมวลผลวิดีโอและภาพ
ในบันทึกที่เสแสร้งนี้ ฉันขอสรุปและไปยังแหล่งที่มาและลิงก์ที่มีประโยชน์
วิธีลูคัส-คานาเดะ เพิ่มแท็ก
การสร้างการไหลของแสงถือเป็นขั้นตอนในการประเมินการเปลี่ยนแปลงทางเรขาคณิตของความสว่างระหว่างเฟรมปัจจุบัน (ปัจจุบัน) และเฟรมก่อนหน้า การเคลื่อนไหวของวัตถุที่อยู่ด้านหน้ากล้องที่อยู่กับที่ รวมถึงการเคลื่อนไหวของกล้องในสภาพแวดล้อมโดยรอบ ทำให้เกิดการเปลี่ยนแปลงที่สอดคล้องกันในภาพ การเคลื่อนไหวที่ชัดเจนของสนามที่มองเห็นได้ (การกระจายความสว่างแบบสองมิติ) ที่สังเกตได้เมื่อกล้องเคลื่อนที่สัมพันธ์กับวัตถุที่ถ่ายภาพหรือวัตถุที่เกี่ยวข้องกับกล้องเรียกว่าการไหลของแสง เรามากำหนดสนามการเคลื่อนไหวโดยกำหนดเวกเตอร์ความเร็วให้กับแต่ละจุดในภาพ ในบางช่วงเวลาที่เลือก จุดบนภาพจะสอดคล้องกับจุดหนึ่งบนพื้นผิวของวัตถุ ประเด็นทั้งสองนี้สัมพันธ์กันโดยสมการการออกแบบ จุดวัตถุเคลื่อนที่สัมพันธ์กับกล้องด้วยความเร็ว สิ่งนี้จะสร้างการเคลื่อนไหวของจุดที่สอดคล้องกันในภาพ เมื่อเวลาผ่านไป จุดจะเคลื่อนที่เป็นระยะทาง และรูปภาพของมันจะเคลื่อนที่เป็นระยะทาง (ดูรูปที่ 1)
ข้าว. 1.
การกระจายความสว่างเคลื่อนที่ไปพร้อมกับวัตถุที่สังเกตได้ การไหลของแสงดังที่กล่าวไว้ข้างต้นคือการเคลื่อนไหวที่ชัดเจนของรูปแบบความสว่าง ตามหลักการแล้ว การไหลของแสงจะสอดคล้องกับสนามการเคลื่อนที่ที่กำหนดไว้ก่อนหน้านี้ อย่างไรก็ตาม ในทางปฏิบัติไม่ได้เป็นเช่นนั้นเสมอไป
ตอนนี้ให้ความสว่างของพิกเซล ณ จุดใดจุดหนึ่งของภาพในทันที จากนั้น ถ้า และ - และ เป็นส่วนประกอบของเวกเตอร์การไหลเชิงแสง ณ จุดนี้ เราก็สามารถคาดหวังได้
ลองยกเลิกทางซ้ายและขวา หารด้วย แล้วไปให้ถึงขีดจำกัดที่. เราได้รับ
สามารถรับอนุพันธ์ได้อย่างง่ายดายจากรูปภาพโดยใช้การประมาณเชิงตัวเลขของอนุพันธ์ด้วยผลต่างอันจำกัด
ให้เราเขียน (4) ใหม่ในรูปแบบ
ที่นี่ขอบเขตคือขอบเขตที่มีการค้นหาการไหลของแสง ค่าสัมประสิทธิ์กำหนดระดับความสำคัญของส่วนที่ทำให้เรียบของฟังก์ชัน (11) โปรดทราบว่าในวรรณคดีข้อเสนอในการเลือกค่านั้นแตกต่างกันอย่างสิ้นเชิง ตัวอย่างเช่นในหนังสือแนะนำให้เลือกค่าคงที่นี้เท่ากับในหนังสือ - เท่ากับ
ปัญหาของการลดฟังก์ชัน (6) ให้เหลือน้อยที่สุด ได้รับการแก้ไขโดยใช้ขั้นตอนการวนซ้ำ (7)-(8) ลำดับความเร็วที่ลดการทำงาน (6) มีรูปแบบ:
ที่นี่ดัชนีจะแสดงจำนวนการวนซ้ำปัจจุบัน - ดัชนีของโหนดกริดปัจจุบัน
กระบวนการวนซ้ำจะสิ้นสุดลงเมื่อความคลาดเคลื่อน (9) ระหว่างการวนซ้ำสองครั้งติดต่อกันน้อยกว่าจำนวนที่กำหนดไว้:
อย่างไรก็ตาม เงื่อนไขนี้ค่อนข้างไม่สะดวกที่จะใช้อย่างชัดเจน เนื่องจากมีค่าใช้จ่ายในการคำนวณที่สำคัญในการคำนวณ หากจำเป็นต้องตรวจสอบในแต่ละรอบซ้ำ ดังนั้นจึงมักใช้จำนวนการวนซ้ำคงที่ เช่นในงานที่เสนอให้ใช้. ในทางปฏิบัติ สำหรับรูปภาพที่มีคอนทราสต์ของวัตถุที่ดี การวนซ้ำก็เพียงพอแล้ว การใช้การวนซ้ำจำนวนมากขึ้นอย่างมีนัยสำคัญสามารถนำไปสู่การปรากฏตัวของความเร็วที่ไม่เป็นศูนย์ที่ผิดพลาดในบริเวณเหล่านั้นซึ่งสนามความเร็วเป็นศูนย์จริงๆ โดยเฉพาะอย่างยิ่งสิ่งนี้เกิดขึ้นในกรณีที่วัตถุสองชิ้นกำลังเคลื่อนที่ในระยะห่างจากกัน สนามความเร็วระหว่างพวกมันจริง ๆ แล้วเป็นศูนย์ แต่การไหลของแสงที่คำนวณจากการวนซ้ำจำนวนมากอาจไม่เป็นศูนย์เนื่องจากการสันนิษฐานของความต่อเนื่องของการเคลื่อนที่
การไหลของแสงก็อาจเป็นได้ เท่ากับศูนย์โดยที่สนามความเร็วไม่เป็นศูนย์ ตัวอย่างเช่นกรณีนี้เกิดขึ้นเมื่อเคลื่อนย้ายวัตถุที่มีความสว่างคงที่ทั่วทั้งพื้นที่ของพื้นที่ภาพที่ถูกครอบครอง ในกรณีนี้ ฟลักซ์แสงที่คำนวณที่ขอบเขตของวัตถุจะไม่เป็นศูนย์ และฟลักซ์ที่คำนวณที่ศูนย์กลางของวัตถุจะอยู่ใกล้กับศูนย์ ในขณะที่สนามความเร็วจริงควรเท่ากันทั่วทั้งพื้นผิวของ วัตถุ ปัญหานี้เรียกว่า “ปัญหารูรับแสง”
เสนอให้คำนวณอนุพันธ์ของความสว่างของภาพดังนี้
ในที่นี้จะใช้การประมาณตารางของอนุพันธ์ ดัชนีจะแสดงจำนวนของเฟรมปัจจุบัน - ดัชนีของโหนดกริดปัจจุบัน คุณสามารถเลือกรูปแบบและเมื่อคำนวณอนุพันธ์บางส่วน (10) ด้วยวิธีใดก็ได้ โดยทั่วไปจะใช้ตาข่าย
ตอนนี้ ด้วยการแทนที่อนุพันธ์บางส่วน (10) และความเร็วเฉลี่ย (8) ลงในกระบวนการวนซ้ำ (7) ด้วยเงื่อนไขเริ่มต้น สำหรับทุกคนในภูมิภาค ทำให้ง่ายต่อการค้นหาความเร็วของจุดกริดทั้งหมดบนเฟรมที่สังเกตได้ของวิดีโอ ลำดับ.
รูปแบบการคำนวณที่อธิบายไว้เป็นไปตามวิธีการประมาณค่าการไหลด้วยแสงแบบดั้งเดิม อย่างไรก็ตาม การทดลองที่ดำเนินการกับการบันทึกวิดีโอจริงจำนวนมากได้แสดงให้เห็นว่าเมื่ออัลกอริธึมการวิเคราะห์การไหลของแสงทำงานโดยตรงจากภาพดิจิตอลฮาล์ฟโทนดั้งเดิม คุณภาพของข้อมูลเอาต์พุตของอัลกอริธึมดังกล่าวจะไม่สูงเพียงพอ เนื่องจากอิทธิพลที่สำคัญของสัญญาณรบกวนและ การรบกวนอื่น ๆ ต่อคุณภาพของการตรวจจับวัตถุ ในเรื่องนี้ ในงานนี้ ขอเสนอให้ใช้ขั้นตอนสะสมผลต่างพิเศษที่อธิบายไว้ในส่วนถัดไปเป็นขั้นตอนในการประมวลผลข้อมูลวิดีโอล่วงหน้า ความหมายของขั้นตอนนี้คือการเลือกรูปทรงของวัตถุที่กำลังเคลื่อนที่เบื้องต้นอย่างละเอียด จากนั้นจึงคำนวณการประมาณการไหลของแสง ซึ่งใช้ในขั้นตอนของการสร้างสมมติฐานและการติดตามวัตถุที่เคลื่อนไหว
ในระบบคอมพิวเตอร์วิทัศน์และระบบประมวลผลภาพ มักจะเกิดปัญหาในการกำหนดการเคลื่อนไหวของวัตถุในพื้นที่สามมิติโดยใช้เซ็นเซอร์ออปติคัลซึ่งก็คือกล้องวิดีโอ การมีลำดับของเฟรมเป็นอินพุต จำเป็นต้องสร้างพื้นที่สามมิติที่บันทึกไว้และการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป ฟังดูซับซ้อน แต่ในทางปฏิบัติ มักจะเพียงพอที่จะค้นหาการกระจัดของการฉายภาพสองมิติของวัตถุในระนาบเฟรม
หากเราต้องการทราบว่าวัตถุนี้หรือวัตถุนั้นมีการเลื่อนไปมากน้อยเพียงใดเมื่อเทียบกับตำแหน่งในเฟรมก่อนหน้าในช่วงเวลาที่ผ่านไประหว่างเฟรมที่ยึด อันดับแรก เป็นไปได้มากว่าเราจะจำเกี่ยวกับการไหลของแสงได้ ในการค้นหาการไหลของแสง คุณสามารถใช้การใช้งานอัลกอริธึมสำเร็จรูป ทดสอบ และปรับให้เหมาะสมได้อย่างปลอดภัย เช่น จากไลบรารี OpenCV อย่างไรก็ตาม ในขณะเดียวกัน การเข้าใจทฤษฎีนี้ก็ไม่เป็นอันตรายอย่างยิ่ง ดังนั้นฉันจึงขอเชิญชวนทุกคนที่สนใจลองดูวิธีการหนึ่งที่ได้รับความนิยมและมีการศึกษาดีวิธีหนึ่ง บทความนี้ไม่มีโค้ดหรือคำแนะนำเชิงปฏิบัติ แต่มีสูตรและอนุพันธ์ทางคณิตศาสตร์จำนวนหนึ่ง
มีหลายวิธีในการกำหนดออฟเซ็ตระหว่างสองเฟรมที่อยู่ติดกัน ตัวอย่างเช่น สำหรับแต่ละส่วนเล็กๆ (เช่น 8 x 8 พิกเซล) ของหนึ่งเฟรม คุณจะพบส่วนที่คล้ายกันมากที่สุดในเฟรมถัดไป ในกรณีนี้ ความแตกต่างระหว่างพิกัดของชิ้นส่วนดั้งเดิมกับชิ้นส่วนที่พบจะทำให้เรามีการกระจัด ปัญหาหลักที่นี่คือวิธีค้นหาส่วนที่ต้องการอย่างรวดเร็วโดยไม่ต้องผ่านทั้งเฟรมทีละพิกเซล การใช้งานแนวทางนี้หลายวิธีช่วยแก้ปัญหาความซับซ้อนในการคำนวณไม่ทางใดก็ทางหนึ่ง บางส่วนประสบความสำเร็จมากจนถูกนำมาใช้ เช่น ในมาตรฐานการบีบอัดวิดีโอทั่วไป แน่นอนว่าราคาของความเร็วคือคุณภาพ เราจะพิจารณาวิธีอื่นซึ่งช่วยให้เราได้รับค่าชดเชยไม่ใช่สำหรับชิ้นส่วน แต่สำหรับแต่ละพิกเซล และใช้เมื่อความเร็วไม่สำคัญนัก ด้วยเหตุนี้เองที่คำว่า "กระแสแสง" มักมีความเกี่ยวข้องในวรรณกรรม
วิธีการนี้มักเรียกว่าดิฟเฟอเรนเชียล เนื่องจากเป็นการคำนวณอนุพันธ์บางส่วนตามทิศทางแนวนอนและแนวตั้งของภาพ ดังที่เราจะได้เห็นในภายหลัง อนุพันธ์เพียงอย่างเดียวไม่เพียงพอที่จะระบุการกระจัด นั่นคือเหตุผลว่าทำไมบนพื้นฐานของแนวคิดง่ายๆ เพียงหนึ่งเดียวจึงมีวิธีการที่หลากหลายซึ่งแต่ละวิธีใช้การเต้นรำทางคณิตศาสตร์กับแทมบูรีนเพื่อให้บรรลุเป้าหมาย มาดูวิธีลูคัส-คานาเดะที่เสนอในปี 1981 โดยบรูซ ลูคัส และทาเคโอะ คานาเดะ
วิธีลูคัส-คานาเดะ
การให้เหตุผลเพิ่มเติมทั้งหมดตั้งอยู่บนสมมติฐานที่สำคัญมากและไม่ยุติธรรมอย่างยิ่ง: สมมติว่าค่าพิกเซลจะย้ายจากเฟรมหนึ่งไปยังเฟรมถัดไปโดยไม่มีการเปลี่ยนแปลง- ดังนั้นเราจึงตั้งสมมติฐานว่าพิกเซลที่เป็นของวัตถุเดียวกันสามารถเปลี่ยนไปในทิศทางใดก็ได้ แต่ค่าของมันจะไม่เปลี่ยนแปลง แน่นอนว่าสมมติฐานนี้ไม่เกี่ยวข้องกับความเป็นจริงเลย เนื่องจากสภาพแสงโดยรวมและการส่องสว่างของวัตถุที่กำลังเคลื่อนที่สามารถเปลี่ยนไปในแต่ละเฟรมได้ สมมติฐานนี้มีปัญหามากมาย แต่น่าแปลกที่แม้จะมีทุกอย่าง แต่ก็ใช้งานได้ค่อนข้างดีในทางปฏิบัติในภาษาคณิตศาสตร์ สมมติฐานนี้สามารถเขียนได้ดังนี้: โดยที่ I เป็นฟังก์ชันของความสว่างพิกเซลจากตำแหน่งบนเฟรมและเวลา กล่าวอีกนัยหนึ่ง x และ y คือพิกัดพิกเซลในระนาบเฟรม และเป็นออฟเซ็ต และ t คือหมายเลขเฟรมในลำดับ ตกลงกันว่าช่วงเวลาหนึ่งผ่านไประหว่างสองเฟรมที่อยู่ติดกัน
กรณีมิติเดียว
ก่อนอื่น เรามาพิจารณากรณีมิติเดียวกัน ลองนึกภาพเฟรมหนึ่งมิติสองเฟรมสูง 1 พิกเซลและกว้าง 20 พิกเซล (ภาพด้านขวา) ในเฟรมที่สอง ภาพจะเลื่อนไปทางขวาเล็กน้อย การกระจัดนี่แหละที่เราต้องการหา เมื่อต้องการทำเช่นนี้ ลองจินตนาการถึงเฟรมเดียวกันเหล่านี้เป็นฟังก์ชัน (รูปด้านซ้าย) อินพุตคือตำแหน่งพิกเซล เอาต์พุตคือความเข้มของมัน ในการเป็นตัวแทนนี้ การกระจัดที่ต้องการ (d) จะมองเห็นได้ชัดเจนยิ่งขึ้น ตามสมมติฐานของเรา นี่เป็นเพียงการเลื่อน นั่นคือเราสามารถพูดได้ว่า .โปรดทราบว่าหากต้องการคุณสามารถเขียนในรูปแบบทั่วไปได้: ; โดยที่ y และ t คงที่และเท่ากับศูนย์
สำหรับแต่ละพิกัดเรารู้ค่า ณ จุดนี้ นอกจากนี้เรายังสามารถคำนวณอนุพันธ์ของพวกมันได้ ให้เราเชื่อมโยงค่าที่รู้จักกับออฟเซ็ต d เพื่อทำเช่นนี้ เราเขียนส่วนขยายซีรีส์ Taylor สำหรับ:
เรามาตั้งสมมติฐานที่สำคัญประการที่สองกัน: ให้เราสมมติว่ามันประมาณค่าด้วยอนุพันธ์อันดับหนึ่งได้ดีเพียงพอ- เมื่อตั้งสมมติฐานนี้แล้ว เราจะทิ้งทุกอย่างหลังจากอนุพันธ์อันดับหนึ่ง:
สิ่งนี้ถูกต้องแค่ไหน? โดยทั่วไปแล้ว ไม่มากนัก ในกรณีนี้เราจะสูญเสียความแม่นยำ เว้นแต่ว่าฟังก์ชัน/รูปภาพของเราจะเป็นเส้นตรงอย่างเคร่งครัด ดังตัวอย่างที่สร้างขึ้น แต่วิธีนี้ทำให้วิธีการง่ายขึ้นอย่างมาก และเพื่อให้ได้ความแม่นยำที่ต้องการ คุณสามารถทำการประมาณต่อเนื่องได้ ซึ่งเราจะพิจารณาในภายหลัง
เราเกือบจะถึงที่นั่นแล้ว การกระจัด d คือค่าที่เราต้องการ ดังนั้นเราจึงต้องทำอะไรสักอย่างด้วย ตามที่เราตกลงกันไว้ก่อนหน้านี้ ดังนั้นเราจะเขียนใหม่:
กรณีสองมิติ
ตอนนี้เรามาดูจากเคสมิติเดียวไปเป็นเคสสองมิติกัน ให้เราเขียนส่วนขยายในซีรีส์ Taylor และทิ้งอนุพันธ์ที่สูงกว่าทั้งหมดทันที แทนที่จะเป็นอนุพันธ์อันดับหนึ่ง การไล่ระดับสีจะปรากฏขึ้น:เวกเตอร์การกระจัดอยู่ที่ไหน
ตามสมมติฐานที่ตั้งไว้ โปรดทราบว่านิพจน์นี้เทียบเท่ากับ นี่คือสิ่งที่เราต้องการ มาเขียนใหม่:
เนื่องจากช่วงเวลาหนึ่งหน่วยผ่านไประหว่างสองเฟรม เราจึงสามารถพูดได้ว่าไม่มีอะไรมากไปกว่าอนุพันธ์ที่เกี่ยวข้องกับเวลา
มาเขียนใหม่:
มาเขียนใหม่อีกครั้งโดยขยายการไล่ระดับสี:
เรามีสมการที่บอกเราว่าผลรวมของอนุพันธ์ย่อยต้องเท่ากับศูนย์ ปัญหาเดียวคือเรามีสมการเดียว แต่มีสองสิ่งที่ไม่ทราบอยู่ในนั้น: และ เมื่อมาถึงจุดนี้ การบินสุดจินตนาการและแนวทางที่หลากหลายได้เริ่มต้นขึ้น
เรามาตั้งสมมติฐานข้อที่สามกัน: สมมติว่าพิกเซลข้างเคียงถูกเลื่อนไปในระยะห่างเท่ากัน- ลองใช้ส่วนของภาพขนาด 5 คูณ 5 พิกเซลแล้วตกลงว่าแต่ละพิกเซลจาก 25 พิกเซลจะเท่ากัน แทนที่จะได้สมการเดียว เราจะได้ 25 สมการในคราวเดียว! เห็นได้ชัดว่าในกรณีทั่วไป ระบบไม่มีวิธีแก้ปัญหา ดังนั้นเราจะมองหาวิธีแก้ปัญหาดังกล่าวและลดข้อผิดพลาดให้เหลือน้อยที่สุด:
โดยที่ g คือฟังก์ชันที่กำหนดค่าสัมประสิทธิ์การถ่วงน้ำหนักสำหรับพิกเซล ตัวเลือกที่พบบ่อยที่สุดคือ Gaussian สองมิติ ซึ่งให้น้ำหนักมากที่สุดกับพิกเซลส่วนกลาง และน้อยลงเรื่อยๆ เมื่อเคลื่อนออกจากศูนย์กลาง
ในการค้นหาค่าต่ำสุด เราใช้วิธีกำลังสองน้อยที่สุดและค้นหาอนุพันธ์ย่อยที่เกี่ยวข้องกับและ:
มาเขียนมันใหม่ในรูปแบบที่กะทัดรัดกว่านี้แล้วเท่ากับศูนย์:
ลองเขียนสมการทั้งสองนี้ใหม่ในรูปแบบเมทริกซ์:
หากเมทริกซ์ M กลับด้านได้ (มีอันดับ 2) เราสามารถคำนวณ และ ซึ่งจะลดข้อผิดพลาด E ให้เหลือน้อยที่สุด:
นั่นคือทั้งหมดที่ เรารู้การกระจัดของพิกเซลโดยประมาณระหว่างสองเฟรมที่อยู่ติดกัน
เนื่องจากพิกเซลที่อยู่ติดกันยังมีส่วนร่วมในการค้นหาออฟเซ็ตของแต่ละพิกเซลด้วย เมื่อใช้วิธีนี้ ขอแนะนำให้คำนวณอนุพันธ์แนวนอนและแนวตั้งของเฟรมก่อน
ข้อเสียของวิธีการ
วิธีการที่อธิบายไว้ข้างต้นตั้งอยู่บนสมมติฐานที่สำคัญ 3 ข้อ ซึ่งในอีกด้านหนึ่ง ทำให้เรามีโอกาสพื้นฐานในการพิจารณาการไหลของแสง แต่ในทางกลับกัน กลับทำให้เกิดข้อผิดพลาด ข่าวดีสำหรับผู้ชอบความสมบูรณ์แบบก็คือ เราจำเป็นต้องมีสมมติฐานเพียงข้อเดียวเพื่อทำให้วิธีการนี้ง่ายขึ้น และเราสามารถจัดการกับผลที่ตามมาได้ เราสันนิษฐานว่าเพื่อประมาณค่าการกระจัด อนุพันธ์อันดับ 1 น่าจะเพียงพอสำหรับเรา ในกรณีทั่วไปจะไม่เป็นเช่นนั้นอย่างแน่นอน (รูปด้านซ้าย) เพื่อให้บรรลุความแม่นยำที่ต้องการ สามารถคำนวณออฟเซ็ตสำหรับคู่เฟรมแต่ละคู่ (เรียกว่า และ ) ซ้ำได้ ในวรรณคดีสิ่งนี้เรียกว่าการแปรปรวน ในทางปฏิบัติ หมายความว่า เมื่อคำนวณการกระจัดในการวนซ้ำครั้งแรก เราจะย้ายแต่ละพิกเซลของเฟรมไปในทิศทางตรงกันข้ามเพื่อชดเชยการกระจัดนี้ ในการวนซ้ำครั้งต่อไป เราจะใช้เวอร์ชันที่บิดเบี้ยวแทนเฟรมดั้งเดิม และต่อๆ ไป จนกระทั่งถึงการวนซ้ำครั้งถัดไป การกระจัดที่เกิดขึ้นทั้งหมดจะน้อยกว่าค่าเกณฑ์ที่ระบุ เราได้ค่าการกระจัดสุดท้ายสำหรับแต่ละพิกเซลโดยเป็นผลรวมของการกระจัดในการวนซ้ำทั้งหมดโดยธรรมชาติแล้ว วิธีการนี้เป็นแบบท้องถิ่น นั่นคือเมื่อพิจารณาออฟเซ็ตของพิกเซลใดพิกเซลหนึ่ง จะพิจารณาเฉพาะพื้นที่รอบ ๆ พิกเซลนี้เท่านั้น - บริเวณใกล้เคียง ด้วยเหตุนี้ จึงเป็นไปไม่ได้ที่จะระบุการกระจัดภายในพื้นที่ที่มีสีสม่ำเสมอขนาดใหญ่เพียงพอ (ใหญ่กว่าขนาดของพื้นที่ใกล้เคียง) โชคดีที่พื้นที่ดังกล่าวมักไม่พบในเฟรมจริง แต่คุณลักษณะนี้ยังคงให้ค่าเบี่ยงเบนเพิ่มเติมจากออฟเซ็ตจริง
ปัญหาอีกประการหนึ่งคือพื้นผิวบางส่วนในภาพสร้างเมทริกซ์เอกพจน์ M ซึ่งไม่พบเมทริกซ์ผกผัน ดังนั้นสำหรับพื้นผิวดังกล่าว เราจะไม่สามารถกำหนดออฟเซ็ตได้ คือดูเหมือนมีการเคลื่อนไหวแต่ยังไม่ชัดเจนว่าไปในทิศทางใด โดยทั่วไปไม่เพียงแต่วิธีที่พิจารณาเท่านั้นที่ประสบปัญหานี้ แม้แต่สายตามนุษย์ก็ไม่รับรู้การเคลื่อนไหวดังกล่าวอย่างชัดเจน (เสาตัดผม)
บทสรุป
เราตรวจสอบรากฐานทางทฤษฎีของหนึ่งในวิธีการเชิงอนุพันธ์ในการค้นหาการไหลแบบออปติก มีวิธีการที่น่าสนใจอื่นๆ อีกมากมาย ซึ่งบางวิธีในปัจจุบันให้ผลลัพธ์ที่น่าเชื่อถือมากกว่า อย่างไรก็ตาม วิธีลูคัส-คานาเดะ แม้จะค่อนข้างมีประสิทธิภาพ แต่ก็ยังเข้าใจได้ง่าย ดังนั้นจึงเหมาะอย่างยิ่งสำหรับการแนะนำพื้นฐานทางคณิตศาสตร์แม้ว่าปัญหาในการค้นหาการไหลของแสงจะได้รับการศึกษามานานหลายทศวรรษแล้ว แต่วิธีการต่างๆ ก็ยังได้รับการปรับปรุงให้ดีขึ้น งานยังคงดำเนินต่อไปโดยคำนึงถึงข้อเท็จจริงที่ว่าเมื่อตรวจสอบอย่างใกล้ชิดแล้ว ปัญหาจะกลายเป็นเรื่องยากมาก และความเสถียรและประสิทธิภาพของอัลกอริธึมอื่น ๆ อีกมากมายนั้นขึ้นอยู่กับคุณภาพของการพิจารณาอคติในการประมวลผลวิดีโอและภาพ
ในบันทึกที่เสแสร้งนี้ ฉันขอสรุปและไปยังแหล่งที่มาและลิงก์ที่มีประโยชน์
วิธีลูคัส-คานาเดะ
Agafonov V.Y. 1
1 Agafonov Vladislav Yuryevich - นักศึกษาระดับบัณฑิตศึกษาของภาควิชา "การออกแบบโดยใช้คอมพิวเตอร์ช่วยและระบบการออกแบบการค้นหา", มหาวิทยาลัยเทคนิคแห่งรัฐโวลโกกราด,
โวลโกกราด
คำอธิบายประกอบ: วีบทความนี้กล่าวถึงสองวิธีในการค้นหาค่าชดเชยระหว่างรูปภาพในสตรีมวิดีโอ วิธีแรกขึ้นอยู่กับการลดข้อผิดพลาดให้เหลือน้อยที่สุดโดยใช้วิธีกำลังสองน้อยที่สุดในการค้นหาการกระจัดของจุดสำคัญในภาพ แนวทางที่สองอิงจากการประมาณพื้นที่บางส่วนของแต่ละพิกเซลด้วยพหุนามกำลังสอง ซึ่งสามารถนำมาใช้ในการประมาณค่าการเคลื่อนไหวได้เป็นอย่างดี มีการอธิบายขั้นตอนหลักของการนำวิธีการไปใช้ ชุดทดสอบรูปภาพถูกจัดทำขึ้นโดยคำนึงถึงลักษณะเฉพาะของงาน นำเสนอผลการทดสอบเหล่านี้
คำสำคัญ: การประมวลผลภาพ การค้นหาการแทนที่รูปภาพ
การประยุกต์ใช้วิธีการไหลของแสงเพื่อประมาณค่าการเปลี่ยนภาพ
Agafonov V.U. 1
1 Agafonov Vladislav Urevich - นักศึกษาระดับบัณฑิตศึกษาของแผนก "ระบบการออกแบบโดยใช้คอมพิวเตอร์ช่วยและการออกแบบการค้นหา"
มหาวิทยาลัยเทคนิคแห่งรัฐโวลโกกราด, โวลโกกราด
เชิงนามธรรม: ในบทความนี้ จะอธิบายวิธีการประมาณค่าการเลื่อนของภาพไว้ วิธีแรกขึ้นอยู่กับการลดข้อผิดพลาดกำลังสองเฉลี่ยให้เหลือน้อยที่สุดเมื่อค้นหาการกระจัดของจุดสำคัญของรูปภาพ แนวทางที่สองขึ้นอยู่กับการประมาณพื้นที่ใกล้เคียงของทั้งสองเฟรมโดยใช้พหุนามกำลังสอง ซึ่งสามารถทำได้อย่างมีประสิทธิภาพโดยใช้การแปลงส่วนขยายพหุนาม มีการอธิบายขั้นตอนหลักของการนำวิธีการเหล่านี้ไปใช้ ชุดทดสอบรูปภาพจัดทำขึ้นโดยคำนึงถึงลักษณะเฉพาะของปัญหา มีการนำเสนอผลงาน
คำสำคัญ: การประมวลผลภาพ การประมาณค่าการเปลี่ยนภาพ
ยูดีซี 004.932.2
การแนะนำ
เมื่อแก้ไขปัญหาการมองเห็นของคอมพิวเตอร์ ปัญหาในการประมาณการเคลื่อนไหวของวัตถุในเฟรมหรือการกระจัดของสองเฟรมติดต่อกันในสตรีมวิดีโอมักเกิดขึ้น การประมาณค่าพารามิเตอร์การเคลื่อนไหวของฉากบนเฟรมได้อย่างแม่นยำคือ ปัจจัยสำคัญสำหรับอัลกอริธึมหลายๆ วิธี วิธีการตรวจจับการเคลื่อนไหวจึงต้องมีความแม่นยำระดับย่อยของพิกเซล
มีหลายวิธีในการประมาณค่าการกระจัดของภาพ สิ่งสำคัญคือ: การระบุคุณสมบัติหลักในภาพ ตามด้วยการเปรียบเทียบจุดสำคัญ กำหนดความสัมพันธ์เฟสของการแสดงความถี่ของสัญญาณภาพและการไหลของแสง อย่างหลังในรูปแบบหลักไม่ได้ใช้เพื่อค้นหาการกระจัดของรูปภาพ แต่ใช้เพื่อกำหนดความเคลื่อนไหวในภาพ ดังนั้นการไหลของแสงจึงถูกนำมาใช้ในระบบสำหรับการตรวจจับและติดตามวัตถุ
การไหลของแสงคือรูปแบบของการเคลื่อนไหวที่ชัดเจนของวัตถุ พื้นผิว หรือขอบของฉากที่เกิดจากการเคลื่อนไหวสัมพัทธ์ของผู้สังเกตการณ์ (ตาหรือกล้อง) ที่สัมพันธ์กับฉาก อัลกอริธึมตามการไหลของแสง เช่น การตรวจจับการเคลื่อนไหว การแบ่งส่วนวัตถุ และการเข้ารหัสการเคลื่อนไหว ใช้การเคลื่อนไหวของวัตถุ พื้นผิว และขอบนี้
ในงานนี้จะมีการพิจารณาสองวิธี วิธีหนึ่งช่วยให้คุณได้รับการชดเชยสำหรับจุดสำคัญแต่ละจุด และวิธีที่สอง - สำหรับแต่ละพิกเซล
การไหลของแสงโดยวิธีลูคัส-คานาเดะ
แนวคิดพื้นฐานของวิธีนี้คือการถือว่าค่าพิกเซลย้ายจากเฟรมหนึ่งไปยังเฟรมถัดไปโดยไม่มีการเปลี่ยนแปลง:
ที่ไหน. โดยไม่สนใจเทอมที่เหลือเราจะได้สูตรสำหรับการประมาณ ????:
โดยจะกำหนดออฟเซ็ต ตามสมมติฐานที่เราทำไว้เราได้รับสิ่งนั้น จากนั้นเราเขียนสมการ (4) เป็น
ปรากฎว่าผลรวมของอนุพันธ์บางส่วนเป็นศูนย์ อย่างไรก็ตาม เนื่องจากเรามีสมการเดียวและไม่ทราบค่าสองค่า เราจึงต้องกำหนดเงื่อนไขเพิ่มเติม วิธีหนึ่งที่พบบ่อยคือกำหนดข้อจำกัดเกี่ยวกับพิกเซลใกล้เคียง สมมติว่าพิกเซลข้างเคียงเคลื่อนที่เท่ากัน แน่นอนว่าไม่สามารถมีออฟเซ็ตที่ตอบสนองทุกพิกเซลได้ ดังนั้นเราจึงลดข้อผิดพลาดให้เหลือน้อยที่สุดโดยใช้วิธีกำลังสองน้อยที่สุด
โดยที่คือเมทริกซ์สมมาตร เป็นเวกเตอร์ และเป็นสเกลาร์ ค่าสัมประสิทธิ์คำนวณโดยใช้กำลังสองน้อยที่สุดแบบถ่วงน้ำหนักสำหรับค่าสัญญาณในย่านใกล้เคียงที่กำหนด ฟังก์ชันการถ่วงน้ำหนักประกอบด้วยสององค์ประกอบที่เรียกว่าความแน่นอนและการบังคับใช้ ความแน่นอนสัมพันธ์กับค่าของสัญญาณตามค่าในพื้นที่ใกล้เคียง การบังคับใช้จะกำหนดการมีส่วนร่วมของคะแนนตามตำแหน่งในบริเวณใกล้เคียง โดยปกติแล้วจุดศูนย์กลางจะมีน้ำหนักมากที่สุด น้ำหนักของจุดที่เหลือจะลดลงในทิศทางในแนวรัศมี เนื่องจากภาพถูกขยายเป็นพหุนามกำลังสองในพื้นที่ใกล้เคียงบางแห่ง จึงจำเป็นต้องเข้าใจว่าพหุนามมีพฤติกรรมอย่างไรด้วยการกระจัดในอุดมคติ ให้พหุนามกำลังสองของรูปแบบ:
การเท่ากันค่าสัมประสิทธิ์ที่สอดคล้องกันของพหุนามกำลังสองที่เรามี:
สิ่งนี้เป็นจริงสำหรับสัญญาณใดๆ
เห็นได้ชัดว่าสมมติฐานที่ว่าสัญญาณสามารถแสดงด้วยพหุนามเดี่ยวนั้นค่อนข้างไม่สมจริง อย่างไรก็ตาม สามารถใช้ความสัมพันธ์ (10) กับสัญญาณจริงได้ แม้ว่าข้อผิดพลาดจะเกิดขึ้นก็ตาม คำถามหลักคือข้อผิดพลาดมีขนาดเล็กเพียงพอสำหรับอัลกอริธึมที่จะเป็นประโยชน์หรือไม่
ให้เราแทนที่การแทนค่าพหุนามสากลด้วยค่าท้องถิ่น มาคำนวณค่าสัมประสิทธิ์พหุนามสำหรับรูปภาพแรกและรูปภาพที่สองกัน ตาม (9) ควรจะเป็นเช่นนั้น แต่ในทางปฏิบัติจะใช้การประมาณ:
โดยที่สะท้อนถึงการแทนที่การกระจัดทั่วโลกด้วยการกระจัดที่แตกต่างกันในเชิงพื้นที่
ในทางปฏิบัติ สมการ (11) สามารถแก้ได้ทีละองค์ประกอบ แต่ผลลัพธ์ออกมามีเสียงรบกวนมากเกินไป ในทางกลับกัน มีการสันนิษฐานว่าขอบเขตการกระจัดเปลี่ยนแปลงช้าๆ เพื่อให้เราสามารถรวมข้อมูลโดยใช้พิกเซลข้างเคียงได้ ดังนั้นเราจึงพยายามค้นหาความพึงพอใจ (11) ในบริเวณใกล้เคียงหรือเป็นทางการมากขึ้น:
ปัญหาหลักของวิธีนี้คือการสันนิษฐานว่าพหุนามเหมือนกัน ยกเว้นออฟเซ็ต เนื่องจากการขยายพหุนามเฉพาะที่ของพหุนามจะเปลี่ยนไปตามสภาพแวดล้อม สิ่งนี้จะทำให้เกิดข้อผิดพลาดใน (11) สำหรับการกระจัดเล็ก ๆ สิ่งนี้ไม่สำคัญ แต่เมื่อการกระจัดเพิ่มขึ้น ข้อผิดพลาดก็จะเพิ่มขึ้น หากเรามีความรู้นิรนัยเกี่ยวกับอคติ เราสามารถเปรียบเทียบพหุนามสองตัวได้: อันแรกใน, อันที่สองใน โดยที่นี่คืออคติก่อนหน้า โดยปัดเศษเป็นค่าจำนวนเต็ม ด้วยวิธีนี้เราสามารถดำเนินการวิธีการซ้ำได้ อคติก่อนหน้าที่ดีกว่าหมายถึงอคติที่ค่อนข้างเล็ก ซึ่งจะเพิ่มโอกาสในการประมาณค่าอคติที่แท้จริงได้ดียิ่งขึ้น
การประยุกต์วิธีการไหลของแสงกับปัญหาการค้นหาการกระจัดของภาพ
เพื่อทดสอบวิธีการเหล่านี้ ได้ทำการทดสอบกับชุดข้อมูลปลอม เช่น ได้รับโดยใช้เครื่องกำเนิดภาพเอนเอียง เพื่อให้ได้พิกเซลย่อย พื้นที่ที่มีการเลื่อนเล็กน้อยสัมพันธ์กันจะถูกตัดออกจากภาพต้นฉบับ หลังจากนั้น รูปภาพทดสอบที่ได้จะถูกบีบอัดหลายครั้ง ข้อมูลบางส่วนจึงหายไป และการกระจัดก็ลดลงเหลือพิกเซลย่อย
สำหรับวิธีลูคัส-คานาเดะ จำเป็นต้องเลือกประเด็นสำคัญหลายประเด็น โดยจะต้องพบการกระจัด เพื่อจุดประสงค์นี้จึงถูกนำมาใช้ วิธีการแบบคลาสสิกค้นหาขอบเขตและมุม หลังจากได้รับการกระจัดของแต่ละจุดแล้ว จำเป็นต้องหาค่าเฉลี่ยผลลัพธ์ที่ได้
สำหรับวิธี Farneback ก็เพียงพอที่จะเฉลี่ยค่าการกระจัดในแต่ละพิกเซลแล้ว
การทดลองดำเนินการกับตัวอย่างคู่ทดสอบ 20 คู่ และคำนวณค่าเบี่ยงเบนมาตรฐานสำหรับแต่ละวิธี
OP ลูคัส-แคนาดา |
|
โอพี ฟาร์เนบาก้า |
ตารางที่ 1 - ค่าเบี่ยงเบนมาตรฐานของการกระจัด
จากผลการทดลองจะเห็นได้ว่าทั้งสองวิธีประมาณการการกระจัดของภาพด้วยความแม่นยำสูง ผลลัพธ์ของวิธีการของ Farneback จะแสดงผลลัพธ์ที่แย่กว่า เนื่องจากวิธีนี้จะประมาณการกระจัดของพิกเซลทั้งหมด และอาจทำให้เกิดข้อผิดพลาดในส่วนที่มีสีเดียวของภาพ
แต่ละวิธีมีข้อดีและข้อเสีย รวมถึงขอบเขตและข้อจำกัดในตัวเอง วิธีลูคัส-คานาเดะใช้การไหลของแสงแบบกระจัดกระจายและ
สามารถบรรลุความแม่นยำของพิกเซลย่อยได้ แต่ด้วยการเคลื่อนที่แบบไม่ขนานกับระนาบ ปัญหาอีกประการหนึ่งก็เกิดขึ้น: จะประเมินการกระจัดของจุดที่ไม่สำคัญได้อย่างไร แนวทางแรกคือการสร้างแผนภาพโวโรนอยสำหรับระนาบภาพโดยมีประเด็นสำคัญที่กำหนด แนวทางนี้ตั้งอยู่บนสมมติฐานว่าพื้นที่ที่อยู่ใกล้กับจุดสำคัญเคลื่อนที่ในลักษณะเดียวกับจุดสำคัญ โดยทั่วไปสิ่งนี้ไม่เป็นความจริงเสมอไป ในทางปฏิบัติ จุดสำคัญส่วนใหญ่จะเน้นที่วัตถุที่มีรายละเอียด ดังนั้นการกระจัดของพื้นที่สีทึบจะมีข้อผิดพลาดอย่างมาก วิธีที่สองคือค้นหาความคล้ายคลึงกันของภาพสองภาพ วิธีแก้ปัญหานี้ยังได้รับผลกระทบจากการประมาณค่าการกระจัดที่ขอบของภาพอย่างไม่ถูกต้องอีกด้วย
ข้อดีของวิธีการไหลของแสง Farneback คือสามารถพบการกระจัดของแต่ละพิกเซล อย่างไรก็ตาม วิธีนี้ยังทำให้เกิดข้อผิดพลาดกับวัตถุเป็นระยะและมีพื้นผิวไม่ชัดเจน แต่ช่วยให้เราประเมินการเคลื่อนที่ที่ไม่ใช่ระนาบขนานได้
บทสรุป
บทความนี้กล่าวถึงวิธีการประมาณค่าการกระจัดของภาพตามวิธีการไหลของแสง การบังคับใช้วิธีการต่างๆ ได้รับการพิสูจน์แล้วและผลลัพธ์ก็ถูกนำเสนอ การวิเคราะห์เปรียบเทียบ- การศึกษาทดลองวิธีการต่างๆ แสดงให้เห็นว่าวิธีการนี้มีความแม่นยำสูงและสามารถใช้ในการประมาณค่าพารามิเตอร์การเคลื่อนไหวของฉากได้
อ้างอิง/ อ้างอิง
- Fleet D., Weiss Y. การประมาณค่าการไหลด้วยแสง // คู่มือแบบจำลองทางคณิตศาสตร์ในคอมพิวเตอร์วิทัศน์ - Springer US, 2006. - หน้า 237-257.
- Farnebäck G. การประมาณค่าการเคลื่อนที่แบบสองเฟรมโดยอาศัยการขยายพหุนาม // การวิเคราะห์รูปภาพ - พ.ศ. 2546. - หน้า 363-370.