YOLO---多个版本的简单认识

YOLOv3 有好几个经典版本了:
一、YOLOv3 (Darknet)官网 @ https://github.com/pjreddie/darknet
二、YOLOv3(darknet优化了)@ https://github.com/AlexeyAB/darknet
三、YOLOv3 with OpenCV官网 @ https://github.com/JackKoLing/opencv_deeplearning_practice/tree/master/pracice3_opencv_yolov3

四、其他github上有tensorflow、caffe、keras、pytorch等版本,略。

引用:
windows版本:请参考 https://github.com/AlexeyAB/darknet
linux版本:请参考 https://pjreddie.com/darknet/yolo

简介
一、YOLOv3 (Darknet)官网 @ https://github.com/pjreddie/darknet
  一开始github上最热的开源项目,在linux系统下做的,现在各个大神改版也有在windows下使用了。
下载并备齐:darknet、选配yolov3.weights + yolov3.cfg、...
依赖环境:C++、OpenCV、python、...
编译情况:下载源文件,需要make进行编译后,才能使用
支持:linux系统(最先支持) + windows + CPU + GPU(可适用于英伟达)
(1)源码的常用执行命令:

u@u1604:~/darknet$
()测试一张图片---detect
./darknet detect cfg/yolov3.cfg weights/yolov3.weights data/person.jpg
./darknet detector test cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights data/person.jpg ()测试本地视频---demo
./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights wp_video/person002.mp4 ()测试usb视频---
./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights ()测试rstp视频---
./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg weights/yolov3.weights rtsp://admin:admin12345@192.168.?.??/H.264/ch1/sub/av_stream -i 0 -thresh 0.25 ./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg weights/yolov3.weights rtsp://admin:admin12345@192.168.?.??/H.264/ch1/sub/av_stream -i 0 -----------to test many pics------------------------
./darknet detect cfg/yolov3.cfg weights/yolov3.weights -i #CPU enter
Enter Image Path: ./darknet detect cfg/yolov3.cfg weights/yolov3.weights -i #GPU enter
Enter Image Path:

(2)自写python接口文件,执行:

python2 xx.py
python3 xx.py

二、YOLOv3(darknet优化了)@ https://github.com/AlexeyAB/darknet
  一开始github在windows系统下做的,现在各个大神改版也有在linux下使用了。
下载并备齐:darknet、选配yolov3.weights + yolov3.cfg、...
依赖环境:C++、OpenCV、python、...
编译情况:下载源文件,需要make进行编译后,才能使用
支持:windows系统(最先支持) + linux  + CPU + GPU(可适用于英伟达)
基本使用命令同《一、YOLOv3 (Darknet)官网》,但部分有少许差别

.  AlexeyAB改进项

    提供window支持

    相较于原版pjreddie版本darknet提升了训练速度

    添加了二值化网络,XNOR(bit) ,速度快,准确率稍低https://github.com/AlexeyAB/darknet/blob/master/cfg/yolov3-tiny_xnor.cfg

    提升7%通过将卷积层和BN层合并为一个(*_*)不太懂。

    多GPU训练提升

    修补了[reorg]层

    添加了mAP, IOU,Precision-Recall计算

    darknet detector map...

    可以在训练过程中画loss图像

    添加了根据自己数据集的anchor生成

    提升视频检测,网络摄像头,opencv相关问题

    提出了一个INT8的网络,提升了检测速度,但是准确率稍有下降

    https://github.com/AlexeyAB/yolo2_light

@  https://www.cnblogs.com/pprp/p/10204480.html#alexeyab%E6%94%B9%E8%BF%9B%E9%A1%B9

三、YOLOv3 with OpenCV官网 @ https://github.com/JackKoLing/opencv_deeplearning_practice/tree/master/pracice3_opencv_yolov3
下载并备齐:yolov3.weights权重文件、yolov3.cfg网络构建文件、coco.names、xxx.jpg、xxx.mp4文件、object_detection_yolo.cpp、object_detection_yolo.py等文件;
依赖环境:C++的编译环境(如G++/VScode)、OpenCV3.4.2+(记住安装目录)
编译情况:下载源文件,无需复杂的编译,直接修改进行应用
支持:windows + linux  + CPU + GPU(只适用于英特尔)
(1)在OpenCV中使用YOLOv3, 可以在windows下+ ubuntu下使用。
(2)windows下,之前做,object_detection_yolo.cpp是在Visual Studio(VS)下编译的。
(3)ubuntu下,这次,object_detection_yolo.cpp是g++编译的。
(3)OpenCV的DNN,GPU仅使用英特尔的GPU进行测试,因此如果没有英特尔GPU,代码会将您切换回CPU。
使用:
(1)object_detection_yolo.cpp,执行:
编译,g++ `pkg-config opencv --cflags` object_detection_yolo.cpp -o object_detection_yolo `pkg-config opencv --libs` -std=c++11
测试,a single image:
    ./object_detection_yolo --image=./data/1.jpg
     a video file:
    ./object_detection_yolo --video=./data/run.mp4

(2)object_detection_yolo.py,执行:
a single image:
    python3 object_detection_yolo.py --image=bird.jpg
a video file:
    python3 object_detection_yolo.py --video=run.mp4

  最后,三者的区别,还没太细细研究。pjreddie/darknet、AlexeyAB/darknet  、YOLOv3 with OpenCV三者的计算效率和准确率,还未做对比。这几天,本来想对比一下运行时间,但没太注意时间函数的放置位置,测试的时间貌似没有可比性。整个工程的运行时间,可能对工程最具时间说服价值,太耗时,以后有机会有需要在细细研究。

  从运行的直观观测上,GPU > CPU,C++ > Python,耗时的具体数值暂不做研究。附上:这几天的测试时间,作对比可能不具有太大的价值;网上网友分享的资源。

  测试环境:ubuntu16.04 + Intel® Core™ i7-8700K CPU @ 3.70GHz × 12  + NVIDIA GTX 2080 TI

YOLO---多个版本的简单认识的更多相关文章

  1. GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo主要记录Glide3.7.0版本的简单运用和实现圆角方案. 效果图 代码分析 Glide的centerCrop()和fit ...

  2. JavaSwing 版本的简单扫雷游戏

    JavaSwing 版本的简单扫雷游戏 一.扫雷游戏的基本规则 1.扫雷游戏分为初级.中级.高级和自定义四个级别. 单击游戏模式可以选择"初级"."中级".&q ...

  3. 比之前那个版本更简单的C语言实现的比较大小

    之前那个是输入一堆数据,找最大那个,这次是更简单的版本,求两个数的最大值. #include "stdafx.h" #include <stdio.h> int Get ...

  4. GlideNewDemo【Glide4.7.1版本的简单使用以及圆角功能】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 简单记录下Glide4.7.1版本的使用和实现圆角方案. 注意:关于详细使用请仔细阅读<官方指南>. 效果图 使用步骤 ...

  5. webpack 4.0 版本的简单使用

    webpack 4.0 学习指南 最近前端又要变天了,vue作者推出了vue-cli 3版本,并且里面使用了webpack 4. 但是webpack 3 和webpack 4 二者的使用方式完全不一样 ...

  6. kubernetes版本apiversion简单说明

    在使用yaml文件部署Deployment项目时,出现过 error: error validating "xx-Deployment.yaml": error validatin ...

  7. 【ADO.NET】2、各种版本的 简单登录验证

    一.简单登录验证(防SQL注入) GetString(序号) 返回某一列的值(当用户不记得列名序号时,可使用GetOrdinal()获取到序号)GetInt32(序号) 针对的是 int 字段,返回i ...

  8. python版本的简单贪吃蛇

    先看看效果,白色的条是蛇(简单勿怪,有研究的同学请告知做的美观点),做了一个笑脸是糖果,背景弄了一个图, 代码也是从其他人那边弄来的,改了一部分直接可以在window上直接运行 代码如下: #codi ...

  9. SecureCRT Win免安装版本,简单好用

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. 这个简单好用,程序员必备. 下载地址:SecureCRT. ...

随机推荐

  1. [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!

    最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统免责声明一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任.二.本文档只是个人使用本文 ...

  2. .git泄露及利用php弱类型松散比较构造json的payload

    一道ctf题,文章搬运到了自己的网站上: http://101.132.137.140:202/archives/2019-11-16

  3. 20190722java学习习惯小结

    1.周一——周六: 学习: 周日: 巩固练习测试. 2.java 大数据. python 人工智能 .. 3.写技术博客! 4.python应用: 人工智能.web开发.自动化运维.数据分析.爬虫.游 ...

  4. Object Detection in 20 Years: A Survey【持续更新中】

    原文:https://www.cnblogs.com/zhaojunjie/p/10886099.html 论文链接:https://arxiv.org/pdf/1905.05055.pdf 1. 引 ...

  5. java23种设计模式之八: 工厂方法模式

    定义: 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的“创建与使用相分离”的特点. 我们把被创建的对象称为“产品”,把创建产品的对象称为“工 ...

  6. NationalInstruments project

    //using NationalInstruments.NI4882; //请将项目文件中的"AutoGenerateBindingRedirects"属性设置为true //ht ...

  7. Office 2016、2019 与 Office 365 的区别

    点开观看更清晰:

  8. 基于Task的多线程

    /// <summary> /// 基于Task的多线程 /// </summary> public class Tasks { public static void Task ...

  9. (转)从0移植uboot (一) _配置分析

    ref : https://www.cnblogs.com/xiaojiang1025/p/6106431.html 本人建议的uboot学习路线,先分析原有配置,根据现有的配置修改.增加有关的部分, ...

  10. “Using 声明”在 C# 7.3 中不可用。请使用 8.0 或更高的语言版本。

    Core3.0升级至3.1时候报错:“Using 声明”在 C# 7.3 中不可用.请使用 8.0 或更高的语言版本. 参照微软文档:https://docs.microsoft.com/zh-cn/ ...