人脸关键点

简介: 【6月更文挑战第7天】

加载必须的第三方库
读取图像

image.png

调用检测接口检测人脸关键点
引入utils.face.face_keypoints() 函数
检测图像中的人脸关键点
在图像中渲染人脸关键点
引入utils.face.draw_points() 函数
根据坐标在图像中渲染指定颜色、指定大小的关键点

face_keypoints(image)参数含义如下:

image:贴纸图像
返回值:人脸关键点列表
draw_points(image, pts, size = 2, color = (255, 0, 0))参数含义如下:
image.png

image:待渲染图像
pts:关键点坐标数组
size:绘制点的半径,默认值: 2
color:颜色值元组,默认为(255, 0, 0)-红色
返回值:绘制关键点后的图像
在 OpenCV 中,cv2.imread() 函数用于读取文件路径指定的图像。这段代码 image = cv2.imread("./img_data/yh_color.jpg")[:, :, ::-1] 执行了两个主要操作:

  1. 读取图像cv2.imread("./img_data/yh_color.jpg") 这行代码尝试从当前目录下的 img_data 文件夹中读取名为 yh_color.jpg 的图像文件。返回的 image 是一个 NumPy 数组,其包含了图像的数据。

  2. 通道顺序反转[:, :, ::-1] 这部分代码是对读取的图像数组进行切片操作,目的是反转图像的颜色通道顺序。在 OpenCV 中,默认情况下,图像的通道顺序是 BGR(蓝、绿、红),而不是常见的 RGB(红、绿、蓝)。[::-1] 是一个切片操作符,它从数组的末尾开始向前取值,步长为-1,意味着它将数组中的元素顺序完全反转。

详细解释一下 [:, :, ::-1]

  • : 表示选择所有行和所有列,即不改变行和列的顺序。
  • [:, :, ::-1] 表示选择所有行、所有列,但对颜色通道进行完全反转。

因此,当你对一个图像使用 [:, :, ::-1] 时,如果图像是 BGR 格式,它将被转换为 RGB 格式。这对于需要将图像用于某些特定库(如matplotlib,它使用 RGB)或者在显示图像时保持颜色的正确性是非常有用的。

举个例子,如果你使用 matplotlib 显示图像,你需要确保图像的通道顺序是 RGB,否则颜色会显示不正确。在这种情况下,你可以使用 matplotlib.pyplot.imshow(image[:, :, ::-1]) 来显示图像,其中 image 是通过 OpenCV 读取的图像。

目录
相关文章
|
存储 API Android开发
getExternalFilesDir到底是什么
getExternalFilesDir对应的目录是/sdcard/Android/data/包名/files/... 可以看到它主要是用来存放应用私有的一些文件。这个目录有几个特性:
1929 0
|
机器学习/深度学习 算法 计算机视觉
yolov8人脸识别-脸部关键点检测(代码+原理)
yolov8人脸识别-脸部关键点检测(代码+原理)
|
机器学习/深度学习 算法 C语言
5.2.1 Backbone(特征提取) 5.2.2 Neck(多尺度检测)
这篇文章介绍了YOLOv3目标检测模型中的Backbone(特征提取)部分,详细阐述了使用Darknet53作为骨干网络来提取图像特征的方法,并通过代码示例展示了如何实现Darknet53网络结构以及如何查看不同层级输出特征图的形状,同时还讨论了Neck(多尺度检测)的概念,解释了如何通过特征图的尺寸放大和融合来实现对不同尺寸目标的检测。
|
10月前
|
机器学习/深度学习
苹果发布高效双EMA梯度优化方法,适配Transformer、Mamba模型
苹果公司在arXiv上发布论文《The AdEMAMix Optimizer: Better, Faster, Older》,提出了一种基于双指数移动平均(EMA)的新型优化器AdEMAMix。该优化器通过使用快速和慢速EMA,同时利用近期和远期梯度信息,显著提升了模型训练的速度和效果。实验表明,AdEMAMix在语言建模和图像分类等任务上表现出色,尤其在大型语言模型的训练中,相比传统优化器如AdamW,训练效率提高了95%。
202 32
|
存储 移动开发 监控
微信支付开发避坑指南
【9月更文挑战第11天】在进行微信支付开发时,需遵循官方文档,确保权限和参数配置正确。开发中应注重安全,验证用户输入,合理安排接口调用顺序,并处理异常。上线后需实时监控支付状态,定期检查配置,关注安全更新,确保系统稳定运行。
247 3
|
Java API Android开发
19. 【Android教程】进度条 ProgressBar
19. 【Android教程】进度条 ProgressBar
767 4
|
Java 数据库 Spring
Spring 事务 (编程式 & 声明式, Spring 事务传播机制)
Spring 事务 (编程式 & 声明式, Spring 事务传播机制)
151 1
|
存储 人工智能 安全
JWT的详细讲解-- AI比我们呢更了解JWT(PS: 此文由AI生成)
JWT的详细讲解-- AI比我们呢更了解JWT(PS: 此文由AI生成)
495 0
|
人工智能 弹性计算 自然语言处理
人类标注的时代已经结束?DeepMind 开源 SAFE 根治大模型幻觉问题
Google DeepMind和斯坦福大学的研究人员发布了《衡量大型语言模型长篇事实性》论文,提出了新数据集LongFact(含2,280个问题)和评估方法SAFE,用于检查AI模型在生成长文时的事实准确性、连贯性和详尽性。
Python中的Lambda函数应用及性能优化
Lambda函数是Python中一种简洁而强大的编程工具,本文将介绍Lambda函数的基本语法及在实际开发中的应用场景,同时探讨如何通过性能优化提升Lambda函数的执行效率。