コード例 #1
0
    def __init__(self, width=None, height=None):
        pygame.init()
        self.clock = pygame.time.Clock()
        self.frame_count = 2
        self.menu = None
        self.image = None
        self.select_time = pygame.time.get_ticks()
        self.hand_positions = []
        self.hand_times = []
        self.l_hand = [1, 1]
        self.r_hand = [1, 1]

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Game Selection')
        self.pnet = posenetInterface(257)
        self.menu_init()
        self.option_boxes = self.menu.get_option_rects()
コード例 #2
0
    def __init__(self, width=None, height=None, pnet=None):
        pygame.init()
        self.clock = pygame.time.Clock()

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Hands')

        if pnet:
            self.pnet = pnet
        else:
            self.pnet = posenet_interface.posenetInterface(257)

        self.myfont = pygame.font.SysFont("Comic Sans MS", 40)
        self.image = None
        self.interpreter = Interpreter(model_path='hand_landmark.tflite')
        self.interpreter.allocate_tensors()
        self.input_details = self.interpreter.get_input_details()
        self.output_details = self.interpreter.get_output_details()
コード例 #3
0
    def __init__(self, num_boxes, width=None, height=None):
        pygame.init()
        self.clock = pygame.time.Clock()

        self.NUM_BOXES = num_boxes
        self.score = 0
        self.failed = False
        self.fail_time = 0

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            infoObject = pygame.display.Info()
            self.WIDTH = infoObject.current_w
            self.HEIGHT = infoObject.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Dodger')

        self.boxes = None
        self.gen_boxes()
        self.frame_count = 0
        self.time_frame = 0
        self.pnet = posenet_interface.posenetInterface(257)
コード例 #4
0
def main():
    pnet = posenetInterface(257)
    show_fps = False
    if len(sys.argv) > 1:
        show_fps = True

    total_frames = 0
    time_begin = time.time()
    cv2.namedWindow("posenet", cv2.WND_PROP_FULLSCREEN)
    cv2.setWindowProperty("posenet", cv2.WND_PROP_FULLSCREEN,
                          cv2.WINDOW_FULLSCREEN)
    while 1:
        infer_begin = time.time()
        overlay_image, _ = pnet.get_image(10)

        infer_time = time.time() - infer_begin
        # print("Draw time: " + str(infer_time))
        fps = 1.0 / infer_time

        overlay_image = cv2.flip(overlay_image, 1)
        if show_fps:
            cv2.putText(overlay_image, '%.2f fps' % fps, (10, 20),
                        cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0))
        overlay_image = cv2.resize(overlay_image, (640, 480))
        cv2.imshow('posenet', cv2.cvtColor(overlay_image, cv2.COLOR_RGB2BGR))
        total_frames += 1

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    print('Average FPS: ', total_frames / (time.time() - time_begin))
コード例 #5
0
    def __init__(self, game, width=None, height=None, pnet=None):
        pygame.init()
        self.clock = pygame.time.Clock()
        parser = argparse.ArgumentParser()
        parser.add_argument('--fullscreen_emu',
                            dest='fullscreen_emu',
                            action='store_true')
        parser.add_argument('--wait_length', type=int, default=300)
        parser.set_defaults(fullscreen_emu=False)
        args = parser.parse_args()

        self.fullscreen_emu = args.fullscreen_emu
        self.wait_length = args.wait_length

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Gestures')
        print(pygame.display.Info())

        if pnet:
            self.pnet = pnet
        else:
            self.pnet = posenet_interface.posenetInterface(257)

        self.keypoints = []
        time = pygame.time.get_ticks()
        self.check_time = time
        self.myfont = pygame.font.SysFont("Comic Sans MS", 40)
        self.buffer_time = time
        self.jump_time = time
        self.image = None
        self.gesture = []
        self.game = game
        self.keyboard = Controller()
        self.start = True
        game_path = os.path.join(
            pathlib.Path(__file__).parent.absolute(), game) + ".nes"
        print(game_path)

        subprocess.Popen([
            "mednafen", "-psx.dbg_level", "0", "-sftoggle", "1", "-video.fs",
            "1" if self.fullscreen_emu else "0", "-cheats", "1", game_path
        ])
        ti.sleep(1)
        with self.keyboard.pressed(Key.ctrl):
            with self.keyboard.pressed(Key.alt):
                self.keyboard.press(Key.left)
                self.keyboard.release(Key.left)
        self.keyboard.press('\\')
        self.keyboard.release('\\')
コード例 #6
0
ファイル: avg_pong.py プロジェクト: idenc/Posenet-games
    def __init__(self, two_player, width=None, height=None, pnet=None):
        pygame.init()
        self.clock = pygame.time.Clock()

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Pong')

        self.BALL_RADIUS = self.HEIGHT // 24
        self.PAD_WIDTH = self.WIDTH // 35
        self.PAD_HEIGHT = self.HEIGHT // 4
        self.HALF_PAD_WIDTH = self.PAD_WIDTH // 2
        self.HALF_PAD_HEIGHT = self.PAD_HEIGHT // 2

        self.ball_pos = [0, 0]
        self.ball_vel = [0, 0]
        self.paddle1_vel = 0
        self.paddle2_vel = 0
        self.l_hand = [0, 0]
        self.r_hand = [0, 0]
        self.vel_time = pygame.time.get_ticks()

        self.frame_count = 2

        if pnet:
            self.pnet = pnet
        else:
            self.pnet = posenet_interface.posenetInterface(257)

        self.image, _ = self.pnet.get_image()

        self.paddle1_pos = [self.HALF_PAD_WIDTH - 1, self.HEIGHT // 2]
        self.paddle2_pos = [
            self.WIDTH + 1 - self.HALF_PAD_WIDTH, self.HEIGHT // 2
        ]
        self.l_score = 0
        self.r_score = 0
        self.two_player = two_player

        if random.randrange(0, 2) == 0:
            self.ball_init(True)
        else:
            self.ball_init(False)
コード例 #7
0
    def __init__(self, num_boxes, width=None, height=None, pnet=None):
        pygame.init()
        self.clock = pygame.time.Clock()

        self.image = None

        self.NUM_BOXES = num_boxes
        self.score = -1
        self.failed = False
        self.fail_time = 0
        self.warn = True
        self.warn_time = 0
        self.warn_img = pygame.image.load('exclamation_mark.png')
        self.rock_img = pygame.image.load('rock.png')
        self.gravity = 20
        self.box_speed = 0
        self.delta_time = self.clock.get_time()

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Dodger')

        self.boxes = None
        self.frame_count = 0
        self.time_frame = 0

        if pnet:
            self.pnet = pnet
        else:
            self.pnet = posenet_interface.posenetInterface(257)

        self.image, _ = self.pnet.get_image()
コード例 #8
0
sys.path.append("..")
import posenet_interface


def scale_keypoints(original_shape, keypoints):
    scale = np.array([480 / original_shape[0], 640 / original_shape[1]])
    return keypoints * scale

def move_car(car_pos):
    keypoints = pnet.get_keypoints()
    keypoints = scale_keypoints((640, 480), keypoints[0])
    if keypoints[11][1] != 0.0:
        car_pos[0] = 640 - int(keypoints[11][1])

pygame.init()
pnet = posenet_interface.posenetInterface(257)
BLACK = pygame.color.THECOLORS["black"]
WHITE = pygame.color.THECOLORS["white"]
BLUE = (0, 0, 255)
GREY = (245, 245, 245)
CLOCK = pygame.time.Clock()
# Open pygame window
WIDTH, HEIGHT = 640, 480
screen = pygame.display.set_mode((WIDTH, HEIGHT), )  # add RESIZABLE or FULLSCREEN
# Title
pygame.display.set_caption("roadcaster")

plane_center_x = WIDTH // 2
texture = pygame.image.load('stripes.png').convert()
texture = pygame.transform.scale(texture, (WIDTH, texture.get_height()))
texture2 = pygame.image.load('road3.png').convert()
コード例 #9
0
    def __init__(self, width=None, height=None, pnet=None):
        pygame.init()
        self.clock = pygame.time.Clock()

        if width and height:
            self.WIDTH = width
            self.HEIGHT = height
            self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        else:
            info_object = pygame.display.Info()
            self.WIDTH = info_object.current_w
            self.HEIGHT = info_object.current_h
            flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
            self.window = pygame.display.set_mode(flags=flags)
        pygame.display.set_caption('Posenet Roadcaster')

        if pnet:
            self.pnet = pnet
        else:
            self.pnet = posenet_interface.posenetInterface(257)

        # Display objects
        self.plane_center_x = self.WIDTH // 2
        self.texture = pygame.image.load('stripes.png').convert()
        self.texture = pygame.transform.scale(self.texture, (self.WIDTH, self.texture.get_height()))
        self.texture2 = pygame.image.load('road3.png').convert()
        self.wall_texture_orig = pygame.image.load('wall.png').convert()
        self.road_width = self.texture2.get_width()
        self.road_height = self.texture2.get_height()
        self.player_car = pygame.image.load('player_car.png').convert_alpha()
        self.player_car = pygame.transform.scale(self.player_car, (self.WIDTH // 5, self.HEIGHT // 5))
        ground = pygame.Surface((640, 240)).convert()
        ground.fill((0, 100, 0))
        self.resolution = self.WIDTH // 640

        self.bright_image = self.player_car.copy()
        self.bright_image.fill((200, 200, 200, 0), special_flags=pygame.BLEND_RGBA_ADD)

        # field of view (FOV)
        self.fov = 60
        wall_height = 64

        self.player_height = wall_height / 2
        self.player_pos = [self.WIDTH // 4, int((self.WIDTH // 4) * 1.4)]
        self.car_pos = [(self.WIDTH // 2), (self.WIDTH // 2) - 80]
        view_angle = 90

        # Center of the Projection Plane
        self.plane_center = self.HEIGHT // 2  # [WIDTH/2, HEIGHT/2]
        # distance from player to projection plane
        self.to_plane_dist = int((self.WIDTH / 2) / tan(radians(self.fov / 2)))

        # angle of the casted ray
        ray_angle = 90  # view_angle+(fov/2)
        beta = radians(view_angle - ray_angle)
        self.cos_beta = cos(beta)
        self.sin_angle = -sin(radians(ray_angle))

        move_speed = 15
        self.x_move = int(move_speed * cos(radians(view_angle)))
        self.y_move = -int(move_speed * sin(radians(view_angle)))

        with open('default.road', 'rb') as file:
            file_loader = pickle.Unpickler(file)
            self.curve = file_loader.load()

        self.road_start = 0  # this indicate the position on the road
        self.direction = 1  # this is used to change the curve direction
        self.road_index = 0  # this is used to index all points on the curve
        self.speed = 1  # this is used to increment road_start

        # Wall objects
        self.m, self.b = self.get_road_eqn()
        self.wall_time = pygame.time.get_ticks()
        self.wall_idx = 0
        self.wall_size = self.HEIGHT // 90
        self.wall_x = self.get_wall_x()
        self.orig_x1 = self.wall_x
        self.wall2_x = self.get_wall_x()
        self.orig_x2 = self.wall2_x
        self.slope_wall1 = self.get_wall_slope(self.wall_x)
        self.slope_wall2 = self.get_wall_slope(self.wall2_x)
        self.wall_y = self.plane_center + 10 + self.wall_size // 2
        self.draw_wall = False
        self.increment = None
        self.wall_speed = None
        self.wall_accel = None

        # Timer fonts
        self.start_time = pygame.time.get_ticks()
        self.time_font = pygame.font.SysFont(pygameMenu.fonts.FONT_8BIT, self.HEIGHT // 20)

        # Fail objects
        fail_font = pygame.font.SysFont(pygameMenu.fonts.FONT_8BIT, self.HEIGHT // 10)
        self.fail_label = fail_font.render("FAILED", 1, (255, 0, 0))
        self.fail_rect = self.fail_label.get_rect(center=(
            self.WIDTH // 2, (self.HEIGHT // 2) + self.fail_label.get_height()))
        self.failed = False
        self.fail_time = 0
        self.explosion = pygame.image.load('Explosion.png').convert()
        explosion_scale = self.player_car.get_width() // self.explosion.get_height()
        self.explosion = pygame.transform.scale(self.explosion,
                                                (self.explosion.get_width() * explosion_scale,
                                                 self.explosion.get_height() * explosion_scale))
        self.explosion_idx = 1

        self.score = 0
        self.jump = False
        self.car_vel = self.HEIGHT // 1.3