À l'aide d'un capteur RGBD tel que RealSense, l'apprentissage en profondeur est utilisé pour distinguer et déduire plusieurs objets arbitraires, et calculer les diamètres maximum et minimum qui passent par le centre de gravité de l'image. Le résultat peut être obtenu sous forme de rubrique ROS (mrcnn / result). https://github.com/moriitkys/mrcnn_measurement Si vous le trouvez utile, veuillez utiliser LGTM.
Voici comment mesurer la taille du pois mange-tout. J'ai également appris les boulons et les journaux ci-dessous par moi-même. Veuillez vous reporter ici (https://github.com/matterport/Mask_RCNN) pour la méthode d'apprentissage. (J'écrirai un article de commentaire si demandé) De plus, rosbag of snap pea peut être téléchargé avec mrcnn_measurement.
Un état de mesure des boulons.
Mesure du bois brut (bûche). C'est tellement nombreux qu'il est difficile de l'exécuter en temps réel.
Enfin, il peut également être exécuté avec du coco.
La vitesse d'exécution est grandement affectée par la vitesse d'estimation de Mask RCNN (environ 0,2 s par estimation dans mon environnement d'exécution), donc l'amélioration du grabbo ou la création du backbone pour mobile (mobilenet etc.) améliorera les performances en temps réel. .. Notez que le temps requis pour la mesure du diamètre augmente à mesure que le nombre d'objets augmente.
S'il y a un capteur
# 0, Download h5 & rosbag data <= First time only
sh download_files.sh # in this package directory
cd ~/catkin_ws
catkin_make
# 1, Turn on RealSnese D435
roslaunch realsense2_camera rs_aligned_depth.launch
# 2, Start mrcnn_measurement
roslaunch mrcnn_measurement mrcnn_measurement.launch
Test avec rosbag si aucun capteur
# 0, Download h5 & rosbag data <= First time only
sh download_files.sh # in this package directory
cd ~/catkin_ws
catkin_make
# 1, Start rosbag & mrcnn_measurement
roslaunch mrcnn_measurement mrcnn_measurement_rosbag.launch
--scripts / print_result.py est un exemple de programme qui lit et affiche le contenu de la rubrique mrcnn / result. S'il n'y a qu'un seul objet, il est facile à comprendre, et il est facile d'écrire dans csv etc. (Ce paquet recommande la mesure d'un objet en premier lieu). --scripts / mrcnn_measurement peut avoir besoin d'être exécutable. (Dans ce répertoire, chmod + x mrcnn_measurement, etc.) --Lorsque vous exécutez le fichier sh, le fichier h5 et rosbag sont téléchargés. Puisqu'il fait plusieurs centaines de Go, il peut être nécessaire d'attendre un certain temps en fonction de l'environnement de communication.
1, recevez des sujets RVB et profondeur de RealSense (message_filter). 2, Estimation d'objet de l'image RVB par Mask RCNN (ResNet). 3, exécutez le produit Adamar des arêtes (mask_i_xy_edges) de l'image de masque générée en devinant et le produit adamar du tableau de mesure de diamètre (self.array_lines) créé au moment de l'initialisation de la classe au centre de gravité du masque, calculez le diamètre de l'objet à chaque angle, diamètre_points Ajouter à. 4, trouvez le diamètre maximum max (diamètre_points) et le diamètre minimum min (point_diamètre) qui passent par le centre de gravité de l'objet, et calculez géométriquement le diamètre réel de l'objet à partir du paramètre de caméra fx de RealSense et de la profondeur moyenne de la partie du masque (hors valeurs aberrantes). Calcul. 5, visualisation.
J'étudie actuellement, mais c'est lié à la qualité de l'apprentissage, il vaudrait donc mieux penser qu'il y aura une erreur d'environ 10%. Si c'est un cercle comme un journal, il peut être plus précis.
Pour réduire les erreurs de mesure. Réduisez le temps requis pour la mesure du diamètre (en particulier l'instruction for pour chaque retour sur investissement du masque est un goulot d'étranglement).
Le commentaire sera amélioré. ** Cet article sera mis à jour **.
Requirements ros kinetic h5py==2.7.0 Keras==2.1.3 scikit-image==0.13.0 scikit-learn==0.19.1 scipy==0.19.1 tensorflow-gpu==1.4.0 GTX1060, cudnn==6.0, CUDA==8.0 realsense2_camera ( http://wiki.ros.org/realsense2_camera )
http://wiki.ros.org/ja/ROS/Tutorials/WritingPublisherSubscriber%28python%29 http://wiki.ros.org/realsense2_camera https://github.com/matterport/Mask_RCNN https://qiita.com/_akio/items/5469913fce7fdf0c732a
moriitkys Takayoshi Morii Faites un robot. Je suis intéressé par l'IA / la robotique / les graphismes 3D. Récemment, j'ai réfléchi à la façon de gagner de l'argent et je prévois de fabriquer du matériel avec cet argent. (Qualification Challenge E) Qualification / Certification: test G, test d'analyse des données de certification d'ingénieur Python, test d'implémentation AI grade A, TOEIC: 810 (2019/01/13)
Recommended Posts