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求素数示例分享
Feb 16 Python
跟老齐学Python之正规地说一句话
Sep 28 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
tensorflow如何批量读取图片
Aug 29 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Python类继承和多态原理解析
Feb 05 Python
python生成并处理uuid的实现方式
Mar 03 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
Python datetime模块的使用示例
Feb 02 Python
python实现网络五子棋
Apr 11 Python
Python实现自动玩连连看的脚本分享
Apr 04 #Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Python必备技巧之函数的使用详解
Python批量解压&压缩文件夹的示例代码
Apr 04 #Python
Python调用腾讯API实现人脸身份证比对功能
Python字符串常规操作小结
Anaconda安装pytorch和paddle的方法步骤
You might like
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
Js+XML 操作
2006/09/20 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
js代码实现轮播图
2020/05/04 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
环保倡议书100字
2014/05/15 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
绿色出行口号
2014/06/18 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python