徐州建设厅网站自己做的网站页面错误
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:06
当前位置: 首页 > news >正文
徐州建设厅网站,自己做的网站页面错误,怎么看网站后台网页尺寸,金塔精神文明建设网站目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Anaconda 环境搭建 模块实现1. 数据预处理2. 模型构建及算法实现3. 模型生成 系统测试1. 训练准确率2. 运行结果 工程源代码下载其它资料下载 前言 在当今全球范围内#xff0c;新冠疫情对我们的生活方式带来了… 目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Anaconda 环境搭建 模块实现1. 数据预处理2. 模型构建及算法实现3. 模型生成 系统测试1. 训练准确率2. 运行结果 工程源代码下载其它资料下载 前言 在当今全球范围内新冠疫情对我们的生活方式带来了巨大的改变。在公共场所佩戴口罩成为了常态以保护我们自己和他人的健康安全。然而这也给人脸识别技术带来了新的挑战。如何准确地辨别佩戴口罩的人成为了一个重要的问题。 本文介绍的一种基于Tensorflow、SDD和Python的人脸口罩识别系统结合了深度学习技术和计算机视觉算法能够高效地检测人脸并准确地判断是否佩戴口罩。通过使用这个系统我们可以更好地管理公共场所的出入口确保员工、顾客和访客的健康安全。 当然您可以在文末下载本系统的全部工程源码包括Web demo进行个人二次开发。 总体设计 本部分包括系统整体结构图和系统流程图。 系统整体结构图 系统整体结构如图所示。 系统流程图 系统流程如图所示。 运行环境 本部分包括 Python 环境和Anaconda 环境。 Python 环境 需要 Python 3.5 及以上配置在 Windows 环境下推荐下载 Anaconda 完成 Python 所需的配置下载地址https://www.anaconda.com/也可以下载虚拟机在 Linux 环境下运行代码。 Anaconda 环境搭建 打开 Anaconda Prompt输入清华仓库镜像。 conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config –set show_channel_urls yes创建 Python3.5 的环境名称为 TensorFlow conda create -n tensorflow python3.5有需要确认的地方都输入 y。 在 Anaconda Prompt 中激活 TensorFlow 环境 activate tensorflow安装 CPU 版本的 TensorFlow pip install –upgrade –ignore-installed tensorflow安装完毕。 模块实现 本项目包括 3 个模块数据预处理、模型构建及算法实现、模型生成下面分别给出各模块的功能介绍及相关代码。
数据预处理 WIDER Face 和 MAFA 这两个数据集包含了大量的人脸及人脸佩戴口罩的图片但只使用WIDER Face 数据集所含其他遮挡脸部的图片较少如用手挡住脸部会出现识别偏差的情况。因此从 WIDER Face 数据集中选取 3894 张图片、MAFA 数据集中选取 4064张图片包含戴口罩、不戴口罩、用其他物体遮挡面部共 8000 张图片进行训练。 数据集下载链接https://pan.baidu.com/s/1nsQf_Py5YyKm87-8HiyJeQ 提取码eyfz
模型构建及算法实现 数据加载进模型之后需要定义模型结构并进行算法实现。
定义模型结构 定义的架构共 28 个卷积层其中有 8 个主干层即特征提取层20 个定位和分类层。每个卷积层的通道数是 32、64、128 三种为了能够更好地运行在终端设备上模型设计的较小共 101.5 万个参数输入为 260*260 大小的图片。
算法实现 基于 SSD 检测模型推理实现以下三步生成全部的 anchor、网络输出值根据全部的anchors 解码、NMS非极大值抑制即可即以下三个函数 function anchorGenerator()、function decodeBBox()、function nonMaxSuppression() 训练目标检测模型最重要的是合理设置 anchor 的大小和宽高比。所谓 anchor 是指在图像上预设好的不同大小不同长宽比的参照框。假设一个 256*256 大小的图片经过 64、128 和 256 倍下采样会产生 4X4、2X2、1X1 大小的特征图每个点上都设置三个不同大小的 anchor。在实际的 SSD 模型中300X300 的输入下anchor 数量也特别多在38X38、19X19、10X10、5X5、3X3、1X1 的六个特征图上每个点分别设置 4、6、6、6、6、4 个不同大小和长宽比的 anchor一共有 38X38X4 19X19X6 10X10X6 5X5X63X3X4 1X1X4 8732个 anchor。借助卷积神经网络可直接输出每个 anchor 是否包含与物体有较大重叠也就是 IoU 较大物体以及被检测物体相对本 anchor 的中心点偏移、长宽比例。 在训练的时候也就是给每张图片物体的 Bounding Box相对于 anchor 进行编码如果物体 Bounding Box 与某个 anchor 的 IoU 较大例如大于 0.5 认为是正样本否则是负样本。 对于检测网络有的实现是用没有归一化的坐标例如anchor 设置为30, 42尺度大小但是有的算法实现是将坐标和物体框的宽高比除以图片的宽和高。如果图片都是正方形的那归一化后宽高比没有变化如果是 1080P 分辨率的摄像头那么长宽比是16:9。本来就小的宽度再除以 1920而高度除以 1080会导致归一化后的人脸高度是宽度的 2 倍左右。归一化处理即 BBOX_NORMALIZE True 根据数据的分布将五个定位层的 anchor 的宽高比统一设置为 10.62, 0.42。转换为高宽比也就是约 11.612.4:1。
代码实现
-- coding:utf-8 --
import cv2 import time import argparseimport numpy as np from PIL import Image from keras.models import model_from_json from utils.anchor_generator import generate_anchors from utils.anchor_decode import decode_bbox from utils.nms import single_class_non_max_suppression from load_model.tensorflow_loader import load_tf_model, tf_inference# 载入模型 sess, graph load_tf_model(models/face_mask_detection.pb)
anchor configuration
#特征图大小 feature_map_sizes [[33, 33], [17, 17], [9, 9], [5, 5], [3, 3]] #anchor大小 anchor_sizes [[0.04, 0.056], [0.08, 0.11], [0.16, 0.22], [0.32, 0.45], [0.64, 0.72]] #anchor宽高比 anchor_ratios [[1, 0.62, 0.42]] * 5# generate anchors anchors generate_anchors(feature_map_sizes, anchor_sizes, anchor_ratios)# 用于推断批大小为 1模型输出形状为 [1N4]因此将锚点的 dim 扩展为 [1anchor_num4] anchors_exp np.expand_dims(anchors, axis0)id2class {0: Mask, 1: NoMask}# 用训练好的模型做预测 def inference(image,conf_thresh0.5,iou_thresh0.4,target_shape(160, 160),draw_resultTrue,show_resultTrue): 检测推理的主要功能# param image3D numpy 图片数组# param conf_thresh分类概率的最小阈值。# param iou_thresh网管的 IOU 门限# param target_shape模型输入大小。# param draw_result是否将边框拖入图像。# param show_result是否显示图像。output_info []height, width, _ image.shape#获取初始图像的长宽image_resized cv2.resize(image, target_shape)#改变图像尺寸image_np image_resized / 255.0 # 归一化到0~1image_exp np.expand_dims(image_np, axis0) #扩展图片维度y_bboxes_output, y_cls_output tf_inference(sess, graph, image_exp)#构建图返回包含预测结果的框和颜色# 删除批次维度因为用于推断批次始终是1。y_bboxes decode_bbox(anchors_exp, y_bboxes_output)[0]y_cls y_cls_output[0]# 为了加快速度执行单类 NMS而不是多类 NMS。即戴口罩人脸和不戴口罩人脸两个类别一起做NMSbbox_max_scores np.max(y_cls, axis1)bbox_max_score_classes np.argmax(y_cls, axis1)# keep_idx 是 nms 之后的活动边界框。keep_idxs single_class_non_max_suppression(y_bboxes,bbox_max_scores,conf_threshconf_thresh,iou_threshiou_thresh,)for idx in keep_idxs:conf float(bbox_max_scores[idx])class_id bbox_max_score_classes[idx]bbox y_bboxes[idx]# 裁剪坐标避免该值超出图像边界。xmin max(0, int(bbox[0] * width))ymin max(0, int(bbox[1] * height))xmax min(int(bbox[2] * width), width)ymax min(int(bbox[3] * height), height)3. 模型生成 该应用主要有两部分一是对图片中的人脸进行识别二是对视频中出现的人脸进行识别。
调用训练好的模型 sess, graph load_tf_model(models\face_mask_detection.pb) #载入模型2. 图片处理 1anchor 设定完成后进行识别 2解码及非极大值抑制 if draw_result:if class_id 0:color (0, 255, 0)#戴口罩显示绿框else:color (255, 0, 0) #没戴口罩显示红框cv2.rectangle(image, (xmin, ymin), (xmax, ymax), color, 2)#图像左上角坐标右下角坐标 颜色粗细cv2.putText(image, %s: %.2f % (id2class[class_id], conf), (xmin 2, ymin - 2),cv2.FONT_HERSHEY_SIMPLEX, 0.8, color)#图片添加的文字左上角坐标字体字体大小颜色output_info.append([class_id, conf, xmin, ymin, xmax, ymax])if show_result:Image.fromarray(image).show()return output_info3. 视频处理 #视频检测 def run_on_video(video_path, output_video_name, conf_thresh):cap cv2.VideoCapture(video_path) #读取本地视频height cap.get(cv2.CAP_PROP_FRAME_HEIGHT)#计算视频的高width cap.get(cv2.CAP_PROP_FRAME_WIDTH)#计算视频的宽fps cap.get(cv2.CAP_PROP_FPS)#得到视频的帧率fourcc cv2.VideoWriter_fourcc(*XVID)#XVID是MPEG-4编码类型文件名后缀为.avi# writer cv2.VideoWriter(output_video_name, fourcc, int(fps), (int(width), int(height)))total_frames cap.get(cv2.CAP_PROP_FRAME_COUNT)#获取视频总帧数if not cap.isOpened():#视频打开失败raise ValueError(Video open failed.)returnstatus Trueidx 0while status:start_stamp time.time()#返回当前时间的时间戳status, img_raw cap.read()#第一个参数ret 为True 或者False,代表有没有读取到图片# #第二个参数frame表示截取到一帧的图片img_raw cv2.cvtColor(img_raw, cv2.COLOR_BGR2RGB)#色彩空间BGR转为RGBread_frame_stamp time.time()if (status):inference(img_raw,conf_thresh,iou_thresh0.5,target_shape(260, 260),draw_resultTrue,show_resultFalse)#调用推断cv2.imshow(image, img_raw[:, :, ::-1])cv2.waitKey(1)inference_stamp time.time()# writer.write(img_raw)write_frame_stamp time.time()idx 1#循环直到识别到口罩,然后输出帧数和时间.print(%d of %d % (idx, total_frames))print(read_frame:%f, infer time:%f, write time:%f % (read_frame_stamp - start_stamp,inference_stamp - read_frame_stamp,write_frame_stamp - inference_stamp))# writer.release()系统测试 本部分包括模型训练准确率及模型测试效果。
训练准确率 戴口罩的人脸识别准确率接近 92%可识别绝大部分戴口罩的人脸如图所示。 2. 运行结果
在命令行中运行
跟命令行有关的
if name main:# 跟命令行有关的parser argparse.ArgumentParser(descriptionFace Mask Detection) # 创建解析器parser.add_argument(–img-mode, typeint, default1, helpset 1 to run on image, 0 to run on video.)#这里设置为 1检测图片还是设置为 0视频文件实时图像数据检测parser.add_argument(–img-path, typestr, helppath to your image.)parser.add_argument(–video-path, typestr, default0, helppath to your video, 0 means to use camera.)# parser.add_argument(–hdf5, typestr, helpkeras hdf5 file)args parser.parse_args()# 把parser中设置的所有add_argument给返回到args子类实例当中 那么parser中增加的属性内容都会在args实例中使用即可。if args.img_mode:imgPath args.img_path#图片路径img cv2.imread(imgPath)#读取图片img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#转换色彩空间RGB换个位置inference(img, show_resultTrue, target_shape(260, 260))else:video_path args.video_path#视频路径if args.video_path 0:video_path 0run_on_video(video_path, , conf_thresh0.5) 运行方法如下 如果您要运行图片需要 python tensorflow_infer.py –img-path /path/to/your/img如果您要在视频上运行需要 python tensorflow_infer.py –img-mode 0 –video-path /path/to/video 如果要打开本地摄像头, video_path 填写 0 就可以 python tensorflow_infer.py –img-mode 0 –video-path 02. 运行结果 照片测试结果如图所示: 工程源代码下载 详见本人博客资源下载页 其它资料下载 如果大家想继续了解人工智能相关学习路线和知识体系欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线所有资料免关注免套路直接网盘下载》 这篇博客参考了Github知名开源平台AI技术平台以及相关领域专家DatawhaleApacheCNAI有道和黄海广博士等约有近100G相关资料希望能帮助到所有小伙伴们。
- 上一篇: 徐州建设局网新网站北京软件编程培训机构
- 下一篇: 徐州建设银行网站泰州模板自助建站
相关文章
-
徐州建设局网新网站北京软件编程培训机构
徐州建设局网新网站北京软件编程培训机构
- 技术栈
- 2026年04月20日
-
徐州建设公司网站举报网站平台怎么举报
徐州建设公司网站举报网站平台怎么举报
- 技术栈
- 2026年04月20日
-
徐州建设工程招投标官方网站温州网站推广公司
徐州建设工程招投标官方网站温州网站推广公司
- 技术栈
- 2026年04月20日
-
徐州建设银行网站泰州模板自助建站
徐州建设银行网站泰州模板自助建站
- 技术栈
- 2026年04月20日
-
徐州建站服务漯河网站建设网站建设
徐州建站服务漯河网站建设网站建设
- 技术栈
- 2026年04月20日
-
徐州开发的网站服装公司网站建设开题报告
徐州开发的网站服装公司网站建设开题报告
- 技术栈
- 2026年04月20日
