使用Python+OpenCV+dlib为人脸生成口罩

dlib人脸识别安装及使用教程 文章目录一 dlib本地安装与编译1.1 dlib源码下载1.2 dlib C++编译示例程序1.2.1 dlib库编译1.2.2 C++示例程序配置、运行1.3 dlib python API编译二 dlib库的主要功能及准确率评估2.1 代码功能简介2.2 人脸检测和人脸关键点2.2.1 数据集、代码准备2.2.2 测试效果图2.2.3 准确率2.3 人脸识别2.3.1 数据集、代码准备2... 阅读详情

本文使用OpenCV dlib库生成口罩

口罩已经被证明是防止COVID-19传播的最好的防御措施之一,然而,这也导致了基于面部特征(包括鼻子、嘴和下巴线)的面部识别算法的失效。

在全球有传染病之前,面部识别系统通过对检测到的不同面部特征进行比较测量来验证两幅图像中的人脸。当一个人的鼻子、嘴和脸颊上戴上口罩,大大减少了通常用来识别他/她的身份的信息。

将需要重新训练或重新设计有效的识别系统,以识别受管制地区的口罩脸。为了做到这一点,需要一个大的口罩数据集来训练深度学习模型,以检测戴口罩的人和不戴口罩的人。

目前,可用于训练和评估人脸识别系统的图像数据集是有限的。据报道,美国国家标准与技术研究所(NIST)的研究通过将口罩(各种颜色、大小和位置)叠加在没有带口罩人脸的图像上来解决这个问题。[https://www.cnet.com/news/face-masks-are-thwarting-even-the-best-facial-recognition-algorithms-study-finds/?ftag=COS-05-10aaa0b&TheTime=2020-07-27T22%3A23%3A21&PostType=link&UniqueID=C7330AC8-D057-11EA-8580-DE063A982C1E&ServiceType=twitter]

这篇文章试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像。图1显示了生成的5种口罩类型。

安装所需的软件包

使用Python3.7创建一个新的虚拟环境并安装依赖项。所需的库如下:

#requirements_facemask.txt
numpy == 1.18.5
pip == 20.2.2
imutils == 0.5.3
python >=3.7
dlib == 19.21.0
cmake == 3.18.0
opencv-python == 4.4.0

由于此脚本需要dlib库,因此在开始运行该脚本之前需要安装dlib,你可以通过以下链接了解如何使用Python绑定安装dlib:https://www.pyimagesearch.com/2017/03/27/how-to-install-dlib/

Dlib是一个高级的机器学习库,它是为解决复杂的现实世界问题而创建的。这个库是用C++编程语言创建的,它可以使用C/C++、Python和java等语言。

导入库

我们从导入所需的库开始:OpenCV、dlib、numpy、os和imutils。

# 必要的导入
import cv2
import dlib
import numpy as np
import os
import imutils

下一步是设置口罩的颜色,并设置要从中导入图像的目录和路径,OpenCV的颜色空间按BGR顺序而不是RGB。

# 设置目录
os.chdir('PATH_TO_DIR')
path = 'IMAGE_PATH'

# 初始化颜色 [color_type] = (Blue, Green, Red)
color_blue = (239,207,137)
color_cyan = (255,200,0)
color_black = (0, 0, 0)

下面的链接让你可以立即从视觉上探索颜色,它可以用于将颜色从十六进制转换为RGB,反之亦然:https://www.rgbtohex.net/rgb/

图像预处理

接下来,我们通过OpenCV加载我们的输入图像,然后通过调整大小使其具有500像素的宽度并将其转换为灰度来预处理图像。

# 加载图像并调整大小,将其转换为灰度
img= cv2.imread('image_path')
img = imutils.resize(img, width = 500)
gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

使用dlib、OpenCV和Python检测和提取人脸关键点

为了覆盖口罩,我们需要进行人脸检测,有许多方法可用于执行此任务我们可以使用OpenCV内置的Haar Cascade XML文件,甚至TensorFlow或使用Keras。在这篇文章中,我们使用的是dlib的人脸检测器。

dlib中的正面人脸检测器是基于方向梯度直方图(HOG)和线性SVM的。

我们使用dlib的正面人脸检测来首先检测人脸,然后使用面部标志点预测器dlib.shape_predictor检测人脸关键点。

人脸关键点检测被定义为检测脸上的关键标志点并跟踪它们(对由于头部运动和面部表情而导致的刚性和非刚性面部变形具有鲁棒性)[来源]

什么是人脸关键点?

人脸关键点是用于定位和表示面部的显著区域,如眼睛、眉毛、鼻子、下颚线、嘴巴等,应用于人脸对齐、头部姿态估计、换脸、眨眼检测、困倦检测等领域。

在人脸关键点下,利用形状预测方法对人脸上重要的面部结构进行检测是非常必要的。面部标志点检测包括两个步骤:

  1. 定位图像中检测到的人脸。

  2. 面部关键点的检测

如前所述,我们可以通过多种方式执行人脸检测,但每种方法都试图定位和标记以下面部区域:

  • 鼻子

  • 下颚线

  • 左眼和右眼

  • 左右眉

  • 嘴

在这篇文章中,我们使用了基于深度学习的人脸定位算法,该算法还用于图像中人脸的检测。我们将通过某种方法获得面边界框,其中我们分别使用图像中人脸的(x,y)坐标。一旦人脸区域被检测到并被限定,我们进入下一步检测脸部区域中的关键点。

我们正在使用的dlib库中包含的预训练人脸关键点探测器,这是Kazemi和Sullivan(2014)用回归树集合论文实现的1毫秒人脸对齐算法,其中估计了映射到人脸结构的68个(x,y)坐标的位置。我们可以使用下图显示68个坐标或点的索引:

从图3可以通过不同的点集[起点,终点]来评估面部特征的位置:

  • 左眼:点[42,47]

  • 嘴:点[48,67]

  • 左眉:点[22,26]

  • 鼻子:点[27,34]

  • 右眉:点[17,21]

  • 右眼:点[36,41]

  • 下颚线:点[0,16]

请注意,标志点从0开始

dlib人脸关键点检测器就是在这个数据集上训练的:https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/

人脸检测与人脸关键点检测

下一步是对dlib的预训练人脸检测器进行初始化,该检测器是基于Histogram of Oriented Gradients + Linear SVM method](https://pyimagesearch.com/2014/11/10/histogram-oriented-gradients-object-detection/) 。此检测器会进行图像中人脸边界框的检测。

检测器的第一个参数是我们的灰度图像。(此方法也适用于彩色图像)。

第二个参数是在应用检测器之前对图像进行放大时要应用的图像金字塔层的数量。在人脸检测之前增加输入图像的分辨率的好处是可以让我们在图像中检测到更多的人脸,但其缺点是,输入图像越大,计算开销越大,检测速度越慢。

我们还打印出边界框的坐标以及检测到的人脸数。我们也可以使用cv2在检测到的面部周围使用for循环绘制边界框。

# 初始化dlib的人脸检测器
detector = dlib.get_frontal_face_detector()

"""
在灰度图像中检测人脸并创建一个对象-存储边界矩形的坐标列表
第二个参数中的“1”表示应该向上采样图像1次。 
这会使图像变得更大,并允许我们检测更多的面孔
"""

faces = detector(gray, 1)

# 打印边界矩形的坐标
print(faces)
print("Number of faces detected: ", len(faces))

"""
# 使用for循环来提取特定坐标(x1,x2,y1,y2)
for face in faces:
  x1 = face.left()
  y1 = face.top()
  x2 = face.right()
  y2 = face.bottom()
  # 在检测到的脸部周围画一个矩形
  cv2.rectangle(img, (x1,y1), (x2,y2),(0,255,0),3)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
"""

为了检测人脸关键点,我们需要从dlib库下载人脸关键点预测器dlib.shape_predictor。

我们的预测方法需要一个名为“shape_predictor_68_face_landmarks.dat”的文件,可从以下链接下载文件:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

需要强调的是,这个模型文件是专为dlib的HOG人脸检测器设计的,不应该用于dlib的基于CNN的人脸检测器,原因是它期望人脸检测器的边界框按照dlib的HOG人脸检测器的方式对齐。

当与另一个产生不同对齐框的人脸检测器(如基于CNN的mmod_human_face_detector.dat )一起使用时,结果不会很好。

# 文件路径
p = "shape_predictor_68_face_landmarks.dat"
# 初始化dlib的预测器
predictor = dlib.shape_predictor(p)

# 使用预测器获取外形

for face in faces:
    landmarks = predictor(gray, face)

    # for n in range(0,68):
    #     x = landmarks.part(n).x
    #     y = landmarks.part(n).y
    #     img_landmark = cv2.circle(img, (x, y), 4, (0, 0, 255), -1)

下载检测器后,我们可以初始化检测器,以便在输入图像中检测到的每个人脸上检测到人脸关键点。

一旦检测到人脸关键点,我们就可以开始“绘图”了,通过使用OpenCV中的绘图功能连接所需的点,将口罩覆盖在脸上:https://docs.opencv.org/master/dc/da5/tutorial_py_drawing_functions.html

Dlib口罩方法

下面的步骤包括识别绘制不同类型口罩所需的点。我们复制的口罩类型由NIST研究报告附录A中提到的不同点集定义:https://doi.org/10.6028/NIST.IR.8311。视觉效果见图。

我们将通过连接附录A中定义的标志点来定义口罩的形状。例如,为了形成宽覆盖和中覆盖口罩,我们将用29点的标志点坐标连接(绘制)下颚线[0,16]的标志点。

可以使用OpenCV中椭圆和其他三种规则形状函数绘制口罩轮廓。然后我们可以使用cv2.fillpoly函数将绘制的口罩填充颜色。

points = []
    for i in range(1, 16):
        point = [landmarks.part(i).x, landmarks.part(i).y]
        points.append(point)
    # print(points)

    # 宽,高覆盖口罩
    mask_a = [((landmarks.part(42).x), (landmarks.part(15).y)),
              ((landmarks.part(27).x), (landmarks.part(27).y)),
              ((landmarks.part(39).x), (landmarks.part(1).y))]

    # 宽,中覆盖口罩
    mask_c = [((landmarks.part(29).x), (landmarks.part(29).y))]

    # 宽、低覆盖口罩
    mask_e = [((landmarks.part(35).x), (landmarks.part(35).y)),
              ((landmarks.part(34).x), (landmarks.part(34).y)),
              ((landmarks.part(33).x), (landmarks.part(33).y)),
              ((landmarks.part(32).x), (landmarks.part(32).y)),
              ((landmarks.part(31).x), (landmarks.part(31).y))]

    fmask_a = points + mask_a
    fmask_c = points + mask_c
    fmask_e = points + mask_e

    # mask_type = {1: fmask_a, 2: fmask_c, 3: fmask_e}
    # mask_type[choice2]


    # 使用Python OpenCV - cv2.polylines()方法为[mask_type]绘制口罩轮廓:
    # fmask_a = wide, high coverage mask,
    # fmask_c = wide, medium coverage mask,
    # fmask_e  = wide, low coverage mask

    fmask_a = np.array(fmask_a, dtype=np.int32)
    fmask_c = np.array(fmask_c, dtype=np.int32)
    fmask_e = np.array(fmask_e, dtype=np.int32)

    mask_type = {1: fmask_a, 2: fmask_c, 3: fmask_e}
    mask_type[choice2]


    # 更改参数[mask_type]和color_type用于各种组合
    img2 = cv2.polylines(img, [mask_type[choice2]], True, choice1, thickness=2, lineType=cv2.LINE_8)

    # 使用Python OpenCV - cv2.fillPoly()方法填充口罩
    # 更改参数[mask_type]和color_type用于各种组合
    img3 = cv2.fillPoly(img2, [mask_type[choice2]], choice1, lineType=cv2.LINE_AA)

# cv2.imshow("image with mask outline", img2)
cv2.imshow("image with mask", img3)

# 为测试保存输出文件
outputNameofImage = "output/imagetest.jpg"
print("Saving output image to", outputNameofImage)
cv2.imwrite(outputNameofImage, img3)

    points = []
    for i in range(1, 16):
        point = [landmarks.part(i).x, landmarks.part(i).y]
        points.append(point)
    # print(points)

    # 椭圆参数为高,圆形是覆盖口罩
    top_ellipse = landmarks.part(27).y + (landmarks.part(28).y - landmarks.part(27).y) / 2
    centre_x = landmarks.part(28).x
    centre_y = landmarks.part(8).y - ((landmarks.part(8).y - (top_ellipse)) / 2)
    # 椭圆高度
    axis_major = (landmarks.part(8).y - top_ellipse) / 2
    # 椭圆宽度
    axis_minor = ((landmarks.part(13).x - landmarks.part(3).x) * 0.8) / 2

    centre_x = int(round(centre_x))
    centre_y = int(round(centre_y))
    axis_major = int(round(axis_major))
    axis_minor = int(round(axis_minor))

    centre = (centre_x, centre_y)
    axes = (axis_major, axis_minor)

    # 使用Python OpenCV - cv2.ellipse()方法绘制口罩轮廓
    # 更改最后一个参数- line thickness和color_type为各种组合
    img_2 = cv2.ellipse(img, centre, axes, 0, 0, 360, color_type, thickness=2)



    # 使用Python OpenCV - cv2.ellipse()方法绘制口罩轮廓
    # 更改最后一个参数-line thickness为负数用于填充,color_type用于各种组合
    img_3 = cv2.ellipse(img, centre, axes, 0, 0, 360, color_type, thickness=-1)

# cv2.imshow("image with mask outline", img_2)
cv2.imshow("image with mask", img_3)

在图像检测开始之前,用户可以选择预先确定口罩的颜色和类型。我们预先选择了两种颜色的口罩-蓝色和黑色

# 使用input()函数根据用户需求获取口罩类型和口罩颜色
choice1 = input("Please select the choice of mask color\nEnter 1 for blue\nEnter 2 for black:\n")
choice1 = int(choice1)

if choice1 == 1:
    choice1 = color_blue
    print('You selected mask color = blue')
elif choice1 == 2:
    choice1 = color_black
    print('You selected mask color = black')
else:
    print("invalid selection, please select again.")
    input("Please select the choice of mask color\nEnter 1 for blue\nEnter 2 for black :\n")


choice2 = input("Please enter choice of mask type coverage \nEnter 1 for high \nEnter 2 for medium \nEnter 3 for low :\n")
choice2 = int(choice2)

if choice2 == 1:
    # choice2 = fmask_a
    print(f'You chosen wide, high coverage mask')
elif choice2 == 2:
    # choice2 = fmask_c
    print(f'You chosen wide, medium coverage mask')
elif choice2 == 3:
    # choice2 = fmask_e
    print(f'You chosen wide, low coverage mask')
else:
    print("invalid selection, please select again.")
    input("Please enter choice of mask type coverage \nEnter 1 for high \nEnter 2 for medium \nEnter 3 for low :\n")

# print(choice2)

结果

图5显示了原始输入图像(Barack Obama的图像)与使用脚本生成了口罩的输出图像之间的比较。我们也可以在人群镜头使用这个脚本。如图6所示,在著名的Ellen's wefie拍摄中,在检测到的人脸上叠加口罩的结果。

我们能够成功地复制生成5种不同类型的口罩的过程(详见附录A),这些口罩可以使用dlib和OpenCV叠加在未带口罩的人脸的图像上。

图7到图9显示了在不直接看相机的脸上的更多示例。

结论

该脚本能够在检测到的人脸上生成合成口罩脸,输出图像可用于测试或验证其他面向应用的ML网络,如室内考勤系统的人脸识别、口罩检测等。

你可以在这里下载完整代码:https://github.com/xictus77/face-mask-overlay-with-OpenCV-Dlib.git

参考文献:
  • Facial landmarks with dlib, OpenCV, and Python(https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/)

  • Facial point annotations(https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/)

  • Real-Time Face Pose Estimation(http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html)

  • Drawing Functions in OpenCV(https://docs.opencv.org/master/dc/da5/tutorial_py_drawing_functions.html)

  • Sources of images — open source and https://www.kaggle.com/dansbecker/5-celebrity-faces-dataset

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

↓扫描二维码添加小编↓

【机器学习】 - 使用dlib进行人脸定位,人脸检测,给人脸图片戴口罩 detector = dlib.get_frontal_face_detector() 功能:人脸检测画框 参数:无 返回值:默认的人脸检测器 faces = detector(img_gray, 0) 功能:对图像画人脸框 参数:img_gray:输入的图片 返回值:人脸检测矩形框4点坐标。坐标为[(x1, y1) (x2, y2)]。可以通过函数的left,right,top,bottom方法分别获取对应的x1, x2, y1, y2值。(cv里的矩阵和C++的那种一样,左上角是(0,0)点, 阅读详情

相关推荐

基于Python+OpenCV+dlib人脸定位、检测、给人脸图片戴口罩

一、项目背景与目标本项目旨在利用Python编程语言,结合OpenCV和dlib库,实现人脸的定位、检测以及自动为人脸图片戴上口罩的功能。随着人脸识别技术的广泛应用和新冠疫情的影响,为人脸图片自动添加口罩不仅具有趣味性,还能在实际应用中为隐私保护和公共卫生宣传提供支持。二、技术框架与工具Python:作为项目的基础编程语言,Python提供了丰富的库和简洁的语法,便于快速开发和实现复杂功能。OpenCV:一个开源的计算机视觉库,用于图像处理和计算机视觉任务,包括图像读取、处理和显示等。

2301_79810943的博客 491

opencv:使用dlib进行人脸检测

dlib get_frontal_face_detector(gray, 1) #The 1 in the second argument indicates that we should upsample the image 1 time. This will make everything bigger and allow us to detect more faces.

uncle_ll的博客 2348

人脸口罩监测系统

保姆级教学

wdnmdkkkkk的博客 2824

dlib人脸识别代码解读

文章目录一 人脸关键点检测器的训练1.1 原理1.1.1 级联回归公式1.1.2 回归方程求解1.1.3 分裂点1.2 源代码1.3 代码解读1.3.1 预处理阶段1.3.2 训练阶段1.3.3 测试及保存1.4 代码流程图二 人脸检测器的训练(HOG+SVM)2.1 原理2.1.1 常规的HOG特征2.1.2 源代码中的HOG特征2.2 源代码2.3 代码解读2.3.1 预处理阶段2.3.2 训...

qq_29153321的博客 4681

面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩

来源:深度学习与计算机视觉本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像。本文使用OpenCV dlib库生成口罩 口罩已经被证明是防止COVID-19传播的最好的防御措施之一,然而,这也导致了基于面部特征(包括鼻子、嘴和下巴线)的面部识别算法的失效。在全球有传染病之前,面部识别系统通过对检测到的不同面部特征进行比较...

weixin_28871475的博客 1879

python项目练习——22、人脸识别软件

功能分析: 人脸检测: 识别图像或视频中的人脸,并标记出人脸的位置和边界框。 人脸识别: 识别人脸的身份或特征,通常使用已知的人脸数据库进行训练,然后在新的图像或视频中识别出人脸并匹配到相应的身份。 表情识别: 识别人脸的表情,如高兴、悲伤、愤怒等,并给出相应的情感标签。 年龄和性别识别: 识别人脸的年龄段和性别,并给出相应的预测结果。 眼睛检测: 检测人脸中眼睛的位置和状态,如睁开或闭合。 口罩检测: 在当前疫情下,检测人脸中是否佩戴口罩,以确保公共场所的安全。

weixin_66370632的博客 1030

实战:使用OpenCV+Python+dlib为人脸生成口罩

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 本文转自|AI算法与图像处理 本文使用OpenCV dlib库生成口罩口罩已经被证明是防止COV...

小白学视觉 1801

Java + Dlib实现人脸识别

一. 效果展示 在学习人脸识别的过程中,刚开始我是从opencv开始学习的,后来发现还有一种使用dlib来检测的方法,并且,在图像处理中,有些美颜功能,例如数字化妆功能,也需要使用dlib来实现,所以就研究了一下如何在Java中使用dlib,很遗憾的是国内的社区,网站,论坛并没有关于如何用Java结合dlib来实现人脸识别的教程或者文章,大多数都是使用C++或者python, 所以想分享一下如何实现Java + Dlib来实现人脸识别. 在实现功能之前,我们需要做一些基础准备,就是将dli

张音乐的博客 4783

Python+opencv实现人脸表情判别,口罩识别

文章目录一、dlib以及opencv-python库安装dlib安装方法:Cmake安装Boost下载安装dlibopencv-python安装方法二、dlib的68点模型三、Python实现人脸识别&表情判别四、参考文章 一、dlib以及opencv-python库安装 介于我使用的是jupyter notebook,所以在安装dlib和opencv-python时是在 这个命令行安装的 dlib安装方法: 1.若可以,直接使用上图所示命令行输入以下命令: pip install cmake p

Time_book的博客 7163

使用 Python + OpenCV + dlib 为人脸生成口罩

↑↑↑关注后"星标"简说Python 人人都可以简单入门Python、爬虫、数据分析 简说Python推荐 来源:深度学习与计算机视觉 大家好,我是老表 本文使...

简说Python的博客 875

Genesis物理引擎实战指南:轻量级确定性刚体仿真核心

刚体物理仿真作为机器人控制、嵌入式运动学验证和确定性游戏开发的基础技术,其核心在于数值稳定性、跨平台可复现性与约束求解精度。本文围绕线性互补问题(LCP)求解、半隐式欧拉积分和零依赖C++实现三大关键技术展开,解析如何在无GUI、低算力环境下构建可单步调试、帧级可控的确定性仿真系统。重点覆盖碰撞检测数学建模、关节局部坐标系绑定、质量-惯性张量一致性校验等工程落地关键点,适用于STM32、树莓派及教育实验场景。内容深度结合Genesis Physics Engine的源码实践,直击‘穿模’‘NaN’‘关节发软

ciya3282的博客 780

使用Python为人脸自动生成口罩

来源:深度学习与计算机视觉本文使用OpenCV dlib库生成口罩口罩已经被证明是防止COVID-19传播的最好的防御措施之一,然而,这也导致了基于面部特征(包括鼻子、嘴和下巴线)的面部识...

程序IT圈 1143

Speedtree学习笔记(案例)——拥有多种材质的植物如何导入使用(以草为例)

注:Speedtree无论保存还是导入模型其存储路径不可有中文。 第一步拆分草的模型 根据所需的材质去拆分(例:假若草的果实,茎秆和叶子是不同的材质那么就需拆分为三份;假若画的全部颜色及材质一样就没有必要去拆分模型) 第二步导入草的模型 在Mesh面板中依次导入草的模型——Do nothing additional right now 第三步扩大草的生长区域范围(可省略)...

L人青的博客 5094

Python实现人脸检测(包括口罩检测)、人脸识别(基于Opencv,Dlib,Tensorflow,QT6) 自训练模型

SSD(Single Shot MultiBox Detector)是一种单阶段性检测算法,与传统的两阶段检测方法(例如Faster R-CNN)不同,SSD将检测过程合并为一个单独的过程,通过在图像中生成多个初读的默认边界框,直接在这些框上预测类别和位置偏移SSD主要采用VGG16作为基础模型,在VGG16的基础上新增了卷积层来获取更多的特征图以便用来检测,在上述网络结构图上,我们可以看到SSD利用了多尺度的特征图做检测。用我们自己的语言去组织一下,

weixin_49648512的博客 1605

数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别

除此之外,还需要将正负样本各自的照片像素设为相同的值,正样本数据集的像素最佳设为20x20,这样的模型训练精度更高,而负样本数据集像素则应不低于50x50,如此可以加快模型训练的速度,此处我们将负样本的数据集像素调节为80 x80。因为识别有一定的误差,所以需要对裁剪后的照片进行筛选,将极少数对齐不准确的照片手动删除,并将数据集的照片进行重命名,便于后续数据集路径的创建。最后得到戴口罩的照片1010张,作为该模型的正样本,未戴口罩的照片3030张,作为该模型的负样本,正负样本的比例为1:3。........

大数据部落 1920

Xilinx SDK工程编译、链接、调试注意事项

1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...

Autumn_He的博客 1万+

人脸图片加口罩

fromPILimportImage importdlib importnumpyasnp importcv2 fromPILimportImage defchristmas(img,x,y,w,h): im=Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB)) mark=Image.open("口.png") mark=mark.resize((w,h)) lay...

weixin_42143378的博客 632

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+

基于dlib库进行微笑识别和口罩识别

安装库 tensorflow和keras参考我之前的博客 下载dlib库不能从anaconda prompt中直接pip install dlib下载,要先从 https://blog.csdn.net/weixin_39954229/article/details/81878864下载dlib库,在anaconda prompt中cd 到这里whl文件下载的位置,然后使用下面的命令下载 pip install dlib-19.7.0-cp36-cp36m-win_amd64.whl 至此dlib库下载

A981012的博客 2362

人工智能与机器学习---笑脸识别与口罩识别

这里写目录标题一、人脸图像特征提取的方法1、HOG2、Dlib3、卷积神经网络二、三、Python3+Dlib+Opencv实现摄像头采集人脸并对表情进行实时分类判读1、 安装Dlib库 一、人脸图像特征提取的方法 1、HOG 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。 HOG特征提取的流程图如下图所示: 2、Dlib Dlib 是一

weixin_46492125的博客 2564

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 691
上一篇: 使用Python+OpenCV+yolov5实现行人目标检测
下一篇: 计算机视觉 | 哥大读博五年总结(一)
woshicver
博客等级 码龄7年 1851粉丝 624原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值