前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 AlphaGo 的棋类人机博弈 AR 系统

基于 AlphaGo 的棋类人机博弈 AR 系统

作者头像
FPGA技术江湖
发布2020-12-29 16:16:53
6430
发布2020-12-29 16:16:53
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

1. 设计概述

1.1设计目的

交互式投影是一种投影画面显示技术,应用现代遥感科学和多媒体处理应用技术。 交互式投影的目的是通过触摸互动平面的不同位置,投影仪在互动平面上显示不同的动画场景,是一种新的体验,也是人机交互的一种线下娱乐形式,在科普装置中交互式投影技术与娱乐活动相结合,能够提高科学内容的趣味性,增强视觉效果。 在过去的几十年中,互动装置受到了各界广泛的关注和重视。互动艺术特点较为鲜明,在不断发展中逐渐将前沿科学技术应用其中,为装置艺术设计注入新的生命力。罗立宏 Flash 设计的兰花摇曳,鸟语花香,蝴蝶飞舞交互动画运用到交互式投影中,设计出基于交互式投影中国风的交互效果,为传统文化国画艺术带来新的参考。周天旭将中国历史教育图册结合交互式投影形式,解决历史百科书籍存在内容形式单一、难以激发儿童学习兴趣等局限性。 交互式投影技术推动着艺术与教育领域的发展。

交互式投影是一种新颖的多媒体技术,通过交互式投影技术,同时结合数据源和声音的优化组合,将一面平平无奇的互动面板变得更有趣味性,提高用户的主观能动性,积极参与其中,切身感受作品中的勃勃生机和活力。

交互式投影系统运用的技术为混合增强现实技术与动感捕捉技术,是增强现实技术的进一步发展。通过计算机产生图像,提供给用户一个可触控平面并与之互动。通过交互式投影,用户在操控虚拟影像的同时也能接触真实环境,从而增强了感官性。

近些年来,增强现实(简称 AR)与人工神经网络算法结合成为了一种极有价值的研究方向,本项作品中,我们采用卷积神经网络和蒙特卡洛树复刻了Alphago 的棋类博弈神经网络, 配合组委会指定的 PYNQ-Z2 核心板进行红外图像DDE 算法加速, 实时获取图像,进行手势识别, 有效解决了终端智能算力不足的问题,采用增强现实投影作为显示平台。

1.2 应用领域

本作品应用前景广泛,交互式投影是未来人工智能发展的重要方向,沉浸式艺术作为一种新兴的艺术形式,以视、听、触、嗅、参与、交互为主,将人的“五感”能够有效的结合在一起,给人沉浸式的互动体验,带给人意想不到的惊喜感。

DDE 数字算法改善图像细节,通过对比,能够在背景环境十分复杂的情况下仍然能够保持极高的准确率,在机器视觉、图像增强等领域上将占有一席之地。

1.3 适用范围

本项目适用范围十分广泛,稳定性与实用性都较高,普适性较强,在视觉追踪以及沉浸式交互投影方面都具有优异的表现, 本项目为方便演示,仅采用 8×8 棋盘布局,可任意拓展棋盘大小,棋类也并非局限于五子棋,可拓展至任何棋盘。 与此同时,本项目响应了 AR 发展的时代背景,与人工神经网络相结合,成为十分有价值的研究方向。

1.4 关键性能指标

通过 DDE 算法改善图像细节,解决热像直方图分布狭窄以及传统处理方法缺乏细节的问题。 DDE 负载的操作使其很难实现实时性能,甚至在高性能 CPU 或 GPU上都是如此,故我们在 FPGA 上搭载了该算法,最终处理效果良好,实时性显著提高。

2. 系统概述

2.1 系统介绍

图1流程图

PYNQ-Z2 核心板的 PL 端用于采集图像和细节增强,将当前用户的手部红外图像截取下来,识别当前用户执行的操作,如果执行了落子的动作,就把用户落子的坐标发送至 PS 端,由卷积神经网络+蒙特卡洛树给出对应的落子策略,最后HDMI 输出模块将棋盘显示到投影平面上。

2.2 系统组成及功能说明

各模块介绍

HDMI 模块

HDMI(High-Definition Multiface Interface)是 Hitachi, Panasonic,Philips, SiliconImage, Sony, Thomson, Toshiba 几家公司共同发布的一款音视频传输协议,主要用于 DVD, 机顶盒等音视频 source 到 TV,显示器等 sink 设备的传输。传输基于的是 TMDS(Transition Minimized Differential Signaling)协议。此外,使用 TMDS 也是 DVI 标准的主要特点 。

判断标准: HDMI 接口可以传输的音频支持“任何能通过 S/PDIF 输出的压缩数字音频” 和“2/6/8 声道, 32-192KHZ 采样率的未压缩的数字音频” ,可以输出“I2S(一种数字传输界面,时差性能要优于 S/PDIF,适合短距离通讯)和 SPDIF的音频” ;它总能获得 CD 的音频质量; HDMI 接口可以传输的视频支持“高清1080I” , “高清 720P” , “普通隔行” 和“普通逐行” ,同时支持 NTSC 和 PAL电视制式;可以根据接受端可以接受的视频状态自动输出“YUV” 或“RGB” 编码的视频格式。

HDMI 传输由三组 TMDS 通道和一组 TMDS clock 通道组成, TMDS clock 的运行频率是 video 信号的 pixel 频率,在每个 cycle,每个 TMDS data 通道发送10bit 数据。如图 2 为 HDMI 传输示意图,从图中可知, HDMI 传输如下四种类型数据:

1. Preamble 控制信息,图中的 CTLx,可用来表示后面传输的是 data island 还是 video data。通过 channel1 和 2 的 D[1:0]传输,占用 4bit。

2. Data Island,即数据包,如 Audio 数据包。通过 3 个 channel 的D[3:0]传输,占用 12bit。

3. Video Data,视频数据。示意图中传输的是 RGB 格式图像, R,G,B 分别通过 channel2,1,0 传输,每个颜色 8bit,共 24bit。

4. HSYNC, VSYNC。使用 channel0 的 D[1:0]传输,占用 2bit。 8bit 的数据在 source 经过 TMDS encoder 后得到 10bit 数据,经过 serializer 后串行输出;在 sink 端先进行复原成 10bit 的数据,再通过 TMDS decoder 得到 8bit的源数据。此外, HDMI 视频是 stream 式的传输,不涉及 packet 式的传输。

图2 HDMI传输示意图

摄像头模块

摄像头采用 MT9V032,采用 1.4um*1.4um 像素大小,并且使用 OmniBSI 技术以达到更高性能(高灵敏度、低串扰、低噪声);具有自动图像控制功能:自动曝光(AEC)、自动白平衡(AWB)、自动消除灯光条纹、自动黑电平校准和自动带通滤波器等;支持图像质量控制:色饱和度调节、色调调节、 gamma 校准、锐度和 镜 头 校 准 ; 标 准 SCCB 接 口 , 兼 容 IIC 接 口 ; 支 持 RawRGB 、 RGB(RGB565/RGB555/RGB444)、 CCIR656、 YUV(422/420)、 YCbCr(422)和压缩图像(JPEG)输出格式,支持 SXGA(500W)图像尺寸输出,以及按比例缩小到其他任何尺寸;支持图像缩放、平移和窗口设置;支持自动对焦。


SCCB 总线控制的实现:

1、SCCB 有 START 和 STOP 条件,类似于 I2C。

2、写寄存器分为 3 个字节段:即从设备地址片内寄存器地址,要写的字节内容。

3、DON'T-CARE BIT 实际就是接受端的 ACK 回应, 0 表示回应。

4、一个写寄存器的操作对应三个 DON'T-CARE BIT。我们通过查看这个 ACK位就知道摄像头 SCCB 接口是否已经连接以及写寄存器的操作是否成功完成。

5、数据位在 SIOC 为 0 发生变化,在 SOIC 为 1 写入摄像头模块。

6、从设备地址有 8 位,结合读写位,组成 8 位作为器件地址。 OV7670 器件地址是 0X42。


模块的实现方法是将 id, addr, value 三个字节按照 SCCB 时序产生波形,传递给 ov 模块。因此模块端口是:

代码语言:javascript
复制
module SCCB_sender(
    input clk,
    inout siod,
    output reg sioc,
    output reg resdy,
    input vaild,
    input [7:0] id,addr,value
  );

图3 SSCB时序波形

接下来,介绍一下 MT9V032 的图像数据输出时序,首先简单介绍一些定义: QXGA( 2048*1536)、 UXGA( 1600*1200)、 SXGA( 1280*1024)、 WXGA+( 1440*900)、WXGA(1280*800)、 XGA(1024*768)、 SVGA(800*600)、 VGA( 640*480)、 QVGA(320*240)和 QQVGA( 160*120) PCLK,即像素时钟,一个 PCLK 时钟,输出一个像素(或半个像素)。 VSYNC,即帧同步信号。 HREE/HSYNC,即行同步信号。时序图:

从上图可以看出,图像数据在 HREF 为高的时候输出,当 HREF 变高后,每一个 PCLK 时钟,输出一个 8 位/10 位数据。我们采用 8 位接口,所以每个 PCLK 输出一个字节,且在 RGB/YUV 输出格式下,每个 tp=2 个 Tpclk,如果是 RAW 格式,则一个 tp=1 个 Tpclk。比如我们采用 QSXGA 时序, RGB565 格式输出,每 2 个字节组成一个像素的颜色(低字节在前,高字节在后),这样每行输出总共有 2592*2 个 PCLK 周期,输出 2592*2 个字节,帧时序如图:

根据时序读取 MT9V032 图像数据。

3. 完成情况及性能参数

3.1 红外图像 DDE 算法加速

DDE(Digital Detail Enhancement),是一种通过数字算法改善图像细节的概念,是一种在图像处理领域广泛使用的技术。

图 6 是从热成像仪中取样的原始图片。与大多数人的印象相反,它非常模糊,以至于几乎无法区分由于它狭窄的直方图分布。图 7 是经过商业通用处理算法(直方图均衡化处理)的热图像,在图像细节方面存在致命的缺陷──直方图均衡化不能增强图像细节,甚至会丢失细节。 图 8 是 DDE 方法的效果。DDE 算法可有效改进上述两个问题。

系统架构

基于 FPGA 的流水线架构设计如图 9。基于低通滤波器(Gauss 滤波器)将图像分离成高频和低频的思想,构造了相应的算法,然后分别进行处理。

该工作利用直方图均衡处理低频视频以克服热成像中直方图分布窄的问题,并利用自适应细节增强处理高频视频以克服现有处理方法中细节的不足。

最后将处理后的高频和低频视频流再次融合,实现了 DDE。

该工作在实时处理中取得了良好的实时性能,不会造成任何帧丢失。

3.2 卷积神经网络+蒙特卡洛树

3.2.1.卷积神经网络

很长一段时间以来,学术界普遍认为,机器在围棋领域达到人类大师的专业等级是不现实的。 20 年多以来, 几乎没有出现和人类围棋大师水平相当的围棋引擎, 令人惊讶的是, Google DeepMind 团队在 2016 年 3 月份发布的一个叫做Alpha Go 算法,以 4-1 的成绩击败了韩国世界冠军李世石,这推翻了之前否定机器不可能战胜人类的科幻电影和怀疑论者。大约一年后,新发布的 Alpha Zero以 100-0 的成绩战胜了它的前代 Alpha Go,这是人类一个很难达到的高度。

Alpha Go/Zero 是几种方法集成而成的一个工程杰作。 其主要核心组件包括:

蒙特卡洛树搜索(MCTS)、 残差卷积神经网络以及强化学习三大部分。

而本项目基于 Alpha Go 的设计核心,主要在 PYNQ-Z2 核心板上采用卷积神经网络进行深度学习计算,从而得到最佳的下一步。近年来卷积神经网络进行图像以及主要使用在图像和视频分析的各种任务上,比如图像分类、人脸识别、物体识别、图像分割等,其准确率一般也远远超出了其它的神经网络模型。 不仅如此, 卷积神经网络也广泛地被应用到自然语言处理、推荐系统等领域。

本项目采用的卷积神经网络是受生物学上感受野的机制而提出。感受野主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号。在视觉神经系统中,视觉皮层中的神经细胞的输出依赖于视网膜上的光感受器。一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。卷积神经网络有三个结构上的特性:局部连接,权重共享以及汇聚。这些特性使得卷积神经网络具有一定程度上的平移、缩放和旋转不变性。

该卷积神经网络通过识别处理棋手所落子位置,并进行深度学习处理, 使用policy network(策略网络)和 value network(价值网络)来进行比赛的评估和落子先验概率的估计,最终给出当前情况下的最优解。

3.2.2.蒙特卡洛树搜索方法

本项目主要采用蒙特卡洛树搜索(MCTS), MCTS 的主要概念是搜索。 通过对游戏进行多次模拟,然后尝试基于模拟结果对最佳下一步进行预测。

搜索是沿着游戏树的一组遍历的集合,单次遍历是从根节点(当前游戏状态)到一个未完全展开节点的路径。一个未完全展开的节点意味着它至少有一个未被访问的子节点。当遇到未完全展开的节点时,从该节点的子节点中选取一个未被访问过的用来进行一次模拟。模拟的结果然后反向转播是当前树的根节点,并更新节点的统计信息。当搜索结束时(受限于时间或计算能力),就可以根据收集的统计信息来决定当前情况下的最佳下一步。

本项目的 PS 端运行神经网络,根据蒙特卡洛树搜索算法对比计算预测出最佳下一步,并进行落子。

与此同时,为了简化运算量,提高运算速度, 当使用 MCTS 选择了移动之后,你选择的节点将变成你对手移动的游戏状态。当你对手选择了他的移动,你将再次从对手选择的节点处开始 MCTS 搜索。先前 MCTS 的一些统计信息可能仍然存在于你在正在考虑的新分支中,这样就可以重用统计数据从而降低运算量,加快运行速度。

4. 总结

4.1 主要创新点

1.利用 PYNQ 核心板在驱动摄像头、运行神经网络的同时进行红外图像处理。

2.采用了红外成像 DDE(数字图像细节增强)算法, 能够准确地将图像中的边缘轮廓信息捕捉到不同尺度不同方向的子带中,在图像压缩去噪等应用领域内能很好地保留纹理细节信息,较为完美地解决热源膨胀导致图像模糊的问题。

3.引入红外摄像头,对红外图像捕捉并算法增强, 对比传统的图像识别方法(如边缘检测、模板匹配、肤色检测等) 可能受到环境光、衣服、投影角度等因素影响,无法识别手势甚至捕捉不到手的问题,本作品能够忽视掉近乎所有杂乱环境带来的影响,具有极高的鲁棒性与准确率。

4.采用交互式投影解决了传统投影方案中操作者需要通过中断设备进行点击、编辑、 圈画等都操作的问题,直接在投影屏上操作能够极大地提高效率, 带给用户沉浸式体验感。

4.2 可拓展之处

1.尝试将手势动作拓展转换为鼠标指令,可以尝试在性能更高的办卡上搭载操作系统,实现更加复杂的功能。

2.不同环境下的温度变化,会对红外图像产生干扰,可尝试增加一个固定温度的热源作为参照,以减小环境变化带来的影响。

3.基于 DDE 算法的特性,在处理图像纹理上有极大优势,抗干扰能力很强,可以通过细节增强甚至能够准确获取用户指纹或者面部信息。可用于安防领域,例如非接触式指纹解锁、面部识别等。

4.交互式投影实时交互性强,操作简单快捷,可广泛应用于学术会议、教学、娱乐等方面以及科技馆、博物馆、主题展厅、演出场馆等传统多媒体技术的场所。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 很长一段时间以来,学术界普遍认为,机器在围棋领域达到人类大师的专业等级是不现实的。 20 年多以来, 几乎没有出现和人类围棋大师水平相当的围棋引擎, 令人惊讶的是, Google DeepMind 团队在 2016 年 3 月份发布的一个叫做Alpha Go 算法,以 4-1 的成绩击败了韩国世界冠军李世石,这推翻了之前否定机器不可能战胜人类的科幻电影和怀疑论者。大约一年后,新发布的 Alpha Zero以 100-0 的成绩战胜了它的前代 Alpha Go,这是人类一个很难达到的高度。
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档