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

用 OpenCV 實(shí)現(xiàn) FAST 算法目標(biāo)跟蹤

開發(fā) 人工智能
FAST算法非常適合實(shí)時(shí)計(jì)算機(jī)視覺任務(wù)。在本文中,我將解釋FAST算法的工作原理,它的優(yōu)點(diǎn)和缺點(diǎn),并最終創(chuàng)建一個(gè)使用FAST算法的對(duì)象跟蹤器。

主要工作

提取特征(角點(diǎn))并使用FAST算法跟蹤對(duì)象:OpenCV,Python

OpenCV中有多種特征提取算法可供使用,但其中一種名為FAST算法的,對(duì)于實(shí)時(shí)計(jì)算機(jī)視覺應(yīng)用來說非常有用。大多數(shù)特征提取和角點(diǎn)檢測方法在提取特征方面表現(xiàn)良好,但它們大多數(shù)并不適合實(shí)時(shí)應(yīng)用。

FAST算法非常適合實(shí)時(shí)計(jì)算機(jī)視覺任務(wù)。在本文中,我將解釋FAST算法的工作原理,它的優(yōu)點(diǎn)和缺點(diǎn),并最終創(chuàng)建一個(gè)使用FAST算法的對(duì)象跟蹤器。

FAST算法的工作原理是什么?

FAST算法相對(duì)簡單。

  • FAST算法選擇一個(gè)隨機(jī)像素,并在該像素周圍畫一個(gè)圓(半徑:3像素),其圓周為16像素。
  • 如果在16像素中有至少12個(gè)連續(xù)點(diǎn)的強(qiáng)度比中心像素亮或暗(加上閾值),那么這個(gè)中心像素就被視為興趣點(diǎn)(角點(diǎn))。
  • 為了加快這個(gè)過程,算法首先檢查圓周上的4個(gè)像素。至少有3個(gè)像素必須都比中心像素暗或亮,如果它們不是,該點(diǎn)就不能是興趣點(diǎn),因?yàn)檎缥抑八f,至少有12個(gè)連續(xù)像素必須更暗或更亮。

查看下面的圖片,它準(zhǔn)確地展示了我嘗試解釋的內(nèi)容。

FAST算法的優(yōu)點(diǎn)和缺點(diǎn)

優(yōu)點(diǎn):FAST算法非常快。如果你將它與其他特征提取和角點(diǎn)檢測算法進(jìn)行比較,你會(huì)看到差異。實(shí)際上,我在另一篇博客文章中比較了ORB、FAST和SIFT算法,結(jié)果顯示FAST算法比其他算法快(博客文章鏈接)

缺點(diǎn):FAST算法對(duì)噪聲敏感,因此在噪聲圖像中可能會(huì)檢測到錯(cuò)誤的角點(diǎn)。它不是尺度不變性的,這意味著如果圖像的大小改變,它可能不會(huì)很好地工作。

結(jié)論

選擇FAST算法為你的任務(wù)完全取決于你的目的。如果你需要更高的幀率,并且不太關(guān)心提取點(diǎn)的準(zhǔn)確性,你可以考慮使用FAST算法。

代碼/使用FAST算法跟蹤對(duì)象

有兩個(gè)主要步驟:

  • 首先,用戶通過使用鼠標(biāo)左鍵在目標(biāo)對(duì)象周圍畫矩形來定義目標(biāo)對(duì)象。然后使用FAST算法從這個(gè)目標(biāo)對(duì)象(而不是整幅圖像)中提取特征。
  • 接下來,對(duì)于每一幀,使用FAST算法提取特征。將目標(biāo)圖像的特征與每一幀中的特征進(jìn)行比較。如果有匹配,就在特征位置畫一個(gè)圓圈,通過這樣做來跟蹤對(duì)象。

(1) 導(dǎo)入庫:


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

(2) 使用鼠標(biāo)通過在其周圍畫矩形來選擇目標(biāo)對(duì)象:


# Path to video  
video_path=r"videos/fish-video.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_RBUTTONDOWN:
        
        # 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

(3) 從目標(biāo)對(duì)象中提取特征(不是從整幅圖像中):


# take region of interest ( take inside of rectangle )
roi_image=frame[y_min:y_max,x_min:x_max]

# 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=20)
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_image, keypoints_1, outImage=None, color=(0, 255, 0))
# display keypoints
plt.imshow(keypoints_image,cmap="gray")

(4) 使用FAST算法跟蹤對(duì)象


# matcher object
bf = cv2.BFMatcher()

# Variables for FPS calculation
frame_count = 0
start_time = time.time()
     
while True :
    # reading video 
    ret,frame=video.read()

    if ret:
          # 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)
    
    
            for match in matches:
            
                # queryIdx gives keypoint index from target image
                query_idx = match.queryIdx
                
                # .trainIdx gives keypoint index from current frame 
                train_idx = match.trainIdx
                
                # take coordinates that matches
                pt1 = keypoints_1[query_idx].pt
                
                # current frame keypoints coordinates
                pt2 = keypoints_2[train_idx].pt
                
                # draw circle to pt2 coordinates , because pt2 gives current frame coordinates
                cv2.circle(frame,(int(pt2[0]),int(pt2[1])),5,(255,0,0),-1)
    
        # Calculate and display FPS
        frame_count += 1
        elapsed_time = time.time() - start_time
        fps = frame_count / elapsed_time
        cv2.putText(frame, f"FPS: {fps:.2f}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 3)
        
    
        cv2.imshow("coordinate_screen",frame) 
    
    
        k = cv2.waitKey(5) & 0xFF # after drawing rectangle press esc   
        if k == 27:
            cv2.destroyAllWindows()
            break
    else:
        break

video.release()
cv2.destroyAllWindows()

責(zé)任編輯:趙寧寧 來源: 小白玩轉(zhuǎn)Python
相關(guān)推薦

2024-10-28 17:17:32

2010-08-05 08:49:19

2011-10-11 09:15:58

移動(dòng)應(yīng)用PhoneGapGoodDay

2025-02-17 07:00:00

ORB對(duì)象跟蹤器計(jì)算機(jī)視覺

2023-09-25 10:13:59

Java識(shí)別

2025-03-25 08:30:00

OpenCV計(jì)算機(jī)視覺圖像識(shí)別

2019-05-22 14:28:08

AI人工智能深度學(xué)習(xí)

2024-06-21 10:40:00

計(jì)算機(jī)視覺

2017-09-22 11:45:10

深度學(xué)習(xí)OpenCVPython

2023-01-11 08:59:33

Linuxtraceroute命令

2019-05-14 09:53:31

代碼開發(fā)工具

2019-02-18 09:00:00

TextRank算法自然語言處理Python

2020-07-25 19:40:33

Java開發(fā)代碼

2021-10-20 11:47:26

威脅情報(bào)網(wǎng)絡(luò)威脅網(wǎng)絡(luò)安全

2024-09-24 17:12:47

2024-09-12 17:19:43

YOLO目標(biāo)檢測深度學(xué)習(xí)

2024-11-12 10:20:00

模型數(shù)據(jù)

2023-10-12 09:21:41

Java圖像

2024-04-25 11:45:09

在線地圖SOTA

2024-07-18 10:37:34

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

麻豆传媒一区二区| 欧美高清电影在线看| 天天操天天爽天天射| 欧美成人hd| 国产乱码精品1区2区3区| 欧美精品在线观看91| 国产精品无码永久免费不卡| se69色成人网wwwsex| 一区二区三区四区不卡视频| 青青成人在线| 性生活视频软件| 日韩国产高清影视| 久久免费视频观看| 在线视频这里只有精品| 四虎884aa成人精品最新| 欧美日韩一区久久| 人人妻人人澡人人爽欧美一区双 | 国产中文在线观看| 久久精品导航| 欧美精品在线视频观看| 亚洲天堂久久新| 91大神精品| 精品污污网站免费看| av免费观看网| 牛牛精品在线| 亚洲精品日韩专区silk| 视频一区视频二区视频| 亚洲av成人无码网天堂| 国产乱子伦一区二区三区国色天香| 欧美一级片在线播放| 九九热精品免费视频| 日韩在线二区| 精品夜色国产国偷在线| 亚洲AV无码久久精品国产一区| 电影亚洲精品噜噜在线观看 | av图片在线观看| 亚洲小说欧美另类婷婷| 久久国产色av| 午夜国产小视频| 91视频久久| 在线观看免费高清视频97| 性欧美成人播放77777| 成人av资源网址| 日韩一二三区不卡| 在线观看日本www| 日韩一区中文| 欧美理论电影在线| 亚洲77777| 国产成人a视频高清在线观看| 色哟哟日韩精品| 国内外成人免费激情视频| 91福利在线免费| 午夜精品福利一区二区蜜股av| av动漫在线播放| 亚洲wwwww| 一区二区成人在线观看| 福利在线一区二区| 91白丝在线| 精品久久久久国产| 日本黄网站免费| 亚洲成人一区在线观看| 在线观看91精品国产入口| www.色偷偷.com| h1515四虎成人| 欧美欧美欧美欧美首页| 性久久久久久久久久久久久久| 国产精品毛片无码| 日韩欧美国产小视频| 香蕉在线观看视频| 日韩深夜福利| 影音先锋日韩有码| 成人高潮免费视频| 国内自拍一区| 日本精品久久久| 中文字幕 自拍偷拍| 精品在线你懂的| 波多野结衣成人在线| 天堂中文网在线| 久久久亚洲综合| 亚洲一区在线免费| 国产在线拍揄自揄拍视频| 天天av天天翘天天综合网色鬼国产| 男人揉女人奶房视频60分| 素人啪啪色综合| 91精品国产麻豆国产自产在线| aaa黄色大片| 国产日产一区| 蜜臀久久99精品久久久久久宅男| 日本一区二区三区免费视频| 巨乳诱惑日韩免费av| 成人欧美一区二区三区在线| 日本韩国免费观看| 欧美极品xxx| 精品国产一区二区三区无码| 成人看片在线观看| 日韩精品一区二区三区蜜臀| 扒开jk护士狂揉免费| 91成人免费| 欧美最猛性xxxx| 国产高清免费观看| 久久久精品影视| 日本国产中文字幕| 欧美va在线观看| 亚洲福利视频在线| 青青操在线视频观看| 国产精品一二| 成人资源视频网站免费| jizz亚洲| 欧美午夜精品久久久久久浪潮| 日韩va在线观看| 最近国产精品视频| 欧美激情视频给我| 一区二区三区免费观看视频| 久久夜色精品一区| 91成人综合网| 亚洲一区二区av| 在线观看欧美www| 久久久久99精品成人片三人毛片| 国产精品中文欧美| 亚洲午夜精品久久久久久浪潮| 激情国产在线| 精品少妇一区二区三区免费观看 | 特黄特黄一级片| 精品大片一区二区| 欧美一级bbbbb性bbbb喷潮片| 99热这里只有精品66| 国产精品你懂的在线欣赏| 99999精品视频| 久久久久97| 久久久久久久久久久人体| jizz国产视频| 《视频一区视频二区| 狠狠躁狠狠躁视频专区| 国产精品密蕾丝视频下载| 98视频在线噜噜噜国产| 黄色a在线观看| 亚洲综合久久av| 亚洲国产日韩在线一区| 91精品成人| 91色精品视频在线| 动漫一区在线| 日韩一卡二卡三卡四卡| av激情在线观看| 精品一区二区久久| 一区中文字幕在线观看| av一级久久| 久久国产精品久久久久| www黄色网址| 亚洲国产欧美日韩另类综合 | 国模私拍视频一区| 高清国产mv在线观看| 亚洲高清视频在线| 亚洲一区二区三区无码久久| 性欧美xxxx大乳国产app| 欧美精品欧美精品| 69堂免费精品视频在线播放| 在线观看精品国产视频| 国产精品国产一区二区三区四区 | 粉嫩一区二区三区性色av| 欧美 日韩 国产精品| 精品国产一区二区三区不卡蜜臂| 97精品国产aⅴ7777| 日色在线视频| 91福利国产精品| 亚洲天堂精品一区| 国产精品一区二区三区乱码| 日韩美女爱爱视频| 一本久久青青| 成人福利视频在线观看| 国产一线二线在线观看| 精品亚洲国产视频| 亚洲熟妇无码久久精品| 亚洲狠狠丁香婷婷综合久久久| 少妇被狂c下部羞羞漫画| 国产精品尤物| 在线天堂一区av电影| av动漫精品一区二区| 日本一区二区三区在线播放| 在线免费观看黄色网址| 91精品国产91久久久久久一区二区| 精品无码黑人又粗又大又长| 99r国产精品| 国产又大又黄又粗又爽| 中文字幕免费一区二区| 久久久久高清| 欧美91在线|欧美| 国内成人精品视频| www日韩tube| 精品国产99国产精品| 夜夜爽妓女8888视频免费观看| 亚洲同性同志一二三专区| 精品一区二区三区四区五区六区| 久久一本综合频道| 久久人妻无码一区二区| 免费成人网www| 成人精品一二区| 色天使综合视频| 久久久久久久色| 欧美性天天影视| 国产视频精品自拍| 99精品视频在线播放免费| 精品久久久免费| 欧美一区二区三区爽爽爽| 久久久综合视频| 日本wwww色| 久久99国产精品久久99| 国产日韩一区二区在线| 亚洲无吗在线| 男人天堂成人网| japanese国产精品| 久久久久久久久久久久久9999| 国产日韩在线观看视频| 国产精品入口免费视| 理论片午夜视频在线观看| 欧美成人在线免费视频| 日p在线观看| 日韩精品视频三区| 国产小视频一区| 欧美一区二区福利视频| 在线免费观看av片| 在线免费观看日本一区| 国产又黄又爽又色| 亚洲国产精品精华液网站| 在线看的片片片免费| 国产精品午夜在线| 一区二区三区伦理片| 91色.com| 国产精品无码永久免费不卡| av日韩在线网站| 亚洲成人精品在线播放| 国产一区二区三区美女| 天天干天天av| 精彩视频一区二区| 91看片破解版| 国产一区在线观看麻豆| 欧美性受xxxxxx黑人xyx性爽| 日韩高清在线不卡| 激情综合网婷婷| 久久精品官网| 99久久激情视频| 久久亚洲风情| 亚洲精品视频导航| 日韩av不卡在线观看| 麻豆传传媒久久久爱| 久久精品1区| 久久综合久久色| 美美哒免费高清在线观看视频一区二区 | 大胆av不用播放器在线播放| 亚洲少妇中文在线| 国产精品99999| 中文日韩在线观看| 日本不卡视频| 欧美不卡视频一区发布| 欧美videos另类精品| 久久噜噜噜精品国产亚洲综合| 999福利在线视频| 91成人福利在线| 日韩在线短视频| 成人黄色生活片| 91国内精品白嫩初高生| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 久久精品人人| 日本xxxx黄色| 国产精品一区2区| 中文字幕乱视频| 国产日韩精品久久久| 99久久精品久久亚洲精品| 亚洲欧美日韩成人高清在线一区| 欧美日韩三级在线观看| 亚洲成a人v欧美综合天堂下载| 69xxxx国产| 91精品福利在线一区二区三区| 成人免费观看在线视频| 精品亚洲男同gayvideo网站| 午夜在线小视频| 欧美激情在线播放| abab456成人免费网址| 91精品天堂| 神马久久一区二区三区| 麻豆md0077饥渴少妇| 99在线观看免费视频精品观看| 日本黄色三级大片| 国产一区二区三区免费| 爱爱免费小视频| 亚洲欧美成人一区二区三区| 国产成人综合欧美精品久久| 3d动漫精品啪啪| 色婷婷综合视频| 色噜噜狠狠狠综合曰曰曰| tube8在线hd| 国产欧美韩国高清| 日韩美女毛片| 久久天天东北熟女毛茸茸| 免费在线播放第一区高清av| 亚洲自拍第三页| 久久久91精品国产一区二区精品 | 亚洲福利视频网站| 午夜激情视频在线观看| 69精品小视频| 蜜桃在线一区| 亚洲一区高清| 美女国产精品| 亚洲精品乱码久久久久久蜜桃欧美| 欧美—级在线免费片| 91看片在线播放| 欧美成人激情免费网| 国产日本在线| 91干在线观看| 国产91精品入| 无码人妻精品一区二区蜜桃百度| 亚洲一区图片| 成人三级做爰av| 国产精品久久久一本精品| 天天爽夜夜爽人人爽| 精品国产一区二区三区四区四 | 91av视频在线播放| 天堂va欧美ⅴa亚洲va一国产| 亚洲福利av| 久久久久一区| 日本黄色片在线播放| 亚洲午夜国产一区99re久久| 国产精品主播一区二区| 这里精品视频免费| 毛片无码国产| 麻豆成人小视频| 亚洲一区一卡| 亚洲成人日韩在线| 精品女同一区二区三区在线播放| 亚洲黄色小说网| 欧美另类老女人| va天堂va亚洲va影视| 一区二区视频在线观看| 免费欧美在线视频| 影音先锋男人在线| 日本韩国欧美在线| 麻豆av电影在线观看| 日韩av不卡在线| 精品成av人一区二区三区| www.99在线| 国产精品色哟哟网站| 中文字幕一区二区久久人妻| 在线免费观看羞羞视频一区二区| 日本欧美韩国| 亚洲欧洲免费无码| 久久99精品国产麻豆婷婷| 黄色片子在线观看| 日韩欧美123| 97在线超碰| 精品国产福利| 久久一区二区三区四区五区| 国产99在线 | 亚洲| 欧美日韩精品欧美日韩精品一| 日p在线观看| eeuss一区二区三区| 日韩一级在线| 波多野结衣a v在线| 欧美性色欧美a在线播放| 伊人在线视频| 国产免费观看久久黄| 欧美伊人影院| 一本加勒比波多野结衣| 一本到不卡精品视频在线观看| 国产在线观看黄| 成人网在线免费观看| 黄色综合网站| 久久成人激情视频| 91麻豆精品91久久久久久清纯| 免费网站在线观看人| 鲁鲁狠狠狠7777一区二区| 免费精品视频在线| 好吊色视频在线观看| 日韩激情第一页| 青青在线精品| 日韩小视频网站| 国产日韩精品一区| 午夜精品久久久久久久第一页按摩| 久久久久女教师免费一区| 国产精品一区二区av日韩在线| 国产免费中文字幕| 午夜精品久久一牛影视| 国产区视频在线播放| 91丨九色丨国产| 老**午夜毛片一区二区三区| 成熟的女同志hd| 精品一区电影国产| 久久9999免费视频| av免费播放网址| 亚洲欧美日韩人成在线播放| 日韩av成人| 亚洲已满18点击进入在线看片| 国产一级久久| 欧美色图亚洲天堂| 一本色道久久88亚洲综合88 | 欧美大香线蕉线伊人久久| 久久国产精品免费| 日本高清www免费视频| 久久九九免费视频| 国产一区二区三区站长工具| 日本一区二区免费视频| 欧美精选在线播放|