導航:首頁 > 編程語言 > 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人臉識別掛件相關的資料

    熱點內容
    機房伺服器電源線如何扎線 瀏覽:730
    什麼演算法治宣傳 瀏覽:18
    哪個app可以測溫槍 瀏覽:17
    macmongodbphp 瀏覽:328
    php寫游戲伺服器 瀏覽:875
    對立陣營插旗命令 瀏覽:369
    java實現帕斯卡三角形演算法 瀏覽:314
    linux文件名限制 瀏覽:706
    金稅三期代理伺服器地址是什麼意思 瀏覽:429
    多自變數擬合Python 瀏覽:456
    文件夾加密總是失敗 瀏覽:510
    androiddexpathlist 瀏覽:626
    要卸載己加密的文件怎麼辦 瀏覽:158
    ping伺服器ip地址失敗 瀏覽:136
    成都黑馬程序員 瀏覽:643
    成考app哪個好 瀏覽:702
    linux當前線程id 瀏覽:348
    哪個app支持掃花唄 瀏覽:838
    著色器編譯程序 瀏覽:589
    怎樣看app所屬文件夾 瀏覽:543