2

是否有可能将图像从 C# 发送到yolo并接收所有检测到的对象位置和类型。

例如在演示图像上

type      | x   | y   | width | height
-------------------------------------------
bicycle   | 214 | 150 | 450   | 378
dog       | 150 | 260 | 210   | 350
truck     | 540 | 100 | 250   | 150

yolo检测结果

示例代码

public class Yolo
{
    public ObjectPosition[] GetObjects(Image image)
    {
        //return yolo result
    }
}

public class ObjectPosition
{
    public string Type { get; set; }
    public int X { get; set; }
    public int Y { get; set; }
    public int Width { get; set; }
    public int Height { get; set; }
}
4

3 回答 3

2

是的,您可以使用这个 nuget 包Alturos.Yolo来满足您的要求。您在产品页面上找到的更多信息。

安装依赖

首先安装这两个nuget包,第一个是opencv和c++ yolo项目的逻辑,第二个包含yolo config数据。

PM> install-package Alturos.Yolo
PM> install-package Alturos.YoloV2TinyVocData

代码示例

using (var yoloWrapper = new YoloWrapper("yolov2-tiny-voc.cfg", "yolov2-tiny-voc.weights", "voc.names"))
{
    var items = yoloWrapper.Detect("image.jpg");
}
于 2018-05-30T12:40:34.677 回答
0

YOLO 似乎没有公开用于检索结果和边界框的端点。

如果您阅读 YOLO 网页,您会看到相反,在命令行中它将返回带有对象和置信度评级的字符串,并且边界框(如演示预测图像中所示)实际上输出到 predictions.png文件。

我相信如果您想要这些边界框,您可能需要下载 YOLO 源代码并调整其控制台输出以返回这些值。

于 2018-05-11T09:58:49.260 回答
0

我正在使用https://github.com/AlexeyAB/darknet fork 在 Windows 上使用 yolo。那里有 yolo_cpp_dll 和 yolo_cpp_dll_no_gpu 项目来构建 Yolo DLL。它的“检测”函数获取图像并返回一组检测,每个都是结构:{x,y,w,h,prob,class_id}。还有一个从 python 使用这个 DLL 的 darknet.py 示例。我不认为 c# 会更困难。

于 2018-05-31T14:08:47.913 回答