国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        用 OpenCV 檢測貓臉

        2022-10-08 14:33
        磐創AI
        關注

        Python中的OpenCV貓臉檢測代碼

        使用 OpenCV 的預訓練級聯分類器可以輕松檢測照片或視頻中的貓臉。完成所有工作的代碼:

        import cv2


        cascade = cv2.CascadeClassifier('haarcascade_frontalcatface.xml')
         

        cap = cv2.VideoCapture(0)
         

        while True:

           ret, img = cap.read()

           img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

           faces = cascade.detectMultiScale(img_gray, 1.5, 5)
         

           for (x,y,w,h) in faces:

               cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)

               roi_gray = img_gray[y:y+h, x:x+w]

               roi_color = img[y:y+h, x:x+w]
               

           cv2.imshow('img',img)

           k = cv2.waitKey(30) & 0xff

           if k == 27:

               break
         

        cap.release()
         

        cv2.destroyAllWindows()

        讓我們逐行檢查:

        cv2 庫被導入。

        如果你還沒有安裝cv2:

        #install cv2

        pip install opencv-python

        #1

        import cv2

        · 加載級聯分類器 XML 文件。

        #3

        cascade = cv2.CascadeClassifier('haarcascade_frontalcatface.xml')

        級聯分類器

        級聯是一種集成學習方法,是一種使用多個分類器來提高準確率的方法。第一個級聯分類器是 Viola 和 Jones (2001) 的臉部檢測器。這個分類器的要求是快速,以便在低功耗 CPU 上實現,例如相機和電話。

        級聯是一種訓練分類器的方法(分類器是一種機器學習算法,可用于標記事物),以便它們在鏈中協同工作。鏈中的第一個分類器訓練在幾百張你試圖檢測的事物的“正面”圖像上,以及一堆不包含該事物的“負面”圖像上。

        然后,可以將該分類器應用于圖像的一個區域,并嘗試檢測該對象。如果它沒有找到它,它將移動到下一個區域,依此類推,直到它找到了東西或搜索了整個圖像。這個過程最常用于面部檢測和識別。

        該算法通過掃描圖像并尋找與訓練數據中的特征相匹配的 Haar 特征來工作。如果找到匹配項,則將該區域標記為臉。如果未找到匹配項,則將該區域標記為不是臉。

        在整個圖像中進行這種搜索是一項非常昂貴的業務。想想看,即使是 24x24 的圖像也有 160000 個特征。因此,它使用積分圖像,這是克服這一問題的有效方法。

        積分圖像允許快速計算給定矩形下的像素總和,用于計算各種特征。這種方法比傳統方法快得多,因此非常適合用于大圖像。

        位置1的值是A中像素的總和。位置2的值是A和B的總和。位置3:A+C。位置 4 A+B+C+D。D 的值為 (4+1) - (2+3)。

        在我們得到這些特征(會有很多)之后,我們需要對它們進行某種過濾,我們需要找出那些能夠告訴我們一些東西的特征。Adaboost 是一種機器學習算法,有助于從大量特征中選擇最佳特征。它通過關注與手頭任務最相關的特征來做到這一點。

        我們將每個特征應用于訓練圖像并獲得正負示例中提供的最佳閾值。選擇在兩個方向上具有最低錯誤率的特征。Adaboost 的基礎分類器很弱。但是當同時使用許多基礎分類器時,Adaboost 可以達到一個強大的水平。通過將特征從 160000 個減少到 6000 個特征,實現了超級增益。

        通常,包含臉部的區域與整個圖像區域相比非常小。因此,到處尋找臉部仍然是低效的。相反,在你的臉更有可能出現在照片中間的區域。

        Cascade of Classifiers 是一個引入的概念,以便更有效地將所有特征應用于窗口。這些特征被分組到分類器的不同階段并被一一應用。如果窗口在第一階段失敗,則不考慮剩余的特征。如果通過,則應用第二階段的特征并繼續該過程。通過所有階段的窗口就是臉部區域。

        · 為了訪問和讀取從網絡攝像頭接收到的數據,我們創建了一個視頻捕獲對象并傳遞我們的設備編號。

        VideoCapture 類用于捕獲視頻。你可以傳遞視頻文件的路徑。

        #5

        cap = cv2.VideoCapture(0)

        · 啟動循環以確保視頻數據的連續流。

        #7

        while True:

        · VideoCapture 對象(cap)讀取并解碼,返回下一幀視頻。#8

        ret, img = cap.read()

        #ret is True if there is a video data

        #img is the image

        · 我們將接收到的圖像轉換為灰度以最小化計算成本。

        #9

        img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        · 現在,是時候在提供的圖像幀中檢測臉部了。我們將使用我們的級聯方法。

        detectMultiScale方法檢測給定圖像中各種大小的對象。它接受灰度圖像、scaleFactor、minNeighbors、minSize、maxSize。

        scaleFactor用于創建比例金字塔,它是一系列不同大小的圖像,用于檢測圖像中不同大小的臉部。較小的比例因子會導致更徹底的臉部搜索,但速度較慢,而較大的比例因子會導致搜索速度更快,但可能會遺漏一些臉部。

        minNeighbors 參數指定每個候選矩形應該保留多少個鄰居。該參數會影響檢測到的臉部質量。數值越高,檢測次數越少,質量越高。3~6是很好的參考取值。

        minSize確定被檢測對象的閾值大小。對于maxSize,則相反。

        #10

        faces = cascade.detectMultiScale(img_gray, 1.5, 5)

        · 在圖像中的面部周圍繪制矩形。

        #12-13-14-15

        for (x,y,w,h) in faces:

               cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)

               roi_gray = img_gray[y:y+h, x:x+w]

               roi_color = img[y:y+h, x:x+w]

        收聽事件以結束程序。(在我們的例子中按下退出鍵)。

        #19-20-21

        k = cv2.waitKey(30) & 0xff

        if k == 27:

          break

        結果:

        參考

        image.png

               原文標題 : 用 OpenCV 檢測貓臉

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

        發表評論

        0條評論,0人參與

        請輸入評論內容...

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

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

        暫無評論

        暫無評論

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

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 正阳县| 拜城县| 精品va在线观看| 鄂托克旗| 3p在线看| 蜜臀99| 贵德县| 91纯肉动漫| 狼友福利在线| 明水县| 清水县| 男人色天堂| 福利导航在线播放| 国产V视频| 久久影音先锋| 人妻丝袜| 久草精品视频在线观看| 丁香婷婷五月| 国模精品| 夜夜爽夜夜| 99re在线| 贺兰县| 叙永县| 国产玖玖| 亚洲色图在线观看| 亚洲AV熟女| 亚洲AV熟女| 亚洲人成人网站| 亚洲成人黄色网| 熟女网址| 制服丝袜亚洲在线| 欧美福利精品| 男人天堂网址| 久久精品夜色噜噜亚洲A∨| 色99999| 美女成人网站| 中文字幕三区| 中文字幕在线高清| 女人天堂久久| jizzjizz视频| 欧美777|