日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

车道线识别之 tusimple 数据集介绍

發(fā)布時間:2024/8/5 综合教程 46 生活家
生活随笔 收集整理的這篇文章主要介紹了 车道线识别之 tusimple 数据集介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Tusimple 是一家做自動駕駛的公司,他也公布了一些其在自動駕駛領(lǐng)域積累的數(shù)據(jù),其中有一些是和車道線檢測相關(guān)的。2018年6 月份,其舉辦了一次以攝像頭圖像數(shù)據(jù)做車道檢測的比賽,公開了一部分?jǐn)?shù)據(jù)及其標(biāo)注。數(shù)據(jù)下載數(shù)據(jù)是:https://github.com/TuSimple/tusimple-benchmark/issues/3

在其doc中可以發(fā)現(xiàn)數(shù)據(jù)個數(shù)的一些說明

標(biāo)注json 文件中每一行包括三個字段

raw_file : 每一個數(shù)據(jù)段的第20幀圖像的的path 路徑

lanes 和 h_samples 是數(shù)據(jù)具體的標(biāo)注內(nèi)容,為了壓縮,h_sample 是縱坐標(biāo)(應(yīng)該是從上到下拍好順序的),lanes 是每個車道的橫坐標(biāo),是個二維數(shù)組。

-2 表示這個點(diǎn)是無效的點(diǎn)

上面的數(shù)據(jù)就有 4 條車道線,第一條車道線的第一個點(diǎn)的坐標(biāo)是(632,280)。

標(biāo)注的過程應(yīng)該是,將圖片的下半部分如70%*height 等分成N份。然后取車道線(如論虛實)與該標(biāo)注線交叉的點(diǎn)

利用以下腳本可以處理得到標(biāo)注的數(shù)據(jù),這個腳本稍微改動下也可以作為深度學(xué)習(xí)輸入的圖像。

# -*- coding: utf-8 -*-  
import cv2
import json
import numpy as np
 
base_path = "/Users/jcl/workspace/lane_detection/"

file=open(base_path+'test_label.json','r')
image_num=0

for line in file.readlines():
    data=json.loads(line)
    # print data['raw_file']
    # 取第 29 幀 看一下處理的效果
    if image_num == 29:
        image=cv2.imread(base_path+data['raw_file'])
        # 二進(jìn)制圖像數(shù)組初始化
        binaryimage=np.zeros((image.shape[0],image.shape[1],1),np.uint8)
        # 實例圖像數(shù)組初始化
        instanceimage=binaryimage.copy()
        arr_width=data['lanes']
        arr_height=data['h_samples']
        width_num=len(arr_width)
        height_num=len(arr_height)
        # print width_num
        # print height_num
        # 遍歷縱坐標(biāo)
        for i in range(height_num):
            lane_hist=40
            # 遍歷各個車道的橫坐標(biāo)
            for j in range(width_num):
                # 端點(diǎn)坐標(biāo)賦值
                if arr_width[j][i-1]>0 and arr_width[j][i]>0:
                    binaryimage[int(arr_height[i]),int(arr_width[j][i])]=255
                    instanceimage[int(arr_height[i]),int(arr_width[j][i])]=lane_hist
                    if i>0:
                        # 畫線,線寬10像素
                        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+=50
        cv2.imshow('image.jpg',image)
        cv2.waitKey()
        cv2.imshow('binaryimage.jpg',binaryimage)
        cv2.waitKey()
        cv2.imshow('instanceimage.jpg',instanceimage)
        cv2.waitKey()
        break
        # string1=base_path+"gt_image_binary/"+str(image_num)+".png"
        # string2=base_path+"gt_image_instance/"+str(image_num)+".png"
        # string3=base_path+"raw_image/"+str(image_num)+".png"
        # cv2.imwrite(string1,binaryimage)
        # cv2.imwrite(string2,instanceimage)
        # cv2.imwrite(string3,image)
    image_num = image_num + 1
    
file.close()
print "total image_num:"+str(image_num)

處理完之后圖片輸出如下所示:

Tusimple 數(shù)據(jù)的標(biāo)注特點(diǎn):

1、車道線實際上不只是道路上的標(biāo)線,虛線被當(dāng)作了一種實線做處理的。這里面雙實線、白線、黃線這類信息也是沒有被標(biāo)注的。

2、每條線實際上是點(diǎn)序列的坐標(biāo)集合,而不是區(qū)域集合

總結(jié)

以上是生活随笔為你收集整理的车道线识别之 tusimple 数据集介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。