打假Yolov7的精度,不是所有的论文都是真实可信

关注并星标

从此不迷路

计算机视觉研究院

6516d25aa5265d2698f10f57acb56d00.gif

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

计算机视觉研究院专栏

作者:Edison_G

最近我们分享了Yolov6和Yolov7两个新框架,但是好多同学希望我们真正的对代码进行详细解读,今天“计算机视觉研究院”就先对Yolov7的性能做一次真实实验对比。

之前“计算机视觉研究院”分享了yolo系列的最新两个版本:

Yolov7:最新最快的实时检测框架,最详细分析解释(附源代码)

打假Yolov7的精度,不是所有的论文都是真实可信_第1张图片

打假Yolov7的精度,不是所有的论文都是真实可信_第2张图片

劲爆!YOLOv6又快又准的目标检测框架开源啦(附源代码下载)

打假Yolov7的精度,不是所有的论文都是真实可信_第3张图片

Rep-PAN 结构图

打假Yolov7的精度,不是所有的论文都是真实可信_第4张图片

今天我们基于Yolov7的开源代码,实现了其论文中的一些实验。

在MS COCO的数据集上结果如下:

打假Yolov7的精度,不是所有的论文都是真实可信_第5张图片

首先在coco验证集上,验证官方提供的yolov7.pt,其实用的是L版本(类似YOLOv5-L,YOLOX-L,PPYOLOE-L),结果如下:

Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.51206
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.69730
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.55521
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.35247
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.55937
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.66693
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.38453
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.63765
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.68772
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.53766
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.73549
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.83868

注:以下改动需要bs=1去验证:

python3.7 test.py --data data/coco.yaml --img 640 --batch 1 --conf 0.001 --iou 0.65 --device 0 --weights yolov7.pt --name yolov7_640_val
  • 改数据预处理letterbox的auto=True,因为实际预测都是固定尺寸,也只能到640尺寸

打假Yolov7的精度,不是所有的论文都是真实可信_第6张图片

打假Yolov7的精度,不是所有的论文都是真实可信_第7张图片

通过上面的结果很明显可以看到mAP为50.8,掉了0.4。

  • eval的时候NMS是有trick的,multi_label表示一个框是否可以赋予两个类别,但是我们实际部署的时候就是一个框对应一个类别,所以再把multi_label设为False

打假Yolov7的精度,不是所有的论文都是真实可信_第8张图片

测试结果好像又掉了0.2....

打假Yolov7的精度,不是所有的论文都是真实可信_第9张图片

这种YOLO系列测速都是没有比对nms的耗时的,所以为了精度可以对nms大作文章。进nms前的max_nm设置到了30000,实际部署的时候,进入nms的Tensor如果很大会很耗时,一般都不会设置到这么大,1000足够了,改max_nms=1000。同时还有max_det=300表示每张图最多几个框,真的有必要300这么多吗? cocoapi评测工具虽然是max_det=100,但是改300真的也会涨点。

打假Yolov7的精度,不是所有的论文都是真实可信_第10张图片

max_nms=30000,max_det=300这种操作不仅eval过程变慢,生成json的时候更慢,而且如果是训练早期还没训的很好的时候去eval,肯定会很慢。

为什么边训边eval的时候感觉很快?
原因:边训边eval和单独拿权重去eval,从数据处理到评测工具都走的不是一套逻辑!

再加改max_nms从30000到1000,mAP虽然没掉,但recall下降:

打假Yolov7的精度,不是所有的论文都是真实可信_第11张图片

再加改max_det从300到100,mAP又掉了0.1:

打假Yolov7的精度,不是所有的论文都是真实可信_第12张图片

按照上面的3点操作后,X版本mAP只有52.1了,掉了0.8个点。

python3.7 test.py --data data/coco.yaml --img 640 --batch 1 --conf 0.001 --iou 0.65 --device 3 --weights yolov7x.pt --name yolov7_640_val

outside_default.png

但是实际对比yolov7和yolov6,结果确实会有一些质的提升。

打假Yolov7的精度,不是所有的论文都是真实可信_第13张图片

Yolov7

打假Yolov7的精度,不是所有的论文都是真实可信_第14张图片

Yolov6

打假Yolov7的精度,不是所有的论文都是真实可信_第15张图片

先恭喜2022LPL夏季赛常规赛焦点战,RNG 2-1翻盘击败EDG,拿下LPL德比大战的胜利。

© THE END 

转载请联系本公众号获得授权

3b37f8889a4a90bd11225a8d03596568.gif

计算机视觉研究院学习群等你加入!

我们开创“计算机视觉协会”知识星球两年有余,也得到很多同学的认可,最近我们又开启了知识星球的运营。我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。

打假Yolov7的精度,不是所有的论文都是真实可信_第16张图片

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

VX:2311123606

打假Yolov7的精度,不是所有的论文都是真实可信_第17张图片

往期推荐 

  • Yolov7:最新最快的实时检测框架,最详细分析解释(附源代码)

  • SSD7 | 对嵌入式友好的目标检测网络,产品落地

  • 人脸技术:不清楚人照片修复成高质量高清晰图像框架(附源代码下载)

  • “目标检测”+“视觉理解”实现对输入图像的理解及翻译(附源代码)

  • 目标检测 | 基于统计自适应线性回归的目标尺寸预测

  • 精度提升方法:自适应Tokens的高效视觉Transformer框架(已开源)

  • ONNX 浅析:如何加速深度学习算法工程化?

  • 劲爆!YOLOv6又快又准的目标检测框架开源啦(附源代码下载)

  • FastestDet:比yolov5更快!更强!全新设计的超实时Anchor-free目标检测算法(附源代码下载)

  • 目前精度最高效率最快存储最小的目标检测模型(附源码下载)

你可能感兴趣的:(算法,人工智能,计算机视觉,深度学习,编程语言)