码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • View-of-Delft数据集的评估函数简单介绍


    View-of-Delft(以下简称VoD)的官方数据集简介与Dev-kit的github页面:GitHub - tudelft-iv/view-of-delft-dataset

    Dataset Preparation | The View of Delft dataset

    VoD数据集文件介绍:View-of-Delft数据集文件学习

            VoD数据集采用了和KITTI数据集相同的评估指标(AP与AOS),其评估函数位于vod/evaluation/evaluate.py中。

    1.预测结果的保存

            观察Evaluation.evaluate函数:

    1. class Evaluation:
    2. def __init__(self, test_annotation_file):
    3. self.test_annotation_file = test_annotation_file
    4. def evaluate(self, result_path, current_class=None, score_thresh=-1):
    5. ...
    6. dt_annotations = kitti.get_label_annotations(result_path, val_image_ids) #获取预测结果
    7. ...
    8. gt_annotations = kitti.get_label_annotations(self.test_annotation_file, val_image_ids) # 获取标注信息
    9. ... # 进行评估

            可以看到,评估前使用同一函数(get_label_annotations)获取了预测和标注信息,可推测预测文件和标注文件应该具有相同的名称和排布格式。因此,模型的预测需要被保存在一个文件夹下,每一帧对应一个txt文件,其中每一行包含16项,代表一个预测边界框,详见View-of-Delft数据集文件学习的2.3节。

    2.评估函数的具体输入

            具体观察上面提到的get_label_annotations函数,可知输出的gt_annotations/dt_annotations应该均是长度为总帧数的列表,且每一个元素是一个字典:

    1. {
    2. 'name': List[str], # 列表长为M
    3. 'truncated': array(M,1),
    4. 'occluded': array(M,1),
    5. 'alpha': array(M,1),
    6. 'bbox': array(M,4),
    7. 'dimensions': array(M,3), # HWL->LHW 相机坐标系下的边界框尺寸顺序
    8. 'location': array(M,3),
    9. 'rotation_y': array(M,1),
    10. 'score': array(M,1)
    11. }

    其中MM为预测/真实边界框数。注意边界框是表示在相机坐标系下的。

    3.评估函数的设置

            Evaluation.evaluate函数中调用评估函数的代码为:

    get_official_eval_result(gt_annotations, dt_annotations, current_class, custom_method=0)

    其中current_class为需要评估的类别名称列表;custom_method可为0或3(1和2暂未实现),分别代表在整个标注区域内评估以及在可驾驶区域内评估。

    4.评估函数的输出

            观察get_official_eval_result函数,发现其输出的格式为{'entire_area':dict()}(custom_method=0)或{'roi':dict()}(custom_method=3)。其中内层字典dict()含有各类别的3D/BEV AP值和AOS值,键值对的形式为

    f'{类别名}_{指标}_all': float       # 指标为aos/3d/bev之一

    若输入current_class的长度为NcNc,则内层字典含有3⋅Nc项元素。

            观察get_official_eval_result函数能够进一步发现,VoD数据集仅能对前6个类别(Car, Pedestrian, Cyclist, rider, bicycle, bicycle_rack)进行评估,且仅考虑了低标准(overlap_0_5)下的、11点插值的BEV AP/3D AP/AOS评估结果,高标准(overlap_0_7)下的、40点插值的评估结果以及图像2D边界框的AP值均未考虑。

  • 相关阅读:
    不卖硬件只卖软件的“能源管理系统”,都是骗子
    asp毕业设计——基于asp+access的在线教育系统设计与实现(毕业论文+程序源码)——在线教育系统
    JAVA桌游店会员管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
    vue中el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案 使用强制提前加载dialog方法
    安卓逆向之某省回头车App过ROOT检测
    蓝桥杯(路径 动态规划 C++)
    jbase实现通用码表
    py11_Python 类间关系 依赖/关联/继承
    java锁
    Python数据攻略-Hadoop集群中PySpark数据处理
  • 原文地址:https://blog.csdn.net/weixin_45657478/article/details/127697577
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号