<img alt="" src="https://secure.leadforensics.com/11743.png" style="display:none;">

Elegir el software adecuado para Visión Embebida

 

Bienvenido a esta nueva entrega de nuestros blogs sobre visión artificial. Esta semana concluiremos nuestra revisión sobre visión embebida evaluando las opciones de software. Asegúrate de leer hasta el final, ya que vamos a sopesar muchos factores y llegaremos a una conclusión sobre todos estos puntos.

Ya sea que estés interesado en crear potentes sistemas de visión embebidos, dispositivos de visión compactos o simplemente quieras aprender más sobre el tema, este artículo es para ti. En última instancia, la visión embebida es el futuro de muchas aplicaciones de visión artificial en robótica, automatización industrial, medicina, ciencias de la vida y la industria automotriz, por nombrar solo algunas. Esperamos que disfrutes leyendo.

VS 1-1

Software de visión artificial de código abierto frente a software con licencia

Cuando se trata de elegir software para sistemas de visión embebidos, la primera pregunta a responder es esta: ¿utilizo software de código abierto o software de visión artificial con licencia, como un SDK de pago? Incluso los mejores especialistas se enfrentan ocasionalmente a este mismo dilema. Hacer una selección entre los dos puede sonar fácil, pero a menudo no lo es. Vamos a sopesar los pros y los contras del software de visión artificial de código abierto para la visión embebida.

Ventajas del software de visión embebida de código abierto

Coste

A pesar de que esta es una ventaja obvia, es importante reiterar que el software de código abierto es, por definición, libre y abierto. Tampoco conlleva ningún coste de licencia, por lo que cuando envías cualquier sistema integrado utilizando tu software, no es necesario pagar de forma recurrente la licencia de software, lo que hace que este tipo de enfoque sea factible para implementaciones de sistemas de alto volumen con presupuestos limitados.

Comunidad

Las plataformas de código abierto fomentan el intercambio de ideas, lo que permite a los desarrolladores y usuarios colaborar en temas clave de rendimiento y problemas que puedan surgir, especialmente porque el software desarrollado no está regulado. OpenCV es un gran lugar para compartir ideas y plantear preguntas a la comunidad de desarrolladores de OpenCV.

Interoperabilidad

El software de código abierto cumple con los modelos de código abierto de manera mucho más confiable que el software de visión artificial profesional. Si está interactuando continuamente con otras industrias y usuarios, y no desea ser restringido por las interfaces establecidas, entonces el código abierto es el camino a seguir.

Si bien todo esto puede sonar muy atractivo, antes de saltar a OpenCV y apresurarse a tomar una decisión, es esencial considerar los siguientes inconvenientes potenciales.

 undefined-Nov-18-2021-05-03-00-22-PM

OpenCV es una biblioteca de software de visión artificial de código abierto muy popular

Inconvenientes del software de visión embebida de código abierto

Desarrollo de Software

A menos que puedas hacer tú mismo el desarrollo, necesitarás un equipo de desarrolladores, ya sea interno o externo, con excelentes habilidades de software en varios lenguajes de programación y conocimiento extenso del diseño de software, la terminología de procesamiento de imágenes y los algoritmos.

Soporte y mejoras

El soporte es posiblemente el mayor problema con el software de visión artificial de código abierto.

A pesar de que algunos desarrolladores de código abierto ofrecen garantía, el soporte disponible es limitado en caso de que encuentre problemas de incompatibilidad, necesite actualizaciones o se encuentre con errores que puedan paralizar el desarrollo.

Además, la incompatibilidad con otros sistemas podría causar problemas con el hardware y, sin soporte, esto probablemente resultaría difícil de resolver, acaparando recursos y perdiendo tiempo y dinero en el proceso.

En términos de mejoras, si necesita que determinado algoritmo se ejecute más rápido o con mayor precisión, es posible que tenga que esperar hasta que esta mejora llegue, si es que lo hace.

Lenguaje de codificación elegido

También debe considerar el lenguaje en el que elija desarrollar su software y si el software de visión de código abierto será lo suficientemente flexible como para permitirle escribir en este lenguaje. La pregunta clave que debe hacerse es la siguiente: Si elijo este software de código abierto, ¿puedo programar en un lenguaje de programación con el que ya estoy familiarizado?

undefined-Nov-18-2021-05-03-00-41-PM

Python, C#, C++ y Visual Basic son lenguajes de programación ampliamente utilizados para visión artificial, pero no todos son compatibles con software de código abierto.

Fiabilidad

Una vez más, es crucial considerar la longevidad potencial y la fiabilidad del software de código abierto. ¿Ha sido ampliamente probado por expertos en visión artificial? De lo contrario, podría correr el riesgo de tomar el proyecto que un aficionado a la visión artificial tiene como hobby, e integrarlo en un entorno profesional.

Entornos de desarrollo/pruebas

Sería un error implementar nuevos algoritmos en sus sistemas de visión embebidos sin probarlos primero. ¿Hay alguna manera de probar su algoritmo sin usar el sistema completo? Si no es así, y te saltas esta fase, usar código abierto puede detener el desarrollo de tu proyecto.

Funcionalidad

¿Cómo de complejas son las funciones previstas para tu proyecto de visión artificial? ¿Puedes hacer lo que buscas con el software de código abierto disponible, o necesitará escribir algoritmos a medida? De lo contrario, es posible que te enfrentes a los mismos problemas que hemos mencionado en Desarrollo de Software.

Eficiencia

Otra gran pregunta es si el software de código abierto hará un buen uso de la potencia de procesado disponible en su hardware. Por ejemplo, ¿el algoritmo que necesitas podrá ejecutarse a la velocidad que deseas? Con paquetes con licencia profesional, los algoritmos se comparan y optimizan constantemente para las últimas instrucciones de CPU, como SSE, SSE2, SSE3, SSE4, AVX, AVX-512, etc.

 

Hardware compatible

Llevándolo un paso más allá, ¿qué pasa si los algoritmos de código abierto no son compatibles en absoluto con su hardware de visión artificial? Es una pregunta particularmente crucial que plantaerse en el mundo de la visión embebida, donde las opciones de hardware pueden estar más limitadas debido al tamaño y las restricciones de integración física. ¿Tu software funciona con la CPU que está utilizando? ¿Y con las cámaras de visión embebidas, los frame grabbers , etc.?

 

Decidiendo entre los SDKs de código abierto y con licencia

La conclusión es esta: si eres un aficionado a la visión artificial, y los problemas de software no te costarán miles de euros a largo plazo, entonces el software de código abierto es una buena opción.

Pero si eres es un OEM o integrador de sistemas, podrías estar ser error elegir un software de código abierto para implementar en tus sistemas de visión embebidos.

 

Sin embargo, para echar más leña al fuego, también hay una gran decisión que tomar en cuanto al hardware...

 VS 2

ARM/FPGA frente a Procesadores Intel para Visión Embebida

CPUs Intel

Los paquetes de software profesionales de visión artificial (como MIL X) están muy optimizados para las plataformas compatibles. En el caso de los sistemas de visión basados en PC, casi todo se ejecuta en CPU Intel. Por ejemplo, la última versión de MIL de Matrox está optimizada para la última versión de Intel® Advanced Vector Extensions 512 (AVX-512).

Las optimizaciones que funcionan para las CPUs Intel no funcionan para ARM, por lo que es necesario alguien que pueda hacer la optimización real de bajo nivel, especialmente si tiene un sistema de visión en tiempo real donde las cosas deben ejecutarse rápidamente.

Esto podría marcar la diferencia entre algoritmos de localización de patrones que se realizan en milisegundos frente a segundos, por ejemplo.

FPGAs

A continuación, llegamos a las FPGAs. Por lo general, necesitarás un desarrollador de hardware a mano que pueda trabajar con VHDL para tomar un algoritmo y hacer que se ejecute en una FPGA optimizada. Sin embargo, Matrox ofrece frame grabbers que vienen con FPGAs ya preinstaladas con algoritmos de visión artificial listos para ejecutar.

Picture3

Frame Grabber Matrox RadientPro CL

Lo mismo ocurre con la nueva cámara inteligente NET iam. Esta cámara inteligente permite a los usuarios sin experiencia en VHDL utilizar los recursos de FPGA para sus propias soluciones de visión.

Picture4

Cámara inteligente NET iam

También pueden usar bibliotecas comerciales, funciones OpenCV o NET, por lo que, en este caso, tal vez haya más matices en la decisión del software; y no sea sencilla una decisión todo o nada, mejor o peor entre el software de visión artificial de código abierto y con licencia, ya que esta cámara admitirá cualquiera de los dos.

 

Eligiendo un software de visión artificial con licencia

MIL X para Visión Embebida

Hay algunas opciones fantásticas cuando se trata de SDKs con licencia para visión artificial. Nosotros, por lo general, recomendamos MIL (Matrox Imaging Library) X, ya que representa lo mejor en software de visión artificial.

 Picture5

El hardware MIL X no solo es eficiente, altamente funcional y confiable, sino que también te permite usar una amplia gama de potentes herramientas de visión artificial. No tendrás que programar tus propios algoritmos: los expertos en software de Matrox ya han desarrollado una fantástica gama de funciones de visión artificial en MIL X.

Tampoco necesitas preocuparte por tu lenguaje de codificación preferido, ya que MIL X te permite escribir tu código en Python, C #, C ++ y Visual Basic.

MIL X es una interfaz de software común, lo que significa que el mismo código central desarrollado para aplicaciones de PC que se ejecutan en una CPU Intel con Windows, también se puede usar en un procesador ARM que ejecuta Linux, lo que lo hace perfecto para instalar en configuraciones de visión embebidas.

Además, MIL X está optimizado para hardware compatible con GenICam, lo que significa que, además de garantizar una mayor compatibilidad con el mercado, estarás cubierto por el soporte de auténticos profesionales de visión artificial.

El software con licencia como es MIL X no requiere el nivel de soporte interno que probablemente requeriría el software de código abierto, lo que significa que puedes avanzar en tu proyecto sin obstáculos.

Conclusión

Invertir cierta cantidad en la licencia de un gran SDK puede suponer inicialmente un gasto no deseable para los OEM y los integradores de sistemas, pero es uno que te ahorrará años de dolores de cabeza más adelante. Si eres un usuario final, o trabajas con procesadores ARM, entonces hay un poco más de margen para el debate, y con la preparación adecuada, tal vez el software de visión artificial de código abierto puede ser una opción para tu proyecto de visión embebida.

En última instancia, también se reduce a la cuestión de la optimización. En los sistemas embebidos, cuando no utilizas una CPU Intel, es esencial considerar realmente la velocidad requerida de tu sistema, cómo se optimizará el sistema para cumplir con ese requisito de velocidad y, finalmente, quién llevará a cabo este trabajo de optimización.

Soluciones de visión embebidas de ClearView Imaging

Con esto acabamos nuestra serie de artículos sobre Visión Embebida. Para obtener más información, consulta nuestra amplia gama de productos y soluciones de visión artificial.

¡Asegúrate de estar atento la próxima semana y a nuestra nueva serie de artículos sobre iluminación de visión artificial!

En ClearView, tenemos una amplia gama de conocimientos y experiencia en visión artificial para ayudarte a decidir la solución adecuada para tu proyecto.

Ofrecemos una amplia gama de componentes, y nuestros expertos están encantados de ayudarte sin importar cuál sea tu pregunta o problema. ¡No dudes en ponerte en contacto con nosotros y uno de nuestros expertos en visión artificial estará listo para ayudarte a poner en marcha su proyecto!

Contáctenos

 

Comentarios

LA VISIÓN ARTIFICIAL PROPORCIONA A LOS ORDENADORES LA CAPACIDAD DE VER

La visión artificial permite que los ordenadores puedan leer códigos de barra, códigos data matrix, marcado de piezas, reconocimiento óptico de caracteres (OCR) y verificación óptica de caracteres (OCV). – Aprende más sobre la tecnología de visión artificial aquí.

machine-vision-strip-cta-spanish.png