精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

目標跟蹤器 | Kalman + FAST 預測物體運動 | 附代碼

開發
在本文中,我將展示如何使用卡爾曼濾波器和FAST算法來跟蹤物體并預測物體的運動。

對于目標跟蹤,有諸如FAST、SURF、SIFT和ORB等特征提取算法。在從目標物體提取特征后,可以嘗試對每一幀的這些特征進行跟蹤,通過這種方式,可以創建一個簡單的目標跟蹤器。但是,如何預測物體的運動呢?可能想知道1秒后目標物體將位于何處。僅使用特征提取算法是無法做到的,但不用擔心,卡爾曼濾波器非常適合運動預測任務。在本文中,我將展示如何使用卡爾曼濾波器和FAST算法來跟蹤物體并預測物體的運動。

紅色圓圈 → 運動預測

卡爾曼濾波器和FAST算法

卡爾曼濾波器使用過去的數據來預測物體的運動。使用卡爾曼濾波器時,必須跟蹤一個物體,因為卡爾曼濾波器需要位置數據,基于這些位置數據,它預測物體的位置。

使用FAST算法,我將跟蹤物體,提取中心坐標,并使用這些數據與卡爾曼濾波器一起預測物體的位置。

NOTE: 關于FAST算法的文章,后續我們有機會將進行詳細解讀。

代碼/跟蹤和預測物體的運動 → FAST + 卡爾曼濾波器

主要有5個步驟,我將逐一解釋它們。

# Import Necessary Libraries

import cv2
import numpy as np 
import matplotlib.pyplot as plt
import time

1.使用FAST算法提取跟蹤特征:用鼠標左鍵在目標物體周圍畫一個矩形框,將從這個矩形框中提取特征。

# Path to video  
video_path = r"videos/helicopter3.mp4"
video = cv2.VideoCapture(video_path)

# read only the first frame for drawing a rectangle for the desired object
ret,frame = video.read()

# I am giving  big random numbers for x_min and y_min because if you initialize them as zeros whatever coordinate you go minimum will be zero 
x_min,y_min,x_max,y_max=36000,36000,0,0


def coordinat_chooser(event,x,y,flags,param):
    global go , x_min , y_min, x_max , y_max

    # when you click the right button, it will provide coordinates for variables
    if event==cv2.EVENT_LBUTTONDOWN:
        
        # if current coordinate of x lower than the x_min it will be new x_min , same rules apply for y_min 
        x_min=min(x,x_min) 
        y_min=min(y,y_min)

         # if current coordinate of x higher than the x_max it will be new x_max , same rules apply for y_max
        x_max=max(x,x_max)
        y_max=max(y,y_max)

        # draw rectangle
        cv2.rectangle(frame,(x_min,y_min),(x_max,y_max),(0,255,0),1)


    """
        if you didn't like your rectangle (maybe if you made some misscliks),  reset the coordinates with the middle button of your mouse
        if you press the middle button of your mouse coordinates will reset and you can give a new 2-point pair for your rectangle
    """
    if event==cv2.EVENT_MBUTTONDOWN:
        print("reset coordinate  data")
        x_min,y_min,x_max,y_max=36000,36000,0,0

cv2.namedWindow('coordinate_screen')
# Set mouse handler for the specified window, in this case, "coordinate_screen" window
cv2.setMouseCallback('coordinate_screen',coordinat_chooser)


while True:
    cv2.imshow("coordinate_screen",frame) # show only first frame 
    
    k = cv2.waitKey(5) & 0xFF # after drawing rectangle press ESC   
    if k == 27:
        cv2.destroyAllWindows()
        break

繪制矩形框以定位目標

2. 顯示提取的特征:使用FAST算法從矩形框中提取特征。

# take region of interest ( take inside of rectangle )
roi_image=frame[y_min+2:y_max-2,x_min+2:x_max-2]
roi_rgb=cv2.cvtColor(roi_image,cv2.COLOR_BGR2RGB)

# convert roi to grayscale, SIFT Algorithm works with grayscale images
roi_gray=cv2.cvtColor(roi_image,cv2.COLOR_BGR2GRAY) 

# Initialize the FAST detector and BRIEF descriptor extractor
fast = cv2.FastFeatureDetector_create(threshold=1)
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()


# detect keypoints
keypoints_1 = fast.detect(roi_gray, None)
# descriptors
keypoints_1, descriptors_1 = brief.compute(roi_gray, keypoints_1)

# draw keypoints for visualizing
keypoints_image = cv2.drawKeypoints(roi_rgb, keypoints_1, outImage=None, color=(23, 255, 10))
# display keypoints
plt.imshow(keypoints_image,cmap="gray")

提取的特征

3.創建一個提取目標物體中心位置的函數

# matcher object
bf = cv2.BFMatcher()

def detect_target_fast(frame):
    # convert frame to gray scale 
    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Detect keypoints using FAST
    keypoints_2 = fast.detect(frame_gray, None)

    # Compute descriptors using BRIEF
    keypoints_2, descriptors_2 = brief.compute(frame_gray, keypoints_2)

    """
    Compare the keypoints/descriptors extracted from the 
    first frame (from target object) with those extracted from the current frame.
    """
    if descriptors_2 is not None:
        matches = bf.match(descriptors_1, descriptors_2)
        
        if matches:
            # Initialize sums for x and y coordinates
            sum_x = 0
            sum_y = 0
            match_count = 0
            
            for match in matches:
                # .trainIdx gives keypoint index from current frame 
                train_idx = match.trainIdx
                
                # current frame keypoints coordinates
                pt2 = keypoints_2[train_idx].pt
                
                # Sum the x and y coordinates
                sum_x += pt2[0]
                sum_y += pt2[1]
                match_count += 1
            
            # Calculate average of the x and y coordinates
            avg_x = sum_x / match_count
            avg_y = sum_y / match_count
            
    return int(avg_x),int(avg_y)

4.初始化卡爾曼濾波器

# Initialize Kalman filter parameters
kalman = cv2.KalmanFilter(4, 2)   
 
kalman.measurementMatrix = np.array([[1, 0, 0, 0], [0, 1, 0, 0]], np.float32)
kalman.transitionMatrix = np.array([[1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]], np.float32)
kalman.processNoiseCov = np.eye(4, dtype=np.float32) * 0.03  # Process noise
kalman.measurementNoiseCov = np.eye(2, dtype=np.float32) * 0.5  # Measurement noise

5.讀取視頻并使用卡爾曼濾波器和FAST算法

# Startcapturing the video from file
cap = cv2.VideoCapture(video_path)

while True:
    ret, frame = cap.read()
    if not ret:
        break
    
    # Predict the new position of the ball
    predicted = kalman.predict()
    predicted_x, predicted_y = int(predicted[0]), int(predicted[1])
    predicted_dx, predicted_dy = predicted[2], predicted[3]  # Predicted velocity

    print(predicted_x, predicted_y )
    print(f"Predicted velocity: (dx: {predicted_dx}, dy: {predicted_dy})")

    
    # Detect the ball in the current frame
    ball_position = detect_target_fast(frame)
    
    if ball_position:
        measured_x, measured_y = ball_position
        # Correct the Kalman Filter with the actual measurement
        kalman.correct(np.array([[np.float32(measured_x)], [np.float32(measured_y)]]))
        # Draw the detected ball
        cv2.circle(frame, (measured_x, measured_y), 6, (0, 255, 0), 2) # green --> correct position
    
    # Draw the predicted position (Kalman Filter result)
    cv2.circle(frame, (predicted_x, predicted_y), 8, (0, 0, 255), 2) # red --> predicted position

    # Show the frame
    cv2.imshow("Kalman Ball Tracking", frame)
    
    # Break on 'q' key press
    if cv2.waitKey(30) & 0xFF == ord('q'):  # 30 ms delay for smooth playback
        break

cap.release()
cv2.destroyAllWindows()

終端輸出

跟蹤和預測飛機

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2024-12-19 08:00:00

FAST算法OpenCV目標跟蹤

2024-11-20 16:51:00

目標檢測模型

2019-06-06 15:00:10

2022-06-10 10:24:02

JavaScriptCOVID-19前端

2011-01-18 13:50:20

路由跟蹤tcptracerou

2020-08-29 18:38:11

物聯網 LPWAN資產跟蹤器

2022-05-27 10:06:17

DuckDuckGo用戶隱私微軟

2015-01-09 09:41:16

HTTPSHTTPS安全COOKIE

2021-03-02 09:42:25

跟蹤器密碼管理器密碼

2018-03-13 11:38:14

2023-03-02 08:32:27

2022-01-05 09:00:00

加密貨幣數據技術

2011-09-15 15:38:48

Android應用Endomondo運動

2019-05-14 09:53:31

代碼開發工具

2025-02-17 07:00:00

ORB對象跟蹤器計算機視覺

2025-01-23 08:47:50

2023-06-06 06:26:26

2010-03-18 11:26:46

無線傳感器網絡多目標跟

2024-10-31 11:03:06

C#橢圓運動緩沖

2024-09-24 17:12:47

點贊
收藏

51CTO技術棧公眾號

国产经典一区二区| 伊人久久精品视频| 国产一区二区免费视频| 欧美大片国产精品| 国产深夜男女无套内射| shkd中文字幕久久在线观看| 精品一区二区国语对白| 久久久久久久久亚洲| 香蕉视频黄色在线观看| 成人永久在线| 色欧美日韩亚洲| 91九色国产ts另类人妖| 日韩porn| 国产iv一区二区三区| 国产精品av在线| 久久免费小视频| 成人激情免费视频| 亚洲第一精品夜夜躁人人爽| www.精品在线| 三妻四妾的电影电视剧在线观看| 亚洲天堂a在线| 日韩久久不卡| 熟妇高潮一区二区高潮| 国产综合色视频| 国产成人自拍视频在线观看| 国产一级生活片| 性xxxx欧美老肥妇牲乱| 亚洲少妇激情视频| 日本黄色动态图| 日韩免费成人| 欧美精品一二三| 国产又大又黄又粗又爽| 男人久久天堂| 亚洲在线视频一区| 超碰在线免费观看97| 在线播放毛片| 国产亚洲欧洲997久久综合| 国产亚洲自拍偷拍| 99久久久无码国产精品免费| 日本中文字幕一区| 国产91精品久久久久久| 日本在线视频中文字幕| 欧美精品97| 久久天堂电影网| 成人午夜免费影院| 大色综合视频网站在线播放| 亚洲天堂第二页| 成人网站免费观看| 蜜桃一区二区三区| 亚洲女人被黑人巨大进入| 日本少妇xxxx| 日韩欧美ww| 亚洲国产欧美一区二区三区久久| 911亚洲精选| 岛国精品一区| 精品国产乱码久久久久久1区2区| 少妇愉情理伦片bd| 日韩中文字幕无砖| 日韩精品在线一区| 人妖粗暴刺激videos呻吟| 99re8这里有精品热视频免费 | 欧美激情视频在线| 欧美精品久久久久性色| 欧美喷水视频| 午夜精品久久久久久久白皮肤| 日本少妇久久久| 久久国产高清| 国产欧美va欧美va香蕉在线| 国产乱人乱偷精品视频| 国产suv一区二区三区88区| 国产传媒一区二区| 亚洲欧美日韩精品永久在线| 国产人妖乱国产精品人妖| 亚洲精品永久www嫩草| 日本最黄一级片免费在线| 亚洲美女屁股眼交3| 99在线精品免费视频| 在线天堂中文资源最新版| 日本精品免费观看高清观看| 91欧美视频在线| 国产精品一区免费在线| 亚洲精品国产suv| www.黄色在线| 午夜国产一区| 日本不卡高字幕在线2019| 伊人网综合在线| 国产成人av资源| 欧美成人第一区| 黄视频在线观看网站| 午夜免费久久看| 亚洲黄色a v| 91亚洲无吗| 国产一区二区三区在线播放免费观看| 91高清免费看| 亚洲影院一区| 亚洲字幕在线观看| 免费在线超碰| 亚洲精品水蜜桃| 欧美xxxxx在线视频| 国产精品久一| 亚洲欧美日韩在线一区| 久久久精品视频免费观看| 国产一区二区精品| 亚洲曰本av电影| 国产98在线| 亚洲.国产.中文慕字在线| xx欧美撒尿嘘撒尿xx| 国产精品欧美大片| 视频在线观看99| 日本中文字幕久久| 成人性生交大合| 一区二区视频在线免费| 亚洲第一av| 欧美大肚乱孕交hd孕妇| 中文天堂资源在线| 亚洲深夜av| 国产精品theporn88| 麻豆视频在线播放| 91久久香蕉国产日韩欧美9色| 黑人无套内谢中国美女| 青青草原综合久久大伊人精品 | 欧美 亚洲 另类 激情 另类| 成人免费高清在线| 亚洲黄色网址在线观看| 国产成人午夜性a一级毛片| 亚洲福利视频专区| 欧美日韩在线观看免费| 麻豆精品国产91久久久久久| 乱色588欧美| 牛牛精品一区二区| 精品国产一区二区三区久久久蜜月 | 8x海外华人永久免费日韩内陆视频| 96亚洲精品久久久蜜桃| 国产欧美精品一区二区色综合| 欧美国产激情视频| 久久亚洲道色| 欧美第一黄色网| 精品区在线观看| 亚洲欧美另类图片小说| 国产3p在线播放| 欧美顶级大胆免费视频| 国产精品久久久久久久久久99 | 久久亚洲一区二区三区明星换脸 | 日韩国产成人精品| 欧美激情视频一区二区三区| 亚洲欧美小说色综合小说一区| 亚洲福利精品在线| 日韩精品一卡二卡| 99视频精品全部免费在线| 国产欧美日韩网站| 欧美精品国产白浆久久久久| 国产综合在线视频| 天天爽夜夜爽夜夜爽| 精品久久久久久久久久久久久| 精品夜夜澡人妻无码av| 久久久久国产一区二区| 日产精品高清视频免费| 欧美成人一二区| 欧美不卡视频一区发布| 亚洲国产精品国自产拍久久| 图片区小说区区亚洲影院| 免费在线观看成年人视频| 天堂va蜜桃一区二区三区| 日韩一本精品| 99视频这里有精品| 欧美黑人性生活视频| 空姐吹箫视频大全| 日韩人在线观看| 日本不卡一区视频| 国产麻豆精品视频| 国产女大学生av| 欧美精品一二| 99国产精品久久久久老师| 绿色成人影院| 最近2019中文字幕mv免费看| 99国产成人精品| 欧美日韩国产区| 蜜桃av免费观看| 成人一区二区三区| 黑鬼大战白妞高潮喷白浆| 成人在线国产| 成人三级在线| 日韩在线免费| 欧美高清自拍一区| 国产一级片在线播放| 91精品久久久久久久91蜜桃 | 欧美综合色免费| 18岁成人毛片| 久久午夜老司机| 欧美精品色视频| 国产亚洲毛片在线| 亚洲综合欧美日韩| 精品综合久久88少妇激情| 国产精品久久久亚洲| 婷婷色在线播放| 一区二区三区无码高清视频| 国精品人妻无码一区二区三区喝尿| 欧美性色视频在线| 欧美日韩亚洲国产另类| 91蜜桃传媒精品久久久一区二区| 国产一区二区在线观看免费视频| 亚洲日韩视频| 国产高清免费在线| 久草精品在线| 国产精品有限公司| 成人免费在线观看视频| 91精品国产99| 污影院在线观看| 色妞一区二区三区| 免费在线观看污视频| 精品日韩欧美在线| 91禁在线观看| 欧洲av在线精品| 女人十八岁毛片| 亚洲综合成人在线| 永久免费看片直接| 久久综合色播五月| 美女黄色一级视频| 国内精品伊人久久久久av影院 | 欧美激情一区二区三区免费观看| 亚洲国产乱码最新视频| 日韩av手机在线免费观看| 国产午夜精品久久| 青青草成人免费视频| 成人免费毛片嘿嘿连载视频| 99热这里只有精品2| 久久www免费人成看片高清| 久久婷婷国产精品| 亚洲精一区二区三区| 福利视频免费在线观看| 欧美a级片一区| 日韩精品福利片午夜免费观看| 日韩综合网站| 亚洲精品成人三区| 国产一区国产二区国产三区| 日本精品一区二区三区不卡无字幕| 欧美巨大xxxx| 久久免费99精品久久久久久| 欧美绝顶高潮抽搐喷水合集| 精品一区2区三区| 日韩精品导航| 欧美日韩精品中文字幕一区二区| 精品自拍偷拍| 久久天天狠狠| 日韩三级视频| 欧美激情论坛| 不卡视频在线| av不卡在线免费观看| 亚洲精品成人| 日本道在线视频| 欧美三级午夜理伦三级中文幕| www成人免费| 在线欧美日韩| 国产亚洲天堂网| 日日摸夜夜添夜夜添亚洲女人| 三级a在线观看| 韩国欧美一区二区| 成人免费播放视频| 成人黄色大片在线观看| 9.1成人看片| 国产欧美综合色| 日本黄色录像视频| 一二三区精品福利视频| 日韩视频免费观看高清| 一本色道久久综合亚洲精品按摩| 99re热视频| 日韩一级免费观看| 天天摸天天干天天操| 亚洲欧美日韩久久久久久| aaa在线观看| 久热爱精品视频线路一| 国产色播av在线| 国产精品久久久久av免费| www.欧美| 久久精品国产第一区二区三区最新章节| 亚洲专区视频| 中文字幕免费高| 亚洲国产电影| 男人天堂成人在线| 精品一区二区三区免费毛片爱| 91亚洲一线产区二线产区| 久久免费国产精品| 亚洲区一区二区三| 亚洲成av人在线观看| 黄色大全在线观看| 日韩欧美精品在线| 国产视频福利在线| 欧美日韩福利电影| 性欧美gay| 国产chinese精品一区二区| 国产成人ay| 国产青草视频在线观看| 日韩电影在线免费观看| 久久久久久久久久久影视| 久久视频一区二区| 波多野结衣亚洲色图| 在线观看亚洲a| 免费看日韩av| x99av成人免费| 美女福利一区二区| 91嫩草视频在线观看| 欧美亚洲在线日韩| 日韩在线一级片| 国产麻豆精品久久一二三| 538精品视频| 精品国产成人在线| 99久久精品免费看国产交换| 国产一区二区成人| 欧美日韩在线观看首页| 亚洲精品欧美极品| 日韩综合精品| 日韩在线第三页| 91视频一区二区| 国产成人啪精品午夜在线观看| 欧美日韩一区三区四区| 五月激情婷婷综合| 九九久久久久久久久激情| 日韩成人精品一区二区三区| 日本成人黄色免费看| 亚洲人成高清| 极品人妻一区二区| 成人免费在线视频观看| 中文在线字幕av| 亚洲一区二区久久| 中文字幕不卡三区视频| 久久av一区二区三区亚洲| 国产精品videosex极品| 午夜免费福利网站| 亚洲视频中文字幕| 国产精品一区二区av白丝下载| 色先锋资源久久综合5566| 欧美momandson| 免费看成人午夜电影| 国产精品久久久久久久久久妞妞| av漫画在线观看| 亚洲一区二区欧美日韩| 精品区在线观看| 欧美激情精品久久久| 视频一区国产| 久久久久久久9| 成人高清在线视频| 69精品久久久| 亚洲第一网中文字幕| freexxx性亚洲精品| 精品蜜桃一区二区三区| 日韩视频中文| 97超碰在线免费观看| 色综合激情五月| jizz在线观看中文| 国产精品中文字幕在线| 欧美成人激情| 亚洲国产欧美91| 亚洲va韩国va欧美va| 五月激情六月婷婷| 国产mv久久久| 日韩在线中文| 亚洲av无一区二区三区久久| 亚洲大型综合色站| 日本亚洲欧美| 国产精品欧美日韩一区二区| 99久久99视频只有精品| 91亚洲一线产区二线产区| 亚洲成人你懂的| 国产精品秘入口| 亚洲va久久久噜噜噜久久天堂| 欧美日韩第一区| 国精产品一区一区三区免费视频| 在线欧美小视频| 黄色av电影在线播放| 国产一区二区三区av在线| 日精品一区二区三区| 四虎884aa成人精品| 精品国产三级电影在线观看| 亚洲天堂资源| 在线视频不卡国产| 成人18视频在线播放| 国产偷人爽久久久久久老妇app| 久久精品国产亚洲7777| 国内自拍欧美| 国产精品v日韩精品v在线观看| 一区二区三区在线免费视频| 欧美成人免费| 亚洲v日韩v综合v精品v| 亚洲影院在线| 91麻豆精品成人一区二区| 亚洲精品www久久久| 精品久久在线| 女人天堂av手机在线| 中文字幕日本乱码精品影院| 熟妇高潮一区二区高潮| 国产伦精品免费视频| 亚洲成人原创| 内射一区二区三区| 亚洲精品国产精品国自产在线| 亚洲日日夜夜| 国产男女在线观看| 亚洲男人的天堂av| 国自产拍在线网站网址视频| 成人区精品一区二区| 免费看欧美女人艹b|