python停车场_opencv停车场车位实战

通过学习唐宇迪老师的opencv停车场车位实战,在这里本人来汇总一下该项目的实现步骤:

实际数据中,上面的图像为动态的实时监控录像,我们需要利用opencv的利用,形成能够实时的记录有空缺的停车位,并且能够为新来的车辆指引其最近的停车位置。

```python

if __name__ == '__main__':

test_images = [plt.imread(path) for path in glob.glob('test_images/*.jpg')]

weights_path = 'car1.h5'

video_name = 'parking_video.mp4'

class_dictionary = {}

class_dictionary[0] = 'empty'

class_dictionary[1] = 'occupied'

park = Parking()

park.show_images(test_images)

final_spot_dict = img_process(test_images,park)

model = keras_model(weights_path)

img_test(test_images,final_spot_dict,model,class_dictionary)

video_test(video_name,final_spot_dict,model,class_dictionary)

在上述的主代码中:

test_images:为我们输入的数据

weights_path:为我们训练的模型,“car1.h5”为我们训练完得到的模型结果,以及训练参数权重,用于之后判断车位是否有被占

video_name:为输入的数据,用于实时的监控运作

class_dictionary:根据字典,返回车位是否被占

img_process:对图像处理的代码

因此,在我们的实际操作中,我们需要将图像经过复杂的处理才能够好的进行图像识别。

首先,将图像进行二值化可以更加方便的进行后期的处理def select_rgb_white_yellow(self,image):

对图像进行边缘检测def detect_edges(opencv可以检测该有的边界,但效果并不能很完美)

整个图片存在不需要的信息,因此我们需要设定的范围进行切割,仅仅绘制出我们需要的停车场图像(一共为6个点)

将之前的边缘检测图像加入到特定的图片信息中

检测每一横的停车线的存在,在图像中进行绘制

检测每一列的位置,并且标记出每一列所存在的停车位def identify_blocks(self,image, lines, make_copy=True):

通过对划分的列以及运用draw_parking()中的微调,从而获取规范实际的停车位信息。

图片提取出每个停车位的图像,从而可以得到空以及占据的分类

之后利用Keras进行是否有车在停车位的模型训练,从而进行车位判定的训练:

原文链接:https://blog.csdn.net/ThinkingOutLoud/article/details/106449321

你可能感兴趣的:(python停车场)