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获取网页上图片下载地址的方法
Mar 11 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
Python 多线程抓取图片效率对比
Feb 27 Python
深入理解Python装饰器
Jul 27 Python
Python实现的桶排序算法示例
Nov 29 Python
python中format()函数的简单使用教程
Mar 14 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
详解Django配置优化方法
Nov 18 Python
python实现简单学生信息管理系统
Apr 09 Python
Keras 使用 Lambda层详解
Jun 10 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 Python
Python实现自动玩连连看的脚本分享
Apr 04 #Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Python必备技巧之函数的使用详解
Python批量解压&压缩文件夹的示例代码
Apr 04 #Python
Python调用腾讯API实现人脸身份证比对功能
Python字符串常规操作小结
Anaconda安装pytorch和paddle的方法步骤
You might like
php 购物车完整实现代码
2014/06/05 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php按单词截取字符串的方法
2015/04/07 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
Python中的迭代器漫谈
2015/02/03 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
设置python3为默认python的方法
2018/10/31 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
python二元表达式用法
2019/12/04 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
python 两种方法删除空文件夹
2020/09/29 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
会计试用期自我评价
2015/03/10 职场文书
护理专业自我评价
2015/03/11 职场文书
肖申克救赎观后感
2015/06/02 职场文书
开工典礼致辞
2015/07/29 职场文书