charlesChen02 / RandLA-pytorch

Improved pytorch implementation of RandLA (https://arxiv.org/abs/1911.11236) with easier transferability and reproductibility

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

evaluate 结果全是0 感谢指导

ksama777 opened this issue · comments

您好,您有空帮我看看全是0是什么情况 麻烦了 谢谢

python3 evaluate_SemanticKITTI.py --dataset /media/wx/HDD/DQ/semantic_kitti/dataset/sequences_0.06 --predictions /media/wx/HDD/DQ/RandLA-pytorch-main/result/08/predictions --sequence 08


INTERFACE:
Eval What: all
Data: /media/wx/HDD/DQ/semantic_kitti/dataset/sequences_0.06
Predictions: /media/wx/HDD/DQ/RandLA-pytorch-main/result/08/predictions
Sequences: ['08']
Config: /media/wx/HDD/DQ/RandLA-pytorch-main/utils/semantic-kitti.yaml
Limit: None


Opening data config file /media/wx/HDD/DQ/RandLA-pytorch-main/utils/semantic-kitti.yaml
Ignoring xentropy class 0 in IoU evaluation
[IOU EVAL] IGNORE: [0]
[IOU EVAL] INCLUDE: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
0
0 0
Evaluating sequences
0it [00:00, ?it/s]
Validation set:
Acc avg 0.000
IoU avg 0.000
IoU class 1 [car] = 0.000
IoU class 2 [bicycle] = 0.000
IoU class 3 [motorcycle] = 0.000
IoU class 4 [truck] = 0.000
IoU class 5 [other-vehicle] = 0.000
IoU class 6 [person] = 0.000
IoU class 7 [bicyclist] = 0.000
IoU class 8 [motorcyclist] = 0.000
IoU class 9 [road] = 0.000
IoU class 10 [parking] = 0.000
IoU class 11 [sidewalk] = 0.000
IoU class 12 [other-ground] = 0.000
IoU class 13 [building] = 0.000
IoU class 14 [fence] = 0.000
IoU class 15 [vegetation] = 0.000
IoU class 16 [trunk] = 0.000
IoU class 17 [terrain] = 0.000
IoU class 18 [pole] = 0.000
IoU class 19 [traffic-sign] = 0.000


0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000

请问prediction中的文件是什么格式的? seq 08 的 prediction是不需要使用--index-to-label的标志的, 不知道您在test的时候是否添加了?

您好, 我发现您将type设置为了all, 这种场景下--dataset对应的路径应为原数据路径, 在您的场景我猜测应为 /media/wx/HDD/DQ/semantic_kitti/dataset/sequences

如果依然未生效, 我推荐您可以进行逐步排查:

  1. 确认dataset是否已经使用preprocess处理完成.
  2. 确认test_Semantickitti.py 正常预测结果, 如可以将预测的.npy读取并查看内容是否为0或有异常, 或在test期间打印概率更新来确认逻辑是否正常更新.
  3. 确认evaluate操作的对象正常, 如可以检查
    print(len(label_names), len(pred_names))
    处的打印结果是否正常

如果依然有问题也欢迎继续提问

prediction 的路径需要设置成与test相同的路径, 如你设置test目录为res, 那么eval时也只需要设置成res即可, 不需要设置为res/08

python3 evaluate_SemanticKITTI.py --dataset /media/wx/HDD/DQ/semantic_kitti/dataset/sequences --predictions /media/wx/HDD/DQ/RandLA-pytorch-main/result/res --sequence 08

可以尝试一下这条命令

从报错来看, 就是prediction对应的label文件没有找到

可以大概提供一下result目录下的部分结构吗, 因为我看你之前用的是result/res/08, 这次用的又是result, 不确定你的prediction具体是放在哪个里面的,

简单的说, 如果你需要预测 seq 08, 那么你--prediction 后跟的路径内 应该有 08/prediction 这个子文件夹, 比如 --predictions 后提供路径为 xxx, 那么xxx内路径应包含的结构大概为:

|xxx
    |- 08
        |- predictions

请不要乱改编译选项... 不方便定位具体问题
作为解决当前问题的方法, 请将prediction对应的目录设置为test时使用all flag的目录, 然后 在evaluate时使用 -e all进行预测,
如果看到报错包含4071 500的话则说明目录选择是正确的

之后请逐步切片并预测valid集中全部的数据, 之前我说的[:500]表明只是预测了前500个数据, 需要反复执行多次获得全部的prediction之后再进行eval

-e all 代表的是对原数据中所有的点进行预测, sub 代表的是对preprocess之后的剩余的点进行预测

如果内存不够, 可以跑多次test, 一次跑500个, 这样每次就不会超内存, 比如test第一次切[:500], 第二次test切[500:1000], 以此类推

不太正常, 请问您test时的命令是什么样的

如果您有其他问题, 麻烦单独开一个issue, 具体描述一下问题, 所操作的命令, 需要求助的点, 如遇到报错无法理解也欢迎提出issue, 目前看来mIoU为0的问题解决了, 我先关闭这个issue了