def get_average_heatmap(self): """ get average heatmap from internal buffered heatmaps """ average_heatmap = np.average(self.heat_maps, axis=0) average_heatmap = Helpers.apply_threshold(average_heatmap, PipelineParameters.AVG_HEAT_THRESHOLD) return average_heatmap
def scan_all_cars(self, image, classifier, vis=False): """ scan the whole imag for cars """ small_car_start_y = 380 small_car_end_y = 540 small_car_bboxes = Pipeline.find_cars(image, classifier, small_car_start_y, small_car_end_y, 1.2) middle_car_start_y = 380 middle_car_end_y = 580 middle_car_bboxes = Pipeline.find_cars(image, classifier, middle_car_start_y, middle_car_end_y, 1.8) big_car_start_y = 380 big_car_end_y = 640 big_car_bboxes = Pipeline.find_cars(image, classifier, big_car_start_y, big_car_end_y, 2.4) bboxes = small_car_bboxes + middle_car_bboxes + big_car_bboxes heat = np.zeros_like(image[:, :, 0]).astype(np.float) heat = Helpers.add_heat(heat, bboxes) heat = Helpers.apply_threshold(heat, PipelineParameters.FRAME_HEAT_THRESHOLD) heat = np.clip(heat, 0, 255) self.add_heatmap(heat) avg_heatmap = self.get_average_heatmap() labels = label(avg_heatmap) draw_img = Helpers.draw_labeled_bboxes(np.copy(image), labels) if vis: image = np.copy(image) small = Helpers.draw_boxes(np.copy(image), small_car_bboxes, color=(0, 0, 1), thickness=3) middle = Helpers.draw_boxes(np.copy(image), middle_car_bboxes, color=(0, 0, 1), thickness=3) big = Helpers.draw_boxes(np.copy(image), big_car_bboxes, color=(0, 0, 1), thickness=3) PlotHelper.three_color_images(small, 'scale=1.2', middle, 'scale=1.8', big, 'scale=2.4') PlotHelper.two_images(draw_img, 'Car Positions', heat, 'Heat Map', left_cmap=None, right_cmap='hot') return draw_img