应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

目标跟踪(5)使用Opencv和Python进行对象跟踪

  在本教程中,我们将学习如何基于Opencv和Python实现对象跟踪。
  首先必须明确目标检测和目标跟踪有什么区别:1。目标检测是每一帧每一帧的检测。2。对象跟踪会逐帧跟踪,但会一次又一次地保留对象所在位置的历史记录
  我们将首先讨论对象检测,然后讨论如何将对象跟踪应用于检测。1。有哪些可能的应用?
  可能有不同的应用,例如,计算某个区域有多少人,检查传送带上有多少物体通过,或者计算高速公路上的车辆。
  当然,看过本教程后,您会很容易地想到数以千计的想法应用于现实生活或可能应用于工业。2。我们需要什么?
  在本教程中,我们将使用3个文件:highway。mp4我们将用来统计车辆数量的高速公路视频tracker。py这已经写好了,你可以简单地下载它main。py主函数
  3。物体检测
  首先我们需要调用highway。mp4文件并创建一个mask:capcv2。VideoCapture(highway。mp4)来自稳定相机的物体检测objectdetectorcv2。createBackgroundSubtractorMOG2()whileTrue:ret,framecap。read()1。物体检测maskobjectdetector。apply(frame)
  正如您在示例代码中看到的,我们还使用了createBackgroundSubtractorMOG2函数,该函数返回背景比率(backgroundratio),然后创建mask。
  mask可视化结果:
  但是,如您所见,图像中有很多噪点。因此,让我们通过删除所有较小的元素来改进提取,并将我们的注意力集中在大于某个面积的对象上。,maskcv2。threshold(mask,254,255,cv2。THRESHBINARY)contours,cv2。findContours(mask,cv2。RETRTREE,cv2。CHAINAPPROXSIMPLE)forcntincontours:计算面积,去除小元素areacv2。contourArea(cnt)ifarea100:显示
  使用OpenCV的cv2。drawContours函数绘制轮廓,我们得到了这个结果。
  4。我们定义一个感兴趣的区域
  就本教程而言,分析整个窗口并不重要。我们只对计算在某个点通过的所有车辆感兴趣,因此,我们必须定义一个感兴趣的区域ROI并仅在该区域应用mask。whileTrue:ret,framecap。read()height,width,frame。shape提取感兴趣区域roiframe〔340:720,500:800〕1。物体检测maskobjectdetector。apply(roi),maskcv2。threshold(mask,254,255,cv2。THRESHBINARY)contours,cv2。findContours(mask,cv2。RETRTREE,cv2。CHAINAPPROXSIMPLE)forcntincontours:计算面积并去除小元素areacv2。contourArea(cnt)ifarea100:cv2。drawContours(roi,〔cnt〕,1,(0,255,0),2)
  结果可视化如下:
  函数cv2。createBackgroundSubtractorMOG2是在开始时添加的,没有定义参数,现在让我们看看如何进一步改进我们的结果。history是第一个参数,在这种情况下,它设置为100,因为相机是固定的。varThreshold改为40,因为该值越低,误报的可能性就越大。在这种情况下,我们只对较大的对象感兴趣。来自稳定相机的物体检测objectdetectorcv2。createBackgroundSubtractorMOG2(history100,varThreshold40)
  5。在对象周围画出方框
  在继续处理矩形之前,我们对图像进行了进一步的清理。为此,阈值函数就派上用场了。从我们的mask开始,我们告诉它我们只想显示白色或黑色值,因此通过编写254,255,只会考虑254和255之间的值。,maskcv2。threshold(mask,254,255,cv2。THRESHBINARY)
  然后我们将找到的对象的坐标插入到if条件中并绘制矩形x,y,w,hcv2。boundingRect(cnt)cv2。rectangle(roi,(x,y),(xw,yh),(0,255,0),3)
  这是最终结果:
  6。对象追踪
  我们现在只需导入和集成跟踪功能。fromtrackerimportCreatetrackerobjecttrackerEuclideanDistTracker()
  一旦创建了对象,我们必须获取边界框的每个位置并将它们插入到单个数组中。detections。append(〔x,y,w,h〕)
  通过在屏幕上显示结果,您可以看到所有通过ROI的通道是如何被识别的,以及它们的位置是如何插入到特定的数组中的。显然,识别的摩托车越多,我们的数组就越大。
  7。将唯一ID关联到对象
  现在让我们将带有位置的数组传递给tracker。update()。我们将再次获得一个包含位置的数组,但此外,将为每个对象分配一个唯一的ID。
  从代码中可以看出,我们可以使用for循环分析所有内容。此时我们只需要绘制矩形并显示车辆ID。2。目标跟踪boxesidstracker。update(detections)forboxidinboxesids:x,y,w,h,idboxidcv2。putText(roi,str(id),(x,y15),cv2。FONTHERSHEYPLAIN,2,(255,0,0),2)cv2。rectangle(roi,(x,y),(xw,yh),(0,255,0),3)
  在图像中,您可以看到结果
  8。完整代码tracker。pyimportmathclassEuclideanDistTracker:definit(self):存储对象的中心位置self。centerpoints{}保持id的计数每次检测到新的对象id时,计数将增加1self。idcount0defupdate(self,objectsrect):对象框和IDobjectsbbsids〔〕获取新对象的中心点forrectinobjectsrect:x,y,w,hrectcx(xxw)2cy(yyh)2查明是否已经检测到该对象sameobjectdetectedFalseforid,ptinself。centerpoints。items():计算中心点之间的欧式距离distmath。hypot(cxpt〔0〕,cypt〔1〕)如果欧氏距离小于25即表明是相同的目标ifdist25:self。centerpoints〔id〕(cx,cy)print(self。centerpoints)objectsbbsids。append(〔x,y,w,h,id〕)sameobjectdetectedTruebreak检测到新对象,我们将ID分配给该对象ifsameobjectdetectedisFalse:self。centerpoints〔self。idcount〕(cx,cy)objectsbbsids。append(〔x,y,w,h,self。idcount〕)self。idcount1按中心点清理字典以删除不再使用的IDSnewcenterpoints{}forobjbbidinobjectsbbsids:,,,,objectidobjbbidcenterself。centerpoints〔objectid〕newcenterpoints〔objectid〕center更新字典self。centerpointsnewcenterpoints。copy()returnobjectsbbsids
  main。pyimportcv2fromtrackerimport创建跟踪器对象trackerEuclideanDistTracker()capcv2。VideoCapture(highway。mp4)来自稳定相机的物体检测objectdetectorcv2。createBackgroundSubtractorMOG2(history100,varThreshold40)whileTrue:ret,framecap。read()height,width,frame。shape提取感兴趣区域roiframe〔340:720,500:800〕1。物体检测maskobjectdetector。apply(roi),maskcv2。threshold(mask,254,255,cv2。THRESHBINARY)contours,cv2。findContours(mask,cv2。RETRTREE,cv2。CHAINAPPROXSIMPLE)detections〔〕forcntincontours:计算面积并去除小元素areacv2。contourArea(cnt)ifarea100:cv2。drawContours(roi,〔cnt〕,1,(0,255,0),2)x,y,w,hcv2。boundingRect(cnt)detections。append(〔x,y,w,h〕)2。对象追踪boxesidstracker。update(detections)forboxidinboxesids:x,y,w,h,idboxidcv2。putText(roi,str(id),(x,y15),cv2。FONTHERSHEYPLAIN,2,(255,0,0),2)cv2。rectangle(roi,(x,y),(xw,yh),(0,255,0),3)cv2。imshow(roi,roi)cv2。imshow(Frame,frame)cv2。imshow(Mask,mask)keycv2。waitKey(30)ifkey27:breakcap。release()cv2。destroyAllWindows()
  结论
  从视频中也可以看到,我们已经获得了我们在本教程开始时设置的结果。
  但是,您必须将其视为练习或起点,因为关于这个主题有很多话要说,而本教程的目的只是让您了解对象跟踪的原理。
  如果你想将ObjectTracking集成到你的项目中,你应该使用更可靠和先进的对象检测方法,以及跟踪方法。
  完整代码地址:私信333直接获取或者链接

维也纳旅记国家歌剧院我们的维也纳旅行的第二个整天,这天特别忙,早起去了冬宫美泉宫,又去了夏宫霍夫堡皇宫,以及边上的茜茜公主博物馆,皇家家具展。吃过一次中式晚餐后,就前往维也纳国家歌剧院,去观看我们……第232篇超仙女森系可盐可甜,小个子温柔风一字肩连衣裙子大家好,我是魅力女人速成班,一个喜欢分享时尚穿搭经验的博主。一字领连衣裙耐看又好穿,性感与优雅都兼得,你不试试吗?无论你是想和男神约会,还是通勤穿搭,那都能够让你的高级感一穿就……NBA高管暗示,浓眉愿回家乡打球,看了交易方案真替湖人感到惋在NBA交易截止日之前,湖人并没用启动交易按钮,来为浓眉缺阵的球队补充新援。但本赛季结束后,湖人肯定会开启交易的大门,其中呼声最高的便是下赛季年薪达到4710万美元的威少。……建构人工智能国际关系研究的中国视角历史考察与议程设置内容摘要随着数字时代的到来,围绕数字技术相关议题展开的国际关系研究已经逐渐形成了具有成长性特征的新研究方向,人工智能国际关系研究就是该研究的核心议题之一。中国国际关系研究参与人……中美6G差距到底有多大,为何美国急忙布局6G?西方这下真急了自从5G问世,我国在基建通讯领域建立了绝对的优势,华为在提出5G时许多西方国家表示不信,直到5G真正应用人们生活中后,西方国家开始慌了,甚至一度称华为研发的5G会侵害网络安全,……这就是浙江速度!赞!这就是浙江速度!台州速度!高速上突发爆胎,一群人惊魂未定,不到几分钟警察叔叔就来救援了!近日,驴友王阿姨将随手拍摄的一条短视频发到了自己的社交平台,记录下了自己和驴友们在……老人机用不了微信怎么办?这三款手机帮你搞定头条创作挑战赛目前,老人使用的手机主要面临以下两个问题,一是2G网络下线,不支持4G的老人机集体报废。二是老人机用不了微信,没办法体验视频通话,也扫不了健康码。为了解决这……芯片人才被数倍高薪疯抢,从电芯片到光芯片的中国机会有多大?《中国经济周刊》记者孙冰北京报道党的十八大以来这十年,是我国科技进步最大、科技实力提高最快的十年,我国科技事业发生了历史性、整体性、格局性变化,成功跨入创新型国家行列,全……荣耀X40GT正式发布搭载骁龙888,144Hz高刷电竞屏,荣耀手机在今晚的新品发布会上正式发布了主打游戏的千元级性价比新品荣耀X40GT,搭载骁龙888处理器,售价1999元起,号称实力霸屏,满帧战神。外观细节荣耀X40G……大军带你了解摄影器材摄影悍将尼康以下摘自搜狗百科尼康(尼康株式会社Nikon),相机制造企业,1917年7月成立,总部位于日本东京。主要业务范围涵盖数码、光学和影像产品等领域。1917年成立日本光……血脂高的朋友,教你一个生活小妙招血脂高的朋友,教你一个生活小妙招血脂高怎么办?今天教你个小妙招,早起吃一个苹果。根据相关文献指出,1个苹果中含有类黄酮约30毫克以上,苹果中含有15的碳水化合物及果胶,维……人生路,自己走人生路上,有人在奔跑,有人在睡觉,有人在感恩有人在埋怨,有目标的睡不着无目标的睡不醒。人生路,自己走。只睡觉不奔跑,到头来,人生告味只有自己吞。想要与众不同,却总是隨遇而……
2021年授勋,中央特许将一名92岁老人抬入人民大会堂,他是2021年6月29日,我国在人民大会堂举行隆重的授勋仪式。在仪式正式开始之前,有这样一幕吸引了大家的视线一位身着军装、坐在轮椅上的老人被身边的两名年轻人一起抬了起来,一步一步地……保罗追魂三分破纪录,单人击垮湖人引领大逆转,20000100北京时间10月23日,NBA迎来巅峰对话,洛杉矶湖人对阵菲尼克斯太阳,而本场比赛对于太阳队的核心后卫保罗来说,这是他迎来里程碑的最重要日子。赛前保罗就已经确定了,将会在这……21分大胜!勇士轻取雷霆,库里三节20分创纪录,追梦格林准三北京时间10月31日,NBA常规赛结束了一场焦点战,勇士主场10382击败雷霆,避免连败。这场比赛勇士在库里、追梦格林和维金斯的带领下表现强势,没有给对手太多的机会,轻松拿下胜……一天产生两大纪录!哈登和保罗谁的纪录更难?12月1日,5场比赛过后产生了两项纪录,首先,哈登职业生涯三分球命中数突破了2500个,同时他成为了史上第四个解锁此成就球员,不仅如此,篮网还险胜了尼克斯。其次,太阳战胜了勇士……C罗头号死敌!3年8次怒怼只有一个罗纳尔多,你永远成不了梅西在2021年金球奖颁奖前后,C罗三次做出了略显失态的举动。葡萄牙人不仅公开回击《法国足球》主编费雷,还点赞了球迷极具争议的言论。不仅如此,他还给批评自己的卡萨诺发去了言辞激烈的……广东男篮险些爆发冲突!苏伟犯规后站在高登身上挑衅,互喷垃圾话北京时间1月18日,CBA常规赛继续进行,广东男篮以108104逆转险胜福建男篮,终结了两连败。最近的三场比赛,广东男篮因为球员在场上动作幅度大,还有一些违反体育精神的动作,将……王者荣耀铠皇KPL赛场大放异彩,你真的了解格挡效果的威力吗?2021年KPL季后赛已经进入白热化阶段,铠时隔一年重返KPL赛场成为了近期一大焦点,并且连续三场比赛都有职业选手使用。铠作为打野在灵活性上不如版本其他几位主流刺客,三技……穿靴子别总配小脚裤,现在流行配松松裤,遮肉显瘦明星都上头如果要拎出一款百搭又实用的鞋子来说,那么靴子一定是榜上有名的。这种鞋子不仅一年四季都可以通用,而且和不同的单品搭配就可以塑造出各种不同的风格。特别是对于冬天怕冷的女生来说,这种……詹姆斯韦伯太空望远镜抵达目的地,距离地球约160万公里科幻网1月25日讯(朱曦薇)据外媒报道,NASA詹姆斯韦伯太空望远镜使用其机载推进器超过5分钟(297秒),对望远镜的轨道进行了发射后的最后一次航线修正。这次中途修正使韦伯望远……大部分肝癌发现即晚期!这些生活习惯你一定要注意小圈分诊台肝胆胰外科马涛浙江大学医学院附属第一医院肝胆胰外科副主任医师问哪些行为会伤肝?1、喝酒过多会伤肝酒精也就是乙醇,人在喝……最后补强?湖人火箭曝4换1地震交易,詹皇联手三分王重返夺冠近日,据《洛杉矶时报》记者DanWoike和BradTurner联合报道,据熟知情况的消息人士透露,湖人正在交易讨论中兜售后卫塔伦霍顿塔克。塔克目前拥有3年3078万美元的合同……Smlz诉苦无缘春季赛想不到我夏季赛的表现还会被不断拉扯英雄联盟职业赛场上许多意难平,许多拥有实力的选手却成绩惨淡,比如Smlz!Smlz在巅峰时期甚至能够叫板Uzi,但遗憾的是征战多年无一冠军,今年春季赛Smlz更是因为身体问题暂……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网