def METHOD_NAME(self, data):
    """
    Callback that process the input data and publishes to the corresponding topics
    :param data: input message
    :type data: sensor_msgs.msg.Image
    """
    # Convert sensor_msgs.msg.Image into OpenDR Image
    image = self.bridge.from_ros_image(data)
    self.ID = self.ID + 1
    # Get an OpenCV image back
    image = np.float32(image.numpy())
    name = str(f"{self.ID:02d}"+"_single.jpg")
    cv2.imwrite(os.path.join(self.args.path_in, name), image)
    if (self.ID == 5):
        # Run SyntheticDataGeneration
        self.synthetic.eval()
        self.ID = 0
        # Annotate image and publish results
        current_directory_path = os.path.join(self.args.save_path, str("/Documents_orig/"))
        for file in os.listdir(current_directory_path):
            name, ext = os.path.splitext(file)
            if ext == ".jpg":
                image_file_savepath = os.path.join(current_directory_path, file)
                cv_image = cv2.imread(image_file_savepath)
                cv_image = cv2.cvtColor(cv_image, cv2.COLOR_BGR2RGB)
                if self.image_publisher is not None:
                    image = Image(np.array(cv_image, dtype=np.uint8))
                    message = self.bridge.to_ros_image(image, encoding="bgr8")
                    self.image_publisher.publish(message)
    for f in os.listdir(self.args.path_in):
        os.remove(os.path.join(self.args.path_in, f))