最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python-cv2實現(xiàn)Harr+Adaboost人臉識別的示例

 更新時間:2020年10月27日 08:36:18   作者:逐夢er  
這篇文章主要介紹了使用python-cv2實現(xiàn)Harr+Adaboost人臉識別的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Haar特征

哈爾特征使用檢測窗口中指定位置的相鄰矩形,計算每一個矩形的像素和并取其差值。然后用這些差值來對圖像的子區(qū)域進行分類。

haar特征模板有以下幾種:

在這里插入圖片描述

以第一個haar特征模板為例

在這里插入圖片描述

計算方式

1.特征 = 白色 - 黑色(用白色區(qū)域的像素之和減去黑色區(qū)域的象征之和)

2.特征 = 整個區(qū)域 * 權(quán)重 + 黑色 * 權(quán)重

使用haar模板處理圖像

從圖像的起點開始,利用haar模板從左往右遍歷,從上往下遍歷,并設置步長,同時考慮圖像大小和模板大小的信息

假如我們現(xiàn)在有一個 1080 * 720 大小的圖像,10*10 的haar模板,并且步長為2,那么我我們所需要的的計算量為: (1080 / 2 * 720 / 2) * 100 * 模板數(shù)量 * 縮放 約等于50-100億,計算量太大。

積分圖

使用積分圖可大量減少運算時間,實際上就是運用了前綴和的原理

在這里插入圖片描述

Adaboost分類器

Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)。

算法流程

該算法其實是一個簡單的弱分類算法提升過程,這個過程通過不斷的訓練,可以提高對數(shù)據(jù)的分類能力。整個過程如下所示:

1. 先通過對N個訓練樣本的學習得到第一個弱分類器;
2. 將分錯的樣本和其他的新數(shù)據(jù)一起構(gòu)成一個新的N個的訓練樣本,通過對這個樣本的學習得到第二個弱分類器 ;
3. 將1和2都分錯了的樣本加上其他的新樣本構(gòu)成另一個新的N個的訓練樣本,通過對這個樣本的學習得到第三個弱分類器;
4. 最終經(jīng)過提升的強分類器。即某個數(shù)據(jù)被分為哪一類要由各分類器權(quán)值決定。

我們需要從官網(wǎng)下載倆個Adaboost分類器文件,分別是人臉和眼睛的分類器:
下載地址:https://github.com/opencv/opencv/tree/master/data/haarcascades

在這里插入圖片描述

在這里插入圖片描述

代碼實現(xiàn)

實現(xiàn)人臉識別的基本步驟:

1.加載文件和圖片
2.進行灰度處理
3.得到haar特征
4.檢測人臉
5.進行標記

我們使用cv2.CascadeClassifier()來加載我們下載好的分類器。

然后我們使用detectMultiScale()方法來得到識別結(jié)果

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 1.加載文件和圖片 2.進行灰度處理 3.得到haar特征 4.檢測人臉 5.標記

face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('img.png')
cv2.imshow('img', img)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 1.灰色圖像 2.縮放系數(shù) 3.目標大小
faces = face_xml.detectMultiScale(gray, 1.3, 5)
print('face = ',len(faces))
print(faces)
#繪制人臉,為人臉畫方框
for (x,y,w,h) in faces:
  cv2.rectangle(img, (x,y), (x + w, y + h), (255,0,0), 2)
  roi_face = gray[y:y+h,x:x+w]
  roi_color = img[y:y+h,x:x+w]
  eyes = eye_xml.detectMultiScale(roi_face)
  print('eyes = ',len(eyes))
  for (ex,ey,ew,eh) in eyes:
    cv2.rectangle(roi_color, (ex,ey),(ex + ew, ey + eh), (0,255,0), 2)
cv2.imshow('dat', img)
cv2.waitKey(0)
face = 1
[[133 82 94 94]]
eyes = 2

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于使用python-cv2實現(xiàn)Harr+Adaboost人臉識別的示例的文章就介紹到這了,更多相關(guān)python cv2 人臉識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中字典常用操作的示例詳解

    Python中字典常用操作的示例詳解

    字典是Python必用且常用的數(shù)據(jù)結(jié)構(gòu),本文主要為大家梳理了一下常用的字典操作:初始化、合并字典、字典轉(zhuǎn)Pandas等,需要的可以參考一下
    2022-05-05
  • Python數(shù)據(jù)類型詳解(三)元祖:tuple

    Python數(shù)據(jù)類型詳解(三)元祖:tuple

    本文給大家介紹的是Python數(shù)據(jù)類型中的元祖(tuple),簡單的說Tuple,與列表一樣,元素也是不可變的,但與列表不同,在一個元祖可以包含不同類型的元素
    2016-05-05
  • Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式

    Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式

    這篇文章主要介紹了Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python進行密碼學反向密碼教程

    Python進行密碼學反向密碼教程

    這篇文章主要為大家介紹了Python進行密碼學反向密碼的教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python PyAutoGUI實現(xiàn)自動化任務應用場景示例

    Python PyAutoGUI實現(xiàn)自動化任務應用場景示例

    這篇文章主要為大家介紹了Python PyAutoGUI實現(xiàn)自動化任務應用場景示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 通過Python 接口使用OpenCV的方法

    通過Python 接口使用OpenCV的方法

    下面小編就為大家分享一篇通過Python 接口使用OpenCV的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 基于Python實現(xiàn)一個圖片壓縮工具

    基于Python實現(xiàn)一個圖片壓縮工具

    圖片壓縮是在保持圖像質(zhì)量的同時減小圖像文件大小的過程,本文將學習如何使用Python來實現(xiàn)一個簡單但功能強大的圖片壓縮工具,以及如何在不同情境下進行圖片壓縮,希望對大家有所幫助
    2024-01-01
  • python中pass語句用法實例分析

    python中pass語句用法實例分析

    這篇文章主要介紹了python中pass語句用法,對比C++程序?qū)嵗治隽藀ass語句的使用方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Django細致講解多對多使用through自定義中間表方法

    Django細致講解多對多使用through自定義中間表方法

    我們在開發(fā)網(wǎng)站的時候,無可避免的需要設計實現(xiàn)網(wǎng)站的用戶系統(tǒng),我們需要實現(xiàn)包括用戶注冊、用戶登錄、用戶認證、注銷等功能,Django作為完美主義終極框架,它默認使用auth_user表來存儲用戶數(shù)據(jù),下面我們來看看Django多對多使用through自定義中間表
    2022-06-06
  • python和C語言混合編程實例

    python和C語言混合編程實例

    這篇文章主要介紹了python和C語言混合編程實例,文中開發(fā)了一個tcp端口ping程序來介紹混合編程,需要的朋友可以參考下
    2014-06-06

最新評論

连城县| 图片| 东宁县| 安图县| 铜鼓县| 鸡泽县| 大冶市| 小金县| 芒康县| 靖远县| 来凤县| 新干县| 西林县| 乐昌市| 百色市| 内江市| 巴塘县| 安顺市| 凯里市| 扎囊县| 灵山县| 监利县| 上高县| 达拉特旗| 呈贡县| 富顺县| 婺源县| 乌拉特后旗| 柏乡县| 历史| 武功县| 郸城县| 虹口区| 江达县| 福建省| 安徽省| 长春市| 喜德县| 岱山县| 墨脱县| 满城县|