Esempio n. 1
0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//detect car-boundary-boxes
RESULT *car_detection(IplImage *IM,MODEL *MO,double thresh,int *D_NUMS,double *A_SCORE,double overlap)
{
	double *boxes = detect(IM,MO,thresh,D_NUMS,A_SCORE);	//detect high-score region
	double *rects = nms(boxes,overlap,D_NUMS,MO);			//get boundary-rectangles of car
	RESULT *CUR = get_new_rects(IM,MO,rects,D_NUMS);		//get current result

	s_free(boxes);
	s_free(rects);

	return CUR;
}
Esempio n. 2
0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//detect car-boundary-boxes
RESULT *car_detection(IplImage *IM,MODEL *MO,FLOAT thresh,int *D_NUMS,FLOAT *A_SCORE,FLOAT overlap)
{
  /* for measurement */
  struct timeval tv;
  struct timeval tv_detect_start, tv_detect_end;
  float time_detect;
  struct timeval tv_nms_start, tv_nms_end;
  float time_nms;
  struct timeval tv_get_new_rects_start, tv_get_new_rects_end;
  float time_get_new_rects;
  
  gettimeofday(&tv_detect_start, NULL);
  FLOAT *boxes = detect(IM,MO,thresh,D_NUMS,A_SCORE);	//detect high-score region
  gettimeofday(&tv_detect_end, NULL);

  gettimeofday(&tv_nms_start, NULL);
  FLOAT *rects = nms(boxes,overlap,D_NUMS,MO);			//get boundary-rectangles of car
  gettimeofday(&tv_nms_end, NULL);

  gettimeofday(&tv_get_new_rects_start, NULL);
  RESULT *CUR = get_new_rects(IM,MO,rects,D_NUMS);		//get current result
  gettimeofday(&tv_get_new_rects_end, NULL);


#if 0
  tvsub(&tv_detect_end, &tv_detect_start, &tv);
  time_detect = tv.tv_sec * 1000.0 + (float)tv.tv_usec / 1000.0;

  tvsub(&tv_nms_end, &tv_nms_start, &tv);
  time_nms = tv.tv_sec * 1000.0 + (float)tv.tv_usec / 1000.0;

  tvsub(&tv_get_new_rects_end, &tv_get_new_rects_start, &tv);
  time_get_new_rects = tv.tv_sec * 1000.0 + (float)tv.tv_usec / 1000.0;

  printf("detect : %f\n", time_detect);
  printf("nms : %f\n", time_nms);
  printf("get_new_rects : %f\n", time_get_new_rects);
#endif

    
  s_free(boxes);
  s_free(rects);
  
  return CUR;
}