精华内容
下载资源
问答
  • 制作自己的标注数据集
    千次阅读
    2022-03-14 10:27:15

    因为毕业要求嘛,自己做标注数据集,基础数据是舌动超声图像,从医院采集的舌动超声视频。

     

    主要思路是:

    1. 把视频划分成图像
    2. 逐帧进行标注
    3. 将标注信息显示在图像上,生成新的图像
    4. 将标图像合成视频

    话不多说开始上代码:

    首先我是使用matlab把视频划分成逐帧的图像

    %%将视频转换成帧图片
    clc;
    clear;
    close all;
    
    %% 读取视频
    video_path='path/***.avi';    
    video_obj=VideoReader(video_path);   
    
    frame_number=video_obj.NumFrames;
    
    
    %% 存储每一帧图片到文件夹image
    if ~exist('image_tongue_move1','dir')
        mkdir('image_tongue_move1');
        disp('successfully create directory image!');
    end
    
    
    
    %%生成逐帧图像
    for i=1:frame_number
        image_name=strcat('./image_tongue_move1/im_',num2str(i),'.jpg');   
        frame=read(video_obj,i);  
        frame0=frame(245:501,414:670);
        imwrite(frame0,image_name,'jpg');
    end
    
    disp('all images are written into directory image')
    

    第二步是把图像进行标注,我使用的是百度的easydl半自动标注平台,具体使用方法可以查看我的上一篇帖子:

    飞浆EasyDL半自动标注语义分割及数据导出_codting的博客-CSDN博客

    第三步是json格式的bbox放到图片上去,并生成新的图片

    import json
    import cv2
    import os
    #获取图片顺序,跳过未被标注的图像
    annpath='./annFile/'
    imgpath='./imageFile/'
    respath='./resultFile/'
    files = os.listdir(annpath)
    file_seq=[]
    #这里之所以要获得file_seq是因为在百度easydl里面下载的标注图像是不连续的
    #有一些难以标注的图像没有json标注文件,因此我们需要从json标注文件里面获得
    #已标注图像序列
    for i in range(len(files)):
        file_num=files[i].strip('im_')
        file_num=file_num.strip('.json')
        file_seq.append(file_num)
    
    #设置bbox参数
    font = cv2.FONT_HERSHEY_SIMPLEX
    class_name='tongue'
    #给每张图片画bbox,并保存在resultfile里面
    for i in file_seq:
        i=str(i)
        with open(annpath+'im_'+i+'.json', 'r') as f:
            a = json.load(f)
            xmin=a['labels'][0]['x1']
            xmax=a['labels'][0]['x2']
            ymin = a['labels'][0]['y1']
            ymax = a['labels'][0]['y2']
        image = cv2.imread(imgpath+'im_'+i+'.jpg')
        cv2.rectangle(image, (xmin, ymin), (xmax, ymax), (0, 0, 255), 2)
        cv2.putText(image,class_name,(xmin,ymin+11),font,0.6,(0,255,0),2)
        cv2.imwrite(respath+'im_'+i+'.jpg', image)
    print("over!!!")
    

    第四步把标注图片合成视频

    #定义图片合成视频程序,
    def imgs2video(imgs_dir, save_name):
        fps = 30
        #fourcc这个参数我也不知道有啥用,需要了解记得查官方文档
        fourcc = cv2.VideoWriter_fourcc('I', '4', '2', '0')
        video_writer = cv2.VideoWriter(save_name, fourcc, fps, (281,281))
    
        for i in file_seq:
            frame=cv2.imread(respath+'im_'+i+'.jpg')
            video_writer.write(frame)
    
        video_writer.release()
    
    imgs2video(respath, "DatasetId_313104_1646987593_1.avi")

    最终效果:

    更多相关内容
  • 盒子标注数据集
  • 口罩检测+2000张标注数据集 yolo格式
  • 资源总共包含2257张火灾、烟雾图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用。
  • 数据包括“笔” “金属罐子” “纸盒” “口罩” “电池” “药片胶囊” “纸张” “瓶子”8个种类,各1000+张,共计1w+张已标注好的VOC格式数据集。适合目标检测初学者以及垃圾分类训练模型使用的数据集
  • 资源总共包含2231张吊车图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • labelImg(标注数据集工具)
  • 火焰烟雾已标注数据集1000张
  • 资源总共包含319张鸟窝图像,自己外出拍摄,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 资源总共包含1998张挖掘机图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 资源总共包含2257张火灾、烟雾图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 资源总共包含806张俯视角度下的安全帽和人的视频抽帧图像,每隔30帧抽取1帧,防止图片重复,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 序列标注的网络原始数据集
  • 火焰已标注数据集500张.zip
  • 火焰已标注数据集500张,已标注,yolo
  • 资源总共包含1280张俯视角度下的视频抽帧过后的火灾烟雾图像,每隔30帧抽取1帧,防止图片重复,资源稀缺,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • yolov3火焰烟雾数据集,4千多张,全部已标注。并且本人用yolov3跑了一下,可以正常识别
  • ner数据集,斯坦福出品,用于序列标注,实体命名等等的一个数据集。是测试非常好用的一个数据集
  • web安全数据集,可以用于入侵检测,包含标注数据集与原始数据集,主要用于机器学习和深度学习在安全领域建模。
  • 火焰已标注数据集2000张
  • 资源总共包含1379张鸟窝图像,包含自己外出拍摄的图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 资源总共包含654张三轮车图像,标注仔细,质量是经过严格把控的,已经标注成voc和yolo两种格式,开箱即用
  • 数据集标注

    2018-08-05 14:52:10
    window版本的图像标注工具,下载解压后直接可用。 使用简单,直接上手,标签可自定义,输出文件为xml格式。
  • 标注的车牌数据集.zip
  • 高质量人车识别VOC数据集1000张(xml文件),本人亲测训练后检测效果良好,纯手工标注,质量保证
  • 水面垃圾目标检测数据集1000张,实际的项目数据集,已标注,水面垃圾目标检测
  • 工程车辆数据集1000张,项目数据,已标注,可直接进行训练,几乎包括所有工程车辆,种类包括:重型卡车,沥青车,搅拌车,清障车,洒水车,拖拉机,挖掘机,压路机,吊车,自卸车等
  • 数据集分为三部分,Annotations,Imagenet,JPEGImages,JPEGImages文件夹中大概有3000+的抽烟图片,并每个用labelImg做了标注,生成了对应xml文件放在Annotations文件夹中。
  • 车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据集,已经标注完。车辆数据...
  • 近日,51WORLD发布了全球首个多传感器虚拟标注数据集,可用于训练自动驾驶模型,帮助推动L5级无人驾驶的发展。 关键词:自动驾驶 虚拟数据集 激光雷达 摄像头仿真 一个重磅的自动驾驶数据集来了! 近日,51WORLD...

    自动驾驶的赛道依然火热,除了技术方面的提升,对高质量数据的需求也不断加大。近日,51WORLD发布了全球首个多传感器虚拟标注数据集,可用于训练自动驾驶模型,帮助推动L5级无人驾驶的发展。


    关键词:自动驾驶 虚拟数据集 激光雷达 摄像头仿真

    一个重磅的自动驾驶数据集来了!

    近日,51WORLD发布了全球首个多传感器虚拟标注数据集,以较低成本解决了传感器数据“两难”问题,即:极限工况下的数据采集难和精准标注难。有效升级传感器融合算法的测试和训练。

    51WORLD虚拟标注数据是基于自研的自动驾驶仿真测试平台51Sim-One生成及标注。该平台集静态和动态数据导入、传感器仿真、动力学仿真、可视化、测试与回放、虚拟数据集生成,在环测试等为一体。功能模块覆盖自动驾驶仿真测试的全流程,兼具规模,高精度和高真实感,并可自动完成多传感器原始数据(图像和点云)和真值的同步输出。

    作为全球首个多传感器虚拟标注数据集,此次发布不仅涵盖了常见摄像头仿真数据集,还包括激光雷达仿真数据集、以及对于自动驾驶系统有挑战性的极限工况、复杂道路、天气条件等。结合仿真软件的平台优势及全自动标注优势,51WORLD打造的高质量虚拟标注数据集,目前已向全社会免费提供。

    一、数据“真”+ 标注“准”+ 免费开放

    虚拟标注数据集的最大难点在于如何实现“物理真实”。如果不够真,建立此基础上的数据集也就成了空中楼阁,用不准确的数据来训练或测试视觉算法也只会谬以千里了。

    为了保证虚拟标注数据集的真实性,51Sim-One仿真的每个模块都来源于真实世界,包括静态场景和道路的从采集到构建,真实车辆驾驶行为和人类行为的建模,极端案例工况的提取和泛化,物理真实的车辆动力学和传感器等。

    传感器仿真是建立在51Sim-One高精度和多样化的静态和动态场景之上,仿真模型完全由真实世界数据驱动,采用基于真实传感器标定的物理级传感器仿真的方法,仿真结果输出了无限接近于真实世界的虚拟标注数据集。

    虚拟标注数据集的验证采用与真实物理世界的对比交叉验证方法,并采用深度学习目标识别和语义分割对虚拟标注数据集进行评价。仿真数据集可以用来补充真实数据集的天气、光照和极限工况的多样性,并且具有像素级精确度的完美标注。采用大量仿真数据和少量真实数据混合训练的模型,可以超过大量真实数据训练的模型性能。

    针对当前自动驾驶感知算法训练和测试的核心痛点,51WORLD虚拟标注数据集开发了对应的功能,主要包括:

    ✮ 物理真实的光照
    ✮ 参数化的天气系统
    ✮ 基于真实传感器标定的物理级摄像头和激光雷达仿真
    ✮ 支持车侧、路侧、空侧等多个视角的2D/3D包围盒真值输出
    ✮ 支持深度图、语义分割图、实例分割图、光流等像素级真值输出
    ✮ 多个传感器数据集的完美同步

    本次的数据集还有一个特色,就是没有使用限制,免费开放给社会及行业研究使用。

    二、核心功能

    以51Sim-One中自带的原子场景生成的虚拟数据集,包括以下核心功能:

    1、物理真实的光照

    仿真场景基于物理的光照,保证能量守恒。太阳光照度根据不同波长的光谱辐射度以及真实太阳数据实时计算,同时也可以直接把照度计测得的光照度输入仿真场景。

    用户可以参数化定量控制所有太阳光、环境光和人造光强度。光线反射包括金属反射、玻璃反射、地面积水反射等不同反射类型,反射效果由当前环境实时计算。所有静态和动态物体的阴影都实时计算和更新,包括夜晚光照的阴影。支持逆光和地面积水反光条件下,摄像头镜头的炫光和泛光仿真。

    在这里插入图片描述▲ 光照仿真-早晨

    在这里插入图片描述▲ 光照仿真-雨天

    在这里插入图片描述▲ 光照仿真-逆光

    在这里插入图片描述▲ 光照仿真-夜晚

    2、参数化的天气系统

    对于不易获取的雨雪雾等特殊天气的数据集,51Sim-One支持物理真实的天空、云层、雨、雪、雾等参数化设置。材质效果会与不同天气完全联动。天空包括不同时间和天气的天空模型。云层支持高层云、体积云、火烧云、云层阴影以及云量厚度等。雨天支持雨密度、粒子大小、降落速度以及地面干湿度等设置。雪天支持雪密度、粒子大小、降落速度以及地面积雪量等设置。雾天支持薄雾、浓雾等不同能见度范围的设置。对应于不同天气,地面则可以设置不同的积雨、积雪和脏迹。

    在这里插入图片描述▲ 天气仿真-多云

    在这里插入图片描述▲ 天气仿真-雨天

    在这里插入图片描述▲ 天气仿真-雪天

    在这里插入图片描述▲ 天气仿真-雾天

    3、从标定进仿真
    —— 基于真实传感器标定的物理级摄像头和激光雷达仿真

    51Sim-One摄像头仿真基于环境物体的几何空间信息构建对象的三维模型,并根据物体的真实材质与纹理,通过计算机图形学对三维模型添加颜色与光学属性等。包括单目、双目和鱼眼摄像头的仿真。

    摄像头仿真通过坐标系转换的方法,将三维空间中的点通过透视关系变换为图像上的点。需要对相机镜头的结构与光学特性,相机传感器数据采集和处理过程,相机图像信号处理过程,以及部分集成AI芯片的相机目标级识别结果进行仿真。具体流程如下:

    在这里插入图片描述▲ 摄像头仿真过程

    摄像头仿真的基本参数包括摄像头的外参、内参和畸变参数,具体包括安装位置、角度、工作频率、分辨率、视场角、焦距和桶形、枕形畸变参数等。这些参数会内部转换为投影矩阵,保证世界坐标系 -> 相机坐标系 -> 图像坐标系 -> 像素坐标系整个过程的正确转换,并输出与真实相机效果一致的图像。

    在这里插入图片描述▲ 摄像头仿真效果示例

    51Sim-One摄像头仿真包含的具体参数如下:

    ✮ 支持设置摄像头安装位置、角度外参仿真。
    ✮ 支持频率、分辨率、视野范围、焦距、焦距Fx, 焦距Fy等内参仿真。
    ✮ 支持白平衡、色彩还原、动态范围、信噪比、清晰度、伽马等物理参数仿真。
    ✮ 支持摄像头缺陷参数仿真,包括炫光、泛光、晕影、色散紫边、畸变、噪点等。

    下面为四款摄像头拍摄某场景时的效果,分别为正常摄像头、高对比度摄像头、色温偏暖且镜头清晰度低摄像头、以及色调略微偏绿摄像头。

    在这里插入图片描述

    ▲ 摄像头仿真-正常
    在这里插入图片描述

    ▲ 摄像头仿真-高对比度
    在这里插入图片描述

    ▲ 摄像头仿真-暖色温清晰度低
    在这里插入图片描述

    ▲ 摄像头仿真-色调偏绿

    下面为另外四款摄像头拍摄某场景时的效果,分别为桶形畸变、炫光、低曝光噪点、晕影暗角。

    在这里插入图片描述

    ▲ 摄像头缺陷参数-畸变
    在这里插入图片描述

    ▲ 摄像头缺陷参数-炫光
    在这里插入图片描述

    ▲ 摄像头缺陷参数-低曝光噪点
    在这里插入图片描述

    ▲ 摄像头缺陷参数-晕影

    51Sim-One激光雷达仿真则是根据真实激光雷达的扫描方式,模拟真实雷达光电发射和接收的工作过程,激光与仿真场景中所有物体求交。根据相交点的物理材质类型和属性计算出该点的激光反射强度和噪声。51Sim-One激光雷达仿真支持国内外主流机械旋转式激光雷达和MEMS混合固态激光雷达的仿真。鉴于求交算法计算复杂度高,激光雷达仿真时会利用GPU并行计算的方式来提高扫描效率,以达到实时仿真的效果。51Sim-One使用基于GPU加速的激光雷达仿真方法和RTX显卡实时光线追踪技术,仿真出无限接近于真实世界的激光雷达点云。

    激光雷达反射强度跟不同物理材质对激光雷达所使用的近红外光线反射率有关。反射强度受到障碍物距离、激光反射角度以及障碍物本身的物理材质影响。仿真时需要给场景资源设置合适的物理材质,包括各种道路、人行道、车道线、交通牌、交通灯、汽车和行人等。每一种物理材质的激光反射率都不相同。51Sim-One激光雷达反射强度模型从真实雷达扫描数据中提取,用来驱动仿真模型。每一种物理材质在当前激光雷达下的反射强度和噪声都通过实际标定获得。

    激光雷达仿真参数除了支持安装位置、角度、工作频率、最大探测距离、线数、水平分辨率和水平视场角之外,还支持每一条线垂直扫描角度的单独设置,以及905nm激光雷达在不同光照和不同天气(雨、雪、雾)影响下的激光雷达模型。下图分别为8线、16线、32线和64线激光雷达的仿真效果,以及激光雷达语义分割展示。

    在这里插入图片描述

    ▲ 激光雷达仿真8线视场角110°
    在这里插入图片描述

    ▲ 激光雷达仿真16线
    在这里插入图片描述

    ▲ 激光雷达仿真32线中间密两边疏
    在这里插入图片描述

    ▲ 激光雷达仿真64线
    在这里插入图片描述

    ▲ 激光雷达仿真点云语义分割

    4、二维/三维框标注
    —— 支持车侧、路侧、空侧等多个视角的2D/3D包围盒真值输出

    自动驾驶目标检测和跟踪算法需要识别感兴趣目标的位置和大小等信息,包括交通牌、交通灯、机动车、非机动车和行人等。51WORLD虚拟标注数据集可以提供完美贴合的2D/3D包围盒信息,包括障碍物的唯一ID、类型、位置、朝向、速度和大小等信息;支持多个类型的遮挡剔除比例的设置;针对2D包围盒,同时支持AABB框(与坐标轴对齐)和OBB框(带旋转)两种类型。

    仿真传感器可以安装在自动驾驶车(车侧)、道路监控杆或龙门架(路侧)、无人机(空侧)等多个视角。对于无人机视角的数据集,带旋转的OBB框则显得尤为重要。下图分别为车侧、路侧、空侧AABB框、空侧OBB框示例。

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    ▲ 车侧摄像头、路侧摄像头、 空侧摄像头AABB框、空侧摄像头OBB框

    5、像素级标注
    —— 支持深度图、语义分割图、实例分割图、光流等像素级真值输出

    除了2D/3D包围盒真值,51WORLD虚拟标注数据集还提供深度图、语义分割、实例分割、光流等人工更难标注的数据集。后面将要介绍的示例数据的对应的带2D包围盒的RGB图像如下:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    ▲ 2D包围盒

    图像空间是二维的,深度信息需要使用单相机深度估计或者双目相机来获得。51WORLD虚拟标注数据集提供了每幅RGB图像对应的深度图真值,可用于相关算法的开发。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述
    ▲ 深度图

    语义分割可以提供比包围盒更加准确的像素级真值信息。51Sim-One语义分割支持30类物体的自动化标注。分类和颜色标准参照了Cityscape数据集。比如车辆这块会分为小汽车、货车、大巴、火车、摩托车、自行车等。具体效果如下:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    ▲ 语义分割

    在语义分割中,每一种类型的物体都会标注为一种颜色;而在实例分割中,同类型不同物体实例都会标记为不同颜色。如下图所示,实例分割主要标注自动驾驶交通相关的物体,包括车、人、交通牌和交通灯等。当然51Sim-One也支持把语义分割和实例分割结合起来,产生全景分割的数据集。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    ▲ 实例分割

    51Sim-One也支持前向光流和后向光流的标注。光流仿真基于不同帧像素之间的相对运动,在运动物体的识别和跟踪中有着重要作用。这种相对运动采用人工标注会异常复杂。而采用仿真则可以自动化的生成包含每个像素运动信息的稠密光流。下图为光流真值数据的可视化图,用不同颜色来区分不同的像素运动速度。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    ▲ 光流

    6、多个传感器数据集的完美同步

    自动驾驶车上一般会在不同位置和角度安装多个不同配置的传感器,包括多个摄像头、激光雷达和毫米波雷达等。但真实数据采集和标注不易,跨越多个传感器的标注就更加复杂。51Sim-One则提供了多传感器完美同步的数据集。多传感器信息融合的仿真采用实时多传感器分布式的方式。主服务器负责总控和协调所有传感器节点,传感器节点按照各自的帧率运行并产生图像、点云和毫米波雷达数据。所有生成的数据再实时的发往感知系统、或者直接记录存储到磁盘中。以下分别为安装于车顶4个方向,FOV为90°的4个摄像头的实时同步效果。

    在这里插入图片描述

    ▲ 多摄像头同步仿真

    区别于对接自动驾驶算法时的多传感器实时同步,传感器数据集采用离线同步的方式。当传感器采用相同帧率或倍数帧率输出数据集时,所有传感器的输出会严格时间同步。从前面的多个类型数据集介绍我们已经看到,每个类型的数据都是完全同步的,精确到每一辆车的位置和朝向、每一个行人的姿态和动作。同样利用51Sim-One的传感器数据集同步机制,摄像头和激光雷达数据也可以做到完全同步,这点可以从前面的激光雷达仿真效果展示可以看到。基于完全同步的摄像头和激光雷达数据集,我们可以更方便的做感知融合算法的测试和训练。

    下图为在51Sim-One中,摄像头仿真数据集和激光雷达仿真数据集同步效果展示。

    在这里插入图片描述

    ▲ 多传感器同步-激光雷达仿真
    在这里插入图片描述

    ▲ 多传感器同步-摄像头仿真

    三、数据集有了,到底该怎么用

    1、本次内容

    此次发布的虚拟标注数据集是基于51Sim-One 1.2版本,使用64线机械旋转式激光雷达,1080P FOV60°的仿真摄像头。两者都安装于车顶同一位置(相对于GNSS 坐标 [1, 0, 1.8] 米处)。

    本期数据集分为单帧数据集和连续帧数据集。其中单帧数据集包括8888张RGB图像,连续帧包括2700张图像,单帧数据集每一帧RGB图像支持自动修改时间、光照、云层和部分传感器参数配置,以便增加数据集的多样性。具体效果如下:

    在这里插入图片描述

    ▲ 单帧数据集自动泛化

    除了RGB图,单帧数据集的每一帧还包括对应的2D/3D 包围盒、深度图、语义分割、实例分割、带强度点云和语义分割点云等。连续帧数据集则没有泛化,以每秒10帧的频率自动化产生所有图像数据和真值。下图为本次发布的数据集中的连续帧数据集示例,分别为RGB图和实例分割图。

    在这里插入图片描述

    ▲ 连续帧数据集RGB图像
    在这里插入图片描述

    ▲ 连续帧数据集实例分割

    在本次发布的连续帧数据集中,还包含了视频流数据集和光流数据集。其中视频流数据集包括了多个不同天气的30HZ的仿真视频流,包括多云、傍晚、夜晚、雨天、雾天、雪天等等。本期数据集的具体内容如下表所示:

    在这里插入图片描述

    ▲ 数据集发布内容

    为了方便使用本次发布的数据集,我们的资料包中还提供了转换脚本和配套深度学习示例。数据集的详细使用介绍请参照我们的数据集使用文档。

    2、如何下载?

    扫描文章下方二维码,点击“公开数据集”进行下载申请,即可第一时间获得免费试用。

    在这里插入图片描述


    本次发布的虚拟标注数据集一期以车辆为主,在今年11月份的51WORLD地球克隆4发布会上,我们将更新发布包括行人和非机动车以及毫米波雷达虚拟数据集,敬请期待!


    在这里插入图片描述

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,564
精华内容 44,225
关键字:

标注数据集