Yolo系列框架大合集:闭眼任选不同版本进行目标检测推理(源代码已开源)

本文主要是介绍Yolo系列框架大合集:闭眼任选不同版本进行目标检测推理(源代码已开源),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计算机视觉研究院专栏

作者:Edison_G

目标检测是现在最热门的研究课题,也一直是工业界重点研究的对象,最近几年内,也出现了各种各样的检测框架,所属于YOLO系列是最经典也是目前被大家认可使用的检测框架。但是,该怎么抉择呢?

公众号ID|ComputerVisionGzq

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

最近我们创办了通过视频来详解前研技术,有兴趣的同学可以通过观看视屏了解最新检测框架,如目前发布的视频链接:

  • https://www.bilibili.com/video/BV17b4y1m7xy/

  • https://www.bilibili.com/video/BV1vU4y1j7Ms/

开源代码:https://github.com/DL-Practise/YoloAll

1

前言&背景

目标检测是现在最热门的研究课题,也一直是工业界重点研究的对象,最近几年内,也出现了各种各样的检测框架,所属于YOLO系列是最经典也是目前被大家认可使用的检测框架。不论是PyTorch,还是Tensorflow,又或者是Keras和Caffe,可以说是全平台通用。

在通用目标检测中,从yolov1,v2,v3,v4,v5到最近的yolox,都充分说明了yolo在学术界以及工业界的受欢迎程度。

  • YoloV1论文地址:https://arxiv.org/pdf/1506.02640.pdf

  • YoloV2(Yolo9000)论文地址:https://arxiv.org/pdf/1612.08242.pdf

  • Yolov3论文地址:https://arxiv.org/pdf/1804.02767.pdf

  • Tiny YOLOv3代码地址:https://github.com/yjh0410/yolov2-yolov3_PyTorch

  • Yolov4论文地址:https://arxiv.org/pdf/2004.10934.pdf

  • Yolov5代码地址:https://github.com/ultralytics/yolov5

  • YOLObile论文地址:https://arxiv.org/pdf/2009.05697.pdf

  • YOLOR论文地址:https://arxiv.org/pdf/2105.04206.pdf

除了基线的频繁迭代更新之外,还有很多针对yolo的优化精简版本,如下表所示:

在如此众多的yolo版本中,除了官方的评测数据之外,有没有更加直观的方式来对比各种不同版本的yolo性能呢?

很早之前郑老师就幻想着能有一个集成各种yolo的版本,能够对图片,视频,实时码流进行对比,于是就有了这个YoloAll的想法。希望能在一个software里面对同一张图片,同一段视频,或者同一个camera的码流进行对比分析。

 

2

YoloAll演示

下面是一段YoloAll的演示视频。目前支持yolo_v3, yolo_v5, yolox, yolo_fastest四个版本;并且支持从图片,视频(mp4)以及camera进行推理分析。

 

3

结构介绍

YoloAll使用pyqt设计,整体工程结构如下图所示,其中model_zoo下面放置了所有支持的yolo版本,包括里面的各种小版本。

目前支持4个版本的yolo,并且提供了简单的扩展方法,可以把你喜欢的yolo扩展进去。详情见下章节的“扩展模型”。

  • Yolov3:https://github.com/eriklindernoren/PyTorch-YOLOv3

  • Yolov5:https://github.com/ultralytics/yolov5

  • Yolox:https://github.com/Megvii-BaseDetection/YOLOX

  • Yolo-fastest:https://github.com/dog-qiuqiu/Yolo-FastestV2

感谢以上开源项目以及作者,感谢带来了这么好的yolo项目。

 

4

使用教程

  • 下载源码

git clone https://github.com/DL-Practise/YoloAll
  • 安装依赖

下载的yolo版本全部放在model_zoo目录下面,进入到model_zoo中的各个yolo版本中,执行:

pip install -r requirements.txt
  • 下载预训练模型

当前的YoloAll对于每个yolo版本已经内置了一个最小模型,如下图所示。

如果还想测试其他较大模型,如yolov5_l、yolox_l等,可以从如下链接下载预训练模型,并放置在对应的目录下面:

Yolov3:

  • https://pjreddie.com/media/files/yolov3.weights

下载完毕之后,将模型放在model_zoo/yolov3下面即可

Yolov5:

  • https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

  • https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5m.pt

  • https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5l.pt

  • https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5x.pt

下载完毕之后,将模型放在model_zoo/yolov5下面即可

Yolox:

  • https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth

  • https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_m.pth

  • https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_l.pth

  • https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_x.pth

下载完毕之后,将模型放在model_zoo/yolox下面即可

此时,重新打开界面,能够显示出所有的yolo版本:

  • 扩展模型

YoloAll提供了非常方便的接口来集成自己的yolo版本。将自己的yolo版本放置在model_zoo中。并提供一个api.py的模块,里面实现如下方法:

#获取支持的子类型接口。例如yolov5中支持yolov5_s;yolov5_m; yolov5_l等
def get_support_models()#创建模型。根据模型的子类型名称,以及设备类型创建模型
def create_model(model_name='yolov5_s', dev='cpu')#进行一次推理,传入的img_array为opencv读取的图片
def inference(img_array)

具体可以参考model_zoo下面的YoloV5/api.py, YoloX/api.py等。

© THE END 

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

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

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

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

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

 往期推荐 

????

  • Yolo轻量级网络,超轻算法在各硬件可实现工业级检测效果(附源代码)

  • 不再只有Yolo,现在轻量级检测网络层出不穷(框架解析及部署实践)

  • ICCV2021:阿里达摩院将Transformer应用于目标重识别,效果显著(附源代码)

  • 人脸识别精度提升 | 基于Transformer的人脸识别(附源码)

  • CVPR21目标检测新框架:不再是YOLO,而是只需要一层特征(干货满满,建议收藏)

  • ICCV2021最佳检测之一:视频详细讲解框架及实验分析

  • 深度学习模型部署:落实产品部署前至关重要的一件事!

  • Yolo利息的王者:高效且更精确的目标检测框架(附源代码)

  • 腾讯优图出品:P2P网络的人群检测与计数

这篇关于Yolo系列框架大合集:闭眼任选不同版本进行目标检测推理(源代码已开源)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349398

相关文章

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi