寫在前面:本篇博文的目的是1. 理清MOT17數(shù)據(jù)集中文件及其內(nèi)容的含義;2. COCO數(shù)據(jù)輸入格式和YOLO數(shù)據(jù)輸入格式和VOC數(shù)據(jù)輸入格式的區(qū)別;3. 提供一個(gè)數(shù)據(jù)集可視化腳本,可以選中某個(gè)數(shù)據(jù)集,將該數(shù)據(jù)集中的groundtruth可視化在jpg上并生成視頻播放。
Track1
數(shù)據(jù)格式的含義:
<camera_id> <obj_id> <frame_id> <xmin> <ymin> <width> <height> <xworld> <yworld>
MOT17數(shù)據(jù)集
數(shù)據(jù)集下載: https://pan.baidu.com/s/1TtKOUdcACLXBzS9L3lmE0A?pwd=67ey 提取碼: 67ey
參考博客:多目標(biāo)跟蹤數(shù)據(jù)集 :mot16、mot17數(shù)據(jù)集介紹以及多目標(biāo)跟蹤指標(biāo)評(píng)測(cè)
數(shù)據(jù)集介紹
如下所示,該數(shù)據(jù)集中的文件結(jié)構(gòu)如圖所示。MOT17有21個(gè)訓(xùn)練集和21個(gè)檢測(cè)集。
訓(xùn)練集
det
訓(xùn)練集中/det
文件夾中是針對(duì)檢測(cè)的信息,該目錄下只有一個(gè)det.txt文件,每行一個(gè)標(biāo)注,代表一個(gè)檢測(cè)的物體。
每一行標(biāo)注的含義如下:第一個(gè)代表第幾幀,第二個(gè)代表軌跡編號(hào)(因?yàn)闄z測(cè)結(jié)果只看檢測(cè)框質(zhì)量,不看id,故為id
=-1。),bb
開頭的4個(gè)數(shù)代表物體框的左上角坐標(biāo)及長寬。conf
代表置信度,最后3個(gè)是MOT3D用到的內(nèi)容,2D檢測(cè)總是為-1.
<frame>, -1, <bb_left>, <bb_top>, <bb_width>, <bb_height>, <conf>, <3D_x>, <3D_y>, <3D_z>
gt
訓(xùn)練集中/gt
文件夾中是針對(duì)追蹤的信息,該目錄下只有一個(gè)gt.txt文件,每行一個(gè)標(biāo)注,代表一個(gè)檢測(cè)的物體。
每一行標(biāo)注的含義如下:第一個(gè)代表第幾幀,第二個(gè)值為目標(biāo)運(yùn)動(dòng)軌跡的ID號(hào),bb
開頭的4個(gè)數(shù)代表物體框的左上角坐標(biāo)及長寬,第7個(gè)值為目標(biāo)軌跡是否進(jìn)入考慮范圍內(nèi)的標(biāo)志,0表示忽略,1表示active。第八個(gè)值為該軌跡對(duì)應(yīng)的目標(biāo)種類(種類見下面的表格中的label-ID對(duì)應(yīng)情況),第九個(gè)值為box的visibility ratio,表示目標(biāo)運(yùn)動(dòng)時(shí)被其他目標(biāo)box包含/覆蓋或者目標(biāo)之間box邊緣裁剪情況。
<frame>, <id>, <bb_left>, <bb_top>, <bb_width>, <bb_height>, <trajectory_conf>, <trajectory_type>, <visibility_ratio>
COCO數(shù)據(jù)輸入格式和YOLO數(shù)據(jù)輸入格式和VOC數(shù)據(jù)輸入格式
參考博客:VOC/YOLO/COCO數(shù)據(jù)集格式轉(zhuǎn)換及LabelImg/Labelme/精靈標(biāo)注助手Colabeler標(biāo)注工具介紹
VOC標(biāo)簽格式,標(biāo)注的標(biāo)簽存儲(chǔ)在xml文件
YOLO標(biāo)簽格式,標(biāo)注的標(biāo)簽存儲(chǔ)在txt文件中
COCO標(biāo)簽格式,標(biāo)注的標(biāo)簽存儲(chǔ)在json文件中文章來源:http://www.zghlxwxcb.cn/news/detail-478700.html
數(shù)據(jù)集可視化腳本
yolo格式的可視化文章來源地址http://www.zghlxwxcb.cn/news/detail-478700.html
import cv2
import os
label_path = '*.txt'
pic_path = '*.bmp'
img_gray = cv2.imread(pic_path)
width = img_gray.shape[1]
height = img_gray.shape[0]
label = []
if os.path.exists(label_path):
label = []
with open(label_path, 'r') as label_f:
for line in label_f.readlines():
txt_list = line.split(' ')
print('txt_list',txt_list)
norm_x = float(txt_list[1])
norm_y = float(txt_list[2])
norm_w = float(txt_list[3])
norm_h = float(txt_list[4])
xmin = int(width * (norm_x - 0.5 * norm_w))
ymin = int(height * (norm_y - 0.5 * norm_h))
xmax = int(width * (norm_x + 0.5 * norm_w))
ymax = int(height * (norm_y + 0.5 * norm_h))
label.append(ymin)
label.append(xmin)
label.append(ymax)
label.append(xmax) # [x1, x2, y1, y2]--> [212, 324, 296, 390]
print('label',label)
cv2.rectangle(img_gray, (label[1], label[0]),
(label[3], label[2]),
(120, 255, 120), 1)
cv2.imshow('vis', img_gray)
cv2.waitKey(0)
到了這里,關(guān)于計(jì)算機(jī)視覺——【數(shù)據(jù)集】MOT17、COCO數(shù)據(jù)輸入格式、數(shù)據(jù)集可視化腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!