From e0d5f00ae3439bdece59cb1bd8d07ada53d91d78 Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Tue, 9 Apr 2024 23:15:49 +0200 Subject: [PATCH] initial version of `How to Save Detections` guide done --- docs/how_to/save_detections.md | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/how_to/save_detections.md b/docs/how_to/save_detections.md index e0233f9b..f432c939 100644 --- a/docs/how_to/save_detections.md +++ b/docs/how_to/save_detections.md @@ -5,7 +5,13 @@ status: new # Save Detections -TODO +Supervision enables an easy way to save detections in .CSV and .JSON files for offline +processing. This guide demonstrates how to perform video inference using the +[Inference](https://github.com/roboflow/inference), +[Ultralytics](https://github.com/ultralytics/ultralytics) or +[Transformers](https://github.com/huggingface/transformers) packages and save their results with +[`sv.CSVSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.CSVSink) and +[`sv.JSONSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.JSONSink). ## Run Detection @@ -71,7 +77,11 @@ model. You can learn more on this topic in our ## Save Detections as CSV -TODO +To save detections to a `.CSV` file, open our +[`sv.CSVSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.CSVSink) +and then pass the +[`sv.Detections`](/latest/detection/core/#supervision.detection.core.Detections) +object resulting from the inference to it. Its fields are parsed and saved on disk. === "Inference" @@ -135,8 +145,6 @@ TODO sink.append(detections, {}) ``` -TODO - | x_min | y_min | x_max | y_max | class_id | confidence | tracker_id | class_name | |---------|----------|---------|----------|----------|------------|------------|------------| | 2941.14 | 1269.31 | 3220.77 | 1500.67 | 2 | 0.8517 | | car | @@ -145,7 +153,12 @@ TODO ## Custom Fields -TODO +Besides regular fields in +[`sv.Detections`](/latest/detection/core/#supervision.detection.core.Detections), +[`sv.CSVSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.CSVSink) +also allows you to add custom information to each row, which can be passed via the +`custom_data` dictionary. Let's utilize this feature to save information about the +frame index from which the detections originate. === "Inference" @@ -209,8 +222,6 @@ TODO sink.append(detections, {"frame_index": frame_index}) ``` -TODO - | x_min | y_min | x_max | y_max | class_id | confidence | tracker_id | class_name | frame_index | |---------|----------|---------|----------|----------|------------|------------|------------|-------------| | 2941.14 | 1269.31 | 3220.77 | 1500.67 | 2 | 0.8517 | | car | 0 | @@ -219,7 +230,11 @@ TODO ## Save Detections as JSON -TODO +If you prefer to save the result in a `.JSON` file instead of a `.CSV` file, all you +need to do is replace +[`sv.CSVSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.CSVSink) +with +[`sv.JSONSink`](/latest/detection/tools/save_detections/#supervision.detection.tools.csv_sink.JSONSink). === "Inference"