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抓取京东价格分析京东商品价格走势
Jan 09 Python
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
python操作mongodb根据_id查询数据的实现方法
May 20 Python
Python实现简单字典树的方法
Apr 29 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
10个示例带你掌握python中的元组
Nov 23 Python
Python如何telnet到网络设备
Feb 18 Python
粗暴解决CUDA out of memory的问题
May 22 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 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
php分页代码学习示例分享
2014/02/20 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
php事件驱动化设计详解
2016/11/10 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
node 版本切换的实现
2020/02/02 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
Python httplib模块使用实例
2015/04/11 Python
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
以下的初始化有什么区别
2013/12/16 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
高中政治教师教学反思
2016/02/23 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Flask搭建一个API服务器的步骤
2021/05/28 Python
PHP RabbitMQ消息列队
2022/05/11 PHP