zoukankan      html  css  js  c++  java
  • 痛并快乐的YOLO初体验

    1、前言

      最近因为需要研究视频的物体识别和行为识别,上网了解了一下,YOLO是目前实时视频物体识别的应用最广泛的算法。

      因此,作为小白的我,也准备体验一下YOLO算法的效果。

      先上网了解了一下YOLO算法的背景资料,有V1,V2,V3,V4四个版本,其中V4版本虽然创新不多,但对工业应用很有价值,引用网上的总结:速度差不多的精度碾压,精度差不多的速度碾压!(刚刚看到,V5版本也出来的,这是什么节奏!!!)

      我的想法,V2和V3相对成熟,先体验一下。

      当初想得很简单,按照网上的先行者的网文,依葫芦画瓢,照做一遍。然而,真实过程远非如此简单,中间碰到各种问题,可以说,是一把辛酸泪!

      先将一些容易踩坑之处和经验教训写出来,分享一下。

     

    2、YOLO V2的痛苦体验

      YOLO V2的安装,我参考的是:https://blog.csdn.net/xubuhui/article/details/88877571

    • 准备工作,安装下列环境:

        python 3.5 or 3.6 or 3.7 ;

        Anaconda ;

        Tensorflow(cpu or gpu 均可)

        openCV

    • 下载darkflow代码,并执行安装;

    • 测试体验。

     

      详细过程,我就不展开了,几点经验教训:

      1)关于Python版本,要求3.5 or 3.6 or 3.7。

      这是因为tensorflow算法包的要求。

      踩坑1:一开始,我没有重视,看到Python3的最新版本3.8.3,心想版本高些总会不错吧,安装了,结果后来出现问题。还得重新安装Python 3.7.7。

     

      2)关于Anaconda

      Anaconda是Python环境的包管理工具。

      安装了Anaconda后,创建了适合tensorflow环境,则所有操作都应该在Anaconda环境下执行,用AnaConda Prompt命令行工具,或AnaConda Navigator可视化图形界面工具都可以。但是一定不要用操作系统自带的CMD工具。

      踩坑2:我使用win+R,输入cmd,显示命令行工具。执行下列语句:

    python --version

      显示的python版本号,是之前安装的2.7。

      由于一开始没有理解Anaconda的用法,折腾了好久,包括设置path,调整先后次序,当时版本是可以了,但是后来安装darkflow时又有其它问题,最后还将python 2.7给卸载了。

     

      Anaconda正确的使用姿势

      (1)先创建一个匹配python版本的环境,如tensorflow,使用python 3.7.7。

    conda create -n tensorflow python=3.7.7

      (2)使用前,先激活环境。

    conda activate tensorflow

      (3)可以使用pip,或install,或执行python脚本。

    #执行pip
    pip install cython

    #install
    conda install tensorflow

    #执行python,使用py或python指令,执行python脚本setup.py
    py setup.py build_ext --inplace

      更进一步,可以上网查询AnaConda指令大全。

     

      3)关于网速

      这点特别重要!!!如有可能,最好使用大学VPN来下载。

      踩坑3

      A:安装tensorflow算法包,随机断开,重复多次,一直没成功,隔天正常,才安装成功。

      B:从https://github.com/thtrieu/darkflow下载darkflow的Download zip文件,失败;使用git clone也随机断开。隔天正常,才下载成功。

     

      4)关于安装darkflow

      (1)首先,必须在AnaConda环境下,激活之前创建的tensorflow环境,来执行下列语句:

    python setup.py build_ext --inplace

      踩坑4

      我先前安装引用的网文的做法,在win10的cmd环境下,执行,总是报错:

    ModuleNotFoundError: No module named 'Cython'

      这个折腾了好久。

      (2)其次,需要VS2015 C++环境。

      否则提示:

    访问失败:...\Microsoft Visual Studio 14.0\VC\PlatformSDK\lib

      由于我好久没用VC了,之前只装了C#,补充安装,看着处于卡死状态,不放心,索性卸载重装了一次。结果,也许是网速问题,奇慢无比,重装VS2015,花了10几个小时。彻底无语!

     

      5)关于安装tensorflow算法包的版本

      好不容易通过darkflow的安装,生成了cy_yolo2_findboxes.cp37-win_amd64.pyd等几个文件,在测试体验时,又出问题。

      由于我之前安装的tensorflow算法包的版本是2.1.0,而darkflow要求的tensorflow 版本是1.4,于是还是不成。

     

      想想,yolo v2版本反正不如v3,不如直接搞v3吧。最终,yolo v2没有体验成功,放弃了。

     

    3、YOLO V3的体验

      关于YOLO V3的官网:https://pjreddie.com/darknet/yolo/

      V3版本最终成功体验了,中间也出现了一些问题,需要注意的地方:

      1)代码下载

      不能使用:git clone https://github.com/pjreddie/darknet,这会在后面导致下列问题:

    couldn’t open file: data/coco.names

      正确做法,直接输入https://github.com/pjreddie/darknet网址,download zip文件。网上说这是因为Windows系统和Linux系统编码的不同可能会导致一些错误。

      2)make需要安装gcc环境

      安装cygwin时,必须勾选:make和g++。(如果没有,则需要补充安装,默认是skip,即不安装)。

      否则,make时,提示make指令错误,或gcc错误。

      make成功后,生成了darknet.exe文件。

      3)图片的检测命令:

      下面例子中,yolov3.weights到yolo官网下载,我用的是416*416,test.jpg是网上搞得图片。

    darknet.exe detect cfg/yolov3.cfg yolov3.weights test.jpg

      成功,执行后,生成一个predictions.jpg文件。

           这样初步体验OK了,也可以用视频文件。

     

     

  • 相关阅读:
    【2014 Multi-University Training Contest 3 1002】/【HDU 4888】 Redraw Beautiful Drawings
    8 shell命令之find
    [网络]_[0基础]_[使用putty备份远程数据]
    Cstyle的UEFI导读:第20.0篇 IGD OpRegion interface && IGD OpRegion PROTOCOL
    Mac下使用MySQL
    Qt中截图功能的实现
    gdb经常使用命令总结
    Graphical Shell with WebShell
    SSH WebShell: SSH在线WEB管理器安装教程
    python—webshell_醉清风xf_新浪博客
  • 原文地址:https://www.cnblogs.com/alabo1999/p/13113411.html
Copyright © 2011-2022 走看看