日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

OpenCV3计算机视觉+Python(五)

發布時間:2025/4/9 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV3计算机视觉+Python(五) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

人臉檢測和識別

本章將介紹Haar級聯分類器,通過對比分析相鄰圖像區域來判斷給定圖像或子圖像與已知對象是否匹配。本章將考慮如何將多個Haar級聯分類器構成一個層次結構,即一個分類器能識別整體區域(如人臉),而其他的分類器可識別小的區域(眼睛、鼻子和嘴)。

Haar級聯的概念

當談到目標分類和位置跟蹤時,希望精確定位什么?什么才是目標的可識別部分?

攝影作品(甚至是來自網絡攝像頭的圖像)可能包含很多令人愉悅的細節。但是,由于燈光、視角、視距、攝像頭抖動以及數字噪聲的變化,圖像細節變得不穩定。人們在分類時不會受這些物理細節方面差異的影響。

提取出圖像的細節對產生穩定分類結果和跟蹤結果很有用。這些提取的結果被稱為特征,專業的表述為:從圖像數據中提取特征。雖然任意像素都可能影響多個特征,但特征應該比像素數少得多。兩個圖像的相似程度可以通過它們對應特征的歐式距離來度量。

例如,距離可能以空間坐標或顏色坐標來定義。類Haar特征是一種用于實現實時人臉跟蹤的特征。文獻《Robust Real-Time Face Detection,Paul Viola and Michael Jones,Kluwer Academic Publishers,2001》首次采用這種特征來進行人臉檢測。每個類Haar特征都描述了相鄰圖像區域的對比模式。例如,邊、頂點和細線都能生成具有判別性的特征。

對給定的圖像,特征可能會因區域大小而有所不同,區域大小也可被稱為窗口大小。即使窗口大小不一樣,僅在尺度上不同的兩幅圖像也應該有相似的特征。因此,能為不同大小的窗口生成特征非常有用。這些特征集合稱為級聯。Haar級聯具有尺度不變性,換句話說,它在尺度變化上具有魯棒性。OpenCV提供了尺度不變Haar級聯的分類器和跟蹤器,并可將其保存成指定的文件格式。

OpenCV的Haar級聯不具有旋轉不變性。例如,Haar級聯不認為倒置的人臉圖像和直立的人臉圖像一樣,而側面的人臉圖像與正面的人臉圖像也不一樣。更可通過多種圖像變換和多種窗口大小來提高Haar級聯的旋轉魯棒性,但這樣會變得很復雜,而且會耗費更多計算資源。

獲取Haar級聯數據

在OpenCV3源代碼的副本中會有一個文件夾data/haarcascades.該文件夾包含了所有OpenCV的人臉檢測的XML文件,并將haarcascades文件夾中的所有文件復制到cascades文件夾中:

haarcascade_profileface.xml

haarcascade_righteye_2splits.xml

haarcascade_russian_plate_number.xml

haarcascade_smile.xml

haarcascade_upperbody.xml

從文件名可知這些級聯是用于人臉、眼睛、鼻子和嘴的跟蹤。這些文件需要正面、直立的人臉圖像。在稍后創建人臉檢測器時會使用這些文件。有了很大的耐心以及強大的計算機,就可以創建自己的級聯,并訓練這些級聯來檢測各種對象。

使用OpenCV進行人臉檢測

在靜態圖像或視頻中檢測人臉的操作非常相似。視頻人臉檢測只是從攝像頭讀出每幀圖像,然后采用靜態圖像中的人臉檢測方法進行檢測。當然,視頻人臉檢測還涉及其他的概念,例如跟蹤,而靜態圖像中的人臉檢測就沒有這樣的概念,但它們基本理論是一致的。

靜態圖像中的人臉檢測

人臉檢測首先是加載圖像并檢測人臉,這也是最基本的一步。為了使所得到的結果有意義,可在原始圖像的人臉周圍繪制矩形框。

現在,項目中已經包含了haarcascades文件夾的內容,下面創建一個基本的腳本來實現人臉檢測。

import cv2 filename='3.jpg' def detect(filename):face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')face_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_frontalface_default.xml')img=cv2.imread(filename)gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)faces=face_cascade.detectMultiScale(gray,1.3,5)for (x,y,w,h) in faces:img=cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)cv2.namedWindow('Vikings Detected')cv2.imshow('Vikings Detected',img)cv2.waitKey()detect(filename)

注意:

face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

face_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_frontalface_default.xml')

該變量為CascadeClassifier對象

face_cascade.detectMultiScale傳遞參數是scaleFactor和minNeighbors,它們分別表示人臉檢測過程中每次迭代時圖像的壓縮率以及每個人臉矩形保留近鄰數目的最小值。

檢測操作的返回值為人臉矩形數組。函數cv2.rectangle允許通過坐標來繪制矩形(x和y表示左上角的坐標,w和h表示人臉矩形的寬度和高度)

通過依次提取faces變量中的值來找到人臉,并在人臉周圍繪制藍色矩形,這是在原始圖像而不是圖像的灰色版本上進行繪制。


視頻中的人臉檢測

在視頻的幀上重復這個過程就能完成視頻(如攝像頭的輸入或視頻文件)中的人臉檢測。

該腳本將執行以下任務:打開攝像頭,讀取幀,檢測幀中的人臉,掃描檢測到的人臉中的眼睛,對人臉繪制藍色的矩形框,對眼睛繪制綠色的矩形框。

import cv2 def detect():face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')eye_cascade=cv2.CascadeClassifier('haarcascade_eye.xml')face_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_frontalface_default.xml')eye_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_eye.xml')camera=cv2.VideoCapture(0)while(True):ret,frame=camera.read()gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)faces=face_cascade.detectMultiScale(gray,1.3,5)for (x,y,w,h) in faces:img=cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)roi_gray=gray[y:y+h,x:x+w]eyes=eye_cascade.detectMultiScale(roi_gray,1.03,5,0,(40,40))for (ex,ey,ew,eh)in eyes:cv2.rectangle(img,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)cv2.imshow("camera",frame)camera.release()cv2.destroyAllWindows() if __name__=="__main__":detect()

首先用detect函數加載Haar級聯文件,由此可以執行人臉檢測。

然后打開一個VideoCapture目標(初始化攝像頭)。VideoCapture構造函數的參數用來表示要使用的攝像頭

接下來捕獲幀。read()函數會返回兩個值:第一個值為布爾值,用來表明是否成功讀取幀,第二個值為幀本身。捕捉到幀后,將其轉換為灰度圖像。這個操作很有必要。

與靜態圖像的例子一樣,對具有灰度色彩空間的幀調用detectMultiScale

在眼睛檢測中還有另外幾個參數,因為眼睛是在確定了人臉的基礎上,在比較小的圖像上確定眼睛。

同樣用循環輸出檢測眼睛的結果,并在其周圍繪制綠色的矩形框

人臉識別

人臉檢測是OpenCV的一個很不錯的功能,它是人臉識別的基礎。什么是人臉識別?其實就是一個程序能識別給定圖像或視頻中的人臉。實現這一目標的方法之一(OpenCV也采用這種方法)是用一系列分好類的圖像(人臉數據庫)來訓練程序,并基于這些圖像來進行識別。

這就是OpenCV及其人臉識別模塊進行人臉識別的過程。

人臉識別模塊的另一個重要特征是:每個識別都具有轉置信評分,因此可在實際應用中通過對其設置閾值來進行篩選。

人臉識別所需要的人臉可以通過兩種方式來得到:自己獲得圖像或從人臉數據庫免費獲得可用的人臉圖像

1.生成人臉識別數據

下面繼續介紹生成圖像的腳本。這里需要一些包含不同表情的圖像,但是,必須確保樣本圖像滿足如下條件:

1)圖像是灰度格式,后綴名為.pgm

2)圖像形狀為正方形

3)圖像大小要一樣

import cv2 def generate():face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')eye_cascade=cv2.CascadeClassifier('haarcascade_eye.xml')face_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_frontalface_default.xml')eye_cascade.load('C:/Users/yif/Anaconda3/envs/tensorflow/Lib/site-packages/opencv_python-3.4.0.dist-info/haarcascades/haarcascade_eye.xml')camera=cv2.VideoCapture(0)count=0while(True):ret,frame=camera.read()gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)faces=face_cascade.detectMultiScale(gray,1.3,5)for (x,y,w,h)in faces:img=cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)f=cv2.resize(gray[y:y+h,x:x+w],(200,200))cv2.imwrite('./data/%s.pgm'%str(count),f)count+=1cv2.imshow("camera",frame)if (cv2.waitKey(int(1000/12)))&(0xff==ord("q")):breakcamera.release()cv2.destroyAllWindows() if __name__=="__main__":generate()


2.人臉識別

OpenCV3有三種人臉識別的方法,它們分別基于三種不同的算法:Eigenfaces、Fisherfaces和Local Binary Pattern

轉載于:https://www.cnblogs.com/yifdu25/p/8447694.html

總結

以上是生活随笔為你收集整理的OpenCV3计算机视觉+Python(五)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美在线视频免费 | 国产黄视频网站 | 国产女主播喷水高潮网红在线 | 97国产精东麻豆人妻电影 | 玖玖在线播放 | 成人网页在线观看 | 99re热在线视频 | 国产日韩视频一区 | 吊视频一区二区三区 | 精品午夜福利视频 | 免费一级黄 | 射综合网 | mdyd—856冲田杏梨在线 | 亚洲日本成人在线观看 | 欧美一区在线视频 | 国产污污网站 | 国产免费美女 | 法国空姐在线观看完整版 | 成人片片 | 91国偷自产一区二区三区观看 | 欧美日韩少妇精品 | 欧美一级在线观看视频 | 国产99久 | 肥臀熟女一区二区三区 | 美女被男人桶出白浆喷水 | 久久久经典 | 岛国片在线免费观看 | 欧美黄页在线观看 | 性欧美色图 | 欧美猛操 | 欧美专区在线播放 | 免费毛片一区二区三区久久久 | www.亚洲黄色| 一二三区不卡 | 中文在线免费视频 | 亚洲欧美日韩网站 | 97精品国产| 精品动漫3d一区二区三区免费版 | 激情午夜影院 | 亚洲精品喷潮一区二区三区 | 国产精品每日更新 | 国产精品久久亚洲7777 | 91成人免费视频 | 伊人影院亚洲 | 色男人的天堂 | 91视频com| 久久久久久久久久久久久久av | 国精产品一区一区三区mba下载 | 污视频网址在线观看 | 国产精品一区二区三区在线看 | 亚洲色图首页 | 成人无码久久久久毛片 | 91pao| 全肉的吸乳文 | 五月婷婷丁香久久 | 香蕉福利 | 国产性猛交xxxⅹ交酡全过程 | 狠狠人妻久久久久久综合 | 稀缺小u女呦精品呦 | 免费a在线观看 | jvid视频| 亚洲精品日本 | 打屁股调教视频 | 老鸭窝一区二区 | 中文字幕av解说 | 成人字幕 | 电家庭影院午夜 | 成人黄色av网址 | 日韩视频h | 日韩一区二区视频 | 欧美三极片 | 18久久| 91视频看看 | 奇米色综合 | 中文字幕一区二区人妻电影丶 | 亚洲大尺度在线 | 男人插女人网站 | 男人天堂免费视频 | 欧美精选一区二区 | av地址在线 | 理论片高清免费理伦片 | 亚洲av色区一区二区三区 | 亚洲欧美日韩成人在线 | 欧美人与性囗牲恔配 | 这里只有精品久久 | 91精产品一区观看 | 国产精品一区二区6 | 美女又爽又黄 | 少妇视频一区 | 香蕉在线观看 | 丝袜 亚洲 另类 国产 制服 | 夜夜操影院 | 亚洲天码中字 | www.色就是色 | 久久精品系列 | 国产成人在线影院 | 中国浓毛少妇毛茸茸 | 国产99爱| 亚洲涩涩 |