Skip to content

Commit 497118b

Browse files
authored
Merge pull request #4 from gbr1/foxy-dev
0.0.4 - fixes centroids and center visualization
2 parents 367e486 + 1a64602 commit 497118b

File tree

5 files changed

+24
-6
lines changed

5 files changed

+24
-6
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
ROS2 wrapper for Edge Impulse on Linux.
44

5+
![ezgif-4-3cda6ac695](https://user-images.githubusercontent.com/9216366/193153736-fccd9451-2277-42f2-8141-6027a10f0245.gif)
6+
57

68
## 1. Topics
79

@@ -15,6 +17,7 @@ ROS2 wrapper for Edge Impulse on Linux.
1517
- `frame_id` (**string**), _"base_link"_, frame id of output topics
1618
- `model.filepath` (**string**), _""_, absolute filepath to .eim file
1719
- `show.overlay` (**bool**), _true_, show bounding boxes on output image
20+
- `show.center` (**bool**), _false_, show centroids on output image
1821
- `show.labels` (**bool**), _true_, show labels on bounding boxes,
1922
- `show.classification_info` (**bool**), _true_, show the attendibility (0-1) of the prediction
2023

302 Bytes
Binary file not shown.

edgeimpulse_ros/image_classification.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ def init_parameters(self):
8181
self.declare_parameter('show.overlay', True)
8282
self.show_overlay = self.get_parameter('show.overlay').get_parameter_value().bool_value
8383

84+
self.declare_parameter('show.center', False)
85+
self.show_center = self.get_parameter('show.center').get_parameter_value().bool_value
86+
87+
8488
self.declare_parameter('show.labels',True)
8589
self.show_labels_on_image = self.get_parameter('show.labels').get_parameter_value().bool_value
8690

@@ -94,6 +98,7 @@ def parameters_callback(self):
9498
self.show_labels_on_image = self.get_parameter('show.labels').get_parameter_value().bool_value
9599
self.show_extra_classification_info = self.get_parameter('show.classification_info').get_parameter_value().bool_value
96100
self.show_overlay = self.get_parameter('show.overlay').get_parameter_value().bool_value
101+
self.show_center= self.get_parameter('show.center').get_parameter_value().bool_value
97102

98103

99104

@@ -141,6 +146,11 @@ def classify_callback(self):
141146
self.get_logger().info('Found %d bounding boxes (%d ms.)' % (len(res["result"]["bounding_boxes"]), res['timing']['dsp'] + res['timing']['classification']))
142147

143148
for bb in res["result"]["bounding_boxes"]:
149+
150+
centerX=bb['x']+int(bb['width']/2)
151+
centerY=bb['y']+int(bb['height']/2)
152+
center=(centerX, centerY)
153+
144154
result_msg = Detection2D()
145155
result_msg.header.stamp = time_now
146156
result_msg.header.frame_id = self.frame_id
@@ -149,13 +159,13 @@ def classify_callback(self):
149159
obj_hyp = ObjectHypothesisWithPose()
150160
obj_hyp.id = bb['label'] #str(self.ei_classifier.labels.index(bb['label']))
151161
obj_hyp.score = bb['value']
152-
obj_hyp.pose.pose.position.x = float(bb['x'])
153-
obj_hyp.pose.pose.position.y = float(bb['y'])
162+
obj_hyp.pose.pose.position.x = float(centerX)
163+
obj_hyp.pose.pose.position.y = float(centerY)
154164
result_msg.results.append(obj_hyp)
155165

156166
# bounding box
157-
result_msg.bbox.center.x = float(bb['x'])
158-
result_msg.bbox.center.y = float(bb['y'])
167+
result_msg.bbox.center.x = float(centerX)
168+
result_msg.bbox.center.y = float(centerY)
159169
result_msg.bbox.size_x = float(bb['width'])
160170
result_msg.bbox.size_y = float(bb['height'])
161171

@@ -170,6 +180,11 @@ def classify_callback(self):
170180
if self.show_labels_on_image:
171181
composed_label = bb['label']+' '+str(round(bb['value'],2))
172182
img_res = cv2.putText(img_res, composed_label, (bb['x'], bb['y']-5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255,0,0),1)
183+
if self.show_center:
184+
img_res = cv2.circle(img_res, center, 3, (255, 0, 0), 1)
185+
composed_center = '('+str(centerX)+','+str(centerY)+')'
186+
img_res = cv2.putText(img_res, composed_center, (centerX, centerY-5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255,0,0),1)
187+
173188

174189
cropped=cv2.cvtColor(cropped, cv2.COLOR_RGB2BGR)
175190

package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>edgeimpulse_ros</name>
5-
<version>0.0.3</version>
5+
<version>0.0.4</version>
66
<description>ROS2 wrapper for Edge Impulse</description>
77
<maintainer email="[email protected]">gbr1</maintainer>
88
<license>Apache 2.0</license>

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
submodules = 'edgeimpulse_ros/submodules'
55
setup(
66
name=package_name,
7-
version='0.0.3',
7+
version='0.0.4',
88
packages=[package_name, submodules],
99
data_files=[
1010
('share/ament_index/resource_index/packages',

0 commit comments

Comments
 (0)