AI 助理
备案 控制台
开发者社区 阿里巴巴终端技术 文章 正文

前端代码是怎样智能生成的-表单表格专项识别篇

本文涉及的产品
个人证照识别,个人证照识别 200次/月
教育场景识别,教育场景识别 200次/月
文档理解,免费额度 各100页
简介: 作为阿里经济体前端委员会四大技术方向之一,前端智能化项目经历了2019双十一的阶段性考验,交出了不错的答卷,天猫淘宝双十一会场新增模块79.34%的线上代码由前端智能化项目自动生成。在此期间研发小组经历了许多困难与思考,本次《前端代码是怎样智能生成的》系列分享,将与大家分享前端智能化项目中技术与思考的点点滴滴。

作为阿里经济体前端委员会四大技术方向之一,前端智能化项目经历了 2019 双十一的阶段性考验,交出了不错的答卷,天猫淘宝双十一会场新增模块 79.34% 的线上代码由前端智能化项目自动生成。在此期间研发小组经历了许多困难与思考,本次《前端代码是怎样智能生成的》系列分享,将与大家分享前端智能化项目中技术与思考的点点滴滴。

概述

在前端智能化领域,特别是中后台智能方向上,表单表格的识别是非常重要的一环。因为表单表格的开发工作,占据了中后台前端开发工作量中的绝大部分,如果能够通过智能的手段,从设计稿图片秒级生成表单表格代码,那么将会是巨大的生产力提升。本文将会揭秘秒级生成表单表格代码的技术细节。

所在分层

表单/表格识别使用了组件识别、布局算法、物料属性识别等技术,在这些技术中,核心技术是物料属性识别,在整体分层中的物料识别层中,如图所示。

image.png
(D2C识别能力技术分层)

秒级生成表单/表格代码效果展示

只需要截图粘贴,并点击识别,就可以秒级生成表单、表格等通用前端组件协议,甚至连字段都翻译好了,还是小驼峰命名法哦!

1573619637059-0be3cc85-74d6-45da-90c4-5e8afcd25f2f.gif表单识别效果图

1573619653426-09c273fb-0087-40fb-b6cb-0f7e840c9f99.gif
表格识别效果图

表单/表格识别技术揭秘

表单识别的主要思路是:

1.通过目标检测技术检测出所有的组件类型及其坐标。
2.通过文字识别技术和自动翻译技术识别出所有文字及其坐标并翻译为英文。
3.通过代码转换器从上述组件信息和文字信息中提取表单/表格的布局、label、type、字段等各种属性。

目标检测+文字识别

目标检测使用的fasterrcnninceptionv2模型训练和预测的,具体细节参考本系列文章中的组件识别篇。文字识别使用的通用的文字识别技术,可以检测出文字内容和坐标,具体细节也不再赘述。

图中红框为目标检测信息,绿框为文字识别信息

image.png

代码转换器

本文将重点介绍,如何使用代码转换器提取表单 / 表格的各种属性。

绝对坐标转行列

首先,为了方便处理信息,我们先把目标检测信息和文字识别信息的绝对坐标转为行列,行列的具体数据结构是个二维数组,第一维是列,第二维是行。具体算法思路如下:

  • 将所有识别出的带有绝对坐标的框垂直排序。
  • 遍历垂直排序后的框,将同一行的框放到一个数组中并水平排序,作为一行。
  • 将所有行按先后顺序放到一个数组中,最终生成行列二维数组。

计算表单 / 表格布局

通过上述行列信息,我们可以计算出表单 / 表格的布局信息了。

先看表单,表单项的布局是二维的,与上述组件识别的行列信息一致,所以直接将组件识别行列信息通过嵌套循环 map 为表单协议即可。而表格则是一维的,只要表头就可以确定表格的结构了,那么我们直接从文字识别行列信息中提取第一行作为表头即可。

计算表单 / 表格字段值

计算完了布局,我们来算具体的字段值及其类型。

先看表单,表单字段的值就是 label 翻译为英文,并转为小驼峰。那么如何提取label 呢?根据常识我们知道表单项的 label 要么在左边,要么在上边,所以我们的算法就是:先提取左边的 label,没有的话,就提取上面的 label。

再看表格,表格字段就是表头,我们从文字识别行列信息中提取第一行即可拿到表头的所有值。为了保险起见,可以 doublecheck 一下,第一行是不是表头,比如通过长度来过滤,长度小于3的行就过滤掉了。

计算表单 / 表格的字段类型

由于表单项有 input、select、redio 等类型,表格有纯文本、链接等类型,所以我们还需要计算这些字段类型。

先看表单,表单字段类型从目标检测信息中拿,因为目标检测的任务之一就是为了提取表单项的类型。

再看表格,表格字段类型同样也是从目标检测信息中拿,不过由于表格每一列的类型都是相同的,所以我们只需要提取每一列的第一个类型即可。

计算表单 / 表格其他属性信息

上述信息基本上已经可以帮我们节约大量工作量了,但是如果还想提取更多的属性信息,可以使用如下办法:

  • 递归识别:比如,识别出一个 input 之后,将其剪裁出来,递归到另一个模型中识别,比如可以识别是否是 disabled,是否必选等等。
  • 继续提取其他位置的文字信息:比如表单项中间的可能是 placeholder 或者defaultValue。

未来展望

逍遥子在今年的云栖大会说过,大数据和算力是数字经济时代的石油和发动机。当前在前端行业,组件化已经初具规模,海量的组件可以作为大数据,同时,业界算力也在不断提升,人工智能技术有很大可能性会改变前端开发的格局,让我们拭目以待。

温柔的养猫人
目录
相关文章
李木子2024
|
1天前
|
前端开发 JavaScript
Web 前端大揭秘!JS 数据类型检测竟如此震撼,一场惊心动魄的代码探秘之旅等你来!
【8月更文挑战第23天】在Web前端开发中,合理检测数据类型至关重要。JavaScript作为动态类型语言,变量类型可在运行时变化,因此掌握检测技巧十分必要。
李木子2024
7 1
李木子2024
|
5天前
|
前端开发 IDE Java
"揭秘前端转Java的秘径:SpringBoot Web极速入门,掌握分层解耦艺术,让你的后端代码飞起来,你敢来挑战吗?"
【8月更文挑战第19天】面向前端开发者介绍Spring Boot后端开发,通过简化Spring应用搭建,快速实现Web应用。本文以创建“Hello World”应用为例,展示项目基本结构与运行方式。进而深入探讨三层架构(Controller、Service、DAO)下的分层解耦概念,通过员工信息管理示例,演示各层如何协作及依赖注入的使用,以此提升代码灵活性与可维护性。
李木子2024
18 2
李木子2024
|
1天前
|
前端开发 JavaScript 开发者
掌握Web前端事件处理精髓:从事件冒泡到事件委托,轻松优化你的交互体验与代码性能!
【8月更文挑战第23天】在Web前端开发中,事件处理是实现用户交互的关键机制。其中,事件冒泡与事件委托是优化页面性能、简化代码的重要手段。事件冒泡是指事件从触发它的元素开始,沿着DOM树向上逐层传播至根节点的过程。通过阻止事件冒泡,可以控制事件的影响范围。而事件委托则是利用事件冒泡特性,在父元素上设置监听器来响应子元素的事件,这种方法减少了监听器的设置数量,特别适用于动态添加的子元素,提高了代码的可维护性和性能。掌握这两种技术,能帮助开发者构建更高效、更简洁的应用程序。
李木子2024
5 0
李木子2024
|
1天前
|
自然语言处理 前端开发 JavaScript
前端进阶必读:JS闭包深度解析,掌握这一特性,你的代码将焕然一新!
【8月更文挑战第23天】闭包是JavaScript的一项高级功能,让函数能够访问和操作外部函数作用域中的变量。本文深入解析闭包概念、组成及应用场景。闭包由函数及其词法环境构成,通过在一个函数内定义另一个函数来创建。它有助于封装私有变量、维持状态和动态生成函数。然而,不当使用闭包可能导致内存泄漏或性能问题。掌握闭包对于实现模块化代码和成为优秀前端开发者至关重要。
李木子2024
7 0
李木子2024
|
3天前
|
设计模式 前端开发 算法
"揭秘前端开发的隐藏武器:掌握这些设计模式,让你的代码优雅升级!"
【8月更文挑战第21天】设计模式为前端开发提供了解决常见问题的模板,助力编写清晰、可维护的代码。本文概览了几种关键模式:模块模式通过立即执行函数表达式实现封装;单例模式确保全局唯一实例,适用于状态管理;工厂模式根据条件创建不同类型的对象;观察者模式建立对象间的依赖,便于事件处理和数据绑定;策略模式封装可互换的算法,提高灵活性。掌握这些模式能显著提升代码质量和开发效率。
李木子2024
8 0
孙飞i
|
12天前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
孙飞i
15 0
艾尼麻麻
|
2月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
艾尼麻麻
55 2
爱你三千遍斯塔克
|
2月前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记
爱你三千遍斯塔克
35 0
游客zn7mvnkypuy76
|
2月前
|
前端开发 安全 NoSQL
技术笔记:Security前端页面配置
技术笔记:Security前端页面配置
游客zn7mvnkypuy76
38 0
yma16
|
3月前
|
存储 前端开发 JavaScript
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
yma16
70 1

阿里巴巴终端技术

热门文章

最新文章

  • 1
    阿里云前端直传has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
  • 2
    引领潮流:React框架在前端开发中的革新与实践
  • 3
    如何在Python中接收前端POST上传的文件
  • 4
    探索现代Web开发中的动态数据交互——前端与后端整合实战
  • 5
    前端性能优化:从系统分析到实践策略
  • 6
    【前端 - Vue】关于ESlint代码规范及格式化插件
  • 7
    【前端 - Vue】之 Keep-Alive缓存组件使用语法及原理解析,超详细!
  • 8
    一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
  • 9
    vue 快速入门+vite前端构建工具
  • 10
    探索现代Web开发中的前端架构模式
  • 1
    【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
    68
  • 2
    【Web 前端】什么是JS变量提升?
    54
  • 3
    【Web 前端】es6 中的箭头函数?
    35
  • 4
    【Web 前端】ES6中,Set和Map的区别 ?
    189
  • 5
    【Web 前端】TypeScript 中的接口是什么?
    44
  • 6
    【Web 前端】TypeScript 的内置数据类型有哪些?
    44
  • 7
    【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
    68
  • 8
    【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
    73
  • 9
    【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
    59
  • 10
    【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
    72
  • 相关课程

    更多
  • 网站性能前端监控课程
  • 移动Web前端开发
  • Ajax 前端开发入门与实战
  • 零基础学前端HTML+CSS
  • 前端开发CSS基础
  • 前端开发框架Bootstrap使用教程
  • 相关电子书

    更多
  • Vue.js 在前端服务化上的探索与实践
  • 阿里文娱大前端技术实践
  • 前端代码是怎样智能生成的
  • 相关实验场景

    更多
  • 奥运时刻!零代码生成奥运风格AI写真。
  • 图表样式智能美化工具
  • 快速搭建移动端可视化看板
  • DataV模版快速创建可视化看板
  • 如何快速体验知识检索增强应用
  • 配置流程编排实现根据天气情况播放歌曲
  • 下一篇
    【案例实战】SpringBoot整合阿里云文件上传OSS

    PHP网站源码广州百度网站优化排名罗湖外贸网站建设丹竹头网站制作坂田至尊标王民治企业网站改版松岗网络营销福田网页制作坑梓优秀网站设计福田百姓网标王石岩网站定制丹竹头网站搜索优化坂田优化大运网站改版布吉百度爱采购松岗网站开发丹竹头网站优化按天收费龙华模板制作光明优化观澜关键词按天收费观澜网站优化按天计费龙岗百度网站优化布吉网络广告推广南山高端网站设计深圳模板网站建设坪地网站制作设计宝安网站排名优化荷坳网站推广光明网站推广南山品牌网站设计福田网站seo优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化