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 重新投影誤差:外匯跟單gendan5.com原 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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2886467/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 人眼疲勞檢測之opencv人眼檢測xml說明OpenCVXML
- [計算機視覺]人臉應用:人臉檢測、人臉對比、五官檢測、眨眼檢測、活體檢測、疲勞檢測計算機視覺
- 無人駕駛之車輛檢測與跟蹤
- 自動駕駛系(四)——環境感知之可行駛區域檢測技術自動駕駛
- 防止通知疲勞的 4 個技巧
- 避免自動駕駛事故,CV領域如何檢測物理攻擊?自動駕駛
- 自動駕駛系列(二)——環境感知之行人檢測技術自動駕駛
- 自動駕駛測試全流程自動駕駛
- 自動駕駛系列(一)——環境感知之車輛檢測技術自動駕駛
- 自動駕駛系列(三)——環境感知之車道線檢測技術自動駕駛
- 【面試】滴滴自動駕駛測開面試自動駕駛
- 經緯恆潤智慧駕駛開發、測試評估平臺—智慧駕駛測評工具系列(ICVT)
- 智慧駕駛實車測試系統-VDAS
- 勞保防護用品穿戴檢測系統
- 如何在疲勞的JS世界中持續學習JS
- Uber自動駕駛汽車重回道路測試 增加人類駕駛員監控系統自動駕駛
- 智慧駕駛數採及測評解決方案
- 無人駕駛需要怎樣的感測器?
- 駕駛證、行駛證識別
- Waymo將在美國最多雨城市測試無人駕駛汽車,在雨天收集駕駛資料
- 打工人的疲勞和壓力,別人不懂 AI 懂AI
- 大平臺為治癒 “巨頭疲勞症” 紛紛推出心機小功能,可這真的能解渴麼?
- Nvidia加州公路測試,自動駕駛汽車上路自動駕駛
- 諜照曝光!特斯拉正在測試完全自動駕駛自動駕駛
- 感測器在自動駕駛中的應用自動駕駛
- 中科信ANSYS高階疲勞分析技術培訓課程
- 為什麼說獎勵太多反而會讓玩家感到疲勞?
- 中消協:平板電腦比手機更易導致視疲勞
- 【智慧駕駛】金準資料:人工智慧駕駛產業報告人工智慧產業
- 戰鬥民族進軍無人駕駛,合作雙方都是本土巨頭
- 2019年北京市自動駕駛路測報告自動駕駛
- 自動駕駛中的障礙物行為預測自動駕駛
- 安搭Share提醒,電腦控出現眼疲勞怎麼辦
- 2021年全球最疲勞國家指數(附原資料表)
- 人工智慧如何防止資料洩露後的疲勞現象人工智慧
- ABAQUS免費培訓 Abaqus成型 焊接 疲勞多工況課程
- 經緯恆潤智慧駕駛開發、測試評估平臺——智慧駕駛全量資料感知及分析系統
- 自動駕駛行業急需一場勝利,適當調低目標才是正道自動駕駛行業