导航:首页 > 编程语言 > python人脸识别挂件

python人脸识别挂件

发布时间:2024-08-09 02:28:53

A. 人脸识别为什么用python开发

可以使用OpenCV,OpenCV的人脸检测功能在一般场合还是不错的。而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码。

写代码之前应该先安装python-opencv:

#!/usr/bin/python
#-*-coding:UTF-8-*-

#face_detect.py

#FaceDetectionusingOpenCV.Basedonsamplecodefrom:
#http://python.pastebin.com/m76db1d6b

#Usage:pythonface_detect.py<image_file>

importsys,os
fromopencv.cvimport*
fromopencv.highguiimport*
fromPILimportImage,ImageDraw
frommathimportsqrt

defdetectObjects(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=[]
forfinfaces:
result.append((f.x,f.y,f.x+f.width,f.y+f.height))

returnresult

defgrayscale(r,g,b):
returnint(r*.3+g*.59+b*.11)

defprocess(infile,outfile):

image=cvLoadImage(infile);
ifimage:
faces=detectObjects(image)

im=Image.open(infile)

iffaces:
draw=ImageDraw.Draw(im)
forfinfaces:
draw.rectangle(f,outline=(255,0,255))

im.save(outfile,"JPEG",quality=100)
else:
print"Error:cannotdetectfaceson%s"%infile

if__name__=="__main__":
process('input.jpg','output.jpg')

B. 有没有Python的人脸识别的demo

OpenCV是开源的跨平台计算机视觉库,提供了Python等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法
opencv中内置了基于Viola-Jones目标检测框架的Harr分类器,只需要载入一个配置文件(haarcascade_frontalface_alt.xml)就能直接调用detectObject去完成检测过程,同时也支持其他特征的检测(如鼻子、嘴巴等)。

C. python人脸识别所用的优化算法有什么

python三步实现人脸识别

Face Recognition软件包

这是世界上最简单的人脸识别库了。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸。

该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in the world》测试基准下达到了99.38%。

它同时提供了一个叫face_recognition的命令行工具,以便你可以用命令行对一个文件夹中的图片进行识别操作。

特性

在图片中识别人脸

找到图片中所有的人脸

这里是一个例子:

1
  • https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_picture
  • D. 谁用过python中的第三方库face recognition

    简介
    该库可以通过python或者命令行即可实现人脸识别的功能。使用dlib深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild)上的准确率为99.38%。
    在github上有相关的链接和API文档。

    在下方为提供的一些相关源码或是文档。当前库的版本是v0.2.0,点击docs可以查看API文档,我们可以查看一些函数相关的说明等。

    安装配置
    安装配置很简单,按照github上的说明一步一步来就可以了。
    根据你的python版本输入指令:
    pip install face_recognition11

    或者
    pip3 install face_recognition11

    正常来说,安装过程中会出错,会在安装dlib时出错,可能报错也可能会卡在那不动。因为pip在编译dlib时会出错,所以我们需要手动编译dlib再进行安装。

    按照它给出的解决办法:
    1、先下载下来dlib的源码。
    git clone

    2、编译dlib。
    cd dlib
    mkdir build
    cd build
    cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
    cmake --build1234512345

    3、编译并安装python的拓展包。
    cd ..
    python3 setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA1212

    注意:这个安装步骤是默认认为没有GPU的,所以不支持cuda。
    在自己手动编译了dlib后,我们可以在python中import dlib了。
    之后再重新安装,就可以配置成功了。
    根据你的python版本输入指令:
    pip install face_recognition11

    或者
    pip3 install face_recognition11

    安装成功之后,我们可以在python中正常import face_recognition了。

    编写人脸识别程序
    编写py文件:
    # -*- coding: utf-8 -*-
    #

    # 检测人脸
    import face_recognition
    import cv2

    # 读取图片并识别人脸
    img = face_recognition.load_image_file("silicon_valley.jpg")
    face_locations = face_recognition.face_locations(img)
    print face_locations

    # 调用opencv函数显示图片
    img = cv2.imread("silicon_valley.jpg")
    cv2.namedWindow("原图")
    cv2.imshow("原图", img)

    # 遍历每个人脸,并标注
    faceNum = len(face_locations)
    for i in range(0, faceNum):
    top = face_locations[i][0]
    right = face_locations[i][1]
    bottom = face_locations[i][2]
    left = face_locations[i][3]

    start = (left, top)
    end = (right, bottom)

    color = (55,255,155)
    thickness = 3
    cv2.rectangle(img, start, end, color, thickness)

    # 显示识别结果
    cv2.namedWindow("识别")
    cv2.imshow("识别", img)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

    注意:这里使用了python-OpenCV,一定要配置好了opencv才能运行成功。
    运行结果:
    程序会读取当前目录下指定的图片,然后识别其中的人脸,并标注每个人脸。
    (使用图片来自美剧硅谷)

    编写人脸比对程序
    首先,我在目录下放了几张图片:

    这里用到的是一张乔布斯的照片和一张奥巴马的照片,和一张未知的照片。
    编写程序:
    # 识别图片中的人脸
    import face_recognition
    jobs_image = face_recognition.load_image_file("jobs.jpg");
    obama_image = face_recognition.load_image_file("obama.jpg");
    unknown_image = face_recognition.load_image_file("unknown.jpg");

    jobs_encoding = face_recognition.face_encodings(jobs_image)[0]
    obama_encoding = face_recognition.face_encodings(obama_image)[0]
    unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

    results = face_recognition.compare_faces([jobs_encoding, obama_encoding], unknown_encoding )
    labels = ['jobs', 'obama']

    print('results:'+str(results))

    for i in range(0, len(results)):
    if results[i] == True:
    print('The person is:'+labels[i])

    运行结果:

    识别出未知的那张照片是乔布斯的。
    摄像头实时识别
    代码:
    # -*- coding: utf-8 -*-
    import face_recognition
    import cv2

    video_capture = cv2.VideoCapture(1)

    obama_img = face_recognition.load_image_file("obama.jpg")
    obama_face_encoding = face_recognition.face_encodings(obama_img)[0]

    face_locations = []
    face_encodings = []
    face_names = []
    process_this_frame = True

    while True:
    ret, frame = video_capture.read()

    small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)

    if process_this_frame:
    face_locations = face_recognition.face_locations(small_frame)
    face_encodings = face_recognition.face_encodings(small_frame, face_locations)

    face_names = []
    for face_encoding in face_encodings:
    match = face_recognition.compare_faces([obama_face_encoding], face_encoding)

    if match[0]:
    name = "Barack"
    else:
    name = "unknown"

    face_names.append(name)

    process_this_frame = not process_this_frame

    for (top, right, bottom, left), name in zip(face_locations, face_names):
    top *= 4
    right *= 4
    bottom *= 4
    left *= 4

    cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)

    cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), 2)
    font = cv2.FONT_HERSHEY_DUPLEX
    cv2.putText(frame, name, (left+6, bottom-6), font, 1.0, (255, 255, 255), 1)

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
    break

    video_capture.release()
    cv2.destroyAllWindows()5455

    识别结果:
    我直接在手机上网络了几张图试试,程序识别出了奥巴马。

    这个库很cool啊!

    阅读全文

    与python人脸识别挂件相关的资料

    热点内容
    服务器dc灯不亮是什么 浏览:194
    androidsuc 浏览:70
    编程原则自上而下单元 浏览:555
    云计算服务器贵州云空间 浏览:34
    登录服务器login输入什么 浏览:880
    三点指标公式源码 浏览:544
    黑马程序员fetch教程 浏览:442
    不用编程的游戏引擎 浏览:533
    点菜pdf 浏览:82
    圣经pdf下载 浏览:291
    如何打印到pdf文件 浏览:558
    石碣CNC编程 浏览:553
    程序员那么可爱31集上中下完整版 浏览:821
    有什么动漫app是可以免费看的 浏览:145
    程序员语言有多少种 浏览:198
    linux系统对硬盘分区 浏览:267
    php7性能优化总结 浏览:820
    pdf文本格式转换器 浏览:116
    androidmap排序 浏览:450
    php类型自动 浏览:213