首页 文章 精选 留言 我的

精选列表

搜索[建筑智能化],共8711篇文章
优秀的个人博客,低调大师

vivo前端智能化实践:机器学习在自动网页布局中的应用

作者:vivo 互联网前端团队- Su Ning 在设计稿转网页中运用基于self-attention机制设计的机器学习模型进行设计稿的布局,能够结合dom节点的上下文得出合理的方案。 一、背景 切图作为前端的传统手艺却是大多数前端开发者都不愿面对的工作。 为了解决切图的各种问题,人们绞尽脑汁开发了各种各样的设计稿转代码(D2C)工具,这些D2C工具随着设计师使用的软件的变更又在不断地迭代。 从Photoshop时代,前端需要手动标记节点进行单独的样式导出(如图1),到sketch measure,可以整体页面输出(如图2),其效率、结果都已经有了一个质的提升。 但是还是未能彻底解决切图的问题,因为设计稿所包含的信息只负责输出样式,而没有办法输出网页布局,我们还是没有办法直接copy生成的代码到我们的项目中直接使用。 图1 图2 在学习现有的D2C案例的过程中,我们发现很多成熟的方案中引用了机器学习辅助代码的生成,其中绝大多数的工作是用于视觉识别和语义识别,于是我们想,机器学习是否能够应用到网页的布局中呢? 为了验证我们的猜想,也为了解决我们工作中的实际痛点,我们决定自己开发一个D2C工具,希望能够通过机器帮我们实现网页布局的过程,整体工作流程大致如图3,首先获取设计稿的元数据,然后对设计稿的数据进行一系列的处理导出自由的dsl,然后根据这个dsl生成相应端的代码。 图3 二、页面布局 要处理网页的布局需要解决两个问题,节点的父子关系以及节点之间的位置关系。 2.1 节点的父子关系 节点的父子关系指的是一个节点包含了哪些子节点,又被哪个节点所包含。这部分的内容可以直接使用规则处理,通过节点的顶点位置和中心点的位置信息判断一个节点是否是另一个节点的子节点。这里我们就不展开讨论了。 同一层级节点之间的位置关系,才是我们这次着重需要解决的问题。 2.2 节点之间的位置关系 网页的布局有很多种,线性布局,流式布局,网格布局,还有随意定位的绝对定位等等,而我们在导出样式的时候,无非需要确认两件事情,节点的定位方式(relative、absolute、fixed)和节点的布局方向(纵向、横向)。 线性布局 流式布局 网格布局 按照平时切图的习惯,我们会首先识别一组平级节点之间有没有明显的上下或者左右的位置关系,然后将他们放入到网格中,最后独立在这些节点外面的节点就是绝对定位。 让机器识别节点之间的位置关系,就成了解决问题的关键一环。 判断节点之间的位置关系只需要节点的位置和宽高信息,因此我们的输入数据设计如下: [ { width:200, height:50, x:0, y:0 }, { width:200, height:100, x:0, y:60 }, { width:200, height:100, x:210, y:60 }] 同时我们希望获得的输出结果是每一个节点是上下排列,左右排列,还是绝对定位的,输出的数据设计如下: [ { layout:'col' }, { layout:'row' }, { layout:'absolute' }] 起初我们是希望通过书写一定的规则进行布局的判断,通过判断前后两个节点的位置关系是上下还是左右来进行布局,然而这样只关注两个节点位置关系的规则却很难判断绝对定位的节点,并且固定的规则总是不够灵活。于是我们想到了善于处理分类问题的机器学习。 很显然通过大量数据训练的机器学习模型可以很好的模仿我们平时切图的习惯,在处理各种边缘场景的时候也能够更加的灵活。只要进行合理的模型设计,就可以辅助我们进行布局的处理。 三、为什么是self-attention? 从上文我们可以看出,我们需要训练一个模型,输入一个节点的列表,输出一个节点的布局信息,是不是有点像文本识别里面的词性翻译呢? 对于具体的一个节点,我们是没有办法判断其真正的布局的,只有将其放到文档流中结合上下文来看才能体现出其实际的意义。 在处理词性标记这块,RNN(循环神经网络)、LSTM(长短期记忆网络)都比较合适此类场景,RNN作为经典的神经网络模型通过将前一次训练的权重带入到下一次训练中建立上下文的关联,LSTM作为RNN的一种变体解决了RNN难以解决的长期依赖问题,用来训练网页布局看起来是一个不错的选择。 RNN(循环神经网络) 665px LSTM(长短期记忆网络) 使用LSTM的确可以解决我们的问题,但是由于此类神经网络对于时序的依赖导致上下文的数据没有办法进行并行运算,这使得我们的计算机没有办法更高效的训练模型,并且网页布局只需要获取不同节点的定位信息,对于装载的顺序并没有强要求。 随着2017年的一篇文章《Attention is All you Need》的横空出世,整个机器学习领域迎来了新一轮的革命,目前最主流的框架transformer、BERT、GPT全是在attention的基础上发展起来的。 self-attention自注意力机制是attention机制的变体,通过全局关联权重得出单个向量在全局中的加权信息,因为每一个节点都采用相同的运算方式,所以同一个序列中的节点可以同时进行上下文计算,极大地提升了模型训练的效率,也更方便我们优化和回归模型。 self-attention 综上,考虑到attention对于上下文更好的关联和更好的并行性能,我们决定基于此进行建模。 四、模型设计 我们起初设计了一个输出的向量用于识别数据处理的结果,[1,0,0,0]代表是正常的竖向排列,[0,1,0,0]代表了横向排列,以此类推依次代表了absolute和fixed定位方式,但是后来我们发现fixed由于是相对于整个页面的定位方式,所以在单一层级下很难做标记,所以我们将输出值精简成了竖向排列,横向排列和绝对定位三种情况。 模型的整体设计如下,通过self-attention将节点转化为上下文信息,再通过前馈神经网络将上下文信息训练成具体的布局。 (1)在获取到一组数据后,为了去掉数值的大小的影响,我们首先对数据进行一次归一处理,将输入数据的每一个值分别除以这一组数据中的最大值。 (2)将每一组数据分别进行三次线性变换, 得到每组数据相应的Q,K,V,接下来我们就可以进行self-attention运算了。 (3)我们以node1为例,如果需要计算node1和其他节点的相关性,则需要使用Q1分别和每一个节点的key进行点积操作,将他们的和与V1相乘,为了防止权重值相乘以后过大,最后进行一次softmax计算,就得到了node1和其他节点的上下文信息。 我们将一组数据中所有QKV看成三个矩阵,得到的上下文context的集合就可以看成一个矩阵计算。 (4)为了提升训练的效果,每个节点的上下文信息输入到前馈神经网络进行最后的布局结果的训练,将得到的结果进行softmax计算就可以得到单个节点在一组数据中布局的概率分布了,由于同一组节点的运算没有前后顺序,故单个节点的运算可以同时进行,配合GPU加速极大地提升了训练的效率。 五、数据准备 由于机器学习需要海量的数据,数据的数量和质量都会极大地影响模型最终的训练效果,所以数据的数量和质量都非常重要,我们采用了三种数据源用于数据的训练,分别是标记过的设计稿,抓取的真实网页数据,以及自动生成的数据。 5.1 设计稿的标记 在获取到设计稿数据以后只取每个节点的定位和宽高数据,通过上文的父子关系处理后获取每一层的节点数据,为了防止出现过拟合的情况我们去掉节点数量相对较少的层级,并对每一层的布局进行手动标记。设计稿标记数据是质量最好,但也是最费时费力的工作,所以需要其他的数据源进行数量的补充。 5.2 真实网页的抓取 作为标记设计稿的补充,网页中的真实数据也是可靠的数据源,但是抓取网页的过程中最大的难点在于判断页面中的节点属于横向还是纵向。 由于实现横向排列的方式千奇百怪,可以通过float,inline-block,flex等等方法,我们如果只获取网页中节点的定位和宽高信息,还是需要手动标记他的布局,所以还是要从节点的css入手,在批量获取之后进行手动筛选,去掉低质量的数据。相对于标记的设计稿是一个有效的补充。 5.3 网页生成器 为了更快的生成大量的数据,我们写了一个网页生成的算法,在一开始就决定节点的定位方式,然后将节点渲染成网页,最后在抓取节点的定位信息,但是随机生成的数据存在一些不稳定的边界场景,譬如生成的绝对定位的节点会正好定位到横向布局的右边。这时就需要手动进行甄别。 我们最终收集了大约两万多条数据,经过反复的训练与调试,最终准确率稳定在99.4%左右,达到一个相对可用的水平。 使用真实的dom进行回归验证,可以看出准确的识别出了网页的横向竖向布局以及绝对定位的节点。 六、优化方向 6.1 元素换行 设计稿中会出现列表一行放不下然后换行的情况,这些节点应该是属于横向的位置关系,但是机器面对两行会将每一行的首个元素识别成纵向排布,这就需要对重复节点进行相似度检测,对相似节点采用相同的布局策略。 6.2 分组问题 基于规则的分组会导致两个不相交的节点不会分配到一个组里面,比如网格中的图标和文字,导致布局的时候会分成两个独立的组,可以通过训练常见的布局结合内容识别进行更精准的分组。 6.3 通用布局 通过self-attention机制我们不仅可以判断单个节点在其层级的布局信息,我们也可以进行发散,通过训练整个层级的节点数据得出当前节点属于卡片流,标签,个人信息页等功能性的标记,进一步推导出每个节点的功能,再结合节点具体的布局信息,不仅可以更好的实现网页的排布,还可以节点的功能推到实现标签的语义化。 6.4 数据生成 为了解决更多的网页布局问题,同时减少我们人工标记的工作量,可以运用强化学习模型开发一套网页生成工具,让我们的数据更接近真实的网页布局,从而使布局模型训练的结果更加贴近生产的场景。 七、总结 机器学习非常擅长处理分类问题,相比于传统的手写规则布局,机器学习是基于我们现有的开发习惯进行训练,最终生成的代码也更加贴近我们平时的切图习惯,代码的可读性和可维护性都更上一层楼。 而机器生成的静态页面相较于不同的人手写的静态页面,遵循一致的代码规范,代码风格也更加统一。 在模型搭建的过程中可以将具体的使用场景类比为文本或者图像领域的内容,便于寻找现有的模型进行迁移学习。 运用机器学习解决网页布局问题的核心在于建立节点的上下文的关联,通过了解各种经典的神经网络模型的运行原理我们选出了循环神经网络和自注意力机制这种能够建立上下文关联的模型,而通过对于其运行原理的进一步了解我们选择了更贴近网页布局场景以及运行效率更高的self-attention模型,由此也可以看出了解模型的运行机制可以更好的帮助我们解决实际的应用场景。 END 猜你喜欢 electron 应用开发优秀实践 基于微前端qiankun的多页签缓存方案实践 本文分享自微信公众号 - vivo互联网技术(vivoVMIC)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

阿里云+菜鸟网络=物流全链路数字化、智能化升级

“未来的物流一定是从数字化到数智化,数智世界将是我们共同面临的时代。”——阿里巴巴集团CEO、菜鸟网络董事长张勇 5月28日,以“数字化再加速”为主题的2019全球智慧物流峰会在杭州召开。会上,张勇提出,目前物流业正在进入全面的数字化时代,而数字化是智慧物流的初心和基石。他认为,实现货物流转效率的最大化,决定了物流必然和供应链管理高度结合在一起,这是未来一定发生的趋势。“只有实现整个产业链不同企业间的全面联动,数据打通,才能让端到端的整体流转效率变得更高。” 物流业转型升级势不可挡 作为融合运输、仓储、货代、信息等产业的复合型服务业,物流业是支撑国民经济发展的基础性、战略性产业之一。近年来,随着物流技术的升级,大数据、云计算、物联网、区块链、机器人和无人车等技术已经在物流行业开始规模应用,但是传统的物流仓储和配送方式仍然广泛存在。有数据

优秀的个人博客,低调大师

制造业正在大力推动机器换人和智能化转型

谈到制造业,人们可能会轻松联想到车间、机器和工人等元素,其实制造是一个复杂的系统,从市场需求调查到产品设计,从材料采购到加工制造,再到物流、销售和消费,以及后期的维护服务。这样一个系统如果没有合理的管控,可能会造成巨大的损耗,最终导致制造业的崩溃。智能制造转型的目的就是为了更好地管理制造环节的各个流程,利用人工智能等新兴技术提升生产的效率。工控主板 为了抢占更多低成本的资源,制造业往往把工厂和材料供应分散到世界各地,这就给供应链方面带来了新的挑战,考虑到物流控制等方面,整个制造系统将会变得更复杂。制造企业的主要挑战是找到低成本材料或者零部件,这些半成品还要考虑运输成本,并保证每个生产阶段的可用性。 无论怎样,管理者需要努力减少库存和缩短交货时间,而生产制造的物流环节是一个关键,从最初的原材料供应商到成品的配送中心,需要合理的运营才能降低成本和保证生产的顺利进行。目前,制造业正在尝试利用新技术改变工业流程,这些技术与工业结合的同时也触发了更多的创新机遇。 工业物联网 智能制造必需打通物理世界和数字虚拟世界的隔阂,工厂运营者需要收集来自生产线底层数据信息,工业物联网成了智能制造升级的基础关键。如今,工业物联网(IIOT)正在入侵制造业,未来大多数设备都将是联网的,管理者通过有线或者无线技术采集更多的现场信息,这些数据可能包括机器运行数据、产品数据、质检和流程数据等。 随着工业物联网的演进,工厂里传感器数量将会快速增长,嵌入式计算能力将应用在更多的产品中,生产线也将变得越来越智能。运营者利用物联网技术,将工厂和供应商、用户紧密连接在一起,厂商可以了解产品在应用过程的实际情况,嵌入在产品的传感器会将实时数据反馈给系统,以便于制造商可以根据应用进行调整生产计划。 在供应链管理过程中会大量使用移动设备,我们可以通过智能手机、平板电脑或者其它专用的终端设备,来追踪物料的位置和产品的进度。同时,移动设备提供了任何地方实时收集和传递信息的能力,可以进行订单和交付信息输入等,这将极大地改变订单的接收和处理方式,对生产组织和日程安排产生重大影响。 大数据分析 制造业向智能制造转型升级,企业将从设备采集来大量的数据,这些数据需要进行清洗、整理、存储和分析,最终用于给运营者决策参考。目前,大数据分析主要应用于机器的预测维护,设备管理者实时监控设备的特征参数,及早察觉机器的故障前兆,然后提前更换机器部件,以减少停机时间,最终帮助生产线降低维护成本。 除了设备的维护之外,大数据还可以用于优化产品设计、生产和销售等整个制造流程,来自外部市场和消费者的数据,可以分析出用户的真实需求,实现以市场为导向的产品设计制造。通过生产流程的监控分析,厂商知道哪些环节拉低生产效率,哪些资源过度利用了,知道如何优化生产工艺来提高设备的利用率。 随着企业工厂内部和外部数据的增加,大量的数据进行整理分析也是一个挑战,目前通用电气、西门子、IBM等企业都提供了基于云的分析平台,越来越多的平台采用机器学习等人工智能算法,实现大量的数据自动化处理,通过和历史数据对比,找出异常的数据并告知管理者,使得问题发生之前得到更好的预防和处理。 3D打印技术 3D打印很早就出现了,但在过去一起没有盛行过,一方面是技术不成熟,另一方面是受到批量式的标准化制造模式影响。现在个性化需求突显,3D打印是一种新兴技术,可以快速制造与不同形状的结构,极大提升了产品研发过程的打样效率,被广泛应用于不同的行业中,例如汽车、航空航天和医疗设备行业正使用3D打印组件和产品。 作为一种极具颠覆性的技术,3D打印可能会永久地改变某些行业的供应链。零部件供应商可以通过远程打印机在客户工厂完成部件制造,只需要传输部件的生产信息,而不是一件实物产品,这相当于虚拟化了所有物流。此外,3D打印允许低成本的产品定制,并可以进行批次或单个产品的生产。 随着3D打印新材料的发展成熟,用户可以利用石墨烯、有色金属等材料制造产品,加上激光技术的结合,使得3D打印可以制造出以住无法想像的产品。目前,除了航空、汽车和医疗领域,其它领域也开始尝试使用3D打印机,例如食品、服装等。3D打印可以快速制造更具个性化的产品,让消费者享受到高品质的制造服务。 无人驾驶技术 物流运输是制造业的一个关键环节,无人机技术的使用正在显著改变着制造业。在一些交通不方便的山区,遇到紧急情况需要输送药品时,传统运输无法满足时间的要求,而无人机可以在短时间内向某个区域大量输送物料,在应急时可以从一个专用仓库为大量人口提供服务。 在生产工厂的日常,可以看到自动驾驶车辆,例如使用自动导引车和激光制导车辆来移动货物。一方面减少了物流人力的投入,另一方面是使得供应系统更透明化,可以实时追踪到货物的位置。还有,机器可以24小时作业,而不需要支付加班费。加入工智能技术后,无人运输系统将变得越来越智能,它可以在执行任务的同时,分析周边环境并做出下一步的决策。

优秀的个人博客,低调大师

NI发布2016自动化测试趋势展望,智能化测试系统势在必行

NI通过确定最前沿的商业和技术趋势来帮助企业降低测试成本 新闻发布 - 2016年3月15日-作为致力于为工程师和科学家提供解决方案来帮助他们应对全球最严峻工程挑战的供应商,NI(美国国家仪器公司,National Instruments,简称NI)近日发布了《2016自动化测试趋势展望》。 这份年度测试和测量报告综合概括了日益互联化的自动化测试环境的主要趋势,主题涵盖从毫米波(mmWave)通信到如何有效利用制造测试数据来提高商业绩效。 “NI致力于不断提高自动化测试系统的性能,因此与客户和供应商密切合作,借此深入了解制造与测试部门所面临的主要挑战,”NI自动化测试市场营销总监Luke Schreier表示,“不论您的挑战是测试数百万个物联网设备还是管理已使用20年的测试系统,我们的目标就是激起贵公司的内部对话和讨论,进而帮助您降低测试成本以及保持竞争优势。” 《2016自动化测试趋势展望》探讨了以下几个主题: 计算: 采集生产测试数据 半导体行业率先采用实时数据分析来降低生产测试成本。 软件: 生命周期管理的关键在于软件 报废、操作系统更新换代以及兼容性给生命周期较长的项目带来重重挑战 — 这个长期悬而未决的问题值得我们深入探究。 架构: 测试管理软件的崛起 在新编程语言不断涌现的情况下,采用现成测试执行软件将是有效的解决办法。 I/O: 从表征到生产的平台标准化 RFIC公司在整个产品设计周期中通过IP复用和硬件标准化来降低成本和缩短产品上市时间。 商业战略: 毫米波测试策略 测试经理正在采用模块化解决方案来高效、经济地验证高频组件。 访问www.ni.com/ato,下载完整的报告。 关于NI 从1976年开始,美国国家仪器 (www.ni.com) 一直致力于提供各种强大的基于平台的系统来帮助工程师和科学家提高效率和加速创新,以解决全球面临的重大工程挑战。从医疗、汽车、消费电子产品到粒子物理等各行各业的客户正在使用NI的集成软硬件平台来改善我们生活的环境。 NI中国自1998年成立以来,不断致力于以跨国公司的实力为本地用户提供创新、高效的工具和解决方案。辐射全国的销售、技术人员及系统联盟商网络则以为本地市场提供优质服务为己任,倾力满足客户要求。NI中国在线商城的推出进一步完善了NI的服务体系,旨在为用户提供更方便快捷的购买体验,即刻浏览:china.ni.com/howtobuy 本文转自d1net(转载)

优秀的个人博客,低调大师

老旧档案库房智能化改造:低成本物联网环境监控升级方案

摘要:大量存量老旧档案库房存在建设年代久、无标准化弱电预埋、装修不能破坏、设备老旧、人工值守成本高、环境数据无留存、无法满足十防验收等痛点。传统整体翻新、全设备替换、重新布线改造造价高、工期长、影响库房正常存档作业。本文针对老旧库房改造痛点,提出一套零破墙、少布线、利旧优先、轻量化物联网升级的低成本改造方案,通过设备利旧、协议转换、极简组网、智能联动、云端台账,实现老旧库房快速达到智慧档案环境监测标准,兼顾预算、工期、验收合规三大核心需求。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册