软件简介

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. 1.5正式版 2023年06月15日
    一、修复
    1、标注框调节按钮颜色无法实时修改
    2、标注框十字可修改大小
    二、优化
    1、在图片未缩放下保存导致标注框位置偏移
    三、新增
    1、固定标注直接按数字按就可以选中对应固定坐标
    2、在固定标注页面并且选中状态时按W快捷键可以快速创建固定标注
  2. 1.4正式版 2023年03月10日
    一、优化
    1、快捷键切换图片时自动保存可选
    二、新增
    1、如果标注数据是空的删除标注数据txt文件
    2、标注框调节按钮、大小可配置
    3、模型验证图片验证图片列表↑↓按键快捷键
    4、创建标注框右键可取消
    5、标注框十字准心
  3. 1.3正式版 2023年01月02日
    一、修复
    1、自动标注时图片为PNG格式报错
    2、标注保存导致标注框偏移的问题
    二、优化
    1、修改模型调用改为贝贝自己开发的dll更安全稳定支持V2、V3、V4模型
    三、新增
    1、图片标注自动保存,快捷键切换上一张或下一张的时候自动保存
    2、分类颜色保存
    3、自动标注参数调节
    4、模型验证
    5、图片列表右键图片删除功能
  4. 1.2正式版 2022年11月05日
    一、修复
    1、Win11下自动标注卡死
    二、优化
    1、优化内存占用
    2、优化UI
    三、新增
    1、增加窗口位置大小保存
    2、增加独立项目功能
  5. 1.1正式版 2022年10月19日
    一、修复
    1、修复截图部分类型,截图异常或无法截图
    2、修复训练map报红
    二、优化
    1、优化内存占用
    1、优化训练文件保存方式
  6. 1.0正式版 2022年10月17日
    一、1.0正式版发布。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系贝贝进行处理。
本站默认解压密码:www.hibbba.com