ssd-tensorflow训练数据集

下载ssd-tensorflow版本的网址:https://github.com/balancap/SSD-Tensorflow

一、遇到的问题

1、import cv2报错 no module named cv2

解决办法:https://mp.csdn.net/postedit/90769863

2、pycharm同一目录下无法import明明已经存在的.py文件

链接:https://blog.csdn.net/wcx1293296315/article/details/81156036

3、报错: AttributeError: 'module' object has no attribute 'to_rgba'

主要是matplotlib版本引起的问题,可以降低其版本。

可运行如下代码:

 sudo pip install matplotlib==2.2.0

4、jupyter notebook打开显示500 : Internal Server Error

在anaconda prompt中打开jupyter notebook新建一个文件时出现错误:500 : Internal Server Error

解决办法:pip install --upgrade --user nbconvert

二、训练步骤(不改变数据集的情况)

1、将数据转化为tensorflow统一的格式TFRecord

                                                     图一

Annotation:xml文件;JPEGImages:图片数据;

ImageSets:每个txt文档写的内容是图片的名没有后缀;

                                                 图二

新建一个.sh文件tf_convert_data.sh 内容:

#!/usr/bin/env bash
#训练数据存放路径,即图一
DATASET_DIR=/home/liangjing/PycharmProject/PASCAL_VOC/VOCtest_06-Nov-2007/VOC2007/
#tfrecords格式的文档存放路径
OUTPUT_DIR=/home/liangjing/PycharmProject/SSD-Tensorflow-master/tfrecords_test/

python3 ./tf_convert_data.py \
  --dataset_name=pascalvoc \
  --dataset_dir=${DATASET_DIR} \
  --output_name=voc_2007_test \
  --output_dir=${OUTPUT_DIR}

运行命令:sh tf_convert_data.sh ,若是无法运行,可利用chomd +x tf_convert_data.sh ,将其转化为可执行文件;

2、训练

新建train.sh文件,内容如下:

#!/usr/bin/env bash
#tfrecords格式的文档存放路径
DATASET_DIR=./tfrecord
TRAIN_DIR=./log/
#fineturn的model
CHECKPOINT_PATH=./checkpoints/ssd_300_vgg.ckpt
python train_ssd_network.py \
    --train_dir=${TRAIN_DIR} \
    --dataset_dir=${DATASET_DIR} \
    --dataset_name=pascalvoc_2007 \
    --dataset_split_name=train \
    --model_name=ssd_300_vgg \
    --checkpoint_path=${CHECKPOINT_PATH} \
    --checkpoint_exclude_scopes =ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
    --save_summaries_secs=60 \
    --save_interval_secs=600 \
    --weight_decay=0.0005 \
    --optimizer=adam \
    --learning_rate=0.001 \
    --batch_size=8 \
    --ignore_missing_vars = True \

运行:sh train.sh

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于使用SSD(Single Shot MultiBox Detector)训练自己的数据集,您可以按照以下步骤进行操作: 1. 数据集准备:收集并标注您自己的数据集,确保每个样本都有正确的边界框标注和相应的类别标签。您可以使用标注工具,如LabelImg,进行标注。 2. 数据集格式转换:将数据集转换为SSD所需的格式SSD使用Pascal VOC或COCO等标准格式。您可以使用数据转换工具,如convert2ssd.py脚本,将数据集转换为SSD可接受的格式。 3. 配置网络模型:根据您的需求和数据集的类别数,选择合适的SSD网络模型。您可以在网络模型配置文件中进行相关设置,如设置输入图像大小、锚框尺寸和比例等。 4. 数据集划分:将数据集划分为训练集和验证集。通常,80%的数据用于训练,20%的数据用于验证。 5. 训练模型:使用标注好的数据集进行模型训练。您可以使用深度学习框架,如TensorFlow或PyTorch,加载SSD网络模型,并结合优化算法(如随机梯度下降)进行模型训练。 6. 模型评估和调优:在训练过程中,您可以定期评估模型在验证集上的性能,并进行相应的调优,如调整学习率、增加训练轮次等。 7. 模型推理:在完成模型训练后,您可以使用该模型进行目标检测任务。通过将输入图像传入SSD模型,您可以获取检测到的目标边界框和对应的类别标签。 请注意,这只是一个基本的概述,具体的实现细节可能因您使用的深度学习框架和数据集格式而有所不同。同时,由于SSD算法较为复杂,可能需要一定的计算资源和时间来完成训练过程。祝您成功训练自己的SSD模型!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值