我使用Azure Custom Vision SDK ImageRegionCreateEntry Class在对象检测模式下将每个图像的区域设置为完整图像,该方法在代码中显示成功(在 full 中):
string dir = "G:\\folderLocation";
string[] files = Directory.GetFiles(dir);
if (files[i].ToLower().Contains(tagList[y].Name.ToLower()))
{
using (var stream = new MemoryStream(File.ReadAllBytes(files[i])))
{
var createImage = trainingApi.CreateImagesFromData(CV_Project_Guid, stream, new List<Guid>() { thisTag.Id });
//set the region for an image that is 300x400
ImageRegionCreateEntry thisImgEntry = new ImageRegionCreateEntry(createImage.Images[0].Image.Id, createImage.Images[0].Image.Tags[0].TagId, 0, 150, 150, 150);
我检查了门户中的每个图像,它没有显示区域限制框:
如果我在门户中手动设置区域并重新访问图像,它会显示盒装区域:
在使用 sdk 设置区域时,我发现树是灰色的,就好像当“显示的区域”切换为“开”时树已被识别一样,这是有误导性的。
此外,如果我使用图像的完整边界(以像素为单位)通过 SDK 为每个图像设置区域,则训练会失败。如果我手动设置区域,训练就会成功。
因此我认为 sdk 未正确设置该区域。有人可以确认一下,在使用 SDK 时,如果 ImageRegionCreateEntry 成功,重新访问门户中的每个图像是否会显示边界框?
最佳答案
[0,0,1,1] 你看不到它,因为它恰好是图像边界,而 [0,1,1,1] 正在边界之外绘制。你可以尝试[0.25, 0.25, 0.5, 0.5] 它应该在中心画一个盒子。请按照此处的文档了解坐标的工作原理 https://learn.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/quickstarts/object-detection?tabs=visual-studio&pivots=programming-language-csharp#upload-and-tag-images
关于Azure自定义视觉SDK ImageRegionCreateEntry似乎没有设置区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73078411/