Rumah pembangunan bahagian belakang Tutorial Python Python+OpenCV人脸识别技术详解

Python+OpenCV人脸识别技术详解

Oct 18, 2016 pm 02:54 PM
muka manusia mengenalpasti

总在科幻电影里看到人脸识别,现在我们也可以编程来实现啦。哈哈~~
OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。它还提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方

面的很多通用算法。

所以总体来说OpenCV的人脸检测功能在是很不错的。

效果图如下:

1.jpg

下面我们就用python + OpenCV实现人脸识别。

开发运行环境:
Centos5.5
OpenCV
python2.7
PIL

下面上代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# face_detect.py
 
# Face Detection using OpenCV. Based on sample code from:
# http://www.pythontab.com
 
# Usage: python face_detect.py
 
import sys, os
#引入opencv库中的相应组件
from opencv.cv import *
from opencv.highgui import *
#引入PIL库
from PIL import Image, ImageDraw

from math import sqrt
 
def detectObjects(image):
    #首先把图片转换为灰度模式,以便找到人脸位置
    grayscale = cvCreateImage(cvSize(image.width, image.height), 8, 1)
    cvCvtColor(image, grayscale, CV_BGR2GRAY)
 
    storage = cvCreateMemStorage(0)
    cvClearMemStorage(storage)
    cvEqualizeHist(grayscale, grayscale)
 
    cascade = cvLoadHaarClassifierCascade(
        \'/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml\',
        cvSize(1,1))
    faces = cvHaarDetectObjects(grayscale, cascade, storage, 1.1, 2,
        CV_HAAR_DO_CANNY_PRUNING, cvSize(20,20))
 
    result = []
    for f in faces:
        result.append((f.x, f.y, f.x+f.width, f.y+f.height))
 
    return result
 
def grayscale(r, g, b):
    return int(r * .3 + g * .59 + b * .11)
 
def process(infile, outfile):
 
    image = cvLoadImage(infile);
    if image:
        faces = detectObjects(image)
 
    im = Image.open(infile)
 
    if faces:
        draw = ImageDraw.Draw(im)
        for f in faces:
            draw.rectangle(f, outline=(255, 0, 255))
 
        im.save(outfile, "JPEG", quality=100)
    else:
        print "Error: cannot detect faces on %s" % infile
 
if __name__ == "__main__":
    process(\'input.jpg\', \'output.jpg\')

代码到此结束,上面的例子看不懂,没关系,因为我们大量使用了库里面的函数和方法,如果看不懂,我们可以去网上查或者使用手册,只要借助这些看懂这段代码就ok,重要的是掌握其中的人脸识别实现思想


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1675
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Cara menambah wajah orang pada video semasa mengedit Cara menambah wajah orang pada video semasa mengedit Feb 23, 2024 pm 12:50 PM

Terdapat fungsi P-picture yang sangat baik dalam penyuntingan, jadi bagaimana untuk menambah wajah pada video Pengguna perlu mengimport bahan ke dalam garis masa, kemudian pilih kekunci, klik kekunci pintar untuk menggunakan topeng bulat, dan akhirnya hanya memotong muka? . Pengenalan kepada cara menambah wajah pada video ini boleh memberitahu anda dengan tepat cara menggunakan fungsi ini, jadi sila lihat. "Tutorial tentang penggunaan keratan video" Cara menambah muka pada video melalui keratan video Jawapan: Anda perlu menyeret bahan ke garis masa, dan kemudian menggunakan kekunci pintar untuk memotong muka. Kaedah khusus: 1. Pertama, anda perlu mengimport bahan dan kemudian menambahnya pada garis masa. 2. Klik Kekunci di bahagian atas sebelah kanan. 3. Pilih Smart Keying, cari topeng dan pilih topeng bulat. 4. Akhir sekali, korek sahaja kepala potret itu.

Bagaimana untuk melaksanakan pengecaman pertuturan dan sintesis pertuturan dalam C++? Bagaimana untuk melaksanakan pengecaman pertuturan dan sintesis pertuturan dalam C++? Aug 26, 2023 pm 02:49 PM

Bagaimana untuk melaksanakan pengecaman pertuturan dan sintesis pertuturan dalam C++? Pengecaman pertuturan dan sintesis pertuturan ialah salah satu hala tuju penyelidikan yang popular dalam bidang kecerdasan buatan hari ini, dan ia memainkan peranan penting dalam banyak senario aplikasi. Artikel ini akan memperkenalkan cara menggunakan C++ untuk melaksanakan pengecaman pertuturan dan fungsi sintesis pertuturan berdasarkan platform terbuka Baidu AI, dan menyediakan contoh kod yang berkaitan. 1. Pengecaman pertuturan Pengecaman pertuturan ialah teknologi yang menukar pertuturan manusia kepada teks Ia digunakan secara meluas dalam pembantu suara, rumah pintar, pemanduan autonomi dan bidang lain. Berikut ialah pelaksanaan pengecaman pertuturan menggunakan C++

Teknologi pengesanan dan pengecaman muka dilaksanakan menggunakan Java Teknologi pengesanan dan pengecaman muka dilaksanakan menggunakan Java Jun 18, 2023 am 09:08 AM

Dengan perkembangan berterusan teknologi kecerdasan buatan, teknologi pengesanan dan pengecaman muka telah menjadi semakin meluas digunakan dalam kehidupan seharian. Teknologi pengesanan dan pengecaman muka digunakan secara meluas dalam pelbagai keadaan, seperti sistem kawalan akses muka, sistem pembayaran muka, enjin carian muka, dsb. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java juga boleh melaksanakan teknologi pengesanan dan pengecaman muka. Artikel ini akan memperkenalkan cara menggunakan Java untuk melaksanakan teknologi pengesanan dan pengecaman muka. 1. Teknologi pengesanan muka Teknologi pengesanan muka merujuk kepada teknologi yang mengesan wajah dalam imej atau video. dalam J

Sebuah artikel bercakap tentang sistem pengecaman tanda trafik dalam pemanduan autonomi Sebuah artikel bercakap tentang sistem pengecaman tanda trafik dalam pemanduan autonomi Apr 12, 2023 pm 12:34 PM

Apakah sistem pengecaman tanda lalu lintas? Sistem pengecaman tanda lalu lintas bagi sistem keselamatan kereta, yang terjemahan bahasa Inggerisnya ialah: Pengecaman Tanda Lalu Lintas, atau singkatannya TSR, menggunakan kamera menghadap ke hadapan digabungkan dengan mod untuk mengecam tanda lalu lintas biasa (had laju, tempat letak kereta, pusingan U, dll.). Ciri ini memberi amaran kepada pemandu tentang papan tanda lalu lintas di hadapan supaya mereka boleh mematuhinya. Fungsi TSR mempertingkatkan keselamatan dengan mengurangkan kemungkinan pemandu tidak akan mematuhi undang-undang jalan raya seperti papan tanda berhenti dan mengelak belok kiri haram atau pelanggaran lalu lintas lain yang tidak disengajakan. Sistem ini memerlukan platform perisian yang fleksibel untuk meningkatkan algoritma pengesanan dan menyesuaikan diri dengan tanda lalu lintas di kawasan yang berbeza. Prinsip pengecaman tanda lalu lintas Pengecaman tanda lalu lintas juga dipanggil TS

Win10 mengiktiraf penyelesaian kerana tidak dapat menyambung ke internet Win10 mengiktiraf penyelesaian kerana tidak dapat menyambung ke internet Jul 11, 2023 pm 06:21 PM

Apabila anda menggunakan komputer win10, pernahkah anda menghadapi situasi di mana anda tidak dapat menyambung ke Internet? Jika anda tidak tahu bagaimana untuk menyelesaikan masalah ini, mari kita lihat artikel ini. 1. Gunakan kombinasi kekunci Win+I untuk membuka tetingkap tetapan, klik untuk memilih Rangkaian dan Internet. 2. Klik Ethernet di sebelah kiri tetingkap Rangkaian dan INTERNET, dan kemudian klik Tukar Pilihan Penyesuai dalam tetingkap kanan. 3. Dalam tetingkap Sambungan Rangkaian, klik kanan Ethernet (desktop, sila layan peranti mudah alih mengikut kesesuaian), dan klik Lumpuhkan dalam menu. 4. Selepas ia dipaparkan sebagai dilumpuhkan, klik kanan tetikus Ethernet dan laksanakan arahan dayakan. Setelah Ethernet didayakan, masalah itu harus diselesaikan. Berikut ialah pengenalan kepada pengenalan segera kegagalan rangkaian Win10 tanpa

Adakah pengecaman muka untuk haiwan peliharaan telah dilaksanakan? Adakah pengecaman muka untuk haiwan peliharaan telah dilaksanakan? Apr 13, 2023 pm 07:52 PM

Penterjemah |. Disemak oleh Cui Hao |. Teknologi yang boleh mengenal pasti haiwan dengan tepat akan membantu pemilik menyatukan semula haiwan peliharaan yang hilang, petani memantau ternakan mereka, dan penyelidik mengkaji haiwan liar. Berdasarkan senario aplikasi di atas, mikrocip adalah kaedah pengenalan haiwan peliharaan yang paling popular. Walau bagaimanapun, menanam cip memerlukan pembedahan invasif, peralatan khusus untuk membaca cip dan risiko pencuri mengeluarkan mikrocip tersebut. Kaedah lain ialah analisis DNA, yang walaupun tepat, juga sangat mahal dan memakan masa. Hari ini saya ingin memperkenalkan kepada anda cara mengenal pasti haiwan melalui pengecaman muka. 1. Pengecaman muka haiwan peliharaan menggunakan perisian penglihatan komputer Pengecaman muka haiwan peliharaan oleh penyelesaian penglihatan komputer boleh digunakan sebagai alternatif kepada penyelesaian di atas. Di sebalik kekurangannya,

Bagaimana untuk mengenal pasti apabila jadual dikunci dalam pangkalan data Oracle? Bagaimana untuk mengenal pasti apabila jadual dikunci dalam pangkalan data Oracle? Mar 09, 2024 pm 01:09 PM

Dalam pangkalan data Oracle, jadual dikunci adalah situasi biasa Bagaimana untuk mengenal pasti dan menyelesaikan masalah ini adalah salah satu cabaran yang sering dihadapi oleh pentadbir pangkalan data. Artikel ini akan memperkenalkan cara mengenal pasti kunci jadual dalam pangkalan data Oracle, dan memberikan contoh kod khusus untuk membantu pentadbir pangkalan data mencari dan menyelesaikan masalah kunci meja dengan cepat. 1. Bagaimana untuk mengenal pasti apabila meja dikunci? 1. Lihat paparan V$LOCK Paparan V$LOCK ialah pandangan penting yang digunakan untuk melihat maklumat kunci dalam pangkalan data Oracle. kita boleh

Bagaimana untuk menggunakan PHP dan Alibaba Cloud OCR untuk merealisasikan pengecaman kod QR? Bagaimana untuk menggunakan PHP dan Alibaba Cloud OCR untuk merealisasikan pengecaman kod QR? Jul 17, 2023 am 10:46 AM

Bagaimana untuk menggunakan PHP dan Alibaba Cloud OCR untuk merealisasikan pengecaman kod QR? Dengan penggunaan kod QR yang meluas, semakin banyak projek memerlukan pengiktirafan kod QR. Dalam kaedah tradisional, kami biasanya menggunakan kamera atau perpustakaan pihak ketiga untuk pengecaman kod QR. Walau bagaimanapun, kaedah ini kadangkala tidak begitu fleksibel dan tidak dapat memenuhi keperluan tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perkhidmatan PHP dan Alibaba Cloud OCR untuk merealisasikan pengecaman kod QR, dan seterusnya meneroka nilai teknologi OCR dalam aplikasi praktikal. Pertama, anda perlu mendaftar a

See all articles