void image_callback(const sensor_msgs::ImageConstPtr& in_image_message) { std::vector< RectClassScore<float> > detections; //darknet_image = yolo_detector_.convert_image(in_image_message); darknet_image = convert_ipl_to_image(in_image_message); detections = yolo_detector_.detect(darknet_image); //ROS_INFO("Detections: %ud", (unsigned int)detections.size()); //Prepare Output message autoware_msgs::image_obj output_car_message; autoware_msgs::image_obj output_person_message; output_car_message.header = in_image_message->header; output_car_message.type = "car"; output_person_message.header = in_image_message->header; output_person_message.type = "person"; convert_rect_to_image_obj(detections, output_car_message, "car"); convert_rect_to_image_obj(detections, output_person_message, "person"); publisher_car_objects_.publish(output_car_message); publisher_person_objects_.publish(output_person_message); free(darknet_image.data); }
void image_callback(const sensor_msgs::Image& image_source) { //Receive Image, convert it to OpenCV Mat cv_bridge::CvImagePtr cv_image = cv_bridge::toCvCopy(image_source, "bgr8");//toCvCopy(image_source, sensor_msgs::image_encodings::BGR8); cv::Mat image = cv_image->image; //Detect Object in image std::vector< RectClassScore<float> > detections; //cv::TickMeter timer; timer.start(); //std::cout << "score:" << score_threshold_ << " slices:" << image_slices_ << " slices overlap:" << slices_overlap_ << "nms" << group_threshold_ << std::endl; detections = rcnn_detector_->Detect(image, detect_classes_, score_threshold_, image_slices_, slices_overlap_, group_threshold_); //timer.stop(); //std::cout << "Detection took: " << timer.getTimeMilli() << std::endl; //Prepare Output message cv_tracker::image_obj output_car_message; cv_tracker::image_obj output_person_message; output_car_message.header = image_source.header; output_car_message.type = "car"; output_person_message.header = image_source.header; output_person_message.type = "person"; //Convert Objects to Message type //timer.reset(); timer.start(); convert_rect_to_image_obj(detections, output_car_message, image, "car"); convert_rect_to_image_obj(detections, output_person_message, image, "person"); publisher_car_objects_.publish(output_car_message); publisher_person_objects_.publish(output_person_message); }