分析
新的数据导出器 C++ API(DataExporter
和 CsvDataExporter
)现已可用。此 API 可用于将 Holoscan 应用程序的输出导出到逗号分隔值 (CSV) 文件,用于 Holoscan 联邦分析应用程序。DataExporter
是一个基类,用于支持以不同格式导出 Holoscan 应用程序输出。CsvDataExporter
是一个从 DataExporter
派生的类,用于支持将 Holoscan 应用程序输出导出到 CSV 文件。
可以使用环境变量 HOLOSCAN_ANALYTICS_DATA_DIRECTORY
指定数据根目录。如果未指定,则默认为当前目录。可以使用环境变量 HOLOSCAN_ANALYTICS_DATA_FILE_NAME
指定数据文件名。如果未指定,则默认为名称 data.csv
。所有生成的数据将存储在与传递给 DataExporter
构造函数的应用程序名称相同的目录中。在每次运行时,将在 <root_dir>\<app_dir>\
内创建一个新目录,并在其中创建一个新的数据文件。每个新的数据目录都将以当前时间戳命名。此时间戳约定可防止应用程序的给定运行覆盖同一应用程序先前运行存储的任何数据。
API 的示例用法
// Include Header
#include <holoscan/core/analytics/csv_data_exporter.hpp>
// Define CsvDataExporter member variable
CsvDataExporter exporter
// Initialize CsvDataExporter
exporter("app_name", std::vector<std::string>({"column1", "column2", "column3"}))
// Export data (typically called within an Operator::compute method)
exporter.export_data(std::vector<std::string>({"value1", "value2", "value3"}))
诸如 Endoscopy Out of Body Detection
等 Holoscan 应用程序使用推理处理器运算符 (InferenceProcessorOp
) 来输出二元分类结果。推理处理器运算符 (InferenceProcessorOp
) 使用的 DataProcessor
类现已更新,以支持将输出写入 CSV 文件,然后这些文件可以用作分析应用程序的输入。此外,任何其他使用 InferenceProcessorOp
的应用程序现在都可以将二元分类输出导出到 CSV 文件。
以下是使用新的导出操作的示例应用程序配置
inference_processor_op:
process_operations:
"out_of_body_inferred": ["export_results_to_csv,
out_of_body_detection,
In-body,
Out-of-body,
ConfidenceScore"]
in_tensor_names: ["out_of_body_inferred"]
这将在指定的根目录中创建一个名为 out_of_body_detection
的文件夹,在每次运行时在其中创建一个带有当前时间戳的文件夹,并创建一个具有指定名称和三列的 .csv
文件 - In-body
、Out-of-body
和 Confidence Score
。data.csv
文件中的行将如下所示
In-body,Out-of-body,Confidence Score
1,0,0.972435
1,0,0.90207
1,0,0.897973
0,1,0.939281
0,1,0.948691
0,1,0.94994