一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切

Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切

2021-01-08 00:32TimeStamp Python

本篇文章給大家詳細(xì)分析了Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切這個(gè)技術(shù),對此有興趣的朋友參考學(xué)習(xí)下。

0.引言

利用python開發(fā),借助Dlib庫進(jìn)行人臉識(shí)別,然后將檢測到的人臉剪切下來,依次排序顯示在新的圖像上;

實(shí)現(xiàn)的效果如下圖所示,將圖1原圖中的6張人臉檢測出來,然后剪切下來,在圖像窗口中依次輸出顯示人臉;

實(shí)現(xiàn)比較簡單,代碼量也比較少,適合入門或者興趣學(xué)習(xí)。

Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切

圖1 原圖和處理后得到的圖像窗口

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

python:  3.6.3

dlib:    19.7

OpenCv, numpy

import dlib  # 人臉識(shí)別的庫dlib
import numpy as np # 數(shù)據(jù)處理的庫numpy
import cv2  # 圖像處理的庫OpenCv

2.設(shè)計(jì)流程

工作內(nèi)容主要以下兩大塊:dlib人臉檢測 和 繪制新圖像

2.1 dlib人臉檢測:

dlib的使用,在我之前另一篇博客里面介紹過;

2.2 繪制新圖像:

2.2.1 確定空白圖像尺寸

這部分首先要根據(jù)檢測到的人臉數(shù)和人臉大小,來確定繪制圖像所需要的尺寸:      

多張人臉要輸出到一行,先進(jìn)行一次人臉的遍歷,記每張人臉的尺寸為height*width(高度和寬度說明見圖2),

我取的生成圖像的尺寸:height_max(最大高度)和width_sum(寬度之和),然后根據(jù)尺寸大小來新建空白圖像:

img_blank = np.zeros((height_max, width_sum, 3), np.uint8)

2.2.2 圖像填充

然后再進(jìn)行一次人臉遍歷,這次進(jìn)行空白圖像img_blank進(jìn)行填充:

for i in range(height):
for j in range(width):
img_blank[i][blank_start+j] = img[d.top()+i][d.left()+j]

  Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切

圖2 圖像尺寸說明

如果想訪問圖像的某點(diǎn)像素,可以利用img[height][width]:

存儲(chǔ)像素其實(shí)是一個(gè)三維數(shù)組,先高度height,然后寬度width;

返回的是一個(gè)顏色數(shù)組(0-255,0-255,0-255),按照(B, G, R)的順序,比如 藍(lán)色 就是(255,0,0),紅色 是(0,0,255);

3.源碼

  1. # 2018-01-22 
  2. # By TimeStamp 
  3. # #cnblogs: http://www.cnblogs.com/AdaminXie/ 
  4. import dlib  # 人臉識(shí)別的庫dlib 
  5. import numpy as np # 數(shù)據(jù)處理的庫numpy 
  6. import cv2  # 圖像處理的庫OpenCv 
  7. # dlib預(yù)測器 
  8. detector = dlib.get_frontal_face_detector() 
  9. predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat'
  10. # 讀取圖像 
  11. path = "F:/code/python/***/pic/" 
  12. img = cv2.imread(path+"test.jpg"
  13. #print("img/shape:", img.shape) 
  14. # dlib檢測 
  15. dets = detector(img, 1) 
  16. print("人臉數(shù):", len(dets)) 
  17. # 記錄人臉矩陣大小 
  18. height_max = 0 
  19. width_sum = 0 
  20. # 計(jì)算要生成的圖像img_blank大小 
  21. for k, d in enumerate(dets): 
  22. # 計(jì)算矩形大小 
  23. # (x,y), (寬度width, 高度height) 
  24. pos_start = tuple([d.left(), d.top()]) 
  25. pos_end = tuple([d.right(), d.bottom()]) 
  26. # 計(jì)算矩形框大小 
  27. height = d.bottom()-d.top() 
  28. width = d.right()-d.left() 
  29. # 處理寬度 
  30. width_sum += width 
  31. # 處理高度 
  32. if height > height_max: 
  33. height_max = height 
  34. else
  35. height_max = height_max 
  36. # 繪制用來顯示人臉的圖像的大小 
  37. print("img_blank的大小:"
  38. print("高度", height_max, "寬度", width_sum)  
  39. # 生成用來顯示的圖像 
  40. img_blank = np.zeros((height_max, width_sum, 3), np.uint8) 
  41. # 記錄每次開始寫入人臉像素的寬度位置 
  42. blank_start = 0  
  43. # 將人臉填充到img_blank 
  44. for k, d in enumerate(dets): 
  45. height = d.bottom()-d.top() 
  46. width = d.right()-d.left() 
  47. # 填充 
  48. for i in range(height): 
  49. for j in range(width): 
  50. img_blank[i][blank_start+j] = img[d.top()+i][d.left()+j] 
  51. # 調(diào)整圖像 
  52. blank_start += width 
  53. cv2.namedWindow("img_faces", 2) 
  54. cv2.imshow("img_faces", img_blank) 
  55. cv2.waitKey(0) 

結(jié)果:

 Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切

圖3 原圖和處理后得到的圖像窗口

以上就是本次我們介紹的關(guān)于Python3結(jié)合Dlib實(shí)現(xiàn)人臉識(shí)別和剪切的相關(guān)技術(shù)內(nèi)容,大家如果在學(xué)習(xí)后還有任何不明白的地方可以在下方的留言區(qū)討論。

原文鏈接:https://www.cnblogs.com/AdaminXie/p/8339863.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美老骚 | 色cccwww| 91久久精品国产亚洲 | 17岁韩国在线观看免费1 | 亚洲天堂男人网 | 色综合久久综合网欧美综合网 | 19+韩国女主播激情vip视频在线 | 国产精品高清一区二区三区不卡 | 草榴色导航 | 欧美一区二区三区免费观看视频 | 亚洲成人影院在线观看 | 国内免费高清视频在线观看 | 国产性视频 | 欧美人与禽交片在线播放 | 无码射肉在线播放视频 | 黄在线观看www免费看 | 久久婷婷五月综合色丁香花 | 国内精品91东航翘臀女神在线 | 亚洲人影院 | 特黄特色大片免费高清视频 | 国产裸舞福利资源在线视频 | 国产免费午夜 | 亚洲国产精品自在在线观看 | 午夜影院一区二区三区 | 成人小视频在线观看 | 国产精品一区二区三区免费视频 | 国产日韩精品一区二区 | 调教小龙女 | 99久久er这里只有精品17 | 99精品免费观看 | 爱爱小视频免费看 | 石原莉奈被店长侵犯免费 | 青青草原国产视频 | 万域之王动漫在线观看全集免费播放 | 91高清国产经典在线观看 | 国产成人精品高清在线 | 天天爱天天做天天爽天天躁 | 操老妇| 女王调奴丨vk | 美女撒尿无遮挡免费中国 | 免费高清资源黄网站在线观看 |