AlibabaResearch / efficientteacher

A Supervised and Semi-Supervised Object Detection Library for YOLO Series
GNU General Public License v3.0
831 stars 151 forks source link

该库的detect脚本只适用于et-yolov5的检测吗? #39

Open jo-dean opened 1 year ago

jo-dean commented 1 year ago

原始的yolov5模型还是需要到原始仓库yolov5运行检测吗?

BowieHsu commented 1 year ago

@jo-dean 是的,我们的detect和原始的几乎一致,但是pt里面的模型定义不同,所以您可以用scripts下面的脚本再把模型转出去

xiaohui0225 commented 1 year ago

@jo-dean 是的,我们的detect和原始的几乎一致,但是pt里面的模型定义不同,所以您可以用scripts下面的脚本再把模型转出去

我将efficient.pt转成标准的yolov5.pt,但在使用yolov5官方的detect.py时,出现了以下错误,请问这是为什么呢? image

BowieHsu commented 1 year ago

@xiaohui0225 应该不太可能出现这个问题,您能检查一下推理的时候确定调用的是转换出来的pt吗,这个看起来yolov5还在推efficientteacher的pt

xiaohui0225 commented 1 year ago

@xiaohui0225 应该不太可能出现这个问题,您能检查一下推理的时候确定调用的是转换出来的pt吗,这个看起来yolov5还在推efficientteacher的pt

我是用的代码是:convert_efficient_to_yolov5('../../yolov5_ssod/exp2/weights/best.pt', yolov5_path='../../weights/yolov5l_best.pt', save_path='efficient_to_yolov5l.pt') 其中,yolov5l_best.pt是我自己训练出来的yolov5l网络权重。

jo-dean commented 1 year ago

@xiaohui0225 我试过官方yolov5s转成et-yolov5s,然后再转回来,是可以在yolov5官方正常检测的

luseking commented 1 year ago

我也遇到了这个问题,是因为yolov5-6.0的模型叫class Model,之前叫class DetectionModel,在yolo.py添加一行

DetectionModel = Model 

给Model 类起个 DetectionModel 的别名就好了