当前位置: 首页 > news >正文

怎么做充值网站手机怎么创建网址链接

怎么做充值网站,手机怎么创建网址链接,个人开发微信小程序,腾讯云主机 wordpress背景: 随着移动互联网时代的到来#xff0c;人类的科学技术突飞猛进。然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作。 UI视觉研发拥有明显的特征#xff1a;组件#xff0c;位置和布局#xff0c;符合机器学习处理范畴。能否通过机器视觉和深度学习等手…背景: 随着移动互联网时代的到来人类的科学技术突飞猛进。然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作。 UI视觉研发拥有明显的特征组件位置和布局符合机器学习处理范畴。能否通过机器视觉和深度学习等手段自动生成UI界面代码来解放重复劳动力成为我们关注的方向。 UI2CODE简单介绍 UI2CODE项目是闲鱼技术团队研发的一款通过机器视觉理解AI人工智能将UI视觉图片转化为端侧代码的工具。   2018年3月UI2CODE开始启动技术可行性预研工作到目前为止经历了3次整体方案的重构或者重写。我们参考了大量的利用机器学习生成代码的方案但都无法达到商用指标UI2CODE的主要思想是将UI研发特征分而治之避免鸡蛋放在一个篮子里。我们着重关注以下3个问题的解法 视觉稿还原精度我们的设计师甚至无法容忍1像素的位置偏差 准确率机器学习还处于概率学范畴但我们需要100%的准确率 易维护性工程师们看的懂改的动是起点合理的布局结构才能保障界面流畅运行。 UI2CODE运行效果 UI2CODE插件化运行效果如下视频进过几轮重构最终我们定义UI2CODE主要解决feeds流的卡片自动生成当然它也可以对页面级自动生成。 架构设计 简化分析下UI2CODE的流程 大体分为4个步骤: 1.通过机器视觉技术从视觉稿提取GUI元素 2.通过深度学习技术识别GUI元素类型 3.通过递归神经网络技术生成DSL 4.通过语法树模板匹配生成flutter代码版面分析 版面分析只做一件事切图。   图片切割效果直接决定UI2CODE输出结果的准确率。我们拿白色背景的简单UI来举例 上图是一个白色背景的UI我们将图片读入内存进行二值化处理 def image_to_matrix(filename):im Image.open(filename)width, height im.sizeim im.convert(L)matrix np.asarray(im)return matrix, width, height 得到一个二维矩阵将白色背景的值转化为0. 像切西瓜一样我们只需要5刀就可以将GUI元素分离切隔方法多种多样下面是横切的代码片段实际切割逻辑稍微复杂些基本是递归过程 def cut_by_col(cut_num, _im_mask):zero_start Nonezero_end Noneend_range len(_im_mask)for x in range(0, end_range):im _im_mask[x]if len(np.where(im0)[0]) len(im):if zero_start None:zero_start xelif zero_start ! None and zero_end None:zero_end xif zero_start ! None and zero_end ! None:start zero_startif start 0:cut_num.append(start)zero_start Nonezero_end Noneif x end_range-1 and zero_start ! None and zero_end None and zero_start 0:zero_end xstart zero_startif start 0:cut_num.append(start)zero_start Nonezero_end None客户端的UI基本都是纵向流式布局我们可以先横切在纵切。 将切割点的xy轴坐标记录下来它将是处理组件位置关系的核心。切割完成后我们获取到2组数据6个GUI元素图片和对应的坐标系记录。后续步骤通过分类神经网络进行组件识别。 在实际生产过程中版面分析会复杂些主要是在处理复杂背景方面。 关注我们的技术公众号我们后续会详细分解。 组件识别 进行组件识别前我们需要收集一些组件样本进行训练使用Tensorflow提供的CNN模型和SSD模型等进行增量训练。   UI2CODE对GUI进行了几十种类型分类IMAGE TEXTSHAP/BUTTONICONPRICE等等分别归类为UI组件CI组件和BI组件。 UI组件主要针对flutter原生的组件进行分类。 CI组件主要针对闲鱼自定义UIKIT进行分类。 BI组件主要针对具备一定业务意义的feed卡片进行分类。 组件的识别需要反复的通过全局特征反馈来纠正通常会采用SSDCNN协同工作比如下图的红色“全新“shape这该图例中是richtext的部分同样的shape样式可能属于button或者icon。 属性提取 这块的技术点比较杂归纳起来需要处理3部分内容shape轮廓 字体属性和组件的宽高。 完成属性提取基本上我们完成所有GUI信息的提取。生成的GUI DSL如下图 通过这些数据我们就可以进行布局分析了。 其中文字属性的提取最为复杂后续我们会专门介绍。 布局分析 前期我们采用4层LSTM网络进行训练学习由于样本量比较小我们改为规则实现。规则实现也比较简单我们在第一步切图时5刀切割的顺序就是row和col。缺点是布局比较死板需要结合RNN进行前置反馈。 视频中展示的是通过4层LSTM预测布局结构的效果UI的布局结构就像房屋的框架建造完成后通过GUI的属性进行精装修就完成了一个UI图层的代码还原工作。 代码生成及插件化 机器学习本质上来说还属于概率学范畴自动生成的代码需要非常高的还原度和100%的准确率概率注定UI2CODE很难达到100%的准确率所以我们需要提供一个可编辑工具由开发者通过工具能够快速理解UI的布局结构和修改布局结构。   我们将UI2CODE生成的DSL TREE进行代码模板化匹配代码模板的内容由资深的flutter技术专家来定义它代表目前我们发现的最优代码实现方案。 代码模板中会引入一些标签由Intellij plugin来检索flutter工程中是否存在对应的自定义UIKIT并进行替换提高代码的复用度. 整个插件化工程需要提供自定义UIKIT的检索替换和校验工作以及DSL Tree的创建修改图示等工作总体来说更像ERP系统花费一些时间能够做的更加完美。 小结 本篇我们简单介绍了UI2CODE的设计思路我们将整个工程结构分为5个部分其中4块内容核心处理机器视觉的问题通过机器学习将它们链接起来。代码的线上发布是非常严格的事情而单纯的机器学习方式很难达到我们要求所以我们选择以机器视觉理解为主机器学习为辅的方式构建整个UI2CODE工程体系。我们将持续关注AI技术来打造一个完美的UI2CODE工具。 #阿里云开年Hi购季#幸运抽好礼 点此抽奖https://www.aliyun.com/acts/product-section-2019/yq-lottery?utm_contentg_1000042901 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://wiki.neutronadmin.com/news/48529/

相关文章:

  • 中国建设银行安徽省招聘信息网站中国建设教育协会安全员证
  • 微信群如何推广网站建设wordpress上传安装包
  • 大冶seo网站优化排名推荐泰安网站设计公司
  • 有了实名制域名怎么做网站移动软件管理的应用场景
  • 东莞网站制作模板dede手机网站更新
  • 如何用xampp做网站wordpress自定义幻灯
  • 网站建设黄页软件设计品牌logo
  • 网站建设找实体还是淘宝wordpress meta
  • 挣钱网站一小时两百最新上线的手游
  • 成都网站推广 优帮云wordpress药店主题
  • 贵阳网站建设托管长沙市建设工程集团网站
  • 网站域名列表深圳网站建设服务代码
  • 做ppt素材的网站有哪些深圳上市公司全部名单
  • 南京网站建设报价游戏网站建设平台
  • php网站建设考试网站建设专有名词
  • 教育网站安全建设方案全国电子网站建设
  • 上海优质网站seo有哪些廊坊视频优化价格
  • 企业建设一个自己的网站多少钱wordpress登陆账号
  • 清润邯郸网站局域网视频网站搭建
  • 绍兴优秀做网站的巩义网站建设费用多少
  • 网站建设的费用结构包括提供app开发公司报价
  • 肇庆城乡建设网站一级域名网站怎样收费的
  • 北京模板网站开发公司wordpress 无广告视频网站
  • 做h5比较好的网站一般淘宝网站做几个月赚钱
  • 网站网站制作开发需要哪些技术清廉企业建设
  • 宁波建设商城网站wordpress页面创建
  • 网站添加验证码网站织梦模板
  • 设计专业新手网站建设银行网站查询
  • 南京模板建站定制网站前程无忧网广州网站建设分类岗位
  • 酒店定房网站开发网站制作 知乎