Filtrar movimiento en archivo de video (video de vigilancia)

Grabé a mi hijo de 1 año mientras dormía con una cámara de visión nocturna (para controlar las contracciones).

Ahora quiero crear automáticamente un video que contenga todo el movimiento, por ejemplo, quiero filtrar solo los fotogramas que se ven afectados por un movimiento detectado.

Probé VLC con detección de movimiento y funciona, pero no puedo decirle a VLC que solo me muestre los cuadros que contienen movimiento.

¿Qué sistema(s) operativo(s)?

Respuestas (3)

Este es el tipo de cosas que puedes hacer rápidamente usando OpenCV y Python .

  • Gratis (tanto gratis como FLOSS)
  • Multiplataforma: Windows, Linux, Android y Mac OS
  • Algoritmos de detección de movimiento incorporados (incluida la posibilidad de establecer umbrales).
  • Clase VideoWriter para guardar tus resultados
  • Comunidad de usuarios activa.

Simplemente descargue e instale: Python, OpenCV, las bibliotecas de Python Numpy y pyopencv.

Ejemplo de detección de movimiento en OpenCV en python

Este ejemplo vino del blog de Matthias Stein.

import cv2

def diffImg(t0, t1, t2):
  d1 = cv2.absdiff(t2, t1)
  d2 = cv2.absdiff(t1, t0)
  return cv2.bitwise_and(d1, d2)

cam = cv2.VideoCapture(0)

winName = "Movement Indicator"
cv2.namedWindow(winName, cv2.CV_WINDOW_AUTOSIZE)

# Read three images first:
t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)

while True:
  diff = diffImg(t_minus, t, t_plus)
  cv2.imshow(winName, diff) # This shows the delta image
  # Here you would use diffImag to save the frame if the difference is bigger than some threashold

  # Read next image
  t_minus = t
  t = t_plus
  t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)

  key = cv2.waitKey(10)
  if key == 27:
    cv2.destroyWindow(winName)
    break

print "Goodbye"

https://github.com/Breakthrough/DVR-Scan

DVR-Scan es una aplicación de línea de comandos multiplataforma (CLI) que detecta automáticamente eventos de movimiento en archivos de video (por ejemplo, imágenes de cámaras de seguridad). Además de ubicar tanto la hora como la duración de cada evento de movimiento, DVR-Scan guardará el metraje de cada evento de movimiento en un videoclip nuevo e independiente. DVR-Scan no solo es un software gratuito y de código abierto (FOSS), escrito en Python y basado en Numpy y OpenCV, sino que se creó para ser extensible y pirateable.

Puedo confirmar que funciona perfectamente con archivos AVI MPEG4 (H264).

Intenté instalar DVR-Scan en tres computadoras diferentes (Windows). El programa no se abrió. ¿Todavía funciona? ¿Hay algo que estoy haciendo mal?
La versión actual funciona absolutamente bien para mí (Windows 10)

Existe un software de safeware: SafeMotion. http://www.safeware.ca/support.php Funcionó bastante bien para mí. Tal vez resuelva su problema. Safemotion es un programa útil que le permite exportar todas las partes de video con movimiento. Además, puede definir zonas en las que se debe detectar movimiento y puede adaptar el tamaño del objeto en movimiento y la sensibilidad. Solo se usa para analizar videos de comportamiento de ratones, para no ver las escenas de sueño.

El software es gratuito, pero creo que no ha habido una actualización desde hace bastante tiempo. No tiene GUI, pero hay una forma de ajustarlo por línea de comandos, para ajustar, por ejemplo, la sensibilidad: safemotion.exe -m 7 XXX.avi

m= Escala de objetos en movimiento en detección entre 1-2

Mejorando :-) Algunas cosas más: ¿Es gratis para siempre? Si no es así, incluya información sobre el precio. Además, incluya una captura de pantalla de la pantalla donde puede configurar la sensibilidad, ¡gracias! :-)
Además, ¿cuál es su relación con esa empresa?
No tengo ninguna relación con esta empresa en absoluto. Acabo de tener una larga semana de búsqueda de software para resolver el mismo problema. Así que leí mucho en los foros, busqué en Google e intenté cosas diferentes. Desafortunadamente, VLC no funcionó para mí. El software que mencioné es gratuito, pero creo que no ha habido una actualización desde hace bastante tiempo. No hay GUI, por lo que no hay captura de pantalla, pero hay una forma de ajustarlo mediante la línea de comandos. Está explicado en el archivo Léame.
¡Ya veo! ¿Podría publicar una línea de comando de ejemplo que muestre cómo configurar la sensibilidad? ¡Gracias!
Mencione también el precio/las actualizaciones en el cuerpo de su respuesta. Los comentarios se eliminan. ¡Salud!