数据分析
数据分析目前仅设计用于使用 KITTI 或 COCO 格式的目标检测数据集。
数据分析服务分析目标检测标注文件和图像文件,计算洞察,并生成图表和摘要。此服务支持以下任务
analyze
- 此任务分析输入文件并生成计算统计数据的图表。它还可以生成带有边界框的图像。validate
- 此任务通过计算无效坐标并建议是否需要修改数据来验证输入文件。kpi_analyze
- 此任务计算给定测试集的准确率和平均精度 (AP)。
这些任务可以使用命令行上的以下约定从 TAO Launcher 调用
tao dataset analytics <sub_task> <args_per_subtask>
其中 args_per_subtask
是给定子任务所需的命令行参数。以下各节详细解释了每个子任务。
这是一个用于分析 KITTI 输入数据的示例规范文件。
data:
input_format: "KITTI"
output_dir: /path/to/results_dir/
image_dir: /path/to/images_dir/
ann_path: /path/to/annotation_dir/
workers: 36
image:
generate_image_with_bounding_box: False
image_sample_size: 100
graph:
generate_summary_and_graph: True
height: 15
width: 15
show_all: False
wandb:
visualize: False
project: "tao data analytics"
参数 | 数据类型 | 默认值 | 描述 |
data |
dict config | – | 数据集的配置 |
workers |
int | – | 用于数据加载的工作进程数 |
image |
dict config | – | 图像生成的配置 |
graph |
dict config | – | 生成的图表的配置 |
wandb |
dict config | – | wandb 的配置 |
data
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
input_format |
string | 输入标注文件的格式 | KITTI, COCO | |
output_dir |
string | 输出结果目录的路径 | ||
image_dir |
string | 输入图像目录的路径 | ||
ann_path |
string | 标注目录的路径 |
image
参数 | 数据类型 | 默认值 | 描述 |
sample_size |
int | 100 | 要可视化的图像样本大小 |
generate_image_with_bounding_box |
bool | False | 一个标志,指定是否生成带有渲染边界框的图像 |
graph
参数 | 数据类型 | 默认值 | 描述 |
generate_summary_and_graph |
bool | True | 为计算的统计数据生成图表和摘要 |
height |
int | 15 | 图表的高度(不适用于 wandb 可视化) |
width |
int | 15 | 图表的宽度(不适用于 wandb 可视化) |
show_all |
bool | False | 一个标志,指定是将所有数据放在图表上,还是 (True) 仅可视化前 100 个候选对象 (False) |
wandb
参数 | 数据类型 | 默认值 | 描述 |
project |
string | 实验数据上传到的项目名称 | |
entity |
string | 项目创建所在的实体(组)的名称。 | |
name |
string | 实验的名称 | |
notes |
string | 实验的简短描述 | |
tags |
list | 可用于标记实验的字符串列表 | |
visualize |
bool | False | 一个标志,指定是否启用 wandb 上的可视化 |
这是一个用于验证 COCO 输入数据的示例规范文件。
apply_correction: True
data:
output_dir: /path/to/result_dir/
input_format: "COCO"
image_dir: /path/to/images_dir/
ann_path: /path/to/annotation_dir/
workers: 36
参数 | 数据类型 | 默认值 | 描述 |
data |
dict config | – | 数据集的配置 |
workers |
int | – | 用于数据加载的工作进程数 |
apply_correction |
bool | False | 一个标志,指定是否应用数据校正 |
data
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
input_format |
string | 输入标注文件的格式 | KITTI, COCO | |
output_dir |
string | 输出结果目录的路径 | ||
image_dir |
string | 输入图像目录的路径 | ||
ann_path |
string | 标注目录的路径 |
使用以下命令分析数据
tao dataset analytics analyze -e <experiment_spec>
必需参数
-e, --experiment_spec_file
: 用于设置analyze
实验的实验规范文件
这是一个使用数据 analyze
命令的示例
tao dataset analytics analyze -e $DEFAULT_SPEC
结果
结果目录或 wandb 包含生成的带有边界框的图像和以下属性的图表 PDF。
边界框区域
对象计数
遮挡(仅适用于 kitti 输入)
截断(仅适用于 kitti 输入)
图像大小
无效的边界框坐标(包含有关反转和超出范围坐标的信息)
使用以下命令验证数据
tao dataset analytics validate -e <experiment_spec>
必需参数
-e, --experiment_spec_file
: 用于设置validate
实验的实验规范文件
这是一个使用数据 validate
命令的示例
tao dataset analytics validate -e $DEFAULT_SPEC
结果
控制台输出包含验证摘要。如果指定了 apply_correction=True
,则结果目录包含已校正的输入文件。以下是边界框坐标的校正条件。
将负坐标设置为 0。
交换反转的坐标。
如果
xmax
大于image_width
,则设置xmax = image_width
。如果
ymax
大于image_height
,则设置ymax = image_height
。
这是一个用于使用 KITTI 数据计算 KPI 准确率和平均精度 (AP) 的示例规范文件。
data:
input_format: KITTI
output_dir: /path/to/result_dir/
kpi_sources:
- image_dir: /path/to/raw_images_dir/
ground_truth_ann_path: /path/to/gt_annotation_dir/
inference_ann_path: /path/to/infer_annotation_dir/
mapping: /path/to/mapping_json/
visualize:
platform: wandb
kpi:
iou_threshold: 0.5
filter: False
num_recall_points: 11
conf_threshold: 0.3
ignore_sqwidth: 40
wandb:
visualize: True
project: kpi_calculation
参数 | 数据类型 | 默认值 | 描述 |
data |
dict config | – | 数据集的配置 |
visualize |
dict config | – | 可视化的配置 |
kpi |
dict config | – | KPI 计算的配置 |
wandb |
dict config | – | WandB 的配置 |
data
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
input_format |
string | 输入标注文件的格式 | KITTI, COCO | |
output_dir |
string | 输出结果目录的路径 | ||
image_dir |
string | 输入图像目录的路径 | ||
ann_path |
string | 标注目录的路径 | ||
mapping |
string | 用于类映射的 JSON 文件的路径 | ||
|
dict |
- |
KPI 序列的字典列表。所需的值是 |
|
visualize
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
platform |
string | local | 可视化的位置 | local, wandb |
tag |
string | 要添加到最终指标表的标签 |
kpi
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
iou_threshold |
float | 0.5 | 用于匹配边界框的 IoU 阈值 | >=0, <=1 |
filter |
bool | False | 一个标志,指定是否过滤小于 ignore_sqwidth 的边界框 |
|
|
int |
0 |
面积小于 |
>=0 |
num_recall_points |
int | 11 | 用于绘制精确率-召回率曲线的召回点数 | >0 |
conf_threshold |
float | 0.5 | 用于过滤预测的置信度阈值 | >=0, <=1 |
wandb
参数 | 数据类型 | 默认值 | 描述 |
project |
string | 实验数据上传到的项目名称 | |
entity |
string | 项目创建所在的实体(组)的名称 | |
name |
string | 实验的名称 | |
notes |
string | 实验的简短描述 | |
tags |
list | 可用于标记实验的字符串列表 | |
visualize |
bool | False | 一个标志,指定是否启用 WandB 上的可视化 |