c 抓取网页数据( 路上在将图像发送到模型之前模型接收带有车牌的输入 )
优采云 发布时间: 2022-04-03 08:18c 抓取网页数据(
路上在将图像发送到模型之前模型接收带有车牌的输入
)
<p data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(143, 155, 171)" data-style="margin: 0em 0.5em; padding: 0px 0.5em; text-align: center; color: rgb(62, 71, 83); text-transform: none; text-indent: 0px; letter-spacing: 0.54px; clear: both; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; word-spacing: 0px; white-space: normal; min-height: 1em; max-width: 100%; box-sizing: border-box; orphans: 2; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);" style="margin: 0em 0.5em;padding-right: 0.5em;padding-left: 0.5em;font-variant-ligatures: no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;font-variant-numeric: normal;font-variant-east-asian: normal;white-space: normal;font-family: -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;widows: 1;text-align: center;color: rgb(62, 71, 83);letter-spacing: 0.54px;visibility: visible;">点击下方“AI算法与图像处理”,关注一下
重磅干货,第一时间送达</p>
介绍
我们知道,在当前形势下,我们正在逐步稳步战胜疫情,而且情况每天都在好转。然而,众所周知,即使在疫苗接种开始之后,彻底根除病毒也需要很多年。所以,为了安全起见,在接下来的几年里,我们所有人可能都会习惯戴口罩。就交通*敏*感*词*而言,政府仍然对不戴口罩上路的人进行严格的*敏*感*词*。创建一个可以跟踪所有交通违法者详细信息并提高公民意识和纪律的系统是一种非常有用的方法。该系统还可以通过另*敏*感*词*作为代码实现的一部分,我们计划设计一个模型,将图像分类为有掩码和没有掩码的掩码。对于获得的属于无遮罩类别的图像,我们获取车牌图像并尝试提取车辆细节。车牌识别是使用第二个模型完成的,该模型接收带有车牌作为汽车图像的输入。完成车辆 ID 后,我们会将详细信息传递到一个虚拟数据库,其中收录车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将生成*敏*感*词*,将直接发送到罪犯的家庭地址。软件架构 我们计划设计一个模型,将图像分类为带口罩和不带口罩的口罩。对于获得的属于无遮罩类别的图像,我们获取车牌图像并尝试提取车辆细节。车牌识别是使用第二个模型完成的,该模型接收带有车牌作为汽车图像的输入。完成车辆 ID 后,我们会将详细信息传递到一个虚拟数据库,其中收录车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将生成*敏*感*词*,将直接发送到罪犯的家庭地址。软件架构 我们计划设计一个模型,将图像分类为带口罩和不带口罩的口罩。对于获得的属于无遮罩类别的图像,我们获取车牌图像并尝试提取车辆细节。车牌识别是使用第二个模型完成的,该模型接收带有车牌作为汽车图像的输入。完成车辆 ID 后,我们会将详细信息传递到一个虚拟数据库,其中收录车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将生成*敏*感*词*,将直接发送到罪犯的家庭地址。软件架构 车牌识别是使用第二个模型完成的,该模型接收带有车牌作为汽车图像的输入。完成车辆 ID 后,我们会将详细信息传递到一个虚拟数据库,其中收录车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将生成*敏*感*词*,将直接发送到罪犯的家庭地址。软件架构 车牌识别是使用第二个模型完成的,该模型接收带有车牌作为汽车图像的输入。完成车辆 ID 后,我们会将详细信息传递到一个虚拟数据库,其中收录车牌持有人的数据以及车辆的详细信息。根据数据验证,我们将生成*敏*感*词*,将直接发送到罪犯的家庭地址。软件架构
网络抓取图像
该项目从识别要使用的数据集的问题开始。在我们的项目中,网上冲浪几乎没有为我们提供可用于我们项目的现有数据集。因此,我们决定应用网络抓取来采集带口罩和不带口罩的图像。我们使用 Beautiful Soap 和 Requests 库从 网站 下载图像并将它们保存到收录带和不带掩码的驱动程序的单独文件夹中。我们从以下 URL 中提取了数据,这些 URL 由蒙版和未蒙版图像组成。link url1 = link url2 = 下面是一段代码,用于演示网络上的图像抓取。
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 =0.5:
result = 'The person is Masked'
else:
result = 'The Person is Non Masked'
print(result)
return render_template('Show.html',result=result)
下面是作为上传图像文件的一部分向用户显示的 HTML 模板。
下面是一个 Html 模板,当 POST 方法在处理图像后发送结果时显示,显示驾驶员是否戴着口罩。
接下来,我们上传车辆的图像,该图像已被识别为未戴口罩的驾驶员。车辆图像通过图像预处理阶段再次处理,模型尝试从车牌中的车牌框中提取文本。
@app.route('/Vehicle', methods=['POST'])
def table2():
uploaded_file = request.files['file']
result=''
if uploaded_file.filename != '':
path='static/car'
filename = uploaded_file.filename
uploaded_file.save(os.path.join(path, filename))
img_path = os.path.join(path, filename)
print(img_path)
img = cv2.imread(img_path,cv2.IMREAD_COLOR)
img = cv2.resize(img, (600,400) )
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.bilateralFilter(gray, 13, 15, 15)
edged = cv2.Canny(gray, 30, 200)
contours = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = imutils.grab_contours(contours)
contours = sorted(contours, key = cv2.contourArea, reverse = True)[:10]
screenCnt = None
for c in contours:
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.018 * peri, True)
if len(approx) == 4:
screenCnt = approx
break
if screenCnt is None:
detected = 0
print ("No contour detected")
else:
detected = 1
if detected == 1:
cv2.drawContours(img, [screenCnt], -1, (0, 0, 255), 3)
mask = np.zeros(gray.shape,np.uint8)
new_image = cv2.drawContours(mask,[screenCnt],0,255,-1,)
new_image = cv2.bitwise_and(img,img,mask=mask)
(x, y) = np.where(mask == 255)
(topx, topy) = (np.min(x), np.min(y))
(bottomx, bottomy) = (np.max(x), np.max(y))
Cropped = gray[topx:bottomx+1, topy:bottomy+1]
text = pytesseract.image_to_string(Cropped, config='--psm 11')
print("Detected license plate Number is:",text)
#text='GJW-1-15-A-1138'
print('"{}"'.format(text))
re.sub(r'[^\x00-\x7f]',r'', text)
text = text.replace("\n", " ")
text = re.sub('[\W_]+', '', text)
print(text)
print('"{}"'.format(text))
query1 = {"Number Plate": text}
print("0")
for doc in collection.find(query1):
doc1 = doc
Name=doc1['Name']
Address=doc1['Address']
License=doc1['License Number']
return render_template('Penalty.html',Name=Name,Address=Address,License=License)
下面是车辆图像上传页面,它接受用户输入并处理车辆图像以获得车牌号文本。
提取车牌号文本后,我们需要使用车牌来查找车牌持有人的详细信息,接下来我们将连接到 MongoDB 创建的名为 License_Details 的表。一旦我们有了车牌号、姓名、地址和其他详细信息,我们就可以生成*敏*感*词*并将其显示在 HTML 模板页面上。
在未来的工作中,掩模模型的测试准确率与训练准确率相比要低得多。因此,未知数据集的误分类非常高。此外,我们需要努力提高基于 OpenCV 的车牌提取的准确性,因为错误的感兴趣区域可能会导致提取空车牌文本。此外,前端可以进一步改进,使其更具吸引力。参考
1.面罩检测器
2.面部识别与面膜应用和神经网络
3.在智能城市网络中使用口罩检测限制 COVID-19 的自动化系统:
4.自动车牌检测系统检测远车牌
5.自动车牌识别系统 (ANPR):一项调查
6.COVID-19:具有 OpenCV、Keras/TensorFlow 和深度学习的面罩检测器
7.OpenCV:使用 Python 的自动车牌/车牌识别 (ANPR)
8.
9.
10.使用OpenCV Python的车牌识别
11.车牌号检测
12.Github 链接
个人微信(如果没有备注不拉群!)请注明:地区+学校/企业+研究方向+昵称
<p style="padding-right: 0.5em;padding-left: 0.5em;letter-spacing: 0.544px;white-space: pre-wrap;background-color: rgb(254, 254, 254);">
</p>