技术标签: Jetson TX2
之前博客写 了如何使用YOLOv3训练自动驾驶数据集KITTI,它的图片尺寸普遍为1242x375(大约),且总共有提供标签的7481张训练集,还有未提供标签的7518张测试集,用于官方评测算法。如果我们自己要评测算法,需要从7481张训练集中划分一部分作为验证集,这样训练的数据又减少了。而BDD00K数据集总共拥有110k张图片
,分为100k和10k两个部分。其中100k的部分提供有70k的带标签训练集数据
和10k带标签的验证集数据
,此外还有20k未提供标签的数据
用于官方评测算法。10k的部分只提供了图片,目前没有提供标签。数据集下载可以去官方网址,但是需要用教育邮箱注册账号,而且经常会出现下载到一半被禁止下载的提示
,比较麻烦。这里找到了一个很好的下载地址,不需要账号,且不会出现下载中断的问题!
地址如下:
这里,我只用到了bdd100k_labels.zip
和bdd100k_images.zip
,但是我把bdd100k_drivable_maps.zip
和bdd100k_seg.zip
也下载了,以防后面使用,如下:
解压bdd100k_labels.zip
和bdd100k_images.zip
,会出现两个bdd100k文件夹
,这两个文件夹内分别存储了images
和labels
两个子文件夹,其中images
文件夹内存放了1280x720的图片,labels存放了json格式的标签文件,我们把两个子文件夹合并到一个bdd100k文件夹内
,方便查看和处理。文件目录树如下:
├── bdd100k
│ ├── images
│ │ ├── 100k
│ │ │ ├── test # 20k测试集图片
│ │ │ ├── train # 70k训练集图片
│ │ │ └── val # 10k验证集图片
│ │ └── 10k
│ │ ├── test # 2k测试集图片
│ │ ├── train # 7k测试集图片
│ │ └── val # 1k验证集图片
│ ├── labels
│ │ └── 100k
│ │ ├── train # 70k训练集标签
│ │ ├── val # 10k验证集标签,这里没有提供20k测试集标签
常见的自动驾驶数据集比较
道路目标检测各类物体数量分布
BDD100K的道路目标检测部分总共有10类:bus,traffic light,traffic sign,person,bike,truck,moter,car,train,rider
。各类对象数目统计分布如下:
随便查看一张图片images/100k/val/b1d9e136-9ab25cb3.jpg
,如下:
并打开labels/100k/val/b1d9e136-9ab25cb3,json
查看其内容,如下:
{
"name": "b1d9e136-9ab25cb3",
"frames": [
{
"timestamp": 10000, //表示在时间点为10000下的图片
"objects": [
{
"category": "traffic sign", //存在一个traffic sign类别的对象
"id": 0,
"attributes": {
"occluded": false,
"truncated": false,
"trafficLightColor": "none" //交通标志的颜色
},
"box2d": {
//左上角和右下角的四个坐标值
"x1": 373.484793,
"y1": 218.719691,
"x2": 418.816665,
"y2": 234.533134
}
},
{
"category": "person", //存在一个person类别的对象
"id": 1,
"attributes": {
"occluded": false,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 887.948822,
"y1": 329.413797,
"x2": 903.762266,
"y2": 369.474519
}
},
{
"category": "person", //存在一个person类别的对象
"id": 2,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 355.562892,
"y1": 309.383434,
"x2": 368.213647,
"y2": 326.251107
}
},
{
"category": "person", //存在一个person类别的对象
"id": 3,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 258.573769,
"y1": 295.678449,
"x2": 282.82105,
"y2": 347.335698
}
},
{
"category": "car", //存在一个car类别的对象
"id": 4,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 786.742784,
"y1": 336.793403,
"x2": 806.773146,
"y2": 368.420289
}
},
{
"category": "car", //存在一个car类别的对象
"id": 5,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 744.573602,
"y1": 331.522255,
"x2": 797.285079,
"y2": 378.962585
}
},
{
"category": "car", //存在一个car类别的对象
"id": 6,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 718.217861,
"y1": 316.763042,
"x2": 755.115896,
"y2": 378.962586
}
},
{
"category": "car", //存在一个car类别的对象
"id": 7,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 459.931618,
"y1": 317.81727,
"x2": 506.31772,
"y2": 362.094912
}
},
{
"category": "car", //存在一个car类别的对象
"id": 8,
"attributes": {
"occluded": true,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 348.183284,
"y1": 319.92573,
"x2": 375.593253,
"y2": 368.420289
}
},
{
"category": "car", //存在一个car类别的对象
"id": 9,
"attributes": {
"occluded": false,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 365.050957,
"y1": 299.895368,
"x2": 484.178899,
"y2": 390.559112
}
},
{
"category": "car", //存在一个car类别的对象
"id": 10,
"attributes": {
"occluded": false,
"truncated": false,
"trafficLightColor": "none"
},
"box2d": {
"x1": 467.311224,
"y1": 274.593858,
"x2": 751.953209,
"y2": 523.392035
}
},
{
"category": "car", //存在一个car类别的对象
"id": 11,
"attributes": {
"occluded": false,
"truncated": true,
"trafficLightColor": "none"
},
"box2d": {
"x1": 1.341755,
"y1": 296.732679,
"x2": 323.936004,
"y2": 521.283577
}
},
{
"category": "car", //存在一个car类别的对象
"id": 12,
"attributes": {
"occluded": false,
"truncated": true,
"trafficLightColor": "none"
},
"box2d": {
"x1": 872.135381,
"y1": 236.641594,
"x2": 1278.013765,
"y2": 684.68916
}
},
//道路可行驶区域的标签
{
"category": "area/drivable",
"id": 13,
"attributes": {
},
"poly2d": [
[
379.295348,
522.084962,
"L"
],
[
833.816375,
531.298227,
"L"
],
[
978.157509,
649.535114,
"L"
],
[
760.110261,
631.108585,
"C"
],
[
499.06778,
611.146514,
"C"
],
[
257.987372,
628.037498,
"C"
],
[
379.295348,
522.084962,
"L"
]
]
},
//可选择的行驶区域的标签
{
"category": "area/alternative",
"id": 14,
"attributes": {
},
"poly2d": [
[
763.318996,
386.437234,
"L"
],
[
755.503629,
448.378849,
"L"
],
[
873.740518,
532.83377,
"L"
],
[
866.256426,
421.87471,
"L"
],
[
763.318996,
386.437234,
"L"
]
]
},
{
"category": "area/alternative",
"id": 15,
"attributes": {
},
"poly2d": [
[
810.568964,
374.624742,
"L"
],
[
867.943924,
388.124733,
"L"
],
[
871.318922,
415.124715,
"L"
],
[
776.818987,
381.374738,
"L"
],
[
810.568964,
374.624742,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 16,
"attributes": {
"direction": "parallel",
"style": "dashed"
},
"poly2d": [
[
472.553479,
437.976395,
"L"
],
[
429.011966,
468.711581,
"L"
],
[
234.355791,
627.51004,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 17,
"attributes": {
"direction": "parallel",
"style": "dashed"
},
"poly2d": [
[
476.395377,
423.889435,
"L"
],
[
412.363741,
464.869683,
"L"
],
[
210.023769,
627.51004,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 18,
"attributes": {
"direction": "parallel",
"style": "solid"
},
"poly2d": [
[
749.17015,
462.308417,
"L"
],
[
984.806573,
654.403328,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 19,
"attributes": {
"direction": "parallel",
"style": "solid"
},
"poly2d": [
[
750.450783,
441.818294,
"L"
],
[
1046.276945,
659.525859,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 20,
"attributes": {
"direction": "parallel",
"style": "dashed"
},
"poly2d": [
[
749.17015,
380.347922,
"L"
],
[
874.672158,
414.925006,
"L"
]
]
},
//单一的白色车道线
{
"category": "lane/single white",
"id": 21,
"attributes": {
"direction": "parallel",
"style": "dashed"
},
"poly2d": [
[
795.272928,
371.383493,
"L"
],
[
877.233423,
390.592984,
"L"
]
]
},
//道路路边的车道线
{
"category": "lane/road curb",
"id": 22,
"attributes": {
"direction": "parallel",
"style": "solid"
},
"poly2d": [
[
829.850012,
371.383493,
"L"
],
[
882.355954,
380.347922,
"L"
]
]
},
//道路路边的车道线
{
"category": "lane/road curb",
"id": 23,
"attributes": {
"direction": "parallel",
"style": "solid"
},
"poly2d": [
[
307.351856,
366.260962,
"L"
],
[
352.174002,
361.138431,
"L"
]
]
}
]
}
],
"attributes": {
"weather": "undefined",
"scene": "city street",
"timeofday": "daytime"
}
}
```
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland