У меня есть две разные реализации системы обнаружения жестов рук с использованием MediaPipe, одна работает идеально, а другая нет. Рабочая реализация:< /p>
У меня есть две разные реализации системы обнаружения жестов рук с использованием MediaPipe, одна работает идеально, а другая нет. [b]Рабочая реализация:[/b]< /p> [code]from flask import Flask, render_template, Response import cv2 import mediapipe as mp import numpy as np # Added numpy import import time
# Thumb - different logic for left and right hands if handedness.classification[0].label == 'Right': if hand_landmarks.landmark[tip_ids[0]].x < hand_landmarks.landmark[tip_ids[0] - 1].x: fingers.append(1) else: fingers.append(0) else: # Left hand if hand_landmarks.landmark[tip_ids[0]].x > hand_landmarks.landmark[tip_ids[0] - 1].x: fingers.append(1) else: fingers.append(0)
# Other fingers - same for both hands for id in range(1, 5): if hand_landmarks.landmark[tip_ids[id]].y < hand_landmarks.landmark[tip_ids[id] - 2].y: fingers.append(1) else: fingers.append(0)
if results.multi_hand_landmarks: for idx, (hand_landmarks, handedness) in enumerate(zip(results.multi_hand_landmarks, results.multi_handedness)): self.mp_draw.draw_landmarks( image, hand_landmarks, self.mp_hands.HAND_CONNECTIONS, self.mp_draw.DrawingSpec(color=(0, 255, 0), thickness=2), self.mp_draw.DrawingSpec(color=(255, 0, 0), thickness=2) )
# Count fingers with handedness information finger_count = self.count_fingers(hand_landmarks, handedness)
# Position text based on hand text_x = 50 if handedness.classification[0].label == 'Left' else image.shape[1] - 250 cv2.putText( image, f'{handedness.classification[0].label}: {finger_count}', (text_x, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 3 ) cv2.putText( image, f'{handedness.classification[0].label}: {finger_count}', (text_x, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2 )
# Update total count cv2.putText( image, f'Total Fingers: {sum(1 for hand in results.multi_hand_landmarks for _ in range(self.count_fingers(hand, results.multi_handedness[results.multi_hand_landmarks.index(hand)])))}', (image.shape[1]//2 - 100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 3 ) cv2.putText( image, f'Total Fingers: {sum(1 for hand in results.multi_hand_landmarks for _ in range(self.count_fingers(hand, results.multi_handedness[results.multi_hand_landmarks.index(hand)])))}', (image.shape[1]//2 - 100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2 )
return image
counter = FingerCounter()
def get_camera(): # Try different camera indices for index in range(10): cap = cv2.VideoCapture(index) if cap.isOpened(): return cap return None
camera = get_camera() if camera is None: print("No camera found!")
def generate_frames(): while True: if camera is None: # Create a black frame with error message if no camera frame = np.zeros((480, 640, 3), dtype=np.uint8) cv2.putText(frame, "No camera found!", (200, 240), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2) ret, buffer = cv2.imencode('.jpg', frame) frame = buffer.tobytes() yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') time.sleep(1) continue
[b]Описание проблемы:[/b][list] [*]Первая реализация (показанная выше) отлично работает как локально, так и в рабочей среде. [*]Она точно определяет руки и считает пальцы как на левой, так и на правой стороне. руки [*]Вторая реализация (я добавил ссылку на репозиторий github для второй реализация) с кнопкой разрешения камеры: [*]Успешно запускает камеру при нажатии [*]Правильно показывает видеопоток [*]Но обнаружение рук MediaPipe не инициализируется/работает [*] [/list] Репозиторий второй реализации на Github Файл журнала при его развертывании при рендеринге (Github один)
У меня есть две разные реализации системы обнаружения жестов рук с использованием MediaPipe, одна работает идеально, а другая нет.
Рабочая реализация:
from flask import Flask, render_template, Response
import cv2
import mediapipe as mp
import...
Я хочу добавить объект в руку, но вместо этого он плавает на руке, как мне применить эту логику в моем коде, пожалуйста, помогите мне ... Я не могу добавить этот пример объекта, как браклет
Я хочу добавить объект в руку, но вместо этого он плавает на руке, как мне применить эту логику в моем коде, пожалуйста, помогите мне ... Я не могу добавить этот пример объекта, как браклет
Я хочу подключить внешнюю панорамную камеру к устройству iOS (iPhone), чтобы фиксировать жесты рук пользователей. В настоящее время я использую Unity для сборки iOS, и мне удалось без особых проблем отображать панорамные видео на моем iPhone с...
Я хочу подключить внешнюю панорамную камеру к устройству iOS (iPhone), чтобы фиксировать жесты рук пользователей. В настоящее время я использую Unity для сборки iOS, и мне удалось без особых проблем отображать панорамные видео на моем iPhone с...