其他分享
首页 > 其他分享> > YOLOV3目标检测框架搭建和训练自己模型的流程

YOLOV3目标检测框架搭建和训练自己模型的流程

作者:互联网

YOLOV3目标检测框架搭建和训练自己模型的步骤(超详细)

Ubuntu18.04安装labelImg标注工具—pyqt5 安装步骤

# 不需要进入到虚拟环境中
sudo apt-get install pyqt5-dev-tools 
sudo pip3 install lxml 
git clone https://github.com/tzutalin/labelImg.git 
cd labelImg 
make qt5py3      # 用make all 会导致先识别pyqt4.
python3 labelImg.py #打开labelImg

使用图像标注工具

Open可导入单张图片。
Open Dir可打开文件夹目录,然后可以用Next Image和Prev Image查看所有图片。
Change Save Dir可以更改xml文件保存的路径。
Verify Image可更改xml文件的内容。
Save可保存xml文件。

项目结构搭建

项目源码:github源码下载地址:git clone https://github.com/qqwweee/keras-yolo3
到yolo官网,下载yolo3预训练权重:https://pjreddie.com/media/files/yolov3.weights 下载后放到根目录
Tiny YOLOv3的权重文件下载:https://pjreddie.com/darknet/yolo/

CPU环境搭建(Ubuntu安装cpu版本tensflow)

#方法1
在https://github.com/lakshayg/tensorflow-build下载   --------》未成功
#方法2
pip install tensorflow-cpu==1.15.0 -i https://pypi.douban.com/simple/  #直接在命令行安装
#方法3(目前在用)
pip install tensorflow==1.12.0 
pip install Keras==2.2.4
pip install Pillow==8.2.0

GPU环境搭建(需要安装gpu版本tensorflow)建议使用GPU训练速度会更快

cuda 8.0
python 3.6
conda install tensorflow-gpu==1.12.0
conda install keras

conda使用

conda create -n zs python=3.6   # 使用python3.6创建你的虚拟环境
conda remove -n zs --all  # 删除虚拟环境zs
conda activate zs #激活环境
deactivate #退出环境

使用默认的模型

python yolo_video.py --image

训练自己的模型构建步骤

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#####修改说明#####
[convolutional]
size=1
stride=1
pad=1
filters=18  # 3*(5+len(classes)) # 我训练一种类别 即 3*(5+1) = 18
activation=linear


[yolo]
mask = 6,7,8
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=1 # 一种类别
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1 # 显存小就改为0   

ons.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config))


- #### tensorflow + CPU充分使用(cpu环境中)

```python
num_cores = 4

config = tf.ConfigProto(intra_op_parallelism_threads=num_cores, inter_op_parallelism_threads=num_cores,
                        allow_soft_placement=True, device_count={'CPU': 4})
session = tf.Session(config=config)
K.set_session(session)

'''
# 说明
device_count, 告诉tf Session使用CPU数量上限,如果你的CPU数量较多,可以适当加大这个值
inter_op_parallelism_threads和intra_op_parallelism_threads告诉session操作的线程并行程度,如果值越小,线程的复用就越少,越可能使用较多的CPU核数。如果值为0,TF会自动选择一个合适的值。
allow_soft_placement=True, 有时候,不同的设备,它的cpu和gpu是不同的,如果将这个选项设置成True,那么当运行设备不满足要求时,会自动分配GPU或者CPU。
'''

标签:YOLOV3,anchors,流程,self,num,model,classes,image,搭建
来源: https://blog.csdn.net/m0_49501453/article/details/118251917