訂閱
糾錯
加入自媒體

用Python+OpenCV+PIL構建貓臉識別器

選擇圖像后,讓我們重命名它們。確保圖像文件位于你正在處理的同一文件夾中。在保存它們之后,現在我們將對圖像做一些修飾。圖像處理在這一步中,我們將對圖像做一些小的修飾,以便更好地進行處理,我也發(fā)表了一篇關于常用圖像處理技術的文章。做這些修整確實有助于我們的機器處理,并提供更好的結果。我們先調整圖片的大小,接下來,我們將它們轉換成灰度,我們的模型處理灰度圖像的速度更快。Python中的圖像處理常用圖像處理技術的分步指南網址:https://towardsdatascience.com/image-manipulation-in-python-cbb86a61cf0為了使用這些圖像編輯技術,我們將使用我們在文章開頭導入的圖像模塊。調整大小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")導入編輯的圖像最后,我們將編輯好的圖像導入到我們的程序中,這樣我們就可以運行貓臉和人臉檢測模型了。我們正在使用Opencv庫導入圖像。# Read the input image img1 = cv2.imread('ready1.jpg')
img2 = cv2.imread('ready2.jpg')人臉檢測級聯是時候檢測人臉了,我們將運行兩行代碼。首先在圖像中檢測人臉,第二步是在圖像中檢測貓的臉。如前所述,我們正在請求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))繪制矩形在這一步中,我們將圍繞檢測到的面部進行繪制矩形。這些矩形可以有不同的顏色,其線框的厚度也可以調整。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ù)檢查整個代碼。#Saving the images using imwrite methodcv2.imwrite("faces_detected1.png", img1)cv2.imwrite("faces_detected2.png", img2)結果這是我的工作成果。第一種是人臉檢測,第二種是貓臉檢測結果。如你所見,我們的機器知道哪一個是人類,哪一個是貓臉。我還測試了這個程序,將兩個圖像合并在一個圖像中,我收到的結果可以在下面找到。faces_detected1.png

faces_detected2.png

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

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

<上一頁  1  2  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號