iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
AI/ ML & Data

從0開始的影像辨識之路系列 第 23

MediaPipe:額外分享-2-人臉檢測(Day 22)

  • 分享至 

  • xImage
  •  

本次主題是以colab的環境進行學習的,在本篇文章中,我將講解影像辨識的基礎技能在接下來的文章中這些技能將多次出現,先讀過這些語法再繼續去看後面的文章會比較能快速上手喔。依照進度每個禮拜都會記錄不同的影像辨識方法,基本順序會從:

  1. OpenCV
  2. 圖片分類(Tensorflow-Image classification)
  3. 語意分割(Semantic Segmentation)
  4. 生成模仿圖片(CycleGAN and pix2pix in PyTorch)
  5. 物件辨識(tensorflow object detection)
  6. 額外分享(MediaPipe)

載入雲端硬碟:

from google.colab import drive
drive.mount('/content/drive')

下載mediapipe:

!pip install mediapipe

讀入照片及辨識:

import cv2 as cv
import mediapipe as med
import numpy as np
import matplotlib.pyplot as plt

dr = med.solutions.drawing_utils
dr_sty = med.solutions.drawing_styles
face = med.solutions.face_mesh
dr_face = dr.DrawingSpec(thickness=1, circle_radius=1)

cap = cv.imread('/content/drive/MyDrive/hand/image.jpg')
img = cap

with face.FaceMesh(
    max_num_faces=1,
    refine_landmarks=True,
    min_detection_confidence=0.5,
    min_tracking_confidence=0.5) as face_mesh:
    img = cv2.resize(img,(1680,1920))
    output = np.zeros((1920,1680,3), dtype='uint8')
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    results = face_mesh.process(img2)
    if results.multi_face_landmarks:
        for face_landmarks in results.multi_face_landmarks:
            dr.draw_landmarks(
                image=output,
                landmark_list=face_landmarks,
                connections=face.FACEMESH_TESSELATION,
                landmark_drawing_spec=None,
                connection_drawing_spec=dr_sty
                .get_default_face_mesh_tesselation_style())
            dr.draw_landmarks(
                image=output,
                landmark_list=face_landmarks,
                connections=face.FACEMESH_CONTOURS,
                landmark_drawing_spec=None,
                connection_drawing_spec=dr_sty
                .get_default_face_mesh_contours_style())
            dr.draw_landmarks(
                image=output,
                landmark_list=face_landmarks,
                connections=face.FACEMESH_IRISES,
                landmark_drawing_spec=None,
                connection_drawing_spec=dr_sty
                .get_default_face_mesh_iris_connections_style())
    img = cv2.resize(img,(1680,1920))
    img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
    plt.imshow(img,cmap="gray")
    plt.show()
    output = cv.cvtColor(output,cv.COLOR_BGR2RGB)
    plt.imshow(output,cmap="gray")
    plt.show()

原始圖片:

實際預測結果:


文章主題一覽:

  1. OpenCV-python:影像辨識基礎技能-1(Day 1)
  2. OpenCV-python:影像辨識基礎技能-2(Day 2)
  3. OpenCV-python:影像辨識的基礎臉部偵測-加碼更新(Day 2)

  1. Tensorflow-python:圖片分類-1-資料集準備(Day 3)
  2. Tensorflow-python:圖片分類-2-模型訓練(Day 4)
  3. Tensorflow-python:圖片分類-3-模型實際使用(Day 5)
  4. Tensorflow-python:圖片分類-4-完整程式總結(Day 6)

  1. Tensorflow-python:語意分割-1-資料集介紹(Day 7)
  2. Tensorflow-python:語意分割-2-模型訓練(Day 8)
  3. Tensorflow-python:語意分割-3-模型實際使用(Day 9)
  4. Tensorflow-python:語意分割-4-完整程式總結(Day 10)

  1. CycleGAN-python:生成相似圖片「由簡化繁」-1-資料集介紹(Day 11)
  2. CycleGAN-python:生成相似圖片「由簡化繁」-2-模型訓練(Day 12)
  3. CycleGAN-python:生成相似圖片「由簡化繁」-3-模型實際使用(Day 13)
  4. CycleGAN-python:生成相似圖片「由簡化繁」-4-完整程式總結(Day 14)
  5. CycleGAN-python:生成相似圖片「由繁化簡」-1-資料集介紹(Day 15)
  6. CycleGAN-python:生成相似圖片「由繁化簡」-2-模型訓練(Day 16)
  7. CycleGAN-python:生成相似圖片「由繁化簡」-3-模型實際使用(Day 17)
  8. CycleGAN-python:生成相似圖片「由繁化簡」-4-完整程式總結(Day 18)

  1. tensorflow-object-detection:物件辨識-3-模型實際使用(Day 19)
  2. tensorflow-object-detection:物件辨識-4-模型實際使用_應用篇(Day 20)

  1. MediaPipe:額外分享-1-手部追蹤(Day 21)
  2. MediaPipe:額外分享-2-人臉檢測(Day 22)
  3. MediaPipe:額外分享-3-物體檢測(Day 23)
  4. MediaPipe:額外分享-4-姿勢檢測(Day 24)

  1. Tensorflow-python:圖片分類-1-模型介紹(Day 25)
  2. Tensorflow-python:圖片分類-2-變形應用(Day 26)
  3. Tensorflow-python:語意分割-1-模型介紹(Day 27)
  4. Tensorflow-python:語意分割-2-變形應用(Day 28)
  5. CycleGAN-python:生成相似圖片-1-模型介紹(Day 29)
  6. CycleGAN-python:生成相似圖片-2-變形應用(Day 30)

粗體字為額外更新的文章。


上一篇
MediaPipe:額外分享-1-手部追蹤(Day 21)
下一篇
MediaPipe:額外分享-3-物體檢測(Day 23)
系列文
從0開始的影像辨識之路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言