人脸关键点检测face_landmark
不经意间瞄了一眼日历,惊觉2020年已所剩无几,回望即将过去的一年,不禁感叹唏嘘。时光带走了很多的烦恼和美好,也带来了很多困惑和收获。怎样才能不被淹没在时间的洪流里呢,唯有在风浪中保持清醒和方向,而不断地学习和输出就是那支驾驭风浪的桨。
从系统设计一头扎进算法的漩涡,经过了一阵子的蒙圈,然后一点一点摸索着理清思路和方向。在知识爆炸的时代,最好的积累就是把每一步记录下来,变成自己的脚印。前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,感兴趣的朋友可以去这里了解一下。
前些天调研了人脸检测算法,这几天在做人脸关键点定位和人脸对齐。在网上找了一个开源的人脸对齐项目,本地做了适当适配后验证OK,本篇就单纯记录这个对齐算法的实现。
项目地址:https://github.com/610265158/face_landmark
该项目基于Tensorflow2.0,比较简单灵活。下面是一些Demo图片:
项目运行环境:
- tensorflow2.0
- tensorpack (for data provider)
- opencv
- python 3.6
数据集:
训练使用的是300W的数据集,数据集地址:i·bug - resources - Facial point annotations
该数据集涵盖了大量变化的人脸数据,包括不同的主题、姿势、光照、遮挡等,数据集采用68点标注,如下:
数据按照如下格式存放:
├── 300VW
│ ├── 001_annot
│ ├── 002_annot
│ ....
├── 300W
│ ├── 01_Indoor
│ └── 02_Outdoor
├── AFW
│ └── afw
├── HELEN
│ ├── testset
│ └── trainset
├── IBUG
│ └── ibug
├── LFPW
│ ├── testset
│ └── trainset
训练
如果想要训练自己的模型,下载完数据集后,需要首先运行如下命令来生成训练和验证的JSON文件:
python make_json.py
需要注意的是,make_json.py文件中,需要正确配置数据集的路径,否则无法生成正确的train.json和val.json。
data_dir='300W' ########points to your director,300w
完成以上步骤后,运行如下命令进行模型训练:
python train.py
默认情况下,会使用ShuffleNetV2_1.0进行训练,如果想要修改网络,可在train_config.py文件中的如下位置进行配置:
模型使用Demo
可使用训练出来的模型进行推理,如果不想自己训练,也可以直接下载已训练好的模型:model (提取码:rt7p)
运行如下命令行进行Demo测试:
python vis.py --model ./model/keypoints
其中,./model/keypoints是模型的存放位置,模型存放格式如下:
./model/└── keypoints├── saved_model.pb└── variables├── variables.data-00000-of-00002├── variables.data-00001-of-00002└── variables.index
也可以先将模型转换为tflite格式,然后使用tflite模型进行推理。模型转换命令:
python ./tools/convert_to_tflite.py
tflite模型推理命令:
python vis.py --model ./model/converted_model.tflite
下面是使用下载下来的模型的一些Demo结果:
人脸关键点检测face_landmark相关推荐
- 创意赛第二季又来了,PaddleHub人脸关键点检测实现猫脸人嘴特效
前段时间,下班后闲来无事,参加了百度PaddleHub的AI人像抠图创意赛,凭借着大家的阅读量,获得了一个第三名,得了一个小度音响,真香啊! 对,说的是我 小奖品 PaddleHub创意赛第二期又出来 ...
- paddle2.0高层API实现人脸关键点检测(人脸关键点检测综述_自定义网络_paddleHub_趣味ps)
paddle2.0高层API实现人脸关键点检测(人脸关键点检测综述_自定义网络_paddleHub_趣味ps) 本文包含了: - 人脸关键点检测综述 - 人脸关键点检测数据集介绍以及数据处理实现 - ...
- 【机器视觉案例】(11) 眨眼计数器,人脸关键点检测,附python完整代码
各位同学好,今天和大家分享一下如何使用 mediapipe+opencv 实现眨眼计数器.先放张图看效果. 下图左侧为视频图像,右侧为平滑后的人眼开合比曲线.以左眼为例,若眼眶上下边界的距离与左右边界 ...
- 「每周CV论文推荐」 初学深度学习人脸关键点检测必读文章
人脸关键点检测是人脸图像中重要的基石,今天给大家介绍入门深度学习人脸关键点检测必读的文章. 作者&编辑 | 言有三 1 DCNN Cascade 听这个名字就知道是一个很早期的,使用Casca ...
- python人脸识别、人脸关键点检测、性别检测
python人脸识别.人脸关键点检测.性别检测 文章目录 根据人脸预测年龄性别和情绪 (python + keras)(三) 一款入门级的人脸.视频.文字检测以及识别的项目. age-gender-e ...
- CNN人脸关键点检测
CNN人脸关键点检测 参考文献<Deep Convolutional Network Cascade for Facial Point Detection>\ 摘要 提出一种利用精心设计的 ...
- 使用OpenCV进行人脸关键点检测
使用OpenCV进行人脸关键点检测 1 双脸效果 2 单脸效果
- 人脸识别,人脸关键点检测算法
from http://blog.csdn.net/sloanqin/article/details/48193119 1 Face++:http://www.faceplusplus.com.cn/ ...
- 【CV秋季划】人脸关键点检测,人脸识别视频更新
本次给大家带来的是有三AI-CV秋季划-人脸算法组的视频,包括人脸关键点检测,人脸识别两期的内容,如果你还不知道有三AI-CV秋季划-人脸算法组是什么,可以看下面的视频和图文. 点击边框调出视频工具条 ...
- 【每周CV论文推荐】 初学深度学习人脸关键点检测必读文章
欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 人脸关键点检测是人脸图像中重要的基石,今天给 ...
最新文章
- VBS遍历Excel工作表的方法
- apache 服务发布多个项目,只需要更改配置文件(需要设定虚拟主机)
- contos7设置固定ip和dns_CentOS7 修改设置静态IP和DNS
- 圣诞节,程序员应该给女朋友送一个线上圣诞树
- Linux C编程学习--main()函数简析
- 在.NET中调用存储过程
- 深入研究memcache 特性和限制
- a pycharm 标记多个_轻松学透Markdown的终极教程 #3:Markdown标准标记语法(全)
- Windows via C/C++ 学习(6)内核对象
- 【Mybatis】Mybatis三大组件之StatementHandler
- 我是如何在开源系统中(Vue)中引入阿里巴巴Icon图标的?
- [笑话]1+1等于几?(新版)
- Matplotlib库学习笔记(4) pyplot的文本显示以及Latex的使用
- 《Git与Github使用笔记》第8章 github常见操作和常见错误
- Mysql上周,上月,去年同期年周数
- 服务器修复oxc0000098,修复oxc0000098的方法
- python数据分析设置教程视频_炼数成金女讲师Python数据分析实战应用视频教程
- 如何进阶为数据科学家
- 帆船指南-原则-船体结构
- Web系统大规模并发——电商秒杀与抢购
热门文章
- 求助:Python识别PDF段落和翻译的问题
- Qt之QTcpSocket 跨线程连续发送大数据
- php ctype xdigit,PHP中的ctype_xdigit()函数
- Microsoft VS Code安装教程
- axure9怎么让页面上下滑动_Axure如何实现同页面上下、左右滑动
- Calling LoadLibraryEx on ISAPI filter failed
- javaweb mysql毕业生管理系统_javaweb高校毕业生就业管理系统, springmvc+mysql
- element ui 前台模板_简单了解Vue + ElementUI后台管理模板
- 【运营数据分析】运营数据分析怎么做?建立运营数据分析思维
- 广东诚美计算机专修学院面试,三下乡|一轮面试,与你不期而遇