臉部辨識

    NEC在2014年7月15日, 美國國家標準與技術研究院U.S. National Institute of Standards and Technology (NIST) ,的臉部辨識技術基準測試中( Face Recognition Vendor Test (FRVT) 2014 performed),於「靜止影像臉部辨識評比測試recent Face Recognition Vendor Test」拔得頭籌。NEC已持續進行臉部辨識技術的開發約25年之久,並於全球20個國家以上導入應用該技術的系統。
    資料來源 中時電子報
    新聞來源 marketwatch.com

    NEC 官方網站 這裡

    如果你想對這比賽有更多了解,可以到NIST 官方網站 這裡

    Screen Shot 2014-07-19 at 4.23.06 PM
    近年來,犯罪與恐怖攻擊的增加也逐漸成為關注議題,並期望能夠像電影全民公敵一樣,透過道路上的監控攝影機,就可以自動找出罪犯。

    如果對臉部辨識感興趣的話,目前有些API 可以供開發
    #. face recognition algorithm VeriLook 5.5 這例
    #. Apple 的 iOS 5 也有API 使用方法 這裡
    #. 當然頂頂大名的 Open CV 也有針對 臉部辨識 的範例 這裡
    Screen Shot 2014-07-19 at 4.23.55 PM

    以下是我用simple CV 所寫的一個帶眼鏡的AR範例,是可以在藍莓派上執行的

     

    #!/usr/bin/env python
    # author: Powen Ko
    from SimpleCV import *
    from time import sleep
    myCamera = Camera(prop_set={'width':320, 'height': 240}) # 指定網路攝影機的影像大小
    myDisplay = Display(resolution=(320, 240)) # 抓取網路攝影機的影像
    pic=Image("glasses.png")
    mask2= pic.createBinaryMask(color1=(0,0,0), color2=(254,254,254)) # 重點:設定去背顏色
    while not myDisplay.isDone():
    frame = myCamera.getImage()
    faces = frame.findHaarFeatures('face') # 搜尋人臉
    if faces:
    for face in faces:
    print "Face at: " + str(face.coordinates())# 列印出人練臉的中心位置
    facelayer = DrawingLayer((frame.width,frame.height)) # 準備一個新的圖層
    w=face.width()
    h=face.height()
    print "x:"+str(w)+" y:"+str(h)
    facebox_dim = (w,h)
    facebox = facelayer.centeredRectangle(face.coordinates(), facebox_dim)# 畫出一個正方形
    frame.addDrawingLayer(facelayer)
    frame.applyLayers() # 把圖層放回畫面上
    # 辨識 眼睛
    myFace = face.crop() # 取的臉部的影像
    eyes = myFace.findHaarFeatures('eye') #辨識 眼睛
    if eyes:
    for eye in eyes:
    # 計算出眼鏡的位置
    xf = face.x -(face.width()/2)
    yf = face.y -(face.height()/2)
    xm = eye.x -(eye.width()/2)
    ym = eye.y -(eye.height()/2)
    x1=pic.width
    x1=x1/2
    x2=eye.width()
    x2=x2/2
    xmust = xf+xm -x1+x2
    ymust = yf+ym
    print "Eye at: " + str(eye.coordinates())
    frame = frame.blit(pic,pos=(xmust,ymust),mask = mask2) #畫出眼鏡

    else:
    print "No faces detected."
    frame.save(myDisplay) # 顯示在畫面上
    sleep(.1)

    Screen Shot 2014-08-18 at 9.28.51 AM