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

主要思路是:

  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_numberimage_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');
enddisp('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")

最终效果:

制作自己的标注数据集相关推荐

  1. 用tf-faster-rcnn训练自己制作的车牌号数据集(VOC2007格式)

    参考链接:http://ai.baidu.com/forum/topic/show/595975 https://github.com/endernewton/tf-faster-rcnn https ...

  2. 制作自己的ctpn数据集

    制作自己的ctpn数据集 1.利用label-image标注自己的数据集,保存为.txt文件,结果如下: 上图第一列 0:标签 后面的小数是label-image标注的坐标框位置(归一化后的结果) 2 ...

  3. TensorFlow 制作自己的TFRecord数据集

    TensorFlow 制作自己的TFRecord数据集 准备图片数据 网上下载了2类吉他和房子的图片, 全部 resize成64*64大小 如下图, 保存项目下: 现在利用这2 类 共108张图片制作 ...

  4. 数据集标注工具_如何提高数据标注质量,提供精细化标注数据集?丨曼孚科技...

    监督学习下的深度学习算法训练十分依赖于标注数据,然而目前数据标注行业在精细化运营方面仍有诸多不足. 相关数据显示,当下数据标注行业单次交付达标率低于50%,三次内交付达标率低于90%,远远不能满足AI ...

  5. Flickr30k图像标注数据集下载及使用方法(转载的,备忘)

    Flickr30k图像标注数据集下载及使用方法 这是该博主贴的链接:Flickr30k图像标注数据集下载及使用方法 直接从百度云盘中下载 链接:https://pan.baidu.com/s/1r0R ...

  6. 重磅自动驾驶数据集来了!全球首个多传感器虚拟标注数据集免费开放

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

  7. 超分辨率重建数据集制作:生成低分辨率数据集

    目录 背景 代码 结果 其他 注意: 超分主流有两种BI.BD. 1.实际上公认的是使用MATLAB进行插值. 2.Bicubic(双三次插值)方式.(BI方式) 3.高斯模糊+双三次插值是另一种常用 ...

  8. Duplicate Cleaner - 重复文件 / 相似文件扫描 - 构建深度学习标注数据集

    Duplicate Cleaner - 重复文件 / 相似文件扫描 - 构建深度学习标注数据集 https://www.duplicatecleaner.com/ Duplicate Cleaner ...

  9. 从零开始制作人脸表情的数据集

    一.背景 人脸表情识别网上已有很多教程,大多基于fer2013数据集展开的.现在的问题就在于fer2013数据集的数量太少,表情的区分度不够明显,大部分基于此数据集的模型,其识别精度仅有70%左右. ...

最新文章

  1. Swift常量和变量
  2. 如何查看其他人的ABAP authorization check log
  3. 图解算法学习笔记(三):递归
  4. 认识星座、八大行星的观察
  5. 面向小姐姐的编程——java面相对象之抽象
  6. Maven使用创建项目(一)
  7. 用html编写你好,02 - HTML5第一个项目:HelloWorld!(收藏)
  8. 连续两天,8 大技术论坛,微软超 60 个烧脑议题等你来战
  9. [设计模式]装饰者模式
  10. k8s重要概念及部署k8s集群
  11. 数据库编程之嵌入式SQL
  12. 番茄社区门店系统新增跑腿和空码功能
  13. 计算机学科发表顶级期刊论文,计算机类顶级期刊_计算机顶级期刊_mcs数学与计算机期刊...
  14. 梦碎IPO的百果园,给水果零售业敲了个警钟
  15. Oracle KEEP的用法
  16. Ubuntu18.04+KinectV1(XBOX360)+ORB_SLAM2
  17. 分水岭算法java,C++实现分水岭算法(Watershed Algorithm)
  18. 室内环境下的3D 目标检测调研
  19. linux 视频电话,多人音视频通话-Linux开发集成-SDK开发集成-音视频通话-网易云信开发文档...
  20. 关于 The document “(null)” requires Xcode 8.0 or later. 解决方法

热门文章

  1. BI神器Power Query(18)-- PQ制作时间维度表(7)
  2. Beta阶段站立会议-02
  3. 耐威迪综合布线可视化管理软件与Visio在数据中心应用中的区别
  4. Nvidia GPU的浮点计算能力(FP64/FP32/FP16)
  5. Hibernate学习-14:实体之间的关系及其配置,级联操作
  6. 《人工智能》课程习题
  7. 【IntelliJ IDEA】idea修改文件的file is read-only
  8. 如何从“零开始”创建自己的 Docker 基础镜像
  9. matlab限幅器无饱和怎么设置,基于MATLAB 的直流电动机双闭环调速系统的仿真研究...
  10. 英语语言学论文选题 计算机,88个英语语言学、语言论文题目选题参考