【问题标题】:How to render from ob openCV如何从 ob openCV 渲染
【发布时间】:2019-05-12 23:37:24
【问题描述】:

在我的 Python 简洁代码中,我使用 opencv 缩小环境的每一帧并将其转换为灰色。我想要存档的是 opencv 打开一个窗口,显示正在处理的帧/视频。

简而言之,我想查看整洁的算法学习和进化。

因为有 3 个环境并行运行,我希望 opencv 显示目前表现最佳的帧/视频。

我正在使用 Python 整洁库来完成一些机器学习任务。目前,我正在使用 sonic the Hedgehog 环境中的 3 个线程进行并行学习。我试图做简单的打开 CV 框架命令,但它只是打开一个黑色窗口。


net = neat.nn.FeedForwardNetwork.create(self.genome, self.config)

        fitness = 0
        xpos = 0
        xpos_max = 0
        counter = 0
        imgarray = []

        while not done:
            # self.env.render()
            ob = cv2.resize(ob, (inx, iny))
            ob = cv2.cvtColor(ob, cv2.COLOR_BGR2GRAY)
            ob = np.reshape(ob, (inx, iny))

            imgarray = np.ndarray.flatten(ob)

            actions = net.activate(imgarray)

            ob, rew, done, info = self.env.step(actions)

            xpos = info['x']



这是缩小帧并将其转换为灰度的代码部分。

如果它只能根据适应度值显示表现最好的框架/工作人员,则奖励。

在此处查看完整代码:https://gitlab.com/lucasrthompson/Sonic-Bot-In-OpenAI-and-NEAT/blob/master/neat-paralle-sonic.py 通过卢卡斯汤普森

我期望的输出是一个显示环境帧/视频的窗口。厉害了

构建它渲染

self.env.render() 弹出许多包含过去和现在环境版本的窗口。

谢谢

【问题讨论】:

    标签: opencv machine-learning render openai-gym neat


    【解决方案1】:

    我正在编写自己的 NEAT 实现,并且还在使用 OpenAi gym 进行测试。

    您可以使用包装器为您录制视频,这将是真正的视频,无需缩小或更改颜色:

    env_wrapped = gym.make('OpenAI-env-id')
    env = wrappers.Monitor(env_wrapped, dir , video_callable=record_video_function)
    

    “record_video_function”是一个可调用函数,当您希望录制剧集时,它可以返回 true 或 false。

    为了查看性能最好的基因组,我通常会做的是:

    1. 按适应度对基因组进行排序
    2. 运行评估循环
    3. 如果下一个物种冠军是最后一个,我将全局变量更改为 True
    4. 在“record_video_function”中,我返回了这个全局变量的值,所以如果它是真的,它将启用剧集的视频录制
    5. 剧集结束后,我将这个全局变量返回为False

    所以,有了这个,我可以看到上一代基因组表现最好的人。你看不到当代最好的,因为没有办法知道他们将如何表现。如果环境是确定性的,您将能够看到下一代的最佳性能。如果它是随机的,那么它可能不再是最好的了。

    【讨论】:

    • 太酷了 :)) 将不得不尝试该过程如何与整洁的并行学习一起工作(一次 3 个)。我不知道您是否可以将 env_wrapped 与并行学习一起使用,但很棒。如果你能记录获胜的基因组,那就太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多