第12堂 機器人視覺-AI人臉辨識

WebCam

如何測試?

如何拍照或錄影?


擷取一張有人臉的圖片


Python介紹


安裝 Python

千萬注意一個小細節…


疑惑

  • 又要學新語言? 我C都還不熟…
    試試看,說不定你跟python更容易混熟
    請看下面影片…
  • 學這麼多會不會干擾?
    干擾也沒差,軟體開發又不是在考試,可以open book,可以隨時查閱,使用武林神功”複製貼上”
  • 學這麼多有何優點?
    回想剛才的影片
    見多識廣,要解決問題時就可以比別人想到更多工具,例如Matlab, Python, JavaScript…
  • 學這麼多有何缺點?
    我想不到,你幫我想想

期待當工程師了嗎?

馬上安裝業界最多人用的 Visual Studio Code


開始AI影像辨識囉,安裝 Opencv for Python

pip install opencv-python

常見問題?


人臉辨識範例

import cv2

def detectFace(img):
    filename = img.split(".")[0] # 取得檔案名稱(不添加副檔名)
    img = cv2.imread(img) # 讀取圖檔
    grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 透過轉換函式轉為灰階影像
    color = (0, 255, 0)  # 定義框的顏色
    
    # OpenCV 人臉識別分類器
    face_classifier = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
    
    # 調用偵測識別人臉函式
    faceRects = face_classifier.detectMultiScale(
        grayImg, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
    
    # 大於 0 則檢測到人臉
    if len(faceRects):  
        # 框出每一張人臉
        for faceRect in faceRects: 
            x, y, w, h = faceRect
            cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)
    
    # 將結果圖片輸出
    cv2.imwrite(filename + "_face.jpg", img)
    
detectFace('2.jpg')

牛刀小試

把上面的人臉框改成紫色


自動顯示圖片3秒

img2 = cv2.imread('2_face.jpg')
cv2.imshow("OK", img2)
cv2.waitKey(3000)
cv2.destroyAllWindows()

今天認識Python之後,記住3個重要的觀念

縮排、縮排、縮排

以後寫別種語言,包括 C ,即使用了大括號,一樣要縮排,

你的程式寫到讓別人容易閱讀,你就容易變成大咖


您可能也會喜歡…

發佈留言