解决yolov3_object_tracking中loop of ufunc does not support argument 0 of type Tensor which has问题

Marmara ·
更新时间:2024-11-10
· 910 次阅读

在使用keras-yolov3 + Kalman-Filter 进行人体多目标追踪(含代码)做实验时遇到问题

TypeError: loop of ufunc does not support argument 0 of type Tensor which has no callable arctan method

报错行

self.u = np.round(np.dot(self.F, self.u)) #或者 self.u = np.round(self.u + np.dot(K, (self.b - np.dot(self.A, self.u))))

断点可以看到传入的参数self.b为Tensor格式,其他都是ndarray。

这是由于我是用了tensorflow下的yolov3,使用了cuda。得到的box等参数为Tensor格式。

因此在计算中心点的函数

calc_center(bboxes, cls_ids, cls_confs, score_limit=0.5)

传递参数时,转换为Array即可:

转换方式为:

直接从 cuda 中取数据,如 var_tensor.cuda().data.cpu().numpy()

在参数转换为列表前转换:

bboxes.append([xyxy[0].cuda().data.cpu().numpy(), xyxy[1].cuda().data.cpu().numpy(), xyxy[2].cuda().data.cpu().numpy(), xyxy[3].cuda().data.cpu().numpy()]) cls_confs.append(conf.cuda().data.cpu().numpy()) cls_ids.append(cls.cuda().data.cpu().numpy()) 北风催呀催 原创文章 6获赞 3访问量 3689 关注 私信 展开阅读全文
作者:北风催呀催



support has type NOT which tensor loop object

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章