人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)

这篇具有很好参考价值的文章主要介绍了人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

import argparse

import cv2

construct the argument parse and parse the arguments

ap = argparse.ArgumentParser()

ap.add_argument(“-i”, “–image”, required=True,

help=“path to input image”)

ap.add_argument(“-p”, “–prototxt”, required=True,

help=“path to Caffe ‘deploy’ prototxt file”)

ap.add_argument(“-m”, “–model”, required=True,

help=“path to Caffe pre-trained model”)

ap.add_argument(“-c”, “–confidence”, type=float, default=0.5,

help=“minimum probability to filter weak detections”)

args = vars(ap.parse_args())

导入所需的包并解析命令行参数。 我们有三个必需的参数:

–image :输入图像的路径。

–prototxt :Caffe prototxt 文件的路径。

–model :预训练 Caffe 模型的路径。

可选参数 --confidence 可以覆盖默认阈值 0.5。 从那里让我们加载我们的模型并从我们的图像创建一个 blob:

load our serialized model from disk

print(“[INFO] loading model…”)

net = cv2.dnn.readNetFromCaffe(args[“prototxt”], args[“model”])

load the input image and construct an input blob for the image

by resizing to a fixed 300x300 pixels and then normalizing it

image = cv2.imread(args[“image”])

(h, w) = image.shape[:2]

blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0,

(300, 300), (104.0, 177.0, 123.0))

首先,我们使用 --prototxt 和 --model 文件路径加载我们的模型。 我们将模型存储为 net(第 20 行)。

然后我们加载图像,提取尺寸,并创建一个 blob。 dnn.blobFromImage 负责预处理,包括设置 blob 尺寸和规范化。 如果您有兴趣了解有关 dnn.blobFromImage 函数的更多信息,我会在这篇博文中详细介绍。 接下来,我们将应用人脸检测:

pass the blob through the network and obtain the detections and

predictions

print(“[INFO] computing object detections…”)

net.setInput(blob)

detections = net.forward()

为了检测人脸,将 blob 通过网络。 然后我们将循环检测并在检测到的人脸周围绘制框:

loop over the detections

for i in range(0, detections.shape[2]):

extract the confidence (i.e., probability) associated with the

prediction

confidence = detections[0, 0, i, 2]

filter out weak detections by ensuring the confidence is

greater than the minimum confidence

if confidence > args[“confidence”]:

compute the (x, y)-coordinates of the bounding box for the

object

box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])

(startX, startY, endX, endY) = box.astype(“int”)

draw the bounding box of the face along with the associated

probability

text = “{:.2f}%”.format(confidence * 100)

y = startY - 10 if startY - 10 > 10 else startY + 10

cv2.rectangle(image, (startX, startY), (endX, endY),

(0, 0, 255), 2)

cv2.putText(image, text, (startX, y),

cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)

show the output image

cv2.imshow(“Output”, image)

cv2.waitKey(0)

遍历检测结果。

然后,我们提取置信度并将其与置信度阈值进行比较。 我们执行此检查以过滤掉弱检测。 如果置信度满足最小阈值,我们继续绘制一个矩形以及检测概率。

为此,我们首先计算边界框的 (x, y) 坐标。 然后我们构建包含检测概率的置信文本字符串。 如果我们的文本偏离图像(例如当面部检测发生在图像的最顶部时),我们将其向下移动 10 个像素。 我们的面部矩形和置信文本绘制在图像上。

然后,我们再次循环执行该过程后的其他检测。 如果没有检测到,我们准备在屏幕上显示我们的输出图像)。

打开一个终端并执行以下命令:

python detect_faces.py --image 2.jpg --prototxt deploy.proto.txt --model res10_300x300_ssd_iter_140000_fp16.caffemodel

人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

使用 OpenCV 和深度学习在视频和网络摄像头中进行人脸检测

==========================================================================================

既然我们已经学习了如何将 OpenCV 的人脸检测应用于单个图像,让我们还将人脸检测应用于视频、视频流和网络摄像头。 对我们来说幸运的是,我们在上一节中使用 OpenCV 在单个图像中进行人脸检测的大部分代码都可以在这里重用!

打开一个新文件,将其命名为 detect_faces_video.py ,并插入以下代码:

import the necessary packages

from imutils.video import VideoStream

import numpy as np

import argparse

import imutils

import time

import cv2

construct the argument parse and parse the arguments

ap = argparse.ArgumentParser()

ap.add_argument(“-p”, “–prototxt”, required=True,

help=“path to Caffe ‘deploy’ prototxt file”)

ap.add_argument(“-m”, “–model”, required=True,

help=“path to Caffe pre-trained model”)

ap.add_argument(“-c”, “–confidence”, type=float, default=0.5,

help=“minimum probability to filter weak detections”)

args = vars(ap.parse_args())

与上面相比,我们需要导入三个额外的包: VideoStream 、 imutils 和 time 。 如果您的虚拟环境中没有 imutils,您可以通过以下方式安装它:

pip install imutils

我们的命令行参数基本相同,只是这次我们没有 --image 路径参数。 我们将改用网络摄像头的视频源。 从那里我们将加载我们的模型并初始化视频流:

load our serialized model from disk

print(“[INFO] loading model…”)

net = cv2.dnn.readNetFromCaffe(args[“prototxt”], args[“model”])

initialize the video stream and allow the camera sensor to warm up

print(“[INFO] starting video stream…”)

vs = VideoStream(src=0).start()

time.sleep(2.0)

加载模型与上面相同。 我们初始化一个 VideoStream 对象,指定索引为零的相机作为源(通常这将是您笔记本电脑的内置相机或检测到的台式机的第一个相机)。 这里有一些快速说明:

如果您希望使用 Raspberry Pi 摄像头模块,Raspberry Pi + picamera 用户可以将其替换为 vs = VideoStream(usePiCamera=True).start()。 如果要解析视频文件(而不是视频流),请将 VideoStream 类换成 FileVideoStream。

然后我们让相机传感器预热 2 秒。 从那里我们循环帧并使用 OpenCV 计算人脸检测:

loop over the frames from the video stream

while True:

grab the frame from the threaded video stream and resize it

to have a maximum width of 400 pixels

frame = vs.read()

frame = imutils.resize(frame, width=400)

grab the frame dimensions and convert it to a blob

(h, w) = frame.shape[:2]

blob = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)), 1.0,

(300, 300), (104.0, 177.0, 123.0))

pass the blob through the network and obtain the detections and

predictions

net.setInput(blob)

detections = net.forward()

这个块应该看起来很熟悉上一节中的静态图像版本。 在这个块中,我们从视频流中读取一个帧,创建一个 blob,并将 blob 传递给深度神经网络以获得面部检测。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

cb197de0dc0438ec5.png#pic_center)

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1),2024年程序员学习,opencv,深度学习,人工智能

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-V1v6nRv8-1712936501316)]文章来源地址https://www.toymoban.com/news/detail-852987.html

到了这里,关于人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

    (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

    目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模

    2024年02月13日
    浏览(14)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 List item 工作量:3分 创新点:5分 🧿 更多资料, 项目分享:

    2024年03月22日
    浏览(40)
  • Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

    Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

    ​ 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理 :首先,对输入图像进行预处理,包括读取图片、将图片灰度转换、修改图片的尺寸、绘制矩形

    2024年04月13日
    浏览(39)
  • 竞赛保研 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    竞赛保研 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年01月21日
    浏览(44)
  • 机器视觉毕业设计 深度学习驾驶人脸疲劳检测系统 - python opencv

    机器视觉毕业设计 深度学习驾驶人脸疲劳检测系统 - python opencv

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月07日
    浏览(103)
  • 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python 计算机竞赛

    机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年02月05日
    浏览(40)
  • 竞赛保研 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    竞赛保研 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月02日
    浏览(369)
  • 大数据毕设分享 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    大数据毕设分享 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(44)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn 计算机竞赛

    基于深度学习的人脸专注度检测计算系统 - opencv python cnn 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月07日
    浏览(372)
  • 【大数据毕设选题】机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    【大数据毕设选题】机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包