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.