软件简介
BBYOLO标注训练工具是一款集YOLO图像快速标注和训练的工具,工具内置了基于YOLOV4CPU制作的自动标注实现快速自动标注,另外还有丰富的截图功能方便图像采集。
食用说明
图像采集
1、拖动圆形图标置需要截图的窗口后放开。
2、根据自己需求调整“截图方式”、“文件命名”、“保存格式”。
3、点击“选择”修改“保存目录”。
4、“手动截图快捷键”编辑框输入按键手动截图,“退格键”取消热键。
5、“自动截图编辑框”输入时间可进行自动截图(单位毫秒,-1停止)。
图像标注
1、点击“选择项目”可以新建或者打开已创建的目录。
2、点击“打开项目”把图片放入“img”文件夹内然后点击“刷新图库”,在右侧“分类设置”中点击“添加分类”输入类名、颜色,不需要可点击“删除尾行”。
3、点击“创建区块”或快捷键“W”拖动鼠标标注(右键可取消),快捷键功能边上有标注不再复述,点击已创建的区块可“复制区块”、“删除区块”。
4、点击已创建区块右键菜单可进行“添加固定标注”、“分类转换”。
5、固定标注说明 在“标注设置”中“固定标注”可以点击分类类名进行添加固定标注,“添加”、“删除选中”按钮进行固定标注添加删除。
6、自动标注说明 在“标注设置”中“自动标注”点击“选择”按钮分别导入已训练好的“cfg”和“weights”文件点击“开始”进行训练。
7、特别提醒 除自动标注外标注好区块后记得手动点击“保存”或者快捷键“S”进行保存,否则不会保存。
8、快捷键说明,图像标注中的快捷键都需要先点击图像后才能使用,分类快捷切换直接按数字(非小键盘数字按键),序号从0开始,如果是11就按2次1数字键就可以。
模型训练
1、选择“模型配置”一般默认根据自己显卡配置调整“batch”和“subdivisions”并且调整“训练次数max”。
2、如果配置修改错误可以点击“初始化配置”来还原配置。
3、点击“开始训练”等待loss曲线图出现即可,“继续训练”同理。
4、训练完成后可以点击“提取模型”获取3个数据文件。
5、无法正常训练多半是缺少VS运行库,常见于win7或者精简版系统,请下载安装“微软VC++运行库合集”,也有可能是环境包版本不匹配。
6、如若弹出cmd运行框,而未弹出loss曲线图,请耐心等待,首次加载训练较慢。
7、训练前请检查左边的cfg配置 查看是否正确 预防各种错误。
8、如果使用基础包,请检查显卡驱动 驱动更新到最新,显卡驱动英伟达官网下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
9、微软VC++运行库合集:https://baoku.360.cn/soft/show/appid/104698064
10、指定显卡/多显卡: 多显卡可以使用 0,1,2,3 每个显卡已,隔开 如果是指定填写第几张显卡 0
11、batch:显存越小调越小 2.4.8.16.32.64 显存不够可减小,但会出现Nan问题(解决办法:增大batch)
12、subdivisions:显存越小调越大 2.4.8.16.32.64 训练迭代包含16组,每组4张图片
13、filters:3*(类别数量+5)—-自动对齐设置软件训练无需填改
14、classes:类别数量—-自动对齐设置软件训练无需填改
15、random:如果显存很小,将random设置为0,关闭多尺度训练;将random设置为1,开启多尺度训练(效果会好很多,要求显存大)
16、width(宽度) height(高度):显存不够可减小(显存越小调越小)320*320、416*416、512*512、608*608、832*832…(32倍数)
参数说明
-----------------------训练说明-----------------------
训练前请检查左边的cfg配置 查看是否正确 预防各种错误。
指定显卡/多显卡: 多显卡可以使用 0,1,2,3 每个显卡已,隔开 如果是指定填写第几张显卡 0
batch:显存越小调越小 2.4.8.16.32.64 显存不够可减小,但会出现Nan问题(解决办法:增大batch)
subdivisions:显存越小调越大 2.4.8.16.32.64 训练迭代包含16组,每组4张图片
filters:3*(类别数量+5)----自动对齐设置软件训练无需填改
classes:类别数量----自动对齐设置软件训练无需填改
random:如果显存很小,将random设置为0,关闭多尺度训练;将random设置为1,开启多尺度训练(效果会好很多,要求显存大)
width(宽度) height(高度):显存不够可减小(显存越小调越小)320*320、416*416、512*512、608*608、832*832...(32倍数)
[net]
# Testing ### 测试模式
# Training ### 训练模式
# batch=64
# subdivisions=16
---------------------------------------------------------------------------------------------------------
batch=64 ### 每一次迭代送到网络的图片数量,也叫批数量。增大这个可以让
### 网络在较少的迭代次数内完成一个epoch。在固定最大迭代次数的
### 前提下,增加batch会延长训练时间,但会更好的寻找到梯度下降的
### 方向。如果你显存够大,可以适当增大这个值来提高内存利用率。
### 这个值是需要大家不断尝试选取的,过小的话会让训练不够收敛,
### 过大会陷入局部最优。
subdivisions=32 ### 这个参数很有意思的,它会让你的每一个batch不是一下子都丢到
### 网络里。而是分成subdivision对应数字的份数,一份一份的跑
### 完后,在一起打包算作完成一次iteration。这样会降低对显存的
### 占用情况。如果设置这个参数为1的话就是一次性把所有batch的
### 图片都丢到网络里,如果为2的话就是一次丢一半。
### batch/subdivisions作为一次性送入训练器的样本数量,
### 如果内存不够大,则会将batch分割为subdivisions个子batch
---------------------------------------------------------------------------------------------------------
width=32 ### input图像的宽
height=32 ### input图像的高
channels=3 ### input图像的通道数 3为RGB彩色图片,1为灰度图,4为RGBA图,A通道表示透明度
### 以上三个参数为输入图像的参数信息width和height影响网络
### 对输入图像的分辨率,从而影响precision,只可以设置成32的倍数
---------------------------------------------------------------------------------------------------------
momentum=0.9 ### 冲量。DeepLearning1中最优化方法中的动量参数,这个值影响着梯
### 度下降 到最优值得速度,冲量的建议配置为0.9。
decay=0.0005 ### 权值衰减。使用的目的是防止过拟合,当网络逐渐过拟合时网络权值往往会变
### 大,因此,为了避免过拟合,在每次迭代过程中以某个小因子降低
### 每,decay参数越大对过拟合的抑制能力越强
### 个权值,也等效于给误差函数添加一个惩罚项,常用的惩罚项是所有
### 权重的平方乘以一个衰减常量之和。权值衰减惩罚项使得权值收敛到较小的绝对值。
angle=180 ### 图片角度变化,单位为度,假如angle=5,
### 就是生成新图片的时候随机旋转-5~5度
---------------------------------------------------------------------------------------------------------
saturation = 1.5
exposure = 1.5 ### 饱和度与曝光变化大小,tiny-yolo-voc.cfg中1到1.5倍,
### 以及1/1.5~1倍
hue=.1 ### 色调变化范围,tiny-yolo-voc.cfg中-0.1~0.1
### 在每次迭代中,会基于角度、饱和度、曝光、色调产生新的训练图片。
---------------------------------------------------------------------------------------------------------
learning_rate=0.001 ### 初始学习率。训练发散的话可以降低学习率。学习遇到瓶颈,loss不变
### 的话也可以减低学习率。
### 学习率决定了参数移动到最优值的速度快慢,如果学习率过大,
### 很可能会越过最优值导致函数无法收敛,甚至发散;反之,
### 如果学习率过小,优化的效率可能过低,算法长时间无法收敛,
### 也易使算法陷入局部最优(非凸函数不能保证达到全
### 局最优)。合适的学习率应该是在保证收敛的前提下,能尽快收
### 敛。设置较好的learning rate,需要不断尝试。在一开始的时
### 候,可以将其设大一点,这样可以使weights快一点发生改变,在
### 迭代一定的epochs之后人工减小学习率。在yolo训练中,网络训
### 练160epoches,初始学习率为0.001,在60和90epochs时将学习率除以10。
burn_in=1000 ### 在迭代次数小于burn_in时,其学习率的更新有一种方式,大于
### burn_in时,才采用policy的更新方式
max_batches = 50000 ### 最大迭代次数。训练达到max_batches后停止学习
policy=steps ### 学习策略,一般都是step这种步进式。
### 有policy:constant, steps, exp, poly, step, sig, RANDOM,constant等方式
steps=100, 25000, 35000 ### 学习率变化时的迭代次数
scales=10,.1,.1 ### 学习率变化的比率。这两个是组合一起的,举个例子:learn_rate: 0.001,
### step:100,25000,35000 scales: 10, .1, .1 这组数据的
### 意思就是在0-100次iteration期间learning rate为原始0.001,
### 在100-25000次iteration期间learning rate为原始的10倍0.01,
### 在25000-35000次iteration期间learning rate为当前值的0.1倍,
### 就是0.001, 在35000到最大iteration期间使用learning rate为
### 当前值的0.1倍,就是0.0001。随着iteration增加,降低学习率可以
### 是模型更有效的学习,也就是更好的降低train loss。
[convolutional]
batch_normalize=1 ### 是否做BN
filters=32 ### 输出多少个特征图
size=3 ### 卷积核的尺寸
stride=1 ### 做卷积运算的步长
pad=1 ### 如果pad为0,padding由 padding参数指定。如果pad为1,padding大小为size/2
activation=leaky
......
......
[convolutional]
size=1
stride=1
pad=1
filters=27 ### 每一个[region/yolo]层前的最后一个卷积层中的
### filters=(classes+1+coords)*anchors_num,
### 其中anchors_num 是该层mask的一个值.如果没有mask
### 则 anchors_num=num是这层的ancho5的意义是5个坐标,
### 论文中的tx,ty,tw,th,to。 3*(5+len(classes))
activation=linear ### 激活函数-activation
### 包括logistic, loggy, relu, elu, relie, plse, hardtan
### ,lhtan, linear, ramp, leaky, tanh, stair
[yolo] ### 在yoloV2中yolo层叫region层
mask = 6,7,8 ### 当前属于第几个预选框,这一层预测第7、8、9个 anchor boxes,
### 每个yolo层实际上只预测3个由mask定义的anchors
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
### 预测框的初始宽高,第一个是w,第二个是h,总数量是num*2,
### YOLOv2作者说anchors是使用K-MEANS获得,其实就是计算出
### 哪种类型的框比较多,可以增加收敛速度,如果不设置anchors,
### 默认是0.5;
classes=4 ### 网络需要识别的物体种类数
num=9 ### 每个grid cell预测几个box,和anchors的数量一致。当想要使
### 用更多anchors时需要调大num,且如果调大num后训练时Obj趋近0的话
### 可以尝试调大object_scale
jitter=.3 ### 通过抖动增加噪声来抑制过拟合
ignore_thresh = .5 ### 决定是否需要计算IOU误差的参数,大于thresh,IOU误差不会夹在cost function中
truth_thresh = 1
random=1 ### random为1时会启用Multi-Scale Training,随机使用不同尺
### 寸的图片进行训练,如果为0,每次训练大小与输入大小一致;
### 是否随机确定最后的预测框,显存小可设置成0
模型验证
1.先导入cfg、weights、names模型文件。
2.“图片验证”选择目录后点击下方路径就可以验证模型。
3.“动态验证”拖动圆形图标置需要截图的窗口后放开。
4.“动态验证”选择截图方式,如果需要测试截图方式是否有效可在“图像采集”中测试。
5.“动态验证”显示方式,目前提供两种方式,画板为BBYOLO内部显示,窗口为绑定窗口显示。
6.颜色名字配置,颜色和名字修改后需要“停止”后再“开始”才会变化,图片模式点击下一个即可。
7.关于绘制类名的字体颜色需要到“图像标注”-“标注设置”中修改“类名标题颜色”和“标题发光颜色”即可。
常见问题
提示缺少文件无法训练
1、集成包下载连接获取,或者群文件BBYOLO文件夹内。
2、请下载集成包放在V4目录内,集成包分465.81和441.222个版本根据自己NVIDIA的驱动版本使用,如果对应版本无法使用请尝试下另外一个版本,不知道驱动版本怎么看的请百度 NVIDIA显卡怎么看驱动版本。
DLL不存在,报错
1、安装微软VC++运行库合集:https://baoku.360.cn/soft/show/appid/104698064
2、如果安装好还是错误请使用完整版的系统,精简版无法使用。
无法训练
1、下载集成包放当V4目录内,下载显卡驱动对应的集成包
2、如果使用基础包,请检查显卡驱动 驱动更新到最新,显卡驱动英伟达官网下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
3、路径不能存在特殊字符比如空格,建议使用纯英文路径。
训练GPU跑不满
1、请修改 batch和subdivisions配置,具体说明参考参数说明。
更新记录
- 1.5正式版 2023年06月15日
一、修复
1、标注框调节按钮颜色无法实时修改
2、标注框十字可修改大小
二、优化
1、在图片未缩放下保存导致标注框位置偏移
三、新增
1、固定标注直接按数字按就可以选中对应固定坐标
2、在固定标注页面并且选中状态时按W快捷键可以快速创建固定标注 - 1.4正式版 2023年03月10日
一、优化
1、快捷键切换图片时自动保存可选
二、新增
1、如果标注数据是空的删除标注数据txt文件
2、标注框调节按钮、大小可配置
3、模型验证图片验证图片列表↑↓按键快捷键
4、创建标注框右键可取消
5、标注框十字准心 - 1.3正式版 2023年01月02日
一、修复
1、自动标注时图片为PNG格式报错
2、标注保存导致标注框偏移的问题
二、优化
1、修改模型调用改为贝贝自己开发的dll更安全稳定支持V2、V3、V4模型
三、新增
1、图片标注自动保存,快捷键切换上一张或下一张的时候自动保存
2、分类颜色保存
3、自动标注参数调节
4、模型验证
5、图片列表右键图片删除功能 - 1.2正式版 2022年11月05日
一、修复
1、Win11下自动标注卡死
二、优化
1、优化内存占用
2、优化UI
三、新增
1、增加窗口位置大小保存
2、增加独立项目功能 - 1.1正式版 2022年10月19日
一、修复
1、修复截图部分类型,截图异常或无法截图
2、修复训练map报红
二、优化
1、优化内存占用
1、优化训练文件保存方式 - 1.0正式版 2022年10月17日
一、1.0正式版发布。
评论(3)
就是没有找到哪里下载55555
…..最上面右边不是在吗
这个很好。