如何在C#net中使用YOLO提高目标检测速度
我想通过YOLO V3检测车牌区域。为此,我使用了darknet来创建权重。 训练后,创建了一个重量文件。这个文件的大小是234MB,我使用了darknet53.conv.74文件和650张火车图像 配置文件(yolov3.cfg)是 在那之后,我在C#NET中使用了Alturos.yolo2.6.2 问题是速度。检测车牌区域大约需要3秒钟 您有没有提高检测速度的解决方案?如何在C#net中使用YOLO提高目标检测速度,c#,image-processing,yolo,alpr,C#,Image Processing,Yolo,Alpr,我想通过YOLO V3检测车牌区域。为此,我使用了darknet来创建权重。 训练后,创建了一个重量文件。这个文件的大小是234MB,我使用了darknet53.conv.74文件和650张火车图像 配置文件(yolov3.cfg)是 在那之后,我在C#NET中使用了Alturos.yolo2.6.2 问题是速度。检测车牌区域大约需要3秒钟 您有没有提高检测速度的解决方案? 由于您自己进行了培训,我想您已经知道神经网络需要GPU才能运行得更快。无论如何,为了更快的检测,你们要么降低网络的分辨率,
由于您自己进行了培训,我想您已经知道神经网络需要GPU才能运行得更快。无论如何,为了更快的检测,你们要么降低网络的分辨率,要么使用一种微小的YOLO变体。今天,这里介绍了最强大、最快的变体:。其他最新的黑暗模式是可用的。其他一些网络,如mobilenet,经过更优化,在CPU上工作更快
无论如何,这些替代网络需要AlexeyAB darknet实现才能工作,因此您需要重新编译c#wrapper的darknet。我们还使用了一个微型版本的yolo来检测托盘:
这在一秒钟内就可以在cpu上运行。您尝试过小版本的yolov3吗?它们足以检测LP。此外,你还可以处理像416*416这样的小图像(LPs在这种尺寸下仍然很明显)。@MH304我不知道。我如何使用微型版本的yolo3?我必须使用另一个预先训练的体重吗?或者更改培训的配置文件?只需使用另一个*.cfg文件(tiny_3Layers很好)。无需更改配置(尽管如果类编号不同,则必须更改cfg文件中yolo层之前的层中的过滤器编号)。它们都使用相同的权重文件。是的,但我也必须提高CPU的速度。什么是正确的网络解决方案?我如何使用微型版本的yolo3?我必须使用另一个预先训练的体重吗?或者更改培训的配置文件?我可以通过使用1通道(灰度图像)来提高速度吗?你可以选择任何分辨率,只要它仍能检测到印版。根据我的经验,YOLO在对象达到30像素左右之前工作得很好。Tiny确实需要另一个培训文件。您可以在此处找到有关它的许多信息:。单通道图像对速度没有帮助。
# Testing
# batch=64
# subdivisions=8
# Training
batch=64
subdivisions=64
width=608
height=608
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.001
burn_in=1000
max_batches = 4000
policy=steps
steps=3200,3600
scales=.1,.1
....
YoloWrapper yoloWrapper;
private void Form_Load(object sender, EventArgs e)
{
yoloWrapper = new YoloWrapper("yolov3.cfg", "yolov3.weights", "voc.names");
}
private void btnDetect_Click(object sender, EventArgs e)
{
var items = yoloWrapper.Detect(path);
...
}