Speed-cam.py ver 11.26 y mayor ahora se ejecutará debajo de Raspberry Pi OS Bullseye o más tarde con un módulo de cámara PI, así como cámaras USBCAM e IP/RTSP. Para el soporte de Picamera, ejecute sudo raspi-config , opciones de interfaz, luego habilite/deshabilite la opción de cámara heredada y reinicie.
IMPORTANTE : una actualización de Raspbian Sudo Apt-Get y la actualización de sudo apt-get no se realizarán como parte de
Speed-Install.Sh , por lo que se recomienda que ejecutelos antes de la instalación para asegurarse de que su sistema esté actualizado.
Presione el icono de copia de GitHub en el lado derecho del cuadro de código a continuación.
o con el botón izquierdo del mouse resaltar el comando CURL en el cuadro de código a continuación. Haga clic derecho en el mouse en el área resaltada y seleccione Copiar.
curl -L https://raw.github.com/pageauc/speed-camera/master/speed-install.sh | bash
En RPI Putty SSH o la sesión de terminal Haga clic derecho, seleccione Pegar y luego ingrese para descargar y ejecutar el script.
Esto descargará y ejecutará el script Speed-Install.sh . Si se ejecuta en Python3, necesitará OpenCV3 instalado si no está instalado. Si necesita compilar OpenCV, consulte mi repositorio de GitHub en el menú Compilar OpenCV3 del proyecto fuente
La versión 13.05 es una revisión importante de la cámara de velocidad. El código de hilo de la cámara ahora se maneja por un módulo strmcam.py. Los nombres de variables config.py han cambiado, por lo que deberá hacer una copia de seguridad y cp config.py.new config.py (consulte a continuación para más detalles)
IMPORTANTE : Todas las configuraciones están en config.py. Puede eliminar configcam.py si existe, una vez que actualiza a Ver 13.05 o más. Los complementos ahora funcionan. Puede personalizar los archivos de complemento para adaptarse a que necesita o crear los suyos propios. Si está actualizando, debe eliminar, mueva los complementos antiguos para que los nuevos se descargarán durante la actualización. Publique el problema de GitHub si encuentra un error o un problema. Tirar
Importante speed-cam.py ver 8.x o mayor requiere config.py y complementos actualizados.
cd ~/speed-camera
cp config.py config.py.bak
cp config.py.new config.py
Para reemplazar los complementos, renombra (o elimina) la carpeta de complementos por debajo
cd ~/speed-camera
mv plugins pluginsold # renames plugins folder
rm -r plugins # deletes plugins folder
Luego ejecute la selección del menú de actualización de Menubox.Sh .
Consulte Windows 10/11 o Apple Mac Docker Instalar Inicio rápido
o Windows o Unix Distro se instala sin Docker
Este es un programa de demostración de la cámara de velocidad de la velocidad de objeto OpenCV de Raspberry Pi, Windows, Unix Distro OpenCV. Está escrito en Python y usa OpenCV para detectar y rastrear las coordenadas X, Y del objeto móvil más grande en la vista de la cámara sobre un área mínima de píxeles.
Las variables de usuario se almacenan en el archivo config.py . La detección de movimiento está restringida entre mo_crop_y_upper , mo_crop_y_lower , mo_crop_x_left , mo_crop_x_right variables (carretera o área de interés). MO_CROP_AUTO_ON = True anula la configuración manual y calculará automáticamente un área de cultivo rugosa basada en el tamaño de la imagen. El seguimiento de movimiento está controlado por la variable MO_TRACK_EVENT_COUNT en config.py. Esto establece el número de eventos de pista y la longitud de la pista en píxeles. Es posible que esto deba ajustar para la vista de la cámara, la velocidad de la CPU, etc. La velocidad se calcula en función de las variables CAL_OBJ_PX_ y CAL_OBJ_MM_ para la dirección de movimiento L2R y R2L. Se capturará y guardará una imagen de marco de transmisión de video en subcarpetas con medios/imágenes con fecha (opcional) por variable IM_SUBDIR_MAX_FILES = 2000 Para detalles de configuración variable, consulte el archivo config.py.
Si log_data_to_csv = true , entonces se creará/actualizará un archivo Speed-Cam.csv con los datos de eventos almacenados en formato CSV (Valores separados por coma). Esto se puede importar a una hoja de cálculo, un programa de base de datos, etc. para su posterior procesamiento. La versión 8.9 agrega una base de datos SQLITE3 para almacenar datos de velocidad. El valor predeterminado es datos/speed_cam.db con datos en la tabla de velocidad . La configuración de la base de datos se puede administrar desde config.py. La base de datos se crea automáticamente a partir de configuraciones config.py. Para obtener más detalles, consulte cómo administrar la base de datos SQLITE3
La computadora Raspberry Pi y el módulo de cámara RPI instalado o la cámara USB conectada. Asegúrese de que el hardware se pruebe y funcione. La mayoría de los modelos RPI funcionarán bien. Un RPI de cuatro núcleos mejorará en gran medida el rendimiento debido a los roscados. Se recomienda una versión reciente del sistema operativo Raspbian.
o
MS Windows o UNIX Distro Computer con una cámara web USB enchufada y una versión reciente de Python instalada para obtener más detalles. Vea los detalles de Wiki .
Se recomienda actualizar a OpenCV versión 3.xx para una fácil compilación de OpenCV 3.4.2 desde la fuente ver https://github.com/pageAuc/opencv3-setup
Para las plataformas de computadora de Windows o UNIX (no RPI o Debian), asegúrese de tener la versión de Python más actualizada. Para descargar e instalar Python y OpenCV
Las últimas versiones de Python incluyen la versión Numpy y reciente OpenCV que se requiere para ejecutar este código. También necesitará una cámara web USB instalada y funcionando. Para instalar este programa, acceda a la página del proyecto GitHub en https://github.com/pageAuc/speed-camera Seleccione el clon verde o el botón de descarga . Los archivos serán clonados o con zonas a una carpeta de cámara de velocidad. Puede ejecutar el código desde la aplicación inactiva de Python (recomendado), escritorio de GUI o ventana de terminal del símbolo del sistema. Nota bash .Sh shell scripts no funcionará con Windows a menos que se instale un soporte especial para BASH para Windows, por ejemplo, http://win-bash.sourceforge.net/ http://www.cygwin.com/ Nota: No he probado estos.
Speed Camera admite una instalación de Docker en
Apple Macintosh por requisitos e instrucciones del sistema
y
Microsoft Windows 10/11 64 bits con virtualización BIOS habilitado y el subsistema de Microsoft Windows para Linux WSL 2 por requisitos e instrucciones del sistema.
config/config.pyDesde la sesión registrada en la sesión RPI SSH o el terminal de la consola, realice lo siguiente. Le permite revisar el código de instalación antes de ejecutar
cd ~
wget https://raw.github.com/pageauc/speed-camera/master/speed-install.sh
more speed-install.sh # You can review code if you wish
chmod +x speed-install.sh
./speed-install.sh # runs install script.
cd ~/speed-camera
./speed-cam.py
Vea cómo ejecutar la sección Wiki de velocidad-cam.py
La cámara de velocidad importante comenzará en el modo calibrado_on = verdadero .
Revise la configuración en el archivo config.py y edite variables con nano según sea necesario. Deberá realizar una calibración para establecer el valor correcto para config.py cal_obj_px_ y cal_obj_mm_ para direcciones L2R y R2L. Las variables se basan en la distancia de la cámara a los objetos que se miden para la velocidad. Consulte el procedimiento de calibración para obtener más detalles.
La variable de seguimiento de movimiento config.py llamada track_counter = se puede ajustar para su sistema y la versión OpenCV. El valor predeterminado es 5, pero un RPI3 de cuatro núcleos y la última versión de OpenCV, por ejemplo, 3.4.2 puede ser 10-15 o posiblemente mayor. Esto requerirá monitorear los mensajes de registro detallado para ajustar.
cd ~/speed-camera
./menubox.sh
Cam de velocidad de administración más fácil utilizando Menubox.Sh (una vez calibrado y/o prueba completa) 
Vea los datos y las tendencias de la cámara de velocidad del navegador web por muestra de capturas de pantalla. Estos se pueden generar a partir de la elección del menú Menubox.Sh o ejecutando scripts desde la consola o mediante el horario de CRONTAB.



Puede ver imágenes recientes o históricas directamente desde la página del navegador web Speed. Estas se crean dinámicamente y muestran imágenes actualizadas. Presione el botón de actualización de la página web para actualizar la pantalla 

Parte de este código se basa en un tutorial de YouTube de Kyle Hounslow usando C aquí https://www.youtube.com/watch?v=x6rpdrzzgjg
Gracias a Adrian Rosebrock JRoseBr1 en http://www.pyimagesearch.com por el código de clase PivideoStream disponible en GitHub en https://github.com/jrosebr1/imutils/blob/master/imutils/video/pividestream.py
Divertirse
Claude Pageau
Canal de YouTube https://www.youtube.com/user/pageAucp
Repo de Github https://github.com/pageauc