最近做项目需要用到yolo,参考了网上一些代码和文章,记录一下对yolo的理解。

yolo核心思想:

将整张图作为网络的输入,单个神经网络将图像分割成区域。并且,这个神经网络可以预测每个区域的边界框,以及用该边界框分割区域的概率。这些边界框由预测的概率加权。

优势:

  1. 它在测试时查看整个图像,因此它的预测由图像中的全局信息提供。在这里插入代码片
  2. 它可以通过单一网络进行预测,而不像R-CNN这样的系统需要数千张图像,这使得它运行速度非常快。

yolo代码理解:

在对yolo有了初步的了解之后,我在github上找到了一份yolov3的代码,通过代码理解yolo的执行过程。(代码来自GitHub:https://github.com/xiaochus/YOLOv3)

  • 首先,argparse这个模块包的意义需要了解一下,详情见注释。
import argparse #Argparse的作用就是为py文件封装好可以选择的参数,使他们更加灵活,丰富。即导入一个模块
parser = argparse.ArgumentParser( description='Yet Another Darknet To Keras Converter.') #parser = argparse.ArgumentParser()的目的是创建一个解析对象
parser.add_argument('config_path', help='Path to Darknet cfg file.') #然向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项

 _main(parser.parse_args()) #最后调用parse_args()方法进行解析,解析成功之后即可使用
  • 未完待续。。。

yolo代码执行过程中出现配置环境问题:

主要是之前执行代码时,一直出现“ImportError: Failed to import pydot. You must install pydot and graphviz for pydotprint to work.”这样的错误。对于windows系统+Python3.6+anaconda3的环境,解决方法大致如下:

  1. pip install graphviz,先下载graphviz
  2. pip install pydot_ng==2.0.0,下载pydot_ng,我的是2.0.0版本,亲测可用。(如果是Python 2,需要下载的是pydot)
  3. 在这个网址(http://www.graphviz.org/download/ )下载相应graphviz的安装包,即使用pip下载了,也一定要在这个网址再下载一遍!!!经过实验,还是下载msi版本吧,zip版本并没什么用。然后执行msi,我是创建了一个新的文件夹“graphviz-2.38”,然后把执行msi后的文件安装到了这个文件夹中。基本目录如下图所示。
    Yolo学习笔记
  4. 把bin文件夹环境添加到系统的环境变量中。我的是“F:\ana\Lib\site-packages\graphviz-2.38\bin”。
  5. 进行最后测试。

如果是Python 3,执行以下代码:

import pydot_ng as pydot1

print(pydot1.find_graphviz())

如果是Python 2,执行以下代码:

import pydot 

print pydot.find_graphviz()
  1. 如果最终显示“{‘dot’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\dot.exe’, ‘twopi’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\twopi.exe’, ‘neato’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\neato.exe’, ‘circo’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\circo.exe’, ‘fdp’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\fdp.exe’, ‘sfdp’: ‘F:\ana\Lib\site-packages\graphviz-2.38\bin\sfdp.exe’}
    ”,那说明编译成功。yolo代码基本可以执行了。

相关文章: