0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

稀疏光流跟蹤(KLT)算法詳解

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 作者:gloomyfish ? 2022-09-02 10:07 ? 次閱讀

稀疏光流跟蹤(KLT)詳解

視頻移動對象跟蹤中,稀疏光流跟蹤是一種經(jīng)典的對象跟蹤算法,可以繪制運(yùn)動對象的跟蹤軌跡與運(yùn)行方向,是一種簡單、實時高效的跟蹤算法,這個算法最早是有Bruce D. Lucas and Takeo Kanade兩位作者提出來的,所以又被稱為KLT。KLT算法工作有三個假設(shè)前提條件:

亮度恒定

短距離移動

空間一致性

亮度恒定

對象中任意像素點p(x,y)亮度值,在t-1時候的值,在t時刻移動(u, v)之后亮度值保持不變

2aa9dd0a-2a03-11ed-ba43-dac502259ad0.jpg


空間一致性

假設(shè)對像素點p(x, y)來說,周圍的像素點都保持相同的移動距離(u, v) 假設(shè)窗口大小為5x5,則對于25個窗口內(nèi)的像素點來說,就會如下等式成立:

2ac6159c-2a03-11ed-ba43-dac502259ad0.jpg


得到下面的過約束等式,根據(jù)最小二乘可以求解(u, v):

2b0ca192-2a03-11ed-ba43-dac502259ad0.jpg


這樣我們就得到了KLT光流等式與該窗口的的Hessian矩陣

2b21ef5c-2a03-11ed-ba43-dac502259ad0.png

2b38436a-2a03-11ed-ba43-dac502259ad0.jpg

空間尺度不變性

通過建立每一幀的圖像金字塔,實現(xiàn)尺度空間窗口目標(biāo)對象搜索

2b5a444c-2a03-11ed-ba43-dac502259ad0.jpg


OpenCV中KLT演示代碼實現(xiàn)

OpenCV中KLT算法API及其參數(shù)解釋如下:

voidcv::calcOpticalFlowPyrLK(
InputArrayprevImg,//前一幀圖像
InputArraynextImg,//后一幀圖像
InputArrayprevPts,//前一幀的稀疏光流點
InputOutputArraynextPts,//后一幀光流點
OutputArraystatus,//輸出狀態(tài),1表示正常該點保留,否則丟棄
OutputArrayerr,//表示錯誤
SizewinSize=Size(21,21),//光流法對象窗口大小
intmaxLevel=3,//金字塔層數(shù),0表示只檢測當(dāng)前圖像,不構(gòu)建金字塔圖像
TermCriteriacriteria=TermCriteria(TermCriteria::EPS,30,0.01),//窗口搜索時候停止條件
intflags=0,//操作標(biāo)志
doubleminEigThreshold=1e-4//最小特征值響應(yīng),低于最小值不做處理
)

特征點檢測與繪制的代碼實現(xiàn)如下:

//detectfirstframeandfindcornersinit
Matold_frame,old_gray;
capture.read(old_frame);
cvtColor(old_frame,old_gray,COLOR_BGR2GRAY);
goodFeaturesToTrack(old_gray,featurePoints,maxCorners,qualityLevel,minDistance,Mat(),blockSize,useHarrisDetector,k);

特征點繪制

voiddraw_goodFeatures(Mat&image,vectorgoodFeatures){
for(size_tt=0;t

KLT跟蹤代碼如下

TermCriteriacriteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS,30,0.01);
doublederivlambda=0.5;
intflags=0;

boolret=capture.read(frame);
if(!ret)break;
imshow("frame",frame);
roi.x=0;
frame.copyTo(result(roi));
cvtColor(frame,gray,COLOR_BGR2GRAY);

//calculateopticalflow
calcOpticalFlowPyrLK(old_gray,gray,pts[0],pts[1],status,err,Size(31,31),3,criteria,derivlambda,flags);

特征點狀態(tài)檢查與匹配的代碼如下

size_ti,k;
for(i=k=0;i2){
pts[0][k]=pts[0][i];
initPoints[k]=initPoints[i];
pts[1][k++]=pts[1][i];
circle(frame,pts[1][i],3,Scalar(0,255,0),-1,8);
}
}
//resize有用特征點
pts[1].resize(k);
pts[0].resize(k);
initPoints.resize(k);

繪制跟蹤軌跡的代碼如下

//繪制跟蹤軌跡
draw_lines(frame,initPoints,pts[1]);

該方法實現(xiàn)如下:

voiddraw_lines(Mat&image,vectorpt1,vectorpt2){
if(color_lut.size()

運(yùn)行效果:

左側(cè)是視頻的原始每一幀、右側(cè)視頻是每一幀中KLT算法實時軌跡繪制

車輛運(yùn)行軌跡跟蹤

2b7754b0-2a03-11ed-ba43-dac502259ad0.jpg



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 跟蹤算法
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    12998
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    623

    瀏覽量

    41177
  • KLT
    KLT
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7447

原文標(biāo)題:干貨 | OpenCV中KLT光流跟蹤原理詳解與代碼演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    抖動跟蹤不丟失 慧視圖像跟蹤板和自研算法強(qiáng)勢升級

    成都慧視開發(fā)的Viztra-HE030圖像處理板是采用了瑞芯微旗艦級高性能芯片RK3588,能夠憑借八核處理核心輸出至高6.0TOPS的算力,在算法的強(qiáng)力輔助下,能夠?qū)崿F(xiàn)對目標(biāo)的穩(wěn)定鎖定跟蹤。隨著
    的頭像 發(fā)表于 09-04 08:05 ?246次閱讀
    抖動<b class='flag-5'>跟蹤</b>不丟失 慧視圖像<b class='flag-5'>跟蹤</b>板和自研<b class='flag-5'>算法</b>強(qiáng)勢升級

    過零雙向可控硅驅(qū)動KLT304X&KLT306X&KLT308X 產(chǎn)品規(guī)格書

    KLT304X&KLT306X&KLT308XDIP4過零雙向可控硅驅(qū)動耦1.產(chǎn)品特點Productfeatures?無鹵素(溴
    發(fā)表于 08-20 15:47 ?0次下載

    隨機(jī)相位可控硅驅(qū)動KLT302X&KLT305X 產(chǎn)品規(guī)格書

    KLT302X&KLT305XDIP4隨機(jī)相位雙向可控硅驅(qū)動耦1.產(chǎn)品特點Productfeatures?無鹵素(溴
    發(fā)表于 08-20 15:45 ?0次下載

    高效、智能、穩(wěn)定,漫途LoRa監(jiān)測終端為跟蹤支架系統(tǒng)保駕護(hù)航

    伏發(fā)電領(lǐng)域,跟蹤支架作為提高伏系統(tǒng)發(fā)電效率的關(guān)鍵技術(shù)之一,已經(jīng)得到了廣泛的應(yīng)用。然而,如何有效地監(jiān)測
    的頭像 發(fā)表于 06-19 15:53 ?271次閱讀
    高效、智能、穩(wěn)定,漫途LoRa監(jiān)測終端為<b class='flag-5'>光</b>伏<b class='flag-5'>跟蹤</b>支架系統(tǒng)保駕護(hù)航

    高效、智能、穩(wěn)定,LoRa監(jiān)測終端為跟蹤支架系統(tǒng)保駕護(hù)航

    伏發(fā)電領(lǐng)域,跟蹤支架作為提高伏系統(tǒng)發(fā)電效率的關(guān)鍵技術(shù)之一,已經(jīng)得到了廣泛的應(yīng)用。然而,如何有效地監(jiān)測
    的頭像 發(fā)表于 06-19 15:02 ?303次閱讀
    高效、智能、穩(wěn)定,LoRa監(jiān)測終端為<b class='flag-5'>光</b>伏<b class='flag-5'>跟蹤</b>支架系統(tǒng)保駕護(hù)航

    多目標(biāo)跟蹤算法總結(jié)歸納

    多目標(biāo)跟蹤是計算機(jī)視覺領(lǐng)域中的一個重要任務(wù),它旨在從視頻或圖像序列中準(zhǔn)確地檢測和跟蹤多個移動目標(biāo)。不過在落地部署時,有一些關(guān)鍵點需要解決。
    的頭像 發(fā)表于 04-28 09:42 ?1420次閱讀
    多目標(biāo)<b class='flag-5'>跟蹤</b><b class='flag-5'>算法</b>總結(jié)歸納

    優(yōu)象無人機(jī)模塊使用技巧

    優(yōu)象科技自主研發(fā)光模塊多年,主要用于無人機(jī)、掃地機(jī)器人、激光測距領(lǐng)域,淘寶店鋪可搜索“湖南優(yōu)象”交流合作。
    的頭像 發(fā)表于 04-25 16:38 ?762次閱讀
    優(yōu)象無人機(jī)<b class='flag-5'>光</b><b class='flag-5'>流</b>模塊使用技巧

    同行!天合跟蹤開拓者1P賦能巴西520MW圣盧西亞項目

    采用開拓者1P跟蹤支架,并搭載SuperTrack智合智能跟蹤算法。 天合跟蹤是天合光能旗下智能跟蹤解決方案提供商,具有20年
    的頭像 發(fā)表于 04-07 18:15 ?1049次閱讀

    SMT關(guān)鍵工序再焊工藝詳解

    SMT關(guān)鍵工序再焊工藝詳解
    的頭像 發(fā)表于 01-09 10:12 ?541次閱讀
    SMT關(guān)鍵工序再<b class='flag-5'>流</b>焊工藝<b class='flag-5'>詳解</b>

    詳解從均值濾波到非局部均值濾波算法的原理及實現(xiàn)方式

    將再啰嗦一次,詳解從均值濾波到非局部均值濾波算法的原理及實現(xiàn)方式。 細(xì)數(shù)主要的2D降噪算法,如下圖所示,從最基本的均值濾波到相對最好的BM3D降噪,本文將盡量用最同屬的語言,詳解這些
    的頭像 發(fā)表于 12-19 16:30 ?995次閱讀
    <b class='flag-5'>詳解</b>從均值濾波到非局部均值濾波<b class='flag-5'>算法</b>的原理及實現(xiàn)方式

    路激光焊接機(jī)技術(shù)詳解優(yōu)勢及相關(guān)的種類有哪些

    編輯:鐳拓激光雙路激光焊接機(jī)目前可以適合大多數(shù)激光焊接,因焊接深度深,焊接強(qiáng)度好的特點,操作簡單,大大節(jié)約用戶人力成本。用戶需求實現(xiàn)全自動焊接或半自動焊接,以下是雙路激光焊接機(jī)技術(shù)詳解優(yōu)勢及相關(guān)
    的頭像 發(fā)表于 12-18 10:45 ?459次閱讀
    雙<b class='flag-5'>光</b>路激光焊接機(jī)技術(shù)<b class='flag-5'>詳解</b>優(yōu)勢及相關(guān)的種類有哪些

    跟蹤支架產(chǎn)品現(xiàn)狀、特點及發(fā)展趨勢詳解

    伏支架位于伏產(chǎn)業(yè)鏈中游,主要包括固定支架和跟蹤支架兩大類。固定支架進(jìn)入門檻低、毛利率低且產(chǎn)品同質(zhì)化嚴(yán)重。
    的頭像 發(fā)表于 12-15 13:46 ?1833次閱讀
    <b class='flag-5'>光</b>伏<b class='flag-5'>跟蹤</b>支架產(chǎn)品現(xiàn)狀、特點及發(fā)展趨勢<b class='flag-5'>詳解</b>

    基于自行車模型的路徑跟蹤控制算法

    2.1 基于自行車模型的路徑跟蹤控制算法 2.1.1 純跟蹤控制(Pure Pursuit)算法 純追蹤控制是最早提出的路徑跟蹤策略之一。由
    的頭像 發(fā)表于 11-10 17:36 ?717次閱讀
    基于自行車模型的路徑<b class='flag-5'>跟蹤</b>控制<b class='flag-5'>算法</b>

    PID算法詳解及實例分析

    PID算法詳解及實例分析#include using namespace std;struct _pid{? ?float SetSpeed; //定義設(shè)定值? ?float ActualSpeed
    發(fā)表于 11-09 16:33 ?1次下載

    逆變器MPPT是什么意思 單個伏組件的MPPT的影響因素

    逆變器的 MPPT 輸入端通常具有多個獨立的輸入通道,每個通道可以連接一個串聯(lián)的伏電池組。每個通道上的 MPPT 跟蹤算法獨立地監(jiān)測和調(diào)整每個伏電池組的功率輸出,以實現(xiàn)最大功率點
    的頭像 發(fā)表于 11-03 16:58 ?5620次閱讀
    逆變器MPPT是什么意思 單個<b class='flag-5'>光</b>伏組件的MPPT的影響因素