AI領(lǐng)域非常廣泛,從信息的載體可分為文字、圖片、聲音、視頻等,當(dāng)我真的想要學(xué)習(xí)AI的時(shí)候,有點(diǎn)無(wú)從下手。從什么方向入門(mén),學(xué)習(xí)什么庫(kù)?
前幾天逛github,發(fā)現(xiàn)了一個(gè)識(shí)別人臉的教程:
https://github.com/vipstone/faceai
看了一個(gè)入門(mén)還是非常簡(jiǎn)單的。
安裝:
安裝包都比較大,可以使用豆瓣源:
-i https://pypi.douban.com/simple
> pip install numpy > pip install opencv-python
備注:dlib 庫(kù)非難安裝
首先,使用 opencv 打開(kāi)一張圖
import cv2
img = cv2.imread("d:/tc/faceai/meinv.jpg")
cv2.namedWindow('Image')
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
人臉識(shí)別
要想識(shí)別一張圖片上的人臉?lè)秩剑?/p>
將彩色圖片轉(zhuǎn)換為灰色,轉(zhuǎn)為一維的灰度,降低計(jì)算強(qiáng)度。
import cv2
img = cv2.imread('d:/tc/faceai/meinv.jpg')
# 轉(zhuǎn)換灰色
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("Image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
通過(guò)矩形畫(huà)出人臉位置。
import cv2
img = cv2.imread('d:/tc/faceai/meinv.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 繪制矩形
x = y = 10 # 坐標(biāo)
w = 100 # 矩形大?。▽挕⒏撸?/p>
color = (0, 0, 255) # 定義繪制顏色
cv2.rectangle(img, (x, y), (x + w, y + w), color, 1) # 繪制矩形
cv2.imshow("Image", img) # 顯示圖像
cv2.waitKey(0)
cv2.destroyAllWindows() # 釋放所有的窗體資源
使用訓(xùn)練分類器查找人臉。
這一步的核心是使用 opencv 的人臉訓(xùn)練模型,下載地址:
https://github.com/opencv/opencv/tree/master/data/haarcascades
這里選擇haarcascade_frontalface_default.xml文件,你可以下載到本地。
import cv2
img = cv2.imread('d:/tc/faceai/meinv.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# OpenCV人臉識(shí)別分類器
classifier = cv2.CascadeClassifier("d:/tc/faceai/haarcascade_frontalface_default.xml")
color = (0, 255, 0) # 定義繪制顏色
# 調(diào)用識(shí)別人臉
faceRect = classifier.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
if len(faceRect): # 大于0則檢測(cè)到人臉
for faceRect in faceRect: # 單獨(dú)框出每一張人臉
x, y, w, h = faceRect
# 框出人臉
cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)
# 左眼
cv2.circle(img, (x + w // 4, y + h // 4 + 30), min(w // 8, h // 8),
color)
# 右眼
cv2.circle(img, (x + 3 * w // 4, y + h // 4 + 30), min(w // 8, h // 8),
color)
# 嘴巴
cv2.rectangle(img, (x + 3 * w // 8, y + 3 * h // 4),
(x + 5 * w // 8, y + 7 * h // 8), color)
cv2.imshow("image", img) # 顯示圖像
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()
那么,我們已經(jīng)識(shí)別出美女的五官了。
我們可以使用opencv訓(xùn)練自己的分類器,比如識(shí)別頁(yè)面上的按鈕、輸入框等,那么是不是就可以通過(guò)AI來(lái)定位元素了。
責(zé)任編輯:lq
-
AI
+關(guān)注
關(guān)注
87文章
28877瀏覽量
266240 -
人臉識(shí)別
+關(guān)注
關(guān)注
76文章
3998瀏覽量
81359 -
OpenCV
+關(guān)注
關(guān)注
29文章
622瀏覽量
41091
原文標(biāo)題:AI入門(mén):實(shí)現(xiàn)圖片人臉識(shí)別
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論