Skip to content

jinsheng124/yolox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

该项目用于旋转目标检测,目标检测框架yolox。 旋转目标检测相比于目标检测,除了要预测类别c,中心坐标x,y,宽高w,h五元组外,还需要预测矩形框的旋转角度a

1,项目结构

|-train.py 训练
	|-训练参数
		|-multitrain 多尺度训练
		|-smooth_label 标签平滑
		|-amp 是否开启混合精度
		|-Train_Next 断点继续训练
		|-freeze,freeze_epoch 冻结训练参数
		|-adam 是否使用adam优化器
		|-patch,是否划分网格训练,预测时就将图片划分为patch*patch网格,分别检测并堆叠结果,适合超大图片,正常大小图片请将patch设为1
		|-lr 学习率,SGD初始学习率默认0.0001
	|-训练得到的权重和训练结果可视化会保存在创建的logs文件夹中,每次训练都会计算mAP值
|-test.py 计算mAP值
|-detect.py 预测单张图片,运行detect.py,输入图片路径即可进行预测。

|-pretrained
	|-内有yolox_s预训练权重,若无权重文件,请注释掉train.py的166-171行,freeze设置为False,不冻结训练。
|-model_data
	|-classes.txt文件,可以自定义类别训练自己的模型
|-dataset
	|-generate.py 根据训练数据生成trainlist.txt,vallist.txt用于训练,可以根据自己数据集结构自己写代码,生成txt的每一行格式为:
		|-图片路径 类别1,left1,top1,right1,bottom1,angle1 类别2,left2,top2,right2,bottom2,angle2 ...(角度值为弧度,-pi/2~pi/2之间)
		|-generate.py中的patch参数,用来处理大图片但小bbox情况,训练时会将图片划分为patchxpatch的网格,每一个网格单独看做一张图片,增大bbox面积比,可以有效提升mAP
		|-正常图片patch设为1
		
	|-train 存在训练的标注图片和标签(图片和标签除后缀要同名)
	|-val 存放测试用的图片和标签,标签一般为矩形4角点坐标加类别
|-utils
	|- clip.py 数据预处理,包括数据增强
	|-dataset.py 生成dataset
	|-region_loss.py yolox损失(含角度损失),角度损失参考CSL论文
	|-utils 工具包,涵盖解码、非极大抑制、iou,坐标转换等函数
|-yolox
	|- darknet.py cspdarknet网络
	|- yolox.py yolox模型,[yolox论文地址](https://arxiv.org/abs/2107.08430),主要使用了Focus,simOTA,检测头分支预测,anchor-free

2,环境配置

torch>=1.6
tqmd=4.55.1
cuda>=10.1
numpy=1.19.3
opencv-python>=3.4.2.16
opencv-contrib-python>=3.4.2.16
matplotlib
json
Pillow
shapely

3,实际检测效果图(yolox_s轻量化网络)

result

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages