我使用Microsoft.Azure.CognitiveServices.Vision.ComputerVision
API来检测图片中的眼镜。如果检测到眼镜,我得到像素坐标和我注意到的置信度值总是高于0.5
。所以我试图得到一个返回值,即使信心低于(所以即使API没有足够的信心,有眼镜在图片中)。分析图片的方法如下:
public static async Task AnalyzeImageUrl(ComputerVisionClient client, string imageUrl)
{
// Creating a list that defines the features to be extracted from the image.
var features = new List<VisualFeatureTypes?>
{
VisualFeatureTypes.Objects
};
Console.WriteLine("Analyzing objects in image...");
Console.WriteLine();
// Analyze the URL image
var results = await client.AnalyzeImageAsync(imageUrl, features);
Console.WriteLine("Objects:");
foreach (var obj in results.Objects)
{
Console.WriteLine(@$"{obj.ObjectProperty} with confidence {obj.Confidence} at
location {obj.Rectangle.X}, {obj.Rectangle.X + obj.Rectangle.W}, {obj.Rectangle.Y}, {obj.Rectangle.Y + obj.Rectangle.H}");
}
}
如果您提到API。很抱歉有一些限制。注意对象检测的局限性是很重要的,这样你就可以避免或减轻假阴性(错过的对象)和有限的细节的影响。
对象如果很小(小于图像的5%)通常不会被检测到。如果物体紧密地排列在一起(例如,一叠盘子),通常不会被检测到。对象不会通过品牌或产品名称来区分(例如,商店货架上不同类型的苏打水)。但是,您可以通过使用品牌检测功能从图像中获取品牌信息。
分数低的结果将不返回。在任何情况下,你需要低分数的结果吗?我可以让产品组知道,以便我们优化角落案例。谢谢。