예제 #1
0
prev_time = [time.time() for i in range(len(cam_idx))]

# Open3D visualization
vis = o3d.visualization.Visualizer()
vis.create_window(width=640, height=480)
vis.get_render_option().point_size = 5.0

# Load triangulation class
tri = Triangulation(cam_idx=cam_idx, vis=vis, 
    use_panoptic_dataset=args.use_panoptic_dataset)

# Load mediapipe and display class
if mode=='hand':
    for i in range(len(cam_idx)):
        pipe[i] = MediaPipeHand(static_image_mode=False, max_num_hands=1)
        disp[i] = DisplayHand(draw3d=True, max_num_hands=1, vis=vis)
elif mode=='body':
    for i in range(len(cam_idx)):
        pipe[i] = MediaPipeBody(static_image_mode=False, model_complexity=1)
        disp[i] = DisplayBody(draw3d=True, vis=vis)
elif mode=='holistic':
    for i in range(len(cam_idx)):
        pipe[i] = MediaPipeHolistic(static_image_mode=False, model_complexity=1)
        disp[i] = DisplayHolistic(draw3d=True, vis=vis)
else:
    print('Undefined mode only the following modes are available: \n hand / body / holistic')
    sys.exit()

while True:
    # Loop through video capture
    for i, c in enumerate(cap):
예제 #2
0
import argparse

from utils_display import DisplayHand
from utils_mediapipe import MediaPipeHand
from utils_joint_angle import GestureRecognition

parser = argparse.ArgumentParser()
parser.add_argument('-m', '--mode', default='eval', help='train / eval')
args = parser.parse_args()
mode = args.mode

# Load mediapipe hand class
pipe = MediaPipeHand(static_image_mode=False, max_num_hands=1)

# Load display class
disp = DisplayHand(max_num_hands=1)

# Start video capture
cap = cv2.VideoCapture(0)  # By default webcam is index 0

# Load gesture recognition class
gest = GestureRecognition(mode)

counter = 0
while cap.isOpened():
    ret, img = cap.read()
    if not ret:
        break

    # Flip image for 3rd person view
    img = cv2.flip(img, 1)
예제 #3
0
    'fx': img_width *
    0.9,  # Approx 0.7w < f < w https://www.learnopencv.com/approximate-focal-length-for-webcams-and-cell-phone-cameras/
    'fy': img_width * 0.9,
    'cx': img_width * 0.5,  # Approx center of image
    'cy': img_height * 0.5,
    'width': img_width,
    'height': img_height,
}

# Load mediapipe and display class
if mode == 'hand':
    pipe = MediaPipeHand(static_image_mode=False,
                         max_num_hands=2,
                         intrin=intrin)
    disp = DisplayHand(draw3d=True,
                       draw_camera=True,
                       max_num_hands=2,
                       intrin=intrin)
elif mode == 'body':
    # Note: As of version 0.8.3 3D joint estimation is only available in full body mode
    pipe = MediaPipeBody(static_image_mode=False,
                         model_complexity=1,
                         intrin=intrin)
    disp = DisplayBody(draw3d=True, draw_camera=True, intrin=intrin)
elif mode == 'holistic':
    # Note: As of version 0.8.3 3D joint estimation is only available in full body mode
    pipe = MediaPipeHolistic(static_image_mode=False,
                             model_complexity=1,
                             intrin=intrin)
    disp = DisplayHolistic(draw3d=True, draw_camera=True, intrin=intrin)

# log = False
예제 #4
0
### Input : Live video of 2 hands playing rock paper scissor
### Output: 2D display of hand keypoint
###         with gesture classification (rock=fist, paper=five, scissor=three/yeah)
###############################################################################

import cv2

from utils_display import DisplayHand
from utils_mediapipe import MediaPipeHand
from utils_joint_angle import GestureRecognition

# Load mediapipe hand class
pipe = MediaPipeHand(static_image_mode=False, max_num_hands=2)

# Load display class
disp = DisplayHand(max_num_hands=2)

# Start video capture
cap = cv2.VideoCapture(0)  # By default webcam is index 0

# Load gesture recognition class
gest = GestureRecognition(mode='eval')

counter = 0
while cap.isOpened():
    ret, img = cap.read()
    if not ret:
        break

    # Flip image for 3rd person view
    img = cv2.flip(img, 1)
예제 #5
0
    help='Select mode: face_detect / face / hand / body / holistic')
args = parser.parse_args()
mode = args.mode

# Load mediapipe and display class
if mode == 'face_detect':
    pipe = MediaPipeFaceDetect(model_selection=0, max_num_faces=5)
    disp = DisplayFaceDetect()
elif mode == 'face':
    pipe = MediaPipeFace(static_image_mode=False,
                         max_num_faces=1,
                         refine_landmarks=True)
    disp = DisplayFace(draw3d=True, refine_landmarks=True)
elif mode == 'hand':
    pipe = MediaPipeHand(static_image_mode=False, max_num_hands=2)
    disp = DisplayHand(draw3d=True, max_num_hands=2)
elif mode == 'body':
    pipe = MediaPipeBody(static_image_mode=False, model_complexity=1)
    disp = DisplayBody(draw3d=True)
elif mode == 'holistic':
    pipe = MediaPipeHolistic(static_image_mode=False,
                             model_complexity=1,
                             refine_face_landmarks=True)
    disp = DisplayHolistic(draw3d=True, refine_face_landmarks=True)
else:
    print(
        'Undefined mode only the following modes are available: \nface / hand / body / holistic'
    )
    sys.exit()

# Start video capture