Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

El software de código abierto satisface las amplias necesidades de los desarrolladores de visión robótica


Este artículo es parte de un proyecto especial de AspenCore sobre robots guiados por visión.

Las aplicaciones de visión robótica pueden traer un conjunto complejo de requisitos, pero las bibliotecas de código abierto están listas para brindar soluciones para casi todas las necesidades. Los desarrolladores pueden encontrar paquetes de código abierto que van desde el procesamiento básico de imágenes y el reconocimiento de objetos hasta la planificación del movimiento y la prevención de colisiones, y más de lo que posiblemente se pueda mencionar y mucho menos dado su derecho completo en un breve artículo. Sin embargo, aquí hay algunos paquetes clave de procesamiento de imágenes de código abierto que pueden ayudar a los desarrolladores a implementar sistemas robóticos sofisticados. (Nota:este informe se centra en bibliotecas para algoritmos basados ​​en imágenes más fundamentales y excluye específicamente el software de código abierto para la visión de robots basada en inteligencia artificial).

Ningún artículo sobre software de visión robótica puede dejar de destacar la Biblioteca de visión artificial de código abierto (OpenCV) [fuente]. Entre los paquetes de software de código abierto disponibles, OpenCV es quizás el más utilizado y funcionalmente rico. Al implementar más de 2500 algoritmos, la distribución de OpenCV aborda los requisitos de procesamiento de imágenes en una serie de módulos, que incluyen lo siguiente, entre otros:

Escrito en C ++, OpenCV está disponible con interfaces para C ++, Python, Java y Matlab y es compatible con Windows, Linux, Android y Mac OS. Junto con su soporte para conjuntos de instrucciones de instrucción única, múltiples datos (SIMD), OpenCV proporciona aceleración de GPU basada en CUDA para muchas funciones a través de su módulo gpu y aceleración OpenCL a través de su módulo ocl. Recientemente lanzado, OpenCV 4.0 trae una serie de mejoras de rendimiento y capacidades, incluida la implementación del popular algoritmo Kinect Fusion.

Por su funcionalidad, OpenCV puede requerir una curva de aprendizaje que exceda la paciencia de los desarrolladores que buscan moverse rápidamente con visión robótica. Para estos desarrolladores, SimpleCV [fuente] basado en Python podría ser la respuesta. Construido sobre OpenCV, SimpleCV proporciona la funcionalidad requerida por los desarrolladores avanzados de visión robótica, pero proporciona un marco accesible que ayuda a los desarrolladores menos experimentados a explorar funciones básicas de visión artificial con simples llamadas a funciones de Python. Por ejemplo, los desarrolladores pueden implementar rápidamente funciones de uso común, como el umbral de imagen, utilizando un método integrado simple en la clase de imagen SimpleCV (img.binarize () en la lista a continuación) y finalmente mostrar los resultados que se muestran en la Figura 1.

 de SimpleCV import Image, Color, Display # Haga una función que haga mitad y mitad image.def mitades (izquierda, derecha):resultado =izquierda # recorta la imagen derecha para que sea solo el lado derecho. crop =right.crop (right.width / 2.0,0, right.width / 2.0, right.height) # ahora pega el recorte en la imagen de la izquierda. result =result.blit (crop, (left.width / 2,0)) # devuelve los resultados. return result # Cargar una imagen de imgur.img =Image ('http://i.imgur.com/lfAeZ4n.png') # binarizar la imagen usando un umbral de 90 # e invertir los resultados.output =img.binarize ( 90) .invert () # crea el lado a lado image.result =halfsies (img, output) # muestra el resultado image.result.show () # guarda los resultados en un archivo.result.save ('juniperbinary.png' ) 


Figura 1. Resultados del código Python enumerados anteriormente (Fuente:SimpleCV)

Junto con sus funciones básicas de procesamiento de imágenes, OpenCV y SimpleCV implementan una serie de algoritmos de procesamiento de imágenes de alto nivel que los sistemas robóticos necesitan para trabajar con objetos u operar de manera segura dentro de su entorno físico. Una de las estructuras de datos fundamentales que se utilizan en muchos de estos cálculos es la nube de puntos, una colección de puntos de datos multidimensionales que representan un objeto (Figura 2). Adquirida de cámaras, la nube de puntos de un objeto se utiliza para operaciones robóticas fundamentales como la identificación, alineación y ajuste de objetos. Para trabajar con nubes de puntos, la biblioteca de nubes de puntos (PCL) [fuente] implementa algoritmos para filtrado, ajuste, extracción de puntos clave, segmentación y mucho más.


Figura 2. Conjunto de datos de nube de puntos para un toro básico. (Fuente:Wikimedia Commons / Kieff).


Tecnología de Internet de las cosas

  1. Actualizaciones de software en IoT:una introducción a SOTA
  2. GE lanzará $ 1.2B IIoT Company
  3. Todo va a IoT
  4. Donde lo antiguo se encuentra con IoT, integración SaaS
  5. Software AG pronostica el futuro de IoT
  6. En el ámbito industrial, el software confiable significa seguridad
  7. Tata Extols Beneficios de IIoT
  8. Los desafíos de las pruebas de software de los dispositivos IOT
  9. Diez señales de que su software ERP debe mejorarse
  10. Uso de DevOps para abordar los desafíos del software integrado
  11. Los 7 mejores podcasts para desarrolladores de IOT