关键点追踪--光流估计

简介: 利用光流估计进行关键点追踪

光流估计,会捕获第一帧的关键点然后对关键点进行追踪

详细代码如下:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
feature_params = dict(maxCorners=100, qualityLevel=0.5, minDistance=7) #角点加测的参数

lk_params = dict(winSize=(30, 30), maxLevel=3)#Lucas kanade参数
#宽度和最大金字塔数
color = np.random.randint(0, 255, (100, 3))#随机颜色条

ret, old_frame = cap.read()
old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)
p0 = cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params)  # 第一帧角点
mask = np.zeros_like(old_frame)

while True:
    re, frame = cap.read()
    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)
    good_new = p1[st == 1] #找到的点
    good_old = p0[st == 1]
    for i, (new, old) in enumerate(zip(good_new, good_old)):
        # enumerate同时列出数据和数据下标
        #zip()将对象中对应元素打包成远组,返回元组列表
        a, b = new.ravel() #将多维数组转换为一堆数组
        c, d = old.ravel()
        line = cv2.line(mask, (a, b), (c, d), (0, 0, 255), 2) #将矩阵和数组转化为列表
        frame = cv2.circle(frame, (a, b), 5, (255, 0, 0), -1)#将矩阵和数组转化为列表
    img = cv2.add(frame, mask)#两个图像相加
    cv2.imshow('frame', img)
    cv2.imshow("line", frame)
    cv2.imshow('mask', line)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()
目录
相关文章
|
算法 流计算
光流定位原理是什么??【转】
转自:https://www.zhihu.com/question/35980316 Jessie Lee HIT/控制/无人机     光流是测速算法,并不是直接定位的。
1707 0
|
计算机视觉
卡尔曼滤波物体轨迹预测趣味实战
卡尔曼滤波物体轨迹预测趣味实战
354 0
卡尔曼滤波物体轨迹预测趣味实战
|
9月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
算法 计算机视觉 Shell
【OpenCV学习】物体跟踪的粒子滤波算法
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.引言 这个项目是由俄亥俄州立大学(OSU)一位博士生所写,http://web.engr.oregonstate.
967 0
|
机器学习/深度学习 传感器 算法
垂直腔表面发射激光器极化噪声的建模与分析论文复现
垂直腔表面发射激光器极化噪声的建模与分析论文复现
|
机器学习/深度学习 人工智能 自动驾驶
自动驾驶感知多任务学习网络方法盘点!(检测/分割/车道线/关键点/深度估计)
多任务学习是自动驾驶领域非常重要的一个模块,旨在通过一个网络在较小计算量下实现多个任务,比如分割、检测、关键点、车道线等,除了具有节省计算量的优势外,多任务之间还具有一定的相互辅助作用,比如分割任务会帮助检测任务提升整体性能,下面梳理下自动驾驶领域常用到的一些多任务学习网络;
自动驾驶感知多任务学习网络方法盘点!(检测/分割/车道线/关键点/深度估计)
|
数据采集 机器学习/深度学习 存储
3D 人体姿态估计简述
3D Human Pose Estimation(以下简称 3D HPE )的目标是在三维空间中估计人体关键点的位置。3D HPE 的应用非常广泛,包括人机交互、运动分析、康复训练等,它也可以为其他计算机视觉任务(例如行为识别)提供 skeleton 等方面的信息。关于人体的表示一般有两种方式:第一种以骨架的形式表示人体姿态,由一系列的人体关键点和关键点之间的连线构成;另一种是参数化的人体模型(如 SMPL [2]),以 mesh 形式表示人体姿态和体型。
995 0
3D 人体姿态估计简述
|
传感器 机器学习/深度学习 算法
【滤波跟踪】基于变分贝叶斯自适应卡尔曼滤波器VPAKF实现无人机状态估计附matlab代码
【滤波跟踪】基于变分贝叶斯自适应卡尔曼滤波器VPAKF实现无人机状态估计附matlab代码
|
9月前
|
存储 计算机视觉 流计算
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
382 0
|
9月前
|
机器学习/深度学习 编解码 人工智能
论文介绍:HigherHRNet——用于自下而上人体姿态估计的尺度感知表示学习
【5月更文挑战第22天】HigherHRNet是针对自下而上人体姿态估计的尺度感知方法,通过构建高分辨率特征金字塔,改善多尺度人体姿态估计的准确性。该论文提出的新架构在COCO测试集上提高了2.5%的中号人物平均精度,达到70.5%的AP,且在CrowdPose上超越所有自上而下方法,实现67.6%的AP。作者通过消融实验验证了各个组件的重要性,并指出未来可优化模型以适应更复杂场景。论文链接:[https://arxiv.org/abs/1908.10357](https://arxiv.org/abs/1908.10357)
70 1

热门文章

最新文章