第七章 目标追踪_第1页
第七章 目标追踪_第2页
第七章 目标追踪_第3页
第七章 目标追踪_第4页
第七章 目标追踪_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机视觉--OpenCV图像处理教程第七章目标追踪OBJECTTRACKING内容要点:理解目标跟踪、掌握OpenCV目标跟踪库、掌握背景差分技术、实现手势跟踪建议课时:6课时讲课人:宋桂岭讲课时间:2026年5月18日目录7.1目标跟踪概述理论讲解7.2目标跟踪实现理论+实操7.3背景差分理论+实操7.4手势跟踪项目实战7.5小结及作业总结作业017.1目标跟踪概述理论讲解7.1目标跟踪概述目标跟踪ObjectTracking目标跟踪是计算机视觉领域的一个重要分支。目前的目标跟踪的通常任务是,在视频的第一帧给定一个目标的矩形框,然后后续这个矩形框紧跟着要跟踪的物体。不过,目标跟踪与计算机视觉中的图像识别,分割,检测是分不开的,通常跟踪是这些分割检测的最后一步。7.1目标跟踪概述目标跟踪任务分为单目标跟踪和多目标跟踪两种。单目标跟踪任务就是在给定某视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。其流程如图7-1所示,主要过程如下:输入初始化目标框,在下一帧中产生众多候选框(MotionModel)。提取这些候选框的特征(FeatureExtractor),然后对这些候选框评分(ObservationModel)。在这些评分中找一个得分最高的候选框作为预测的目标(PredictionA),或者对多个预测值进行融合(Ensemble)得到更优的预测目标。多目标追踪任务主要解决的问题是对视频中每一帧画面里我们标定或者想要追踪的目标进行检测并获取在图像中的位置,对每个目标分配一个id,在目标运动过程中,维持每个目标的id保持不变。初始化跟踪器运动模型特征提取观测模型目标图像区域观测模型更新027.2目标跟踪实现理论+实操7.2.1数据集下载http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html下载Biker数据7.2.2视频合成将下载后的图像序列合称为mp4视频文件(img2video.py):importosimportcv2

#要被合成的多张图片所在文件夹#路径分隔符最好使用“/”,而不是“\”,“\”本身有转义的意思;或者“\\”也可以。#因为是文件夹,所以最后还要有一个“/”file_dir='data/Biker/img'list=[]forroot,dirs,filesinos.walk(file_dir):forfileinfiles:list.append(file)#获取目录下文件名列表

#VideoWriter是cv2库提供的视频保存方法,将合成的视频保存到该路径中#'MJPG'意思是支持jpg格式图片#fps=5代表视频的帧频为5,如果图片不多,帧频最好设置的小一点#(640,360)是生成的视频像素640*360,一般要与所使用的图片像素大小一致,否则生成的视频无法播放#定义保存视频目录名称和压缩格式,640*360video=cv2.VideoWriter('data/Biker.avi',cv2.VideoWriter_fourcc(*'MJPG'),5,(640,360))

foriinrange(1,len(list)):#读取图片img=cv2.imread(file_dir+'/'+list[i-1]) #resize方法是cv2库提供的更改像素大小的方法#将图片转换为640*360像素大小,如果图像大小不一致需要执行此操作#img=cv2.resize(img,(648,480))#写入视频video.write(img)

#释放资源video.release()图像序列拷贝到data/Biker/img文件夹7.2.3OpenCV目标跟踪实现①安装OpenCV扩展包②创建object_tracking.py,完整程序位于/sgl_666/opencv/blob/master/code/chp7/object_tracking.pypipinstallopencv-contrib-pythonimportcv2importsysimportcv2.legacy

if__name__=='__main__':#OpenCV提供追踪器列表.tracker_types=['BOOSTING','MIL','KCF','TLD','MEDIANFLOW','MOSSE','CSRT']tracker_type=tracker_types[6]…7.2.3OpenCV目标跟踪实现单帧截图037.3背景差分理论+实操7.3背景差分背景差分ObjectTracking背景差分法亦称背景减法,常用于检测视频图像中的运动目标,是目前运动目标检测的主流方法之一。其基本原理是将图像序列中的当前帧和已经确定好或实时获取的背景参考模型(背景图像)做减法,找出不同点,计算出与背景图像像素差异超过一定阀值的区域作为运动区域,从而来确定运动物体位置、轮廓、大小等特征,非常适用于摄像机静止的场景。对于传统监控的异常情况报警来讲,可以先通过背景差分法找到运动目标,再基于目标识别技术进行异常行为识别或目标跟踪。7.3背景差分①创建background_substract.py②导入头文件from__future__importprint_functionimportcv2importargparse3、获取用户输入信息:parser=argparse.ArgumentParser(description='ThisprogramshowshowtousebackgroundsubtractionmethodsprovidedbyOpenCV.Youcanprocessbothvideosandimages.')parser.add_argument('--input',type=str,help='Pathtoavideoorasequenceofimage.',default='data/vtest.avi')parser.add_argument('--algo',type=str,help='Backgroundsubtractionmethod(KNN,MOG2).',default='MOG2')args=parser.parse_args()7.3背景差分③定义背景差分模型:ifargs.algo=='MOG2':backSub=cv2.createBackgroundSubtractorMOG2()else:backSub=cv2.createBackgroundSubtractorKNN()5、读取视频:capture=cv2.VideoCapture(cv2.samples.findFileOrKeep(args.input))ifnotcapture.isOpened():print('Unabletoopen:'+args.input)exit(0)7.3背景差分④视频逐帧进行背景差分处理:erode_kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))dilate_kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(7,7))

whileTrue:ret,frame=capture.read()ifframeisNone:break

fgMask=backSub.apply(frame)

cv2.rectangle(frame,(10,2),(100,20),(255,255,255),-1)cv2.putText(frame,str(capture.get(cv2.CAP_PROP_POS_FRAMES)),(15,15),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,0,0))

_,thresh=cv2.threshold(fgMask,244,255,cv2.THRESH_BINARY)

cv2.erode(thresh,erode_kernel,thresh,iterations=2)cv2.dilate(thresh,dilate_kernel,thresh,iterations=2)contours,hier=cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

forcincontours:ifcv2.contourArea(c)>1000:x,y,w,h=cv2.boundingRect(c)cv2.rectangle(frame,(x,y),(x+w,y+h),(255,255,0),2)

cv2.imshow('Frame',frame)cv2.imshow('FGMask',fgMask)cv2.imshow('thresh',thresh)keyboard=cv2.waitKey(30)ifkeyboard=='q'orkeyboard==27:break7.3背景差分047.4手势跟踪项目实战7.4手势跟踪MediaPipeHands是一套流行的手和手指跟踪库。它可以从视频单个帧中推断出21个手关键的标记。pipinstallmediapipe安装方式:7.4手势跟踪/sgl_666/opencv/blob/master/code/chp7/hand_tracking.p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论