精华内容
下载资源
问答
  • 什么场景理解

    千次阅读 2018-05-02 22:01:24
    author :一颗行走的大白菜 有两篇文章以供参考,为保持原汁原味,不做翻译。 paper 1 Hoiem, D., Hays, J., Xiao, J. et al. Int J Comput Vis (2015) 112: 131....Scene understanding is the abil...

    author :一颗行走的大白菜
    有两篇文章以供参考,为保持原汁原味,不做翻译。

    paper 1

    Hoiem, D., Hays, J., Xiao, J. et al. Int J Comput Vis (2015) 112: 131. https://doi.org/10.1007/s11263-015-0807-z

    Scene understanding is the ability to visually analyze a scene to answer questions such as: What is happening? Why is it happening? What will happen next? What should I do? For example, in the context of driving safety, the vision system would need to recognize nearby people and vehicles, anticipate their motions, infer traffic patterns, and detect road conditions. So far, research has focused on providing complete (e.g., every pixel labeled) or holistic (reasoning about several different scene elements) interpretations, often taking into account scene geometry or 3D spatial relationships.

    Accordingly, in this issue, several papers offer improvements to image segmentation and labeling through use of region classifiers, detectors, and object and scene context:

    “Indoor Scene Understanding with RGB-D Images: Bottom-up Segmentation, Object Detection and Semantic Segmentation” (doi: 10.1007/s11263-014-0777-6) by Gupta et al. addresses problems of interpreting indoor scenes from a paired RGB and depth image. The method infers whether observed contours are due to depth, normal, or albedo changes and uses the contours to produce a hierarchical scene segmentation, in which non-adjacent regions can also be grouped to account for occlusion. Several geometry-based region features are proposed to classify regions into category labels, and object detectors using histograms of depth gradients and height are applied to localize individual objects. The paper demonstrates best-reported performance on segmentation, pixel labeling, and detection tasks in the NYU Depth v2 dataset.

    “Scene Parsing with Object Instance Inference Using Regions and Per-exemplar Detectors” (doi: 10.1007/s11263-014-0778-5) by Tighe et al. describes an approach to use a combination of region classification and exemplar-based detection to label pixels into categories, segment object instances, and infer a depth ordering. The approach particularly emphasizes the problem of training and inference in “open universe” datasets that contain rare objects and are continually evolving.

    “Labeling Complete Surfaces in Scene Understanding” (doi: 10.1007/s11263-014-0776-7) by Guo and Hoiem shows that inferring occluded background regions provides a more complete interpretation and improves accuracy in categorizing visible surfaces by enabling better context and shape priors. The method is applied to label pixels in images and to infer support surfaces at varying heights in rooms depicted in RGBD images.

    Other papers focus on 3D geometric reasoning to improve segmentation, object detection, layout estimation, and to enable further reasoning about safety and stability:

    “Towards Scene Understanding with Detailed 3D Object Representations” (doi: 10.1007/s11263-014-0780-y) by Zia et al. models cars as deformable 3D wireframes, improving occlusion reasoning, and jointly infers the orientation and position of the ground plane and objects. The approach can recover 3D location and pose of objects from monocular images with known intrinsic parameters. Experiments on the KITTI dataset demonstrate the helpfulness of layout and occlusion reasoning in estimating object 3D pose and layout.

    “Indoor Scene Understanding with Geometric and Semantic Contexts” (doi: 10.1007/s11263-014-0779-4) by Choi et al. describes a 3D Geometric Phrases representation for encoding 3D spatial relationships of objects. A scene is modeled as a hierarchical graph with a scene category, groups of objects that belong together such as a table and chairs, and the individual objects. 3D scene and object layout is inferred from a single RGB image, and the use of geometric and semantic context is shown to improve scene classification, object detection, and layout estimation.

    “Scene Understanding by Reasoning Stability and Safety” (doi: 10.1007/s11263-014-0795-4) by Zheng et al. describes an innovative method to model physical stability of objects from a 3D point cloud. The method recovers 3D volumetric primitives from voxels and groups primitives into objects to improve model stability, reasoning that objects in a static scene should be physically stable. The paper also demonstrates using the recovered scene model to evaluate safety and stability of objects under disturbances such as human activity, wind, or earthquakes.

    Finally, “Graph-Based Discriminative Learning for Location Recognition” (doi: 10.1007/s11263-014-0774-9) by Cao and Snavely addresses the problem of recognizing the location from which a photograph was taken. The key idea is to represent places as graphs that encode relations among images and train classifiers to identify similar places in local subgraphs. These classifiers are then used to assign a query photo to likely subgraphs, from which the location is recognized. The method outperforms the standard bag-of-words retrieval approach and performs similarly to more expensive direct feature matching techniques.

    paper 2

    Understanding scene understanding Gregory J. Zelinsky1,2 原文地址 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3867636/

    What does it mean to “understand” a scene?
    Look very briefly at the picture on the next page (Figure ​(Figure1);1); what do you see? Decades of research has shown that it is possible to extract the gist of a scene very quickly (Potter, 1975; Friedman, 1979); even from the briefest of glances you could probably classify this scene as some sort of race. Other research has shown that some categories of objects, people and animals in particular, can also be detected from very brief exposures (Thorpe et al., 1996; Joubert et al., 2007). It may even be possible to infer from the features of a scene some properties of these objects, such as a person’s gender and perhaps their emotion (Schyns and Oliva, 1999). Actions can also be characterized by relatively simple features (see Kozlowski and Cutting, 1977 and Wang et al., 2009, for two very different approaches), with the pose adopted by someone running being especially distinctive. So in addition to detecting that there were people in this scene, you could probably also discern that these people were women and that they were running. Combining these pieces of information might therefore have led you to a simple “gist” level of interpretation—a women’s track meet.

    这里写图片描述

    But scene understanding doesn’t stop at gist, and there were other things happening in this scene. Closer scrutiny reveals that one of the runners had fallen and that the others were trying to avoid tripping over her. These details may have gone undetected from a brief exposure for a variety of reasons. When a person falls their pose becomes highly variable, and certainly deviates from poses that we have associated with typical human activities. Moreover, this particular fall resulted in the loss of this person’s face from view. These factors would make it harder to recognize this pattern of pixels as a person, which would obviously affect whether these details would be included in a scene interpretation following a brief exposure. “Avoidance” is also a far more difficult action to detect than running, characterized by a relatively subtle shift in body posture and a slightly exaggerating leaping stride by the runner. Had these fallen and avoidance events been detected they would almost certainly have been included in the scene interpretation, but the point is that it is unsurprising that they were not. And finally, if you had noticed that all of the runners had one prosthetic leg, this critical information would be expected to fundamentally change your understanding of this scene—suddenly it tells a story about a special race for women amputees.

    This example illustrates the fact that scene understanding exists on a continuum. At one end is a very fast and seemingly effortless extraction of the scene’s gist—often just its category name. At the other end is the slower and often effortful attachment of deeper meaning to the scene. Although these different interpretations likely engage different underlying processes and might therefore be given different names, for the purpose of this paper I will adopt the lay person’s definition of scene understanding—what is the scene about? What is the story that it is trying to tell?

    Objects, actions, events, and scene understanding
    Some stories are simpler than others, and for more complex tales some work is required to keep straight the various characters and how they are contributing to the story’s plot. The same is true for scenes. Every story must begin with a context. Whether it is Nazi occupied France in 1942 or a simple track meet, the characters of a story must be planted in some conceptual, and sometimes just perceptual, background. This is the gist of a scene. Then come the characters. Whether they are black, white, or Asian female runners, animals, robots, or just inanimate things, these are the objects of a scene. Next is the specification of relationships between these objects, both with respect to each other and the background. Are they interacting in some way? Specifying these object relationships define the actions of a scene. Some actions can only be understood in the collective. In our example there were the individual actions of running and falling, but there was also the collective action of two runners avoiding the fallen runner. This is the event of the scene. Finally, a good story should draw a person into it. What are the characters thinking and feeling—what are their perspectives? Were the characters in our example concerned that the fallen runner might have further injured her leg, or were they focused on proving their abilities by making it first to the finish line? This is understanding a scene.

    Is our example scene a women’s track meet or a scene about a special race for women amputees, where one runner fell and two others were trying to avoid her? Of course the answer is that both interpretations are correct, as there cannot be one right answer. Scene understanding is ultimately an interpretation, it is whatever a person tells you it is—the specific story they have attached to a given collection of pixels. This idiosyncratic nature of scene understanding introduces unique challenges. Most obviously, if scene understanding is an interpretation, how can it be evaluated—what is the ground truth for scene understanding?

    Establishing ground truth at the gist level is conceivably a tractable problem—the scene depicted in Figure ​Figure11 is clearly a track meet and not a bedroom or a beach. Indeed, the availability of ground truth at the gist level may be one reason why research has focused disproportionately on gist level interpretations. Ground truth for more elaborated interpretations can be obtained using a scene description task (Fei-Fei et al., 2007; Yun et al., 2013). Subjects might be asked to describe the scene that they just saw as if they were telling it to another person. Importantly, this ground truth would not be just a labeled list of the objects, actions, and events in an image (see Everingham et al., 2012). Even if each of these things could be detected with perfect accuracy—a goal that at first glance may seem desirable—the resulting list would often be an unwieldy hodgepodge of elements that would poorly approximate scene understanding. Combining semantic constraints with automated object and event detection (e.g., Farhadi et al., 2010; Yao and Fei-Fei, 2010) may successfully assemble “man,” “wall,” and “jumping” detections into a simple “man jumping over wall” interpretation—but why is the man jumping over the wall? It is possible to know every object and action in a scene and still not know what the scene is about—knowledge of these elements is, quite literally, not the whole story. Minimally, true understanding requires a more extensive filtering and ordering of this list to capture only those objects, actions, and events that are important to a viewer’s interpretation.

    The role of eye movements in scene understanding
    Scene understanding requires selecting a single interpretation from the many stories that can be made from the objects and actions depicted in a scene, and it is in this selection process that eye movements may play a role. The spatial distribution of fixations over a scene tells us the objects that a viewer finds most important. This is valuable information that might be used to exclude potentially scores of possible interpretations. This information can also be integrated with computer vision algorithms to build more intelligent image understanding systems. Object detectors corresponding to fixated locations can be biased to fire, whereas those firing at non-fixated locations can be negatively biased or removed completely. Not only would this help to avoid false positive detections (assuming imperfect detectors), it would also reduce the number of possible interpretations by pruning constructions having non-fixated subjects and objects (see Yun et al., 2013, for additional discussion and potential applications). The temporal distribution of fixations might also give clues to the object relationships. Given that subjects tend to be fixated before objects (Griffin and Bock, 2000), the ordering of fixations can help to recover the basic subject-verb-object structure that is essential to any scene understanding. With this spatial and temporal information from eye movements it may therefore be possible to distill from a morass of detected objects and events a meaningful scene interpretation—how a person is assembling a story in their mind.

    The value of eye movement information might also vary with the time spent viewing a scene; shorter viewing times will lead to fewer fixations, and this in turn might interact with one’s scene understanding. Without eye movements the information that can be extracted from a scene is limited to the objects and events appearing in central vision, and whatever information might be gleaned by sampling the visual periphery. This is why gist interpretations and scene categorization can be accomplished without changes in fixation, as the information enabling these minimal interpretations may be extracted globally (Oliva and Torralba, 2001; Greene and Oliva, 2009). However, the construction of detailed interpretations may require each detail to be sampled by gaze—it may not be possible to create a story about runners with prosthetic legs unless one or more of these prosthetic limbs are actually fixated during scene viewing. To the extent that this is true, it might therefore be possible to decode from fixation behavior an idiosyncratic interpretation—to predict the objects and events that a person will choose to include in their scene description (Yun et al., 2013; see also Zelinsky et al., 2013). By analyzing whether a prosthetic leg was fixated, and perhaps how often and for how long, can one predict whether this key detail will be described? Such predictions would constitute a major advance in quantifying the information used in scene understanding.

    Putting the pieces together
    Gaze behavior is the thread used to weave the objects, actions, and events of a scene into the fabric of a story. This proposed role of eye movements leads to fertile theoretical ground relating scene understanding to recognition. Are eye movements made because the details of a scene tend to be visually small and relatively large in number and simply cannot be resolved and recognized without fixation (see Zelinsky, 2008, for elaboration of this view)? Or is it that these eye movements reflect the sequencing of pattern recognition events over time—the process of fitting together the pieces of the puzzle? The time taken to complete a puzzle may also depend on which pieces are placed first. To the extent that recognition is a serial process allowing for only one pattern in an image to be classified at a time, eye movements may provide a means to study the temporal unfolding of scene understanding. Sequential recognition might also inform the perceived flow of scene understanding from gist characterizations to more elaborated interpretations. Often the first pattern to be recognized may be the scene itself, the entire image of pixels. This might be followed by spatial filtering and grouping processes needed to recognize individual objects and actions. Is object recognition and scene recognition therefore one in the same? And what of the sampling of these individual recognitions, do fixations capture each or do some go unseen, and do these differences translate into different scene interpretations? Finally, it is important to ask what level lies above object recognition? Finding patterns in the relationships between objects and actions in a scene context is itself a recognition problem, one that might meaningfully be called event recognition. Is event recognition scene understanding, or is scene understanding something more? Moving forward it will be important to ask how scene understanding differs from an understanding of the relationships between objects and actions and events in a scene context. Certainly artists can create scenes that provoke new interpretations after hours, days, and in some cases, centuries, of viewing—should these sorts of interpretations be included in definitions of scene understanding, and if not, where should the line be drawn? Answers to these questions will shape our understanding of scene understanding.

    展开全文
  • 注:论文发表于《包装工程》杂志2017年第6期“工业设计”栏目。虽然是17年才发表,但这篇论文其实是很早之前写的,所以用的案例比较老。...方法 通过阐述交互设计各阶段中客观场景、目标场景、实际场景...

    注:论文发表于《包装工程》杂志2017年第6期“工业设计”栏目。虽然是17年才发表,但这篇论文其实是很早之前写的,所以用的案例比较老。

     

    ____________________________________

    作者:胡伟峰;王玉梅;汤进;李世国

    (江南大学,无锡, 214122)

    摘 要:目的 研究产品交互设计中场景理论。方法 通过阐述交互设计各阶段中客观场景、目标场景、实际场景的含义及其应用。结论 指出了场景理论对交互设计的价值与意义,并提出了动态思维:场景设计是一个循环设计流程;主次思维:抓主要场景,统筹次要场景;拆解思维:复杂的大场景由众多小场景组成三大基于场景理论的交互设计思维。

    关键词:用户场景;交互设计;

    中图分类号:TB472 文献标识码:A

    “场景(scenarios) ”一词常见应用于戏剧领域中,指在一定的时间、空间内发生的一定的任务行动或生活画面。【1】在交互设计领域,基于场景设计(scenario-based design) 的思想最早由Carroll提出,强调将设计工作的焦点从定义系统的操作转变到描述什么人将使用该系统去完成其任务。【2】交互设计改变了设计中以物为对象的传统,直接把人类的行为作为设计对【3】人使用产品必须有一定的行为,这种行为是在一定场景下进行的, 行为的完成需要一定技术的支持,因而人、行为、场景和技术4个要素构成了所谓的交互系统。【4】场景是交互系统中极其重要的要素,研究在一定场景下的用户行为,对用户行为逻辑针对相应的场景进行规划和设计,是交互设计的重要目标。

     

    1 交互设计各阶段中场景的种类及其应用

    场景描述了关于操作者、操作者及其环境的背景信息、操作者的目的或目标、一系列活动和事件等内容,【5】这里的操作者即指的是产品的使用用户。基于场景理论的交互设计,是指在交互设计整个过程中使用场景描述的方法来具体地描述用户对产品的使用情况。如图1,交互设计各阶段可分为不同的用户场景,包括早期用户需求分析阶段的客观场景,产品交互设计阶段的目标场景以及场景验证和评估阶段的实际应用场景。


    图1 用户场景种类及其设计流程

    Fig1 User scene type and its design process

     

    1.1 客观场景

    设计师在交互设计的开始阶段,需要对用户现状及其需求进行分析。客观场景便是通过对用户现状的调查研究,从中获取有效信息进行总结和归纳出来的。客观场景的构建,最常见的调研方法是:用户现场观察法。在观察的同时,设计师可以对观察中遇到的问题进行总结和分析,通过观察后结合用户访谈等方式来补充分析用户的需求。

    比如在“快的打车”等打车类APP未投入市场之前,用户的典型客观场景可以描述为:公司职员王先生晚上6:00下班(操作者及其背景信息),需要打车回家(操作者的目标),在公司门口招揽出租车,可是一直招揽不到出租车,最终走了两公里路到附近的商场才打到了车,而且发现商场附近待揽客的出租车非常多,王先生觉得非常郁闷,为什么资源不匹配呢(操作者的一些列活动、感受等)。

     


     

    上述对用户“打车”这一客观场景的描述,是建立在对一定量“打车”用户调研的基础之上描述出的典型场景。客观场景是为了描述目标用户和客观状况而总结的,强调的不仅仅是问题点,还包括产品的目标用户描述、用户客观行为流程、用户情感表现、问题点等。设计师可以通过客观场景中分析出用户的需求,包括行为流程上的体验问题及其对应的设计机会点等。

    1.2 目标场景

    在产品交互设计阶段,需要设计师构建目标场景。目标场景,是建立在客观场景之上,设计师所期望达成的能解决用户客观场景中相关需求的用户场景。在客观场景的基础之上,设计师可以结合相关交互理论和设计准则,以及通过可用性和场景实验等方法,对客观场景进行分析和研究,进而设计和规范出能够满足用户需求的目标场景。目标场景从表达形式上可以细分为行为场景和交互场景。

    行为场景,是指在客观场景研究的基础之上,对用户的行为流程进行分析和描述的场景,常用场景故事版等表现工具进行描述;如图2,设计师勾勒出的“快的打车”投入市场后的目标行为场景故事版。结合场景故事版,用户的典型目标场景可以被描述为:公司职员王先生晚上6:00下班,需要打车回家。王先生在5:50时,打开“快的打车”APP可以看到公司附近有很多出租车,王先生输入出发地和目的地确认打车。30秒后出租车司机李师傅接单,王先生可以在手机上清晰的看到李师傅的车辆位置,10分钟后王先生成功上车。到达目的地后,王先生用手机在线支付了打车费,开心的回到家陪女儿吃晚饭。

    图 2 “快的打车”目标场景故事版

    Fig2 Story version of “Quick taxi ”target scene

    交互场景则是指产品在被用户使用过程中的场景,常用信息流程图、低保真页面流程图、使用流程故事版等工具进行描述。【6】以“快的打车”为例,用户在移动场景下不方便打字,所以设计了语音输入和快速搜索来确定家和公司的位置;移动场景下容易出错,所以设计了信息确认机制;在等待应答的过程中,可视化告知用户APP通知的车辆数和距离,并且在打车成功后告知车辆距离和时间,消除用户等待的焦虑,将信息可视化。

     

     

    图 3 “快的打车”交互场景

     

    Fig3 Interaction scene of “Quick taxi ”

    所设计的目标场景需要针对用户在客观场景中反应的需求提出针对性的解决方案。通过目标场景设计,设计师可以勾画出未来用户和产品之间理想的行为交互模型。

    1.3 实际场景

    在实际产品交互设计阶段,目标场景会有很多,不同设计师设计出的目标场景也不同。如何验证和评估目标场景的优劣,就需要引入实际场景。实际场景是指在设计师不干预的情况下,提供目标场景中设计好的相关产品或模型给用户,由用户在实际的参与式体验过程中测试目标场景,进行产品的测试及适用性评价【7】。通过这个评价过程,设计师可以进一步观察用户和产品之间存在的其他关系,并为产品最终设计方案提供场景参考。【8】

    2 用户场景对交互设计的价值与意义

    在产品交互设计中,设计师设计的对象是用户的行为。用户行为是动态的,建立在一定场景上的用户行为才有意义。因此在对用户行为进行设计时,需要设计师意识到研究和应用基于场景设计的价值和意义。

    2.1 更准确地把握产品和用户之间的关系及其用户需求

    以用户为中心的产品设计,【9】强调需求来源于用户,需求转化出的设计方案最终服务于用户。设计师可以通过观察用户和产品的互动行为,通过客观场景描述,直观的展现出用户和产品之间的互动关系及其问题。这些关系和问题是用户需求的直观体现,客观场景描述了目标用户、用户客观行为流程、用户情感表现、问题点等信息,而且场景具有故事性,是通过一段段的故事片段描述构成的,因此场景描述相对于其他用户研究总结出来的客观数据、需求文档等更生动和直观。直观而且形象的客观场景描述,便于设计师和其他产品设计人员更准确和细致的把握客观用户需求。

     

    2.2 提升交互设计方向的合理性和产品满意度

    在产品交互设计阶段,通过对目标场景的设计和描绘,设计师可以基于场景进行交互设计,通过场景故事版、用户体验旅程图、信息流程图、低保真页面流程图等工具细化用户在客观场景中所反映出来的需求并给出解决方案。因此基于场景的交互设计,一方面更加全面的分析和解决用户的需求,避免单一分析用户行为或者产品功能造成的对用户需求的遗漏。同时,通过实际场景中对目标用户场景的验证和评估,提升了产品交互设计方向的合理性;另一方面,设计师设计的目标场景将用户的情感表现等需求直观化和故事化,使得设计师所设计的产品设计点更容易被用户感受,提升产品的满意度。

    3 基于用户场景的产品交互设计的设计思维

    3.1 动态思维:场景设计是一个循环设计流程

     

    图4 交互设计中场景设计的动态思维

     

    Fig4Dynamic thinking of scene design in interactive design

    用户场景不是固定不变的。【10】如图4,在交互设计各阶段中,客观场景是目标场景的设计基础,实际场景对目标场景进行验证和评估。同时,被验证的实际场景又是下一次交互设计的设计对象,上一次的实际场景会转化为下一次的客观场景。因为在实际场景验证和评估中,总会遇到不符合用户预期,目标场景中没有考虑到的用户需求的问题。需要指出的是,掌握交互设计中场景设计的动态思维,并不是指这个设计流程是无限循环的,场景设计是一个持续优化和快速迭代的过程,设计师及其相关产品负责人需要讨论出每个迭代阶段具有共识性的目标场景和实际场景的评估标准。面对既定的迭代阶段目标,在整个设计循环流程中,一旦满足相关目标场景及其实际场景评估标准,现有迭代阶段的交互设计便可终止。

     

    3.2 主次思维:抓主要场景,统筹次要场景

    在客观场景分析和目标场景设计过程中。分析场景时,需要区分主要场景和次要场景。在交互设计各阶段不同场景中,必有而且只有一种场景居于支配的地位,起着规定或影响其他场景的作用,这种场景就是主要场景,其他场景则是次要场景。在分析和解决、处理用户需求时,既要看到主要场景的重要性,善于抓住重点,又要看到次要场景的客观影响,学会全面地看待用户需求,做到抓主要场景,统筹次要场景的统一。主次思维,把握主要场景,同时兼顾次要场景,可以有效地保证基于场景分析的交互设计的产品设计的准确性。

    3.3 拆解思维:复杂的大场景由众多小场景组成

    用户场景有大有小,用户的客观大场景总是由众多可以层级细分的小场景组成。在客观场景分析过程中,大场景相对宏观,可以总览用户的宏观需求。而小场景更加聚焦,可以分析出用户更加具体需求,同时,小场景更加具象,能够落实到用户的具体行为流程和对产品的细节体验,便于设计师有针对性且具象的针对客观小场景进行目标场景设计。比如用户用“快的打车”叫出租车的场景就是大场景,这个大场景中包含用户叫车场景,司机接单场景,用户付款场景等等小场景。用户叫车场景还可以细分为用户当前位置定位场景、用户输入目的地地址场景、用户立即叫车或预约叫车场景等。越细分的客观场景,越有利于设计师针对性的设计出有效的目标场景,同时也更有利于在实际场景中进行交互模型评估和场景验证。所以,在交互设计各阶段应用场景理论进行设计时,需要具备拆解思维,将复杂的大场景拆分为众多可设计的小场景,再由众多的目标小场景,组成最终的目标大场景,进行实际场景验证,输出最终的交互设计成果。

    4 结语

    现在产品和用户体验日趋复杂,传统的物理逻辑层面的设计已经不能满足用户的需要,要关注“事”,【11】场景作为交互系统中极其重要的要素,研究交互设计中的场景理论,从产品交互设计各阶段入手,将场景理论深入到交互设计的各个阶段,是对现有的交互设计实践的一次深化。同时,掌握交互设计中运用场景理论时的循环思维、主次思维和拆解思维,可以有效地把握产品和用户之间的关系及其用户需求,提升交互设计方向的合理性和用户对产品的满意度。研究交互设计中的场景理论,具有非常重要的价值和意义。

     

    参考文献

     

    [1] 沈贻炜. 影视剧创作[M].浙江:浙江大学出版社, 2012.

    SHEN Yiwei. Film and television drama creation[M]. Zhejiang: Zhejiang University press,2012

    [2]Carroll J M. Five reasons for scenario-based design[J]. Interacting with Computers, 2000(13):43–60.

    [3]辛向阳. 交互设计:从物理逻辑到行为逻辑[J]. 装饰, 2015(01):58-62.

    XIN Xiangyang.Interaction Design: From Logic of Things to Logic of Behaviors [J].2015.1:58-62.

    [4]李世国, 费钎. 和谐视野中的产品交互设计[J]. 包装工程, 2009(01):137-140.

    LI Shiguo, FEI Qian. Product Interaction Design in the Perspetive of Harmony [J].Packaging Engineering, 2009(01):137-140

    [5]Go K. , Carroll J. M. , Imamiya A. . Surveying scenario based approaches in sys tem design[J] . IPSJSIG Notes, HI878, 2000:43-48.

    [6]赵婉茹. 浅谈场景故事在用户体验设计中的应用[J]. 设计, 2014(09):174-175.

    ZHAO Wanru.The Application of Scenario Stories in User Experience Design [J].Design, 2014(09):174-175.

    [7] 诺曼·唐纳德 A.设计心理学[M].北京:中信出版社,2010.

    NORMAN D A.The Design of Everyday Things[M].Beijing:China CITIC Press,2010.

    [8]DDF·UXPA中国. 用户体验百家谈[M] .北京:电子工业出版社, 2014.

    DDF·UXPA China. User experience a hundred talk[M] .Beijing:Electronics Industry Press,2014

    [9]罗仕鉴, 胡一. 服务设计驱动下的模式创新[J]. 包装工程, 2015(12).1-4.

    LUO Shijian,HU Yi.Model Innovation Driven by Service Design[J]. Packaging Engineering, 2015(12).1-4.

    [10]COOPER A.软件观念革命——交互设计精髓[M].北京:电子工业出版社,2012.

    COOPER A. Software Concept Revolution: the Essence of Interaction Design[M]. Beijing: Publishing House of Electronics Industry,2012.

    [11] 安娃. 交互设计思维在服务体验中的应用[J]. 包装工程, 2015, 02期(02):5-8.

    AN Wa. Collaborative Design of Product Interaction Design System[J].Packaging Engineering,2015,02(02):5-8.

    转载于:https://www.cnblogs.com/xjmnet/p/9377274.html

    展开全文
  • 文章目录__init__解释用__...并不是必选项,也就是说在类中,这个不是必须用的,那什么场景需要用到,什么场景不需要用到呢,下面会做说明! 下面代码是最基本的类定义代码: class Person: def __init__(self, nam

    __init__解释

    __init__是构造方法,谁调用,表示谁(更直观的理解就是类的方法中,谁调用,表示谁,见下面第一个代码)!!并不是必选项,也就是说在类中,这个不是必须用的,那什么场景需要用到,什么场景不需要用到呢,下面会做说明!
    下面代码是最基本的类定义代码:

    class Person:
        def __init__(self, name, age):
            self.name = name
    #self.name,这里的name并不是 def __init__里面的name,这个name可以自定义,但=后面的name就是__init__里面的name了
            self.age = age
    	def test(self):
    	#谁调用表示谁,就是这种情况,这个test方法调用了这个类中init的name和age,也就是说这个类的name和age表示为test方法
    	print(self.name,self,age)
    

    class关键字后面跟类的名称就定义了一个类,类的名称可以任意,采用驼峰命名法,也即每个单词的首字母大写,如Book、Person、WildAnimal等
    这里的__init__方法是一个特殊的方法(init是单词初始化initialization的省略形式),在使用类创建对象之后被执行,用于给新创建的对象初始化属性用。
    初始化属性的语句就是self.name = name这种了,这一句不太好理解,我们把它改编一下就好理解了:

    def __init__(self, n, a):
        self.name = n
        self.age = a
    

    首先这是一个方法,方法的形参有self,n和a三个。
    这个self,表示对象本身,谁调用,就表示谁(这句话不好理解,先记住,我们后面分析)。
    语法上,类中的方法的第一个参数都是self,这是和普通方法区别的地方。
    这里self.name = nself.age = a表示将外部传来的n和a,赋值给了self对象的name和age属性。
    这里的n和a,其实叫什么都可以,但是会有个问题:一般我们调用方法的时候,想自动提示一下或者查看文档看一下这个方法的参数要求,如果形参名都是n、a、m、i这些,会让人摸不着头脑,不知道到底该传入什么样的实参。因为这里我们传入实参是为了给属性赋值,为了能见名知意,将形参的名字定义的跟属性一致,调用者就知道该怎么传参了。
    所以才有了上面的写法。
    再来说创建对象:
    p = Person('小明', 20)
    这句话就创建出来了一个具体的人,并且给这个人起了个名字叫小明,指定了小明的年龄为20,并且将小明这个对象赋值给了变量p,此时p就表示小明这个人(对象)
    这就造出了一个人。
    注:这里的小明和20并不是任意创造的,而是在Person这个函数中定义了2个参数(name,age),所以这必须实例化2个参数!! 另外,在重复一下这个流程吧:定义类(class )-创建方法(对象)(def)——创建实例(绑定属性)(p=类名)——传参(有init的不需要单独传参)-调用
    代码如下:

    # 定义一个类,使用class关键字
    class Student:
        pass # 暂时不赋值
    
    #创建类的对象
    stu1 = Student() # 创建Student类的一个实例
    stu2 = Student()
    print(stu1,'自定义类型type:',type(stu1))
    print(stu2,'自定义类型type:',type(stu2))
    # 为对象绑定属性 (注:需要先给类创建实例)
    stu1.name = 'ccx'
    stu1.age = 22
    stu2.name = 'xgq'
    stu2.age = 23
    stu2.sex = 'woman'
    # 调用
    print('stu1的参数:',stu1.name,stu1.age) #打印stu1的参数
    print('stu2的参数:',stu2.name,stu2.sex,stu2.age) # 打印stu2的参数
    
    
    

    插入:这里就是人们常常调侃的,程序员不需要女朋友,如果需要,就给自己创建一个对象,不,最少要创建10个对象!!! 对象就是传的参
    就是这样:

    #创建类
    class GirlFriend :
    	#创建方法
    	def __init__(self,num,name,age,features):
    		#初始化参数
    		self.num=num
    		self.name=name
    		self.age=age
    		self.features=features
    	def MyGirlFriend(self):
    		print('我的第',self.num,'个女朋友,名字叫',self.name,',她今年',self.age,'岁了,特征是:',self.features,'!!!!',sep='')
    # 定义对象
    gf1=GirlFriend(1,'刘亦菲',24,'漂亮的脸蛋性感的身材')
    gf2=GirlFriend(2,'杨幂',23,'有让人陶醉的声音')
    gf3=GirlFriend(3,'汤唯',24,'喜欢没道理')
    #调用
    gf1.MyGirlFriend()
    gf2.MyGirlFriend()
    gf3.MyGirlFriend()
    

    在这里插入图片描述

    用__init__与不用__init__对比

    __init__直接输出(不建议这么用)

    这种构造方法,在创建对象时会自动调用, 不需要单独调用该方法! 不建议这么用

    class ClassName(object):
    	def __init__(self, name):
    # 必须要初始化值
    		self.name=name
    		print('ClassName:',self.name,'in run')
    p=ClassName('xgq')
    

    在这里插入图片描述

    __init__普通用法

    init只是用来初始化值,但都需要新定义方法来返回这个参数!!!

    class ClassName(object):
    	def __init__(self, name):
    		self.name=name
    	def run(self):
    		print('ClassName_run:',self.name,'in run')
    p=ClassName('xgq')
    p.run()
    

    在这里插入图片描述

    不用__init__

    #定义类
    class Person:
    	#定义方法
    	def test(self,name):
    		print('name is :',self.name,'~!!!')
    #定义对象
    p=Person()
    #传参
    p.name='ccx'
    #调用
    p.test('xgq')
    

    在执行结果中可以看出,用了init就需要在定义对象的时候就赋值,而不用init的话,是不需要再定义对象的时候就赋值,需要单独传参,但是因为在test中定义了name,所以在调用的时候,也需要传一个参数,但如果不用init,在调用的时候传参,是没有任何意义的,因为类中的方法默认接受的参数是单独定义的参数,而不是是调用的时候传的参!!!

    在这里插入图片描述

    总结

    反正你需要知道的是,__init__是构造方法,在创建对象时会自动调用,而且构造方法(函数),不支持重载,如果需要给这个类定义参数,就需要用init,反正就不需要用!

    下面我给一个 子类继承父类的方法,如果不用init你可以自行尝试是什么结果!!

    #定义一个Person类,父类(超类,基类)
    class Person:
        def __init__(self,name): # 定义私有类
            self.name = name
        def run(self):#定义一个类函数
            print('person:'+ self.name+'正在奔跑啊啊啊')
    
    class Student(Person): #继承自Person
        def __init__(self,name,set,age):# 定义私有类
            #调用父类的构造方法
           # Person.__init__(name) # 方式一:直接指定父类的构造方法
            super().__init__(name)# 方式二:使用super(),推荐使用该方法
            # 自己类中的构造方法且父类中没有的,直接定义即可
            self.set = set
            self.age = age
        def study(self): #定义一个类函数
            print('stadent:' + self.name + '正在学习。。。。')
        def show(self):#定义一个类函数
            print('name:%s , set:%s,age:%s'%(self.name,self.set,self.age))
        #可以自定义n个类函数 。。。
    
    stu = Student('ccx','man',22)
    stu.run() #因为继承了父类,当然也可以直接调用父类函数
    stu.study()
    stu.show()
    
    
    展开全文
  • 场景联动

    千次阅读 2020-02-26 15:39:27
    iot领域场景联动,特别是智能家居领域有着很重要的应用价值,场景联动是已经成为iot领域的核心应用之一,设备相互连接并且相互作用,催促着物联网领域不断向前发展; 首先了解一下基本概念,场景表示一种特定的...

    概述

     iot领域场景联动,特别是智能家居领域有着很重要的应用价值,场景联动是已经成为iot领域的核心应用之一,设备相互连接并且相互作用,催促着物联网领域不断向前发展,参考[2];

    首先了解一下基本概念,场景表示一种特定的状态,比如灯打开状态或者灯关闭状态、门磁处于打开状态、报警器处于报警状态, 动作表示一种行为,从而使设备处于一种场景中,打开灯(动作)使灯处于打开状态(场景),结果上来说动作和场景相同,在IOT业务中,动作即是场景;自动化表示从一种场景自动地转变成另外一种场景,用户也可以手动点击触发场景生成(手点的就不叫自动化了);

    自动化从场景A自动地转变成场景B,那么场景A就称为条件,场景B称为动作,条件有几种来源,第一种是设备上报的数据(也是来源最大的一部分); 第二种是环境数据,比如温度、湿度、天气、PM2.5、空气质量、日落日出,用户选择气象条件时,可以选择当前城市;第三种是场景本身,场景B作为动作,同样也可以作为条件; 第四种是定时任务,定时或者周期性触发; 同样,动作也有大概几类,第一类是设备动作,打开灯或者关闭灯; 第二类是消息,发送短信,语音,push, 邮件;第三类是场景; 第四类是延时,延时多长时间触发动作;

    总体结构  

     

    如图普通设备通过mqtt把设备时间发送到场景系统,环境数据一般通过消息中间件发送到场景系统; 网关及子设备要分情况对待,如果网关和子设备内部触发的动作(也即zigbee场景),则不需要经过场景系统,否则需要经过场景系统处理;

    场景自动化处理过程

    处理过程主要有几个关键步骤,首先是条件匹配,判断执行条件是否满足条件;其次,再判断执行策略,动作只能触发一次,可连续触发,触发有限次数等;最后执行相应动作;

    场景条件

    条件A,B,C 会存在逻辑与、逻辑或的关系,这两种关系跟java中&& || 关系运算符功能类似; 当三个条件是逻辑与的关系时,A触发,则必须B,C都满足才会继续往下走; 当三个条件是逻辑或的关系时,任何一个条件的触发都会继续往下走; 

    条件为定时任务,则需要使用中间件作为触发源头,触发条件执行;

    条件表达式计算可以采用groovy表达式;

    执行策略

    执行策略主要用来控制动作的执行次数,根据业务场景来做不同类型的限制,针对三种场景,对比分析每种策略的适用范围:

    策略名称适用范围
    单次执行避免冗余触发
    有限次执行针对家庭有定制需求的用户,或者收费项目
    重复执行免费消息,很重要的报警

    单次执行的适用场景,比如开关打开触发动作,开关打开之后肯定有关闭,这样开关才能再次打开,一个开关不可能打开又打开,单次执行适用这种情况; 有限次执行和重复执行相对比较好理解,有限制次数和不限制次数;

    场景动作

    场景条件,执行策略都满足后则开始执行动作,场景动作必须按顺序执行,顺序不同代表的含义也不一样; 场景动作本身也可以作为触发条件,那么在这种情况下要注意循环调用; A-->B-->C, C-->A 这样导致A,C不断被触发;

    zigbee场景

    zigbee网关可以存储与在网关内部相关的场景自动化,这些场景自动化都是可重复执行,在网络拓扑结构发生变更时,网关规则要及时同步更新;zigbee场景自动化利用网关和子设备交互的特性,避免与云服务端交互,不仅减少了网络带宽,而且效率会有一定程度的提高;

    zigbee网关及子设备在处理场景联动方面会有很多优势,场景主要分两种,第一种zigbee子设备触发时,子设备本身的设备事件会通知zigbee网关,zigbee网关收到子设备消息后上报到云服务器; 还有一种场景联动(zigbee场景,也称本地化场景联动),zigbee子设备触发事件,子设备事件通知到网关之后网关本身根据规则直接动作触发zigbee网关或者其它子设备;

    消息队列

    设备上报的事件首先发送到消息队列,消息队列发送到场景系统;消息队列保证消息稳定,可靠,  消息的先后顺序;

    定时任务

    场景条件中有一类是定时触发,定时条件需要使用到定时中间件,提前把时间存到中间件中,然后到指定时间触发条件;

    参考:

    1. https://baijiahao.baidu.com/s?id=1639194454562027661&wfr=spider&for=pc

    2. https://www.jianshu.com/p/2090203b9868

    展开全文
  • 对于Unity中对象,多个场景或大的场景多人分割处理,有不能同时修改一下场景来提交。 这怎么办呢? 方法一,建立Prefab 把某个对象或需要多场景下使用的对象建立一个prefab对象,这样就可以在多场景下使用。 ...
  • 产品场景化设计

    千次阅读 2019-11-05 21:00:28
    本文围绕什么场景化设计,有哪些场景化设计的例子,为什么要进行场景化设计和场景化设计的具体方法,展开解读。 什么场景化设计 生活中,场景就像戏剧、电影中的场面,泛指情景。在戏剧或影视剧里,场景由人物,...
  • Unity 如何将场景加入构建场景列表

    千次阅读 2020-01-09 11:51:51
    在菜单中选择“File/Build Settings”里面,上方“Scenes In Build”部分就是加入构建场景列表。 如何将一个场景加入构建列表: 若列表里没有该场景,如果该场景目前处于打开状态,可以使用下方的AddOpenScenes...
  • 什么要做业务全场景的梳理? 主要原因有三点: 1.方便沟通, 比如:在产品设计完成,进入开发后,可能会遇到技术问你为什么要开发这个功能,可不可以把几个功能合并成一个功能等等问题。 如果你不能回到业务...
  • 本文将给大家解释他的基本概念,告诉大家无监督学习可以用用到哪些具体场景中。 最后给大家举例说明2类无监督学习的思维:聚类、降维。以及具体的4种算法。 什么是无监督学习? 无监督学习是机器学习中的一种...
  •  其实,大数据其实已经在为商业的发展提供实际的应用,总结了大数据商业化应用的5个价值点和应用场景,供大家参考学习。  1、用户标签化管理  “大数据”可以对用户实现比较精细的划分,利用现在的SCRM系统对...
  • 场景测试

    千次阅读 2009-07-10 10:46:00
    什么场景? 场景就是假设的故事,用来帮助人们理解一个复杂的问题或者系统。 一个完美的场景测试有几个特征: 1. 基于一个用户怎么使用软件的故事,包括用户的动机 2. 故事具有感染力,有影响力的干系人会促使这个...
  • ** 微信小程序两个场景值的区别—小程序场景值和小程序二维码场景值 ** 首先是微信小程序的...这个场景值的由来就是用户通过什么方式进入这个小程序的时候,所产生的固定的数值,就是下表中的数值。 获取小...
  • MLSQL Stack 应用场景示例

    千次阅读 2019-04-27 15:37:11
    前言 MLSQL Stack 都有哪些应用场景呢?毕竟现在是个场景为王的时代。其实MLSQL Stack有无限的可能性等待大家挖掘。下面我们提一些已经在应用的。 数据同步组件 ...什么意思呢?就是根据业务需求,用M...
  • 这里是修真院后端小课堂,每篇分享文从 ...什么样的场景下不使用自增ID?】 1.背景介绍 在MySQL中,数据表的主键一般采用id字段自增的形式。使用自增ID给我们带来不少便捷,但也有不少坏处。 2.知识...
  • spark的核心思路、适用场景什么

    千次阅读 2015-03-22 21:09:25
    2.Spark的适用场景什么? 首先,MapReduce-like是说架构上和多数分布式计算框架类似,Spark有分配任务的主节点(Driver)和执行计算的工作节点(Worker) 其次,Low-latency基本上应该...
  • 消息队列的使用场景

    万次阅读 多人点赞 2016-03-04 10:26:20
    一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性...二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用
  • unity如何搜索所有场景

    千次阅读 2016-09-11 18:36:13
    在搜索栏里输入如下命令t:scene t的意思就type,然后加个冒号,之后输入要搜索的东西。例如这里搜索场景就直接输入scene 如下图:
  • 客户端异常测试场景

    2019-02-12 21:38:25
    客户端异常测试场景分享..
  • 主要是体现对场景的操作,其实这东西就是Flash的舞台,安卓的Activity,WIN32窗体程序的Framework窗体,网页的body,反正就是对那个容纳各种东西的大容器进行操作,爱怎么叫就怎么叫。 用一个例子说明这个问题,将...
  • 原文链接:... 在springmvc的DispatcherServlet的doDispatch中有这一行: WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request); 那么WebAsyncManager 的作用是什么
  • MySQL集群和主从复制分别适合在什么场景下使用 345341390 | 浏览 779 次 推荐于2016-03-15 19:13:22 最佳答案 集群和主从复制是为了应对高并发、大访问量的情况。如果网站访问量和并发量...
  • 关于scene understanding场景理解概念的理解

    千次阅读 热门讨论 2018-02-01 13:23:21
    Scene understanding 场景理解感觉定义并不是十分明确,找了几个供参考。 LSUN Challenge 大规模场景理解比赛 INTRODUCTION The PASCAL VOC and ImageNet ILSVRC challenges have enabled significant progress ...
  • 所谓无缝场景切换,无非是涉及到场景或物体的预读,复杂点涉及下场景卸载,在复杂点涉及到场景二维数组,再在复杂点涉及数据结构用二叉树实现场景资源有序的读取与卸载。当然,复杂的我以后慢慢再说,比较懒,先写最...
  • 一、次时代建模是什么 “次世代3D模型”,是游戏开发技术的一种。“次世代3D模型”也指和同类游戏模型相比,更加先进的游戏模型,次时代一词起源于日本,通俗来讲就是即将到来的时代。 因为次世代角色和次世代场景...
  • UE4-(场景场景的搭建及构建

    千次阅读 2019-10-15 16:15:54
    一、搭建场景球天顶部为蓝色 地平线为黄色,云运行速度较快,太阳高度接近于地平线,模拟黄昏效果。注意不需要与阳光关联,也不需要跟随阳光高度调节天空颜色。 效果图: 二、创建材质,将场景中的物体给予新建的...
  • unity2019 场景烘焙

    千次阅读 多人点赞 2019-08-16 13:48:23
    3D场景如下图所示: 1. 模型导出 无论你用3dMax、Maya、C4D、Blender或Sketchup建的模型,建议都以fbx格式导出,因为Unity3d对fbx格式兼容的最好,这也是官方的建议,导出时一定要勾选“EmbedMedia”(嵌入媒体)...
  • 什么是无监督学习?概念、使用场景及算法详解

    万次阅读 多人点赞 2019-04-11 13:54:59
    本文将给大家解释他的基本概念,告诉大家无监督学习可以用用到哪些具体场景中。 最后给大家举例说明2类无监督学习的思维:聚类、降维。以及具体的4种算法。 什么是无监督学习? 无监督学习是机器学习中的一种训练...
  •  三者位于不同的网络场景,为网络提供如下功能:  (1)HLR位于2G/3G网络,通过C/D接口与MSC相连,Gr/Gc接口与SGSN/GGSN相连,采用MAP协议;  (2)EPS—HSS归于4G网络,通过S6a/S6d接口与MME/SGSN...
  • 中止策略:无特殊场景。 丢弃策略:无关紧要的任务(博客阅读量)。 弃老策略:发布消息。 调用者运行策略:不允许失败场景(对性能要求不高、并发量较小)。 详细回答: 1.AbortPolicy中止策略:丢弃任务并抛出...
  • 加载游戏场景,首先要引入场景管理的命名空间:using UnityEngine.SceneManagement; 然后在调用你需要加载的游戏场景在SceneManage.LoadScene(); 这个方法是有四种重载的 </span> using ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,071
精华内容 108,828
关键字:

常景什么意思