
OpenCV实战系列之人脸美颜美型开发
文章平均质量分 78
以OpenCV C++版本为基础,实现丰富的人脸美颜美型操作,包括磨皮、美白、大眼、瘦脸等功能。提供便于理解的原理分析与部分实现代码,助力读者提高对OpenCV常用接口函数的理解与应用能力,培养系统的图像算法开发与工程能力。
Mega_Li
在图像处理领域工作多年,具有较丰富的算法开发与工程落地经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windows平台编译opencv4.9.0
参考网上的一种做法,这里把如下文件中https://raw.githubusercontent.com/开头的下载地址前面都增加“https://mirror.ghproxy.com/”变成“https://mirror.ghproxy.com/https://raw.githubusercontent.com/”开头。然后就会生成OpenCV.sln,使用VS2017打开它,分别在Debug和Release模式下进行编译和安装,编译产物会存放在build/vs2017_x64/install文件夹下。原创 2024-03-01 16:33:20 · 930 阅读 · 0 评论 -
人脸检测之PCN(一)——论文阅读
人脸检测是一个老话题了,网上有很多的开源模型;但大部分模型训练时的样本都是“正角度”分布,即眼睛在上鼻子在下,使得模型的使用也限制于该类场景。但实际场景中经常出现非“正角度”的人脸。针对这种场景的人脸检测,作者在2018年提出了一种由粗到精渐进式的、检测速度高的旋转人脸检测模型,称为Progressive Calibration Networks,简称PCN,效果如下图所示。...原创 2022-08-28 17:33:50 · 1751 阅读 · 2 评论 -
人脸检测之MTCNN(一)——python中使用tensorflow运行模型
一、背景MTCNN是一种经典的人脸检测方法,通过三个阶段的深度卷积网络级联,实现“由粗到精”的检测过程,最终能够输出一幅图像中的人脸框坐标与每个人脸的5个特征点坐标。网络上有关该论文与方法的解读有很多,也不需要我重复啦,在最后的参考中我会放上自己觉得不错的几篇链接。这篇文章主要给出Python中调用训练好的MTCNN模型做正向推理的过程,其中大部分参考自https://blog.csdn.net/BEYONDldh/article/details/105221244,感谢这位博主的无私分享。我会给出所有阶原创 2021-03-06 12:31:34 · 1655 阅读 · 1 评论 -
人脸检测之MTCNN(二)——模型的训练尝试
这一篇主要记录模型的训练尝试过程,之所以称为“尝试”,是因为受限于个人能力与硬件配置,这里只做了简单粗浅的训练,无法提供详细的调参/效果提升的相关建议。训练代码包括训练集数据主要参考自链接,原文中代码存在一些错误在这里做了一些修改。另外这里只训练模型输出人脸得分与人脸框位置,并未输出人脸5个关键点信息。简单描述MTCNN的训练过程:训练PNET:其输入图宽高为12X12,输出为人脸得分与人脸框位置;训练RNET:将得到的PNET作用于人脸数据集,并将得到的人脸框与参考人脸框计算IOU,再根据其大小分为原创 2021-03-11 21:28:19 · 872 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(九)——瘦脸
本讲我们围绕瘦脸功能展开,瘦脸的功能很明确:让脸部变得瘦削,如下图所示。从图像处理的角度来说它将脸部轮廓周围的图像进行收缩操作,同时还要确保收缩后图像分布连续;与大眼算法类似,它也是一种非线性变形的算法。原创 2023-05-21 16:29:38 · 1528 阅读 · 2 评论 -
OpenCV实战之人脸美颜美型(八)——大眼(下)
我们需要将上述描述量化表达,以r代表上述变形区域的圆的半径,X表示原始图像像素到变形圆圆心的距离,Y表示像素变形后的其距离变形圆圆心的距离,则其形状大致如下图所示。如下图所示,我们可以规定处理区域为眼睛为圆心的一个圆形,从圆心区域开始图像会放大,但该放大的比例随着距离圆心的距离而变小,直至边缘区域的放大比例为0。不过在实际图像变形操作中我们要从目标图像映射到原图,因此我们需要将X/Y调换,让X表示变形后图像的像素距离变形圆中心的距离,Y表示原图像素距离变形圆中心的距离,则其形状如下图所示。原创 2023-04-22 14:19:50 · 692 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(八)——大眼(上)
从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。原创 2023-04-16 19:40:17 · 1011 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(七)——美颜demo
之前我们已经完成了人脸检测、肤色检测、磨皮、美白功能,这一篇文章中我们将尝试利用OpenCV中的滑动条对象,结合窗口制作一个简单的demo。demo中会将上述功能集成进来,并通过滑动条来调整美白、磨皮力度观察其效果,先放一张效果图如下。原创 2023-04-15 21:30:41 · 1606 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(六)——磨皮
有个词叫做“肤若凝脂”,直译为皮肤像凝固的油脂,形容皮肤洁白且光润,这是对美女的一种通用评价。实际生活中我们的皮肤多少会有一些毛孔、斑点等表现,在观感上与上述的“光润感”相反,因此磨皮也成为美颜算法中的一项基础且重要的功能。让皮肤变得更加光润,就是磨皮功能的目标。原创 2023-04-12 22:26:37 · 2242 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(五)——美白
俗说话“一白遮三丑”,这代表一种大众审美的标准,也是众多化妆品的宣传卖点之一;因此美白也成为美颜算法中一项基础且重要的功能。原创 2023-04-10 21:54:12 · 1694 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(四)——肤色检测
肤色检测技术在人脸检测与识别、视频监控系统、裸图像检测、基于内容的图像检索、手势识别、肤色病学诊断、驾驶员疲劳检测、人机交互等领域有着广泛的应用,近年来得到了广泛的关注和研究。针对美颜美型应用,我们需要肤色检测功能得到皮肤区域,然后针对性地进行磨皮、美白等操作。原创 2022-10-12 13:15:00 · 2221 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(三)——人脸关键点检测
人脸关键点检测是指给定人脸图像,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等。和人脸检测类似,由于受到姿态和遮挡等因素的影响,人脸关键点检测也是一个富有挑战性的任务。本文主要描述人脸关键点检测任务的定义,发展历程,以及使用OpenCV实现人脸关键点检测的操作。原创 2022-10-05 13:00:00 · 1424 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(二)——人脸检测
人脸检测是指对于给定的图像进行处理,判断其中是否存在人脸,如果存在则计算得到其位置、大小(和姿态)。人脸检测是一项人工智能应用中十分常见且重要的基础功能,广泛应用于人脸识别/对比、智能监控、美颜美型等领域。具体的,在美颜美型功能中,人脸检测的功能主要有两方面。首先通过判断图像中是否存在人脸,来决定是否继续做后续的美颜美型操作;其次是人脸检测得到的人脸框,可协助后续的脸部肤色检测、人脸关键点检测等功能。原创 2022-09-28 13:00:00 · 1435 阅读 · 0 评论 -
OpenCV实战之人脸美颜美型(一)——开发环境搭建
俗话说“工欲善其事,必先利其器”,本文是《OpenCV实战之人脸美颜美型》系列文章的第一篇,旨在协助读者搭建好便捷的开发环境,为后续的开发打下良好基础。从标题中就可以看出,我们围绕着OpenCV进行开发,利用其强大丰富的接口来实现各种美颜美型相关功能,那么现在就跟着文章开始构造OpenCV相关的开发环境吧!原创 2022-09-22 14:52:44 · 1878 阅读 · 0 评论