Herramientas Informaticas

Etiqueta: Video

🎥 Detección de Personas en Video y Grabación Automática Usando Python y OpenCV

Entrada fija

En este artículo explicaremos cómo crear un sistema de detección de personas que grabe automáticamente la pantalla solo cuando se detecta presencia humana. Este proyecto es útil si usas cámaras IP o software como V380 y deseas una forma eficiente de grabar únicamente cuando hay movimiento humano en una región específica del escritorio.


✅ ¿Qué hace este script?

  • Captura un área definida de la pantalla (donde aparece el video de la cámara).
  • Usa un modelo de inteligencia artificial para detectar personas.
  • Comienza a grabar cuando detecta presencia humana.
  • Detiene la grabación si no se ve nadie por un período definido.
  • Guarda los videos automáticamente con marcas de tiempo.

🧠 Tecnologías y librerías usadas

  • OpenCV: procesamiento de imágenes y video.
  • mss: captura rápida de pantalla.
  • NumPy: procesamiento eficiente de matrices.
  • datetime y time: control de tiempo.
  • Modelo Caffe SSD preentrenado: para detección de rostros/personas.

📦 Requisitos

Asegúrate de tener Python 3.8+ (funciona en 3.12) y las siguientes librerías instaladas:

pip install opencv-python numpy mss

También necesitas dos archivos de modelo descargados:

  • deploy.prototxt
  • res10_300x300_ssd_iter_140000.caffemodel

Se pueden obtener desde los repositorios oficiales de OpenCV o desde:

wget https://raw.githubusercontent.com/opencv/opencv/master/samples/dnn/face_detector/deploy.prototxt .

wget https://github.com/opencv/opencv_3rdparty/raw/dnn_samples_face_detector_20170830/res10_300x300_ssd_iter_140000_fp16.caffemodel -O res10_300x300.caffemodel

🧾 El código completo

import cv2
import numpy as np
import time
from mss import mss
from datetime import datetime

# === Configuraciones ===
monitor = {"top": 100, "left": 100, "width": 640, "height": 480}

prototxt = "deploy.prototxt"
model = "res10_300x300_ssd_iter_140000.caffemodel"
NO_PERSON_TIMEOUT = 5

net = cv2.dnn.readNetFromCaffe(prototxt, model)
sct = mss()
recording = False
video_writer = None
last_person_time = 0

def detect_person(frame):
    blob = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)), 1.0,
                                 (300, 300), (104.0, 177.0, 123.0))
    net.setInput(blob)
    detections = net.forward()

    for i in range(detections.shape[2]):
        confidence = detections[0, 0, i, 2]
        if confidence > 0.6:
            return True
    return False

def start_recording(filename, frame_size, fps=20):
    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    return cv2.VideoWriter(filename, fourcc, fps, frame_size)

print("🔍 Monitoreando... Presiona ESC para salir.")

while True:
    frame = np.array(sct.grab(monitor))
    frame = cv2.cvtColor(frame, cv2.COLOR_BGRA2BGR)

    person_detected = detect_person(frame)
    current_time = time.time()

    if person_detected:
        last_person_time = current_time
        if not recording:
            filename = datetime.now().strftime("grabacion_%Y%m%d_%H%M%S.mp4")
            video_writer = start_recording(filename, (monitor["width"], monitor["height"]))
            print(f"🟢 Persona detectada – grabando en: {filename}")
            recording = True
    else:
        if recording and (current_time - last_person_time > NO_PERSON_TIMEOUT):
            print("🔴 No hay persona – deteniendo grabación.")
            recording = False
            video_writer.release()
            video_writer = None

    if recording and video_writer is not None:
        video_writer.write(frame)

    cv2.imshow("Vista", frame)
    if cv2.waitKey(1) == 27:  # ESC
        break

# Limpieza
if video_writer:
    video_writer.release()
cv2.destroyAllWindows()

🛠️ Cómo ajustar a tu uso

  • Cambia las coordenadas de monitor según dónde esté la imagen de la cámara en tu pantalla.
  • Puedes modificar el umbral de confianza (confidence > 0.6) si detecta demasiado o poco.
  • Cambia el tiempo NO_PERSON_TIMEOUT si quieres que espere más o menos antes de cortar la grabación.

📂 Salidas

  • Videos guardados en la misma carpeta, con nombre grabacion_YYYYMMDD_HHMMSS.mp4.
  • No graba sonido (ideal para privacidad o rendimiento).

🖥️ Requisitos mínimos de hardware

  • CPU moderna (Intel i5 o Ryzen 5 en adelante recomendado).
  • RAM: 4 GB mínimo (8+ recomendado).
  • Sistema operativo: Linux o Windows.
  • Sin GPU necesaria, ya que el modelo es liviano.

Recortar silencios Automáticamente en vídeos en Zorin Linux GNU/Linux


Últimamente hemos estado transmitiendo vídeos de diferentes cursos y siempre es un dolor de cabeza editar y subir el resumen para ahorrarles tiempo, es decir quitar los silencios incómodos.

Para ello afortunadamente existe una aplicacion hecha en python que consume la libreria FFMPEG

Bien descargaremos la aplicación y veremos como usarla en Zorin Linux 16.1

Una vez descargada descomprimimos y abrimos la terminal nos posicionamos en la carpeta donde descomprimimos los archivos y corremos el siguiente comando para instalar todos los requerimientos que necesita el programa

OPENSHOT VIDEO EDITOR LA ALTERNATIVA LIBRE A CAMTASIA

Les dejo este programa de edición de video Enlace

Pagina Oficial

http://bit.ly/37zmqSF

Enlace MediaFire

http://bit.ly/37z80lx

CANAL DE TELEGRAM

https://telegram.me/CesarSystems

TWITTER

https://twitter.com/JulioLeyvaR

FACEBOOK

https://www.facebook.com/rasec555

COMO EVITAR FOLIOS DE VENTA REPETIDOS #51

Buenos dias amigos,en este video veremos como corregir el código fuente para evitar que se duplique el folio de venta

COMO USAR LA CAMARA DEL CELULAR COMO CÁMARA WEB EN DEEPIN 15.10

INTRODUCCIÓN

En tiempo de austeridad republicana requerimos ahorra lo mas posible y dar el mejor resultado a eso le llamamos eficiencia, en el caso de la creación multimedia para grabar nuestra jeta hablando y nuestra Webcam de la Laptop no es de buena calidad pero tenemos un celular con buena cámara entonces podemos sacar provecho de eso.

Es decir, en lugar de usar la WebCam de la laptop podemos usar el de la cámara grabando a tiempo real para no perder tiempo en la edición.

OBJETIVO

Usar la cámara de nuestro celular para grabar en OBS a tiempo real

REQUISITOS

  • Celular con Andriod v5 en adelante gama media
  • Tener instalado DroidCam en el celular, pueden descargar el APK haciendo clic AQUI
  • OpenBroad Caster “Lo instalan gratuitamente de la App Store de Deepin
  • Explorador Chrome o Firefox

PROCESO

Una vez instalado DroidCam lo abren y verán la siguiente pantalla con la ruta para acceder a la cámara desde el explorador.
Al abrir esa ruta en la computadora podrán la cámara del celular, ejemplo:
Ahora abrimos OBS y en fuentes agregamos captura de ventana y escogemos la que dice droidcam, y le dejamos las configuraciones que vienen en la imagen, en mi caso se ve algo descolorido porque tengo activado el efecto chroma key.

CONCLUSIÓN

Ahora solo es cuestión de acomodar la imagen de la cámara en donde mejor nos plazca y así en ahorraremos en una WebCam con mayor definición, ademas de tener la posibilidad y conectar muchas cámaras y así tener mas escenas.

Video Demostrativo

Creado con WordPress & Tema de Anders Norén