CINXE.COM
Optical flow - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Optical flow - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"cb05c204-83f6-4176-9c5f-cec3f3a2af2b","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Optical_flow","wgTitle":"Optical flow","wgCurRevisionId":1267943856,"wgRevisionId":1267943856,"wgArticleId":869825,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Pages with reference errors","Pages with broken reference names","Articles with short description","Short description is different from Wikidata","Commons category link from Wikidata","Motion in computer vision"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Optical_flow","wgRelevantArticleId":869825,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[], "wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q736111","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={ "ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming", "ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.math.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.14"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/1200px-Opticfloweg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="401"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/800px-Opticfloweg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="267"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/640px-Opticfloweg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="214"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Optical flow - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Optical_flow"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Optical_flow&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Optical_flow"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Optical_flow rootpage-Optical_flow skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Optical+flow" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Optical+flow" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Optical+flow" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Optical+flow" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Estimation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Estimation"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Estimation</span> </div> </a> <button aria-controls="toc-Estimation-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Estimation subsection</span> </button> <ul id="toc-Estimation-sublist" class="vector-toc-list"> <li id="toc-Classical_Models" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Classical_Models"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Classical Models</span> </div> </a> <ul id="toc-Classical_Models-sublist" class="vector-toc-list"> <li id="toc-Regularized_Models" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Regularized_Models"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1.1</span> <span>Regularized Models</span> </div> </a> <ul id="toc-Regularized_Models-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Parametric_Models" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Parametric_Models"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1.2</span> <span>Parametric Models</span> </div> </a> <ul id="toc-Parametric_Models-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Learning_Based_Models" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Learning_Based_Models"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Learning Based Models</span> </div> </a> <ul id="toc-Learning_Based_Models-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Uses" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Uses"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Uses</span> </div> </a> <ul id="toc-Uses-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Optical_flow_sensor" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Optical_flow_sensor"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Optical flow sensor</span> </div> </a> <ul id="toc-Optical_flow_sensor-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Optical flow</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 13 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-13" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">13 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AA%D8%AF%D9%81%D9%82_%D8%A8%D8%B5%D8%B1%D9%8A" title="تدفق بصري – Arabic" lang="ar" hreflang="ar" data-title="تدفق بصري" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Optischer_Fluss" title="Optischer Fluss – German" lang="de" hreflang="de" data-title="Optischer Fluss" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Flujo_%C3%B3ptico" title="Flujo óptico – Spanish" lang="es" hreflang="es" data-title="Flujo óptico" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B4%D8%A7%D8%B1_%D8%A8%D8%B5%D8%B1%DB%8C" title="شار بصری – Persian" lang="fa" hreflang="fa" data-title="شار بصری" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Flux_optique" title="Flux optique – French" lang="fr" hreflang="fr" data-title="Flux optique" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EA%B4%91%ED%95%99_%ED%9D%90%EB%A6%84" title="광학 흐름 – Korean" lang="ko" hreflang="ko" data-title="광학 흐름" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Optical_flow" title="Optical flow – Italian" lang="it" hreflang="it" data-title="Optical flow" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Optisch_stroomveld" title="Optisch stroomveld – Dutch" lang="nl" hreflang="nl" data-title="Optisch stroomveld" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%97%E3%83%86%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%95%E3%83%AD%E3%83%BC" title="オプティカルフロー – Japanese" lang="ja" hreflang="ja" data-title="オプティカルフロー" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Fluxo_%C3%B3tico" title="Fluxo ótico – Portuguese" lang="pt" hreflang="pt" data-title="Fluxo ótico" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA" title="Оптический поток – Russian" lang="ru" hreflang="ru" data-title="Оптический поток" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D1%87%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE%D1%82%D1%96%D0%BA" title="Оптичний потік – Ukrainian" lang="uk" hreflang="uk" data-title="Оптичний потік" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%85%89%E6%B5%81%E6%B3%95" title="光流法 – Chinese" lang="zh" hreflang="zh" data-title="光流法" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q736111#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Optical_flow" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Optical_flow" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Optical_flow"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Optical_flow&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Optical_flow&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Optical_flow"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Optical_flow&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Optical_flow&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Optical_flow" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Optical_flow" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Optical_flow&oldid=1267943856" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Optical_flow&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Optical_flow&id=1267943856&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FOptical_flow"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FOptical_flow"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Optical_flow&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Optical_flow&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Optic_flow" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q736111" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Pattern of motion in a visual scene due to relative motion of the observer</div> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Opticfloweg.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/400px-Opticfloweg.png" decoding="async" width="400" height="134" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/600px-Opticfloweg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/55/Opticfloweg.png/800px-Opticfloweg.png 2x" data-file-width="3938" data-file-height="1315" /></a><figcaption>The optic flow experienced by a rotating observer (in this case a fly). The direction and magnitude of optic flow at each location is represented by the direction and length of each arrow.</figcaption></figure> <p><b>Optical flow</b> or <b>optic flow</b> is the pattern of apparent <a href="/wiki/Motion_(physics)" class="mw-redirect" title="Motion (physics)">motion</a> of objects, surfaces, and edges in a visual scene caused by the <a href="/wiki/Relative_motion" class="mw-redirect" title="Relative motion">relative motion</a> between an observer and a scene.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Optical flow can also be defined as the distribution of apparent velocities of movement of brightness pattern in an image.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p><p>The concept of optical flow was introduced by the American psychologist <a href="/wiki/James_J._Gibson" title="James J. Gibson">James J. Gibson</a> in the 1940s to describe the visual stimulus provided to animals moving through the world.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Gibson stressed the importance of optic flow for <a href="/wiki/Affordance" title="Affordance">affordance perception</a>, the ability to discern possibilities for action within the environment. Followers of Gibson and his <a href="/wiki/Ecological_Psychology" class="mw-redirect" title="Ecological Psychology">ecological approach to psychology</a> have further demonstrated the role of the optical flow stimulus for the perception of movement by the observer in the world; perception of the shape, distance and movement of objects in the world; and the control of <a href="/wiki/Animal_locomotion" title="Animal locomotion">locomotion</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> </p><p>The term optical flow is also used by roboticists, encompassing related techniques from image processing and control of navigation including <a href="/wiki/Motion_detection" class="mw-redirect" title="Motion detection">motion detection</a>, <a href="/wiki/Image_segmentation" title="Image segmentation">object segmentation</a>, time-to-contact information, focus of expansion calculations, luminance, <a href="/wiki/Motion_compensation" title="Motion compensation">motion compensated</a> encoding, and stereo disparity measurement.<sup id="cite_ref-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008_6-0" class="reference"><a href="#cite_note-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-S._S._Beauchemin,_J._L._Barron_1995_7-0" class="reference"><a href="#cite_note-S._S._Beauchemin,_J._L._Barron_1995-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Estimation">Estimation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=1" title="Edit section: Estimation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Optical flow can be estimated in a number of ways. Broadly, optical flow estimation approaches can be divided into machine learning based models (sometimes called data-driven models), classical models (sometimes called knowledge-driven models) which do not use machine learning and hybrid models which use aspects of both learning based models and classical models.<sup id="cite_ref-Zhai_Survey_2021_8-0" class="reference"><a href="#cite_note-Zhai_Survey_2021-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Classical_Models">Classical Models</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=2" title="Edit section: Classical Models"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Many classical models use the intuitive assumption of <i>brightness constancy</i>; that even if a point moves between frames, its brightness stays constant.<sup id="cite_ref-Fortun_Survey_2015_9-0" class="reference"><a href="#cite_note-Fortun_Survey_2015-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> To formalise this intuitive assumption, consider two consecutive frames from a video sequence, with intensity <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I(x,y,t)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <mi>t</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I(x,y,t)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/943e368e17aa82dd32682aa0a2f44fc544c5268d" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.374ex; height:2.843ex;" alt="{\displaystyle I(x,y,t)}"></span>, where <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (x,y)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle (x,y)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/41cf50e4a314ca8e2c30964baa8d26e5be7a9386" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.328ex; height:2.843ex;" alt="{\displaystyle (x,y)}"></span> refer to pixel coordinates and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>t</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle t}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/65658b7b223af9e1acc877d848888ecdb4466560" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.84ex; height:2.009ex;" alt="{\displaystyle t}"></span> refers to time. In this case, the brightness constancy constraint is </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I(x,y,t)-I(x+u,y+v,t+1)=0,}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <mi>t</mi> <mo stretchy="false">)</mo> <mo>−<!-- − --></mo> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>+</mo> <mi>u</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>v</mi> <mo>,</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo stretchy="false">)</mo> <mo>=</mo> <mn>0</mn> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I(x,y,t)-I(x+u,y+v,t+1)=0,}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/9d655d5f78df6c1c635ff9ab0e588a4999f2d1c3" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:36.637ex; height:2.843ex;" alt="{\displaystyle I(x,y,t)-I(x+u,y+v,t+1)=0,}"></span></dd></dl> <p>where <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathbf {w} :=(u,v)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold">w</mi> </mrow> <mo>:=</mo> <mo stretchy="false">(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \mathbf {w} :=(u,v)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/f96b082344bfc0ac464c0351fe2e3a66788bd02a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.977ex; height:2.843ex;" alt="{\displaystyle \mathbf {w} :=(u,v)}"></span> is the displacement vector between a point in the first frame and the corresponding point in the second frame. By itself, the brightness constancy constraint cannot be solved for <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle u}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>u</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle u}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/c3e6bb763d22c20916ed4f0bb6bd49d7470cffd8" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.33ex; height:1.676ex;" alt="{\displaystyle u}"></span> and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle v}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>v</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle v}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e07b00e7fc0847fbd16391c778d65bc25c452597" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.128ex; height:1.676ex;" alt="{\displaystyle v}"></span> at each pixel, since there is only one equation and two unknowns. This is known as the <i><a href="/wiki/Motion_perception#The_aperture_problem" title="Motion perception">aperture problem</a></i>. Therefore, additional constraints must be imposed to estimate the flow field.<sup id="cite_ref-Brox_2004_10-0" class="reference"><a href="#cite_note-Brox_2004-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Baker_2011_11-0" class="reference"><a href="#cite_note-Baker_2011-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Regularized_Models">Regularized Models</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=3" title="Edit section: Regularized Models"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Perhaps the most natural approach to addressing the aperture problem is to apply a smoothness constraint or a <i>regularization constraint</i> to the flow field. One can combine both of these constraints to formulate estimating optical flow as an <a href="/wiki/Optimization_problem" title="Optimization problem">optimization problem</a>, where the goal is to minimize the cost function of the form, </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle E=\iint _{\Omega }\Psi (I(x+u,y+v,t+1)-I(x,y,t))+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy,}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>E</mi> <mo>=</mo> <msub> <mo>∬<!-- ∬ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="normal">Ω<!-- Ω --></mi> </mrow> </msub> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>+</mo> <mi>u</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>v</mi> <mo>,</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo stretchy="false">)</mo> <mo>−<!-- − --></mo> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <mi>t</mi> <mo stretchy="false">)</mo> <mo stretchy="false">)</mo> <mo>+</mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mi mathvariant="normal">∇<!-- ∇ --></mi> <mi>u</mi> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mo stretchy="false">)</mo> <mo>+</mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mi mathvariant="normal">∇<!-- ∇ --></mi> <mi>v</mi> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mo stretchy="false">)</mo> <mi>d</mi> <mi>x</mi> <mi>d</mi> <mi>y</mi> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle E=\iint _{\Omega }\Psi (I(x+u,y+v,t+1)-I(x,y,t))+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy,}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/3151c0f34883abb8c19db2694f285f305df99a72" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.338ex; width:74.916ex; height:5.676ex;" alt="{\displaystyle E=\iint _{\Omega }\Psi (I(x+u,y+v,t+1)-I(x,y,t))+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy,}"></span></dd></dl> <p>where <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Omega }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Ω<!-- Ω --></mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Omega }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/24b0d5ca6f381068d756f6337c08e0af9d1eeb6f" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.678ex; height:2.176ex;" alt="{\displaystyle \Omega }"></span> is the extent of the images <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I(x,y)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I(x,y)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/4ec533ce0db7ddc246c115f375d6892597775732" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.5ex; height:2.843ex;" alt="{\displaystyle I(x,y)}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \nabla }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">∇<!-- ∇ --></mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \nabla }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a3d0e93b78c50237f9ea83d027e4ebbdaef354b2" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.936ex; height:2.176ex;" alt="{\displaystyle \nabla }"></span> is the gradient operator, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>α<!-- α --></mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \alpha }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b79333175c8b3f0840bfb4ec41b8072c83ea88d3" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.488ex; height:1.676ex;" alt="{\displaystyle \alpha }"></span> is a constant, and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Psi ()}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Psi ()}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/5eb2effaeef8814ef9b6811e38b30d1a40fe7328" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.617ex; height:2.843ex;" alt="{\displaystyle \Psi ()}"></span> is a <a href="/wiki/Loss_function" title="Loss function">loss function</a>. <sup id="cite_ref-Fortun_Survey_2015_9-1" class="reference"><a href="#cite_note-Fortun_Survey_2015-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Brox_2004_10-1" class="reference"><a href="#cite_note-Brox_2004-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p><p>This optimisation problem is difficult to solve owing to its non-linearity. To address this issue, one can use a <i>variational approach</i> and linearise the brightness constancy constraint using a first order <a href="/wiki/Taylor_series" title="Taylor series">Taylor series</a> approximation. Specifically, the brightness constancy constraint is approximated as, </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {\partial I}{\partial x}}u+{\frac {\partial I}{\partial y}}v+{\frac {\partial I}{\partial t}}=0.}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>x</mi> </mrow> </mfrac> </mrow> <mi>u</mi> <mo>+</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>y</mi> </mrow> </mfrac> </mrow> <mi>v</mi> <mo>+</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>t</mi> </mrow> </mfrac> </mrow> <mo>=</mo> <mn>0.</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\frac {\partial I}{\partial x}}u+{\frac {\partial I}{\partial y}}v+{\frac {\partial I}{\partial t}}=0.}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/80383652c57f66751a6d13625b06faf7dae544e7" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.505ex; width:23.182ex; height:6.009ex;" alt="{\displaystyle {\frac {\partial I}{\partial x}}u+{\frac {\partial I}{\partial y}}v+{\frac {\partial I}{\partial t}}=0.}"></span></dd></dl> <p>For convenience, the derivatives of the image, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\tfrac {\partial I}{\partial x}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="false" scriptlevel="0"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>x</mi> </mrow> </mfrac> </mstyle> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\tfrac {\partial I}{\partial x}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/cc9a3135c6f690d3bac59164e7ffdd94a8e134ea" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.338ex; width:2.708ex; height:3.843ex;" alt="{\displaystyle {\tfrac {\partial I}{\partial x}}}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\tfrac {\partial I}{\partial y}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="false" scriptlevel="0"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>y</mi> </mrow> </mfrac> </mstyle> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\tfrac {\partial I}{\partial y}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/824a2c1da4733074d8ce7b1c70882799080d9463" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.671ex; width:2.597ex; height:4.176ex;" alt="{\displaystyle {\tfrac {\partial I}{\partial y}}}"></span> and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\tfrac {\partial I}{\partial t}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="false" scriptlevel="0"> <mfrac> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>I</mi> </mrow> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mi>t</mi> </mrow> </mfrac> </mstyle> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\tfrac {\partial I}{\partial t}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/64b817827ab67c30ca91a3d7c0049bde9ae00ad6" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.338ex; width:2.597ex; height:3.843ex;" alt="{\displaystyle {\tfrac {\partial I}{\partial t}}}"></span> are often condensed to become <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{x}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{x}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/eed0dfcd8b1ce6eb2e6b7fbc426b895507d53004" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.196ex; height:2.509ex;" alt="{\displaystyle I_{x}}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{y}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{y}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6f3eedd0871fd35e1fd8992c53812cd60d1b07c2" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:2.072ex; height:2.843ex;" alt="{\displaystyle I_{y}}"></span> and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{t}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>t</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{t}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/fc386d951e8ffae76357542f14e160621e6668b1" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.849ex; height:2.509ex;" alt="{\displaystyle I_{t}}"></span>. Doing so, allows one to rewrite the linearised brightness constancy constraint as,<sup id="cite_ref-Baker_2011_11-1" class="reference"><a href="#cite_note-Baker_2011-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{x}u+I_{y}v+I_{t}=0.}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> <mi>u</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> <mi>v</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>t</mi> </mrow> </msub> <mo>=</mo> <mn>0.</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{x}u+I_{y}v+I_{t}=0.}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/1e8f4c4b11f92802dfa2fa15335b0ae5d02d5580" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:19.163ex; height:2.843ex;" alt="{\displaystyle I_{x}u+I_{y}v+I_{t}=0.}"></span></dd></dl> <p>The optimization problem can now be rewritten as </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle E=\iint _{\Omega }\Psi (I_{x}u+I_{y}v+I_{t})+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy.}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>E</mi> <mo>=</mo> <msub> <mo>∬<!-- ∬ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="normal">Ω<!-- Ω --></mi> </mrow> </msub> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> <mi>u</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> <mi>v</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>t</mi> </mrow> </msub> <mo stretchy="false">)</mo> <mo>+</mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mi mathvariant="normal">∇<!-- ∇ --></mi> <mi>u</mi> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mo stretchy="false">)</mo> <mo>+</mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mi mathvariant="normal">∇<!-- ∇ --></mi> <mi>v</mi> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mo stretchy="false">)</mo> <mi>d</mi> <mi>x</mi> <mi>d</mi> <mi>y</mi> <mo>.</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle E=\iint _{\Omega }\Psi (I_{x}u+I_{y}v+I_{t})+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy.}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b4c0b1d1aa26b6fcb0d647bc62671abbb95df887" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.338ex; width:57.443ex; height:5.676ex;" alt="{\displaystyle E=\iint _{\Omega }\Psi (I_{x}u+I_{y}v+I_{t})+\alpha \Psi (|\nabla u|)+\alpha \Psi (|\nabla v|)dxdy.}"></span></dd></dl> <p>For the choice of <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Psi (x)=x^{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> <mo>=</mo> <msup> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Psi (x)=x^{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a044c75fb79281ba0b1445ebb1814bf9c5205705" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.429ex; height:3.176ex;" alt="{\displaystyle \Psi (x)=x^{2}}"></span>, this method is the same as the <a href="/wiki/Horn-Schunck_method" class="mw-redirect" title="Horn-Schunck method">Horn-Schunck method</a>. <sup id="cite_ref-Horn_1980_12-0" class="reference"><a href="#cite_note-Horn_1980-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Of course, other choices of cost function have been used such as <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Psi (x)={\sqrt {x^{2}+\epsilon ^{2}}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> <mo>=</mo> <mrow class="MJX-TeXAtom-ORD"> <msqrt> <msup> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>+</mo> <msup> <mi>ϵ<!-- ϵ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> </msqrt> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Psi (x)={\sqrt {x^{2}+\epsilon ^{2}}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/137eefb06f1315920dc10fe76969d199faf19a6e" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:17.592ex; height:3.509ex;" alt="{\displaystyle \Psi (x)={\sqrt {x^{2}+\epsilon ^{2}}}}"></span>, which is a differentiable variant of the <a href="/wiki/Taxicab_geometry" title="Taxicab geometry"><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle L^{1}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle L^{1}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/74c288d1089f1ec85b01b4de25c441fc792bd2d9" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.637ex; height:2.676ex;" alt="{\displaystyle L^{1}}"></span> norm</a>.<sup id="cite_ref-Fortun_Survey_2015_9-2" class="reference"><a href="#cite_note-Fortun_Survey_2015-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> <sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p>To solve the aforementioned optimization problem, one can use the <a href="/wiki/Euler-Lagrange_equations" class="mw-redirect" title="Euler-Lagrange equations">Euler-Lagrange equations</a> to provide a system of partial differential equations for each point in <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I(x,y,t)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <mi>t</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I(x,y,t)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/943e368e17aa82dd32682aa0a2f44fc544c5268d" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.374ex; height:2.843ex;" alt="{\displaystyle I(x,y,t)}"></span>. In the simplest case of using <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Psi (x)=x^{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Ψ<!-- Ψ --></mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> <mo>=</mo> <msup> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Psi (x)=x^{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a044c75fb79281ba0b1445ebb1814bf9c5205705" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.429ex; height:3.176ex;" alt="{\displaystyle \Psi (x)=x^{2}}"></span>, these equations are, </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{x}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta u=0,}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> <mi>u</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> <mi>v</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>t</mi> </mrow> </msub> <mo stretchy="false">)</mo> <mo>−<!-- − --></mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Δ<!-- Δ --></mi> <mi>u</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{x}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta u=0,}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d6d3134041427f4a6c09101791cac01013420c23" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:30.761ex; height:3.009ex;" alt="{\displaystyle I_{x}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta u=0,}"></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{y}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta v=0,}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </msub> <mi>u</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>y</mi> </mrow> </msub> <mi>v</mi> <mo>+</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>t</mi> </mrow> </msub> <mo stretchy="false">)</mo> <mo>−<!-- − --></mo> <mi>α<!-- α --></mi> <mi mathvariant="normal">Δ<!-- Δ --></mi> <mi>v</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{y}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta v=0,}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/72d1adca289156b529283d4045b844bb419e8fa7" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:30.436ex; height:3.009ex;" alt="{\displaystyle I_{y}(I_{x}u+I_{y}v+I_{t})-\alpha \Delta v=0,}"></span></dd></dl> <p>where <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Delta ={\frac {\partial ^{2}}{\partial x^{2}}}+{\frac {\partial ^{2}}{\partial y^{2}}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi mathvariant="normal">Δ<!-- Δ --></mi> <mo>=</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <msup> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <msup> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> </mrow> </mfrac> </mrow> <mo>+</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <msup> <mi mathvariant="normal">∂<!-- ∂ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mrow> <mi mathvariant="normal">∂<!-- ∂ --></mi> <msup> <mi>y</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> </mrow> </mfrac> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \Delta ={\frac {\partial ^{2}}{\partial x^{2}}}+{\frac {\partial ^{2}}{\partial y^{2}}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b9b5313f0b1b67aae3e44844d07eab84391360f4" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.505ex; width:16.782ex; height:6.343ex;" alt="{\displaystyle \Delta ={\frac {\partial ^{2}}{\partial x^{2}}}+{\frac {\partial ^{2}}{\partial y^{2}}}}"></span> denotes the <a href="/wiki/Laplace_operator" title="Laplace operator">Laplace operator</a>. Since the image data is made up of discrete pixels, these equations are discretised. Doing so yields a system of linear equations which can be solved for <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (u,v)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle (u,v)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/eadf12294edccd7a29c99cfc1765e4a14bf47e58" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.301ex; height:2.843ex;" alt="{\displaystyle (u,v)}"></span> at each pixel, using an iterative scheme such as <a href="/wiki/Gauss-Seidel" class="mw-redirect" title="Gauss-Seidel">Gauss-Seidel</a>.<sup id="cite_ref-Horn_1980_12-1" class="reference"><a href="#cite_note-Horn_1980-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> </p><p>An alternate approach is to discretize the optimisation problem and then perform a search of the possible <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (u,v)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle (u,v)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/eadf12294edccd7a29c99cfc1765e4a14bf47e58" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.301ex; height:2.843ex;" alt="{\displaystyle (u,v)}"></span> values without linearising it.<sup id="cite_ref-Steinbrucker_2009_14-0" class="reference"><a href="#cite_note-Steinbrucker_2009-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> This search is often performed using <a href="/wiki/Max-flow_min-cut_theorem" title="Max-flow min-cut theorem">Max-flow min-cut theorem</a> algorithms, linear programming or <a href="/wiki/Belief_propagation" title="Belief propagation">belief propagation</a> methods. </p> <div class="mw-heading mw-heading4"><h4 id="Parametric_Models">Parametric Models</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=4" title="Edit section: Parametric Models"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Instead of applying the regularization constraint on a point by point basis as per a regularized model, one can group pixels into regions and estimate the motion of these regions. This is known as a <i>parametric model</i>, since the motion of these regions is <a href="/wiki/Parameter" title="Parameter">parameterized</a>. In formulating optical flow estimation in this way, one makes the assumption that the motion field in each region be fully characterised by a set of parameters. Therefore, the goal of a parametric model is to estimate the motion parameters that minimise a loss function which can be written as, </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}g(x,y)\rho (x,y,I_{1},I_{2},u_{\boldsymbol {\alpha }},v_{\boldsymbol {\alpha }}),}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mrow class="MJX-TeXAtom-ORD"> <mover> <mi mathvariant="bold-italic">α<!-- α --></mi> <mo stretchy="false">^<!-- ^ --></mo> </mover> </mrow> </mrow> <mo>=</mo> <mi>arg</mi> <mo>⁡<!-- --></mo> <munder> <mo movablelimits="true" form="prefix">min</mo> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </munder> <munder> <mo>∑<!-- ∑ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> <mo>∈<!-- ∈ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mrow class="MJX-TeXAtom-ORD"> <mi class="MJX-tex-caligraphic" mathvariant="script">R</mi> </mrow> </mrow> </mrow> </munder> <mi>g</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> <mi>ρ<!-- ρ --></mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>u</mi> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </msub> <mo>,</mo> <msub> <mi>v</mi> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </msub> <mo stretchy="false">)</mo> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}g(x,y)\rho (x,y,I_{1},I_{2},u_{\boldsymbol {\alpha }},v_{\boldsymbol {\alpha }}),}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/1c50a28133a221a93117794f9233bbd6043ab13a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.505ex; width:46.459ex; height:6.009ex;" alt="{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}g(x,y)\rho (x,y,I_{1},I_{2},u_{\boldsymbol {\alpha }},v_{\boldsymbol {\alpha }}),}"></span></dd></dl> <p>where <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\boldsymbol {\alpha }}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\boldsymbol {\alpha }}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a585d2bb19071162720ea56a7b087dab3ec17156" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.769ex; height:1.676ex;" alt="{\displaystyle {\boldsymbol {\alpha }}}"></span> is the set of parameters determining the motion in the region <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {R}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mrow class="MJX-TeXAtom-ORD"> <mi class="MJX-tex-caligraphic" mathvariant="script">R</mi> </mrow> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\mathcal {R}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/74532dc308c806964b832df0d0d73352195c2f2f" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.971ex; height:2.176ex;" alt="{\displaystyle {\mathcal {R}}}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \rho ()}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>ρ<!-- ρ --></mi> <mo stretchy="false">(</mo> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \rho ()}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/dc9c892f7d2c6675d4ad5e6a6c54de0c5b8e5bfa" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.011ex; height:2.843ex;" alt="{\displaystyle \rho ()}"></span> is data cost term, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g()}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>g</mi> <mo stretchy="false">(</mo> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle g()}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/470796058e31f0716079ef2047568896bdd748ac" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:2.925ex; height:2.843ex;" alt="{\displaystyle g()}"></span> is a weighting function that determines the influence of pixel <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (x,y)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle (x,y)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/41cf50e4a314ca8e2c30964baa8d26e5be7a9386" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.328ex; height:2.843ex;" alt="{\displaystyle (x,y)}"></span> on the total cost, and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{1}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{1}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/03f18d041b2df30adef07164dbf285878893dedc" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.077ex; height:2.509ex;" alt="{\displaystyle I_{1}}"></span> and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle I_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>I</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle I_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/5e3506ae39df854f347365bae6f326ef4f565be5" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.077ex; height:2.509ex;" alt="{\displaystyle I_{2}}"></span> are frames 1 and 2 from a pair of consecutive frames. <sup id="cite_ref-Fortun_Survey_2015_9-3" class="reference"><a href="#cite_note-Fortun_Survey_2015-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p><p>The simplest parametric model is the <a href="/wiki/Lucas-Kanade_method" class="mw-redirect" title="Lucas-Kanade method">Lucas-Kanade method</a>. This uses rectangular regions and parameterises the motion as purely translational. The Lucas-Kanade method uses the original brightness constancy constrain as the data cost term and selects <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g(x,y)=1}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>g</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> <mo>=</mo> <mn>1</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle g(x,y)=1}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/35122b42cb66c9a7d7ab38c0aae54496721c2376" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.705ex; height:2.843ex;" alt="{\displaystyle g(x,y)=1}"></span>. This yields the local loss function, </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}|I(x+u_{\boldsymbol {\alpha }},y+v_{\boldsymbol {\alpha }},t+1)-I(x,y,t)|.}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mrow class="MJX-TeXAtom-ORD"> <mover> <mi mathvariant="bold-italic">α<!-- α --></mi> <mo stretchy="false">^<!-- ^ --></mo> </mover> </mrow> </mrow> <mo>=</mo> <mi>arg</mi> <mo>⁡<!-- --></mo> <munder> <mo movablelimits="true" form="prefix">min</mo> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </munder> <munder> <mo>∑<!-- ∑ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo stretchy="false">)</mo> <mo>∈<!-- ∈ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mrow class="MJX-TeXAtom-ORD"> <mi class="MJX-tex-caligraphic" mathvariant="script">R</mi> </mrow> </mrow> </mrow> </munder> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>+</mo> <msub> <mi>u</mi> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </msub> <mo>,</mo> <mi>y</mi> <mo>+</mo> <msub> <mi>v</mi> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="bold-italic">α<!-- α --></mi> </mrow> </msub> <mo>,</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo stretchy="false">)</mo> <mo>−<!-- − --></mo> <mi>I</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>,</mo> <mi>t</mi> <mo stretchy="false">)</mo> <mrow class="MJX-TeXAtom-ORD"> <mo stretchy="false">|</mo> </mrow> <mo>.</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}|I(x+u_{\boldsymbol {\alpha }},y+v_{\boldsymbol {\alpha }},t+1)-I(x,y,t)|.}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a7175cc3b595ef217241f35dff6d596080813f4b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.505ex; width:55.759ex; height:6.009ex;" alt="{\displaystyle {\hat {\boldsymbol {\alpha }}}=\arg \min _{\boldsymbol {\alpha }}\sum _{(x,y)\in {\mathcal {R}}}|I(x+u_{\boldsymbol {\alpha }},y+v_{\boldsymbol {\alpha }},t+1)-I(x,y,t)|.}"></span></dd></dl> <p>Other possible local loss functions include the negative normalized <a href="/wiki/Cross-correlation" title="Cross-correlation">cross-correlation</a> between the two frames.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Learning_Based_Models">Learning Based Models</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=5" title="Edit section: Learning Based Models"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Instead of seeking to model optical flow directly, one can train a <a href="/wiki/Machine_learning" title="Machine learning">machine learning</a> system to estimate optical flow. Since 2015, when FlowNet<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> was proposed, learning based models have been applied to optical flow and have gained prominence. Initially, these approaches were based on <a href="/wiki/Convolutional_neural_network" title="Convolutional neural network">Convolutional Neural Networks</a> arranged in a <a href="/wiki/U-Net" title="U-Net">U-Net</a> architecture. However, with the advent of <a href="/wiki/Transformer_(deep_learning_architecture)" title="Transformer (deep learning architecture)">transformer architecture</a> in 2017, transformer based models have gained prominence.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Uses">Uses</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=6" title="Edit section: Uses"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Motion_estimation" title="Motion estimation">Motion estimation</a> and <a href="/wiki/Video_compression" class="mw-redirect" title="Video compression">video compression</a> have developed as a major aspect of optical flow research. While the optical flow field is superficially similar to a dense motion field derived from the techniques of motion estimation, optical flow is the study of not only the determination of the optical flow field itself, but also of its use in estimating the three-dimensional nature and structure of the scene, as well as the 3D motion of objects and the observer relative to the scene, most of them using the image Jacobian.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p><p>Optical flow was used by robotics researchers in many areas such as: <a href="/wiki/Object_detection" title="Object detection">object detection</a> and tracking, image dominant plane extraction, movement detection, robot navigation and <a href="/wiki/Visual_odometry" title="Visual odometry">visual odometry</a>.<sup id="cite_ref-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008_6-1" class="reference"><a href="#cite_note-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Optical flow information has been recognized as being useful for controlling micro air vehicles.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> </p><p>The application of optical flow includes the problem of inferring not only the motion of the observer and objects in the scene, but also the <a href="/wiki/Structure" title="Structure">structure</a> of objects and the environment. Since awareness of motion and the generation of mental maps of the structure of our environment are critical components of animal (and human) <a href="/wiki/Visual_perception" title="Visual perception">vision</a>, the conversion of this innate ability to a computer capability is similarly crucial in the field of <a href="/wiki/Machine_vision" title="Machine vision">machine vision</a>.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> </p> <figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Optical_flow_example_v2.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/10/Optical_flow_example_v2.png/220px-Optical_flow_example_v2.png" decoding="async" width="220" height="102" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/10/Optical_flow_example_v2.png/330px-Optical_flow_example_v2.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/10/Optical_flow_example_v2.png/440px-Optical_flow_example_v2.png 2x" data-file-width="496" data-file-height="230" /></a><figcaption>The optical flow vector of a moving object in a video sequence.</figcaption></figure> <p>Consider a five-frame clip of a ball moving from the bottom left of a field of vision, to the top right. Motion estimation techniques can determine that on a two dimensional plane the ball is moving up and to the right and vectors describing this motion can be extracted from the sequence of frames. For the purposes of video compression (e.g., <a href="/wiki/MPEG" class="mw-redirect" title="MPEG">MPEG</a>), the sequence is now described as well as it needs to be. However, in the field of machine vision, the question of whether the ball is moving to the right or if the observer is moving to the left is unknowable yet critical information. Not even if a static, patterned background were present in the five frames, could we confidently state that the ball was moving to the right, because the pattern might have an infinite distance to the observer. </p> <div class="mw-heading mw-heading2"><h2 id="Optical_flow_sensor">Optical flow sensor<span class="anchor" id="flow"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=7" title="Edit section: Optical flow sensor"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="/wiki/Optical_flowmeter" class="mw-redirect" title="Optical flowmeter">Optical flowmeter</a>.</div> <p>Various configurations of optical flow sensors exist. One configuration is an image sensor chip connected to a processor programmed to run an optical flow algorithm. Another configuration uses a vision chip, which is an integrated circuit having both the <a href="/wiki/Image_sensor" title="Image sensor">image sensor</a> and the processor on the same die, allowing for a compact implementation.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> An example of this is a generic optical mouse sensor used in an <a href="/wiki/Optical_mouse" title="Optical mouse">optical mouse</a>. In some cases the processing circuitry may be implemented using analog or mixed-signal circuits to enable fast optical flow computation using minimal current consumption. </p><p>One area of contemporary research is the use of <a href="/wiki/Neuromorphic_engineering" class="mw-redirect" title="Neuromorphic engineering">neuromorphic engineering</a> techniques to implement circuits that respond to optical flow, and thus may be appropriate for use in an optical flow sensor.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Such circuits may draw inspiration from biological neural circuitry that similarly responds to optical flow. </p><p>Optical flow sensors are used extensively in computer <a href="/wiki/Optical_mouse" title="Optical mouse">optical mice</a>, as the main sensing component for measuring the motion of the mouse across a surface. </p><p>Optical flow sensors are also being used in <a href="/wiki/Robotics" title="Robotics">robotics</a> applications, primarily where there is a need to measure visual motion or relative motion between the robot and other objects in the vicinity of the robot. The use of optical flow sensors in <a href="/wiki/Unmanned_aerial_vehicle" title="Unmanned aerial vehicle"> unmanned aerial vehicles (UAVs)</a>, for stability and obstacle avoidance, is also an area of current research.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=8" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Ambient_optic_array" title="Ambient optic array">Ambient optic array</a></li> <li><a href="/wiki/Optical_mouse" title="Optical mouse">Optical mouse</a></li> <li><a href="/wiki/Range_imaging" title="Range imaging">Range imaging</a></li> <li><a href="/wiki/Vision_processing_unit" title="Vision processing unit">Vision processing unit</a></li> <li><a href="/wiki/Continuity_Equation" class="mw-redirect" title="Continuity Equation">Continuity Equation</a></li> <li><a href="/wiki/Motion_field" title="Motion field">Motion field</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=9" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width reflist-columns-2"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFBurtonRadford1978" class="citation book cs1">Burton, Andrew; Radford, John (1978). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=CSgOAAAAQAAJ&pg=PA77&dq=%22optical+flow%22"><i>Thinking in Perspective: Critical Essays in the Study of Thought Processes</i></a>. Routledge. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-416-85840-2" title="Special:BookSources/978-0-416-85840-2"><bdi>978-0-416-85840-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Thinking+in+Perspective%3A+Critical+Essays+in+the+Study+of+Thought+Processes&rft.pub=Routledge&rft.date=1978&rft.isbn=978-0-416-85840-2&rft.aulast=Burton&rft.aufirst=Andrew&rft.au=Radford%2C+John&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DCSgOAAAAQAAJ%26pg%3DPA77%26dq%3D%2522optical%2Bflow%2522&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWarrenStrelow1985" class="citation book cs1">Warren, David H.; Strelow, Edward R. (1985). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=-I_Hazgqx8QC&pg=PA414&dq=%22optical+flow%22"><i>Electronic Spatial Sensing for the Blind: Contributions from Perception</i></a>. Springer. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-90-247-2689-9" title="Special:BookSources/978-90-247-2689-9"><bdi>978-90-247-2689-9</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Electronic+Spatial+Sensing+for+the+Blind%3A+Contributions+from+Perception&rft.pub=Springer&rft.date=1985&rft.isbn=978-90-247-2689-9&rft.aulast=Warren&rft.aufirst=David+H.&rft.au=Strelow%2C+Edward+R.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3D-I_Hazgqx8QC%26pg%3DPA414%26dq%3D%2522optical%2Bflow%2522&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHornSchunck1981" class="citation journal cs1">Horn, Berthold K.P.; Schunck, Brian G. (August 1981). <a rel="nofollow" class="external text" href="http://image.diku.dk/imagecanon/material/HornSchunckOptical_Flow.pdf">"Determining optical flow"</a> <span class="cs1-format">(PDF)</span>. <i>Artificial Intelligence</i>. <b>17</b> (<span class="nowrap">1–</span>3): <span class="nowrap">185–</span>203. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0004-3702%2881%2990024-2">10.1016/0004-3702(81)90024-2</a>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1721.1%2F6337">1721.1/6337</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Artificial+Intelligence&rft.atitle=Determining+optical+flow&rft.volume=17&rft.issue=%3Cspan+class%3D%22nowrap%22%3E1%E2%80%93%3C%2Fspan%3E3&rft.pages=%3Cspan+class%3D%22nowrap%22%3E185-%3C%2Fspan%3E203&rft.date=1981-08&rft_id=info%3Ahdl%2F1721.1%2F6337&rft_id=info%3Adoi%2F10.1016%2F0004-3702%2881%2990024-2&rft.aulast=Horn&rft.aufirst=Berthold+K.P.&rft.au=Schunck%2C+Brian+G.&rft_id=http%3A%2F%2Fimage.diku.dk%2Fimagecanon%2Fmaterial%2FHornSchunckOptical_Flow.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGibson1950" class="citation book cs1">Gibson, J.J. (1950). <i>The Perception of the Visual World</i>. Houghton Mifflin.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Perception+of+the+Visual+World&rft.pub=Houghton+Mifflin&rft.date=1950&rft.aulast=Gibson&rft.aufirst=J.J.&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRoydenMoore2012" class="citation journal cs1">Royden, C. S.; Moore, K. D. (2012). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.visres.2012.02.006">"Use of speed cues in the detection of moving objects by moving observers"</a>. <i>Vision Research</i>. <b>59</b>: <span class="nowrap">17–</span>24. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.visres.2012.02.006">10.1016/j.visres.2012.02.006</a></span>. <a href="/wiki/PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/22406544">22406544</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:52847487">52847487</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Vision+Research&rft.atitle=Use+of+speed+cues+in+the+detection+of+moving+objects+by+moving+observers&rft.volume=59&rft.pages=%3Cspan+class%3D%22nowrap%22%3E17-%3C%2Fspan%3E24&rft.date=2012&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A52847487%23id-name%3DS2CID&rft_id=info%3Apmid%2F22406544&rft_id=info%3Adoi%2F10.1016%2Fj.visres.2012.02.006&rft.aulast=Royden&rft.aufirst=C.+S.&rft.au=Moore%2C+K.+D.&rft_id=https%3A%2F%2Fdoi.org%2F10.1016%252Fj.visres.2012.02.006&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Kelson_R._T._Aires,_Andre_M._Santana,_Adelardo_A._D._Medeiros_2008_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAiresSantanaMedeiros2008" class="citation book cs1">Aires, Kelson R. T.; Santana, Andre M.; Medeiros, Adelardo A. D. (2008). <a rel="nofollow" class="external text" href="http://www.dca.ufrn.br/~adelardo/artigos/SAC08.pdf"><i>Optical Flow Using Color Information</i></a> <span class="cs1-format">(PDF)</span>. ACM New York, NY, USA. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-59593-753-7" title="Special:BookSources/978-1-59593-753-7"><bdi>978-1-59593-753-7</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Optical+Flow+Using+Color+Information&rft.pub=ACM+New+York%2C+NY%2C+USA&rft.date=2008&rft.isbn=978-1-59593-753-7&rft.aulast=Aires&rft.aufirst=Kelson+R.+T.&rft.au=Santana%2C+Andre+M.&rft.au=Medeiros%2C+Adelardo+A.+D.&rft_id=http%3A%2F%2Fwww.dca.ufrn.br%2F~adelardo%2Fartigos%2FSAC08.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-S._S._Beauchemin,_J._L._Barron_1995-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-S._S._Beauchemin,_J._L._Barron_1995_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBeaucheminBarron1995" class="citation journal cs1">Beauchemin, S. S.; Barron, J. L. (1995). <a rel="nofollow" class="external text" href="http://portal.acm.org/ft_gateway.cfm?id=212141&type=pdf&coll=GUIDE&dl=GUIDE&CFID=72158298&CFTOKEN=85078203">"The computation of optical flow"</a>. <i>ACM Computing Surveys</i>. <b>27</b> (3). ACM New York, USA: <span class="nowrap">433–</span>466. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F212094.212141">10.1145/212094.212141</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1334552">1334552</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ACM+Computing+Surveys&rft.atitle=The+computation+of+optical+flow&rft.volume=27&rft.issue=3&rft.pages=%3Cspan+class%3D%22nowrap%22%3E433-%3C%2Fspan%3E466&rft.date=1995&rft_id=info%3Adoi%2F10.1145%2F212094.212141&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1334552%23id-name%3DS2CID&rft.aulast=Beauchemin&rft.aufirst=S.+S.&rft.au=Barron%2C+J.+L.&rft_id=http%3A%2F%2Fportal.acm.org%2Fft_gateway.cfm%3Fid%3D212141%26type%3Dpdf%26coll%3DGUIDE%26dl%3DGUIDE%26CFID%3D72158298%26CFTOKEN%3D85078203&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Zhai_Survey_2021-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Zhai_Survey_2021_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFZhaiXiangLvKong2021" class="citation journal cs1">Zhai, Mingliang; Xiang, Xuezhi; Lv, Ning; Kong, Xiangdong (2021). <a rel="nofollow" class="external text" href="https://www.sciencedirect.com/science/article/pii/S0031320321000480">"Optical flow and scene flow estimation: A survey"</a>. <i>Pattern Recognition</i>. <b>114</b>: 107861. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.patcog.2021.107861">10.1016/j.patcog.2021.107861</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Pattern+Recognition&rft.atitle=Optical+flow+and+scene+flow+estimation%3A+A+survey&rft.volume=114&rft.pages=107861&rft.date=2021&rft_id=info%3Adoi%2F10.1016%2Fj.patcog.2021.107861&rft.aulast=Zhai&rft.aufirst=Mingliang&rft.au=Xiang%2C+Xuezhi&rft.au=Lv%2C+Ning&rft.au=Kong%2C+Xiangdong&rft_id=https%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2FS0031320321000480&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Fortun_Survey_2015-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Fortun_Survey_2015_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Fortun_Survey_2015_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Fortun_Survey_2015_9-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Fortun_Survey_2015_9-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFortunBouthemyKervrann2015" class="citation journal cs1">Fortun, Denis; Bouthemy, Patrick; Kervrann, Charles (2015-05-01). <a rel="nofollow" class="external text" href="https://www.sciencedirect.com/science/article/pii/S1077314215000429">"Optical flow modeling and computation: A survey"</a>. <i>Computer Vision and Image Understanding</i>. <b>134</b>: <span class="nowrap">1–</span>21. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cviu.2015.02.008">10.1016/j.cviu.2015.02.008</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Computer+Vision+and+Image+Understanding&rft.atitle=Optical+flow+modeling+and+computation%3A+A+survey&rft.volume=134&rft.pages=%3Cspan+class%3D%22nowrap%22%3E1-%3C%2Fspan%3E21&rft.date=2015-05-01&rft_id=info%3Adoi%2F10.1016%2Fj.cviu.2015.02.008&rft.aulast=Fortun&rft.aufirst=Denis&rft.au=Bouthemy%2C+Patrick&rft.au=Kervrann%2C+Charles&rft_id=https%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2FS1077314215000429&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Brox_2004-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-Brox_2004_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Brox_2004_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBroxBruhnPapenbergWeickert2004" class="citation conference cs1">Brox, Thomas; Bruhn, Andrés; Papenberg, Nils; Weickert, Joachim (2004). <a rel="nofollow" class="external text" href="http://link.springer.com/10.1007/978-3-540-24673-2_3">"High Accuracy Optical Flow Estimation Based on a Theory for Warping"</a>. <i>Computer Vision - ECCV 2004</i>. ECCV 2004. Berlin, Heidelberg: Springer Berlin Heidelberg. pp. <span class="nowrap">25–</span>36.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=High+Accuracy+Optical+Flow+Estimation+Based+on+a+Theory+for+Warping&rft.btitle=Computer+Vision+-+ECCV+2004&rft.place=Berlin%2C+Heidelberg&rft.pages=%3Cspan+class%3D%22nowrap%22%3E25-%3C%2Fspan%3E36&rft.pub=Springer+Berlin+Heidelberg&rft.date=2004&rft.aulast=Brox&rft.aufirst=Thomas&rft.au=Bruhn%2C+Andr%C3%A9s&rft.au=Papenberg%2C+Nils&rft.au=Weickert%2C+Joachim&rft_id=http%3A%2F%2Flink.springer.com%2F10.1007%2F978-3-540-24673-2_3&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Baker_2011-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-Baker_2011_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Baker_2011_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBakerScharsteinLewisRoth2011" class="citation journal cs1">Baker, Simon; Scharstein, Daniel; Lewis, J. P.; Roth, Stefan; Black, Michael J.; Szeliski, Richard (1 March 2011). <a rel="nofollow" class="external text" href="https://link.springer.com/article/10.1007/s11263-010-0390-2">"A Database and Evaluation Methodology for Optical Flow"</a>. <i>International Journal of Computer Vision</i>. <b>92</b> (1): <span class="nowrap">1–</span>31. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs11263-010-0390-2">10.1007/s11263-010-0390-2</a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1573-1405">1573-1405</a><span class="reference-accessdate">. Retrieved <span class="nowrap">25 Dec</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=International+Journal+of+Computer+Vision&rft.atitle=A+Database+and+Evaluation+Methodology+for+Optical+Flow&rft.volume=92&rft.issue=1&rft.pages=%3Cspan+class%3D%22nowrap%22%3E1-%3C%2Fspan%3E31&rft.date=2011-03-01&rft_id=info%3Adoi%2F10.1007%2Fs11263-010-0390-2&rft.issn=1573-1405&rft.aulast=Baker&rft.aufirst=Simon&rft.au=Scharstein%2C+Daniel&rft.au=Lewis%2C+J.+P.&rft.au=Roth%2C+Stefan&rft.au=Black%2C+Michael+J.&rft.au=Szeliski%2C+Richard&rft_id=https%3A%2F%2Flink.springer.com%2Farticle%2F10.1007%2Fs11263-010-0390-2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Horn_1980-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-Horn_1980_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Horn_1980_12-1"><sup><i><b>b</b></i></sup></a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The named reference <code>Horn_1980</code> was invoked but never defined (see the <a href="/wiki/Help:Cite_errors/Cite_error_references_no_text" title="Help:Cite errors/Cite error references no text">help page</a>).</span></li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSunRothBlack2010" class="citation conference cs1">Sun, Deqing; Roth, Stefan; Black, "Micahel J." (2010). <a rel="nofollow" class="external text" href="https://ieeexplore.ieee.org/abstract/document/5539939">"Secrets of optical flow estimation and their principles"</a>. <i>2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition</i>. 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, CA, USA: IEEE. pp. <span class="nowrap">2432–</span>2439.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=Secrets+of+optical+flow+estimation+and+their+principles&rft.btitle=2010+IEEE+Computer+Society+Conference+on+Computer+Vision+and+Pattern+Recognition&rft.place=San+Francisco%2C+CA%2C+USA&rft.pages=%3Cspan+class%3D%22nowrap%22%3E2432-%3C%2Fspan%3E2439&rft.pub=IEEE&rft.date=2010&rft.aulast=Sun&rft.aufirst=Deqing&rft.au=Roth%2C+Stefan&rft.au=Black%2C+%22Micahel+J.%22&rft_id=https%3A%2F%2Fieeexplore.ieee.org%2Fabstract%2Fdocument%2F5539939&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-Steinbrucker_2009-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Steinbrucker_2009_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteinbr¨uckerPockCremersWeickert2009" class="citation conference cs1">Steinbr¨ucker, Frank; Pock, Thomas; Cremers, Daniel; Weickert, Joachim (2009). <a rel="nofollow" class="external text" href="https://ieeexplore.ieee.org/document/5459364">"Large Displacement Optical Flow Computation without Warping"</a>. <i>2009 IEEE 12th International Conference on Computer Vision</i>. 2009 IEEE 12th International Conference on Computer Vision. IEEE. pp. <span class="nowrap">1609–</span>1614.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=Large+Displacement+Optical+Flow+Computation+without+Warping&rft.btitle=2009+IEEE+12th+International+Conference+on+Computer+Vision&rft.pages=%3Cspan+class%3D%22nowrap%22%3E1609-%3C%2Fspan%3E1614&rft.pub=IEEE&rft.date=2009&rft.aulast=Steinbr%C2%A8ucker&rft.aufirst=Frank&rft.au=Pock%2C+Thomas&rft.au=Cremers%2C+Daniel&rft.au=Weickert%2C+Joachim&rft_id=https%3A%2F%2Fieeexplore.ieee.org%2Fdocument%2F5459364&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLucasKanade1981" class="citation conference cs1">Lucas, Bruce D.; Kanade, Takeo (1981-08-24). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/1623264.1623280"><i>An iterative image registration technique with an application to stereo vision</i></a>. <i>Proceedings of the 7th International Joint Conference on Artificial intelligence - Volume 2</i>. IJCAI'81. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc. pp. <span class="nowrap">674–</span>679.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=conference&rft.jtitle=Proceedings+of+the+7th+International+Joint+Conference+on+Artificial+intelligence+-+Volume+2&rft.atitle=An+iterative+image+registration+technique+with+an+application+to+stereo+vision&rft.pages=%3Cspan+class%3D%22nowrap%22%3E674-%3C%2Fspan%3E679&rft.date=1981-08-24&rft.aulast=Lucas&rft.aufirst=Bruce+D.&rft.au=Kanade%2C+Takeo&rft_id=https%3A%2F%2Fdl.acm.org%2Fdoi%2F10.5555%2F1623264.1623280&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDosovitskiyFischerIlgHausser2015" class="citation conference cs1">Dosovitskiy, Alexey; Fischer, Philipp; Ilg, Eddy; Hausser, Philip; Hazirbas, Caner; Golkov, Vladimir; Smagt, Patrick van der; Cremers, Daniel; Brox, Thomas (2015). <a rel="nofollow" class="external text" href="https://ieeexplore.ieee.org/document/7410673/"><i>FlowNet: Learning Optical Flow with Convolutional Networks</i></a>. 2015 IEEE International Conference on Computer Vision (ICCV). IEEE. pp. <span class="nowrap">2758–</span>2766. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FICCV.2015.316">10.1109/ICCV.2015.316</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-4673-8391-2" title="Special:BookSources/978-1-4673-8391-2"><bdi>978-1-4673-8391-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.btitle=FlowNet%3A+Learning+Optical+Flow+with+Convolutional+Networks&rft.pages=%3Cspan+class%3D%22nowrap%22%3E2758-%3C%2Fspan%3E2766&rft.pub=IEEE&rft.date=2015&rft_id=info%3Adoi%2F10.1109%2FICCV.2015.316&rft.isbn=978-1-4673-8391-2&rft.aulast=Dosovitskiy&rft.aufirst=Alexey&rft.au=Fischer%2C+Philipp&rft.au=Ilg%2C+Eddy&rft.au=Hausser%2C+Philip&rft.au=Hazirbas%2C+Caner&rft.au=Golkov%2C+Vladimir&rft.au=Smagt%2C+Patrick+van+der&rft.au=Cremers%2C+Daniel&rft.au=Brox%2C+Thomas&rft_id=https%3A%2F%2Fieeexplore.ieee.org%2Fdocument%2F7410673%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAlfaranoMaianoPapaAmerini2024" class="citation journal cs1">Alfarano, Andrea; Maiano, Luca; Papa, Lorenzo; Amerini, Irene (2024). <a rel="nofollow" class="external text" href="https://linkinghub.elsevier.com/retrieve/pii/S1077314224002418">"Estimating optical flow: A comprehensive review of the state of the art"</a>. <i>Computer Vision and Image Understanding</i>. <b>249</b>: 104160. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cviu.2024.104160">10.1016/j.cviu.2024.104160</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Computer+Vision+and+Image+Understanding&rft.atitle=Estimating+optical+flow%3A+A+comprehensive+review+of+the+state+of+the+art&rft.volume=249&rft.pages=104160&rft.date=2024&rft_id=info%3Adoi%2F10.1016%2Fj.cviu.2024.104160&rft.aulast=Alfarano&rft.aufirst=Andrea&rft.au=Maiano%2C+Luca&rft.au=Papa%2C+Lorenzo&rft.au=Amerini%2C+Irene&rft_id=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS1077314224002418&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCorke2017" class="citation web cs1"><a href="/wiki/Peter_Corke" title="Peter Corke">Corke, Peter</a> (8 May 2017). <a rel="nofollow" class="external text" href="https://robotacademy.net.au/lesson/the-image-jacobian/">"The Image Jacobian"</a>. <i>QUT Robot Academy</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=QUT+Robot+Academy&rft.atitle=The+Image+Jacobian&rft.date=2017-05-08&rft.aulast=Corke&rft.aufirst=Peter&rft_id=https%3A%2F%2Frobotacademy.net.au%2Flesson%2Fthe-image-jacobian%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBarrowsChahlSrinivasan2003" class="citation journal cs1">Barrows, G. L.; Chahl, J. S.; Srinivasan, M. V. (2003). <a rel="nofollow" class="external text" href="https://www.cambridge.org/core/journals/aeronautical-journal/article/biologically-inspired-visual-sensing-and-flight-control/0B3884D11BB0A54C2A196BF57162C153">"Biologically inspired visual sensing and flight control"</a>. <i>Aeronautical Journal</i>. <b>107</b> (1069): <span class="nowrap">159–</span>268. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1017%2FS0001924000011891">10.1017/S0001924000011891</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:108782688">108782688</a> – via Cambridge University Press.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Aeronautical+Journal&rft.atitle=Biologically+inspired+visual+sensing+and+flight+control&rft.volume=107&rft.issue=1069&rft.pages=%3Cspan+class%3D%22nowrap%22%3E159-%3C%2Fspan%3E268&rft.date=2003&rft_id=info%3Adoi%2F10.1017%2FS0001924000011891&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A108782688%23id-name%3DS2CID&rft.aulast=Barrows&rft.aufirst=G.+L.&rft.au=Chahl%2C+J.+S.&rft.au=Srinivasan%2C+M.+V.&rft_id=https%3A%2F%2Fwww.cambridge.org%2Fcore%2Fjournals%2Faeronautical-journal%2Farticle%2Fbiologically-inspired-visual-sensing-and-flight-control%2F0B3884D11BB0A54C2A196BF57162C153&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrown1987" class="citation book cs1">Brown, Christopher M. (1987). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=c97huisjZYYC&pg=PA133&dq=%22optic%2Bflow%22"><i>Advances in Computer Vision</i></a>. Lawrence Erlbaum Associates. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-89859-648-9" title="Special:BookSources/978-0-89859-648-9"><bdi>978-0-89859-648-9</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Advances+in+Computer+Vision&rft.pub=Lawrence+Erlbaum+Associates&rft.date=1987&rft.isbn=978-0-89859-648-9&rft.aulast=Brown&rft.aufirst=Christopher+M.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3Dc97huisjZYYC%26pg%3DPA133%26dq%3D%2522optic%252Bflow%2522&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMoini2000" class="citation book cs1">Moini, Alireza (2000). <i>Vision Chips</i>. Boston, MA: Springer US. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781461552673" title="Special:BookSources/9781461552673"><bdi>9781461552673</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/851803922">851803922</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Vision+Chips&rft.place=Boston%2C+MA&rft.pub=Springer+US&rft.date=2000&rft_id=info%3Aoclcnum%2F851803922&rft.isbn=9781461552673&rft.aulast=Moini&rft.aufirst=Alireza&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMead1989" class="citation book cs1">Mead, Carver (1989). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/analogvlsineural00mead"><i>Analog VLSI and neural systems</i></a></span>. Reading, Mass.: Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0201059924" title="Special:BookSources/0201059924"><bdi>0201059924</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/17954003">17954003</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Analog+VLSI+and+neural+systems&rft.place=Reading%2C+Mass.&rft.pub=Addison-Wesley&rft.date=1989&rft_id=info%3Aoclcnum%2F17954003&rft.isbn=0201059924&rft.aulast=Mead&rft.aufirst=Carver&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fanalogvlsineural00mead&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFStocker2006" class="citation book cs1">Stocker, Alan A. (2006). <i>Analog VLSI circuits for the perception of visual motion</i>. Chichester, England: John Wiley & Sons. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0470034882" title="Special:BookSources/0470034882"><bdi>0470034882</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/71521689">71521689</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Analog+VLSI+circuits+for+the+perception+of+visual+motion&rft.place=Chichester%2C+England&rft.pub=John+Wiley+%26+Sons&rft.date=2006&rft_id=info%3Aoclcnum%2F71521689&rft.isbn=0470034882&rft.aulast=Stocker&rft.aufirst=Alan+A.&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFloreanoZuffereySrinivasanEllington2009" class="citation book cs1">Floreano, Dario; Zufferey, Jean-Christophe; Srinivasan, Mandyam V.; Ellington, Charlie, eds. (2009). <i>Flying insects and robots</i>. Heidelberg: Springer. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9783540893936" title="Special:BookSources/9783540893936"><bdi>9783540893936</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/495477442">495477442</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Flying+insects+and+robots&rft.place=Heidelberg&rft.pub=Springer&rft.date=2009&rft_id=info%3Aoclcnum%2F495477442&rft.isbn=9783540893936&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOptical+flow" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Optical_flow&action=edit&section=10" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1237033735">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}</style><div class="side-box side-box-right plainlinks sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Commons-logo.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" decoding="async" width="30" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a></span></div> <div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Optic_flow" class="extiw" title="commons:Category:Optic flow">Optic flow</a></span>.</div></div> </div> <ul><li><a rel="nofollow" class="external text" href="http://users.fmrib.ox.ac.uk/~steve/review/review/node1.html#SECTION00010000000000000000">Finding Optic Flow</a></li> <li><a rel="nofollow" class="external text" href="http://www.fxguide.com/featured/art_of_optical_flow/">Art of Optical Flow</a> article on fxguide.com (using optical flow in visual effects)</li> <li><a rel="nofollow" class="external text" href="http://of-eval.sourceforge.net/">Optical flow evaluation and ground truth sequences.</a></li> <li><a rel="nofollow" class="external text" href="http://vision.middlebury.edu/flow/">Middlebury Optical flow evaluation and ground truth sequences.</a></li> <li><a rel="nofollow" class="external text" href="http://www.mrf-registration.net/">mrf-registration.net</a> - Optical flow estimation through <a href="/wiki/Markov_Random_Field" class="mw-redirect" title="Markov Random Field">MRF</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20091014150930/http://www.onera.fr/dtim-en/gpu-for-image/folkigpu.php">The French Aerospace Lab:</a> GPU implementation of a Lucas-Kanade based optical flow</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20111102071946/http://www.cuvilib.com/features/motion-estimation/">CUDA Implementation</a> by CUVI (CUDA Vision & Imaging Library)</li> <li><a rel="nofollow" class="external text" href="http://www.ipol.im/pub/art/2013/20/">Horn and Schunck Optical Flow:</a> Online demo and source code of the Horn and Schunck method</li> <li><a rel="nofollow" class="external text" href="http://www.ipol.im/pub/art/2013/26/">TV-L1 Optical Flow:</a> Online demo and source code of the Zach et al. method</li> <li><a rel="nofollow" class="external text" href="http://www.ipol.im/pub/art/2013/21/">Robust Optical Flow:</a> Online demo and source code of the Brox et al. method</li></ul> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐7777d9bc4f‐kkjcm Cached time: 20250204083713 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.452 seconds Real time usage: 0.695 seconds Preprocessor visited node count: 2124/1000000 Post‐expand include size: 54786/2097152 bytes Template argument size: 1946/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 2/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 92563/5000000 bytes Lua time usage: 0.240/10.000 seconds Lua memory usage: 5715627/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 525.860 1 -total 63.39% 333.326 1 Template:Reflist 22.13% 116.392 9 Template:Cite_book 17.76% 93.367 1 Template:Short_description 11.42% 60.040 2 Template:Pagetype 10.79% 56.751 1 Template:Commons_category 10.35% 54.421 1 Template:Sister_project 9.98% 52.463 1 Template:Side_box 8.87% 46.641 8 Template:Cite_journal 6.24% 32.799 5 Template:Cite_conference --> <!-- Saved in parser cache with key enwiki:pcache:869825:|#|:idhash:canonical and timestamp 20250204083713 and revision id 1267943856. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Optical_flow&oldid=1267943856">https://en.wikipedia.org/w/index.php?title=Optical_flow&oldid=1267943856</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Category</a>: <ul><li><a href="/wiki/Category:Motion_in_computer_vision" title="Category:Motion in computer vision">Motion in computer vision</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Pages_with_reference_errors" title="Category:Pages with reference errors">Pages with reference errors</a></li><li><a href="/wiki/Category:Pages_with_broken_reference_names" title="Category:Pages with broken reference names">Pages with broken reference names</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Commons_category_link_from_Wikidata" title="Category:Commons category link from Wikidata">Commons category link from Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 7 January 2025, at 12:11<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Optical_flow&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" lang="en" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Optical flow</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>13 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-76499f767d-xznpx","wgBackendResponseTime":141,"wgPageParseReport":{"limitreport":{"cputime":"0.452","walltime":"0.695","ppvisitednodes":{"value":2124,"limit":1000000},"postexpandincludesize":{"value":54786,"limit":2097152},"templateargumentsize":{"value":1946,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":92563,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 525.860 1 -total"," 63.39% 333.326 1 Template:Reflist"," 22.13% 116.392 9 Template:Cite_book"," 17.76% 93.367 1 Template:Short_description"," 11.42% 60.040 2 Template:Pagetype"," 10.79% 56.751 1 Template:Commons_category"," 10.35% 54.421 1 Template:Sister_project"," 9.98% 52.463 1 Template:Side_box"," 8.87% 46.641 8 Template:Cite_journal"," 6.24% 32.799 5 Template:Cite_conference"]},"scribunto":{"limitreport-timeusage":{"value":"0.240","limit":"10.000"},"limitreport-memusage":{"value":5715627,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-7777d9bc4f-kkjcm","timestamp":"20250204083713","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Optical flow","url":"https:\/\/en.wikipedia.org\/wiki\/Optical_flow","sameAs":"http:\/\/www.wikidata.org\/entity\/Q736111","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q736111","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-07-31T20:05:35Z","dateModified":"2025-01-07T12:11:45Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/5\/55\/Opticfloweg.png","headline":"pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer and a scene"}</script> </body> </html>