工具安装
github.com
按照他markdown安装就行,如果conda环境装不了就手动一个一个装。
使用方法
github上也有使用方法,可以先看一下github上的,然后下面是我选择的一种方法。因为github没有给具体的转换脚本,所以后续可以用我这种方法。
第一个主要步骤是选择GT和img
我这里用的xml格式的标注文件,我试过了用yolo也可以。最后点一下左下角那个位置的GT评估就可以知道这一步操作对不对了,如果对的会出来一个统计label的窗口。
第二步是选择对应的推理结果:
我这里选择的推理结果格式是:
class_id, confidence,xmin,ymin,xmax,ymax
由于我选的是class_id这类格式,所以还需要一个映射class和class_id的文件,就是跟yolo格式用的那个文件一样就行了。
下面是我用trt模型推理生成推理结果的脚本:
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--image_path', default='/root/smh/trt_val/images', help='image file path',
required=False)
args = parser.parse_args()
Yolov5 = Yolov5TRT(r'/root/smh/steak/script/steak_v1.0.3_20221205_fp16.trt', 13)
class_map = ['rdish', 'sdish', 'rsteak', 'steak','broccoli', 'potato', 'tomato', 'corn','sauce', 'logo','cut', 'iron', 'block']
img_list = glob.glob(os.path.join(args.image_path, '*.jpg'))
for img_path in img_list:
content = []
# out_path = img_path.split('/')[-1]
img_name = img_path.split('/')[-1]
t1 = time.time()
img = cv2.imread(img_path)
boxes, confs, classes = Yolov5.detect(img)
for b, c, cls in zip (boxes, confs, classes):
r = "%s %.2f %d %d %d %d\n" % (int(cls), np.float(c[0]), b[0], b[1], b[2], b[3])
content.append(r)
# print(boxes, confs, classes)
# draw_results(img, boxes, confs, classes, out_path)
t2 = time.time()
print("Inference time: ", t2 - t1)
with open(os.path.join('/root/smh/trt_val/det_labels', img_name.replace('.jpg', '.txt')), 'w') as f:
# for c in content:
# f.writelines(c+'\n')
f.writelines(content)
同样最后可以点一下左下角评估一下推理的结果:
第三步就是输出精度结果了
这里就是选择一下你输出的文件夹,其余的一些精度指标可以自己探索一下了,如果成功输出,文件夹会多出很多统计精度的图片。