python疲劳驾驶困倦低头检测功能的实现


Posted in Python onApril 04, 2022

python疲劳驾驶困倦低头检测,代码如下所示:

def get_head_pose(shape):  # 头部姿态估计
    # (像素坐标集合)填写2D参考点
    # 17左眉左上角/21左眉右角/22右眉左上角/26右眉右上角/36左眼左上角/39左眼右上角/42右眼左上角/
    # 45右眼右上角/31鼻子左上角/35鼻子右上角/48左上角/54嘴右上角/57嘴中央下角/8下巴角
    image_pts = np.float32([shape[17], shape[21], shape[22], shape[26], shape[36],
                            shape[39], shape[42], shape[45], shape[31], shape[35],
                            shape[48], shape[54], shape[57], shape[8]])
    # solvePnP计算姿势——求解旋转和平移矩阵:
    # rotation_vec表示旋转矩阵,translation_vec表示平移矩阵,cam_matrix与K矩阵对应,dist_coeffs与D矩阵对应。
    _, rotation_vec, translation_vec = cv2.solvePnP(object_pts, image_pts, cam_matrix, dist_coeffs)
    # projectPoints重新投影误差:原2d点和重投影2d点的距离(输入3d点、相机内参、相机畸变、r、t,输出重投影2d点)
    reprojectdst, _ = cv2.projectPoints(reprojectsrc, rotation_vec, translation_vec, cam_matrix, dist_coeffs)
    reprojectdst = tuple(map(tuple, reprojectdst.reshape(8, 2)))  # 以8行2列显示
 
    # 计算欧拉角calc euler angle
    rotation_mat, _ = cv2.Rodrigues(rotation_vec)  # 罗德里格斯公式(将旋转矩阵转换为旋转向量)
    pose_mat = cv2.hconcat((rotation_mat, translation_vec))  # 水平拼接,vconcat垂直拼接
    # decomposeProjectionMatrix将投影矩阵分解为旋转矩阵和相机矩阵
    _, _, _, _, _, _, euler_angle = cv2.decomposeProjectionMatrix(pose_mat)
    pitch, yaw, roll = [math.radians(_) for _ in euler_angle]
    pitch = math.degrees(math.asin(math.sin(pitch)))
    roll = -math.degrees(math.asin(math.sin(roll)))
    yaw = math.degrees(math.asin(math.sin(yaw)))
    print('pitch:{}, yaw:{}, roll:{}'.format(pitch, yaw, roll))
    return reprojectdst, euler_angle  # 投影误差,欧拉角
def eye_aspect_ratio(eye):
    # 垂直眼标志(X,Y)坐标
    A = dist.euclidean(eye[1], eye[5])  # 计算两个集合之间的欧式距离
    B = dist.euclidean(eye[2], eye[4])
    # 计算水平之间的欧几里得距离
    # 水平眼标志(X,Y)坐标
    C = dist.euclidean(eye[0], eye[3])
    # 眼睛长宽比的计算
    ear = (A + B) / (2.0 * C)
    # 返回眼睛的长宽比
    return ear
def mouth_aspect_ratio(mouth):  # 嘴部
    A = np.linalg.norm(mouth[2] - mouth[9])  # 51, 59
    B = np.linalg.norm(mouth[4] - mouth[7])  # 53, 57
    C = np.linalg.norm(mouth[0] - mouth[6])  # 49, 55
    mar = (A + B) / (2.0 * C)
    return mar

python疲劳驾驶困倦低头检测功能的实现

python疲劳驾驶困倦低头检测

https://download.csdn.net/download/babyai996/85068772

到此这篇关于python疲劳驾驶困倦低头检测功能的实现的文章就介绍到这了,更多相关python疲劳驾驶检测内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用7z解压apk包的方法
Apr 18 Python
python实现读取命令行参数的方法
May 22 Python
全面了解Python环境配置及项目建立
Jun 30 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
python3获取当前目录的实现方法
Jul 29 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Python实现自动玩连连看的脚本分享
Apr 04 #Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Python必备技巧之函数的使用详解
Python批量解压&压缩文件夹的示例代码
Apr 04 #Python
Python调用腾讯API实现人脸身份证比对功能
Python字符串常规操作小结
Anaconda安装pytorch和paddle的方法步骤
You might like
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
Python open()文件处理使用介绍
2014/11/30 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
python图书管理系统
2020/04/05 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python 线程池用法简单示例
2019/10/02 Python
NumPy统计函数的实现方法
2020/01/21 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Python 代码调试技巧示例代码
2020/08/11 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
数据库专业英语
2012/11/30 面试题
数控技术专业推荐信
2013/11/01 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
工作保证书
2015/01/17 职场文书
检讨书怎么写
2015/01/23 职场文书
事业单位聘任报告
2015/03/02 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
单位工作证明范本
2015/06/15 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL