示例#1
0
 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
示例#2
0
    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