使用Python+OpenCV+Keras实现基于车牌的无口罩车辆驾驶员的惩罚生成

本文介绍了一个使用Python、OpenCV和Keras实现的系统,该系统能检测驾驶员是否戴口罩,若未戴口罩则识别车牌,通过车牌信息生成罚款。系统包括网络抓取图像、图像预处理、模型训练、车牌号码提取和MongoDB数据库集成等步骤,旨在提高交通规则遵守和罚款管理效率。
摘要由CSDN通过智能技术生成

介绍

我们知道,在当前形势下,我们正在逐步稳定地克服大流行病的情况,而且情况每天都在改善。但是,众所周知,即使已经开始接种疫苗,彻底根除该病毒仍需花费很多年。因此,为安全起见,在接下来的几年中,我们所有人都可能会习惯于戴口罩。

就违反交通规则而言,政府仍然严格对在路上开车不戴口罩的人处以罚款。

建立一个系统,能够追踪所有交通违法者的细节,提高公民的意识和纪律,是一个非常有用的办法。

还可以通过另外创建一个仪表板监视程序来跟踪该交通规则违反者的增加或减少,在给定期间内收集罚款,确定主要违反规则的人群,从而改善该系统。

工作范围

作为代码实现的一部分,我们计划设计一个模型,将图像分类为戴口罩的和没戴口罩的。对于获得的属于没戴口罩类别的图像,我们获取车辆号牌的图像,并尝试提取车辆详细信息。

车牌识别使用第二个模型完成,该模型接收带有车牌的输入作为汽车图像。一旦完成了车辆ID,我们便将详细信息传递到虚拟数据库,该数据库包含车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将产生罚款,该罚款将直接发送到违规者的家庭住址。

软件架构

网页抓取图片

项目始于确定要使用的数据集的问题。在我们的项目中,在线冲浪几乎无法为我们提供可用于我们项目的现有数据集。

因此,我们决定应用网络抓取收集戴口罩和没戴口罩的图像。

我们使用Beautiful Soap and Requests库从网站下载图像并将其保存到包含戴口罩和没带口罩驾驶员的不同文件夹中。

我们从下面的URL中提取了数据,这些URL由已屏蔽图像和未屏蔽图像组成。

链接url1 = https://www.gettyimages.in/photos/driving-mask?page=

链接url2 = https://www.gettyimages.in/photos/driving-without-mask?page=

下面是一段代码,演示了Web上的图像抓取。

from bs4 import *
import requests as rq
import os


url1 = 'https://www.gettyimages.in/photos/driving-mask?page='
url2 = '&phrase=driving%20mask&sort=mostpopular'

url_list=[]
Links = []

for i in range(1,56):
    full_url = url1+str(i)+url2
    url_list.append(full_url)

for lst in url_list:
    r2 = rq.get(lst)
    soup = BeautifulSoup(r2.text, 'html.parser')

    x=soup.select('img[src^="https://media.gettyimages.com/photos/"]')

    for img in x:
        Links.append(img['src'])
    print(len(Links))



for index, img_link in enumerate(Links):
   if i <= len(Links):
       img_data = rq.get(img_link).content
       with open("Masked_Drivers/" + str(index + 1) + '.jpg', 'wb+') as f:
           f.write(img_data)
           i += 1

图像预处理

在将图像发送到模型之前,我们需要应用一些清理技术,例如图像大小调整图像的灰度和将像素重新缩放为较低的值。之后,图像和目标将保存在阵列中。

import cv2,os

data_path='Dataset'
categories=os.listdir(data_path)
labels=[i for i in range(len(categories))]

label_dict=dict(zip(categories,labels)) #empty dictionary

print(label_dict)
print(categories)
print(labels)



img_size=100
data=[]
target=[]


img_size=100
data=[]
target=[]


for category in categories:
    folder_path=os.path.join(data_path,category)
    img_names=os.listdir(folder_path)
        
    for img_name in img_names:
        img_path=os.path.join(folder_path,img_name)
        img=cv2.imread(img_path)

        try:
            gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)           
            #Coverting the image into gray scale
            resized=cv2.resize(gray,(img_size,img_size))
            #resizing the gray scale into 50x50, since we need a fixed common size for all the images in the dataset
            data.append(resized)
            target.append(label_dict[category])
            #appending the image and the label(categorized) into the list (dataset)

        except Exce
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目标识别是计算机视觉一个重要的研究领域,由此延伸出的车辆型号识别具有重 要的实际应用价值,特别是在当今交通状况复杂的大城市,智能交通系统成为发展趋 势,这离不开对车辆型号进行识别和分类的工作,本文围绕如何利用计算机视觉的方 法进行车辆型号的识别和分类展开了一系列研究: 本文对当前的目标识别和分类的特征和算法做了总结和归纳。分析比较了作为图 像特征描述常见的特征算子,总结归纳了他们的提取方法、特征性能以及相互之间的 关联。另外,介绍了在目标识别工作中常用的分类方法,阐述了他们各自的原理和工作 方法。研究了深度神经网络的理论依据,分析比较了深度神经网络不同的特征学习方 法,以及卷积神经网络的训练方法。分析比较不同特征学习方法的特点选取 k-means 作为本文使用的特征学习方法,利用卷积神经网络结构搭建深度学习模型,进行车辆 车型识别工作。 本文为了测试基于深度学习车辆型号分类算法的性能在 30 个不同型号共 7158 张图片上进行实验;并在相同数据上利用改进了的 SIFT 特征匹配的算法进行对比实验; 进过实验测试,深度学习方法在进行车型分类的实验中取得 94%的正确率,并在与 SIFT 匹配实验结果对比后进一步证实:深度学习的方法能够应用在车辆型号识别领域
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值