Opencv报错003:AttributeError: module ‘cv2‘ has no attribute ‘TrackerBoosting_create‘

单目标跟踪错误

错误描述:在利用opencv库做目标跟踪时,报错如下:

AttributeError: module 'cv2' has no attribute 'TrackerBoosting_create'
# 或者
AttributeError: module 'cv2' has no attribute 'TrackerTLD_create'
# 或者
AttributeError: module 'cv2' has no attribute 'TrackerMedianFlow_create'
# 或者
AttributeError: module 'cv2' has no attribute 'TrackerMOSSE_create'

报错原因:opencv版本包括4.5.1以上,都不支持这些函数;网上其它解决方法多数提出安装 ‘opencv-contrib-python’,但是个人试过无法解决该问题;

解决方法:通过cv2.legacy来调用这些函数,比如 ‘cv2.TrackerBoosting_create’ 改成 ‘cv2.legacy.TrackerBoosting_create’;其它也类似改动即可!

原始代码:

OPENCV_OBJECT_TRACKERS = {
	"csrt": cv2.TrackerCSRT_create,
	"kcf": cv2.TrackerKCF_create,
	"boosting": cv2.TrackerBoosting_create,
	"mil": cv2.TrackerMIL_create,
	"tld": cv2.TrackerTLD_create,
	"medianflow": cv2.TrackerMedianFlow_create,
	"mosse": cv2.TrackerMOSSE_create
}

改动后代码:

OPENCV_OBJECT_TRACKERS = {
	"csrt": cv2.TrackerCSRT_create,
	"kcf": cv2.TrackerKCF_create,
	"boosting": cv2.legacy.TrackerBoosting_create,
	"mil": cv2.TrackerMIL_create,
	"tld": cv2.legacy.TrackerTLD_create,
	"medianflow": cv2.legacy.TrackerMedianFlow_create,
	"mosse": cv2.legacy.TrackerMOSSE_create
}

另外,还有一种错误,因为opencv中实际提供了8种方法

GOTURN tracker方法无法运行。

这是OpenCV中唯一深度学习为基础的目标检测器。它需要额外的模型才能运行,本文不详细讲解。

多目标错误

解决多目标检测中Expected Ptrcv::legacy::Tracker for argument 'newTracker’问题。
在多目标跟踪中,更换电脑后发现原程序报出问题

 

在opencv4.5.3版本中cv.MultiTracker_create()被取消
解决方法一:降低opencv版本,首先卸载原版本opencv,同时下载opencv-python3.4.3版本以及opencv-contrib-python3.4.3版本即可
解决方法二:将原函数改为cv.legacy.MultiTracker_create()后
出现新的问题

扫描二维码关注公众号,回复: 16437395 查看本文章

 

在后续add添加跟踪目标过程中将cv.MultiTracker_create()全部改为cv.legacy.MultiTracker_create()解决
 

在代码中,多目标跟踪的相当于选定的ROI区域的个数先在代码中给定,然后再一个一个的去添加选用的追踪器类型。

猜你喜欢

转载自blog.csdn.net/weixin_45823221/article/details/128468682