Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Technologie de l'Internet des objets

Les logiciels open source répondent aux vastes besoins des développeurs de robot-vision


Cet article fait partie d'un projet spécial AspenCore sur les robots guidés par la vision.

Les applications de vision robotique peuvent apporter un ensemble complexe d'exigences, mais les bibliothèques open source sont prêtes à fournir des solutions pour presque tous les besoins. Les développeurs peuvent trouver des packages open source allant du traitement d'image de base et de la reconnaissance d'objets à la planification de mouvement et à l'évitement des collisions et plus que ce qui peut être mentionné beaucoup moins étant donné leur intégralité dans un bref article. Néanmoins, voici quelques packages clés de traitement d'images open source qui peuvent aider les développeurs à mettre en œuvre des systèmes robotiques sophistiqués. (Remarque :ce rapport se concentre sur les bibliothèques d'algorithmes plus fondamentaux basés sur l'image et exclut spécifiquement les logiciels open source pour la vision robotique basée sur l'IA.)

Aucun article sur les logiciels de vision robotique ne peut manquer de mettre en évidence la bibliothèque Open Source Computer Vision (OpenCV) [source]. Parmi les progiciels open source disponibles, OpenCV est peut-être le plus largement utilisé et le plus riche en fonctionnalités. Mettant en œuvre plus de 2 500 algorithmes, la distribution OpenCV répond aux exigences de traitement d'image dans une série de modules, qui comprend notamment les suivants :

Écrit en C++, OpenCV est disponible avec des interfaces pour C++, Python, Java et Matlab et prend en charge Windows, Linux, Android et Mac OS. Outre sa prise en charge des jeux d'instructions SIMD (instruction unique, données multiples), OpenCV fournit une accélération GPU basée sur CUDA pour de nombreuses fonctions via son module gpu et une accélération OpenCL via son module ocl. Récemment publié, OpenCV 4.0 apporte un certain nombre d'améliorations de performances et de capacités, y compris la mise en œuvre du populaire algorithme Kinect Fusion.

Pour sa fonctionnalité, OpenCV peut nécessiter une courbe d'apprentissage qui dépasse la patience des développeurs qui cherchent à évoluer rapidement avec la vision robotique. Pour ces développeurs, SimpleCV [source] basé sur Python pourrait être la réponse. Construit sur OpenCV, SimpleCV fournit les fonctionnalités requises par les développeurs avancés de vision robotique, mais fournit un cadre accessible qui aide les développeurs moins expérimentés à explorer les fonctions de vision industrielle de base avec de simples appels de fonction Python. Par exemple, les développeurs peuvent rapidement implémenter des fonctions couramment utilisées telles que le seuillage d'images à l'aide d'une simple méthode intégrée dans la classe SimpleCV Image (img.binarize() dans la liste ci-dessous) et enfin afficher les résultats illustrés à la figure 1.

de SimpleCV import Image, Color, Display # Crée une fonction qui fait une moitié et la moitié de l'image.def halfsies (left, right):result =left # recadrer l'image de droite pour qu'elle soit juste le côté droit. crop =right.crop(right.width/2.0,0,right.width/2.0,right.height) # collez maintenant le recadrage sur l'image de gauche. result =result.blit(crop,(left.width/2,0)) # renvoie les résultats. return result# Charger une image depuis imgur.img =Image('http://i.imgur.com/lfAeZ4n.png')# binariser l'image en utilisant un seuil de 90# et inverser les résultats.output =img.binarize( 90).invert()# crée l'image côte à côte.result =halfsies(img,output)# affiche l'image résultante.result.show()# enregistre les résultats dans un fichier.result.save('juniperbinary.png' )


Figure 1. Résultats du code Python répertorié ci-dessus (Source :SimpleCV)

Outre leurs fonctions de traitement d'image de base, OpenCV et SimpleCV implémentent un certain nombre d'algorithmes de traitement d'image de haut niveau dont les systèmes robotiques ont besoin pour travailler avec des objets ou fonctionner en toute sécurité dans leur environnement physique. L'une des structures de données fondamentales utilisées dans bon nombre de ces calculs est le nuage de points - une collection de points de données multidimensionnels qui représentent un objet (Figure 2). Acquis à partir de caméras, le nuage de points d'un objet est utilisé pour des opérations robotiques fondamentales telles que l'identification, l'alignement et l'ajustement d'objets. Pour travailler avec des nuages ​​de points, la bibliothèque de nuages ​​de points (PCL) [source] implémente des algorithmes de filtrage, d'ajustement, d'extraction de points clés, de segmentation et bien plus encore.


Figure 2. Ensemble de données de nuages ​​de points pour un tore de base. (Source :Wikimedia Commons/Kieff).


Technologie de l'Internet des objets

  1. Mises à jour logicielles dans l'IoT :une introduction à SOTA
  2. GE va lancer une société IIoT de 1,2 milliard de dollars
  3. Tout devient IoT
  4. Là où l'ancien rencontre l'IoT, l'intégration SaaS
  5. Software AG prévoit l'avenir de l'IoT
  6. Dans le domaine industriel, un logiciel digne de confiance rime avec sécurité
  7. Tata vante les avantages de l'IIoT
  8. Les défis du test logiciel des appareils IOT
  9. 10 signes que votre logiciel ERP doit être amélioré