Пример #1
0
	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);
	}
Пример #2
0
	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);
	}