tusimple数据集分析

1、.json文件

文件中每一条数据如下所示:

{"lanes": [[-2, -2, -2, -2, 632, 625, 617, 609, 601, 594, 586, 578, 570, 563, 555, 547, 539, 532, 524, 516, 508, 501, 493, 485, 477, 469, 462, 454, 446, 438, 431, 423, 415, 407, 400, 392, 384, 376, 369, 361, 353, 345, 338, 330, 322, 314, 307, 299], [-2, -2, -2, -2, 719, 734, 748, 762, 777, 791, 805, 820, 834, 848, 863, 877, 891, 906, 920, 934, 949, 963, 978, 992, 1006, 1021, 1035, 1049, 1064, 1078, 1092, 1107, 1121, 1135, 1150, 1164, 1178, 1193, 1207, 1221, 1236, 1250, 1265, -2, -2, -2, -2, -2], [-2, -2, -2, -2, -2, 532, 503, 474, 445, 416, 387, 358, 329, 300, 271, 241, 212, 183, 154, 125, 96, 67, 38, 9, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], [-2, -2, -2, 781, 822, 862, 903, 944, 984, 1025, 1066, 1107, 1147, 1188, 1229, 1269, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2]], 
"h_samples": [240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, 710], 
"raw_file": "clips/0313-1/6040/20.jpg"}

其中:“lanes”表示每行的坐标值,可以看出’clips/0313-1/6040/20.jpg’有4条车道线;“h_samples”表示每列的坐标值。例如,第一条线的第一个点为(632,280),第二个点为(625,290),其中-2为无效点

2、可视化

利用以下代码可对json中的label进行可视化:

2.1 画点

import cv2
import json

#读取JSON文件
with open('test.json', 'r') as f:
    data = json.load(f)
#读取图像
vis = cv2.imread(data["raw_file"])
#获取车道线坐标和样本点
lanes = data["lanes"]
h_samples = data["h_samples"]
m=0
line_color=[(0,255,0),(255,0,0),(0,0,255),(255,255,0)]
# 循环绘制每条车道线
for lane in lanes:
    line_color_=line_color[m]
    m=m+1
    # 保留有效的车道线点
    lane_points = [(x, y) for x, y in zip(lane,h_samples) if x != -2]
    for i in range(len(lane_points) - 1):
        ppp = [lane_points[i][0], lane_points[i][1]]
        cv2.circle(vis,ppp,3,line_color_,-1)
# 保存结果图像
cv2.imwrite('output_image2.jpg', vis)

结果如下图所示:
在这里插入图片描述

2.2 画线

import cv2
import json
#读取JSON文件
with open('test.json', 'r') as f:
    data = json.load(f)
#读取图像
vis = cv2.imread(data["raw_file"])
#获取车道线坐标和样本点
lanes = data["lanes"]
h_samples = data["h_samples"]
m=0
line_color=[(0,255,0),(255,0,0),(0,0,255),(255,255,0)]
# 循环绘制每条车道线
for lane in lanes:
    line_color_=line_color[m]
    m=m+1
    # 保留有效的车道线点
    lane_points = [(x, y) for x, y in zip(lane,h_samples) if x != -2]
    # 绘制车道线
    for i in range(len(lane_points) - 1):
        cv2.line(vis, lane_points[i], lane_points[i + 1], line_color_, thickness=2)
# 保存结果图像
cv2.imwrite('output_image.jpg', vis)

结果如下:
在这里插入图片描述
点线叠加结果如下:
在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值