我正在构建一个C#项目来检测图像中的所有对象,我不希望它检测到这些对象是什么,我只希望它检测图像中对象的位置。
我尝试了许多方法来完成此操作,例如this(使用imageai python库,然后我在c#中使用了此脚本)和this(使用Alturos.Yolo库)教程,但是这些教程可以检测到仅已知对象,但如果不知道该对象是什么,则不会检测到该对象的位置。
我需要的是检测对象的位置,无论它是否识别出此对象。
例如这张图片
它检测到唯一能够识别其类型的对象,但我希望它检测图像中的所有对象。
python代码:
detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections =
detector.detectObjectsFromImage(input_image=os.path.join(execution_path , rel_path ,file_name), output_image_path=os.path.join(execution_path ,new_file_name))
for eachObject in detections:
print(eachObject["name"] , " : " , eachObject["percentage_probability"] ," : " ,eachObject["box_points"] )
使用Alturos.Yolo库代码:
var configurationDetector = new ConfigurationDetector();
var config = configurationDetector.Detect();
using (var yoloWrapper = new YoloWrapper(config))
{
using (MemoryStream ms = new MemoryStream())
{
pictureBox1.Image.Save(ms, ImageFormat.Png);
var items = yoloWrapper.Detect(ms.ToArray());
yoloItemBindingSource.DataSource = items;
arr = items.ToArray();
}
}
任何人都可以帮忙或推荐其他方式吗?
答案 0 :(得分:0)
Here是一个类似的问题,其中的一些答案可能会对您有所帮助。我找到了一些选项:
一些方法:
* ColorFiltering
* ChannelFiltering
* HSLFiltering
* YCbCrFiltering
* EuclideanColorFiltering