1.下载数据集

下载地址:http://benchmark.tusimple.ai/#/t/1/dataset

2.解压

解压之后会有json文件

3.使用脚本读取json文件将原始数据集转换成训练数据和标签

import cv2
import json
import numpy as npbase_path = r"I:\dataset\train_set"file = open(r'I:\dataset\train_set\label_data_0601.json', 'r')
image_num = 3216
for i in ["gt_image_binary","gt_image_instance", "image"]:path = os.path.join(base_path, i)if not os.path.exists(path):os.mkdir(path)print("the dir is created!")else:print("the dir is exist!")
for line in file.readlines():data = json.loads(line)file_path = os.path.join(base_path, data['raw_file'].replace("/", "\\"))image = cv2.imread(file_path)binaryimage = np.zeros((image.shape[0], image.shape[1], 1), np.uint8)instanceimage = binaryimage.copy()arr_width = data['lanes']arr_height = data['h_samples']width_num = len(arr_width)height_num = len(arr_height)for i in range(height_num):lane_hist = 0for j in range(width_num):if arr_width[j][i - 1] > 0 and arr_width[j][i] > 0:binaryimage[int(arr_height[i]), int(arr_width[j][i])] = 255instanceimage[int(arr_height[i]), int(arr_width[j][i])] = lane_histif i > 0:cv2.line(binaryimage, (int(arr_width[j][i - 1]), int(arr_height[i - 1])),(int(arr_width[j][i]), int(arr_height[i])), 255, 10)cv2.line(instanceimage, (int(arr_width[j][i - 1]), int(arr_height[i - 1])),(int(arr_width[j][i]), int(arr_height[i])), lane_hist, 10)lane_hist += 1string1 = base_path+"\gt_image_binary\\" + str(image_num) + ".png"string2 = base_path+"\gt_image_instance\\" + str(image_num) + ".png"string3 = base_path+"\image\\" + str(image_num) + ".png"print(string1, string2, string3)cv2.imwrite(string1, binaryimage)cv2.imwrite(string2, instanceimage)cv2.imwrite(string3, image)image_num = image_num + 1
file.close()

4.将处理好的训练集和测试集写入txt文件

import random
def divide(p, list):train = []val = []for x in list:if random.random() <= p:train.append(list[x])else:val.append(list[x])return train, val
fo1 = open(r"I:\dataset\tusimple\test_set\train.txt", "w")
fo2 = open(r"I:\dataset\tusimple\test_set\val.txt", "w")
num = 3625
list = []
for i in range(0, num + 1):list.append(i)
p = 0.8
train, val = divide(p, list)
print(train)
str1 = "I:\dataset\\tusimple\\test_set\image\\"
str3 = ".png I:\dataset\\tusimple\\test_set\image\gt_image_binary\\"
str4 = ".png I:\dataset\\tusimple\\test_set\image\gt_image_instance\\"
str5 = ".png\n"
for i in train:str2 = str(i)str0 = str1 + str2 + str3 + str2 + str4 + str2 + str5print(str0)fo1.write(str0)num = num + 1
fo1.close()
for i in val:str2 = str(i)str0 = str1 + str2 + str3 + str2 + str4 + str2 + str5fo2.write(str0)num = num + 1
fo2.close()

tusimple数据集转换流程相关推荐

  1. tusimple数据集(json)转换脚本

    Lanenet开源代码,用tusimple数据集进行训练,需要将.json数据集转换为readme中的图像格式.于是,手动写个python脚本转换工具. lanenet github地址:https: ...

  2. 批量下载百度搜索图片+labelimg制作自己的数据集+转换至Yolo-v5训练数据集

    由于课题需要,需要自己制作数据集进行训练,目前是自己制作的第二个数据集,发现有某些细节已经忘记,记录备忘,同时为后来者提供借鉴.文章以car-tank数据集做为例子介绍 整体流程: 1.准备数据:从各 ...

  3. 车道线识别 tusimple 数据集介绍

    1.tusimple 数据集介绍 标注json 文件中每一行包括三个字段 : raw_file : 每一个数据段的第20帧图像的的 path 路径 lanes 和 h_samples 是数据具体的标注 ...

  4. 制作 tusimple 数据集格式的数据

    1.tusimple 数据集介绍 标注json 文件中每一行包括三个字段 : raw_file : 每一个数据段的第20帧图像的的 path 路径 lanes 和 h_samples 是数据具体的标注 ...

  5. LaneNet车道线检测tusimple数据集处理

    tusimple数据集处理 一.下载数据集 1.官方下载地址 https://github.com/TuSimple/tusimple-benchmark/issues/3,数据集很大,下载速度超级慢 ...

  6. 创建自己的tusimple数据集格式

    为了训练自己的车道线检测模型,由于tusimple数据集场景较为单一,因此自己标注了一个数据集 模型:lanenet 数据集格式:tusimple 标注工具:labelme 第一步:原始数据集标注 1 ...

  7. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  8. php树形结构变成线性结构,php把数据集转换成树状结构,无限极分类生成树状 – CSDN博客...

    直接上代码,在onethink里面使用的转换树状结构/** * 把返回的数据集转换成Tree * @param array $list 要转换的数据集 * @param string $pid par ...

  9. php 数据集转换树、递归重组节点信息多维数组(转)

    一.将数据集转换成树 /*** 将返回的数据集转换成树* @param array $list 数据集* @param string $pk 主键* @param string $pid 父节点名称* ...

最新文章

  1. angular元素属性绑定_AngularJS语法基础及数据绑定——详解各种数据绑定指令、属性应用...
  2. 微软免费图书《Introducing Microsoft LINQ》翻译Chapter2.1:C# 3.0 特性(对象初始化表达式\匿名类型\查询表达式)...
  3. 006 技能数组分析和代码编写
  4. 对刺客历史的一种颠覆:说说《最后的刺客》
  5. Java多线程(5)--线程通信wait和notify
  6. 苏大计算机学院在哪,苏州大学和扬州大学都位于江苏,这两所大学,哪一所的实力更强?...
  7. C#编写程序监测某个文件夹内是否有文件进行了增,删,改的动作?
  8. 【TensorFlow-windows】(七) CNN之VGG-net的测试
  9. 关于SQL SERVER 2000在Windows Server 2003下不能使用的问题
  10. PHP 中 flush() 与 ob_flush() 的区别
  11. Ubuntu Class ZipArchive not found
  12. Django 个人博客网站+simpleui后台
  13. 人心是暖的,眼泪是苦的,杜鹃花真的很香
  14. Android键盘输入法(一)——键盘类型
  15. 施努卡:机器视觉公司排名(机器人视觉系统)
  16. Auto.js 意图跳转系统大全
  17. 基于AD Event日志识别域用户密码攻击
  18. 复习——哈夫曼树及哈夫曼编码
  19. i5十代不能装win7系统_i5处理器是装Windows7还是Windows10系统?
  20. 【修炼七】团队建设-尊重

热门文章

  1. 实力碾压!荣耀笔记本MagicBook Pro对比新鲜出炉
  2. 1KB快捷方式电脑病毒解决方法
  3. 服务器粘贴不能正常使用rdpclip
  4. 【冀宝er要逆袭】Faulty Odometer-码表跳跃问题
  5. Jenkins+Gitlab实现自动部署
  6. SH-SY5Y human neuroblastoma cell line: in vitro cell model of dopaminergic neurons in Parkinson’s di
  7. 基金套利的常见招数:高人套利手法像武林秘籍
  8. Python,燃气火焰检测主要步骤!
  9. 读取cifar数据集
  10. win11下的MySQL安装