2017-02-14 85 views
2

从下面的背面我可以看到汽车的图像,其中车牌清晰可辨,其尺寸对我而言是已知的。 enter image description here使用opencv从后面估计汽车宽度Python

这里是汽车 enter image description here

我已去除背景(掩蔽)之后检测到在蓝色圆圈角部的原始图像和我试图计算号牌已知的基础上的距离尺寸。请引导我,这是估计汽车宽度的正确方法吗?肯定这不是最好的方式,但在这种情况下,它会给我正确的估计?另外,请指导我如何检测车牌而不运行任何分类算法?我没有太多的汽车图像运行训练算法。我只是想检测板(基于某种逻辑),并从车牌号转换后面的尺寸。

例如,

number_plate_dimensions = (width, height) = (10, 4) 
image_number_plate_dimensions (from Euclidean distance) = (width, height) = (7.1, 1.6) 
So width_factor = 10/7.1 = 1.408 

现在,我走在蓝色的两个角的欧几里德距离,并通过此width_factor(1.408)相乘的结果来估计汽车的尺寸。 此方法是否正确?

感谢您提前给出答案。

回答

2

作为最基本的初学者步骤,您需要将检测到的铭牌的单变换转换为已知尺寸。您将相同的变换应用于汽车轮廓并获得尺寸。

你可以像欧几里德方法一样做一阶近似,但特别是在极端角度(例如从汽车上方)时,这会引入一些严重的失真。

我使用Lukas-Kanade光流跟踪algortihms做基本的单应性,但谷歌会引导你使用opencv使用单应性的很多方法。

一个简单的方法如何计算单应性的例子是here

+0

为了完整起见:如果您从同一辆车上获得足够的照片,则可以进一步评估汽车的3D形状。 – Dschoni

+0

我只有2个角度的图片,一个角度是从后面确定宽度和一个角度是从侧面确定长度和高度。从每个角度来看,我有2张图片,落后几米,向前几米。这些信息足以估计3D模型吗? – muazfaiz

+0

它应该足以计算汽车适合3D的边界框。 – Dschoni