精华内容
下载资源
问答
  • “语音智能家居生活”创意交互概念设计报告.pdf
  • 利用横向信号交互概念的多功能可重构滤波器
  • 什么是产品 玩 学 工作 生活 心理 产品 PRODUCTS 整体概念 能够提供给市场 被人们使用和消费 满足人们的需求 的任何东西 1. 什么是产品 有形的产品 无形的服务 组织观念或他们的组合 用来交换的产品 = 2.
  • MITK交互概念

    千次阅读 2015-03-30 10:15:59
    私人劳动,转载请注明出处)MITK有特殊的交互概念,让同样的交互方案可以在不同的情境中使用。MITK交互的核心基于DataInteractors,它们监听事先定义的事件,并在事件被触发时做出响应(执行actions)。下面介绍交互的...

    (学习笔记,错误难免,请指正;私人劳动,转载请注明出处)

    MITK有特殊的交互概念,让同样的交互方案可以在不同的情境中使用。MITK交互的核心基于DataInteractors,它们监听事先定义的事件,并在事件被触发时做出响应(执行actions)。

    下面介绍交互的几个组成部分。

    Event Handling & GUI Toolkit Abstraction

    下图介绍了mitk::DataInteractor中创建事件到执行action的过程。该图的前提条件是使用QT框架,同时展示了MITK交互概念是独立于任何图形用户接口工具包的。

    这里写图片描述

    1. 一个用户触发了事件,消息传递给MITK。
    2. 本层作为GUI toolkit(此处指QT)到MITK内部事件(后面称为InteractionEvents)的适配器
    3. 事件经过适配后,发往与渲染窗口连接的mitk::Dispatcher。
    4. 在mitk::Dispatcher层,所有能对事件(mitk::DataInteractor和mitk::InteractionEventObserver实例)进行响应的对象都能被找到。
    5. 一个mitk::DataInteractor被赋予一个事件,然后检查自己的mitk::EventConfig对象,看这个事件自己是否有定义并返回值。
    6. 如果DataInteractor中有定义,则检查其state machine,看当前状态下是否能够做出响应。
    7. 如果检查到与状态变化(transition)相对应的行为,则执行该行为,自此事件被完整处理。

    事件

    事件可以是任何用户输入,例如键盘、鼠标或触摸手势。这些事件从QT这样的UI框架映射到MITK内部(这时候只知道有消息要发送了,但不知道发给谁),而后被发送到mitk::Dispatcher做进一步消息分发(这时候的分发就是具体到发给谁了)。这些事件并不局限于传统输入,用户还可以给比如追踪装置等定义新的类去描述事件(如何创建新事件?)。

    InteractionEventHandler

    描述能够处理事件的对象。这些对象可以被划分为两组:DataInteractors和mitk::InteractionEventObserver。他们间不同之处在于:mitk::DataInteractor实例作用于一个mitk::DataNode。mitk::InteractionEventObserver和DataNode没有关系,因此不能处理数据(mitk::DataNode实例)。

    这里写图片描述

    DataInteractors

    DataInteractors继承了mitk::InteractionEventHandler,且更加具体。它能够通过状态机(state machine)处理与DataNode相关的事件。

    StateMachines

    事件的具体行为响应取决于要操作的数据和交互状态。比如用鼠标画一条线,第一次双击应该是添加一个点,第二次双击应该加一个点并结束交互。这样第三次双击就会无效。诸如相同的用户交互事件,根据目前状态而触发不同的行为这样的事情,状态机(state machine)能够很好地完成。

    DataInteractor通过状态机模式完成事件处理,其基本思想是每次交互都能被描述为state和transition(触发行为)。不同的状态机可以用于同一个mitk::DataInteractor,让DataInteractor执行不同的用户交互。举例来说:

    假设一个mitk::DataInteractor 具有两个功能:
    1.在鼠标所在位置添加点并用直线连接这些点。
    2.检查两个点是否在同一位置。

    在不同的mitk::StateMachine模式下,这个mitk::DataInteractor 能够执行不同的交互方案。

    状态机模式1:我们想让用户画一条直线,一个包含三种状态的状态机如下:

    这里写图片描述

    每次MousePress事件发生时,AddPoint函数被调用,在鼠标位置添加一个点,除非已添加两个点。

    状态机模式2:同样的mitk::DataInteractor可以按如下状态机进行操作,画一个闭合的轮廓。
    mitk::DataInteractor能够在已有的点上检测AddPoint事件,并处罚一个PointsMatch事件。

    这里写图片描述

    这样不同的交互行为可以由状态机来完成,开发者只需更换状态机,而不用修改程序代码。

    定义状态机

    状态机以XML文件的形式存储,它的定义由四部分组成。

    • States:状态,当前交互所处的状态。
    • Transitions:过渡事件,从一个状态过渡到另一个状态所需要的事件。
    • Conditions:过渡条件,在过渡发生前执行,作为是否允许状态过渡的条件。
    • Actions:行为,过渡条件满足,允许状态过渡,触发此行为。

    每个状态机都需要一个初始状态(StartState),即状态机刚被建立时就为这个状态。下面是一个状态机的例子,描述状态机模式2:添加点到轮廓直到PointsMatch事件被触发。

    <statemachine>
        <!-- startstate设为true,表示这是起始状态 -->
        <state name="StartState" startstate="true" >
            <transition event_class="MousePressEvent" event_variant="MousePress" target="StartState">
                <condition name="CheckPoint"/>
                <action name="AddPoint"/>
            </transition>
            <transition event_class="InternalEvent" event_variant="PointsMatch" target="ClosedContour">
                <action name="AddPoint"/>
            </transition>
        </state>
        <state name="ClosedContour"/>
    </statemachine>

    Transitions

    上面代码中可以看到,触发transition的事件由两部分共同决定: event_class和event_variant。event class代表事件类型(查询有哪些事件类型可参考mitk::InteractionEvent)。event variant为更具体的事件描述,且event variant的值来自config文件。比如下面的例子,当StdMousePressPrimaryButton事件触发时(鼠标左键按下),状态机从状态A转换到状态B。

    例子:

    状态机
    <statemachine>
    <state name="A" startstate="true">
    <transition event_class="MousePressEvent" event_variant="StdMousePressPrimaryButton" target="B"/>
    <state/>
    <state name="B" />
    </statemachine>

    config文件
    <!-- Standard left click -->
    <config>
    <event_variant class="MousePressEvent" name="StdMousePressPrimaryButton">
    <attribute name="EventButton" value="LeftMouseButton"/>
    </event_variant>
    <!-- right click with control key pressed-->
    <event_variant class="MousePressEvent" name="RightWithCTRL">
    <attribute name="EventButton" value="RightMouseButton"/>
    <attribute name="Modifiers" value="ctrl"/>
    </event_variant>
    </config>

    InteractionEventObserver

    mitk::InteractionEventObserver实例接收所有用户的输入,且目的在于观察,它不能修改任何DataNode。mitk::InteractionEventObserver可以选择使用或者不使用状态机,默认是不使用。如何使用状态机功能可参考文档mitk::InteractionEventObserver::Notify

    这里写图片描述

    Configuration

    许多情况下,独立于特定事件(如鼠标左击)的交互更为方便,以便能够方便地更换。这就需要InteractionEventHandlers的configuration来完成。它允许运行中更换行为。

    通过载入不同的configuration,mitk::InteractionEventHandler能够非常容易地更换用户输入所应触发的行为。configuration也是用XML文件来描述的。mitk::InteractionEventHandler能够载入这些文件,从而建立起用户输入到行为的映射。

    这里需要区分specific event和event variant。specific event由它自己的类来描述,比如mitk::MousePressEvent,且它的参数保证它的独一无二。event variant是赋予某个特定事件的名字。mitk::InteractionEventHandler监听这些名字。

    例如,下面列出了两个不同的configuration文件。假设 mitk::InteractionEventHandler监听的event variant是 ‘AddPoint’。

    示例2:鼠标左击事件描述

    <config name="one">
     <event_variant name="MousePress" class="MousePressEvent">
      <attribute name="EventButton" value="LeftMouseButton"/>
     </event_variant>
    </config>

    示例3:按住Shift键同时鼠标左击事件描述

    <config name="two">
     <event_variant name="MousePress" class="MousePressEvent">
      <attribute name="EventButton" value="RightMouseButton"/>
      <attribute name="Modifiers" value="shift"/>
     </event_variant>
    </config>

    如果mitk::InteractionEventHandler载入的是第一个configuration,则鼠标左键按下时,event variant “MousePress” 被触发。如果载入的是第二个configuration,按住shift键的同时鼠标右键按下时,”MousePress” 被触发。如此,所有继承自mitk::InteractionEventHandler的对象都可以被configured。如何创建configuration XML文件参考Interaction Concept Implementation

    Dispatcher

    mitk::Dispatcher的实例接收所有事件,并将这些事件转发给相关的mitk::DataInteractor实例。根据DataInteractors对应的mitk::DataNode的layer level,对DataInteractors进行降序排序。事件被分发给第一个mitk::DataInteractor,由其检查自己是否能够处理这个事件。然后是第二个,第三个……DataInteractor,直到有DataInteractor能处理该事件。之后,其他的DataInteractors被跳过,且所有的InteractionEventObservers都会接到通知。

    展开全文
  • 今天为大家分享一个很有趣的手机交互理念,主要体现的是通过手指滑动头部标题栏来选择您需要到达的菜单,顺序是根据滑动的程度来选择您需要到达的菜单。...利用html5和JavaScript实现手机端滑动菜单的交互概念.rar
    今天为大家分享一个很有趣的手机交互理念,主要体现的是通过手指滑动头部标题栏来选择您需要到达的菜单,顺序是根据滑动的程度来选择您需要到达的菜单。该模版主要运用HTML5、css3及JavaScript来实现。希望对您的项目有所帮助。 
    

    展开全文
  • 针对智能手机外观的概念设计过程不能很好的满足客户的个性化需求,本文引入交互式遗传算法(Interactive Genetic Algorithms,IGA),建立了智能手机外观的概念设计系统框架,使得客户能够直接参与到设计中,并使用...
  • 万科AR交互沙盘概念方案 AR Interactive sandbox AR交互模型区 展示手法 设置模型台,上面可以是完全平面的地图,也可以有主要的实体横型,如透明素模 展台用玻璃和框架结构做底座,设计上给人的感觉是整个沙盘悬浮在...
  • 人机交互与智能的起源、本质

    千次阅读 2017-11-20 00:00:00
    梳理了古代四大文明关注的不同焦点,即人物、人神、人人、人与环境之间的关系,由此导出了人机交互与智能的本质,分析了现代人机交互与智能中的一些重要概念,探讨了人机交互与智能中的自主性问题,研究了人机交互和...

    摘要:本文分析了人机交互与智能的哲学起源及科学起源,梳理了古代四大文明关注的不同焦点,即人物、人神、人人、人与环境之间的关系,由此导出了人机交互与智能的本质,分析了现代人机交互与智能中的一些重要概念,探讨了人机交互与智能中的自主性问题,研究了人机交互和智能的瓶颈,并由此提出了深度态势感知的概念,最后对人机交互与智能的发展进行了总结和展望。

    关键词:人机交互,人工智能,自主性,态势感知,深度态势感知 


    1.智能与交互的起源

    霍金曾说过,在过去的20年里,人工智能一直专注于围绕建设智能体所产生的问题,即在特定的情境下,可以感知并行动的各种系统,在这种情况下,智能是一个与统计学,和经济学相关的理性概念。通俗地讲,这是一种做出好的决定计划和推论的能力。那么什么是交互与智能,我们将在下文中进行探讨。

    人工智能或智能科学,其概念最早发源于哲学,早期有一批伟大的哲学家,一直在讨论什么是智能,什么是知识。迈克·波兰尼( MichaelPolanyi)他曾在20世纪60年代写过一部著名的著作:《The Tacit Dimension》(《默会的维度》),提出“我们知道的越多,那么我们知道的越少”。同时他还认为我们知道的远比我们说出来的要很多(Wecan know  more than we can tell)。波兰尼这句话里面,体现出了默会的知识、隐形的知识,在支配着我们不断的向显性的知识进行递进、进行演化。

    第二个人是弗里德里希·哈耶克。弗里德里希·哈耶克在经济方面对世界的影响非常大,他曾拿过诺贝尔经济学奖。他一生当中,涉列了政治、社会、经济、文化、艺术、哲学和心理学,在认知科学方面,他有一本著作《The Sensory Order》(《感觉的秩序》)。在这本书中,他明确地提出了一个观点“Action more than design”即行为远比设计更重要,其大意即人的各种感觉,是通过行为来表征出来的,而不是故意设计出来的,后来的演化造成了设计出现。维基百科的创立人很推崇《The Sensory Order》这本书,认为是这本书,点醒了他创立了维基百科。

    第三个是卡尔·波普尔,他是一个伟大的哲学家,提出了三个世界的观点,物理的、精神的、和人工的。他有一本非常经典的著作《科学发现的逻辑》,他提出科学不是证实是证伪,他认为科学是提出问题进行猜想,然后进行反驳,不断的试错,有科学的出现,而不是常规意义上的观察归纳,然后证实的实证机制。在归纳里面有很多的漏洞,因为归纳是不完全的归纳,波普尔就有针对性的对归纳进行了梳理。


    人工智能的科学起源,通常认为人工智能的技术起源,是从1956年美国达特茅斯会议开始。但它的科学起源,可以最早追溯到曾任剑桥大学老师的查尔斯·巴贝奇,他是世界上做机械计算机的鼻祖,做了一台机械的计算机,计算Sin和Cos数值的大小,从此人类拉开了计算的帷幕。另一个是剑桥大学的伯特兰·罗素。罗素利用其哲学思想和他的数学基础,创立了一个很重要的哲学分支——分析哲学。分析哲学的至高点是维特根斯坦,2005年左右曾有一次世界哲学家投票,排名第一即是维特根斯坦。维特根斯坦的前半期写了一部重要的著作——《逻辑哲学论》。这部书里提出,语言是哲学的重要的工具,也是哲学的切入点。在此之前,哲学的发展有两个里程碑,第一个是关于世界本源的问题,即是物质的还是意识的,这个讨论了一千多年,后来笛卡尔开始研究用什么样的方法来认识世界是物质的还是意识的,提出二元论。在此之后,人们找了很多方法来研究哲学,但收效甚微,直到维特根斯坦,他改变了哲学的轨迹。他前半生研究关于语言的人工性,所谓人工性的语言就是标准化的语言,格式化的语言,是流程性的程序化的语言,而他的后半期主要否定了自己前半期的工作,开始研究生活化的语言,自然性的语言。认为真正的哲学是通过生活化的语言,来体现出哲学的深奥和哲学的意义。


    2.历史中的智能与交互

    在人类的文明的历史中,有过四大文明古国,在这四大文明古国里边最著名的,即古巴比伦和古埃及,这两个文明,几乎同时出现,它们是距今6000多年前,就已经有了国家、工具、文字出现,这两个文明直接导致了欧洲文明的起源。这两个文明主要是研究人和物之间的关系,例如水利、工具、一些制度、法律。这种人和物之间的关系,后来影响到了欧洲的一些地中海(希腊)文明,后来辐射到整个欧洲大陆,诞生了科学和技术,科学和技术的宗旨研究,就是人和物之间的关系。

    除了这两个最早的文明以外,第三大文明就是古印度文明。古印度文明里面很重要的特质,就是研究人和神之间的关系。人神之间的关系,主要是人和抽象事物,不可掌控的一些事物之间的关系,在中东一带,诞生了世界所有最主要的宗教,像伊斯兰教、像基督教、印度教,佛教等等,都源于此,都是关于人和神之间关系的。

    第四大文明是研究人和人之间关系,人和环境之间关系的一个重要的文明,即中华文明。目前世界上唯一一个保存的较完整、较好的文明,就是中华文明。中华文明体现的不是人和物,人和神之间的关系,是人和人之间如何融洽,人和环境之间如何和谐,天、地、人之间如何共生的问题


    在距今2500年以前,西方公认的科学之祖和哲学之祖,是泰勒斯,他和中国的老子、孔子差不多出现在同一时代,其思想体现在他的一句箴言里面即“water is best”(水是最好的)。水是一种物质,地球生物是海洋里诞生出来的,然后水又滋育的和哺育了人类,所以西方的科学和哲学一开始就和物质密切相关,而我们的老子对水也有阐述“上善若水”,孔子的“逝者如斯夫”,也是对水的一种感叹,但他们大多都拘泥于感性和伦理方面,所以东西方文明的差异从这几个代表性人物语言里边大家可见一斑。

        从上文可见在岁月的发展的历史长河当中,人类四大文明分别聚焦于人物、人神、人人、人与环境,相互之间的关系,而科学和技术的发展,和人和物之间的关联密切相关,所以,现代科学技术起源于欧洲,是顺理成章的,也是可以理解的。但是,目前来看,随着社会和人类不断的进步,人和人之间、人和环境之间的关系,日益提到日程上来,所以,现在整个世界的焦点,逐渐从西方转移到了以人人、人与环境为主的东方视角来。


    3.智能与交互的本质

    人和物之间的关系,是西方一个重要的研究方向,机器是人造物,所以人机交互,也是起源于这个西方。人机交互的本质,是共在,即“Being together”。人把自己的优点,和机器的长处结合在一起,形成了一个交互的,互补性的联结,未来人工智能的发展方向,很可能是人机融合智能或人机混合智能,即把人的智慧和机器的智能结合在一起,形成一个更有力的,支撑性的发展趋势,这样不但研究人机交互的脖子以下的,即生理的问题,而且还会研究脖子以上的,即心理的或者大脑的问题。其实,人机交互或人机混合智能,都是不准确的词,最准确的词是人机环境交互系统,因为人和机器及物质,其交互是不完整的,是通过环境这个大系统,来进行沟通的,所以人机环境系统工程,可能是未来的,一个主要的研究方向。

    那么,人工智能或智能的本质是什么?可以从人的成长经历或发展上看出一些端倪。一般来说胎儿在母亲腹中,就已经开始有了各种感觉,如听觉、嗅觉、味觉、触觉,已经开始和外部的环境及母亲腹中的内部环境进行交互,已经产生了一个,很简单的“我”的概念。然后,出生以后,因为视觉、听觉等感觉发育得不是很完善,更多的是用触觉来接触世界,了解他周围的一些事物,随着自主能力的产生,会试图摆脱大人的束缚,更愿意自己爬,自己走,不希望别人去扶。可以看到,这时候已经开始否定了,否定别人的帮助。据国内外最新的研究结果,小孩形成语言的时候,无论东方还是西方,除了被不断重复灌输的爸爸、妈妈这种词以外,自己先说出的,都是从第一个单词--动词“不”开始的,然后会发展到,说“没有”还有“别”这些词。“不”、“没有”、“别”这些词,就是孩子们成长的一个过程,在这个过程当中,就体现出人的智能,是从否定开始的,否定外部,否定自己,否定很多事物,来产生了某种智慧性的东西。需要注意,在人工智能里边,其否定机制,还远远没有产生,所以人工智能和人的智能,有很大的差异。


    我们在研究过程中发现,人工智能的起点,第一个词是“是”,being”,即存在,客观的物质,这是西方的哲学的一个很重要的词,世界是物质的还是意识的,其中物质就是“being”。然后,关于人的智能和智慧,还存在着“Should”-应该。《三国演义》里面的“义”,就是“Should”,“应该”的意思,“仗义”的“义”也是“应该”的意思,“应该”这个词,在西方里边非常重要,在东方里边也很重视,这是东西方文明融合的一个交汇点。Should,翻译成哲学语言,就是意识的指向,即awareness、consciousness另外还有want,人有want,即想干什么,而机器不会want,机器只会按照程序、指令进行操作,而人还有一个“能(can)”的问题,即能做还是不能做。机器没有这个问题,只是操作。

    休谟在他的哲学体系里边,提出了很重要的“休谟之问”:“是”推不出“应该”,这句话的意思是从事实里推不出价值观。中国古代著名的一句话“天行健,君子必自强不”是不成立的。天行健是一个事实,君子必自强不息,是一种价值观,二者不能划等号,这里面涉及到一个很重要的词--“change”,“变”,人会不断的“change”,而机器则不能,只会按部就班、因循守旧、刻舟求剑。我们认为这五个词是人工智能和人类智能很重要的差异。另外,人还有一个很重要的特质,即感知的恒常性,人在变化的外界环境当中通常能够保留对这个事物的本来面目的感知,例如某种颜色。在不同的背景下,会改变这种颜色的影响,但是人却会能够在这种变化当中,找到不变的那种感觉,而机器不然,机器它对外部变化的颜色,会有一个实时的反应,很难找到那种不变的东西。

    4.现代人工智能与交互

        任何新的事物都有其产生的源泉,人机融合智能也不例外,人机融合智能主要起源于人机交互和智能科学这两个领域,而这两个领域起源都与英国剑桥大学有着密切的关系:1940年夏,当德国轰炸机飞向伦敦之际,人机交互与智能科学的研究序幕就被徐徐拉开了…英国人为了抵御德国人的进攻,开始了雷达、飞机、密码破译方面的科技应用工作,当时在剑桥大学圣约翰学院建立了第一个研究人机交互问题的飞机座舱(即著名的Cambridge Cockpit)以解决飞行员们执行飞行任务时出现的一些错误和失误,另外剑桥国王学院的毕业生图灵领导了对德军“恩尼格玛”密电文的破译…事实上,早在19世纪,剑桥大学的查尔斯.巴贝奇和阿达.奥古斯塔(剑桥大学毕业生、诗人拜伦的女儿,世界第一位程序员)就开始合作机械计算机软硬件的研制,20世纪之后,数学家罗素、逻辑学家维特根斯坦(图灵的老师和朋友)都对智能科学的起源和发展做出了重大的贡献。

    (剑桥最著名的老鹰酒吧是现代人机交互技术的发源地之一)

    在现代的人工智能的发展,剑桥大学也起到了非常重要的作用,其中有三个代表性的人物,第一个就是阿兰·图灵,他提出了图灵测试和图灵机的思想,然后影响了整个世界人工智能发展的轨迹。第二个人就是著名的深度学习之父Geoffrey Hinton,他曾是剑桥大学心理系的本科生,后来到了加拿大,继续做关于人工神经网络的研究,并提出了深度学习的概念和方法,人工智能因此而得到了复兴和现在的繁荣。第三个是AlphaGo之父Demis Hassabis,他是剑桥大学计算机专业的本科毕业生,对推动人工智能的发展,也起到了非常重要的作用。

    人机交互的研究始于二战时期,当时主要研究因为各种不合理的设计导致的飞机故障,开始主要应用在航空航天领域,后来逐渐扩展的社会经济的各方面。最近人机交互里面有一个比较热点的领域——态势感知(situation awareness,也叫情景意识)由曾任美国空军女首席科学家Mica R. Endsley提出。态势感知或情景意识的提出,对整个人机交互产生了巨大的影响。Endsley对态势感知的定义,是在一定的时间和空间内,对环境中的各组成成分,进行感知、理解,进而预测这些成分的随后变化状况。可以看出,在整个人类的发展过程当中,智能科学是一个涉及交叉学科,涉及心理学、计算机科学、神经科学、哲学、语言学等等,这些学科构成的一个完整的学科体系,可以总称为认知科学。


    当前人机环境系统工程的发展迅猛,其定义为:人机环境系统工程,是研究在人、装备和环境系统之间,实现最优匹配的一个领域,涉及到信息的输入、处理、输出和控制,以及反馈,人机环境系统的整体设计,及其优化等方面的研究,研究的目的,是整个系统的高效、安全、健康、和谐、敏捷等。

    当前在这一领域的研究中出现了很多分支,例如,人机交互、普适计算、情感计算等,并产生了很多相应的关键技术,如多模感知、上下文感知、情感智能、环境智能、认知智能、多模界面、感性界面,这些技术用来实现一个最基本的目标,即自然的人机交互。在自然的人机交互中非常重要的一点是数据。所有智能的产生与刺激和数据密切相关,所谓刺激,就是人感知到的外部的映射。所谓数据是机器接触到的外部的输入,通过这两个来产生相应的融合、理解,进而进行相应的反应和规划。

    数据空间对计算机起着非常重要的作用,研究数据的多指向性(包括能指、所指)是当前人机领域的一个难点和瓶颈,同时数据的多指向性,是人机的难以有效融合的一个最重要的瓶颈,人可以理解一个数据的多指向,多含义,而机器不然,机器有规范,有规则,它只能从一个角度来看待这个数据。

    当前人工智能的发展有三大主要标志:深蓝、沃森和Alpha系列,这三个系统都和数据有关,它们都是在处理过去的大量的数据、规则、规划。但是这三个最顶级的系统,都有一个很重要的问题,一个瓶颈问题,就是它只能“得形忘意”,而不能“得意忘形”。真正的人的智能需要临机决策、举一反三,而不是像计算机及当前弱人工智能按照套路去运算。人是算计,算计要比计算灵活的多,是一种可以横跨主客观参数的交互性泛计算。


    5.智能与交互中的自主性问题

    未来的人机交互及人工智能系统,有明确的发展方向,它包含四个方面:主动的推荐、自主的学习、自然的进化、自身的免疫。在这四个方面中自主性是非常重要的一个概念。

    美军有一个深绿系统,其目的是借鉴深蓝系统的思想,将其映射到军事指挥和控制领域。它通过指挥员助手、水晶球和闪电战三个模块,整合出当前的和过去的战场态势,以及实时有效的指挥员辅助决策。这个系统里最重要的是自主性和主动推荐。自主和主动是人工智能或智能科学一个很重要的研究热点和难点。自主应该包括以下几方面:

    第一,自主应具有记忆的功能,而不是存储,记忆是灵活的,能够通过相关无关的事物产生直觉,而存储则无法出现直觉,它只是符合逻辑的东西。

    第二,自主应具有选择性。选择性是单向性的,即A选择B。

    第三,自主应具有匹配性。匹配和选择最大的区别,就是匹配是双向性的,A可以选择B,B也可以选择A。

    第四,自主应可以控制。没有控制和反馈,自主很难建立起来。


    未来的人机交互及人工智能系统,它至少是人机环境系统的自主耦合,形成了一个认知智能环路系统。认知的意思就是信息的流动过程,包括输入、处理、输出和反馈这几个环节。

        人工智能的重要发展方向,是人机混合智能。强人工智能、迁移人工智能、通用人工智能,及类人人工智能,实现还相对较遥远,当前相对实现的途径就是人机混合智能。人机混合智能就是研究如何在人、机及环境系统之间,实现最优的智能匹配,人的智能加上机器的智能,涉及人机环境系统的整体设计,及其优化等方面的研究,研究的目的包括可靠、高效和敏捷等几个方面。它最主要的涉及到两个基本问题,一个是人的意向性和机器的形式化问题。所谓意向性,就是意识的指向。机器难以处理涉及到灵活、可改变的,甚至带有矛盾悖论性的事物,但是机器的长处在于它不疲劳、存储大、擅计算,并且能够准确及时处理形式化、符号化的东西,而这是人所不擅长的。所以,如何把机器的长处和人的一些优点充分的结合在一起,这是一个很重要的命题,也是人机混合智能的一个瓶颈,其中两者之间何时/如何相互介入及介入的反应时、准确率是这个瓶颈中的关键问题。

    在人工智能和机器人领域有一个著名的悖论叫莫拉维克悖论,莫拉维克悖论指出:和传统假设不同,对计算机而言,实现逻辑推理等人类高级智慧只需要相对很少的计算能力,而实现感知、运动等低等级智慧却需要巨大的计算资源。说明当前人工智能领域很多问题不是仅仅靠提高计算能力就能解决的,这个悖论用哈佛大学心理教授Steven pinker的一句话来说,就是困难的问题是简单的,简单的问题是困难的。

    对于人工智能这个最终的悖论而言,意向性、意识是整个智能科学的瓶颈,可以看出,意识就是一种感知,这是情境感知。还有一种是非情境的感知,能够穿越时空,这是人的意识,机器则不然。

    对于意识,著名心理学先驱,美国第一届的心理学协会的会长William James曾说过“人的智慧就是忽略的艺术”,人知道怎么忽略一些不重要的事物,而把精力聚焦到一些重要的,一些关键之处/特征之上,而机器不然,只擅长处理大数据,而不擅长处理小数据、假数据。

        “自我”的产生是意识最重要的一个基础,自我的概念实际上就是建立了一个坐标系,“自我”即坐标系的原点,人类都是以自我为原点度量周围世界与事物的。意识的出现往往会造“无中生有”和“有中生无”。无中生有,往往是只有外界的刺激所产生的数据形成数值,数值不但包括客观的数量,而且还形成了主观的赋值。比如说“1”里边,它既是一个单纯的客观的数值,同时“1”也是对自我有特殊意义的一个数,例如一杯茶,一条毛巾,里面有很多主观的一些情感化的赋予。第二,形成数值以后,需要提取有价值的东西即信息。信息就是有价值的数值或者数据,从信息里面可以获取知识,从知识里边提炼逻辑,也就是从0到1,从1到n的过程,正应了中国古代道教所说的:道生一、一生二、二生三、三生万物,它整个的过程就是无中生有的过程。有中生无,就是指逻辑产生意向,从意向性导出意识,就是觉察觉知,从意识里边,沉淀出潜意识,从潜意识升华为无意识的过程,也就是从n到1,从1到0的一个过程,万物归三、三归二、二归一、一归道之历程。

    6.深度态势感知

    通过意识或态势感知(情景感知)及情境化的东西和非情境化的东西的结合,我们提出一个新的概念,叫做深度情境意识,或深度态势感知(Deep Situational awareness)。什么叫深度的态势感知,我们认为:这是一种人机智慧,既包括了人的智慧,也融合了机器的智能,是能指和所指,所谓能指,就是指事物本身。所谓所指就是事物本身所包含的语义和内涵,即涉及事物的属性。能指主要涉及到事物的感觉,又关联它们之间的关系,所指包括它们的知觉。所谓感觉,就是指对属性的这种映射,所谓知觉就是联系、理解。既能够理解事物原本之意,又能够明白弦外之音,是合情合理、通情达理的一个方式,是人机环境系统中各元素的主动的拓朴,处理跨情境的原型特征的一个空间。与Endsley态势感知概念的不同之处是,它关涉有限时空和数据/信息资源环境下的人、机、环境系统之间的交互,包含人的态势感知和机的态势感知及其之间的有机融合。

    深度态势感知具体涉及的是感觉、知觉、规划和反馈那么四个环节,感觉,人的感觉和机器的这种输入有所区别,人的感觉里面包含了想象和真实的刺激,所以人的感觉是真实的和虚拟信息的叠加,知觉就是把这些信息串起来。所谓对事物的理解,就是看见了之间的各种联系。规划和反馈则是控制方面的两个重要术语。

    另外,人的深度态势感知或深度情境感知中有一个很重要的机理——弥聚,就是能够把数理、地理、物理、生理、心理、伦理、法理、管理等方面的知识及时的准确的进行相应融合、分配、表征、延展,而机器只是从一个角度进行梳理,所以人机的差异在深度态势感知能力的弥聚效应。

    人工智能发展到今天,它解决的主要的途径,就是形式化、符号化。当前人工智能在知识表示、问题的求解、自动的推理、机器学习、自然语言理解和模式识别方面进行了诸多工作,也进行了统一的认知结构化的处理。但当前人们对人工智能的未来,仍有很多的质疑和不满,主要原因在于有两个很重要的领域,尚未得到有效的开发,一个是神经科学,关于人类大脑的开发还没有得到非常突破性的成果。第二是认知心理学,这个领域也没有得到很好的发展。神经科学涉及到三个主要的方面,第一是神经的编码,第二是计算的回路,第三是神经的发育,这三个方面,都没有得到有效的这种研究和表征。认知心理学里中概念的发展,学习和记忆,和知觉的加工,也没有深刻的理解,所以,这种认知的滞后,进而映射到这个人工智能里面,产生了一些不良的反应,所以如何来实现这些学科的综合协调的发展,人机环境系统,很可能是进行协调和整理一个有效的工具。

    在这个感性和理性的过程中,有一个很重要的方向,就是大家所熟知的可计算性理论。在可计算性理论里边有一个对立面——可算计性理论。所谓可计算性理论,就是指运用事先规定的规则,将一组数值,变换为另一组数值的过程,就是可计算的过程。而可算计性理论不但要处理合理性,还要处理非合理性,包括非理性的东西。它不但要处理逻辑性的东西,而且要非逻辑性的东西;不但要进行计算,而且还要进行算计,这些对立面的整合,可能是算计性理论的一个基础。在此基础上,需要对学习、理解、知识和概念进行重新定义。例如理解的概念是看见了联系叫理解,看不到联系叫不理解。对于人的学习,学和习不同,学是由内而外发出的主观性行为,习是练习,通过练习,来加强它的理解,而机器则不是学习,机器是输入,是赋值,是规则。

    总  结

        本文中探讨了人机交互和人工智能的起源和瓶颈问题,人工智能和智能科学的发展,包括三个基本的阶段,第一个阶段是传统的人工智能,这个传统的人工智能已经有了游戏规则,它的基本的特质就是数学形式化的东西,加上再某一领域的展开。这里边还涉及到一个自动化的问题,其实很多问题是自动化的问题,不是人工智能的问题。自动化涉及的是结构化的数据处理,人工智能是非结构化的数据处理。第二个大的阶段是人机环境系统的交互领域,这个领域里边正在形成规则。这个规则主要体现在两个方面,第一个方面就是自动化的处理,第二个方面是弱人工智能。当前在这个领域里,还要加上各个行业和各个研究的指向。第三个领域就是未来人机融合智能系统领域,在这个领域里面,目前还没有游戏的规则,它主要的体现在人的智慧加上未来的强人工智能,或一些通用的人工智能。这个领域,还需要进行一些积极的探讨与多学科交叉研究。


    展开全文
  • 实验三 OpenGL的简单交互绘制

    千次阅读 2018-11-17 15:22:35
    1.理解OpenGL坐标系的概念,掌握OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系,学会计算世界坐标和屏幕坐标。 2.学会OpenGL的简单键盘交互操作。 3.学会OpenGL的简单字符绘制。 4.进一步掌握OpengGL点...

    ZZU的学弟学妹们不要抄作业哦~(`Д´)

    一、实验目的

    1.理解OpenGL坐标系的概念,掌握OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系,学会计算世界坐标和屏幕坐标。

    2.学会OpenGL的简单键盘交互操作。

    3.学会OpenGL的简单字符绘制。

    4.进一步掌握OpengGL点、直线、多边形的绘制。

    、实验内容

    1.调出实验一的源代码运行,调整修改使得显示窗口在屏幕中央保持缺省大小(300*300),绘制的矩形在显示窗口中央。如图3-1所示。

    提示:

    1)添加修改窗口位置的函数glutInitWindowPosition(int x, int y);其中(x,y)为窗口左上角在屏幕上的位置。

    2)显示窗口的左下角坐标为(-1,-1),右上角坐标为(1,1)。

                                         图3-1 中央矩形

     

    2.在实验一的基础上添加键盘交互,按W键绘制的矩形上移,按S键矩形下移,按A键矩形左移,按D键矩形右移,如图3-2。参考步骤如下:

    1)在主函数里添加注册键盘回调函数

    glutKeyboardFunc(mykeyboard);

    此函数可放在 glutDisplayFunc(display);后面。

    2)在display()绘制函数中修改绘制矩形代码,用变量代替数值参数。

    例如:

    glRectf(-0.5,-0.5,0.5,0.5)

    改为

    glRectf(x1,y1,x2,y2);

    程序前面加上变量声明和初始值,如:

    float x1=-0.5,y1=-0.5,x2=0.5,y2=0.5;  

    注意语句的位置。

    1. 在程序中增加mykeyboard键盘子函数,可放在display()函数之后。并在如下代码中进行修改,实现键盘控制矩形移动,运行程序自行测试。

    void mykeyboard(unsigned char key, int x, int y)

    {

    switch(key)

    {   

    case 'W':

           case 'w':// 矩形对角坐标变量修改使得矩形上移

    y1+=0.1; y2+=0.1;

                  break;

    case 'S':

          case 's'://矩形对角坐标变量修改使得矩形下移

                      y1-=0.1;y2-=0.1;

               break;

    case 'A':

           case 'a'://矩形对角坐标变量修改使得矩形左移

                      x1-=0.1; x2-=0.1;

               break;

    case 'D':

           case 'd'://矩形对角坐标变量修改使得矩形右移

                      x1+=0.1; x2+=0.1;

               break;   

           }

        //参数修改后调用重画函数,屏幕图形将发生改变

           glutPostRedisplay();  

    }

                                                 图3-2 矩形的上下左右移动

     

    3.设置窗口改变函数,使得矩形的长度和宽度等于100,程序启动时矩形仍在窗口中央,当显示窗口最大化时,绘制矩形也随之增大,如图3-3所示。         

    1)在main函数里添加注册窗口变化函数

    glutReshapeFunc(myreshape); //放在glutMainLoop()之前

    2)在程序中添加窗口改变子函数,参数w,h为当前显示窗口的宽和高

    void myreshape(GLsizei w, GLsizei h)

    {

    glViewport(0,0,w,h);   //设置视区位置

    glMatrixMode(GL_PROJECTION);//设置投影变换模式

    glLoadIdentity();  //调单位矩阵,清空当前矩阵堆栈

    gluOrtho2D(0,300,0,300);  

    }

    3) 此时,矩形的初始变量经重新计算后为:

    float x1=100,x1=100,x2=200,y2=200;

     

    注意:请同学们自己思考为什么矩形初始的初始变量由原来的(-0.5,-0.5,0.5,0.5)变为(100,100,200,200) ?裁剪窗口设置函数gluOrtho2D(xwmin,xwmax,ywmin,ywmax); 和视区设置函数 glViewport(startx,starty,viewport_width,viewport_height)的设置有何规律?

    答:myreshape函数改变了窗口的原点坐标和坐标单位值。

     

    此时,按下键盘“WADS”键进行交互移动,矩形的移动距离较之前有什么变化?要保持以前的移动频率,程序应该如何修改?

    答:移动的距离变得很小,要保持以前的移动频率应该修改mykeyboard函数的坐标改变值。

              

           a) 显示窗口改变前                                          b)显示窗口变大后

    3-3 显示窗口改变

    4.在矩形中间添加字符"Hello",观察结果;然后将"Hello"字符改为自己名字的拼音或英文名字。如图3-4所示。

    提示:在绘制矩形后添加如下代码:

    glColor3f(1,0,0);

    glRasterPos2i((x1+x2)/2,(y1+y2)/2);    //定位当前光标

    glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'H');  //写字符"H"

    glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'e');  //写字符"e"

    glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'l');   //写字符"l"

    glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'l');   //写字符"l"

    glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'o');   //写字符"o"

     

    注意:运行程序,效果如图3-4所示。但是如果此时,按下键盘“WADS”键进行交互移动,程序会发生什么变化?要保持矩形白色,字符红色,程序应该如何修改?

    答:字符会跟着动,不用改啊。。。

    如果字符颜色设置语句glColor3f(1,0,0);放在定位光标语句glRasterPos2i((x1+x2)/2,(y1+y2)/2); 之后,运行又会发生什么变化?自己总结设置字符颜色语句的顺序规律。

    答:字符颜色会变成矩形的颜色。

    3-4 添加字符

     

    5.自己参照讲义或教材按照自己的构思画二维平面图形,将上面的矩形替换成自己构思的二维平面图形实现交互功能,注意顶点的顺序。并在画面上标注自己的姓名。

     

     

     

     

    功能描述:按W、S、A、D会上下左右移动,按Q缩小,按E放大。

     

    三、思考题

    按下列步骤操作,并分析裁剪窗口、视区和显示窗口的关系。

    1)修改视区大小为原来的一半。如图3-5a所示

    2)修改裁剪窗口的大小原来的一半;视区保持不变。如图3-5b所示

                       a)修改视区                                        b)修改窗口                 

                                                          图3-5

    参考函数:

    1.裁剪窗口设置函数:

    gluOrtho2D(xwmin,xwmax,ywmin,ywmax);//xwmin,xwmax,ywmin,ywmax为裁剪窗口在世界坐标系的位置,分别为x最小,x最大,y最小,y最大

    2.视区设置函数:

    glViewport(startx,starty,viewport_width,viewport_height);//绘图区在显示窗口中的位置,以屏幕坐标系为参考,startx,starty,viewport_width,viewport_height分别为绘图区在显示窗口的起点位置, 以及绘图区的宽度和高度

    1. 修改以上程序是的按数字1建实现矩形用W、S、A、D键控制上、下、左、右移动,按2键显示自己构思的其他2D图形(三角形、点或多边形等),用W、S、A、D键控制上、下、左、右移动。

     

    四、代码

    #include<glut.h>
    #include<stdio.h>
    #include<windows.h>
    
    float x1=100, y1=0, x2=0, y2=100,x3=0, y3=0;
    int flag = 0;
    void display(void)
    {
    	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);//设置清屏颜色
    	glClear(GL_COLOR_BUFFER_BIT);//刷新颜色缓存区
    
    	if(flag==1) glRectf(x1, y1, x2, y2); 
    
    	if(flag==2)
    	{
    		glColor3f(0.5, 0.5, 0.5);
    		glBegin(GL_TRIANGLES);
    		glVertex2f(x1, y1);
    		glVertex2f(x2, y2);
    		glVertex2f(x3, y3);
    		glEnd();
    	}
    
    
    	glFlush();//刷新命令队列和缓存区,是所有尚未执行的OpenGL命令得到执行
    }
    
    
    void mykeyboard(unsigned char key, int x, int y)
    {
    	switch (key)
    	{
    	case '1':
    		flag = 1;
    		break;
    	case '2':
    		flag = 2;
    		break;
    	case 'W':
    	case 'w':// 矩形对角坐标变量修改使得矩形上移
    		y1 += 10; y2 += 10; y3+=10;
    		break;
    	case 'S':
    	case 's'://矩形对角坐标变量修改使得矩形下移
    		y1 -= 10;y2 -= 10; y3 -= 10;
    		break;
    	case 'A':
    	case 'a'://矩形对角坐标变量修改使得矩形左移
    		x1 -= 10; x2 -= 10; x3-=10;
    		break;
    	case 'D':
    	case 'd'://矩形对角坐标变量修改使得矩形右移
    		x1 += 10; x2 += 10; x3 += 10;
    		break;
    	case 'Q':
    	case 'q'://缩小
    		x1 -=10;
    		y2 -=10;
    		break;
    	case 'E'://放大
    	case 'e':
    		x1 += 10;
    		y2 += 10;
    		break;
    	}
    	
    	//参数修改后调用重画函数,屏幕图形将发生改变
    	glutPostRedisplay();
    }
    
    void myreshape(GLsizei w, GLsizei h)
    {
    	glViewport(0, 0, w, h);   //设置视区位置
    	glMatrixMode(GL_PROJECTION);//设置投影变换模式
    	glLoadIdentity();  //调单位矩阵,清空当前矩阵堆栈
    	gluOrtho2D(0, 300, 0, 300);
    }
    
    int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR 						lpCmdLine, int nCmdShow)
    {
    	UNREFERENCED_PARAMETER(hPrevInstance);
    	UNREFERENCED_PARAMETER(lpCmdLine);
    	char *argv[] = { "hello "," " };
    	int argc = 2;
    	glutInit(&argc, argv);    //初始化GLUT库;
    	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);   //设置显示模式;(缓冲,颜色类型)
    	glutInitWindowSize(300, 300);//绘制窗口大小
    	glutInitWindowPosition(1024 / 2 - 250, 768 / 2 - 250);//窗口左上角在屏幕的位置
    	glutCreateWindow("hello");  //创建窗口,标题为“hello”;
    	glutDisplayFunc(display);  //显示回调函数用于绘制当前窗口;
    	glutKeyboardFunc(mykeyboard);
    	glutReshapeFunc(myreshape);
    	glutMainLoop();   //表示开始运行程序,用于程序的结尾;
    	return 0;
    }

     

    展开全文
  • 多模态交互概念与现状

    万次阅读 2018-10-29 09:54:32
    一、多模态概念 所谓“模态”,英文是modality,用通俗的话说,就是“感官”,多模态即将多种感官融合。 目前的人机智能交互比如语言控制不如屏幕控制那么精准,很多时候会误判指令和错误唤醒,比较语言充满了不...
  • Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发。Spring Boot 介绍、前后端分离、API 规范等内容旨在让读者更加熟悉 ...
  • 如何阅读交互概述图 .如何绘制交互概述图 ?本章小结.什么是交互概述图 ?如何阅读交互概述图 .如何绘制交互概述图 ?本章小结;什么是交互概述图 ?如何阅读交互概述图 ?如何绘制交互概述图 ?本章小结;交互概述图基础....
  • 很清晰的论述了交互作用的原理以及边际效应的概念、计算、理解、应用,由于边际效应较难理解,文章中还有图片很清晰的说明了边际效应的意义,看完对交互作用的理解有了质的提升。
  • 功能交互分析方法

    2015-03-18 22:20:09
    系统测试中非常行之有效的一种工程方法,值得参考!
  • 数据可视化的交互中的一些概念

    千次阅读 2020-05-11 20:43:14
    交互操作 选择 标记区域以查看其特征或变化 通常是一些计算或操作的后续步骤。 常见操作:鼠标、悬停、刷选、框选(取决于操作成本) 探索 目标:寻找某种清晰图案 方法:调节绘制、视角位置、大小等参数 重配 通过...
  • 由清华大学人工智能研究院、北京智源...该报告以人机交互技术为核心,在梳理了其概念定义和发展历程的基础上,重点研究了主要技术的发展情况、领域专家现状和应用领域,列举了必读论文,并探讨了人机交互未来发展趋势。
  • 近日,由清华大学人工智能研究院、...该报告以人机交互技术为核心,在梳理了其概念定义和发展历程的基础上,重点研究了主要技术的发展情况、领域专家现状和应用领域,列举了必读论文,并探讨了人机交互未来发展趋势。
  • chorale:Chorale是一套用于与概念概念内容进行交互的工具
  • 广西科技大学国培 新概念交互式微课程快捷技术 The New Concept of Interactive Micro-course Fast Technology 三维翻页置入PPT中 总结一下 Focusky深度缩放或焦点注视 3DFlipPage三维翻页效果 美化大师作为PPT的...
  • 交互设计教学大纲.doc

    2020-05-22 09:10:04
    教学大纲 2013-2014 学年第一学期 课程名称 交互设计..., 所教课程围绕以人为本的设计原则重点讲述人机交互的 基本概念和重要意义以及发展历程 软件系统的人机交互设计原则和方法 网络系统的人机 交互设计原则和方法 人
  • 对话系统的演变过程;完整对话系统架构图;概念解释;概念解释-Contd;独立场景的各种交互机制;各种交互机制 概念消歧 意图澄清 ;各种交互机制 概念消歧 意图澄清 下位展开 ;各种交互机制 概念消歧...各种交互机制 概念消歧
  • 语音交互中的一些技术概念

    千次阅读 2018-01-09 18:46:47
    1、语音交互-示意图1(最简版) 科普:语音交互的过程 A)语音识别(Automatic Speech Recognition),一般简称ASR;是将声音转化为文字的过程,相当于人类的耳朵。 B)自然语言处理(Natural Language ...
  • 一种基于概念模型的移动交互式系统的生成架构,李娟妮,华庆一,针对移动环境中用户需求、技术环境和使用情境的多样性给交互式系统开发所带来的问题,提出了一种移动环境中交互式系统概念的多维
  • 实验报告要求具有以下内容 一实验目的 二实验内容与要求 三程序中使用的函数说明 四程序流程图 五实验体会或对改进实验的建议 要求附程序代码可以打印 实验2 图形交互技术 一实验目的 了解图形交互技术的概念掌握...
  • 本书是一本专门解决网站可用性和易用性问题的实用书籍,全书分成3个部分,第1部分论述了以用户为中心的设计模式的基本概念、基本规则和流程;第2部分分别论述了13个模式组(共107种模式)的设计模式,其中包括移动设计...
  • 乔纳森及其团队前往日本,曾向日本某糖果行业的人请教,如何在生产糖果颜色的电脑外壳的同时,保持其一贯的半透明度在下文中我们将聊聊反馈式交互设计对于网站设计重要性,在这之前我们有必要了解相关的概念:来自的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484,769
精华内容 193,907
关键字:

交互的概念