欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)戰(zhàn)之OpenCV實(shí)現(xiàn)貓臉檢測

 更新時間:2021年06月25日 15:20:29   作者:weixin_43649691  
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著OpenCV實(shí)現(xiàn)貓臉檢測展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

開發(fā)工具

Python版本:3.6.4

相關(guān)模塊:

cv2模塊;

以及一些Python自帶的模塊。

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

原理簡介

簡單地講一講Haar分類器,也就是Viola-Jones識別器。

詳細(xì)的原理說明可參考相關(guān)文件中的兩篇論文:

Rapid Object Detection using a Boosted Cascade of Simple Features;

Robust Real-Time Face Detection.

(1)Haar-like特征

Haar-like矩形特征是用于物體檢測的數(shù)字圖像特征,由兩個或者多個相鄰的黑白矩形組合而成,矩形的特征值是白色矩形的灰度值之和減去黑色矩形的灰度值之和。一般地,我們認(rèn)為矩形特征對一些簡單的圖形結(jié)構(gòu)(線段、邊緣)等較為敏感:

圖片

具體到貓臉檢測而言,我們認(rèn)為把這樣的矩形放到一個非貓臉區(qū)域后獲得的特征值與放到一個貓臉區(qū)域后獲得的特征值是不同的。

利用上述基于特征的檢測算法,不僅能夠編碼特定區(qū)域的狀態(tài),而且效率高于基于像素的檢測算法。

(2)積分圖

下面我們來考慮一下如何計算矩形的特征值。對圖像中的任意一點(diǎn)A(x, y),定義該點(diǎn)的積分圖為其左上角的所有像素值之和,即:

圖片

因此,要計算矩形模板的特征值,也就是計算兩個區(qū)域之間的像素和之差,只需要用特征區(qū)域端點(diǎn)的積分圖來進(jìn)行簡單的加減運(yùn)算就可以了:

圖片

(3)Haar分類器

Haar分類器是一個監(jiān)督學(xué)習(xí)分類器,要進(jìn)行目標(biāo)檢測,首先要對圖像進(jìn)行直方圖均衡化和歸一化處理,然后檢測里面是否包含要檢測的物體。

流程框架圖為(Haar分類器本質(zhì)上由Haar特征提取器、離散強(qiáng)分類器以及強(qiáng)分類級聯(lián)器組成):

圖片

Haar分類器使用Adaboost算法,但是把它組織為了篩選式的級聯(lián)分類器,在任意一級計算中,**一旦獲得輸入內(nèi)容不在檢測類中的結(jié)論,便終止計算,只有通過所有級別的分類器,才可認(rèn)為檢測到了目標(biāo)物體,**以此來提高檢測效率。

關(guān)于AdaBoost算法,我就不展開介紹了,有興趣的同學(xué)可以自己查找相關(guān)資料進(jìn)行學(xué)習(xí)。以后有時間我再對其進(jìn)行詳細(xì)的介紹。

(4)適用范圍

適用于“基本剛性”的物體檢測,如臉、汽車、人體和自行車等等。

(5)總結(jié)

Viola-Jones目標(biāo)檢測框架的核心思想是通過滑動窗口掃描圖像(多尺度的掃描),然后將每個窗口的Haar特征值輸入到篩選式的級聯(lián)分類器中來判斷該窗口內(nèi)是否含有目標(biāo)物體以實(shí)現(xiàn)目標(biāo)檢測。

具體實(shí)現(xiàn)

OpenCV中內(nèi)置了基于Viola-Jones目標(biāo)檢測框架的Haar分類器,并提供了貓臉檢測預(yù)訓(xùn)練好的模型。因此實(shí)現(xiàn)起來十分簡單。

具體實(shí)現(xiàn)過程詳見相關(guān)文件中的源代碼。

效果演示

使用方式:

修改源代碼中的圖片名為自己需要檢測的圖片:

圖片

在cmd窗口運(yùn)行DetectCatFace.py文件即可。

效果:

原圖1:

圖片

檢測結(jié)果1:

圖片

原圖2:

圖片

檢測結(jié)果2(并不能很好地區(qū)分狗狗和貓咪):

圖片

到此這篇關(guān)于Python實(shí)戰(zhàn)之OpenCV實(shí)現(xiàn)貓臉檢測的文章就介紹到這了,更多相關(guān)OpenCV實(shí)現(xiàn)貓臉檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python完成哈夫曼樹編碼過程及原理詳解

    Python完成哈夫曼樹編碼過程及原理詳解

    這篇文章主要介紹了Python完成哈夫曼樹編碼過程及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python安裝Graphviz超詳細(xì)圖文教程

    Python安裝Graphviz超詳細(xì)圖文教程

    這篇文章主要介紹了Python安裝Graphviz超詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • python實(shí)現(xiàn)兩個文件合并功能

    python實(shí)現(xiàn)兩個文件合并功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)兩個文件合并功能,一個簡單的文件合并程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python?面向?qū)ο笾甤lass和封裝

    python?面向?qū)ο笾甤lass和封裝

    這篇文章主要為大家介紹了python?class和封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 用Python實(shí)現(xiàn)最速下降法求極值的方法

    用Python實(shí)現(xiàn)最速下降法求極值的方法

    今天小編就為大家分享一篇用Python實(shí)現(xiàn)最速下降法求極值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python對輸出的奇數(shù)偶數(shù)排序?qū)嵗a

    python對輸出的奇數(shù)偶數(shù)排序?qū)嵗a

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python對輸出的奇數(shù)偶數(shù)排序?qū)嵗a內(nèi)容,有興趣的朋友們可以參考下。
    2020-12-12
  • 解決python3報錯之takes?1?positional?argument?but?2?were?given問題

    解決python3報錯之takes?1?positional?argument?but?2?were?gi

    這篇文章主要介紹了解決python3報錯之takes?1?positional?argument?but?2?were?given問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • python實(shí)現(xiàn)飛船游戲的縱向移動

    python實(shí)現(xiàn)飛船游戲的縱向移動

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛船游戲的縱向移動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 在Python中獲取操作系統(tǒng)的進(jìn)程信息

    在Python中獲取操作系統(tǒng)的進(jìn)程信息

    今天小編就為大家分享一篇在Python中獲取操作系統(tǒng)的進(jìn)程信息,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python微信撤回監(jiān)測代碼

    python微信撤回監(jiān)測代碼

    這篇文章主要為大家詳細(xì)介紹了python微信撤回監(jiān)測代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04

最新評論