def callback(self, data): try: from timeit import default_timer as timer start = timer() res = self.detect_object_service(data) end = timer() print('Finished detection. (%f [sec])' % (end - start, )) resdata = YoloRes() #resdata type -> rescustom resdata.labels = str(res.labels) kariname = str(res.names) kariname = kariname.strip("[" "]") karilist = kariname.split(',') # add scripts kariscore = str(res.scores) scoreRemove = kariscore.strip(' ()') scorelist = scoreRemove.split(',') displayList = [] for i in range(len(karilist)): displayData = karilist[i] + " | " + str( round(float(scorelist[i]), 3)) displayList.append(displayData) # resdata.names=['','','','',''] # resdata.scores=str() i = 0 for region in res.regions: resdata.x_offset[i] = int(region.x_offset) resdata.y_offset[i] = int(region.y_offset) resdata.width[i] = int(region.width) resdata.height[i] = int(region.height) resdata.names[i] = displayList[i] i = i + 1 resdata.num = int(i) #print(type(resdata.names[0])) sys.stdout.flush() except cv_bridge.CvBridgeError as e: print(e) return cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") util.visualize_result_onto(cv_image, res, self.label_format) try: self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8")) self.YoloPub.publish(resdata) #publich resdata except cv_bridge.CvBridgeError as e: print(e)
def callback(self, data): try: from timeit import default_timer as timer start = timer() res = self.detect_object_service(data) end = timer() #print('Finished detection. (%f [sec])' % (end - start, )) #print(res.labels) #print('names: %s' % (res.names,)) #print('scores: %s' % (res.scores,)) resdata=rescustom() resdata.labels=str(res.labels) resdata.names=str(res.names) resdata.scores=str(res.scores) i=0; for region in res.regions: resdata.x_offset[i]=int(region.x_offset) resdata.y_offset[i]=int(region.y_offset) resdata.width[i]=int(region.width) resdata.height[i]=int(region.height) #print(resdata.regions[i]) i=i+1 resdata.num=i #print(resdata.labels) #print(resdata.names) #print(resdata.scores) #self.publ.publish(pu) sys.stdout.flush() except cv_bridge.CvBridgeError as e: print(e) return cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") util.visualize_result_onto(cv_image, res, self.label_format) try: self.image_pub.publish( self.bridge.cv2_to_imgmsg(cv_image, "bgr8") ) self.publ.publish(resdata) except cv_bridge.CvBridgeError as e: print(e)
def callback(self, data): try: from timeit import default_timer as timer start = timer() res = self.detect_object_service(data) end = timer() print('Finished detection. (%f [sec])' % (end - start, )) sys.stdout.flush() except cv_bridge.CvBridgeError as e: print(e) return cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") util.visualize_result_onto(cv_image, res, self.label_format) try: self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8")) except cv_bridge.CvBridgeError as e: print(e)
for region in res.regions: print(" " "{'x_offset': %d, 'y_offset': %d, " "'width': %d, 'height': %d}" % ( region.x_offset, region.y_offset, region.width, region.height)) print('labels: %s' % (res.labels,)) print('names: %s' % (res.names,)) print('scores: %s' % (res.scores,)) else: bboxes = [] for region in res.regions: bboxes.append([ region.y_offset, region.x_offset, region.y_offset + region.height - 1, region.x_offset + region.width - 1 ]) bboxes = np.array(bboxes) labels = np.array(res.labels) scores = np.array(res.scores) names = np.array(res.names) util.visualize_result_onto(img, res) cv2.imshow(filename, img) if args.display: print('Press any key on an image window to finish the program.') while True: k = cv2.waitKey(1000) if k != -1: cv2.destroyAllWindows() break
"'width': %d, 'height': %d}" % (region.x_offset, region.y_offset, region.width, region.height)) print('labels: %s' % (res.labels, )) print('names: %s' % (res.names, )) print('scores: %s' % (res.scores, )) else: bboxes = [] for region in res.regions: bboxes.append([ region.y_offset, region.x_offset, region.y_offset + region.height - 1, region.x_offset + region.width - 1 ]) bboxes = np.array(bboxes) labels = np.array(res.labels) scores = np.array(res.scores) names = np.array(res.names) bridge = cv_bridge.CvBridge() cv_image = bridge.imgmsg_to_cv2(res.image, "bgr8") util.visualize_result_onto(cv_image, res, args.label_format) cv2.imshow(filename, cv_image) if args.display: print('Press any key on an image window to finish the program.') while True: k = cv2.waitKey(1000) if k != -1: cv2.destroyAllWindows() break