yolo3-pytorch-master训练红外数据集

1.yolov3代码地址

 yolov3代码下载:https://github.com/bubbliiiing/yolo3-pytorch

2.数据集下载

红外数据集来自于文章《地空背景下红外图像弱小飞机目标检测跟踪数据集》

下载地址:地/空背景下红外图像弱小飞机目标检测跟踪数据集 (csdata.org)

与常见数据集不同的是:该数据集为灰度图像,图像格式为bmp,且标注信息为目标中心点位置,所以需要重新标注数据集。

3.数据集标注处理 

(1)标注软件使用的是labelImg,下面百度云链接:

http://链接:https://pan.baidu.com/s/1eN7izcxorsNiOBdJVpj18A 提取码:a508

(2)按照voc数据集的格式对图像进行标注;其中文件夹中JPEGImages放置图像数据,Annotations中放置图像的标注文件,ImageSets/Main用来放置生成的txt文件

 (3)双击labelImg.exe,首先点击左侧的Open Dir选项,选择需要标注的图像文件夹JPEGImages,随后点击Change Save Dir选项,选择图像标注数据存放的位置Annotations;然后将输入法切换至英文模式,在图像上使用快捷键‘W’对待检测物体画框,获得目标所在的位置及坐标信息,随后在弹窗中添加该物体所属类别,点击“OK”,并使用“Ctrl+s”保存标注信息。快捷键“D”可以切换下一张图像,依次进行标注,直至所有图像标注完成。

(4)根据标注信息在model_data文件夹下建立一个自己的my_classes.txt,里面写自己所需要区分的类别

(5)标注完成后,利用根目录下的voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。

第一次训练时将voc_annotation.py中的annotation_mode修改为0,并且修改对应的classes_path(自己的数据集一定要修改)。运行voc_annotation.py处理标签,获得VOCdevkit/VOC2007/ImageSets里面的txt以及训练用的007_train.txt和2007_val.txt

(6)修改train.py文件中的classes_path(与voc_annotation.py中相同)

注意,在训练时需要注意输入图片的格式应该为*.jpg格式,所以需要先转换图像格式

import os
from PIL import Image
import shutil
import sys

# 原图片存放的地址
source_path="JPEGImage/"
# 转换后的图片格式
types='jpg' 
#最终图片存放的地址
target_path="JPEGImages/"

# 如果存放路径不存在则创建
if not os.path.exists(target_path):
    os.makedirs(target_path)
    
#转换函数
def changeImage(source_path,types):
    files = []
    image_list=os.listdir(source_path)  # 用于返回指定的文件夹包含的文件或文件夹的名字的列表
    files = [os.path.join(source_path,_) for _ in image_list] #拼接文件路径,可传入多个参数
    for file in files:
        try:
            sys.stdout.flush()
            im = Image.open(file)
            image = os.path.splitext(file)[0] + "." + types
            im.save(image)
            shutil.move(image,target_path)
        except IOError as e:
            print('could not read:',file)
            print('error:',e)
            print('skip it\n')
    sys.stdout.write('Convert Over!\n')
    sys.stdout.flush()

#执行函数
if __name__ == "__main__"
    changeImage(source_path,types)

最后,根据自己的需要,设置epoch、batch_size、learning_rate等相关信息就可以开始训练了。在训练多个epoch后,权值会生成在logs文件夹中。

(7)训练结果预测

训练结果预测需要用到两个文件,分别是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。
model_path指向训练好的权值文件,在logs文件夹里。
classes_path指向检测类别所对应的txt。

完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值