in src/ai/commands/vision_command.cs [130:191]
private void PrintIAResult(ImageAnalysisResult result, TextWriter writer)
{
writer.WriteLine($"Image analysis results:");
writer.WriteLine($" Metadata: Model: {result.ModelVersion} Image dimensions: {result.Metadata.Width} x {result.Metadata.Height}");
if (result.Caption != null)
{
writer.WriteLine($" Caption: {result.Caption.Text}, Confidence: {result.Caption.Confidence:F4}");
}
if (result.DenseCaptions != null)
{
writer.WriteLine($" Dense Captions:");
foreach (DenseCaption denseCaption in result.DenseCaptions.Values)
{
writer.WriteLine($" Region: '{denseCaption.Text}', Confidence: {denseCaption.Confidence:F4}, Bounding box: {denseCaption.BoundingBox}");
}
}
if (result.Tags != null)
{
writer.WriteLine($" Tags:");
foreach (DetectedTag tag in result.Tags.Values)
{
writer.WriteLine($" '{tag.Name}', Confidence: {tag.Confidence:F4}");
}
}
if (result.Objects != null)
{
writer.WriteLine($" Objects:");
foreach (DetectedObject detectedObject in result.Objects?.Values)
{
writer.WriteLine($" Object: '{detectedObject.Tags.First().Name}', Bounding box: {detectedObject.BoundingBox.ToString()}");
}
}
if (result.SmartCrops != null)
{
writer.WriteLine($" SmartCrops:");
foreach (CropRegion cropRegion in result.SmartCrops?.Values)
{
writer.WriteLine($" Aspect ratio: {cropRegion.AspectRatio}, Bounding box: {cropRegion.BoundingBox}");
}
}
if (result.People != null)
{
writer.WriteLine($" People:");
foreach (DetectedPerson person in result.People?.Values)
{
writer.WriteLine($" Person: Bounding box {person.BoundingBox.ToString()}, Confidence: {person.Confidence:F4}");
}
}
if (result.Read != null)
{
writer.WriteLine($" Read:");
foreach (var line in result.Read?.Blocks.SelectMany(block => block.Lines))
{
writer.WriteLine($" Line: '{line.Text}', Bounding Polygon: [{string.Join(" ", line.BoundingPolygon)}]");
foreach (DetectedTextWord word in line.Words)
{
writer.WriteLine($" Word: '{word.Text}', Confidence {word.Confidence.ToString("#.####")}, Bounding Polygon: [{string.Join(" ", word.BoundingPolygon)}]");
}
}
}
}