【AI创造营】是极客就坚持一百秒?

大杰吖_8200

大杰吖_8200

2025-07-28

322人浏览

原创

Python Dependency Candidate Fetcher 2
Python Dependency Candidate Fetcher 2

根据包的能力以及 Jupyter 环境中的导入语句,从候选列表中挑选最适合用户表格工作流的 Python 包。

下载
《是男人就坚持100秒(DodgeFace)》是一款用面部躲避小球的游戏。通过摄像头捕捉面部,玩家需移动身体或转头躲避飞来的小球。未检测到脸会Game Over,脸像素过小时会变红提示,过小则结束。按r可重开,默认开GPU运行,也可改设为全身躲避,调整球半径即可。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

【ai创造营】是极客就坚持一百秒? - php中文网

因为项目需要用到摄像头和显示效果,所以无法在aistudio上直接运行,Fork项目后可见可运行文件,下面直接上效果

参赛作品名

是男人就坚持100秒(DodgeFace)

作品简介

和传统的《是男人就坚持X秒》一样,只不过这次你需要让你的脸来躲避那些飞来的小球

使用方式

> 保证你的脸在摄像头可以拍摄的范围内,运行程序

python DodgeFace.py

> 移动你的身体、转动你的头颅躲避那些飞来的小球

> 如果没检测到你的脸会直接Game Over哦

> 程序中设定了危险像素大小,当你的脸小于某个像素量(dangerPixel)的时候,你的脸会变红,提示你靠近摄像头一点,否则当脸的像素小于最小像素量(minPixel)的时候则会直接Game Over。

> 如果不小心死掉了,按r重新开始,按其他的则退出游戏

一些提示

> 程序默认开启了GPU以保证程序的正常运行,如果没有GPU可能会很卡,咳咳

> 当然可以换成整个人来躲避球,这个只需要改动一行代码就行,不过建议同时改大球的半径,不然我怕你看不清球,哈哈

> 有点忙,还有些优化的地方没有做,之后再补吧,嘻嘻

> 希望大家玩得开心~

In [1]
# 对两个分割魔性封装了一下,这里可以根据你需要的去选择相应的类class segUtils:
    def __init__(self):
        super(segUtils, self).__init__()
        self.ace2p = hub.Module(name='ace2p')    def getMask(self, frame):
        res = self.ace2p.segmentation([frame], use_gpu=True)        if isinstance(res, list):
            resint = res[0]['data']
            resint[resint != 13] = 0
            resint[resint == 13] = 1
            return resint        else:            return Noneclass segHuman:
    def __init__(self):
        super(segHuman, self).__init__()
        self.module = hub.Module(name='humanseg_mobile')
        self.prev_gray = None
        self.prev_cfd = None

    def getMask(self, frame, cap=None):
        if cap is None:
            res = self.module.segment(images=[frame], use_gpu=True)            if isinstance(res, list):                return np.around(res[0]['data'] / 255)        else:
            res, gray, cfd = self.module.video_stream_segment(images=frame, frame_id=cap.get(1), use_gpu=True, prev_gray=self.prev_gray, prev_cfd=self.prev_cfd)
            self.prev_gray = gray
            self.prev_cfd = cfd
            res[res = 100] = 1
            return res
In [4]
# 小球的类,因为完全弃用了pygame, 要自己这样写draw了class Ball:
    x = None
    y = None
    speed_x = None
    speed_y = None
    radius = None
    color = None

    def __init__(self, x, y, speed_x, speed_y, radius, color):
        self.x = x
        self.y = y
        self.speed_x = speed_x
        self.speed_y = speed_y
        self.radius = radius
        self.color = color    def draw(self, screen):
        t,l,b,r = getPIXEL(self.x, self.y, self.radius)        if isinstance(self.color, int):
            screen[t:b,l:r,:] = self.color        else:
            screen[t:b,l:r,0] = self.color[0]
            screen[t:b,l:r,1] = self.color[1]
            screen[t:b,l:r,2] = self.color[2]        

    def move(self, screen):
        self.x += self.speed_x
        self.y += self.speed_y        
        if self.x > W - self.radius or self.x  H - self.radius or self.y 
In [3]
# 小球生成器, 生不生成球,一秒生成几个,都在这里进行控制哦,另外小球的每帧的运动绘制,也在这里def create_ball():

    r = 3
    color = 0

    x, y = randomXY()    if inseg(x,y,r+30):
        x, y = randomXY()

    speed_x = random.randint(-10, 10)
    speed_y = random.randint(-10, 10)
    
    b = Ball(x, y, speed_x, speed_y, r, color)
    balls.append(b) 


def ball_manager():
    global showimg    global currentIndex    global currentTime    global lastTime    global gm    global genTime    if currentTime != lastTime:        if currentIndex = len(gm):
                    currentIndex = len(gm) - 1
        
        lastTime = currentTime    for b in balls:        if b.move(showimg):            return True
    
    return False

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

python

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

0

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

100

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

80

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

240

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

140

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

100

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程