0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开发实例】基于GM-3568JHF开发板安装OpenCV并使用视频目标跟踪 ( CamShift)

电子发烧友论坛 2025-09-02 08:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

计算机视觉领域,视频目标跟踪是一个非常重要的任务。视频目标跟踪广泛应用于监控、自动驾驶、人机交互等多个领域。OpenCV 提供了多种目标跟踪算法,其中 MeanShift 和 CamShift 是两种经典且常用的算法。本文将详细讲解这两种算法的原理、实现步骤以及如何在 OpenCV 中使用它们。

https://bbs.elecfans.com/jishu_2497622_1_1.html

https://bbs.elecfans.com/jishu_2497621_1_1.html

552dce22-8790-11f0-9080-92fbcf53809c.jpg



一、开启SSH远程访问

网络连接:使用网线或者wifi连接与PC电脑连接到一个网络。

获取板子IP地址:整成在板子终端使用命令行ifconfig查看网络地址,但此板子默认是debian系统需要使用ip a命令查看ip

通过SSH连接开发板:远程登录账号和密码是linaro;

553a42ce-8790-11f0-9080-92fbcf53809c.png


二、安装Pip管理工具

安装Pip管理工具

554e175e-8790-11f0-9080-92fbcf53809c.png

Sudo apt-getinstall python3-pip









三、安装OpenCV 2环境

cv2支持图像处理(如滤波、边缘检测、色彩转换)、视频分析(如运动检测、目标跟踪)、特征提取(如 SIFT 、 ORB 算法)、机器学习(如 SVM 、 决策树 )等。其跨平台特性使其能在 Linux 、 Windows 、 Android 等系统上运行,并通过Python接口简化操作。

安装OpenCV 2环境

sudoapt install libopencv-dev python3-opencv

5558792e-8790-11f0-9080-92fbcf53809c.png

2.OpenCV图像识别测试

使用python3 count3.py,运行事先准备好的图像识别程序,运行结果如图所示

556420ee-8790-11f0-9080-92fbcf53809c.png

四、运行CamShift 算法

目标跟踪算法介绍:

在计算机视觉领域,视频目标跟踪是一个非常重要的任务。视频目标跟踪广泛应用于监控、自动驾驶、人机交互等多个领域。OpenCV 提供了多种目标跟踪算法,其中 MeanShift 和 CamShift 是两种经典且常用的算法。


CamShift 算法:

算法原理:

CamShift(Continuously Adaptive MeanShift)算法是 MeanShift 的改进版本,它通过自适应调整窗口大小来更好地跟踪目标。CamShift 算法在 MeanShift 的基础上增加了窗口大小和方向的调整,使其能够适应目标在视频中的尺寸和旋转变化。

CamShift 算法的基本步骤如下:

初始化窗口:与 MeanShift 相同,在视频的第一帧中选择初始窗口。

计算质心:在当前窗口中,计算目标区域的质心。

移动窗口:将窗口中心移动到质心位置。

调整窗口大小和方向:根据目标的尺寸和方向调整窗口。

迭代:重复步骤 2 到 4,直到窗口中心不再变化或达到最大迭代次数。

OpenCV 中的实现:

在 OpenCV 中,CamShift 算法通过 cv2.CamShift() 函数实现,Python程序属于脚本语言不需要编译即可使用,使用命令行python3 video.py 即可运行。

# -*- coding: utf-8 -*-import cv2import numpy as np# 读取视频cap = cv2.VideoCapture('car1.mp4')# 读取第一帧ret, frame = cap.read()# 设置初始窗口 (x, y, width, height)x, y, w, h = 350, 250, 300, 300track_window = (x, y, w, h)# 设置 ROI (Region of Interest)roi = frame[y:y+h, x:x+w]# 转换为 HSV 颜色空间hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)# 创建掩膜并计算直方图mask = cv2.inRange(hsv_roi, np.array((0., 60., 32.)), np.array((180., 255., 255.)))roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0, 180])cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)# 设置终止条件term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)while True:ret, frame = cap.read()if not ret:break# 转换为 HSV 颜色空间hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# 计算反向投影dst = cv2.calcBackProject([hsv], [0], roi_hist, [0, 180], 1)# 应用 MeanShift 算法ret, track_window = cv2.meanShift(dst, track_window, term_crit)# 绘制跟踪结果x, y, w, h = track_windowimg2 = cv2.rectangle(frame, (x, y), (x+w, y+h), 255, 2)cv2.imshow('MeanShift Tracking', img2)if cv2.waitKey(30) & 0xFF == 27:breakcap.release()cv2.destroyAllWindows()

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 目标跟踪
    +关注

    关注

    2

    文章

    89

    浏览量

    15252
  • 开发板
    +关注

    关注

    25

    文章

    6123

    浏览量

    113351
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44420
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何用OpenCV进行手势识别--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV手势识别方案测试。摘自优秀创作者-小火苗米尔基于全志T527开发板一、软件环境
    的头像 发表于 12-13 08:04 1763次阅读
    如何用<b class='flag-5'>OpenCV</b>进行手势识别--基于米尔全志T527<b class='flag-5'>开发板</b>

    GM-3568JHF开发板免费体验】视美泰GM-3568JHF开发板开箱测评报告

    很荣幸收到电子发烧友和视美泰公司给于的视美泰GM-3568JHF开发板,该开发板是基于瑞芯微RK3568J和紫光同创Log0s-2 PG2L50HFPGA设计的异构多核国产工业评估
    发表于 07-03 17:21

    GM-3568JHF开发板免费体验】GM-3568JHF的coremark跑分5007分

    用的微控制器(MCU)和中央处理单元(CPU)的性能,可以帮助人们比较不同的 CPU 架构的性能表现。 拿到视美泰GM-3568JHF开发板后,一直想测试下GM-3568JHF开发板
    发表于 07-22 17:32

    GM-3568JHF开发板免费体验】OpenCV 视频目标跟踪 ( CamShift)

    一、基本理论 在计算机视觉领域,视频目标跟踪是一个非常重要的任务。视频目标跟踪广泛应用于监控、自
    发表于 08-09 13:19

    GM-3568JHF开发板免费体验】OpenCV开发环境安装和计数程序开发

    检测、色彩转换)、视频分析(如运动检测、目标跟踪)、特征提取(如 SIFT 、 ORB 算法)、机器学习(如 SVM 、 决策树 )等。其跨平台特性使其能在 Linux 、 Windows
    发表于 08-09 13:30

    GM-3568JHF开发板免费体验】开发环境安装

    1、docker镜像环境搭建 为帮助开发者快速完成上面复杂的开发环境准备工作,我们提供了第二种交叉编译器 Docker 镜像环境搭建方式,方遍开发者可以快速验证,缩短编译环境的构建时间
    发表于 08-09 13:37

    【作品合集】视美泰M-K1HSE、3568开发板测评

    目标跟踪 ( CamShift) 【GM-3568JHF开发板免费体验】OpenCV
    发表于 09-22 10:32

    基于OPENCV的运动目标跟踪实现

    CAMSHIFT算法是一种基于颜色直方图的目标跟踪算法。在视频跟踪过程中,CAMSHIFT算法利
    发表于 12-23 14:21

    基于QT+OpenCv目标跟踪算法实现

    目标跟踪的处理要求。后续的本博客的第二个部分《QT+OpenCv实现在410c开发板上实现视频目标
    发表于 09-21 10:42

    RK3568开发板NPU使用安装步骤

    输入以下命令升级 pippython3 -m pip install --upgrade pip5 下载网盘资料中“iTOP-3568 开发板\\02_【iTOP-RK3568 开发板
    发表于 09-13 17:37

    基于OPENCV的运动目标跟踪实现

    CAMSHIFT算法是一种基于颜色直方图的目标跟踪算法。在视频跟踪过程中,CAMSHIFT算法利
    发表于 11-07 14:47 925次下载
    基于<b class='flag-5'>OPENCV</b>的运动<b class='flag-5'>目标</b><b class='flag-5'>跟踪</b>实现

    QT+Opencv粒子滤波算法实现视频目标跟踪——(三)QT环境安装及配置

    在QT+OpenCV实现在410c开发板上实现视频目标追踪预研系列内容呢的前面两个博客中已经对目标跟踪
    发表于 02-23 10:33 3272次阅读

    【教程上新】基于迅为iTOP-RK3568开发板OpenCV开发手册

    【教程上新】基于迅为iTOP-RK3568开发板OpenCV开发手册
    的头像 发表于 02-08 15:22 1993次阅读
    【教程上新】基于迅为iTOP-RK<b class='flag-5'>3568</b><b class='flag-5'>开发板</b>的<b class='flag-5'>OpenCV</b><b class='flag-5'>开发</b>手册

    迅为RK3568开发板资料20个+手册+配套视频教程

    迅为RK3568开发板资料20个+手册+配套视频教程
    的头像 发表于 02-14 14:37 1.1w次阅读
    迅为RK<b class='flag-5'>3568</b><b class='flag-5'>开发板</b>资料20个+手册+配套<b class='flag-5'>视频</b>教程

    迅为基于RK3568开发板的嵌入式学习之Linux驱动视频

    迅为基于RK3568开发板的嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 1730次阅读
    迅为基于RK<b class='flag-5'>3568</b><b class='flag-5'>开发板</b>的嵌入式学习之Linux驱动<b class='flag-5'>视频</b>