用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在,你已經知道如何教機器同時為你做兩件事了。希望你喜歡這篇教程,并在今天學到一些新東西。計算機視覺是一個偉大的領域,你可以做的事情是無限的。你可以在不同的圖像上測試代碼,看看它是如何工作的。它可能不是對所有的圖像都有效,因為預測依賴于訓練過的數據。

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數智主辦酒仙橋論壇,探索AI產業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?