訂閱
糾錯(cuò)
加入自媒體

用Python+OpenCV+PIL構(gòu)建貓臉識(shí)別器

選擇圖像后,讓我們重命名它們。確保圖像文件位于你正在處理的同一文件夾中。在保存它們之后,現(xiàn)在我們將對(duì)圖像做一些修飾。圖像處理在這一步中,我們將對(duì)圖像做一些小的修飾,以便更好地進(jìn)行處理,我也發(fā)表了一篇關(guān)于常用圖像處理技術(shù)的文章。做這些修整確實(shí)有助于我們的機(jī)器處理,并提供更好的結(jié)果。我們先調(diào)整圖片的大小,接下來,我們將它們轉(zhuǎn)換成灰度,我們的模型處理灰度圖像的速度更快。Python中的圖像處理常用圖像處理技術(shù)的分步指南網(wǎng)址:https://towardsdatascience.com/image-manipulation-in-python-cbb86a61cf0為了使用這些圖像編輯技術(shù),我們將使用我們在文章開頭導(dǎo)入的圖像模塊。調(diào)整大小newsize = (600, 600) #First image retouchesimgr1 = Image.open("test1.jpg") imgr1 = imgr.resize(newsize) imgr1.save("resized1.jpg")#Second image retouchesimgr2 = Image.open("test2.jpg") imgr2 = imgr.resize(newsize) imgr2.save("resized2.jpg")灰度imgr1 = imgr1.convert('L') imgr1.save('ready1.jpg') imgr2 = imgr2.convert('L') imgr2.save("ready2.jpg")導(dǎo)入編輯的圖像最后,我們將編輯好的圖像導(dǎo)入到我們的程序中,這樣我們就可以運(yùn)行貓臉和人臉檢測模型了。我們正在使用Opencv庫導(dǎo)入圖像。# Read the input image img1 = cv2.imread('ready1.jpg')
img2 = cv2.imread('ready2.jpg')人臉檢測級(jí)聯(lián)是時(shí)候檢測人臉了,我們將運(yùn)行兩行代碼。首先在圖像中檢測人臉,第二步是在圖像中檢測貓的臉。如前所述,我們正在請(qǐng)求opencv分類器。human_faces = humanface_cascade.detectMultiScale(img1,     scaleFactor=1.3, minNeighbors=5, minSize=(75, 75)) cat_faces = catface_cascade.detectMultiScale(img2, scaleFactor=1.3, minNeighbors=5, minSize=(75, 75))繪制矩形在這一步中,我們將圍繞檢測到的面部進(jìn)行繪制矩形。這些矩形可以有不同的顏色,其線框的厚度也可以調(diào)整。for (i, (x, y, w, h)) in enumerate(human_faces): cv2.rectangle(img1, (x, y), (x+w, y+h), (220, 90, 230), 3)         cv2.putText(img1, "Human Face - #{}".format(i + 1), (x, y - 10),    cv2.FONT_HERSHEY_SIMPLEX, 0.55, (220, 90, 230), 2)for (i, (x, y, w, h)) in enumerate(cat_faces): cv2.rectangle(img2, (x, y), (x+w, y+h), (0,255, 0), 3)    cv2.putText(img2, "Cat Faces - #{}".format(i + 1), (x, y - 10),    cv2.FONT_HERSHEY_SIMPLEX, 0.55, (0, 0, 255), 2)(220,90,230)和(0255,0)是我們要繪制的矩形顏色,你可以和它們一起玩,看看顏色是怎么變化的。(3) 是線條的粗細(xì),你可以更改該值并查看其外觀。保存結(jié)果最后,我們將保存檢測到的人臉圖像。要查看工作的最終結(jié)果,最好的方法是保存并檢查,確保正確傳遞變量名。在運(yùn)行這最后一段代碼之前,如果一切正常的話,我建議你繼續(xù)檢查整個(gè)代碼。#Saving the images using imwrite methodcv2.imwrite("faces_detected1.png", img1)cv2.imwrite("faces_detected2.png", img2)結(jié)果這是我的工作成果。第一種是人臉檢測,第二種是貓臉檢測結(jié)果。如你所見,我們的機(jī)器知道哪一個(gè)是人類,哪一個(gè)是貓臉。我還測試了這個(gè)程序,將兩個(gè)圖像合并在一個(gè)圖像中,我收到的結(jié)果可以在下面找到。faces_detected1.png

faces_detected2.png

其他與其逐個(gè)測試每個(gè)圖像,不如讓我們看看將兩個(gè)圖像合并為一個(gè)并運(yùn)行代碼時(shí)會(huì)發(fā)生什么。我們可以看到,我們的機(jī)器現(xiàn)在能夠理解和區(qū)分貓和人的臉。result

恭喜! !你已經(jīng)創(chuàng)建了一個(gè)程序,可以在圖像中檢測貓和人的臉,F(xiàn)在,你已經(jīng)知道如何教機(jī)器同時(shí)為你做兩件事了。希望你喜歡這篇教程,并在今天學(xué)到一些新東西。計(jì)算機(jī)視覺是一個(gè)偉大的領(lǐng)域,你可以做的事情是無限的。你可以在不同的圖像上測試代碼,看看它是如何工作的。它可能不是對(duì)所有的圖像都有效,因?yàn)轭A(yù)測依賴于訓(xùn)練過的數(shù)據(jù)。

<上一頁  1  2  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)