1. 程式人生 > >RPA中檢測一張圖片中是否含有人臉

RPA中檢測一張圖片中是否含有人臉

我們 編寫代碼 速度 註釋 cal lfa 轉換成 寫代碼 ray

想要檢測一張圖片中是否含有人臉,需要用到的關鍵技術就是人臉檢測。

人臉檢測算法的輸入是一張圖像,輸出是人臉框的坐標序列,具體結果是 0 個人臉框或 1 個人臉框或多個人臉框。

人臉檢測算法的原理簡單來說是一個“掃描”加“判定”的過程。即首先在整個圖像範圍內掃描,再逐個判定候選區域是否為人臉的過程。因此人臉檢測算法的計算速度會跟圖像尺寸大小以及圖像內容相關。在實際編寫代碼時,我們可以通過設置“輸入圖像尺寸”、或“最小臉尺寸限制”、“人臉數量上限”等參數來加快算法的運行速度。

我們使用 opencv 這個庫來進行人臉的檢測,這個庫在我們的 RPA 中已經內置,直接導入即可。

相關代碼及註釋如下:

import cv2

image = cv2.imread(‘1.png‘) # 加載圖片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 轉換成灰度圖,提高計算速度

face_cascade = cv2.CascadeClassifier(r"C:\iS-RPA\plugin\Com.Isearch.Func.Python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml") # 加載Haar特征分類器

faces = face_cascade.detectMultiScale(

gray, # 要檢測的圖像
scaleFactor = 1.15, # 圖像尺寸每次縮小的比例
minNeighbors = 3, # 一個目標至少要被檢測到3次才會被標記為人臉
minSize = (5, 5) # 目標的最小尺寸
) # 探測圖片中的人臉

for (x,y,w,h) in faces:
cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,0), 2) # 為每個人臉繪制矩形框

cv2.imshow("image", image)
cv2.waitKey(0)

len(faces) 即為檢測到圖片中人臉的數量

RPA中檢測一張圖片中是否含有人臉