目标检测—基于Yolov3的目标检测项目实战(学习笔记)

最近在学习tensorflow,尝试运行学习了github上基于yolov3的一个目标检测项目,此算法可对视频、图片、摄像头实时进行检测,本文主要讲述了,在windows电脑上,复现这一目标检测项目的详细步骤

模型检测效果如下:
1.视频检测输出结果截图

2.图片检测输出结果
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第1张图片
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第2张图片

本文主要分为以下几个部分:

    • 一、文件下载与准备
    • 二、将tensorflow导入pycharm
    • 三、应用权重文件
    • 四、目标识别

复现具体步骤如下:

一、文件下载与准备

1.电脑上已安装anaconda,pycharm
此项目基于tensorflow2.0以上版本,以及opencv-python等库
搭建环境可参考此篇文章
tensorflow安装步骤(GPU版本,Anaconda环境下,Windows10)

2.环境搭建完成后,首先将项目从github下载zip,然后解压到电脑上,如下图所示:
源代码地址:https://github.com/zzh8829/yolov3-tf2
Git加速地址:https://gitcode.net/mirrors/zzh8829/yolov3-tf2?utm_source=csdn_github_accelerator
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第3张图片
3.右键点击解压后的文件夹,并点击Open Folder as PyCharm Project
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第4张图片
打开后界面如下图所示:
我们可以在readme中看到运行程序需要yolov的权重文件(红框所示)
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第5张图片

4.yolo官网上给我们提供了已经训练好的weight权重文件,我们可以直接下载到本地(点击右侧橙色的weights即可下载),在这里本文选择下载YOLOv3-608YOLOv3-tiny,并将其放在yolov3-tf2-master文件夹下的data文件夹中
yolov官网地址
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第6张图片
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第7张图片

二、将tensorflow导入pycharm

在前面我们已经通过这篇文章tensorflow安装步骤(GPU版本,Anaconda环境下,Windows10)安装了tensorflow
1.在pycharm中选择文件→设置
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第8张图片
2.选择Project Interpreter,并选择Add
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第9张图片
3.依次选择Conda Environment,Existing environment和右边的目录
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第10张图片
4.找到创建好的tensorflow-gpu环境中的python.exe并选中,点击确定
(在anaconda安装目录下的envs文件夹中是创建的环境文件夹,注意不要选择ananconda目录下的python.exe)
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第11张图片
5.点击确定
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第12张图片
6.选择我们刚刚导入的tensorflow-gpu环境下的编译器,并点击应用,确定
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第13张图片
这样我们就成功向pycharm导入了tensorflow

三、应用权重文件

1.打开terminal
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第14张图片
2.一般在我们选择好Project Interpreter再打开terminal,就已经进入到了当前环境中去,如果左边括号内不是我们新建的环境,输入下面的命令行进入到tensorflow-gpu环境中去

conda activate tensorflow-gpu

目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第15张图片
3.yolov3.weights和yolov3-tiny.weights都是yolov官方给出的预先训练好的权重文件。
yolov3.weights是默认的权重,支持识别目标的类别更多更精准。
yolov3-tiny.weights是轻量化的权重文件,精度及范围相对于yolov3.weights较低,但对设备要求较低,响应的速度更快
输入下面的命令,将yolov3.weights权重文件应用到工程

python convert.py --weights ./data/yolov3.weights --output ./checkpoints/yolov3.tf

或者将yolov3-tiny.weights应用到工程中

python convert.py --weights ./data/yolov3-tiny.weights --output ./checkpoints/yolov3-tiny.tf --tiny

如下图所示:
在这里插入图片描述

terminal中显示weights saved说明已经成功应用到工程中,同时在左边checkpoints目录下会新添加三个文件(红框所示)
目标检测—基于Yolov3的目标检测项目实战(学习笔记)_第16张图片

四、目标识别

在terminal运行Detection的命令行即可运行

# yolov3 检测图片的对象
python detect.py --image ./data/street.jpg
 
# yolov3-tiny
python detect.py --weights ./checkpoints/yolov3-tiny.tf --tiny --image ./data/street.jpg
 
# webcam  摄像头实时检测对象
python detect_video.py --video 0
 
# video file   检测视频文件的对象
python detect_video.py --video path_to_file.mp4 --weights ./checkpoints/yolov3-tiny.tf --tiny
 
# video file with output
python detect_video.py --video path_to_file.mp4 --output ./output.avi

例如我们运行下面的命令行:

python detect.py --image ./data/street.jpg

原图片名称为street,运行后输出在左边目录下,想要识别其他图片,将新图片放在data文件夹下,命令行改名字即可

你可能感兴趣的:(目标检测,学习,tensorflow)