人臉檢測與數字驗證碼識別

2021-10-25 16:14:30 字數 3708 閱讀 8113

參考:

使用haar分類器進行面部檢測

簡單介紹haar特徵分類器物件檢測技術

它是基於機器學習的,通過使用大量的正負樣本影象訓練得到乙個cascade_function,最後再用它來做物件檢測。如果你想實現自己的面部檢測分類器,需要大量的正樣本影象(面部影象)和負樣本影象(不含面部的影象)來訓練分類器。 可參考這裡不做介紹,現在我們利用opencv已經訓練好的分類器,直接利用它來實現面部和眼部檢測。

重要方法分析:def detectmultiscale(self, image, scalefactor=none, minneighbors=none, minsize=none, maxsize=none)

原理:檢測輸入影象在不同尺寸下可能含有的目標物件

#minsize – minimum possible object size. objects smaller than that are ignored.

#maxsize – maximum possible object size. objects larger than that are ignored.

入參:1)image:輸入的影象

2)scalefactor:比例因子,影象尺寸每次減少的比例,要大於1,這個需要自己手動調參以便獲得想要的結果

3)minneighbors:最小附近畫素值,在每個候選框邊緣最小應該保留多少個附近畫素

4)minsize,maxsize:最小可能物件尺寸,所檢測的結果小於該值會被忽略。最大可能物件尺寸,所檢測的結果大於該值會被忽略

返回:若干個包含物件的矩形區域

import cv2 as cv

defface_detection

(image)

: gray = cv.cvtcolor(image, cv.color_bgr2gray)

face_detector = cv.cascadeclassifier(

"./images/haarcascade_frontalface_alt_tree.xml"

) eyes_detector = cv.cascadeclassifier(

"./images/haarcascade_eye.xml"

)# image, scalefactor, minneighbors

faces = face_detector.detectmultiscale(gray,

1.02,5

)for x, y, w, h in faces:

cv.rectangle(image,

(x, y)

,(x + w, y + h),(

0,255,0)

,2)# img = cv.circle(image, (x+(w//2), y+(h//2)), w//2, (0, 255, 0), 2)

# 選擇面部識別出來的區域進行eye識別

# 淺拷貝

roi_gray = gray[y:y+h, x:x+w]

roi_color = image[y:y+h, x:x+w]

# 識別eye和mouth

eyes = eyes_detector.detectmultiscale(roi_gray,

1.3,5)

# 識別出來的區域用矩形標記起來

"""去雜訊這塊可以自由發揮"""

# 獲取結構化元素

kernel = cv.getstructuringelement(cv.morph_rect,(4

,4))

# 開操作

bin1 = cv.morphologyex(binary, cv.morph_open, kernel=kernel)

cv.imshow(

"bin1"

, bin1)

# 轉換為image型別

textimage = image.fromarray(bin1)

print

(type

(textimage)

)# 進行識別並返回識別結果

驗證碼 簡單驗證碼識別

這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 興之所至之所以說簡單,我覺得是這樣的 抽了五張驗證碼扔進ps,50 透明度,長這樣 只有數字為內容 每張圖的數字都在固定位置 沒有太大的干擾因素 數字字型,形態完...

驗證碼識別

驗證碼識別過程好比人大腦的乙個識別過程 首先,我們的眼睛接收,並將這張的資訊輸送給大腦 然後,我們的大腦接收到這個資訊以後,對這個資訊作出處理 最後,將中的有效資訊提取出來再將其和大腦中儲存的資訊進行對應對比,確定對比結果。模擬驗證碼識別,大腦接受的處理過程就相當於電腦對的預處理,大腦對進行對比和確...

驗證碼識別

import tensorflow as tf 定義乙個初始化權重的函式 def weight variables shape w tf.variable tf.random normal shape shape,mean 0.0,stddev 1.0 return w 定義乙個初始化偏置的函式 d...