基於python+OpenCV模塊的人臉識別定位技術

2020-12-05 小橋談編程

什麼是OpenCV模塊

OpenCV是一款跨平臺的視覺庫,可以支持的作業系統有Linux、Windows和Mac OS作業系統,並且還提供了多種語言的接口,比如Python,java,MATLAB等常用語言。

本文將基於OpenCV模塊,在windows作業系統上,利用python語言,進行人臉識別技術的研究。

當然OpenCV的應用領域很廣,除了人臉識別之外,它還支持圖像分割、動作識別、視頻處理等技術。

首先看一下實現的效果:

OpenCV模塊的下載與安裝

OpenCV模塊下載安裝很簡單。找到模塊:

其中,OpenCV模塊有很多種類,選擇OpenCV+Python+contrib模塊,其中c37表示Python3.7版本,win_amd64表示windows64位作業系統。

安裝藉助pip命令:pip install+文件路徑+文件名,比如:

我的電腦已經安裝了,所以顯示已經存在該模塊。

代碼分析

下面我們對代碼進行分析,代碼如圖所示:

一共不超過15行,當然這是建立在別人已有的數據上做的,如果自己寫的話,不會這麼簡單,我們這只是調用了別人的接口,而這個接口是開源的,共享的。

代碼第1行導入opencv模塊。代碼的第3行(以上圖為準,空行也算一行),導入別人已經訓練好的臉部識別資料庫。這裡用到的數據是在github上開源的已經訓練好的分類器,如圖所示:

需要將對應的數據文件(.xml文件)下載到指定目錄(代碼中的示例,展示的是與.py文件同一目錄下)。第4行的函數cv2.VideoCapture(0)表示調用相機。第6行是讀取攝像機中的影像。其中frame是讀取的每一幀圖像。第7行表示將彩色圖像轉變為灰度圖像。第8行是對灰度圖像中的人臉進行識別定位,返回值為坐標信息。第10行畫出矩形框。第11行展示出圖像。第12行表示按鍵盤上的「q」鍵退出while true循環。14行和15行釋放攝像機,關閉窗口。

其實代碼最核心的一句就是第8行,對人臉進行識別定位,但是這一步,我們通過直接調用別人已經訓練好的資料庫,一步完成了。

效果圖在前文已經給出。下面我們再給出一幅圖片多個人臉識別的效果圖。

其中,代碼多出的最後一行,是為了避免圖片一閃而過。其他的代碼類似上一個案例。

眼睛的識別定位

先看一下效果圖:

素材圖片來源於百度。

看一下代碼:

可以看到這是我們用到的訓練數據為'haarcascade_eye.xml',從而實現對眼睛的識別定位。

總結

本文結合OpenCV模塊,利用python語言,在windows64平臺下完成對人臉識別定位技術的介紹。希望對你的學習有所幫助,謝謝!

相關焦點

  • 基於OpenCv 和 Python 的手指識別及追蹤
    雷鋒網按:本文為 AI 研習社編譯的技術博客,原標題 Finger Detection and Tracking using OpenCV and Python,作者為Jason Brownlee。翻譯 | 餘杭 Lamaric 校對 | 吳曉曼 審核 | 餘杭詳細代碼參考:https://github.com/amarlearning/opencv手指追蹤是許多計算機視覺應用的重要特徵。在該應用中,使用基於直方圖的方法將手與背景幀分離。
  • 如何快速簡單的安裝opencv-python
    這樣就會從清華鏡像安裝opencv-contrib-python庫。目前opencv最新版本為4.1.1 ----2019-8-28在opencv-contrib-python 版本中含有額外模塊( Extra modules ),而 opencv-python 版本中只含有基礎模塊。
  • 一種基於OpenCV的人臉識別設計方案
    人臉識別的研究可以追溯到上個世紀六、七十年代,經過幾十年的曲折發展已日趨成熟,構建人臉識別系統需要用到一系列相關技術,包括人臉圖像採集、人臉定位、人臉識別預處理、身份確認以及身份查找等 .而人臉識別在基於內容的檢索、數字視頻處理、視頻檢測等方面有著重要的應用價值,可廣泛應用於各類監控場合,因此具有廣泛的應用前景。OpenCV是Intel 公司支持的開源計算機視覺庫。
  • 世界上最好的語言PHP:OpenCV與計算機視覺已在我掌控之下
    本文從實踐的角度介紹了如何使用 PHP 與 OpenCV 構建人臉檢測、人臉識別、超解析度與目標檢測等系統,因此 PHP 的各位擁躉們,可以盡情使用 OpenCV 探索計算機視覺了。本文首發於公眾號機器之心(ID:almosthuman2014),部分代碼格式有誤可參閱原文章。
  • 基於深度學習的人臉識別技術全解
    也就是在一張人臉圖像之中,系統會精準的定位出人臉的位置和大小,在挑選出有用的圖像信息的同時自動剔除掉其他多餘的圖像信息來進一步的保證人臉圖像的精準採集。 人臉檢測是人臉識別中的重要組成部分。人臉檢測是指應用一定的策略對給出的圖片或者視頻來進行檢索,判斷是否存在著人臉,如果存在則定位出每張人臉的位置、大小與姿態的過程。
  • 人臉識別技術原理與實現方式
    本文將為大家從人臉檢測、人臉定位、人臉校準以及人臉對比等方面詳細闡述人臉識別的原理與實現方式。   隨著計算機技術以及光學成像技術的發展,集成了人工智慧、機器學習、視頻圖像處理等技術的人臉識別技術也逐漸成熟。未來五年,我國人臉識別市場規模平均複合增長率將達到25%,到2021年人臉識別市場規模將達到51億元左右,具有巨大的市場需求與前景。
  • 什麼是SeetaFace開源人臉識別引擎?
    為實現此目的,一種可能的技術手段是通過對人臉的光學成像來感知人、識別人,即所謂的人臉識別技術。經過幾十年的研發積累,特別是近年來深度學習技術的湧現,人臉識別取得了長足的進步,在安防、金融、教育、社保等領域得到了越來越多的應用,成為計算機視覺領域最為成功的分支領域之一。
  • 使用OpenCV和Python構建自己的車輛檢測模型
    utm_source=blog&utm_medium=vehicle-detection-opencv-python)利用深度學習的計算機視覺(https://courses.analyticsvidhya.com/courses/computer-vision-using-deep-learning-version2?
  • 基於opencv 的圖像處理入門教程
    /代碼和樣例圖片的地址:https://github.com/ccc013/CodesNotes/tree/master/opencv_noteshttps://github.com/ccc013/CodesNotes/blob/master/opencv_notes/opencv_image_process_tutorial.ipynb
  • 以SVM和HOG特性實現實時人臉檢測和識別
    人臉識別(face recognition)是機器學習領域中最受歡迎的技術之一。最近,該技術的使用案例已經從政府安全系統的特定監視應用擴展到多個產業的更廣泛應用,例如使用者的識別和認證、消費者體驗、健康和廣告。
  • OpenCV中的快速直線檢測
    cv::ximgproc::FastLineDetectors是opencv-contrib中用於檢測直線的模塊,該方法能在較短時間內獲得精度較高的直線檢測結果
  • opencv-python獲取圖像:面向對象與面向過程
    這裡需要注意以下,opencv讀取圖片默認通道為BGR的格式,當在其他UI用戶界面顯示圖像時注意轉換一下通道順序,例如BGR轉換成RGB:Image1=cv2.cvtColor(image, cv2.COLOR_BGR2RGB)下面讀取一張圖片並顯示
  • 人臉識別技術理論
    人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。
  • 人臉識別技術在考勤的應用
    近年來,人臉識別技術發展迅猛,識別精度和速度不斷的得到提升,在眾多領域的應用裡都能「大展身手」使人眼前一亮,觸不及防。 首先,我們來了解一下什麼是人臉識別技術?人臉識別技術是指利用分析比較的計算機技術識別人臉。人臉識別是一項熱門的計算機技術研究領域,其中包括人臉追蹤偵測,自動調整影像放大,夜間紅外偵測,自動調整曝光強度等技術。
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    實時和視頻目標識別都可以在我的個人筆記本電腦上以高性能運行,僅使用 8GB CPU。Docker在數據科學中的應用我不在這裡描述 Tensorflow 目標檢測 API 的實現,因為相關的文檔很多。我將展示數據科學家在日常工作中如何使用 Docker。
  • 人臉識別技術風險的法律防範
    弱人工智慧向強人工智慧的轉化  人臉識別技術(Face Identification Technology)是基於人的臉部特徵,用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術
  • 人臉識別核心算法及技術解析
    1、在檢測到人臉並定位面部關鍵特徵點之後,主要的人臉區域就可以被裁剪出來,經過預處理之後,饋入後端的識別算法。識別算法要完成人臉特徵的提取,並與庫存的已知人臉進行比對,完成最終的分類。我們在這方面的主要工作包括:本文引用地址:http://www.eepw.com.cn/article/201710/368495.htm  · 基於LGBP的人臉識別方法  問題:  統計學習目前已經成為人臉識別領域的主流方法,但實踐表明,基於統計學習的方法往往會存在「推廣能力弱」的問題
  • 用Python寫個簡單但強大的人臉識別系統
    1、定位圖像中的人臉def demoFunc():      '''      在一張包含人臉的圖片中圈出來人臉      '''      image = face_recognition.load_image_file("test.jpg")      face_locations = face_recognition.face_locations(image)
  • 微軟研究院大咖張正友:什麼是人臉表情識別技術?大牛講堂
    人臉表情識別(FER)作為智能化人機互動技術中的一個重要組成部分,近年來得到了廣泛的關注,湧現出許多新方法。人臉表情識別(FER)系統由人臉檢測、表情特徵提取和表情分類組成。地平線《大牛講堂》有幸請到了世界著名計算機視覺和多媒體技術專家,微軟研究院視覺技術組高級研究員張正友博士,來與大家分享「基於幾何與Gabor小波的多層感知表情識別」和「基於特徵的識別」兩項面部表情識別技術。
  • 結構光、TOF、紅外雙攝,哪個才是手機上最安全的人臉識別技術?
    蘋果自iPhone X開始,引入了基於結構光的人臉識別技術,較高的安全性與識別率,標誌著手機人臉識別技術的成熟。同一時間個安卓廠家也在紛紛跟進,不過近兩年似乎除了蘋果一家在堅持,其他廠家都把重心再次轉回到指紋識別。