Part 1: Debugging FinishedAll the debugging has been finished. The current code works correctly. Regarding the bug from last week, I have added another field in the custom ROS message to transmit keypoints extracted during feature extraction. Since ROS does not support object publishing, I extraced [float x, float y, float size] from the 'cv2.keypoint' object and published them as an array of floats for each feature. They are transmitted from the original node where features are extracted, all the way to quickmatch_node where the graphing occurs after quickmatch algorithm is run. The 'cv2.keypoint' objects are rebuilt using the received data in the 'quickmatch_node.py', and the objects are using for graphing. Part 2: Result comparison with centralized codeThe following screenshots show that the result of the distributed QuickMatch is exactly the same as the result of the centralized QuickMatch (Figure 1 - 6). Figure 1: Centralized result (above) and distributed result (below) on image 1. Figure 2: Centralized result (above) and distributed result (below) on image 1 and 2. Figure 3: Centralized result (above) and distributed result (below) on image 1 and 3. Figure 4: Centralized result (above) and distributed result (below) on image 1 and 4. Figure 5: Centralized result (above) and distributed result (below) on image 1 and 5. Figure 6: Centralized result (above) and distributed result (below) on image 1 and 6. Part 3: Distributed results on new images takenSince the results of the distributed version have matched the ones from the centralized version, I ran the distributed version on the 6 new images I took before I left the lab due to the pandemic. The results are shown below (Figure 7 - 12). Figure 7: Results from the distributed version on new image 1. Figure 8: Results from the distributed version on new image 1 and 2. Figure 9: Results from the distributed version on new image 1 and 3. Figure 10: Results from the distributed version on new image 1 and 4. Figure 11: Results from the distributed version on new image 1 and 5. Figure 12: Results from the distributed version on new image 1 and 6. Part 4: Distributed results on new images taken with true k-meansIn order to debug, k-means has been set to the mean feature vector for node0 and negative numbers for all the other nodes. As a result, all the above results are generated with only node0 doing all the processing. In order to show the trully distributed match results, I reversed back the k-means to have features partitioned to different nodes for QuickMatch. Currently, 3 nodes and 3 quickmatch nodes are initiated, with each pair of nodes representing a robot (therefore a total of 3 robots). The results are shown in this video: https://drive.google.com/open?id=15jJ97EmTyEOgKRVhlUpxcqnZzmVeug6p The same 6 images are repeated 3 times. During each repetition, the matches done for one specific pair of nodes (one robot) will be shown. It can be seen that the matches have been distributed across all nodes. Part 5: DocumentationDocumentation has been created here:
https://docs.google.com/document/d/1KD0Jc04j5ioy37Hnn30I92voBEUOVhij1nFr4NVViA4/edit?usp=sharing I am currently working on it. The goal is to finish all the documentations by next week.
0 Comments
Leave a Reply. |
Archives
May 2020
Categories |