使用transformer的YOLOv7及TensorRT部署

简介: 使用transformer的YOLOv7及TensorRT部署

最近在github上看到一个博主开源的YOLOv7仓库都惊呆了,YOLOv6都还没出来怎么就到YOLOv7了稍微看了下,原来作者是基于这两年来很火的transformer做的检测和分割模型,测试的效果都非常棒,比YOLOv5效果好很多。由此可见,基于Transformer based的检测模型才是未来。你会发现它学到的东西非常合理,比从一大堆boudingbox里面选择概率的范式要好一点。话不多说,先上代码链接:

https://github.com/jinfagang/yolov

1ca26529931c44238bc248a5627b7c3a.png

   开源的YOLOv7功能很强大,支持 YOLO, DETR, AnchorDETR等等。作者声称发现很多开源检测框架,比如YOLOv5、EfficientDetection都有自己的弱点。例如,YOLOv5实际上设计过度,太多混乱的代码。更令人惊讶的是,pytorch中至少有20多个不同版本的YOLOv3-YOLOv4的重新实现,其中99.99%是完全错误的,你既不能训练你的数据集,也不能使其与原paper相比。所以有了作者开源的这个仓库!该repo 支持DETR等模型的ONNX导出,并且可以进行tensorrt推理

 

    该repo提供了以下的工作:

  • YOLOv4 contained with CSP-Darknet53;
  • YOLOv7 arch with resnets backbone;
  • GridMask augmentation from PP-YOLO included;
  • Mosiac transform supported with a custom datasetmapper;
  • YOLOv7 arch Swin-Transformer support (higher accuracy but lower speed);
  • RandomColorDistortion, RandomExpand, RandomCrop, RandomFlip;
  • CIoU loss (DIoU, GIoU) and label smoothing (from YOLOv5 & YOLOv4);
  • YOLOv7 Res2net + FPN supported;
  • Pyramid Vision Transformer v2 (PVTv2) supported
  • YOLOX s,m,l backbone and PAFPN added, we have a new combination of YOLOX backbone and pafpn;
  • YOLOv7 with Res2Net-v1d backbone, we found res2net-v1d have a better accuracy then darknet53;
  • Added PPYOLOv2 PAN neck with SPP and dropblock;
  • YOLOX arch added, now you can train YOLOX model (anchor free yolo) as well;
  • DETR: transformer based detection model and onnx export supported, as well as TensorRT acceleration;
  • AnchorDETR: Faster converge version of detr, now supported!

   仓库提供了快速检测Quick start和train自己数据集的代码及操作流程,也提供了许多预训练模型可供下载,读者可依据自己的需要选择下载对应的检测模型。

6fb819a8118e43ab648a9c38044dd6fd.png

快速运行demo代码


python3 demo.py --config-file configs/wearmask/darknet53.yaml --input ./datasets/wearmask/images/val2017 --opts MODEL.WEIGHTS output/model_0009999.pth

实例分割


python demo.py --config-file configs/coco/sparseinst/sparse_inst_r50vd_giam_aug.yaml --video-input ~/Movies/Videos/86277963_nb2-1-80.flv -c 0.4 --opts MODEL.WEIGHTS weights/sparse_inst_r50vd_giam_aug_8bc5b3.pth

基于detectron2新推出的LazyConfig系统,使用LazyConfig模型运行


python3 demo_lazyconfig.py --config-file configs/new_baselines/panoptic_fpn_regnetx_0.4g.py --opts train.init_checkpoint=output/model_0004999.pth

训练数据集


python train_net.py --config-file configs/coco/darknet53.yaml --num-gpus 1

如果你想训练YOLOX,使用 config file configs/coco/yolox_s.yaml

导出 ONNX && TensorRT && TVM


detr

python export_onnx.py --config-file detr/config/file

SparseInst

python export_onnx.py --config-file configs/coco/sparseinst/sparse_inst_r50_giam_aug.yaml --video-input ~/Videos/a.flv  --opts MODEL.WEIGHTS weights/sparse_inst_r50_giam_aug_2b7d68.pth INPUT.MIN_SIZE_TEST 512

具体的操作流程可以去原仓库看,都有详细的解析!

检测结果


6399be06364b17ad810f6835d47ed45c.png

0f86ed9d6a43e027b70fc68831f72999.png

026dc4f2f51e5ce3be1a6523cd7248eb.png

参考链接


[1]https://manaai.cn/aisolution_detail.html?id=7

[2]https://github.com/jinfagang/yolov7

相关文章
|
5月前
|
监控 计算机视觉 知识图谱
YOLOv10的改进、部署和微调训练总结
YOLOv10在实时目标检测中提升性能与效率,通过无NMS训练解决延迟问题,采用一致的双任务和效率-精度驱动的模型设计。YOLOv10-S比RT-DETR-R18快1.8倍,YOLOv10-B比YOLOv9-C延迟减少46%。新方法包括一致性双标签分配,优化计算冗余和增强模型能力。实验结果显示YOLOv10在AP和延迟上均有显著改善。文章还提供了部署和微调YOLOv10的示例代码。
647 2
|
6月前
|
编解码 缓存 计算机视觉
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-1
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-1
|
6月前
|
算法 PyTorch 计算机视觉
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
改进的yolov5目标检测-yolov5替换骨干网络-yolo剪枝(TensorRT及NCNN部署)-2
|
5月前
|
固态存储
【YOLO系列】YOLOv10模型结构详解与推理部署实现
【YOLO系列】YOLOv10模型结构详解与推理部署实现
859 0
|
6月前
|
机器学习/深度学习 并行计算 PyTorch
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
435 1
|
PyTorch 开发工具 算法框架/工具
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
1375 0
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
|
算法 PyTorch 调度
ResNet 高精度预训练模型在 MMDetection 中的最佳实践
作为最常见的骨干网络,ResNet 在目标检测算法中起到了至关重要的作用。许多目标检测经典算法,如 RetinaNet 、Faster R-CNN 和 Mask R-CNN 等都是以 ResNet 为骨干网络,并在此基础上进行调优。同时,大部分后续改进算法都会以 RetinaNet 、Faster R-CNN 和 Mask R-CNN 为 baseline 进行公平对比。
898 0
ResNet 高精度预训练模型在 MMDetection 中的最佳实践
YOLOV5模型转onnx并推理
YOLOV5模型转onnx并推理
895 1
|
机器学习/深度学习 人工智能 PyTorch
【图像分类】基于OpenVINO实现PyTorch ResNet50图像分类
【图像分类】基于OpenVINO实现PyTorch ResNet50图像分类
305 0
|
Ubuntu TensorFlow 算法框架/工具
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(小数据集)
本例提取了植物幼苗数据集中的部分数据做数据集,数据集共有12种类别,今天我和大家一起实现tensorflow2.X版本图像分类任务,分类的模型使用ResNet50。 通过这篇文章你可以学到: 1、如何加载图片数据,并处理数据。 2、如果将标签转为onehot编码 3、如何使用数据增强。 4、如何使用mixup。 5、如何切分数据集。 6、如何加载预训练模型。
1414 0
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(小数据集)