深度学习目标检测-交通标志检测web界面
深度学习目标检测-交通标志检测web界面
今天我们一起学习利用flask框架将深度学习检测封装为一个界面系统。该界面是基于之前写的一篇文章的训练模型进行检测:
自动驾驶目标检测项目实战(二)—基于Faster-RCNN的交通标志检测
效果
首先看看效果:
有识别历史记录。
算法流程
参考这些大佬的代码进行训练:
https://github.com/arindam93/Traffic-Sign-Detection-Faster-RCNN
使用Faster-RCNN进行训练,这是一个二分类的问题,也就是检测是否存在交通标志,而未进行分类。
训练完之后,可以得到pickle文件和hdf5文件:
这里选用fcnet,也可选择vgg进行训练。
网页设计
使用Flask框架进行网页的搭建。主要代码如下:
# -*- coding: utf-8 -*-
import os
import uuid
import cv2
from flask import (Blueprint, flash, g, redirect, render_template, request, url_for
)
from flask import send_from_directory
from flask_img.db import get_db
import shutil
from test_frcnn import detect_sign # 加载文件函数
import cv2 as cvtable = [] # 识别历史表格
hot = 0 # 编号bp = Blueprint('main', __name__)ALLOWED_EXTENSIONS = {'png', 'jpg', 'bmp'}
IMAGE_FOLDER = os.path.join(bp.root_path, '..', 'images')
TMP_FOLDER = os.path.join(bp.root_path, '..', 'tmps')
CARD_COLOR = {"blue": "蓝色","yello": "黄色","green": "绿色"
}try:shutil.rmtree(IMAGE_FOLDER)os.makedirs(IMAGE_FOLDER)
except OSError:passtry:shutil.rmtree(TMP_FOLDER)os.makedirs(TMP_FOLDER)
except OSError:passdef allowed_file(filename):return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS@bp.route('/', methods=('GET', 'POST'))
def index():if request.method == 'POST':if 'defect_image' not in request.files:flash('请选择识别文件')return redirect(request.url)image = request.files['defect_image']image_path = ""if image.filename == '':flash('请选择识别文件')return redirect(request.url)if not image or not allowed_file(image.filename):flash('文件不存在或后缀不合法')return redirect(request.url)# 原来的文件名写法# image_uuid = uuid.uuid4().hex# filename = ''.join([image_uuid, '.', image.filename.rsplit('.', 1)[1]])# 现在的文件名写法filename = image.filenameimage.save(os.path.join(IMAGE_FOLDER, filename))result = {}try:db = get_db()result = defect_pic(filename, image_path)db.execute('INSERT INTO img_info (img_color_contours, img_only_color, barcode_info)'' VALUES (?, ?, ?)',(result.get('img_color_contours', ''),result.get('img_only_color', ''),' '.join(result['text']) if result.get('text') else ''))db.commit()result.update({'result': '检测成功'})except Exception as e:flash(e)result.update({'result': '检测失败'})return render_template('index.html', result=result)return render_template('index.html')@bp.route('/image/<filename>')
def show_img(filename):return send_from_directory(IMAGE_FOLDER, filename)@bp.route('/tmp/<filename>')
def show_tmp_img(filename):return send_from_directory(TMP_FOLDER, filename)def defect_pic(filename, image_path):pic_path = os.path.join(IMAGE_FOLDER, filename)res, defect_img = detect_sign(pic_path, filename, "绝对路径")has_defect = '否' # 初始化if res > 0:has_defect = '是'cv2.imwrite(TMP_FOLDER + "/" + "defect_" + filename, defect_img)global hot # 设为全局变量img_his = cv.imread(pic_path)x, y = img_his.shape[0:2]cv2.imwrite(IMAGE_FOLDER + "/" + "hot_" + filename, cv.resize(img_his, (int(y / 2), int(x / 2))))table.append([hot, '/image/' + "hot_" + filename, has_defect, res])hot += 1 # 编号加1return {'defect': True,'img_color_contours': '原始图像','img_color_contours_path': '/image/'+filename,'img_only_color': '检测图像','img_only_color_path': '/tmp/'+ "defect_" + filename,'has_defect': has_defect,'is_defect': res,'table': table,}
注意
1.该界面适合所有检测目标,只需要更改界面的后台检测算法即可。
2.目前算法可以同时支持检测分类,具体可以看:
深度学习目标检测ui界面-交通标志检测识别
需要代码的请私信我
深度学习目标检测-交通标志检测web界面相关推荐
- 基于深度学习的道路交通标志数字识别
基于MATLAB深度学习的交通标志识别 课题介绍 交通标志识别技术的研究最早开始于奔驰等14家大型汽车公 司组成的民间组织所资助的Prometheus(Program for European Tra ...
- 基于Matlab深度学习Yolov4-tiny的交通标志识别道路标志识别检测
交通标志检测是辅助驾驶.自动驾驶系统中的重要组成部分,针对交通标志检测任务中复杂环境下的小目标检测精度低的问题,提出一种基于YOLOv4-tiny的交通标志检测方法. 基于Matlab深度学习的道路标 ...
- 基于深度学习的大规模交通标志识别(附6GB交通标志数据集)
01 1.文章信息 <Deep Learning for Large-Scale Traffic-Sign Detection and Recognition>. 国外学者2020年发在I ...
- 基于深度学习的道路交通标志
最近刚做了个这个小系统,带界面,有兴趣的可以加我QQ3025934473了解一下
- 深度学习目标检测最全综述
本篇文章是精读了三篇目标检测综述文章之后,结合落地项目经验总结而成.文章内容很多,本文的目的是划重点,写核心,使刚入门的同学对目标检测有从感性到理性的认识. 文章中出现的论文,全部打包整理,需要仔细研 ...
- 开源目标检测算法用于交通标志检测全方位评估
(欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 交通标志检测在自动驾驶.汽车主动安全中应用非常重要,通用的目标检测算法可以通过微调网络的方式直接用于交通标志检测. ...
- TSR交通标志检测与识别
TSR交通标志检测与识别 说明: 传统图像处理算法的TSR集成在在ARM+DSP上运行,深度学习开发的TSR集成到FPGA上运行. 输入输出接口 Input: (1)图像视频分辨率(整型int) (2 ...
- 【目标检测】基于yolov5的交通标志检测和识别(附代码和数据集)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 文末附项目代码和数据集,请看检测效果: 1. 介绍 Y ...
- 【目标检测】基于yolov3交通标志检测和识别(附代码和数据集)
Hello,大家好,我是augustqi.今天给大家分享的目标检测项目是:基于yolov3交通标志检测和识别(附代码和数据集)[目前yolov7都出来了,为什么要用2018年的yolov3呢?因为我想 ...
- 深度学习目标检测 RCNN F-RCNN SPP yolo-v1 v2 v3 残差网络ResNet MobileNet SqueezeNet ShuffleNet
深度学习目标检测--结构变化顺序是RCNN->SPP->Fast RCNN->Faster RCNN->YOLO->SSD->YOLO2->Mask RCNN ...
最新文章
- 【ES6】Module模块详解
- 调试寄存器(debug registers, DRx)理论及实践
- DCMTK:创建,写入和读取二进制细分对象
- linux 文档属于apache,Apache 安装和使用文档
- linux 修改Db2主机名,对DB2服务器主机名的修改的正确操作流程
- Android Studio 教程(1)----配置
- netty sync方法_netty是如何封装NIO的
- 【iOS】Could not launch Verify the Developer App certificate for your account is trusted on your devic
- statfs函数获取大容量磁盘信息速度慢的解决过程
- sql or 与and同时有时要注意
- oracle 取表字段,oracle 取多级的表字段
- 15款13英寸低配mbp的外接显示器选择
- 毫米波雷达人体姿态估计数据集整理 1 -- Python读取含合并单元格的excel
- 滤波器带宽,信号带宽 和晶振PPM(误差)的关系
- IT人物——冯诺依曼
- 计算机u盘 硬盘无法读取,如何解决u盘启动盘读不出来硬盘的问题
- 便利店卷疯了:便利蜂、罗森、易捷“激战”
- API接口搜索商品列表的调用展示
- “云计算机”是什么?
- 恢复计算机到手机桌面,桌面的图标怎么恢复原来的呀?