• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Linux下OpenCV的人臉識別模塊設(shè)計

      2018-09-17 05:20:34金笑雪張琳琳高丹張黎
      計算機(jī)時代 2018年7期
      關(guān)鍵詞:研究價值計算機(jī)視覺圖像識別

      金笑雪 張琳琳 高丹 張黎

      摘 要: 近年來,圖像識別技術(shù)正在向更加直觀、可靠的方向發(fā)展,其中人臉識別技術(shù)具有極高的研究價值,應(yīng)用得也最為廣泛。通過對Linux系統(tǒng)下OpenCV的研究,利用OpenCv Python3.4設(shè)計出一個圖像識別系統(tǒng),實(shí)現(xiàn)了圖像處理,人臉檢測的功能。該系統(tǒng)可以作為后續(xù)對人像分析、人像理解和人臉特征識別研究的基礎(chǔ)。

      關(guān)鍵詞: 計算機(jī)視覺; Linux; 圖像識別; OpenCV; 人臉識別算法; 研究價值

      中圖分類號:TP391.4 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2018)07-64-03

      Abstract: In recent years, image recognition technologies are developing to a more intuitive and reliable direction, among them the face recognition technology has a high research value and is used most widely. Through the research on Linux OpenCV, an image recognition system is designed by using OpenCv Python3.4, and the functions of image processing and face detection are realized. The system can be used as the basis for subsequent research on portrait analysis, portrait understanding and face feature recognition.

      Key words: computer vision; Linux; image recognition; OpenCV; face recognition algorithm; research value

      0 引言

      計算機(jī)視覺技術(shù)日臻成熟,現(xiàn)已成為教育、醫(yī)療、軍事等人工智能領(lǐng)域中不可或缺的一部分,其與圖像處理、模式識別等多種學(xué)科的研究有十分緊密的聯(lián)系。計算機(jī)視覺技術(shù)是一種可實(shí)現(xiàn)人機(jī)交互的智能化工具,包括了圖像采集技術(shù)、識別技術(shù)、處理技術(shù)、恢復(fù)技術(shù)等[2]。通過這些技術(shù)實(shí)現(xiàn)對目標(biāo)進(jìn)行提取、分類、識別、追蹤、統(tǒng)計決策的功能[3]。它還能夠描述多種空間形式、建立幾何模型、實(shí)現(xiàn)圖像理解[4]。圖像是一種可視化的信息,圖像信號是圖像信息的理論描述方法[5],在這個信息需求日益增長的時代,通過識別圖像的方式可以更加直觀、高效的解決問題。本文提到的人臉識別過程是利用代碼調(diào)用攝像頭進(jìn)行拍照,即人臉圖像采集,而后進(jìn)行圖像預(yù)處理、圖像特征提取以及匹配與識別,從而達(dá)到人臉識別的目的,在圖像識別方面具有重要的實(shí)用價值與研究意義。

      1 認(rèn)識Linux系統(tǒng)

      Linux操作系統(tǒng)誕生于1991年,是一種由類UNIX操作系統(tǒng)逐步發(fā)展而來的一種克隆系統(tǒng),Linux提供了一個完整的操作系統(tǒng)當(dāng)中最底層的硬件控制與資源管理的完整架構(gòu)[6],這種架構(gòu)使它的性能更穩(wěn)定。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。Linux是Open Source的操作系統(tǒng),所以它的程序代碼可以被修改后移植到各種機(jī)器上運(yùn)行,因此,Linux以它的高效性和靈活性而被廣大用戶所喜愛,可滿足多位用戶完成多種任務(wù)的需求。

      2 走進(jìn)OpenCV

      2.1 OpenCV簡介

      OpenCV是一個基于開源發(fā)行的跨平臺計算機(jī)視覺庫,可以在多種常見的操作系統(tǒng)上運(yùn)行[7],該庫包含大量的C/C++、Python、Ruby、Java和MATLAB/OCTAVE接口[8],靈活且高效。OpenCV的結(jié)構(gòu)包含以下幾個模塊:

      它的應(yīng)用領(lǐng)域也十分廣泛,包括產(chǎn)品檢測,醫(yī)學(xué)成像,圖像分區(qū),軌跡跟蹤,機(jī)器人等等,而本文所應(yīng)用的就是它的圖像識別功能,OpenCv擁有大量的函數(shù)可以應(yīng)用在圖像識別功能方面。

      2.2 基于OpenCV人臉識別的三種算法

      2.2.1 Eigenfaces createEigenFaceRecognizer()

      特征臉(Eigenfaces)算法指視覺中進(jìn)行人臉識別時使用的特征向量,它是基于PCA用于一般性剛體識別以及人臉識別的描述技術(shù)[9],其識別的過程就是將人臉圖像進(jìn)行編碼,把人臉從像素空間映射到低維子空間上,在另一個空間中計算兩幅人臉圖像之間的距離,從而成功實(shí)現(xiàn)人臉識別。

      2.2.2 Fisherfaces createFisherFaceRecognizer()

      Fisherface基于線性判別分析[10],它與上文所說的PCA類似,這兩種方法都是將數(shù)據(jù)降至低維度空間處理的方法,具體操作是在Fisher判別準(zhǔn)則函數(shù)取得極值的條件下,求得一個最佳判別方向,然后再將模式高維特征向量投影到該最佳判別方向上,構(gòu)成一個一維的判別特征空間,人臉識別就可以在這個一維的空間中進(jìn)行。

      2.2.3 Local Binary Patterns Histograms createLBPHFaceRecognizer()

      LBP(local binary pattern)是局部二值模式,它是一種具有灰度不變性和旋轉(zhuǎn)不變性并且用來描述圖像局部特征的算子。該算子將人臉分成幾個子圖像然后進(jìn)行LBP變換,求出每個區(qū)域的LBP直方圖,并將這N個直方圖拼接成一個新的直方圖來表示人臉的特征[11]。但是,這種方法易受到噪聲的影響,如果用局部3×3的矩形進(jìn)行變換,點(diǎn)噪聲的問題就變得不明顯,不會影響檢測的性能。最后求取每個矩形內(nèi)的圖像像素和作為矩形的特征值,將每個矩形的特征值與中心矩形的特征值進(jìn)行比較,重新進(jìn)行LBP編碼,并將LBP編碼作為該局部區(qū)域的特征值,再利用分類器便可以進(jìn)行人臉檢測。

      3 Linux下OpenCV的識別應(yīng)用

      3.1 在Linux系統(tǒng)下搭建OpenCv環(huán)境

      ⑴ 使用apt-get更新樹莓派系統(tǒng)及軟件包

      sudo apt-get update

      sudo apt-get upgrade

      ⑵ 利用apt-get獲取安裝OpenCv的工具——CMake

      sudo apt-get install build-essential cmake pkg-config

      使用apt-get獲取OpenCv需要的庫文件和依賴關(guān)系。

      sudo apt-get install libjpeg-dev libtiff5-dev

      libjasper-dev libpng12-dev

      sudo apt-get install libavcodec-dev libavformat-dev

      libswcale-dev libv4l-dev

      sudo apt-get install libxvidcore-dev libx264-dev

      sudo apt-get install libgtk2.0-dev

      sudo apt-get install libatlas-base-dev gfortran

      下載OpenCv源代碼并且使用CMake編譯,使用wget在opencv官網(wǎng)下載源碼。創(chuàng)建Python虛擬環(huán)境,命名為cv,在cv下使用cmake編譯opencv并安裝,然后將安裝好的opencv庫聯(lián)接到cv虛擬環(huán)境中。具體流程如下:

      mkdir build

      cd build

      cmake -D CMAKE_BUILD_TYPE=RELEASE \

      -D CMAKE_INSTALL_PREFIX=/usr/local \

      -D INSTALL_C_EXAMPLES=ON \

      -D INSTALL_PYTHON_EXAMPLES=ON \

      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_

      contrib/modules \

      -D BUILD_EXAMPLES=ON ..

      make j4

      sudo make install

      sudo ldconfig

      3.2 通過Python利用OpenCv實(shí)現(xiàn)人臉識別

      人臉識別首先通過攝像頭拍攝捕獲圖片,并存儲圖片、定義路徑,然后對圖像進(jìn)行灰度處理從而提高運(yùn)算速率,程序框圖如圖2所示。

      參考代碼:

      from picamera import PiCamera

      import cv2

      from time import sleep

      # 在python庫中導(dǎo)入所需的模塊

      camera=PiCamera()

      # 獲取PiCamera對象camera

      while(1):

      sleep(1)

      # 程序暫停1秒,即每隔一秒獲取一次人數(shù)

      camera.capture('cam.jpg')

      # 攝像頭捕獲當(dāng)前圖像,存為cam.jpg

      imagepath='/home/pi/cam.jpg'

      # 定義圖片路徑為imagepath

      face_cascade=cv2.CascadeClassifier(r'/home/pi/Downloads/opencv-master/data/haarcascades/haarcascade_frontalface_default.xml')

      # 定義人臉識別Haar特征分類器所在路徑

      image=cv2.imread(imagepath,)

      # 根據(jù)路徑讀取該圖片為image

      gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

      # 將圖片進(jìn)行灰度轉(zhuǎn)換

      faces=face_cascade.detectMultiScale(gray,1.15,5)

      # 檢測識別圖中人臉

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

      cv2.circle(image,(x,y),(x+w,y+h),(255,0,0),2)

      cv2.imshow('Find Faces!',image)

      cv2.waitKey(0)

      # 上述注釋為實(shí)現(xiàn)人臉的代碼

      4 結(jié)束語

      本文基于Linux下OpenCV的人臉識別模塊,運(yùn)用了許多加載顯示及處理識別等多種函數(shù),實(shí)現(xiàn)了圖像處理和人臉檢測的功能。OpenCV注重速度和商業(yè)化,代碼優(yōu)化,精度高,具有實(shí)時性等諸多優(yōu)點(diǎn),可以解決多種領(lǐng)域問題。

      用計算機(jī)模擬人的視覺功能,從圖像中提取信息,對圖像的處理更加直觀化。它的發(fā)展前景十分廣闊,可以作為后續(xù)對人像分析、人像理解和人臉特征識別研究的基礎(chǔ)。這項(xiàng)技術(shù)不僅促進(jìn)了視覺研究的發(fā)展,更使計算機(jī)視覺技術(shù)開創(chuàng)了全新的紀(jì)元。

      參考文獻(xiàn)(References):

      [1] 趙榮剛,賀慶民.計算機(jī)人臉識別技術(shù)的應(yīng)用[J].電子技術(shù)與軟件工程,2018.4:137

      [2] 朱興統(tǒng),習(xí)洋洋.基于C++和OpenCV的人臉識別系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].自動化與儀器儀表,2014.8:127-128,131

      [3] 謝飛.基于計算機(jī)視覺的自動光學(xué)檢測關(guān)鍵技術(shù)與應(yīng)用研究[D].南京大學(xué)碩士學(xué)位,2013.

      [4] 王泉枝.基于計算機(jī)視覺技術(shù)的圖像識別與復(fù)原[D].天津大學(xué)碩士學(xué)位論文,2011.

      [5] 賈小軍,喻擎蒼.基于開源計算機(jī)視覺庫OpenCV的圖像處理[J].計算機(jī)應(yīng)用與軟件,2008.4:276-278

      [6] 高瑩,孫雋嬋,焦傳陽,任利峰.Linux操作系統(tǒng)的開發(fā)和應(yīng)用探索[J].產(chǎn)業(yè)與科技論壇,2018.17(1):48-89

      [7] 秋月.基于OpenCV的人臉識別系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].吉林大學(xué)碩士學(xué)位論文,2015.

      [8] 王慧琴.基于OpenCV的人臉識別的研究[J].長治學(xué)院報,2016,33(05):42-44.

      [9] 趙力莊,高文,陳熙霖.Eigenface的變維分類方法及其在表情識別中的應(yīng)用[J].計算機(jī)學(xué)報,1999.6:627-632

      [10] 陳高曙,曾慶寧.Eigenface和Fisherface用于人臉識別的性能比較[J].中國科技信息,2006.9:199-201

      [11] 何云,吳懷宇,鐘銳.基于多種LBP特征集成學(xué)習(xí)的人臉識別[J].計算機(jī)應(yīng)用研究,2018.35(1):292-295

      猜你喜歡
      研究價值計算機(jī)視覺圖像識別
      基于Resnet-50的貓狗圖像識別
      電子制作(2019年16期)2019-09-27 09:34:50
      高速公路圖像識別技術(shù)應(yīng)用探討
      圖像識別在物聯(lián)網(wǎng)上的應(yīng)用
      電子制作(2018年19期)2018-11-14 02:37:04
      圖像識別在水質(zhì)檢測中的應(yīng)用
      電子制作(2018年14期)2018-08-21 01:38:16
      廣元石窟摩崖題記的資料及其價值
      卷宗(2016年10期)2017-01-21 17:39:00
      機(jī)器視覺技術(shù)發(fā)展及其工業(yè)應(yīng)用
      危險氣體罐車液位計算機(jī)視覺監(jiān)控識別報警系統(tǒng)設(shè)計
      計算機(jī)視覺在交通領(lǐng)域的應(yīng)用
      內(nèi)蒙古民辦高校教育發(fā)展現(xiàn)狀與提升的研究價值
      亞太教育(2016年33期)2016-12-19 03:35:35
      基于計算機(jī)視覺的細(xì)小顆粒團(tuán)重量測量的研究
      大关县| 兴文县| 大英县| 淮南市| 玉环县| 安吉县| 兴海县| 上栗县| 洪泽县| 德清县| 从江县| 类乌齐县| 松原市| 从江县| 敖汉旗| 桐城市| 闵行区| 阜新市| 福安市| 南岸区| 高台县| 台中市| 九江市| 水城县| 马公市| 金阳县| 买车| 新闻| 大邑县| 鹤庆县| 银川市| 阿拉善右旗| 绥江县| 兰州市| 漯河市| 疏附县| 土默特右旗| 墨玉县| 五家渠市| 凉城县| 新竹县|