caffe-ssd训练自己的数据集(同时记录自己遇到的各种错误)

本文介绍了使用Caffe-SSD训练自定义数据集的步骤,包括数据集准备、VOC到LMDB转换以及训练过程中遇到的常见错误及其解决方案,如Python路径配置、shell脚本错误、模型找不到等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ONE:
首先当然是caffe的编译和安装啦,这里不详细阐述,下面内容都是基于caffe-ssd版本来做的。进行下一步之前,确保你的caffe是ssd版本且没有任何问题!

TWO:
— 准备数据集,jpeg,jpg,png…都可以,反正是你自己的数据集。
—创建文件夹,在你的caffe/data/路径下创建一个数据集文件,博主为如下图:
在这里插入图片描述
然后在imageSets文件夹再新建空文本:labelmap_fire.prototxt(当然,你也可以自己命名)
在这里插入图片描述(按照自己情况自己修改)

—用标注工具对你自己的数据集进行标记:(将脚本放在data/fire/ImageSets下进行,比较方便)
博主在这里用的是labelImg,标注后会生成对应的xml文件,存在Annotations文件夹内。标注完成后将你的所有图片全都存进JPEGImages文件夹中,并在该文件夹下创建trainvaltest两个文件,分别存放你要进行训练和测试的数据集,博主按照4:1进行存放
—接下来
编辑trainval.txt和test.txt。用如下脚本进行:(路径自行修改)

#! /usr/bin/python  
# -*- coding:UTF-8 -*-  

import os, sys
import glob
#训练集和测试集路径 
trainval_dir = "/home/ff/caffe-ssd/data/fire/JPEGImages/trainval"
test_dir = "/home/ff/caffe-ssd/data/fire/JPEGImages/test"

trainval_img_lists = glob.glob(trainval_dir + '/*.jpg') #获取trainval中所有.jpg的文件 
trainval_img_names = []  #获取名称  
for item in trainval_img_lists:
    temp1, temp2 = os.path.splitext(os.path.basename(item))
    trainval_img_names.append(temp1)

test_img_lists = glob.glob(test_dir + '/*.jpg')    #获取test中所有.png文件  
test_img_names = []
for item in test_img_lists:
    temp1, temp2 = os.path.splitext(os.path.basename(item))
    test_img_names.append(temp1)
#图片路径和xml路径  
dist_img_dir = "data/fire/JPEGImages"  #需要写入txt的trainval和test路径,因为我们在PNGImges目录下除了有trainval和test文件夹外还有所有图片,所以只用写到PNGImages  
dist_anno_dir = "/data/fire/Annotations"   #需要写入的xml路径    !!!从caffe跟目录下第一个文件开始写

trainval_fd = open("/home/ff/caffe-ssd/data/fire/ImageSets/trainval.txt", 'w')   #存到哪里,及存储的名称
test_fd = open("/home/ff/caffe-ssd/data/fire/ImageSets/test.txt", 'w')

for item in trainval_img_names:
    trainval_fd.write(dist_img_dir + '/' + str(item)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值