ROS-OpenTLD技术文档.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ROS-OpenTLD 技术文档李明龙 2014.11.191、简介TLD算法全称为tracking-learning-detecting算法,旨在实现长期的单目标跟踪,具有实时性和鲁棒性。ROS-OpenTLD是由大牛Ronan Chauvin所编写,创建日期为2012年6月8日,为George Nebehay所编写的C++版本TLD算法实现ROS封装并提供接口(TLD算法的原作者为捷克籍博士Zdenek Kalal,用MATLAB和C编写)。需要补充的是,无论是原作者Zdenek的MATLAB代码,George的C++代码,还是由Ronan所实现的ROS封装,都遵循GPL开源协议,允许复制,保存,修改,重新发布甚至做产品,但是必须附上原作者的名字,具体参考GPL开源协议文档(ROS中使用BSD开源协议,限制更少,比GPL更宽松)。2、实现 2.1 TLD算法思想概述图1 TLD算法总体框架TLD算法的总体实现如图1所示,包括四大模块:跟踪,学习,检测以及集成模块。视频帧输入之后,通过学习模块不断对在线目标模型进行实时更新,同时学习模块也担任着另一个任务,那就是实时更新跟踪模块和检测模块中所需要的一些阈值(阈值初始由yml文件读入,是人为设置的经验参数,后期根据所跟踪目标的不同进行实时的训练,最终收敛。)跟踪模块通过中值流(median flow)跟踪法会预测出一个下一帧的目标位置。检测模块通过级联分类器(cascade classfier,由阈值分类器,随机森林分类器,最近邻分类器三个分类器组成),会检测出一定数量(不一定是一个,可能是多个)的下一帧的目标位置。综合模块就对这两类目标位置进行综合,从而得出一个最合适的目标位置,通过图像框(bounding box)的方式显示出来,并把这个最优图像框反馈给学习模块,来丰富他的训练集。就这样一帧一帧的循环迭代,实现了实时而又鲁棒的单目标跟踪。2.2 ROS中的封装2.2.1消息格式(message format)在阐述封装实现细节之前,首先列举ROS 包所定义的消息格式: 1、BoundingBox,表示图像框boundingbox。Header headerint32 xint32 yint32 widthint32 heightfloat32 confidencex, y, width, height分别表示目标图像框的位置坐标以及宽和高,confidence这个浮点变量表示的是所跟踪到的目标的置信度(与目标模型的符合程度)。 2、Target,表示目标BoundingBox bbsensor_msgs/Image imgtarget格式的message中包含一个BoundingBox类型的变脸bb,同时包含一个img类,img类定义在sensor_msgs包中,ROS用sensor_msgs/Image来传输图像,但是image格式是ROS所能识别和处理的,要让openCV也能识别和处理,必须借助于CvBridge来相互转化(见附录一)。2.2.2参量、发布者和订阅者首先列举作者所定义的一些参量:ros::NodeHandle np(~);np.param(showOutput, showOutput, true);np.param(loadModel, loadModel, false);np.param(autoFaceDetection, autoFaceDetection, false);np.param(exportModelAfterRun, exportModelAfterRun, false);np.param(modelImportFile, modelImportFile, std::string(model));np.param(modelExportFile, modelExportFile, std::string(model));np.param(cascadePath, face_cascade_path, std::string(haarcascade_frontalface_alt.xml));np.param(x, target_bb.x, 100);np.param(y, target_bb.y, 100);np.param(width, target_bb.width, 100);np.param(height, target_bb.height, 100);np.param(correctBB, correctBB, false);作者对于参量的命名十分具体,例如loadModel表示载入模型,在这里不做叙述。下面列举作者所定义的两个发布者和三个订阅者:pub1 = n.advertisetl

文档评论(0)

00625 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档