C# 向yolo(darknet)发送图像并接收对象位置和类型
是否有可能将图像从C#发送到并接收所有检测到的对象位置和类型 例如在演示图像上C# 向yolo(darknet)发送图像并接收对象位置和类型,c#,pinvoke,yolo,C#,Pinvoke,Yolo,是否有可能将图像从C#发送到并接收所有检测到的对象位置和类型 例如在演示图像上 type | x | y | width | height ------------------------------------------- bicycle | 214 | 150 | 450 | 378 dog | 150 | 260 | 210 | 350 truck | 540 | 100 | 250 | 150 示例代码 public class
type | x | y | width | height
-------------------------------------------
bicycle | 214 | 150 | 450 | 378
dog | 150 | 260 | 210 | 350
truck | 540 | 100 | 250 | 150
示例代码
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; }
}
using (var yoloWrapper = new YoloWrapper("yolov2-tiny-voc.cfg", "yolov2-tiny-voc.weights", "voc.names"))
{
var items = yoloWrapper.Detect("image.jpg");
}
YOLO似乎没有公开用于检索结果和边界框的端点 如果您通读YOLO网页,您将看到,相反,在命令行中,它将返回带有对象和置信度评级的字符串,并且边界框(如演示预测图像中所示)实际上是输出到predictions.png文件。
我相信如果您想要这些边界框,您可能需要下载YOLO源代码并调整其控制台输出以返回这些值。是的,您可以根据需要使用此nuget软件包。您在网站上找到的更多信息 安装依赖项
首先安装这两个NuGuT包,第一个是OpenCV和C++ YOLO项目的逻辑,第二个包含YOLO配置数据。
PM> install-package Alturos.Yolo
PM> install-package Alturos.YoloV2TinyVocData
代码示例
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; }
}
using (var yoloWrapper = new YoloWrapper("yolov2-tiny-voc.cfg", "yolov2-tiny-voc.weights", "voc.names"))
{
var items = yoloWrapper.Detect("image.jpg");
}
我用fork在windows上使用yolo。有yolo_cpp_dll和yolo_cpp_dll_no_gpu项目用于构建yolo dll。它的“detect”函数获取图像并返回检测集,每个都是结构:{x,y,w,h,prob,class_id}。还有一个从python使用此DLL的darknet.py示例。我不认为C语言会更难。你有一个C语言的例子吗?不,我使用C++。嘿,在我的例子中,我使用OpenCV或OpenCVSpice,现在我想要一个面部识别OpenCV可以使用Haar级联分类器来检测人脸,并且边缘误差非常大。有人建议我使用深度学习,我希望yolo用于识别,opencv用于检测