<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python實現(xiàn)貓臉識別 | 喵主子福利

          共 3190字,需瀏覽 7分鐘

           ·

          2020-11-05 18:10


          一篇文章帶你了解Python實現(xiàn)貓臉識別


          本文將向您展示如何編寫一個簡單的貓臉檢測程序。在程序中同時結合了人臉和貓臉的檢測模型,讓機器學會區(qū)分人和貓。這聽起來就像是非常有趣的一個項目~

          Library

          在進行機器學習項目時,必須學會安裝和導入庫,這將使我們的工作事半功倍。在這個項目中將用到OpenCV和Pillow這兩個庫。OpenCV是一個高度優(yōu)化的庫,專注于實時應用程序。Pillow則是一個很棒的圖像處理庫。Pillow庫常常使用“pip install pillow”進行安裝,但是在我們實際import使用時,需要import PIL進行使用。這兩個其實是同一種意思,不必感到困惑。

          OpenCV(開源計算機視覺庫)是一個開源計算機視覺和機器學習軟件庫。OpenCV的構建旨在為計算機視覺應用程序提供通用的基礎結構,并加速在商業(yè)產(chǎn)品中使用機器感知。作為BSD許可的產(chǎn)品,OpenCV使企業(yè)可以輕松地使用和修改代碼。

          上述兩個庫的安裝過程非常簡單,在cmd窗口中寫入以下代碼行即可:
          pip install opencv-python pillow
          安裝完成后,我們可以將其導入到我們的程序中:
          import cv2 from PIL import Image
          OpenCV已經(jīng)包含許多針對面部,眼睛,微笑等進行過預訓練的分類器。這些.xml文件存儲在GitHub文件夾中。 我們將使用貓臉檢測和人臉檢測模型。

          鏈接如下:
          貓臉:
          https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalcatface_extended.xml
          人臉:
          https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml

          你可以選擇從Github下載XML文件?;蛘呖梢詮纳厦娴逆溄訌椭拼a并粘貼到文本編輯器中并保存它們。我把它們命名為“ catface_detector.xml”和“ humanface_detector.xml”。

          將文件保存到文件夾后,讓我們通過下列代碼將上述數(shù)據(jù)加載到程序中:
          # Load the cascades catface_cascade = cv2.CascadeClassifier('catface_detector.xml') humanface_cascade = cv2.CascadeClassifier('humanface_detector.xml')

          圖像數(shù)據(jù)集

          在這一步中,我們需要選擇代碼測試所需要的圖像。確保至少有兩張圖片來檢測程序的準確性。這些圖像可以同時有人和貓,或者只是其中一個。

          下面是我將要進行測試的兩張圖片:

          選擇圖像后,對它們進行重命名。當然要確保圖像文件位于當前程序處理的文件夾。然后對圖像做一些必要的預處理。

          圖像預處理

          在這一步中我們將對圖像進行一些處理,以便模型能夠得到更準確的結果。首先調(diào)整圖像的尺寸,讓它們保持相同的大小。然后將它們轉(zhuǎn)化為灰度圖像,因為我們的模型對于灰度圖像的檢測速度更快,同時色彩對檢測結果的影響微乎其微。

          下面我們將用到文章開頭安裝的庫對圖像進行上述處理。

          調(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")
          導入預處理后的圖像

          最后,將處理好的圖像導入到我們的程序中,這樣我們就可以運行貓臉和人臉檢測模型了。我們使用的是Opencv庫來導入圖像。
          # Read the input image img1 = cv2.imread('ready1.jpg') img2 = cv2.imread('ready2.jpg')
          面部識別

          檢測

          現(xiàn)在該檢測面部了。我們將運行兩行代碼。首先檢測圖像中的人臉。第二行是檢測圖像中的貓臉。如上所述,我們使用的是opencv內(nèi)置的分類器。
          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))
          繪制矩形

          在這一步中,我們將圍繞檢測到的面部繪制矩形。當然這些矩形可以有不同的顏色,它的寬度也是可以調(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)
          注1:(220、90、230)和(0,255,0)是繪制的矩形的顏色。 可以更改一些這些值看看顏色如何變化;
          注2:(3)是線條的粗細。同樣也可以更改參數(shù)值并看看矩形的變化。

          保存結果

          最后,我們將保存帶有檢測到的面部的圖像。這樣就可以方便我們進行查看了。小編在這里提醒大家要確保變量名稱的正確哦~代碼如下所示:
          #Saving the images using imwrite methodcv2.imwrite("faces_detected1.png", img1)cv2.imwrite("faces_detected2.png", img2)

          結果

          上面就是我們得到的結果。第一張圖像檢測到的是人臉,第二張圖像檢測到的是貓臉。在我們的努力下,機器學會了區(qū)分人臉和貓臉!


          resize之后的喵星人好像胖了哈哈哈哈哈哈·~~


          ·? END? ·



          HAPPY?LIFE

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  深夜无码电影 | 欧美性猛交XXXX乱大交3 99精品视频在线播放免费 | 国产微拍精品一区 | 操B久久久 | 超pen个人公开视频久久 |