Git Product home page Git Product logo

yoloall's Introduction

YOLOALL-PyTorch

YOLOALL-PyTorch不仅是YOLO系列算法的目标检测的集合,同样也在以YOLO的**对其他一阶段、二阶段不限于anchor_base和anchor_free方法的改写,旨在能够更快更好的完成检测模型的训练、模型转换及部署到相关平台的一体化流程,该项目有以下特点:

  • 能够快速完成项目中的检测/识别模型的训练及迭代:其中包括数据可视化分析、数据格式转换、不同模型格式的转换、anchor生成、数据增强、模型转换等
  • 快速复现论文中新检测和识别方法或者新的idear:项目中嵌入Timm库、mmdetection目标检测框架一些核心算法进行集成,方便自定义和设计算法
  • 对标工程代码,可以更灵活的设计网络、预处理和后处理
  • 参数更改均在config的yaml文件中,仅仅需要更改该文件的参数即可
  • 数据处理、后处理和测试过程均包含Debug选项,可以实时查看数据增强、候选box与gt的匹配程度及模型在测试过程中的情况

简介

支持算法

目标检测算法(objectdet):
目标检测算法 loss-version 后处理参数字段 anchor设置 model选择(支持自己模型)
yolov3 yolov3 yolov3v5 根据检测头数量设置 torch_base
yolov4 yolov4 yolov4 根据检测头数量设置 torch_base
yolov5 yolov5 yolov3v5 根据检测头数量设置 torch_base
yolov3-mmdet yolo-mmdet yolommdet 根据检测头数量设置 torch_base
yolov3-gaussian yolov3-gaussian yolov3gaussian 根据检测头数量设置 gaussian_yolov3
yolo-multi_head multi_head_enable multi_head 根据multi_head参数设置 torch_base
yolo-poly poly_yolo ——— 一组(单检测头) poly_test
yolof yolof-mmdet yolofmmdet 一组(单检测头) poly_test
yoloatss yolo-atss-mmdet yoloatss 根据检测头数量设置 yolo_asff
yolox yolox-mmdet yoloxmmdet [[8,8], [16,16], [32, 32]] torch_base
yolo-transformer transformer_enabl transformer_cfg 根据检测头数量设置 swin
yolo-roi【二阶段】 two_stage_enabel two_stage 根据检测头数量设置 torch_base
yolo-fcos yolo-fcos-mmdet yolofcos [[8,8], [16,16], [32, 32]] torch_base
yolo-centernet yolo-center-mmdet yolocenter 不需要 torch_base
yolo-gfocal_v1 yolo-gfl-mmdet yologfl/use_sigmoid [[8,8], [16,16], [32, 32]] torch_base
yolo-gfocal_v2 yolo-gfl-mmdet yologfl/use_sigmoid [[8,8], [16,16], [32, 32]] torch_base
分类算法支持(classify):
  • 支持Timm中集成的所有目标识别算法,只需要在configs/classify/test.yaml 配置文件中更改data_dir训练和测试路径、model 框架支持模型的名称
  • 支持自定义网络,classify/timm/models/torch_models中添加自己的模型,并将模型文件的名字更改至configs/classify/test.yaml中的model名
  • 支持自定义数据形式、支持模型剪枝、蒸馏
蒸馏算法(distiller):
  • 支持离线蒸馏、在线蒸馏

  • 目前只支持一阶段的蒸馏算法

    蒸馏算法 OD算法 蒸馏方式
    FGD yolo-mmdet (anchor_base方法) feature-map
    LD yolo-gfl-mmdet (anchor_free方法) soft-label

支持Backone类型

  • 支持yaml、py、cfg相互转换

数据增强方法:

  • RandomMosaic
  • Mixup
  • CutMix
  • CopyPaste
  • ScaleImage
  • LetterBox
  • HistEqualize
  • RandomCrop
  • RandomMirror
  • RandomHSV
  • RandomBlur(blur、medianblur、bilateralFilter、gaussianblur、motion_blur)
  • RandomNoise(sp_noise、gasuss_noise)
  • RandomLighting(RandomBrightness、RandomGamma、RandomLightingNoise、RandomContrast、RandomSaturation、RandomHue)
  • RandomAffine
  • Perspective
  • ElasticTransform
  • ImageToTensor

模型训练及模型转换

在YOLOALL目录下执行【前提完成对configs文件下训练参数的配置】

python3 train.py #模型训练

python3 pytorch2caffe -t od -c configs/objectdet/test.yaml -w ./run_det/torch_base/ckpt/test.pth #单od模型转caffe,-w参数可选,有训练好的模型可以添加

python3 pytorch2caffe -t od -c configs/objectdet/test.yaml configs/objectdet/test.yaml -w ./run_det/torch_base/ckpt/test.pth ./run_det/torch_base/ckpt/test.pth #多od模型转caffe,配置文件按照空格分开,-w参数可选

python3 pytorch2caffe -t oc -c configs/classify/test.yaml #oc模型转换,仅支持单oc转换

模型转换

  • 支持一阶段和二阶段检测模型转caffemodle、prototxt文件

  • 支持多模型转换为一个caffemodel和prototxt

    模型转换支持的层操作和算子操作:

    layer torch-operation tensor-operation torchvision_operation
    conv2d torch.split view torchvision.roi_pool
    linear torch.cat mean torchvision.roi_align
    relu torch.max add
    prelu torch.div sub
    tanh torch.ones mul
    hardtanh torch.zeros permute
    leaky_relu torch.ones_like contiguous
    sigmoid torch.zeros_like pow
    softmax torch.sigmoid sum
    max_pool2d torch.tanh sqrt
    avg_pool2d unsqueeze
    adaptive_avg_pool2d expand_as
    dropout flatten
    threshold
    batch_norm
    instance_norm
    conv_transpose2d
    interpolate

    pytoch转单个检测caffe模型

    pytoch转多个检测caffe模型

    pytoch转单个识别caffe模型

参考

yoloall's People

Contributors

yuzhengfa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.