{"id":8827,"date":"2024-07-17T16:53:32","date_gmt":"2024-07-17T14:53:32","guid":{"rendered":"https:\/\/niryo.com\/?p=8827"},"modified":"2024-07-18T11:08:52","modified_gmt":"2024-07-18T09:08:52","slug":"visual-picking-intelligence-artificielle-tensorflow","status":"publish","type":"post","link":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/","title":{"rendered":"Le visual picking avec l&rsquo;Intelligence Artificielle en utilisant TensorFlow"},"content":{"rendered":"<h2><strong>Est-il possible pour Ned2 de reconna\u00eetre plusieurs objets sur son espace de travail ?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">OUI, sans aucun doute ! Gr\u00e2ce \u00e0 <strong>Tensorflow<\/strong> (un outil d&rsquo;apprentissage automatique \u00e0 code source libre d\u00e9velopp\u00e9 par Google), la reconnaissance de multiples objets est devenue possible.<\/span><\/p>\n<p><strong>Vous avez une Ned2 et vous \u00eates curieux de tester cette fonctionnalit\u00e9 ?<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">C&rsquo;est tr\u00e8s simple, tout ce dont vous avez besoin, c&rsquo;est de votre Ned2, du kit de vision et de son espace de travail, de la grande pince et de plusieurs objets. Nous utiliserons du chocolat parce que nous en avons envie, je veux dire, qui n&rsquo;en a pas envie ?<\/span><\/p>\n<p><strong>Sommaire :<\/strong><\/p>\n<ol>\n<li><strong> Comment installer\/pr\u00e9parer mon espace de travail ?<\/strong><\/li>\n<li><strong> Comment lancer l&rsquo;application sous Windows ?<\/strong><\/li>\n<li><strong> Comment lancer l&rsquo;application sous Linux ?<\/strong><\/li>\n<li><strong> Le lancement est fait, mais il y a quelque chose qui ne va pas<\/strong><\/li>\n<li><strong> Le processus :<\/strong><\/li>\n<\/ol>\n<ul>\n<li><strong> Comment cr\u00e9er ma base de donn\u00e9es ? (Reconnaissance d&rsquo;objets)<\/strong><\/li>\n<li><strong> Comment suivre les objets ?<\/strong><\/li>\n<li><strong> D\u00e9monstration !<\/strong><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><strong>Comment configurer\/pr\u00e9parer mon mat\u00e9riel et mes logiciels ?<\/strong><\/h2>\n<h3><strong>Le mat\u00e9riel<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">La premi\u00e8re chose \u00e0 faire est de calibrer l&rsquo;espace de travail avec <strong>Niryo Studio<\/strong>. Aussi, le nom de l&rsquo;espace de travail doit correspondre \u00e0 celui que vous avez renseign\u00e9 dans le programme du robot (par d\u00e9faut, le nom est \u00ab default_workspace \u00bb).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si votre espace de travail n&rsquo;est pas en face du robot, vous devrez changer la variable \u00ab observation_pose \u00bb pour que le robot puisse voir les quatre rep\u00e8res de l&rsquo;espace de travail.<\/span><\/p>\n<h3><strong>Logiciel<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Tout d&rsquo;abord, installez PyNiryo. Ensuite, t\u00e9l\u00e9chargez le <\/span><a href=\"https:\/\/github.com\/NiryoRobotics\/ned_applications\/tree\/master\/examples\/Vision_Pick_Artificial_Intelligence_Tensorflow\"><span style=\"font-weight: 400;\">code source<\/span><\/a><span style=\"font-weight: 400;\"> de l&rsquo;application sur notre Github. Supposons que vous allez cloner le d\u00e9p\u00f4t dans un dossier nomm\u00e9 &lsquo;tensorflow_ned&rsquo;. Vous pouvez le cloner avec la commande suivante\u00a0:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">git clone <\/span><a href=\"https:\/\/github.com\/NiryoRobotics\/ned_applications.git\"><span style=\"font-weight: 400;\">https:\/\/github.com\/NiryoRobotics\/ned_applications.git<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ensuite, ouvrez le fichier <strong>robot_gui.py<\/strong> et changez les variables <strong>robot_ip_address<\/strong> par l&rsquo;adresse IP priv\u00e9e et le nom de\u00a0<strong>l&rsquo;espace de travail<\/strong> de votre robot :<\/span><\/p>\n<p><span style=\"font-weight: 400;\">robot_ip_address = \u00ab Adresse IP de votre robot \u00bb<\/span><\/p>\n<p><span style=\"font-weight: 400;\">workspace = \u00ab espace de travail de votre robot \u00bb<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si vous utilisez la <strong>pompe \u00e0 vide<\/strong>, modifiez \u00e9galement la variable<strong> z_offset<\/strong>, qui est le d\u00e9calage entre l&rsquo;espace de travail et la hauteur cible. Cela permettra au Vacuum Pump d&rsquo;atteindre les pions pour les saisir. Comme le Vacuum Pump est plus court que la grande pince, vous pouvez modifier la variable z_offset en lui donnant une petite valeur n\u00e9gative, comme suit :<\/span><\/p>\n<p><span style=\"font-weight: 400;\">z_offset = -0.01<\/span><\/p>\n<h3><strong>Comment lancer l&rsquo;application sous Windows ?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Commencez par installer <\/span><a href=\"https:\/\/docs.anaconda.com\/anaconda\/install\/\"><span style=\"font-weight: 400;\">Anaconda<\/span><\/a><span style=\"font-weight: 400;\"> pour utiliser le script d&rsquo;installation de l&rsquo;application. Anaconda doit \u00eatre install\u00e9 \u00e0 son emplacement par d\u00e9faut (C:Usersanaconda3).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vous pouvez opter pour l&rsquo;installation simplifi\u00e9e ou l&rsquo;installation manuelle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dans le premier cas, il suffit d&rsquo;aller dans le dossier de l&rsquo;application, de lancer setup.bat pour installer toutes les biblioth\u00e8ques utilis\u00e9es, d&rsquo;accepter l&rsquo;installation de ces biblioth\u00e8ques, et de lancer run.bat.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Le programme devrait se lancer. Si ce n&rsquo;est pas le cas, lancez une installation manuelle.<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Ouvrez un terminal depuis Anaconda Navigator (CMD.exe Prompt, \u00ab Launch \u00bb). Vous devriez voir \u00ab (base) \u00bb affich\u00e9 \u00e0 gauche de votre terminal.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Mettez \u00e0 jour Anaconda :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda update -n base -c defaults conda<\/span><\/p>\n<ol start=\"3\">\n<li><span style=\"font-weight: 400;\">Cr\u00e9ez un environnement TensorFlow 2 avec Python 3.6 :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda create -n tf_ned tensorflow=2 Python=3.6<\/span><\/p>\n<ol start=\"4\">\n<li><span style=\"font-weight: 400;\">Activez l&rsquo;environnement TensorFlow :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda activate tf_ned\u00a0<\/span><\/p>\n<ol start=\"5\">\n<li><span style=\"font-weight: 400;\">Vous devriez maintenant voir \u00ab (tf_ned) \u00bb au lieu de \u00ab (base) \u00bb \u00e0 gauche de votre terminal, mettez \u00e0 jour TensorFlow :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">pip install -upgrade tensorflow<\/span><\/p>\n<ol start=\"6\">\n<li><span style=\"font-weight: 400;\">Installer les biblioth\u00e8ques opencv, pygame, et pygame-menu :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">install opencv-python pygame pygame-menu<\/span><\/p>\n<ol start=\"7\">\n<li><span style=\"font-weight: 400;\">Allez dans le dossier de l&rsquo;application :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">cd Desktop\/tensorflow_ned<\/span><\/p>\n<ol start=\"8\">\n<li><span style=\"font-weight: 400;\">Lancez le programme :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">python robot_gui.py<\/span><\/p>\n<ol start=\"9\">\n<li><span style=\"font-weight: 400;\">Lancez le programme :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">run.bat<\/span><\/p>\n<ol start=\"10\">\n<li><span style=\"font-weight: 400;\">Ou dans le r\u00e9pertoire de l&rsquo;application :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda activate tf_ned python robot_gui.py<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Comment lancer l&rsquo;application sous Linux ?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Commencez par installer <\/span><a href=\"https:\/\/docs.anaconda.com\/anaconda\/install\/\"><span style=\"font-weight: 400;\">Anaconda<\/span><\/a><span style=\"font-weight: 400;\"> pour utiliser le script d&rsquo;installation de l&rsquo;application.<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Ouvrez un terminal. Vous devriez trouver \u00ab (base) \u00bb affich\u00e9 \u00e0 gauche de votre nom d&rsquo;utilisateur.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Mettez \u00e0 jour Anaconda :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda update -n base -c defaults conda<\/span><\/p>\n<ol start=\"3\">\n<li><span style=\"font-weight: 400;\">Cr\u00e9ez un environnement TensorFlow 2 avec Python 3.6 :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda create -n tf_ned tensorflow=2 Python=3.6<\/span><\/p>\n<ol start=\"4\">\n<li><span style=\"font-weight: 400;\">Activez l&rsquo;environnement TensorFlow :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda activate tf_ned<\/span><\/p>\n<ol start=\"5\">\n<li><span style=\"font-weight: 400;\">Vous devriez maintenant voir \u00ab (tf_ned) \u00bb au lieu de \u00ab (base) \u00bb \u00e0 gauche de votre terminal. Mettez \u00e0 jour TensorFlow :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">pip install -upgrade tensorflow<\/span><\/p>\n<ol start=\"6\">\n<li><span style=\"font-weight: 400;\">Installer les biblioth\u00e8ques opencv, pygame, et pygame-menu :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">install opencv-python pygame pygame-menu<\/span><\/p>\n<ol start=\"7\">\n<li><span style=\"font-weight: 400;\">Allez dans le dossier de l&rsquo;application :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">cd tensorflow_ned<\/span><\/p>\n<ol start=\"8\">\n<li><span style=\"font-weight: 400;\">Lancer le programme :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">python robot_gui.py<\/span><\/p>\n<ol start=\"9\">\n<li><span style=\"font-weight: 400;\">Entrez la commande :<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">conda activate tf_ned python3 robot_gui.py<\/span><\/p>\n<h2><strong>Le lancement est effectu\u00e9, mais quelque chose ne va pas dans le processus.<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Assurez-vous que Ned2 est capable de voir les quatre points de rep\u00e8re de l&rsquo;espace de travail depuis sa position d&rsquo;observation, sinon il passera automatiquement en mode d&rsquo;apprentissage et l&rsquo;interface graphique sera rouge.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pour que l&rsquo;interface graphique devienne verte, d\u00e9placez la cam\u00e9ra de mani\u00e8re \u00e0 ce que le robot puisse voir les quatre points de rep\u00e8re.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ensuite, il suffit de confirmer la position souhait\u00e9e soit <strong>en cliquant sur l&rsquo;\u00e9cran ou en appuyant sur la touche entr\u00e9e,<\/strong> et elle sera sauvegard\u00e9e pour la prochaine utilisation.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Voici \u00e0 quoi devrait ressembler la page d&rsquo;accueil de l&rsquo;interface :\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Le processus :<\/strong><\/p>\n<p><strong>Comment cr\u00e9er ma base de donn\u00e9es ? (Reconnaissance d&rsquo;objets)<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Pr\u00eat \u00e0 prendre des photos ? Vous devez prendre <strong>au moins 20 photos de chaque objet<\/strong> pour obtenir de bons r\u00e9sultats. Essayez \u00e0 chaque fois de changer l&rsquo;angle et les conditions d&rsquo;\u00e9clairage.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vous pourrez retrouver les photos que vous avez prises dans le dossier \u00ab data \u00bb, dans un dossier nomm\u00e9 avec le nom de l&rsquo;objet concern\u00e9.<\/span><\/p>\n<p><strong>Comment suivre les objets ?<\/strong><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Tout d&rsquo;abord<\/strong>, la prise d&rsquo;image \u00ab take_workspace_img() \u00bb permet au robot d&rsquo;envoyer une image, de la recadrer, et d&rsquo;ajuster la distorsion de l&rsquo;objectif.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Ensuite<\/strong>, le calcul du masque \u00ab objs_mask() \u00bb utilise d&rsquo;une part <\/span><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/stable\/py_tutorials\/py_imgproc\/py_colorspaces\/py_colorspaces.html\"><span style=\"font-weight: 400;\">cv2.cvtColor()<\/span><\/a><span style=\"font-weight: 400;\"> pour modifier la colorim\u00e9trie de l&rsquo;image de RGB \u00e0 HLS et d&rsquo;autre part <\/span><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/stable\/py_tutorials\/py_imgproc\/py_colorspaces\/py_colorspaces.html\"><span style=\"font-weight: 400;\">cv2.inRange()<\/span><\/a><span style=\"font-weight: 400;\"> pour obtenir un masque qui d\u00e9limite approximativement les objets \u00e0 d\u00e9tecter. Afin de ne conserver que les objets ayant une surface suffisante, il faut combiner les fonctions <\/span><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_morphological_ops\/py_morphological_ops.html\"><span style=\"font-weight: 400;\">cv2.dilate()<\/span><\/a><span style=\"font-weight: 400;\"> et <\/span><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_morphological_ops\/py_morphological_ops.html\"><span style=\"font-weight: 400;\">cv2.erode()<\/span><\/a><span style=\"font-weight: 400;\"> pour \u00e9liminer les impuret\u00e9s de l&rsquo;image.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Voici \u00e0 quoi devrait ressembler l&rsquo;image :<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Troisi\u00e8mement<\/strong>, l&rsquo;extraction des objets \u00ab extract_objs() \u00bb utilise la fonction <\/span><a href=\"https:\/\/docs.opencv.org\/master\/d4\/d73\/tutorial_py_contours_begin.html\"><span style=\"font-weight: 400;\">cv2.findContours()<\/span><\/a><span style=\"font-weight: 400;\"> pour obtenir la liste des contours des objets se trouvant sur le masque pr\u00e9c\u00e9demment calcul\u00e9. Ensuite, elle calcule le centre ainsi que l&rsquo;angle des objets \u00e0 l&rsquo;aide des fonctions de vision.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Enfin<\/strong>, nous obtenons un carr\u00e9 contenant le plus petit objet et utilisons cette information pour extraire l&rsquo;objet de l&rsquo;image et le placer verticalement (la m\u00eame orientation facilite la reconnaissance pour TensorFlow).<\/span><\/p>\n<h2><strong>D\u00e9monstration !<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Lancez l&rsquo;entra\u00eenement soit en lan\u00e7ant training.py (python training.py), soit en cliquant sur le menu \u00ab Train \u00bb et le bouton \u00ab Full training \u00bb dans l&rsquo;interface graphique.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Votre mod\u00e8le TensorFlow est cr\u00e9\u00e9 !<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cr\u00e9ez ensuite une liste qui contient toutes les images du dossier \u00ab data \u00bb et une liste qui contient le label correspondant \u00e0 chaque image. Lorsque l&rsquo;entra\u00eenement est termin\u00e9, testez les performances du mod\u00e8le et sauvegardez-le dans le dossier \u00ab model \u00bb.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si vous souhaitez lancer un entra\u00eenement plus rapide, utilisez le bouton \u00ab Lite training \u00bb.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00c0 la fin, lancez robot.py (python robot.py) et entrez le nom de l&rsquo;objet que vous voulez que Ned2 saisisse, ou utilisez le menu \u00ab Play \u00bb de l&rsquo;interface graphique. Le programme utilise le mod\u00e8le pr\u00e9c\u00e9demment entra\u00een\u00e9 pour reconna\u00eetre les diff\u00e9rents objets de l&rsquo;espace de travail.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Est-il possible pour Ned2 de reconna\u00eetre plusieurs objets sur son espace de travail ? OUI, sans aucun doute ! Gr\u00e2ce \u00e0 Tensorflow (un outil d&rsquo;apprentissage automatique \u00e0 code source libre d\u00e9velopp\u00e9 par Google), la reconnaissance de multiples objets est devenue possible. Vous avez une Ned2 et vous \u00eates curieux de tester cette fonctionnalit\u00e9 ? C&rsquo;est [&hellip;]<\/p>\n","protected":false},"author":146,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[33,80,91],"tags":[],"class_list":["post-8827","post","type-post","status-publish","format-standard","hentry","category-non-classifiee","category-autour-de-la-robotique","category-intelligence-artificiel-et-robotique"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Picking visuel avec intelligence artificielle avec TensorFlow - Niryo<\/title>\n<meta name=\"description\" content=\"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l&#039;aide de TensorFlow.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Picking visuel avec intelligence artificielle avec TensorFlow - Niryo\" \/>\n<meta property=\"og:description\" content=\"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l&#039;aide de TensorFlow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Niryo\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-17T14:53:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-18T09:08:52+00:00\" \/>\n<meta name=\"author\" content=\"Delphine Guers\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Delphine Guers\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\"},\"author\":{\"name\":\"Delphine Guers\",\"@id\":\"https:\/\/niryo.com\/fr\/#\/schema\/person\/b48100bef21979d55353ba5b8e0f61f7\"},\"headline\":\"Le visual picking avec l&rsquo;Intelligence Artificielle en utilisant TensorFlow\",\"datePublished\":\"2024-07-17T14:53:32+00:00\",\"dateModified\":\"2024-07-18T09:08:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\"},\"wordCount\":1299,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/niryo.com\/fr\/#organization\"},\"articleSection\":[\"Non classifi\u00e9(e)\",\"Autour de la robotique\",\"Intelligence artificiel et robotique\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\",\"url\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\",\"name\":\"Picking visuel avec intelligence artificielle avec TensorFlow - Niryo\",\"isPartOf\":{\"@id\":\"https:\/\/niryo.com\/fr\/#website\"},\"datePublished\":\"2024-07-17T14:53:32+00:00\",\"dateModified\":\"2024-07-18T09:08:52+00:00\",\"description\":\"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l'aide de TensorFlow.\",\"breadcrumb\":{\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/niryo.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le visual picking avec l&rsquo;Intelligence Artificielle en utilisant TensorFlow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/niryo.com\/fr\/#website\",\"url\":\"https:\/\/niryo.com\/fr\/\",\"name\":\"Niryo\",\"description\":\"Empower your robotics potential - Collaborative robots\",\"publisher\":{\"@id\":\"https:\/\/niryo.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/niryo.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/niryo.com\/fr\/#organization\",\"name\":\"Niryo\",\"url\":\"https:\/\/niryo.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/niryo.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/niryo.com\/wp-content\/uploads\/2026\/02\/Favicon-Niryo.svg\",\"contentUrl\":\"https:\/\/niryo.com\/wp-content\/uploads\/2026\/02\/Favicon-Niryo.svg\",\"width\":512,\"height\":512,\"caption\":\"Niryo\"},\"image\":{\"@id\":\"https:\/\/niryo.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/10970402\/admin\/feed\/posts\/\",\"https:\/\/www.tiktok.com\/@niryo_robotics\",\"https:\/\/www.instagram.com\/niryo_robotics\/\",\"https:\/\/discord.com\/invite\/EqpPYTf9FJ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/niryo.com\/fr\/#\/schema\/person\/b48100bef21979d55353ba5b8e0f61f7\",\"name\":\"Delphine Guers\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g\",\"caption\":\"Delphine Guers\"},\"url\":\"https:\/\/niryo.com\/fr\/author\/d-guersniryo-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Picking visuel avec intelligence artificielle avec TensorFlow - Niryo","description":"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l'aide de TensorFlow.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/","og_locale":"fr_FR","og_type":"article","og_title":"Picking visuel avec intelligence artificielle avec TensorFlow - Niryo","og_description":"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l'aide de TensorFlow.","og_url":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/","og_site_name":"Niryo","article_published_time":"2024-07-17T14:53:32+00:00","article_modified_time":"2024-07-18T09:08:52+00:00","author":"Delphine Guers","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Delphine Guers","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#article","isPartOf":{"@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/"},"author":{"name":"Delphine Guers","@id":"https:\/\/niryo.com\/fr\/#\/schema\/person\/b48100bef21979d55353ba5b8e0f61f7"},"headline":"Le visual picking avec l&rsquo;Intelligence Artificielle en utilisant TensorFlow","datePublished":"2024-07-17T14:53:32+00:00","dateModified":"2024-07-18T09:08:52+00:00","mainEntityOfPage":{"@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/"},"wordCount":1299,"commentCount":0,"publisher":{"@id":"https:\/\/niryo.com\/fr\/#organization"},"articleSection":["Non classifi\u00e9(e)","Autour de la robotique","Intelligence artificiel et robotique"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/","url":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/","name":"Picking visuel avec intelligence artificielle avec TensorFlow - Niryo","isPartOf":{"@id":"https:\/\/niryo.com\/fr\/#website"},"datePublished":"2024-07-17T14:53:32+00:00","dateModified":"2024-07-18T09:08:52+00:00","description":"Avec notre bras robotique Ned2 \u00e0 6 axes, nous avons effectu\u00e9 une s\u00e9lection visuelle avec intelligence artificielle \u00e0 l'aide de TensorFlow.","breadcrumb":{"@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/niryo.com\/fr\/visual-picking-intelligence-artificielle-tensorflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/niryo.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Le visual picking avec l&rsquo;Intelligence Artificielle en utilisant TensorFlow"}]},{"@type":"WebSite","@id":"https:\/\/niryo.com\/fr\/#website","url":"https:\/\/niryo.com\/fr\/","name":"Niryo","description":"Empower your robotics potential - Collaborative robots","publisher":{"@id":"https:\/\/niryo.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/niryo.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/niryo.com\/fr\/#organization","name":"Niryo","url":"https:\/\/niryo.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/niryo.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/niryo.com\/wp-content\/uploads\/2026\/02\/Favicon-Niryo.svg","contentUrl":"https:\/\/niryo.com\/wp-content\/uploads\/2026\/02\/Favicon-Niryo.svg","width":512,"height":512,"caption":"Niryo"},"image":{"@id":"https:\/\/niryo.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/10970402\/admin\/feed\/posts\/","https:\/\/www.tiktok.com\/@niryo_robotics","https:\/\/www.instagram.com\/niryo_robotics\/","https:\/\/discord.com\/invite\/EqpPYTf9FJ"]},{"@type":"Person","@id":"https:\/\/niryo.com\/fr\/#\/schema\/person\/b48100bef21979d55353ba5b8e0f61f7","name":"Delphine Guers","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff28995457c7fc605dbdf1bac643ad579fa4d74d0e5cf3ccb7eec9b70193888e?s=96&d=mm&r=g","caption":"Delphine Guers"},"url":"https:\/\/niryo.com\/fr\/author\/d-guersniryo-com\/"}]}},"_links":{"self":[{"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/posts\/8827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/users\/146"}],"replies":[{"embeddable":true,"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/comments?post=8827"}],"version-history":[{"count":0,"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/posts\/8827\/revisions"}],"wp:attachment":[{"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/media?parent=8827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/categories?post=8827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niryo.com\/fr\/wp-json\/wp\/v2\/tags?post=8827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}