示例#1
0
class GameAnalyzer:

    def __init__(self, table, camera):
        self.table = table
        self.camera = camera
        self.frames_in_flight = 120

        self.table_tracker = TableTracker(table, camera, TableReferenceFrame())
        self.rectifier = Rectifier(table, margin=0.10, camera=camera, resolution=120)

        self.background_analyzer = BackgroundAnalyzer(table, self.rectifier)
        self.team_foosmen_analyzer = TeamFoosmenAnalyzer(table, self.rectifier)
        self.ball_analyzer = BallAnalyzer(table, self.rectifier)

        self.rod_analyzer = [RodAnalyzer(table, rod, self.rectifier) for rod in table.rods]

    def analyze(self, data):
        self.table_tracker.locate_table(data)
        self.table_tracker.settle_table(data)
        self.table_tracker.compute_camera_transform(data)

        self.rectifier.rectify(data.frames)

        self.background_analyzer.estimate_color(data)
        self.background_analyzer.analyze_color(data)

        for i, team in enumerate(self.table.teams):
            self.team_foosmen_analyzer.initialize_model(team, data)
            self.team_foosmen_analyzer.analyze_color(team, data)
            self.team_foosmen_analyzer.compute_visible_llr(team, data)
            self.team_foosmen_analyzer.compute_location_llr(team, data)

        for i, rod in enumerate(self.table.rods):
            analyzer = self.rod_analyzer[i]

            for j, foosman in enumerate(rod.foosmen):
                foosman_analyzer = analyzer.foosman_analyzer[j]
                foosman_analyzer.compute_shift_llr(data)

            analyzer.compute_shift_llr(data)

        self.ball_analyzer.analyze_color(data)
        self.ball_analyzer.compute_visible_llr(data)
        self.ball_analyzer.compute_location_llr(data)
示例#2
0
    def __init__(self, table, camera):
        self.table = table
        self.camera = camera
        self.frames_in_flight = 120

        self.table_tracker = TableTracker(table, camera, TableReferenceFrame())
        self.rectifier = Rectifier(table, margin=0.10, camera=camera, resolution=120)

        self.background_analyzer = BackgroundAnalyzer(table, self.rectifier)
        self.team_foosmen_analyzer = TeamFoosmenAnalyzer(table, self.rectifier)
        self.ball_analyzer = BallAnalyzer(table, self.rectifier)

        self.rod_analyzer = [RodAnalyzer(table, rod, self.rectifier) for rod in table.rods]
示例#3
0
bg_sub = Bg_subtractor()

# pedestrians detection model
ped_det = Obj_detector()

# ped_tr = Sort()

# performance statistics
stats = Statistics("../groundtruth.txt")

cap = cv2.VideoCapture('../pedestrians.mp4')
width = int(cap.get(3))
height = int(cap.get(4))

# rectifying model
rect = Rectifier(width, height, shift=50, up=True, central_zoom=80)

# create a named windows and move it
cv2.namedWindow('video')
cv2.moveWindow('video', 70, 30)

next_frame, frame = cap.read()
play = True

# pedestrians tracking model
ped_tr = Obj_tracker(width, height)


def drawBboxes(bboxes, frame, color=(0, 0, 255), ids=None):
    if ids is not None and len(ids) > 0:
        for (bbox, id) in zip(bboxes, ids):