python 基于dlib庫的人臉檢測的實(shí)現(xiàn)
本周暫時(shí)比較清閑,可以保持每日一更的速度。
國外身份證項(xiàng)目新增需求,檢測出身份證正面的人臉。最開始考慮mobilenet-ssd,經(jīng)同事提醒,有現(xiàn)成的人臉庫dlib,那就用傳統(tǒng)方法嘗試一下。
dlib安裝
dlib的安裝小費(fèi)一波周折,我的python版本是3.6,直接pip install dlib安裝失敗。https://pypi.org/project/dlib/19.6.0/找到python3.6對應(yīng)的whl文件下載安裝或者直接pip install dlib==19.6.0 提示Successfully installed dlib-19.6.0安裝成功。事情沒那么簡單,import dlib時(shí)報(bào)錯(cuò): ImportError: DLL load failed: 找不到指定的模塊。
還是版本的問題,查找最新版本的whl :https://pypi.org/simple/dlib/
下載 dlib-19.8.1-cp36-cp36m-win_amd64.whl 然后cd到相應(yīng)的目錄下 pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl
代碼
import dlib import cv2 import os def resize(img, width=None, height=None, inter=cv2.INTER_AREA): """ initialize the dimensions of the input image and obtain the image size """ dim = None (h, w) = img.shape[:2] if width is None and height is None: return img if width is None: r = height / float(h) dim = (int(w * r), height) else: r = width / float(w) dim = (width, int(h * r)) # resize the image resized = cv2.resize(img, dim, interpolation=inter) # return the resized image return resized # 使用 Dlib 的正面人臉檢測器 frontal_face_detector detector = dlib.get_frontal_face_detector() # 圖片所在路徑 imgs_path = 'test/' filelist = os.listdir(imgs_path) # 使用 detector 檢測器來檢測圖像中的人臉 for img_path in filelist: img = cv2.imread(imgs_path + img_path) img = resize(img, width=512) faces = detector(img, 1) print("人臉數(shù) / Faces in all: ", len(faces)) for i, d in enumerate(faces): w = d.right() - d.left() h = d.bottom() - d.top() d_left = int(d.left() - w * 0.25) d_right = int(d.right() + w * 0.25) d_top = int(d.top() - w * 0.70) d_bottom = int(d.bottom() + w * 0.2) print("第", i + 1, "個(gè)人臉的矩形框坐標(biāo):", "left:", d_left, "right:", d_right, "top:", d_top, "bottom:", d_bottom) cv2.rectangle(img, tuple([d_left, d_top]), tuple([d_right, d_bottom]), (0, 255, 255), 2) cv2.imshow("img", img) cv2.waitKey(0) cv2.imwrite('./result.jpg',img)
隨便網(wǎng)上找了張圖測試,效果如下
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python結(jié)合opencv實(shí)現(xiàn)人臉檢測與跟蹤
- Python+OpenCV人臉檢測原理及示例詳解
- python中使用OpenCV進(jìn)行人臉檢測的例子
- Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測
- Python OpenCV調(diào)用攝像頭檢測人臉并截圖
- Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測
- python opencv人臉檢測提取及保存方法
- 50行Python代碼實(shí)現(xiàn)人臉檢測功能
- python利用OpenCV2實(shí)現(xiàn)人臉檢測
- python實(shí)現(xiàn)人臉檢測的簡單實(shí)例
相關(guān)文章
Python學(xué)習(xí)之內(nèi)置函數(shù)總結(jié)
這篇文章主要為大家總結(jié)一下python?中常用的是個(gè)內(nèi)置函數(shù)的使用方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下2022-03-03Django使用裝飾器限制對視圖的訪問及實(shí)現(xiàn)原理
除了可以在視圖處理中校驗(yàn)用戶身份以及驗(yàn)證用戶權(quán)限之外,Django還提供了便捷的裝飾器來完成這兩類校驗(yàn),下面介紹這兩個(gè)裝飾器的使用方法與實(shí)現(xiàn)原理,對Django裝飾器限制視圖訪問相關(guān)知識感興趣的朋友一起看看吧2022-10-10Python進(jìn)階學(xué)習(xí)之你真的懂元組嗎?
在我們學(xué)習(xí)python的過程中,對元組的介紹通常是成為”不可變的列表“,但是這其實(shí)并沒有完全的概括元組的功能。在本文中,我們將會(huì)介紹元組作為記錄的功能,話不多說我們開始吧2023-04-04Python Pandas數(shù)據(jù)結(jié)構(gòu)簡單介紹
這篇文章主要介紹了Python Pandas數(shù)據(jù)結(jié)構(gòu)簡單介紹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(精簡版)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的精簡版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Python實(shí)戰(zhàn)之單詞打卡統(tǒng)計(jì)
這篇文章主要介紹了Python實(shí)戰(zhàn)之單詞打卡統(tǒng)計(jì),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04