简体   繁体   中英

Is there any available object detecting/recognition C# library?

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!

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.

You can use Alturos.Yolo it is ac# 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
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM