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

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

模型检测效果如下:
1.视频检测输出结果截图
在这里插入图片描述
2.图片检测输出结果
在这里插入图片描述
在这里插入图片描述


复现具体步骤如下:

一、文件下载与准备

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
在这里插入图片描述
3.右键点击解压后的文件夹,并点击Open Folder as PyCharm Project
在这里插入图片描述
打开后界面如下图所示:
我们可以在readme中看到运行程序需要yolov的权重文件(红框所示)
在这里插入图片描述

4.yolo官网上给我们提供了已经训练好的weight权重文件,我们可以直接下载到本地(点击右侧橙色的weights即可下载),在这里本文选择下载YOLOv3-608YOLOv3-tiny,并将其放在yolov3-tf2-master文件夹下的data文件夹中
yolov官网地址
在这里插入图片描述
在这里插入图片描述

二、将tensorflow导入pycharm

在前面我们已经通过这篇文章tensorflow安装步骤(GPU版本,Anaconda环境下,Windows10)安装了tensorflow
1.在pycharm中选择文件→设置
在这里插入图片描述
2.选择Project Interpreter,并选择Add
在这里插入图片描述
3.依次选择Conda Environment,Existing environment和右边的目录
在这里插入图片描述
4.找到创建好的tensorflow-gpu环境中的python.exe并选中,点击确定
(在anaconda安装目录下的envs文件夹中是创建的环境文件夹,注意不要选择ananconda目录下的python.exe)
在这里插入图片描述
5.点击确定
在这里插入图片描述
6.选择我们刚刚导入的tensorflow-gpu环境下的编译器,并点击应用,确定
在这里插入图片描述
这样我们就成功向pycharm导入了tensorflow

三、应用权重文件

1.打开terminal
在这里插入图片描述
2.一般在我们选择好Project Interpreter再打开terminal,就已经进入到了当前环境中去,如果左边括号内不是我们新建的环境,输入下面的命令行进入到tensorflow-gpu环境中去

conda activate tensorflow-gpu

在这里插入图片描述
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目录下会新添加三个文件(红框所示)
在这里插入图片描述

四、目标识别

在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文件夹下,命令行改名字即可
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/thy0000/article/details/123491229