0

I'm working on a project that need to regconize object in the real world ( like fruits, chairs, notebook, table, speaker... blah blah )

The first thing i would like to ask is that "Is it possible?", i'm currently a third-years student at University of Information technology

And the second is that "Is there any available C# library that help me to do this?"

Is there any solution for this? I will be very grateful if there is anyone that can answer my questions!

Sumit Bijvani
  • 8,154
  • 17
  • 50
  • 82
Susuri Yuyuki
  • 153
  • 1
  • 3
  • 8

2 Answers2

0

Generally speaking, this is a very difficult task. Keep in mind that designing a perfect system that always detects the object and produces no errors (false alarms) is currently impossible.

You can start by using OpenCV's latent SVM detector: http://docs.opencv.org/modules/objdetect/doc/latent_svm.html

However, training new models is problematic. You can also use OpenCV HOG descriptor and detector: http://docs.opencv.org/modules/gpu/doc/object_detection.html

or cascade classifier: http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

You should limit yourself to a predefined set object and train a detector for each object class. If you can limit yourself to the set of classes that OpenCV's latent svm currently supports, it actually won't be that hard of a task. But keep in mind that there always will be missed detections and false alarms.

GilLevi
  • 2,117
  • 5
  • 22
  • 38
0

You can use Alturos.Yolo it is a c# wrapper for yolo (darknet). Dependent on the pre-trained model you can detect a lot of different objects (list of trained objects of Yolo9000). You can also train custom objects if you need more variety.

Nuget package

PM> install-package Alturos.Yolo

Example

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
}
live2
  • 3,771
  • 2
  • 37
  • 46