วันพฤหัสบดีที่ 25 กรกฎาคม พ.ศ. 2562

การใช้ OpenCV กับ python ทำ Face Recognition

Python เป็นภาษาที่มีคนใช้ทั่วโลกมากที่สุด และ มี Open Source จำนวนมาก ทำให้ทำงาน บางอย่างได้ทันที
OpenCV เป็น โปรแกรม OpenSource ยอดนิยม สำหรับ Image และ Video Version ที่ติดตั้งให้ติดตั้งหลังจาก ติดตั้ง Python ก่อน ใช้ Version 3 ถ้ามี Nvidia ให้ลง Version ที่ Support Cura จะได้ ความเร็วในการ run แต่ติดตั้งง่ายให้ ใช้ Intel

การติดตั้ง Python ให้ ติดตั้งจาก Tool ของ Anaconda จะง่ายสุด

เวลา run อาจจะใช้    Jupyter notebook หรือไม่นั้นก็ Save เป็น facerec.py และ run จาก command line
python facerec.py ก็ได้

Code นี้ทดลองใน OSX ต้องมี กล้อง webcam ด้วย Code นี้ยังไม่ใช่ AI แต่เป็น Algorithm Detect หน้า
# cv2 เป็นตัวแทนของ opencv3 
import cv2
import sys
#haarcascade_frontalface_default.xml  ไป download from opencv website
cascPath = "haarcascade_frontalface_default.xml"
print cascPath
faceCascade = cv2.CascadeClassifier(cascPath)
# เปิด กล้อง
cv2.namedWindow("preview")
video_capture = cv2.VideoCapture(0)

# loop สำหรับ Recognition 
while True:
    # ที่ละ Frame
    ret, frame = video_capture.read()

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

    faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30)
    )

    # วาดสี่เหลี่ยมหน้า
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    # แสดงรูป
    cv2.imshow('Video', frame)
# กด x ออก
    if cv2.waitKey(1) & 0xFF == ord('x'):
        break

#ปิด Video
video_capture.release()
cv2.destroyAllWindows()