内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定-創(chuàng)新互聯(lián)

小編給大家分享一下python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網頁空間、營銷軟件、網站建設、三水網站維護、網站推廣。

0.引言

利用Dlib官方訓練好的模型“shape_predictor_68_face_landmarks.dat”進行68點標定,利用OpenCv進行圖像化處理,在人臉上畫出68個點,并標明序號;

實現(xiàn)的68個特征點標定功能如下圖所示:

python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定

圖1 人臉68個特征點的標定

1.開發(fā)環(huán)境

  python:3.6.3

  dlib:19.7

  OpenCv, numpy

需要調用的庫: 

import dlib #人臉識別的庫dlib
import numpy as np #數據處理的庫numpy
import cv2 #圖像處理的庫OpenCv

2.設計流程

工作內容主要以下兩大塊:68點標定和OpenCv繪點

68點標定:

借助官方的Demo(face_landmark_detection.py,在之前另一篇博客里面介紹過學習Python3 Dlib19.7進行人臉面部識別)實現(xiàn);

OpenCv繪點:

介紹了用到的 畫圓函數cv2.circle() 和 輸出字符串函數 cv2.putText() ;

流程:

  1.調用dlib庫來進行人臉識別,調用預測器“shape_predictor_68_face_landmarks.dat”進行68點標定

  2.存入68個點坐標

  3.利用cv2.circle來畫68個點

  4.利用cv2.putText()函數來畫數字1-68

3.源碼

# 68-points
# 2017-12-28
# By TimeStamp
# #cnblogs: http://www.cnblogs.com/AdaminXie/
import dlib      #人臉識別的庫dlib
import numpy as np    #數據處理的庫numpy
import cv2      #圖像處理的庫OpenCv

# dlib預測器
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')

path="********************"

# cv2讀取圖像
img=cv2.imread(path+"test.jpg")

# 取灰度
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

# 人臉數rects
rects = detector(img_gray, 0)

for i in range(len(rects)):
 landmarks = np.matrix([[p.x, p.y] for p in predictor(img, rects[i]).parts()])

 for idx, point in enumerate(landmarks):
  # 68點的坐標
  pos = (point[0, 0], point[0, 1])

  # 利用cv2.circle給每個特征點畫一個圈,共68個
  cv2.circle(img, pos, 5, color=(0, 255, 0))

  # 利用cv2.putText輸出1-68
  font = cv2.FONT_HERSHEY_SIMPLEX
  cv2.putText(img, str(idx+1), pos, font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)

cv2.namedWindow("img", 2)
cv2.imshow("img", img)
cv2.waitKey(0)

note:OpenCv的畫圖函數

         1. 畫圓 cv2.circle( img, (p1,p2), r, (255,255,255) )

    參數1:  img-          圖片對象;

    參數2:  (p1,p2)-          圓心坐標;

    參數3:  r-          半徑;

    參數4:  (255,255,255)-  顏色數組; 

   2. 輸出字符 cv2.putText( img,"test", (p1,p2), font, 4, (255,255,255), 2, cv2, LINE_AA )

    參數1:  img-      圖像對象;

    參數2:  "test"-      需要打印的字符text(數字的話可以利用str()轉成字符);

    參數3:  (p1,p2)-      坐標textOrg;

    參數4:  font-      字體fontFace(注意這里 font = cv2.FONT_HERSHEY_SIMPLEX);

    參數5:  4-       字號fontScale;

    參數6:  (255,255,255)-   顏色數組;

    參數7:  2-        線寬thickness;

    參數8:  LINE_AA-      線條種類line_type;

*關于 顏色數組:

      (255,255,255), (藍色,綠色,紅色),每個值都是0-255;

      比如:藍色(255,0,0),紫色(255,0,255)    

可以調整cv2.circle()函數和cv2.putText()函數中的 半徑、線寬 等參數使得輸出滿足需求方便查看;

結果:

python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定

圖2 測試結果1

python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定  

以上是“python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標題:python3怎么利用Dlib19.7實現(xiàn)人臉68個特征點標定-創(chuàng)新互聯(lián)
瀏覽地址:http://www.rwnh.cn/article26/cseijg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計、網站內鏈、微信小程序、網站策劃、手機網站建設、服務器托管

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站建設
宁远县| 乃东县| 凭祥市| 彭阳县| 武义县| 新平| 杨浦区| 大丰市| 沙田区| 青铜峡市| 慈利县| 右玉县| 巨鹿县| 沾化县| 泰州市| 成武县| 乌海市| 珲春市| 施甸县| 循化| 太康县| 库伦旗| 沁源县| 旌德县| 文安县| 南川市| 密云县| 阿拉善左旗| 莎车县| 石柱| 清徐县| 景洪市| 宁海县| 连云港市| 德格县| 宣威市| 青浦区| 凌云县| 淄博市| 西乌| 平邑县|