Prototipado rápido de aplicaciones de cámara
Programación interactiva con IDS peak y cámaras uEye+
Python es un lenguaje de programación ampliamente utilizado en el Internet de las cosas (IoT). Permite escribir y probar fragmentos de código sin tener que crear complejos entornos de desarrollo. La posibilidad de programar de forma interactiva la convierte en la interfaz ideal durante la fase de prueba y ensayo. Precisamente en combinación con los sistemas embebidos, Python puede ser más ventajoso al no ser necesaria una compleja compilación cruzada.
Con IDS peak 1.2 podrá aprovechar las ventajas de Python también para programar sus aplicaciones de cámaras uEye+. De ese modo, se pueden probar y analizar rápidamente las numerosas funciones de las cámaras industriales IDS, además de prepararlas rápidamente para su uso posterior en un proyecto de software más extenso. El objetivo de este consejo técnico es, por lo tanto, explicar más en detalle la programación de las cámaras uEye+ a través de la IDS peak python Interface.
Los códigos fuente Python de ejemplo ilustran el manejo básico de las cámaras y de la interfaz. Se han creado como "Jupyter-Notebooks". Esto le permite probarlos y reproducirlos en directo en la aplicación web de código abierto con sus cámaras uEye+.
Describimos la instalación y el uso de los Jupyter Notebooks en un PC Windows 10 a modo de ejemplo. Dado que Python está disponible para múltiples plataformas y que Jupyter Notebooks es una aplicación web independiente de la plataforma, también podrá ejecutar y probar los ejemplos de código fuente en Linux.
Requisitos
Python
Python es necesario (Python 3.5 o superior) para poder instalar el Jupyter Notebook y para los ejemplos de programación IDS peak.
Descargar e instalar Python
Asegúrese de que Python se instala para "todos los usuarios" y que Python se añade a la variable "path". De ese modo también podrá usar Python desde el símbolo del sistema.
Bibliotecas Python adicionales
En los ejemplos de código fuente utilizamos bibliotecas Python adicionales para el procesamiento de imágenes y la visualización de datos. También deberá instalarlas.
- PIL - La Python Imaging Library amplía su Python Interpreter con otras funciones de procesamiento de imágenes.
- matplotlib - Matplotlib es una biblioteca completa para generar visualizaciones animadas e interactivas en Python.
- OpenCV - Biblioteca Computer Vision
- pyTorch - Deep Learning Framework
Para instalar las bibliotecas, utilice también:
pip install Pillow
pip install matplotlib
pip install opencv-python
pip install torch
IDS peak
Para utilizar y programar las cámaras uEye+ instale el IDS peak SDK (Software Development Kit). Contiene todas las bibliotecas y herramientas de software necesarias.
IDS peak Software Development Kit
Después instale la API de IDS peak y la IPL Python Bindings en la versión que se ajuste a su versión de Python. Lo más sencillo es hacerlo mediante "pip", el programa de administración de paquetes Python, utilizando PowerShell (como administrador):
python -m pip install --upgrade pip
pip install "C:\Program Files\IDS\ids_peak\sdk\api\binding\python\wheel\x86_64\ids_peak-1.2.0.5-cp38-cp38-win_amd64.whl"
pip install "C:\Program Files\IDS\ids_peak\sdk\ipl\binding\python\wheel\x86_64\ids_peak_ipl-1.2.2.1-cp38-cp38-win_amd64.whl"
Jupyter Notebook
La instalación de esta aplicación web de código abierto también es muy sencilla utilizando pip:
pip install notebook
Para obtener más información sobre Jupyter Notebook:
Primeros pasos con Jupyter Notebook
Install Jupyter Notebook
Jupyter Documentation
Ejecutar Jupyter Notebooks
El paso siguiente es descomprimir el ejemplo de código abierto en una carpeta de su PC.
El paquete contiene solo un archivo. El Jupyter notebook de ejemplo.
ids-peak-python-sample-jupyter.zip
Servidor notebook
Abra una ventana Powershell (basta con los derechos de usuario) e inicie el servidor Jupyter Notebook.
Abrir Powershell en la carpeta
Inicie el servidor directamente en la carpeta de instalación del notebook de ejemplo y accederá a los cuadernos.
Para abrir una ventana de PowerShell directamente en una carpeta específica, primero vaya a este directorio en el explorador, escriba "powershell" en la ruta de la parte superior y confirme con "Enter".
PS C:\Users\ids\ids-peak-jupyter-notebooks> jupyter notebook
[I 12:12:45.115 NotebookApp] Serving notebooks from local directory: C:\Users\ids\ids-peak-jupyter-notebooks
[I 12:12:45.115 NotebookApp] The Jupyter Notebook is running at:
[I 12:12:45.115 NotebookApp] http://localhost:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] or http://127.0.0.1:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
El servidor notebook se abrirá en su navegador web por defecto al iniciarse y mostrará alguna información en el shell, incluyendo la URL de la aplicación web (http://localhost:8888 por defecto). Cuando el servidor está abierto en el navegador se ve el panel de control de Notebook, que muestra una lista de cuadernos, archivos y subdirectorios en el directorio donde se inició el servidor notebook.
Utilizar Notebook
Ahora abra el notebook "ids-peak-python-sample-jupyter.jpynb" en el servidor.
El notebook tiene comentarios y es autoexplicativo. Puede ejecutarlo y también personalizarlo según sus necesidades y volver a guardarlo. El IDS peak Jupyter Notebook le guía en el manejo básico de las cámaras uEye+ mediante Python, como es la búsqueda y apertura de los dispositivos, la configuración de la cámara y la captura de imágenes Además, explica cómo se convierten los datos de imagen en diferentes formatos de datos para los procesos de procesamiento de imágenes de OpenCV utilizando la IPL (Image Processing Library) de IDS peak. También muestra el procesamiento posterior en OpenCV con algunas funciones estándar. Por último, comprobará lo rápido que se puede incorporar un marco de aprendizaje profundo como pyTorch para realizar una sencilla detección de objetos en las imágenes de la cámara.
Para más información sobre las cámaras IDS uEye+ o su programación con IDS peak, visite la Knowledge Base de nuestra página web o póngase en contacto con nuestro servicio de asesoramiento de sistemas.
Consejo: seminario web uEye+
En nuestro seminario web "Rapid prototyping camera applications" se enseña cómo se programa con la IDS peak Pyhton Interface con ayuda de este Jupiter Notebook.