Berkeley 大学最近推出的针对自动驾驶的街景数据集,号称比 Cityscapes 数据量更大,可泛化性更好。

语义实例分割(Semantic Instance Segmentation)

数据集一共有 40 种物体类别

与 Cityscapes 的对比

街景数据来自 US 的城市

模型更熟悉美国的街景。

图片标签

时间:daytime, nighttime, dawn/dusk;

场景:Residential,High-way, City street, Parking lot, Gas station, Tunnel;

天气:Clear, Partly cloudy, Over-case, Rainy, Snowy, Foggy;

Label Maps

语义分割使用标签映射(Label Maps),不是训练索引(Training Indices)。

更高的可泛化性

使用 Dilate Residual Network (Hyper parameter 相同)测试两个数据集时发现下表的关系:

Train Test Accuracy
deepDriver deepDriver High
deepDriver Cityscapes Low
Cityscapes deepDriver Low
Cityscapes Cityscapes High

在同样的数据集下训练结果都很好,但交叉使用不同测试集时精度下降显著。使用 deepDriver 训练的模型在 Cityscapes 测试集上的表现虽然较差,但有部分训练结果比在特定场景训练的结果要好。这意味着该数据集涵盖场景更多,训练出的模型的可泛化性会比较好。

以上参考:https://arxiv.org/abs/1805.04687

数据集详情

文件结构:

bdd100k
| seg
| | images
| | | train
| | | val
| | | test
| | color_labels
| | | train
| | | val
| | labels
| | | train
| | | val

检查数据集完整性的 python3 脚本

import os
import sys if len(sys.argv) != 2:
print ('Usage: python checkdata.py <train|val>')
exit(-1) dataset_category = sys.argv[1]
if dataset_category not in {'train', 'val'}:
print (f'Invalid argument "{dataset_category}"')
exit(-2) data_size = 7000 if dataset_category == 'train' else 1000 dir_root = '.'
dir_color = os.path.join(dir_root, 'color_labels', dataset_category)
dir_imgs = os.path.join(dir_root, 'images', dataset_category)
dir_label = os.path.join(dir_root, 'labels', dataset_category) color_names = os.listdir(dir_color)
img_names = os.listdir(dir_imgs)
label_names = os.listdir(dir_label) assert len(color_names) == len(img_names) == len(label_names) == data_size for i in range(len(color_names)):
prefix_color = color_names[i].split('_')[0]
prefix_img = img_names[i].split('.')[0]
prefix_label = label_names[i].split('_')[0]
assert prefix_color == prefix_img == prefix_label, f'{prefix_color}, {prefix_img}, {prefix_label}' print ('All Good!')

包含分割多边形信息的 Json 文件目前还没有公开,因此只能做segmentation,不能做 detection + segmentation。但是单纯的 detection 数据文件已经是提供好的,可以使用查看工具查看标注矩形框和三种图片标签(时间、场景、天气)

官方代码目前的坑

https://github.com/ucbdrive/bdd-data/issues/17

https://github.com/ucbdrive/bdd-data/issues/5

https://github.com/ucbdrive/bdd-data/issues/15

其中,#15 issue 目前还未解决。


Written with StackEdit.

初涉 Deep Drive Dataset的更多相关文章

  1. fashion datasets图像检索实践project

    Using Siamese Networks and Pre-Trained Convolutional Neural Networks (CNNs) for Fashion Similarity M ...

  2. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  3. Joint Deep Learning for Pedestrian Detection笔记

    1.结构图 Introduction Feature extraction, deformation handling, occlusion handling, and classification ...

  4. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

  5. Classifying plankton with deep neural networks

    Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...

  6. Growing Pains for Deep Learning

    Growing Pains for Deep Learning Advances in theory and computer hardware have allowed neural network ...

  7. 通过Visualizing Representations来理解Deep Learning、Neural network、以及输入样本自身的高维空间结构

    catalogue . 引言 . Neural Networks Transform Space - 神经网络内部的空间结构 . Understand the data itself by visua ...

  8. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Regularization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Regularization Welcome to the second assignment of this week. Deep ...

  9. What are some good books/papers for learning deep learning?

    What's the most effective way to get started with deep learning?       29 Answers     Yoshua Bengio, ...

随机推荐

  1. ARM对异常的处理

    所谓中断就是中断SoC的CPU核(异常可以引起CPU的中断) ARM对异常的处理 1.初始化: 1)设置中断源让它可以产生中断.如某个按键可以产生中断,那么可以设置它的GPIO引脚为中断引脚: 2)设 ...

  2. Oracle创建聚簇表

    创建聚簇表过程: 创建簇(cluster)----创建簇表(基本类似创建一般表但有区别)----创建簇索引(index)----数据管理 创建簇: create cluster stu_ach(sid ...

  3. systemd的新特性及常见的systemd unit类型分析

    systemd概述 )systemd是一种新的linux系统服务管理器,用于替换init系统,能够管理系统启动过程和系统服务,一旦启动起来,就将监管整个系统.在centos7系统中,PID1被syst ...

  4. Maven DebugConfiguration配置运行内存

    -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m

  5. Canvas路径方向

    使用Canvas路径画图需要注意方向,画图方向是顺时针还是逆时针需要记住.下面让我们看看Canvas常见路径方向. arc 参数值 context.arc(x,y,r,sAngle,eAngle,co ...

  6. go加密算法:CBC对称加密(一)--3DES/AES

    其实对称加密中的:DES\3DES\AES 采取的加解密步骤一致,只是小的细节不太一样.大家多看看就能写出来了 // rsao1.go package main import ( "byte ...

  7. Appointment Helper

    using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Que ...

  8. Flume采集目录及文件到HDFS案例

    采集目录到HDFS 使用flume采集目录需要启动hdfs集群 vi spool-hdfs.conf # Name the components on this agent a1.sources = ...

  9. AtCoder Regular Contest 100 E - Or Plus Max

    一道很好的dp题 dp[K]存的是 i满足二进制1属于K二进制1位置 最大的两个Ai 这样dp[K]统计的两个数肯定满足(i | j) <= K 然后不断做 update(dp[i | (1&l ...

  10. CakePHP 查询总结

    返回 $this->Post->buildQuery(); 返回: Array ( [conditions] => [fields] => [joins] => Arra ...