Я столкнулся с проблемой рисования полей в функции распознавания лиц с помощью MediaPipe.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я столкнулся с проблемой рисования полей в функции распознавания лиц с помощью MediaPipe.

Сообщение Anonymous »

Я пытаюсь создать простой код для распознавания лиц с помощью веб-камеры с библиотекой MediaPipe, но столкнулся с проблемой. Когда я пытаюсь нарисовать поле на mp_image, оно не появляется. Может кто-нибудь мне помочь?

Код: Выделить всё

#------ importamos las librerias -----------#
import cv2
import mediapipe as mp
import numpy as np

#--------- Declarar el detector --------#
detector = mp.tasks.vision.FaceDetector
dibujo = mp.solutions.drawing_utils

#----realizar la video captura----#
cap = cv2.VideoCapture(0)

#------Inicializamos parametros de configuracion-----#
BaseOptions = mp.tasks.BaseOptions
FaceDetectorOptions = mp.tasks.vision.FaceDetectorOptions
FaceDetectorResult = mp.tasks.vision.FaceDetectorResult
VisionRunningMode = mp.tasks.vision.RunningMode

#------- Crear una instancia para la detencion en tiempo real ------#
def print_result(result: FaceDetectorResult, output_image, timestamp_ms: int):
print('face detector result: {}'.format(result))

# Verificar si existen detecciones para dibujarlas
if result.detections:
# dibujar cada rostro detectado
for detection in result.detections:

#PROBLEMAS CON LOS TIPO DE DATOS
output_image = np.array(output_image)
print(f"image = {type(output_image)}")
det_pb2 = detection.to_pb2()
dibujo.draw_detection(output_image, det_pb2)
print('detected faces')

#-----------Iniciamos la configuracion----------------#
options = FaceDetectorOptions(
base_options = BaseOptions(model_asset_path='model.tflite'),
running_mode = VisionRunningMode.LIVE_STREAM,
min_detection_confidence = 0.5,
result_callback = print_result
)

# Obtén la tasa de cuadros por segundo (FPS) para calcular el timestamp
fps = cap.get(cv2.CAP_PROP_FPS)
frame_number = 0

with detector.create_from_options(options) as rostros:

while True:

# La lectura de la video captura
ret, frame = cap.read()

# Eliminar el error de movimiento
frame = cv2.flip(frame,1)

# Correcion de color
rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

# Obtener frame_timestamp_ms
frame_timestamp_ms = int((frame_number / fps) * 1000)
frame_number += 1

# Convertimos el frame a modelo de imagen mp.image de mediapipe
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=rgb)
# Mandamos la deteccion del rostro en frame
rostros.detect_async(mp_image,frame_timestamp_ms)

#Mostramos los fotogramas
cv2.imshow("Camara", mp_image)

#Leemos el teclado
t = cv2.waitKey(1)
if t == 27:
break

cap.release()
cv2.destroyAllWindows()
Я попробовал несколько вещей, например изменить тип изображения и тип обнаружения, но ничего не помогло.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -mediapipe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»