zoukankan      html  css  js  c++  java
  • YOLO---多个版本的简单认识

     

    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$
    (1)测试一张图片---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
    
    (2)测试本地视频---demo
    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights wp_video/person002.mp4
    
    (3)测试usb视频---
    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights
    
    (4)测试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 2 #CPU  enter
    Enter Image Path:
    
    ./darknet detect cfg/yolov3.cfg weights/yolov3.weights -i 0 #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

     

     

  • 相关阅读:
    java 类加载与初始化
    字符串匹配
    二分查找
    一般css样式开头公共部分
    js或jquery实现图片轮播
    w3chtml页面和css书写规范
    前端学习网站
    相关学习网站
    char对比varchar
    用抽象类或者接口?
  • 原文地址:https://www.cnblogs.com/carle-09/p/11326272.html
Copyright © 2011-2022 走看看