naurril / SUSTechPOINTS

3D Point Cloud Annotation Platform for Autonomous Driving
GNU General Public License v3.0
839 stars 217 forks source link

如何评估标注软件? #84

Closed Leozyc-waseda closed 2 years ago

Leozyc-waseda commented 2 years ago

我看您在论文中是用 Time, Errors, FP ratio, FN ratio 来进行评价,特别是Errors, FP ratio, FN rati应该是和Ground Truth进行比较来评估的吧 这方面的代码在哪里呀

naurril commented 2 years ago

这块和工具本身没有关系,没有开源的代码.简单计算一下就可以了

Leozyc-waseda commented 2 years ago

可以的话可以分享一下您评估的时候用的代码吗?

我现在有个我标的,以及别人标的,各有label 文件夹,想比较errors的话应该是算3d iou的交集外的部分吧,FP, FN的比较就是看框有没有重叠. 但具体到如何在标注软件中实施让我有点困惑。。

我看您还与Kitti的数据进行了比较,是标好kitti后在转回kitti的标注格式后进行评估的吗?

naurril commented 2 years ago

当时是因为另外一篇论文pointAtMe用的这个方法,fp/fn算的是点的个数,其实并不是很科学(代码估计也找不到了).个人建议你找3D IOU的代码来进行处理.和kitti比是把kitti的数据转成我们的格式评估的

Leozyc-waseda commented 2 years ago
  1. Kitti转成sustech的时候,摄像头的校准文件是怎么转的?

  2. 标注软件得到的Label里面的数据是,position, scale, rotation, categories。 根据这些信息生成3d IoU的框来进行评估么?怎么从3D iou中获取交集,框内的点云的数量呢。。

image

Leozyc-waseda commented 2 years ago

可以的话可以分享一下你们做实验时标注的kitti ground truth吗?

naurril commented 2 years ago

可以的话可以分享一下你们做实验时标注的kitti ground truth吗?

我们当时是参考别人的做法挑了一些帧做了比较简单的测试,KITTI的大部分标注结果都已经是相当好的了,只有少量需要修改,我们没有特别针对这个测试标很多数据,所以也没法提供给你了,抱歉.

naurril commented 2 years ago
  1. Kitti转成sustech的时候,摄像头的校准文件是怎么转的?
  2. 标注软件得到的Label里面的数据是,position, scale, rotation, categories。 根据这些信息生成3d IoU的框来进行评估么?怎么从3D iou中获取交集,框内的点云的数量呢。。

image

KITTI的calib文件都包含了需要的信息,包括标定矩阵

Leozyc-waseda commented 2 years ago

可以的话可以分享一下你们做实验时标注的kitti ground truth吗?

我们当时是参考别人的做法挑了一些帧做了比较简单的测试,KITTI的大部分标注结果都已经是相当好的了,只有少量需要修改,我们没有特别针对这个测试标很多数据,所以也没法提供给你了,抱歉.

kitti的话只标注了PointAtme中的Kitti scene10, 11, 16,17吗? 我看您的baseline是和pointAtme对比的,PointAtme的时间, FP ratio, FN ratio都是PointAtme的一模一样的数据。时间平均之后虽然都是一样的,但是Ground Truth的数量不一样的话,结果也应该不一样才对吧。您们是没有用pointatme实际标的意思?

BTW,我发现kitti好多都不准。。如下图所示

image

Leozyc-waseda commented 2 years ago
  1. Kitti转成sustech的时候,摄像头的校准文件是怎么转的?
  2. 标注软件得到的Label里面的数据是,position, scale, rotation, categories。 根据这些信息生成3d IoU的框来进行评估么?怎么从3D iou中获取交集,框内的点云的数量呢。。

image

KITTI的calib文件都包含了需要的信息,包括标定矩阵

您的校准文件中不是有外参和内参吗? kitti的摄像头里面的标注参数的话,没有直接显示外参和内参...你们是如何计算的内参和外参呢? 如果能分享一下结果就好啦 :) 十分感谢!

我知道的kitti投影到camera的方式 内参矩阵 外参矩阵 R0校准矩阵 点云坐标 y = P2 R0_rect Tr_velo_to_cam x

naurril commented 2 years ago

可以的话可以分享一下你们做实验时标注的kitti ground truth吗?

我们当时是参考别人的做法挑了一些帧做了比较简单的测试,KITTI的大部分标注结果都已经是相当好的了,只有少量需要修改,我们没有特别针对这个测试标很多数据,所以也没法提供给你了,抱歉.

kitti的话只标注了PointAtme中的Kitti scene10, 11, 16,17吗? 我看您的baseline是和pointAtme对比的,PointAtme的时间, FP ratio, FN ratio都是PointAtme的一模一样的数据。时间平均之后虽然都是一样的,但是Ground Truth的数量不一样的话,结果也应该不一样才对吧。您们是没有用pointatme实际标的意思?

BTW,我发现kitti好多都不准。。如下图所示

image

没有用pointatme实际标,直接引用的他们的结果

naurril commented 2 years ago
  1. Kitti转成sustech的时候,摄像头的校准文件是怎么转的?
  2. 标注软件得到的Label里面的数据是,position, scale, rotation, categories。 根据这些信息生成3d IoU的框来进行评估么?怎么从3D iou中获取交集,框内的点云的数量呢。。

image

KITTI的calib文件都包含了需要的信息,包括标定矩阵

您的校准文件中不是有外参和内参吗? kitti的摄像头里面的标注参数的话,没有直接显示外参和内参...你们是如何计算的内参和外参呢? 如果能分享一下结果就好啦 :) 十分感谢!

我知道的kitti投影到camera的方式 内参矩阵 外参矩阵 R0校准矩阵 点云坐标 y = P2 R0_rect Tr_velo_to_cam x

如下

{
    "extrinsic": [

        7.533745000000e-03, -9.999714000000e-01, -6.166020000000e-04, -4.069766000000e-03,
        1.480249000000e-02, 7.280733000000e-04, -9.998902000000e-01, -7.631618000000e-02,
         9.998621000000e-01, 7.523790000000e-03, 1.480755000000e-02, -2.717806000000e-01,
         0,0,0,1
],
    "intrinsic": [7.215377000000e+02, 0.000000000000e+00, 6.095593000000e+02,
        0.000000000000e+00, 7.215377000000e+02, 1.728540000000e+02,
        0.000000000000e+00, 0.000000000000e+00, 1.000000000000e+00 ]
}
Leozyc-waseda commented 2 years ago

非常感谢你的Kitti外参和内参!!

我现在有前方摄像头的外参和内参,跟您的校准文件好像有点不一样 我直接将rotation+ translation = extrinsic, D + K = intrinsic 放进了校准文件,但是好像结果并不对,是哪里搞错了吗?

front_camera: extrinsic: transform: rotation: {w: 0.016213200031258722, x: 0.0030578899383849464, y: 0.7114721800418571, z: -0.7025205466606356} translation: {x: 0.0002585796504896516, y: -0.03907777167811011, z: -0.0440125762408362} intrinsic: D: [-0.5894, 0.66, 0.0011, -0.001, -1.0088] K: [1970.0131, 0, 970.0002, 0, 1970.0091, 483.2988, 0, 0, 1]

naurril commented 2 years ago

这是你自己的设备参数对吗,需要转换成矩阵,注意外参外参是雷达到相机.图片需要事先去畸变

Leozyc-waseda commented 2 years ago

啊是Pandaset中给的相机参数

docs/static_extrinsic_calibration.yaml

怎么转换成相应的内参和外参矩阵?

naurril commented 2 years ago

rotation是quaternion, 你用这个网页转成3by3旋转矩阵,然后和translation合成3by4矩阵,最后加上第4行0,0,0,1. 试试.

内参就用K.

你贴的例子转成下面这样:

{
"extrinsic": [ -0.9994556,  0.0271314,  0.0187740, 0.0002585796504896516,
  -0.0184290,  0.0129111, -0.9997468, -0.03907777167811011,
  -0.0273669, -0.9995485, -0.0124040, -0.0440125762408362,
0,0,0,1],
"intrinsic":[1970.0131, 0, 970.0002, 0, 1970.0091, 483.2988, 0, 0, 1]
}
Leozyc-waseda commented 2 years ago

居然还有这种转换的网站!非常感谢! 解决了我这两天的困扰 :)

rotation是quaternion, 你用这个网页转成3by3旋转矩阵,然后和translation合成3by4矩阵,最后加上第4行0,0,0,1. 试试.

内参就用K.

你贴的例子转成下面这样:

{
"extrinsic": [ -0.9994556,  0.0271314,  0.0187740, 0.0002585796504896516,
  -0.0184290,  0.0129111, -0.9997468, -0.03907777167811011,
  -0.0273669, -0.9995485, -0.0124040, -0.0440125762408362,
0,0,0,1],
"intrinsic":[1970.0131, 0, 970.0002, 0, 1970.0091, 483.2988, 0, 0, 1]
}

我把Pandaset转成kitti格式试了下,好像失败了。。

Leozyc-waseda commented 2 years ago

{ "extrinsic": { "quaternion": [ 0.5941767906169857, -0.5878843193897473, 0.3873184109007999, -0.3890121040340926 ], "translation": [ 3.7484, 0.0, 0.6601699999999999 ] }, "intrinsic": { "aspect_ratio": 1.0, "cx_offset": 3.942, "cy_offset": -3.093, "height": 966.0, "k1": 339.749, "k2": -31.988, "k3": 48.275, "k4": -7.201, "model": "radial_poly", "poly_order": 4, "width": 1280.0 }, "name": "FV" }

如果是鱼眼摄像头的话,转换成内参外参后就可以直接投影吗? 刚发现一篇paper可以直接投在鱼眼上,也给出了上述的校准参数,这能转成sustechpoints需要的外参和内参吗? image

Leozyc-waseda commented 2 years ago

不好意思一直问问题。。 。

我现在想算error point的点云数量,您的软件中 image 上面显示的框内的points数量的代码在哪里呀? 我想输出来,和ground truth相减来计算error point。

naurril commented 2 years ago

搜 get_box_points_number

Leozyc-waseda commented 2 years ago

谢谢! 话说您论文中的FP ratio/ object中的FP ratio是什么意思?

一般的FP ratio指的应该是,FP/ FP + TN , object detection中无法计算TN,所以您这FP ratio就是FP?

naurril commented 2 years ago

谢谢! 话说您论文中的FP ratio/ object中的FP ratio是什么意思?

一般的FP ratio指的应该是,FP/ FP + TN , object detection中无法计算TN,所以您这FP ratio就是FP?

就是FN点数/总点数

Leozyc-waseda commented 2 years ago

不是FN,是FP image FP的话也是FP除以总的物体的数量?

总的物体的数量是指Ground Truth的数量还是标的总数量?

naurril commented 2 years ago

物体的点数,ground truth