label 订阅
LABEL的功能是定义变量或标号的类型,而变量或标号的段属性和偏移属性由该语句所处的位置确定。 展开全文
LABEL的功能是定义变量或标号的类型,而变量或标号的段属性和偏移属性由该语句所处的位置确定。
信息
变量的类型
BYTE、WORD、DWORD、DQ、DT
格    式
变量/标号
标号的类型
NEAR、FAR
外文名
LABEL
LABEL汇编语言
符号定义伪指令——LABEL伪指令格式:变量/标号 LABEL 类型变量的类型有:BYTE、WORD、DWORD、DQ、DT;标号的类型有:NEAR、FAR; [1]  例如:  Buffer1 LABEL WORD  Buffer2 DB 20 DUP (0)  通常,紧接着的下一条语句定义的类型与LABEL指定的类型不同。而实际上,Buffer1是Buffer2的别名,两者指向内存中的同一个存储地址。换言之,同一组数据定义了两种不同的类型,在接受不同数据类型的访问时,可以指定相应的标号。如接受一个字类型数据访问时,使用Buffer1;接受字节类型数据访问时,使用Buffer2。否则因为数据类型不匹配,编译器编译时将出现异常。
收起全文
精华内容
下载资源
问答
  • LabelImg可运行的历史版本,非最新版,参考https://github.com/tzutalin/labelImg。使用方法:解压后,执行./labelimg.py命令
  • windows平台LabelImg v1.3.3 直接运行工具

    热门讨论 2017-10-24 20:49:49
    github上的可直接运行版本被墙了,这个可以在windows下直接运行,无需配置环境。
  • Label Matrix 7.02 破解

    热门讨论 2014-08-27 16:09:18
    Label Matrix 7.02的破解文件
  • Label Matrix8.10和注册机 第一部分

    热门讨论 2015-01-03 08:45:37
    里面有三个文件Label Matrix8 10版本程序 注册机 安装说明文件 自己也在用 这是第一部分 请在我的资源里面继续下载第二部分 Label Matrix8 10和注册机 第二部分 即可解压
  • Labelimg制作数据集

    千次阅读 2019-03-07 09:56:54
    Labelimg制作数据集 1、 安装labelimg ① 下载源码自行安装,安装步骤参考搜索文章 下载地址:https://github.com/tzutalin/labelImg ② 下载打包版直接运行,Windows和Linux平台可用,无需编译 下载地址:...

    Labelimg制作数据集

    1、 安装labelimg

    ① 下载源码自行安装,安装步骤参考搜索文章

    下载地址:https://github.com/tzutalin/labelImg

    ② 下载打包版直接运行,Windows和Linux平台可用,无需编译

    下载地址:https://tzutalin.github.io/labelImg/

    2、 图片标注

    ① 仿照VOC2007在py-faster-rcnn-master\data目录下新建文件夹“VOCdevkit2007”,在VOCdevkit2007\VOC2007目录下新建如图5个文件夹(前3个必须有)。JPEGImages存放训练图片,Annotations存放使用labelimg标注图片后生成的.xml文件,ImageSets中新建Main文件夹。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ② 使用打包版labelimg时直接打开labelImg.exe,先点击“Change Save Dir”修改保存路径为文件夹Annotations(路径不能包含中文)。使用notepad++打开data文件夹中的predefined_classes.txt,修改分类的类别。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述打开需要标记的图片文件夹JPEGImages,Ctrl+u
    在这里插入图片描述修改保存路径(.xml文件夹)为Annotations,Ctrl+r
    在这里插入图片描述标注ROI区域填写标签,w:开始画框
    在这里插入图片描述保存.xml文件,有弹框提醒,Ctrl+s

    d: 下一张

    a: 上一张

    del: 删除画的框

    Ctrl++: 图片放大

    Ctrl–: 图片缩小

    ↑→↓←: 对框进行移动

    Ctrl+d: 复制当前框的标签和框

    ③ 文件夹JPEGImages中的图片命名格式要求为“xxxxxx.jpg”,从000000.jpg开始,图片重命名代码以Python为例,可参考:https://blog.csdn.net/u011574296/article/details/72956446

    import os
    path = "F:\caffe\py-faster-rcnn-master\data\VOCdevkit\VOC2007\JPEGImages"
    filelist = os.listdir(path) # 该文件夹下所有的文件(包括文件夹)
    count=0 # 编号从0开始
    
    for file in filelist:
        print(file)
    
    for file in filelist:  
    # 遍历所有文件
        Olddir=os.path.join(path,file)   # 原来的文件路径
        if os.path.isdir(Olddir):   # 如果是文件夹则跳过
            continue
        filename=os.path.splitext(file)[0]   # 文件名
        filetype=os.path.splitext(file)[1]   # 文件扩展名
        Newdir=os.path.join(path,str(count).zfill(6)+filetype)  # 用字符串函数zfill 以0补全所需位数
        os.rename(Olddir,Newdir) # 重命名
        count+=1
    

    3、 生成数据集所需txt

    使用代码在ImageSets\Main目录下生成test.txt(测试集)、train.txt(训练集)、val.txt(验证集)、trainval.txt(训练验证集,由train.txt和val.txt组成)。VOC2007中, test大概是整个数据集的50%,trainval是整个数据集剩下的50%;train大概是trainval的50%,val是trainval剩下的50%。所占比例可在代码中修改,以Python为例(其中trainval是整个数据集的70%):
    在这里插入图片描述

    import os
    import random
    
    trainval_percent = 0.7   # trainval占总数的比例
    train_percent = 0.5   # train占trainval的比例
    xmlfilepath = r'F:\caffe\py-faster-rcnn-master\data\VOCdevkit2007\VOC2007\Annotations'
    txtsavepath = r'F:\caffe\py-faster-rcnn-master\data\VOCdevkit2007\VOC2007\ImageSets\Main'
    total_xml = os.listdir(xmlfilepath)
    
    num = len(total_xml)
    list = range(num)
    tv = int(num * trainval_percent)
    tr = int(tv * train_percent)
    trainval = random.sample(list, tv)
    train = random.sample(trainval, tr)
    
    ftrainval = open(txtsavepath + r'\trainval.txt', 'w')
    ftest = open(txtsavepath + r'\test.txt', 'w')
    ftrain = open(txtsavepath + r'\train.txt', 'w')
    fval = open(txtsavepath + r'\val.txt', 'w')
    
    for i in list:
        name = total_xml[i][:-4] + '\n'
        if i in trainval:
            ftrainval.write(name)
            if i in train:
                ftrain.write(name)
            else:
                fval.write(name)
        else:
            ftest.write(name)
    
    ftrainval.close()
    ftrain.close()
    fval.close()
    ftest.close()
    
    展开全文
  • 原版安装包LABEL.MATRIX.V7.02.02 http://pan.baidu.com/s/1c0yhn6C 安装参照word说明操作即可
  • Qt中通过控件在Label标签中显示一张静态图片
  • Qt 在任意Label上面绘制图形

    热门讨论 2016-03-22 08:54:12
    这只是一个可以在lable上面绘图的demo,需要用到该只是的朋友可以试一下,改良一下,我也是学习别人的东西,免费分享,评论就可以拿回拿一分了,不是么
  • Label Matrix v8.70破解文件

    热门讨论 2013-08-13 10:41:14
    将文件先解压缩,然后复制到 Label Matrix v8.60或v8.70安装的程序目录下,并且替换,就可以破解了
  • 条形码制作软件 label matrix5.1

    千次下载 热门讨论 2013-03-22 16:34:29
    条形码制作软件 label matrix5.1中文平破解版 1.附有安装说明及序列号; 2.附有条码软件安装使用说明; 先点击lmw48.exe进行安装;
  • 手把手教你学LVGL—7.lv_label标签控件

    千次阅读 2021-03-02 13:16:44
    lv_label 标签控件 1. 介绍 lv_label 标签控件可以说是 littleVGL 中使用最频繁的控件了,他的主要作用就是用来显示文本信息的,你可以在运行时的任何时候,使用 lv_label_set_text(label, “New text”)接口来动态修改...

    lv_label 标签控件

    1. 介绍

    lv_label 标签控件可以说是 littleVGL 中使用最频繁的控件了,他的主要作用就是用来显示文本信息的,你可以在运行时的任何时候,使用 lv_label_set_text(label, “New text”)接口来动态修改文本内容,littleVGL 内部会重新为这个标签重新分配堆空间,当然了你也可以通lv_label_set_static_text(label, char_array)这样的接口来引用一个外部的 char_array 文本指针,这样的好处就是 littleVGL 内部不会为这个文本内容分配堆空间,从而可以减少内存的使用,此标签控件支持换行,图标字体,部分文本重绘色等显示功能,同时针对长文本显示,它支持 6种显示模式.lv_label 标签控件

    2. lv_label 的 API 接口

    2.1 主要数据类型

    2.1.1 长文本模式数据类型

    enum {
    LV_LABEL_LONG_EXPAND, //自动扩展对象的大小来包裹文本内容
    //保持对象的宽度不变,当文本内容的宽度超过对象的宽度时会
    //自动换行,然后同时自动扩展对象的高度来包裹文本内容的高度
    LV_LABEL_LONG_BREAK,
    //保持对象的大小不变,当文本内容太长显示不下时,
    //会在文本末尾显示...三个点的省略号
    LV_LABEL_LONG_DOT,
    //保持对象的大小不变,当文本内容太长显示不下时,会自动循环向前向后滚动文本
    LV_LABEL_LONG_SROLL,
    //保持对象的大小不变,当文本内容太长显示不下时,会自动循环环形滚动文本
    LV_LABEL_LONG_SROLL_CIRC,
    LV_LABEL_LONG_CROP, //保持对象大小不变,超过的文本内容将会被剪切掉
    };
    typedef uint8_t lv_label_long_mode_t;
    

    2.1.2 文本内容对齐数据类型

    enum {
    LV_LABEL_ALIGN_LEFT, //文本左对齐
    LV_LABEL_ALIGN_CENTER, //文本居中对齐
    LV_LABEL_ALIGN_RIGHT,//文本右对齐
    };
    typedef uint8_t lv_label_align_t;
    

    2.1.3 标签样式数据类型

    enum {
    LV_LABEL_STYLE_MAIN,
    };
    typedef uint8_t lv_label_style_t;lv_label 标签控件
    

    2.2 API 接口

    2.2.1 创建标签

    lv_obj_t * lv_label_create(lv_obj_t * par, const lv_obj_t * copy);
    

    参数:
    parent: 指向父对象
    copy: 此参数可选,表示创建新对象时,把 copy 对象上的属性值复制过来
    返回值:
    返回新创建出来的标签对象,如果为 NULL 的话,说明堆空间不足了
    littleVGL 中的控件都有自己专属的创建 API 接口,虽然名字不同,但是他们的接口命名规
    范和含义是相同的

    2.2.2 设置动态文本(字符串形式)

    void lv_label_set_text(lv_obj_t * label, const char * text);
    参数:
    label: 标签对象
    text: 新的文本内容,文本内容要是’\0’空字符结尾,如果传 NULL 的话,那么代表刷新当前文本
    内容
    这个 API 接口是用来设置文本内容的,但是我特意加了”动态”俩个字来修饰,这是因为当
    用此 API 接口来设置文本时,它会把之前文本所占用的内存空间先给释放掉,然后为这个新文
    本内容重新分配一个相应大小的内存空间,所以即使外面的 text 指针被释放了,也不会影响此
    标签控件的显示

    2.2.3 设置动态文本(数组形式)

    void lv_label_set_array_text(lv_obj_t * label, const char * array, uint16_t size);
    参数:
    label: 标签对象
    array: 新的文本内容,不需要是’\0’空字符结尾,如果传 NULL 的话,那么代表刷新当前文本内

    size: 传入的 array 数组的大小,单位为字节
    这个 API 接口和 2.2.2 中的 lv_label_set_text 接口功能是一样的,只不过是传入文本的形
    式不一样,一个是以字符串形式,一个是以数组形式lv_label 标签控件

    2.2.4 设置静态文本(字符串形式)

    void lv_label_set_static_text(lv_obj_t * label, const char * text);
    参数:
    label: 标签对象
    text: 新的文本内容,文本内容要是’\0’空字符结尾,如果传 NULL 的话,那么代表刷新当前文本
    内容
    这是以”静态”的方式设置文本内容,所谓的静态就是标签对象内部不会为这个文本内容
    分配内存空间来保存它,而只是引用了一下这个文本指针,好处就是在某些场合下,可以节省
    内存,坏处就是外部的 text 内容空间不能随意的被释放,否则会引起标签对象的显示出错

    2.2.5 设置静态文本(数组形式)

    void lv_label_set_array_text(lv_obj_t * label, const char * array, uint16_t size);
    参数:
    label: 标签对象
    array: 新的文本内容,不需要是’\0’空字符结尾,如果传 NULL 的话,那么代表刷新当前文本内

    size: 传入的 array 数组的大小,单位为字节
    这个 API 接口和 2.2.4 中的 lv_label_set_static_text 接口功能是一样的,只不过是传入文本
    的形式不一样,一个是以字符串形式,一个是以数组形式

    2.2.6 设置长文本模式

    void lv_label_set_long_mode(lv_obj_t * label, lv_label_long_mode_t long_mode);
    参数:
    label: 标签对象
    long_mode: 长文本模式
    此 API 接口很重要,而且也很奇妙,它跟调用时的位置有关(请看后面的例子 3),它的取值
    会 影 响 到 标 签 对 象 的 大 小 , 如 果 不 设 置 的 话 , 那 么 标 签 对 象 的 长 文 本 模 式 默 认 为
    LV_LABEL_LONG_EXPAND,下面让我们来看一下每一种长文本模式对标签对象大小的影
    响:
    1)LV_LABEL_LONG_EXPAND
    当设置为此模式时,用 lv_obj_set_size 接口来设置大小是无效的,标签对象的宽和高只会
    随着文本的内容进行横向和纵向的扩展,默认是不会自动换行的,但是文本内容中可以插
    入’\n’字符来进行手动换行,请看下面 2 个例子(只给出关键示意代码)
    例子 1:lv_label 标签控件
    lv_label_set_text(label1,“I am xiong jia yu”);
    图 2.2.6.1 例子 1 效果图
    例子 2:
    lv_label_set_text(label1,“I am xiong jia yu,Who are you?\nCan you tell me?”);//使用’ \n’
    换行
    图 2.2.6.2 例子 2 效果图
    2)LV_LABEL_LONG_BREAK
    当设置为此模式时,用 lv_obj_set_size 接口来设置大小时,只有宽度是有效的,高度会随着
    文本的内容进行扩展,当文本的内容超过对象的指定宽度时,会进行自动换行的,请看下面的
    一个例子(只给出关键示意代码)
    例子 3(正确的方式):
    lv_label_set_long_mode(label1,LV_LABEL_LONG_BREAK);
    lv_obj_set_size(label1,100,0);//宽度为 100 像素,高度是无效的,随意设置吧
    lv_label_set_text(label1,“I amxiong jia yu,Who are you?Can you tell me?”);
    图 2.2.6.3 例子 3 效果图
    前面我说过 lv_label_set_long_mode 接口的调用跟位置是有关系的,在这里
    lv_label_set_long_mode 的调用必须放在 lv_obj_set_size 调用的前面,否则设置的宽和高是无
    效的,即下面这种方式是错误:
    例子 3(错误的方式):
    lv_obj_set_size(label1,100,0);//宽度为 100 像素,高度是无效的,随意设置吧
    lv_label_set_long_mode(label1,LV_LABEL_LONG_BREAK);
    lv_label_set_text(label1,“I amxiong jia yu,Who are you?Can you tell me?”);lv_label 标签控件
    开发指南 www.alientek.com
    6
    正点原子 littleVGL 开发指南
    3)LV_LABEL_LONG_DOT
    当设置为此模式时,用 lv_obj_set_size 接口来设置大小时,宽和高都是有效的,当文本的内
    容显示不下时,会在文本的末尾显示一个…省略号,同时具有自动换行的功能,请看下面的一个
    例子(只给出关键示意代码)
    例子 4:
    lv_label_set_long_mode(label1,LV_LABEL_LONG_DOT);
    lv_obj_set_size(label1,100,50);
    lv_label_set_text(label1,“I am xiong jia yu,Who are you?Can you tell me?”);
    图 2.2.6.4 例子 4 效果图
    注:默认情况下是显示…三个点的省略号,不过这个是可以通过 LV_LABEL_DOT_NUM 宏来
    配置的,此宏在 lv_label.h 头文件中,如下所示:
    图 2.2.6.5 LV_LABEL_DOT_NUM 宏
    4)LV_LABEL_LONG_SROLL
    当设置为此模式时,用 lv_obj_set_size 接口来设置大小时,宽和高都是有效的,当文本的内
    容显示不下时,会进行向前向后的滚动显示,不具有自动换行的功能,请看下面的例子(只给出
    关键示意代码)
    例子 5:
    lv_label_set_long_mode(label1,LV_LABEL_LONG_SROLL);
    lv_obj_set_size(label1,100,50);
    lv_label_set_text(label1,“I am xiong jia yu,Who are you?Can you tell me?”);lv_label 标签控件
    开发指南 www.alientek.com
    7
    正点原子 littleVGL 开发指南
    图 2.2.6.5 例子 5 效果图
    5)LV_LABEL_LONG_SROLL_CIRC
    和 LV_LABEL_LONG_SROLL 模式的功能基本是一样的,唯一区别就是
    LV_LABEL_LONG_SROLL_CIRC 不是向前向后滚动,而是环形滚动,请看下面的例子(只给
    出关键示意代码)
    例子 6:
    lv_label_set_long_mode(label1,LV_LABEL_LONG_SROLL_CIRC);
    lv_obj_set_size(label1,100,50);
    lv_label_set_text(label1,“I am xiong jia yu,Hello”);
    图 2.2.6.6 例子 6 效果图
    6)LV_LABEL_LONG_CROP
    当设置为此模式时,用 lv_obj_set_size 接口来设置大小时,宽和高都是有效的,当文本的内
    容显示不下时,超出的部分会被直接剪切掉,不具有自动换行的功能,请看下面的例子(只给出
    关键示意代码)
    例子 7:
    lv_label_set_long_mode(label1,LV_LABEL_LONG_CROP);
    lv_obj_set_size(label1,100,50);
    lv_label_set_text(label1,“I am xiong jia yu,Hello”);lv_label 标签控件
    开发指南 www.alientek.com
    8
    正点原子 littleVGL 开发指南
    图 2.2.6.7 例子 7 效果图

    2.2.7 设置文本对齐方式

    void lv_label_set_align(lv_obj_t * label, lv_label_align_t align);
    

    参数:
    label: 标签对象
    align: 水平方向上的文本对齐方式
    记住,要想让标签的文本内容具有对齐的效果,那么必须得先保证标签对象具有指定的宽
    度,请看下面例子
    lv_obj_t *src = lv_scr_act();//获取屏幕对象
    lv_obj_t *label1 = lv_label_create(src,NULL);//创建对象
    lv_label_set_long_mode(label1,LV_LABEL_LONG_CROP);//设置长文本模式,不能设置为
    //LV_LABEL_LONG_EXPAND 模式,因为其指定不了宽度
    lv_obj_set_pos(label1,20,20);//设置坐标
    lv_obj_set_size(label1,100,50);//设置宽和高
    lv_label_set_text(label1,“Hello”);//设置文本内容
    lv_label_set_style(label1,LV_LABEL_STYLE_MAIN,&lv_style_plain_color);//设置具有背景色
    lv_label_set_body_draw(label1,true);//设置绘制背景
    lv_label_set_align(label1,LV_LABEL_ALIGN_CENTER);//设置文本居中对齐
    图 2.2.7.1 居中对齐效果

    2.2.8 是否使能文本重绘色功能

    void lv_label_set_recolor(lv_obj_t * label, bool en);
    

    参数:
    label: 标签对象
    en: 是否使能lv_label 标签控件
    开发指南 www.alientek.com
    9
    正点原子 littleVGL 开发指南
    使能之后,可以让标签的部分文本显示出不同的颜色,即一个标签里可以含有多种不同颜
    色的文本,这在其他的 GUI 库中,一般是办不到的,使用格式为: #十六进制颜色值 文本# ,
    注意了颜色值和文本之间至少得有一个空格,请看下面例子(只给出关键代码)
    lv_label_set_recolor(label1,true);//先得使能文本重绘色功能
    lv_label_set_text(label1,"#ff0000 red#,#00ff00 green#,#0000ff blue#");//使用了 3 次重绘色
    图 2.2.8 文本重绘色效果

    2.2.9 是否使能背景绘制功能

    void lv_label_set_body_draw(lv_obj_t * label, bool en);
    参数:
    label: 标签对象
    en: 是否使能
    默认情况下,lv_label 标签对象是没有背景的,即透明的,但是我们可以通过这个接口和样
    式使标签对象具有背景,请看如下例子
    lv_label_set_style(label1,LV_LABEL_STYLE_MAIN,&lv_style_plain_color);//设置主背景的样
    式为
    //lv_style_plain_color
    lv_label_set_body_draw(label1,true);//使能背景绘制
    lv_label_set_text(label1,“Hello world”);
    图 2.2.9.1 带有背景的效果

    2.2.10 设置动画时的速度

    void lv_label_set_anim_speed(lv_obj_t * label, uint16_t anim_speed);
    

    参数:
    label: 标签对象
    anim_speed: 动画速度,单位为 px/sec(一秒多少个像素)
    这个接口主要用来设置文本滚动(LV_LABEL_LONG_SROLL/SCROLL_CIRC 模式下)
    时的速度lv_label 标签控件
    开发指南 www.alientek.com
    10
    正点原子 littleVGL 开发指南

    2.2.11 设置样式

    static inline void lv_label_set_style(lv_obj_t * label, lv_label_style_t type, const lv_style_t *style)
    

    参数:
    label: 标签对象
    type: 哪一个部件的样式,目前就 LV_LABEL_STYLE_MAIN 主背景部件这一个可选值
    style: 样式

    2.2.12 插入文本

    void lv_label_ins_text(lv_obj_t * label, uint32_t pos, const char * txt);
    

    参数:
    label: 标签对象
    pos: 插入的位置,0 代表从最前面插入, LV_LABEL_POS_LAST 代表从最后面插入
    txt: 要插入的文本
    这个接口有一点需要注意,那就是必须得保证之前的文本是动态设置,而不能是静态文本,
    因为我们知道插入动作是修改内存的操作,而如果之前的文本是通过静态方式设置的话,那么
    此内存有可能是常量区(用 const 关键字修饰), 常量区内存是不能修改的

    2.2.13 剪切文本

    void lv_label_cut_text(lv_obj_t * label, uint32_t pos, uint32_t cnt);
    

    参数:
    label: 标签对象
    pos: 剪切的起始位置,从 0 开始
    cnt: 要剪切的字符数量
    剪切文本也可以理解成删除指定区域的文本,这个接口也同样有一点需要注意,那就是必
    须得保证之前的文本是动态设置,而不能是静态文本

    2.2.14 备注

    还有一些比较简单的 API 接口,我这里就不列出来了,通过看函数名就能知道大概啥意思
    了,这些接口基本都是 get 获取函数,用来获取对象的属性的lv_label 标签控件

    3.例程设计
    3.1 功能简介
    创建 label1 和 label2 俩个标签,label1 标签主要是用来做标题的,显示 label2 标签的当前长
    文本模式,而 label2 标签主要是用来演示 6 大长文本模式的,为 label2 标签注册了事件回调函
    数,通过点击 label2 标签,来循环切换 label2 标签的长文本模式,如果按下 KEY0 键的话,则是加
    大 label2 标 签 的 动 画 速 度 , 可 以 在 LV_LABEL_LONG_SROLL 和
    LV_LABEL_LONG_SROLL_CIRC 模式下观察到明显的动画快慢效果,如果按下 KEY1 键,则
    是在 label1 文本的最前面插入 OK 字符串,如果按下 KEY2 键,则是删除 label1 文本最前面的
    2 个字符
    3.2 硬件设计
    本例程所用到的硬件有:

    1. 串口 1
    2. KEY0,KEY1,KEY2 按键
    3. 液晶屏
      3.3 软件设计
      在 GUI_APP 目录下新建 lv_label_test.c 和 lv_label_test.h 俩个文件, lv_label_test.c 文件的内容
      如下:
      #include “lv_label_test.h”
      #include “lvgl.h”
      #include “delay.h”
      #include “usart.h”
      #include “key.h”
      lv_obj_t* label1;
      lv_obj_t* label2;
      //模式标题
      const char * const MODE_STR[] = {“EXPAND”,“BREAK”,“DOT”,“SROLL”,“SROLL_CIRC”,“CR
      OP”};
      //事件处理
      void event_handler(lv_obj_t * obj, lv_event_t event)
      {lv_label 标签控件
      开发指南 www.alientek.com
      12
      正点原子 littleVGL 开发指南
      static lv_label_long_mode_t mode = LV_LABEL_LONG_EXPAND;
      if(objlabel2)
      {
      if(event
      LV_EVENT_RELEASED)//触摸释放事件
      {
      lv_label_set_long_mode(label2,mode);//设置新的长文本模式
      if(modeLV_LABEL_LONG_EXPAND)//自动扩展模式
      {
      lv_label_set_text(label2,“EXPAND:0123456789ABCDEFGHIJKLMN\n
      I am xiong jia yu\nWho are you?”);
      }else if(mode
      LV_LABEL_LONG_BREAK)//自动换行模式
      {
      lv_obj_set_width(label2,100);
      lv_label_set_text(label2,“BREAK:Auto to break line”);
      }else if(modeLV_LABEL_LONG_DOT)//自动显示省略号模式
      {
      lv_obj_set_size(label2,100,40);
      lv_label_set_text(label2,“DOT:too long,0123456789ABCDEFGHIJKL
      MN”);
      }else if(mode
      LV_LABEL_LONG_SROLL)//自动前后滚动模式
      {
      lv_obj_set_size(label2,100,40);
      lv_label_set_text(label2,“SROLL:KEY0 to add speed”);
      }else if(modeLV_LABEL_LONG_SROLL_CIRC)//自动环形滚动模式
      {
      lv_obj_set_size(label2,100,40);
      lv_label_set_text(label2,“SROLL_CIRC:KEY0 to add speed”);
      }else if(mode
      LV_LABEL_LONG_CROP)//剪切模式
      {
      lv_obj_set_size(label2,100,40);
      lv_label_set_text(label2,“CROP:0123456789ABCDEF”);
      }
      lv_obj_realign(label2);//因为 label2 的大小发生了改变,为了让 label2
      //继续与屏幕保持居中对齐,可以调用重对齐接口
      lv_label_set_text(label1,MODE_STR[mode]);
      printf(“current long mode:%d\r\n”,mode);
      //切换到下一个模式
      mode++;
      if(mode>LV_LABEL_LONG_CROP)
      mode = LV_LABEL_LONG_EXPAND;
      }
      }
      }lv_label 标签控件
      开发指南 www.alientek.com
      13
      正点原子 littleVGL 开发指南
      //例程入口函数
      void lv_label_test_start()
      {
      lv_obj_t* scr = lv_scr_act();//获取当前活跃的屏幕对象
      //创建 label1 标签,用来显示 label2 标签的长文本模式
      label1 = lv_label_create(scr,NULL);//创建标签
      lv_label_set_long_mode(label1,LV_LABEL_LONG_BREAK);//设置长文本模式
      //设置宽度,一定得放在 lv_label_set_long_mode 的后面,否则不起作用的
      lv_obj_set_width(label1,160);
      lv_label_set_recolor(label1,true);//使能文本重绘色功能
      lv_label_set_text(label1,"#ff0000 Title:#mode");//设置文本,带有颜色重绘
      lv_label_set_align(label1,LV_LABEL_ALIGN_CENTER);//文本居中对齐
      //设置主背景样式
      lv_label_set_style(label1,LV_LABEL_STYLE_MAIN,&lv_style_plain_color);
      lv_label_set_body_draw(label1,true);//使能背景绘制
      //注意:设置与屏幕的对齐方式,这个接口也是跟调用位置有关系的,最好放到后面调
      //用,因为放的太前调用的话,
      //在那时标签对象的大小可能还是未知的,此时 lv_obj_align 接口就没办法算出对齐
      //之后的坐标,从而也就
      //达不到我们所要的对齐效果
      lv_obj_align(label1,NULL,LV_ALIGN_IN_TOP_MID,0,20);
      //创建 label2 标签
      label2 = lv_label_create(scr,NULL);//创建标签
      //设置主背景样式
      lv_label_set_style(label2,LV_LABEL_STYLE_MAIN,&lv_style_plain_color);
      lv_label_set_body_draw(label2,true);//使能背景绘制
      lv_obj_set_click(label2,true);//使能点击功能
      lv_obj_set_event_cb(label2,event_handler);//设置事件回调函数
      lv_label_set_text(label2,“Please click me!”);//设置文本
      lv_obj_align(label2,NULL,LV_ALIGN_CENTER,0,0);//设置其与屏幕居中对齐
      }
      //按键处理
      //注意:请按照先按 KEY0 键,再按 KEY1 键,最后按 KEY2 键的顺序来观察实验现象
      void key_handler()
      {
      u8 key = KEY_Scan(0);
      if(keyKEY0_PRES)
      {lv_label 标签控件
      开发指南 www.alientek.com
      14
      正点原子 littleVGL 开发指南
      //调节动画速度
      lv_label_set_anim_speed(label2,lv_label_get_anim_speed(label2)+5);
      printf(“anim speed:%d\r\n”,lv_label_get_anim_speed(label2));
      }else if(key
      KEY1_PRES)
      {
      //在 label1 文本的最前面插入 OK 字符串
      lv_label_ins_text(label1,0,“OK”);
      }else if(key==KEY2_PRES)
      {
      //删除 label1 文本最前面的 2 个字符
      lv_label_cut_text(label1,0,2);
      }
      }lv_label 标签控件
      开发指南 www.alientek.com
      15
      正点原子 littleVGL 开发指南
      3.4 下载验证
      请根据功能简介,一一验证实验效果,下面给出一张代码刚下载完后的初始界面效果
      图 3.4.1 初始界面效果
      注:如果是电阻屏的话,在开机之前可以先按住 KEY0 键不放,接着在开机(或按复位键也行),
      可以先进入到电阻屏触摸校准程序,校准完成后会自动进入到演示例程,此注意事项对以后的
      所有例程同样适用lv_label 标签控件
      开发指南 www.alientek.com
      16
      正点原子 littleVGL 开发指南
      4.资料下载
      正点原子公司名称 :广州市星翼电子科技有限公司
      LittleVGL 资料连接 : www.openedv.com/thread-309664-1-1.html
      原子哥在线教学平台 : www.yuanzige.com
      正点原子淘宝店铺 : https://openedv.taobao.com
      正点原子官方网站 : www.alientek.com
      正点原子 B 站视频 : https://space.bilibili.com/394620890
      电话: 020-38271790 传真: 020-36773971
      请下载原子哥 APP, 数千讲视频免费学习, 更快更流畅。
      请关注正点原子公众号,资料发布更新我们会通知。
    展开全文
  • @[toc](目标检测使用LabelImg标注VOC数据格式和YOLO数据格式——LabelImg使用详细教程文章目录:) 1 LabelImg介绍与安装 1.1 Label介绍 github是目标检测数据标注工具,可以标注标注两种格式: VOC标签格式,标注的...
    欢迎大家关注笔者,你的关注是我持续更博的最大动力


    原创文章,转载告知,盗版必究


    1 LabelImg介绍与安装

    1.1 Label介绍

    github是目标检测数据标注工具,可以标注标注两种格式:

    • VOC标签格式,标注的标签存储在xml文件
    • YOLO标签格式,标注的标签存储在txt文件中

    LabelImg的github主页地址:

    点我,带你去>https://github.com/tzutalin/labelImg

    2.1 LabelImg安装

    2.1.1 使用pip工具进行安装LabelImg (推荐)

    使用pip安装LabelImg安装时最简单的方式,首推,安装完之后会自动把LabelImg添加到环境变量中,这样你就可以在命令行中输入:labelimg直接打开该工具——windows用户强烈推荐此方法

    使用pip安装labelimg

    pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

    下面的方式是从源码开始安装LabelImg,一般比较麻烦,不推荐

    2.1.2 在Ubuntu Linux上安装LabelImg

    1、Python 2 + Qt4
    Python2的环境使用如下命令安装

    sudo apt-get install pyqt4-dev-tools
    sudo pip install lxml
    make qt4py2
    python labelImg.py
    python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
    

    2、Python 3 + Qt5 (Recommended)
    Python3的环境使用如下命令安装

    sudo apt-get install pyqt5-dev-tools
    sudo pip3 install -r requirements/requirements-linux-python3.txt
    make qt5py3
    python3 labelImg.py
    python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
    

    2.1.3 在macOS上安装LabelImg

    1、Python 2 + Qt4
    Python2的环境使用如下命令安装

    brew install qt qt4
    brew install libxml2
    make qt4py2
    python labelImg.py
    python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
    

    2、Python 3 + Qt5 (Recommended)
    Python3的环境使用如下命令安装

    brew install qt  # Install qt-5.x.x by Homebrew
    brew install libxml2
    
    or using pip
    
    pip3 install pyqt5 lxml # Install qt and lxml by pip
    
    make qt5py3
    python3 labelImg.py
    python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
    

    2.1.4 在Virtualenv虚拟环境中安装labelimg

    使用virtualenv创建虚拟环境可以避免python版本和QT版本带来的一些问题,当然你也可以用conda创建虚拟环境,道理是一样的

    brew install python3
    pip3 install pipenv
    pipenv run pip install pyqt5==5.13.2 lxml
    pipenv run make qt5py3
    python3 labelImg.py
    [Optional] rm -rf build dist; python setup.py py2app -A;mv "dist/labelImg.app" /Applications
    

    2.1.5 其他安装方法

    作者还给出了很多的其他安装方法,如docker安装方法等,大家可以去作者的github主页进行参考,这里我就不一一列举了!

    2 LabelImg的使用

    安装好之后,就是在命令行中打开LabeImg,在命令行中输入(因为安装完之后会自动添加到):

    LabelImglabelimg

    2.1 打开Labelimg

    我们在要标定数据的时候,一般是已经制定好了要标注物体的类别,这样在打开LabelImg之后,我们只要框定目标之后,选择要对应的标签即可。

    labelimg JPEGImage predefined_classes.txt

    说明:

    • JPEGImage 目录:存储的是图片的名字
    • Annotation 目录:用于存放标注图片的标签文件
    • predefined_classes.txt 文件:定义自己要标注的所有类别

    例如:我的predefined_classes.txt中定义的类别如下:

    circle_red
    circle_gray
    rectangle_red
    rectangle_gray
    fingeprint_red
    fingeprint_gray
    other
    

    执行命令,然后选择JPEGImage待标注图片数据文件夹,然后点选择文件夹,如下图:
    在这里插入图片描述
    选择好标注数据文件夹之后,即进入到了LabelImg的界面,如下图:
    在这里插入图片描述

    • 最上方显示的是当前标注图片的路径
    • Open Dir:待标注图片数据的路径文件夹,即选择JPEGImage文件夹
    • Change Save Dir:保存类别标签的路径文件夹,即选择Annotation文件夹
    • PascalVOC:标注的标签保存成VOC格式,在鼠标点一下就变成YOLO,即此时就会把标注的标签变成YOLO格式

    2.2 标注前先进行一些设置

    点击View显示如下图,然后把如下的几个选项勾上:

    • Auto Save mode:当你切换到下一张图片时,就会自动把上一张标注的图片标签自动保存下来,这样就不用每标注一样图片都按Ctrl+S保存一下了
    • Display Labels:标注好图片之后,会把框和标签都显示出来
    • Advanced Mode:这样标注的十字架就会一直悬浮在窗口,不用每次标完一个目标,再按一次W快捷键,调出标注的十字架。
      在这里插入图片描述

    2.3 标注常用的快捷键

    • W:调出标注的十字架,开始标注
    • A:切换到上一张图片
    • D:切换到下一张图片
    • Ctrl+S:保存标注好的标签
    • del:删除标注的矩形框
    • Ctrl+鼠标滚轮:按住Ctrl,然后滚动鼠标滚轮,可以调整标注图片的显示大小
    • Ctrl+u:选择要标注图片的文件夹
    • Ctrl+r:选择标注好的label标签存放的文件夹
    • ↑→↓←:移动标注的矩形框的位置

    使用标注的十字架,框住要标注的目标即可,如下图,是我对公章数据进行标注:

    • 标注的时候,会把predefined_classes.txt预定义的标加载出来,然后我们只要选择对应的标签即可
    • 右上角会显示已经标注目标的标签
      在这里插入图片描述

    3 VOC数据标签和格式和YOLO数据标签格式说明

    3.1 VOC数据格式

    VOC数据格式,会直接把每张图片标注的标签信息保存到一个xml文件中

    例如:我们上面标注的JPEGImage/000001.jpg图片,标注的标签信息会保存到Annotation/000001.xml文件中,000001.xml中的信息如下:

    <annotation>
    	<folder>JPEGImage</folder>
    	<filename>000000.jpg</filename>
    	<path>D:\ZF\2_ZF_data\3_stamp_data\标注公章数据\JPEGImage\000000.jpg</path>
    	<source>
    		<database>Unknown</database>
    	</source>
    	<size>
    		<width>500</width>
    		<height>402</height>
    		<depth>3</depth>
    	</size>
    	<segmented>0</segmented>
    	<object>
    		<name>circle_red</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>168</xmin>
    			<ymin>2</ymin>
    			<xmax>355</xmax>
    			<ymax>186</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>circle_red</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>2</xmin>
    			<ymin>154</ymin>
    			<xmax>208</xmax>
    			<ymax>367</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>circle_red</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>305</xmin>
    			<ymin>174</ymin>
    			<xmax>493</xmax>
    			<ymax>364</ymax>
    		</bndbox>
    	</object>
    </annotation>
    
    

    xml中的关键信息说明:

    • 图片的名字
    • 每个目标的标定框坐标:即左上角的坐标和右下角的坐标
      • xmin
      • ymin
      • xmax
      • ymax

    3.2 YOLO数据格式

    YOLO数据格式,会直接把每张图片标注的标签信息保存到一个txt文件中

    例如:我们上面标注的JPEGImage/000001.jpg图片,标注的标签信息会保存到Annotation/000001.txt文件中(同时会生成一个classes.txt文件,也保存到Annotation/classes.txt),000001.txt中的信息如下:

    0 0.521000 0.235075 0.362000 0.450249
    0 0.213000 0.645522 0.418000 0.519900
    0 0.794000 0.665423 0.376000 0.470149
    

    txt中信息说明:

    • 每一行代表标注的一个目标
    • 第一个数代表标注目标的标签,第一目标circle_red,对应数字就是0
    • 后面的四个数代表标注框的中心坐标和标注框的相对宽和高(进行了归一化,如何归一化可以参考我的这篇博客中的介绍

    同时会生成一个Annotation/classes.txt实际类别文件classes.txt,里面的内容如下:

    circle_red
    circle_gray
    rectangle_red
    rectangle_gray
    fingeprint_red
    fingeprint_gray
    other
    

    #4 常见问题

    ##4.1 每次打开labelimg都莫名奇妙出现很多标签

    如下图,我命名没有设置这些标签,但是莫名其妙出现这些标签,这个是我在linux系统中遇到的:

    在这里插入图片描述

    后面我去labelImg目录下全局搜索一下发现在data目录下有一个predefined_classes.txt文件,我打开查看了一下果然和上面给出的一样,这个文件在你克隆的时候就保留的,我感觉没有什么用,后面我删除了!

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述



    在这里插入图片描述


    在这里插入图片描述
    ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

    展开全文
  • label smooth的理解

    千次阅读 2020-09-09 11:21:45
    0. label smoothing的选择 label smoothing的选择 label smoothing是一种正则化的方式,全称为Label Smoothing Regularization(LSR),即标签平滑正则化。 在传统的分类任务计算损失的过程中,是将真实的标签做成...

    0. label smoothing的选择

    github实现地址:https://github.com/kleyersoma/Keras_Label_Smoothing

    label smoothing的选择

    label smoothing是一种正则化的方式,全称为Label Smoothing Regularization(LSR),即标签平滑正则化。

    在传统的分类任务计算损失的过程中,是将真实的标签做成one-hot的形式,然后使用交叉熵来计算损失。而label smoothing是将真实的one hot标签做一个标签平滑处理,使得标签变成又概率值的soft label.其中,在真实label处的概率值最大,其他位置的概率值是个非常小的数。

    在label smoothing中有个参数epsilon,描述了将标签软化的程度,该值越大,经过label smoothing后的标签向量的标签概率值越小,标签越平滑,反之,标签越趋向于hard label,在训练ImageNet-1k的实验里通常将该值设置为0.1。

    label_smoohing相当于一种正则方式,在相对较小的模型上,精度提升不明显甚至会有所下降,下表展示了ResNet18在ImageNet-1k上使用label_smoothing前后的精度指标。可以明显看到,在使用label_smoothing后,精度有所下降。

    image

    较大的模型使用label smoothing可以有效的提升模型的精度,较小的模型使用此种方法可能会降低模型精度。所以在决定是否使用label_smoohing前,需要评估模型的大小和任务的难易程度。

     

    软标签编码和硬标签编码的不同之处在于:

    [1] - 硬编码的类别标签向量是二值的,如,一个类别标签是正类别,其他类别标签为负类别.

    [2] - 软编码的类别标签中,正类别具有最大的概率;其他类别也具有非常小的概率.

     

    1.背景介绍

    图像分类的任务是从一组固定的类别中为输入图像分配一个标签。这是计算机视觉的核心问题之一,尽管它很简单,但却有大量的实际应用。
    例如,在下面的图像中,一个图像分类模型接受一个图像,并将概率分配给两个标签,{cat, dog}。如图所示,请记住,对于计算机来说,图像是由一个大的三维数字数组表示的。
    在本例中,cat图像为248像素宽,400像素高,有红、绿、蓝(或简称RGB)三种颜色通道。因此,图像由248 x 400 x 3个数字或总共297,600个数字组成。每个数字都是一个从0(黑色)到255(白色)的整数。我们的任务是把这25万个数字变成一个单一的标签,比如“cat”。
    在这里插入图片描述

    2. 训练分类模型

    训练一个将图像分类为猫图像或狗图像的模型就是一个二元分类的例子。
    我们已经看到,在图像分类的任务是采取一个像素数组,代表一个图像,并分配一个标签给它。我们完整的流程可以形式化如下:

    • input:我们的输入由一组N个图像组成,每个图像都用K个不同的类中的一个标记。我们将这些数据称为训练集。
    • learning:我们的任务是使用训练集来学习每一节课的内容。我们将此步骤称为训练分类器或学习模型。

    3.数据标签出错问题

    但是如果你的训练数据包含了错误的标签呢?如果一只狗被贴上猫的标签呢?如果你从互联网上获取数据,这种数据错误标签可能会发生,互联网是获取数据的一个非常常见的来源。在这里插入图片描述
    这将最终导致您的问题,要么了解数据集中的噪声,要么了解不正确的特性。然而,这在一定程度上是可以避免的。如果您在一个小数据集上进行培训,您可以查看所有的标签并手动检查它们,或者外包来做这些脏活儿。下一节将分享另一种数学方法。
    所以,问题是你的模型将学习不正确的特征(从一只狗),并将这些特征与“猫”的标签联系起来。我们怎么解决呢?为了深入研究这个问题,我们来看看图像分类问题中使用的损失函数。
    在得到loss function之前,我们需要建立segmentation model,给出每个类别的概率:
    在这里插入图片描述
    在图像分类问题中,我们使用softmax loss,定义如下:

     L = −(y log ( p) +(1−y)log(1−p))
    
    • 这里,L是损失,y是真正的标签(0 - cat, 1 - dog), p是图像属于第1类的概率。模型的目标是减少损失。

    损失本质上驱动您的“梯度”,简单地说,这决定了模型的“学习”。因为这个原因,我们需要密切关注损失。
    假设你有一张狗的图片,有着0.99的可能性。你的损失将是:

    	L = -(1*(log(0.99) + (1–0.99)*log(0.01)) ≈ 0
    

    这很好!当预测准确时,损失应该很小!
    如果你的数据有错误的标签,这种损失会特别高,这将导致学习上的问题。
    那么我们该怎么做呢?在下一节中,我们将看到一种最小化错误标签损失的方法。

    4. Label Smoothing

    当我们将交叉熵损失应用于分类任务时,我们期望真正的标签是1,而其他的是0。换句话说,我们毫不怀疑真实的标签是真实的,而其他的则不是。总是这样吗?也许不是。许多手动注释是多个参与者的结果。他们可能有不同的标准。他们可能会犯一些错误。毕竟他们是人。因此,我们所坚信的基本真理可能是错误的。
    一个可能的解决办法是放松我们对标签的信心。例如,我们可以稍微降低损失目标值,从1降低到0.9。很自然地,我们为其他的目标值增加了0。这个想法被称为Label Smoothing。

    If label_smoothing is nonzero, smooth the labels towards 1/num_classes: new_onehot_labels = onehot_labels * (1 - label_smoothing) + label_smoothing / num_classes
    这是什么意思?
    假设你在训练一个二元分类模型。你的标签应该是0 - cat, 1 - not cat。
    现在,假设label_smoothing= 0.2
    利用上面的方程,我们得到:

      new_onehot_labels = [0 1] * (1 — 0.2) + 0.2 / 2 =[0 1]*(0.8) + 0.1
      new_onehot_labels =  [0.9 0.1]
    

    这些是软标签,而不是硬标签,即0和1。当出现错误预测时,这将最终降低您的损失,随后,您的模型将在较小程度上惩罚和学习错误。(不希望模型对其预测结果过度自信.
    本质上,标签平滑将帮助您的模型围绕错误的标签数据进行训练,从而提高其健壮性和性能。(标签平滑可以降低模型的可信度,并防止模型下降到过拟合所出现的损失的深度裂缝里.

     

    5.implementation in Pytorch

    class LabelSmoothingCrossEntropy(nn.Module):
        def __init__(self):
            super(LabelSmoothingCrossEntropy, self).__init__()
        def forward(self, x, target, smoothing=0.1):
            confidence = 1. - smoothing
            logprobs = F.log_softmax(x, dim=-1)
            nll_loss = -logprobs.gather(dim=-1, index=target.unsqueeze(1))
            nll_loss = nll_loss.squeeze(1)
            smooth_loss = -logprobs.mean(dim=-1)
            loss = confidence * nll_loss + smoothing * smooth_loss
            return loss.mean()
    
    from utils import LabelSmoothingCrossEntropy
    
    criterion = LabelSmoothingCrossEntropy()
    loss = criterion(outputs, targets)
    loss.backward()
    optimizer.step()
    

    6.进一步的学习

    When Does Label Smoothing Help?

    展开全文
  • Yarn node label实践

    千次阅读 2019-03-29 23:45:14
    文章目录背景Yarn node label简介测试小结详细测试过程修改队列配置增加node label查看node labelmr作业测试spark submit 验证验证结论Attention参考附录 背景 提出对Yarn node label调研实践,根据机器配置和应用...
  • self.label_relief_text = Label(self.root, text='标签样式:', fg='blue') self.label_relief_flat = Label(self.root, text='边框平坦', relief=FLAT) self.label_relief_sunken = Label(self.root, text='边框...
  • Label Studio 入门

    千次阅读 2020-07-27 20:56:17
    Label Studio是一个独立的Web应用程序,用于多类型数据标记和探索。 后端是用纯Python编写的,由Flask提供支持。 前端部分是一个与后端无关的React+MST应用程序,包括在一个预编译脚本中。 以下是Label Studio工作流...
  • saveFile") self.label_filePath = QtWidgets.QLabel(self.centralwidget) self.label_filePath.setGeometry(QtCore.QRect(200, 380, 291, 61)) self.label_filePath.setWordWrap(True) self.label_filePath....
  • outer_num_, dim, inner_num_, has_ignore_label_, ignore_label_, counts, has_label_smooth_,label_smooth_,num_class); if (has_label_smooth_ && (label_smooth_>0.F)){ for (int c=0;c;c++){ float coeff ...
  • 语义分割数据集label的读取

    千次阅读 2019-06-23 12:56:27
    例如这次用得是cityscapes数据集。 第一步首先要找到数据集label颜色对应类别的列表:(这个一般在官网或者是github上会有,cityscapes我就是从github上找的...Label = namedtuple('Label', [ 'name', 'id', ...
  •   任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如...LABEL是一个更灵活的版本,可以替代MAINTAINER,LABEL可以设置任何需要设置的元数据
  • 是这样的,今天看RocketMQ的Client的时候,里面出现了一个写Java没有看到过的东西 - - 记录一下。 也是就是带标签的break; RocketMQ的Client中的使用 ... label122: { switch(communicationMode) { ...
  • 标签平滑Label Smoothing

    万次阅读 多人点赞 2019-09-03 09:36:24
    Label Smoothing的工作原理是对原来的[0 1]这种标注做一个改动,假设我们给定Label Smoothing的值为0.1: 可以看到,原来的[0,1]编码变成了[0.05,0.95]了。这个label_smoothing的值假设为ϵ,那么就是说,原来...
  • Bootstrap 标签 label

    千次阅读 2019-05-21 16:14:53
    Bootstrap提供的标签,主要用来显示提示信息等内容,它的基本样式通过 .label类实现,默认以圆角矩形呈现。如: <h1>Example heading<spanclass="label label-default">New</span></h1>...
  • Tkinter 组件详解(一):Label

    万次阅读 多人点赞 2018-12-18 21:35:06
    Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。 何时使用...
  • windows下使用labelImg标注图像

    万次阅读 多人点赞 2018-12-29 17:04:53
    工作中遇到一个更好用的标注软件,速度快,操作...用于深度网络训练的数据集做标注的方法和工具有好多,像Labelme、labelImg、yolo_mark、Vatic、Sloth等等,此处暂时只介绍其中的一种标注工具:labelImg。等到后期...
  • YOLO:labelImg使用+xml文件转为txt文件

    千次阅读 2020-07-03 22:28:28
    一、labelImg使用方法 1、软件图标的使用 (1)打开需要标记的图片文件夹 (2)修改保存路径(XML文件夹) (3)标注ROI区域,填写标签 (4)保存XML文件,有弹框提醒 (5)点击下一张图进行标记 2、软件快捷键...
  • HTML label标签介绍

    万次阅读 多人点赞 2017-06-03 15:03:14
    label标签介绍label标签为input元素定义标注(标记),它不会向用户呈现任何特殊效果,和span标签类似。但label标签和span标签最大的区别就是它为鼠标用户改进了可用性,可以关联特定的表单控件。label标签和特定表单...
  • pytorch: Label Smooth

    千次阅读 2019-09-21 13:59:36
    ignore = label.data.cpu() == self.lb_ignore n_valid = (ignore == 0).sum() label = label.clone() label[ignore] = 0 lb_one_hot = logits.data.clone().zero_().scatter_(1, label.unsqueeze(1), 1) label = ...
  • 成功解决label_error >= 0 && label_error < static_cast<int>(nclass) MultiClassEvaluation: label must be in [0, num_class), num_class=1 but found 1 in label' 目录 解决问题 ...
  • from标签,label标签

    万次阅读 2021-08-12 23:09:06
    from标签,label标签一、from标签1.简介2.语法3.案例二、label标签1.简介2.语法3.案例 一、from标签 1.简介 常常我们使用在一个网页中数据提交标签,比如我们留言板、评论等可以填写数据,提交处理地方都需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,176,864
精华内容 470,745
关键字:

label