【问题标题】:Is there any available object detecting/recognition C# library?是否有任何可用的对象检测/识别 C# 库?
【发布时间】:2013-10-21 16:03:24
【问题描述】:

我正在做一个项目,需要在现实世界中重新调整对象(如水果、椅子、笔记本、桌子、扬声器......等等等等)

我想问的第一件事是“这可能吗?”,我现在是信息技术大学的三年级学生

第二个是“是否有任何可用的 C# 库可以帮助我做到这一点?”

有什么解决办法吗? 如果有人可以回答我的问题,我将非常感激!

【问题讨论】:

  • 查看 OpenCV。 Idk 如果有 C# 绑定。
  • 你的意思是你将传递一个对象,并且你必须从你已经拥有的现实世界对象列表中确定对象的类型?
  • 我将传递一个图像,然后库将帮助我确定图像中的对象

标签: c# image-processing image-recognition


【解决方案1】:

您可以使用Alturos.Yolo,它是yolo (darknet) 的c# 包装器。根据预训练模型,您可以检测到许多不同的对象 (list of trained objects of Yolo9000)。如果您需要更多种类,还可以训练自定义对象。

Nuget 包

PM> install-package Alturos.Yolo

例子

var configurationDetector = new ConfigurationDetector();
var config = configurationDetector.Detect();
//using (var yoloWrapper = new YoloWrapper("yolov2-tiny-voc.cfg", "yolov2-tiny-voc.weights", "voc.names"))
using (var yoloWrapper = new YoloWrapper(config))
{
    var items = yoloWrapper.Detect(@"image.jpg");
    //items[0].Type -> "Person, Car, ..."
    //items[0].Confidence -> 0.0 (low) -> 1.0 (high)
    //items[0].X -> bounding box
    //items[0].Y -> bounding box
    //items[0].Width -> bounding box
    //items[0].Height -> bounding box
}

【讨论】:

    【解决方案2】:

    一般来说,这是一项非常艰巨的任务。请记住,目前不可能设计一个始终检测对象并且不产生错误(误报)的完美系统。

    您可以从使用 OpenCV 的潜在 SVM 检测器开始: http://docs.opencv.org/modules/objdetect/doc/latent_svm.html

    但是,训练新模型是有问题的。您还可以使用 OpenCV HOG 描述符和检测器:http://docs.opencv.org/modules/gpu/doc/object_detection.html

    或级联分类器: http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

    您应该将自己限制在预定义的集合对象中,并为每个对象类别训练一个检测器。如果您可以将自己限制在 OpenCV 的潜在 svm 当前支持的一组类中,那么这实际上不会是一项艰巨的任务。但请记住,总会有漏检和误报。

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多