def cbDetectFaceLocations(self, params): # print(params) start = time.time() # res = self.get_frame(GetFrameRequest()) # print("get_frame time: {} s".format(round((time.time() - start)*1000, 4))) # image_msg = res.image image_msg = self.image_msg if image_msg == None: return GetFaceDetectionsResponse() rect_image = toImage(self.image_msg) print("decode time: {} s".format(round((time.time() - start) * 1000, 4))) boxes, labels, probs = self.detector.detect(rect_image) print("detect time: {} s".format(round((time.time() - start) * 1000, 4))) print(boxes, labels, probs) if self.visualization: faces = self.detector.drawBoxes(rect_image, boxes) print("drawBoxes time: {} s".format( round((time.time() - start) * 1000, 4))) msg = toImageMsg(faces) print("encode time: {} s".format( round((time.time() - start) * 1000, 4))) self.pub_detections.publish(msg) # self.pub_detections.publish(self.bridge.cv2_to_imgmsg(faces,"bgr8")) return self.toFaceDetectionMsg()
def pubImage(self, image): msg = toImageMsg(image) self.pub_detections.publish(msg)