KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上自动驾驶场景下常用的数据集之一。KITTI数据集的数据采集平台装配有2个灰度摄像机,2个彩色摄像机,一个Velodyne 64线3D激光雷达,4个光学镜头,以及1个GPS导航系统。
官网 国内下载地址1 国内下载地址2
为了生成双目立体图像,相同类型的摄像头相距54cm安装。由于彩色摄像机的分辨率和对比度不够好,所以还使用了两个立体灰度摄像机,它和彩色摄像机相距6cm安装。为了方便传感器数据标定,规定坐标系方向如下[2] :
• Camera: x = right, y = down, z = forward
• Velodyne: x = forward, y = left, z = up
• GPS/IMU: x = forward, y = left, z = up
def velodyne2img(calib_dir, img_id, velo_box):
"""
:param calib_dir: calib文件的地址
:param img_id: 要转化的图像id
:param velo_box: (n,8,4),要转化的velodyne frame下的坐标,n个3D框,每个框的8个顶点,每个点的坐标(x,y,z,1)
:return: (n,4),转化到 image frame 后的 2D框 的 x1y1x2y2
"""
# 读取转换矩阵
calib_txt=os.path.join(calib_dir, img_id) + '.txt'
calib_lines = [line.rstrip('\n') for line in open(calib_txt, 'r')]
for calib_line in calib_lines:
if 'P2' in calib_line:
P2=calib_line.split(' ')[1:]
P2=np.array(P2, dtype='float').reshape(3,4)
elif 'R0_rect' in calib_line:
R0_rect=np.zeros((4,4))
R0=calib_line.split(' ')[1:]
R0 = np.array(R0, dtype='float').reshape(3, 3)
R0_rect[:3,:3]=R0
R0_rect[-1,-1]=1
elif 'velo_to_cam' in calib_line:
velo_to_cam = np.zeros((4, 4))
velo2cam=calib_line.split(' ')[1:]
velo2cam = np.array(velo2cam, dtype='float').reshape(3, 4)
velo_to_cam[:3,:]=velo2cam
velo_to_cam[-1,-1]=1
tran_mat=P2.dot(R0_rect).dot(velo_to_cam) # 3x4
velo_box=velo_box.reshape(-1,4).T
img_box = np.dot(tran_mat, velo_box).T
img_box=img_box.reshape(-1,8,3)
img_box[:,:,0]=img_box[:,:,0]/img_box[:,:,2]
img_box[:, :, 1] = img_box[:, :, 1] / img_box[:, :, 2]
img_box=img_box[:,:,:2] # (n,8,2)
x1y1=np.min(img_box,axis=1)
x2y2 = np.max(img_box, axis=1)
result =np.hstack((x1y1,x2y2)) #(n,4)
return result
Tr_velo_to_cam * y : 把激光雷达坐标系下的点y投影到相机坐标系
R0_rect * Tr_velo_to_cam * y: 将激光雷达坐标系下的点投影到编号为2的相机坐标系,结果为(x,y,z,1),直接取前三个为投影结果,当计算出z<0的时候表明该点在相机的后面 。标注文件中的中心坐标即是相机2下的坐标系。
P2 * R0_rect * Tr_velo_to_cam * y:将激光雷达坐标系下的点投影到编号为2的相机采集的图像中,结果形式为(u,v,w)。 Ps:u,w需要除以w后取整才是最终的像素。
标注文件中16个属性,即16列。但我们只能够看到前15列数据,因为第16列是针对测试场景下目标的置信度得分,也可以认为训练场景中得分全部为1但是没有专门标注出来。
文章浏览阅读5.4k次。Gradle各版本下载地址 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanfengzqh/article/details/78184851Gradle各版本下载地址:http://services.gradle.org/distributions/ 我们下载都是all版本,里面包含了Gradle SDK的所有相关内容,包括:源码..._gradle官网
文章浏览阅读7.4k次,点赞2次,收藏12次。在使用Delphi 10.3.3或者10.4开发安卓应用的过程中,实际上,安装程序未在RAD Studio本身中配置Android SDK / NDK(可能还有其他)。甚至没有安装在操作系统上。尤其是Android开发库,这可能涉及到与甲骨文的Java版权关系,未来Delphi将支持OpenJDK。Delphi跨平台可视化快速开发软件APP应用您可以将SDK和NDK文件夹复制到硬盘或另一个硬盘上的任何位置,因为这两个库是通过line命令配置的,就像过去一样,在操作系统... DOS,Linux等_delphixe10.4 安卓环境
文章浏览阅读1.1k次。QSEE不会自动对你的数据进行加密的,除非使用SFS。存储在RPMB的数据是有权限写入的,不是任何人都可以写,写之前需要鉴权。如果需要防止数据泄露,那就需要在写RPMB之前对数据进行加密。介绍一下RPMB分区RPMB(Replay Protected Memory Block)Partition 是 eMMC 中的一个具有安全特性的分区。eMMC 在写入数据到 RPMB 时,会校验数据的合法性,只有指定的 Host 才能够写入,同时在读数据时,也提供了签名机制,保证 Host 读取到的数据是 RP_高通rpmb
文章浏览阅读2.4w次,点赞6次,收藏67次。Decision curve analysis-DCA 论文《Decision Curve Analysis: A Novel Method for Evaluating Prediction Models》y轴是计算出的收益x轴是取不同的概率Pt的值通过不断变换Pt阈值,计算对应的收益值横直线和点虚线分别为全手术or全不手术的时候对应的收益。如果绘制的DCA曲线高于这两条曲线..._dca曲线
文章浏览阅读1.7w次,点赞10次,收藏108次。adb指令快捷键玩转adb命令,可以让我们电脑端操作手机变得游刃有余。 - **adb的断开与连接** ```java adb devices :显示已连接的设备 adb disconnect :端口号 :adb断开某设备 adb connect :端口号:adb连接某设备(通常针对offline设备) adb kill-server:杀死adb adb start-server:重启adb adb reboot:重启机器 adb..._adb命令大全详解
文章浏览阅读102次。CSS的颜色表达颜色宝典CSS背景图片的设置 overflow: scroll; /*设置滚动条*/ background-image: url("resources/background.png"), url("resources/background.png"); /*左边的背景图会去覆盖右边的背景图,背景图还会覆盖背景颜色*/ background-repeat: no-repeat; _css3笔记
文章浏览阅读171次。最小生成树(Kruskal和Prim算法):http://blog.csdn.net/luoshixian099/article/details/51908175并查集:https://blog.csdn.net/niushuai666/article/details/6662911莫比乌斯反演:https://blog.csdn.net/ACdreamers/article/details...
文章浏览阅读2.8k次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达作者丨小马来源丨我爱计算机视觉本篇分享 CVPR 2022 论文『Image Segmentation Using Text and Image Prompts』,哥廷根大学提出了一个使用文本和图像prompt,能同时作三个分割任务的模型CLIPSeg,榨干CLIP的能力!详细信息如下:论文地址:https://ar..._referring image segmentation clip
文章浏览阅读6.9k次,点赞6次,收藏4次。干货时刻本文主要讲解了如何安装node,以及如何更新node的版本`。node.js 是什么简称node,是基于Chrome V8引擎的JavaScript(JS)运行时环境node 安装进入node 官网,点击如下图所示的安装包即可下载,不同系统用户可根据自己的系统选择相应的安装包下载,作者用windows演示下载好后,我们自定义一个文件夹作为安装目录,例如作者的就是E:\System_disk_app\Nodejs。双击下载好的node-v16.14.2-x64.msi文件,弹出安装向导_更新node
文章浏览阅读1.5k次。最近使用Rails时,遇到了通过关联关系来多次访问同一条record,虽然得到的内容一样,但是每次都会创建不同对象的情况。通过查询Rails官方文档,找到了对关联关系的一种设置inverse_of,可以避免在一些情况下重复创建对象的问题。但是,文档中提到了inverse_of的限制:不能和 :through 选项同时使用不能和 :polymorphic 选项同时使用不能和 :as 选项同时使用_rails inverse of
文章浏览阅读8.2k次。一、window.showModalDialog 方法说明window.showModalDialog( ) 方法的作用是创建和展示一个指向特定网页的模态对话框。该方法已经过时,特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。此方法已在Chrome 43和Firefox 56中删除,当前仅IE浏览器支持该特性。如果正在开发的功能,需要使用到JS的对话框,应该使用window.open( ) 方法。如果是对老项目进行维护,_window.showmodaldialog替代方法
文章浏览阅读3k次。 pdsh安装步骤Skip to end of metadataCreated and last modified by wenqi.kang on Oct 19, 2017Go to start of metadata0.安装环境centos6.5 & centos7.21.解压并安装安装包: pdsh-2.26.zipunzip pdsh-2.26.zip..._centos7 源码安装pdsh