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. iCMSv7.0.15后台database.admincp文件仍存在SQL注入漏洞

    闲着无聊,国庆时间没事做,又在Q群看到这种公告,只好下个icms慢慢玩.(PS:医院和学校居然都关网站了) 无奈自己太菜,审不出问题.只好上网百度icms之前的漏洞.然后居然成功在iCMSv7.0.1 ...

  2. 基于MSP430G2231实现多路数据采集器

    基于MSP430G2231实现多路数据采集器 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电 ...

  3. QT信号槽连接

    一:信号槽是什么? Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就 ...

  4. 【leetcode算法-简单】53. 最大子序和

    [题目描述] 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:  ...

  5. javaIO -- File源码

    一.简介 文件和目录路径名的抽象表示. 用户界面和操作系统使用依赖于系统的路径名字符串命名文件和目录. 这个类提供了一个抽象的,独立于系统的层次化路径名的视图. 二.代码 (一).属性详情 //平台的 ...

  6. 如何将Linux的工程原封不动地移植到Windows上面

    习惯在Linux下进行开发.但是由于工作需要,不得不与其他使用Windows的项目组同事对接,同事要求我给出可用的程序,而我只有基于makefile的传统工程. 改动到VS工程上发现一部分头文件在Wi ...

  7. MogileFS表说明

    MogileFS大致的表说明如下 checksum:用来存放文件的校验和class:文件分类定义device:主机上的可用设备定义,包括设备可用空间,使用的权重等信息domain:域定义信息file: ...

  8. PAT-1003 Emergency (25 分) 最短路最大点权+求相同cost最短路的数量

    As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...

  9. Java Fibonacci 斐波那契亚

    Java Fibonacci 斐波那契亚 /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternat ...

  10. C# 关于爬取网站数据遇到csrf-token的分析与解决

    需求 某航空公司物流单信息查询,是一个post请求.通过后台模拟POST HTTP请求发现无法获取页面数据,通过查看航空公司网站后,发现网站使用避免CSRF攻击机制,直接发挥40X错误. 关于CSRF ...