用戶界面設(shè)計(jì)過程涉及大量創(chuàng)造性的迭代工作。這個(gè)過程通常從在白板或白紙上畫草圖開始酣胀,設(shè)計(jì)師和工程師分享他們的想法刁赦,盡力表達(dá)出潛在的客戶場(chǎng)景或工作流程。當(dāng)他們?cè)谀硞€(gè)設(shè)計(jì)上達(dá)成一致之后闻镶,通過照片的形式將草圖拍下來甚脉,然后手動(dòng)將草圖翻譯成 HTML 代碼。翻譯過程需要耗費(fèi)很多時(shí)間和精力儒溉,通常會(huì)減慢設(shè)計(jì)過程宦焦。
如果可以將白板上手繪的設(shè)計(jì)立即反映在瀏覽器中,那會(huì)怎樣顿涣?如果我們能夠做到這一點(diǎn)波闹,在設(shè)計(jì)頭腦風(fēng)暴結(jié)束時(shí),我們就可以擁有一個(gè)已經(jīng)由設(shè)計(jì)師涛碑、開發(fā)人員甚至客戶驗(yàn)證過的現(xiàn)成原型精堕,這將為網(wǎng)站和應(yīng)用程序開發(fā)省不少時(shí)間。現(xiàn)在蒲障,微軟已經(jīng)借助 AI 做到了這一點(diǎn)歹篓,同時(shí)他們還將這個(gè)項(xiàng)目在 Github 上開源了瘫证。
Sketch2Code 是什么?
Sketch2Code 是一個(gè)基于 Web 的解決方案庄撮,使用 AI 將手繪的用戶界面草圖轉(zhuǎn)換為可用的 HTML 代碼背捌。Sketch2Code 由微軟和 Kabel、Spike Techniques 合作開發(fā)洞斯。讀者可以在 GitHub 上找到與 Sketch2Code 相關(guān)的代碼毡庆、解決方案開發(fā)過程和其他詳細(xì)信息。
Sketch2Code 項(xiàng)目地址:https://github.com/Microsoft/ailab/tree/master/Sketch2Code
下圖演示了利用 Sketch2Code 將手繪草圖轉(zhuǎn)換成代碼的操作過程烙如。在微軟官方網(wǎng)站上可以做更多嘗試:https://sketch2code.azurewebsites.net/
Sketch2Code 是如何工作的么抗?
讓我們來看看使用 Sketch2Code 將手繪草圖轉(zhuǎn)換成 HTML 代碼的過程:
用戶將圖片上傳到網(wǎng)站上。
自定義視覺模型預(yù)測(cè)在圖像中出現(xiàn)的 HTML 元素亚铁,并將它們的位置標(biāo)出來蝇刀。
手寫文本識(shí)別服務(wù)讀取預(yù)測(cè)元素中的文本。
布局算法根據(jù)預(yù)測(cè)元素的邊框空間信息生成網(wǎng)格結(jié)構(gòu)徘溢。
HTML 生成引擎使用上述信息來生成 HTML 代碼吞琐。
工作流程如下所示:
Sketch2Code 的架構(gòu)設(shè)計(jì)
Sketch2Code 使用了以下組件:
微軟自定義視覺模型(Custom Vision):這個(gè)模型是基于不同的手繪稿的圖象訓(xùn)練得出的,并標(biāo)記了與常見 HTML 元素(如文本框甸昏、按鈕顽分、圖像等)相關(guān)的信息。
微軟計(jì)算機(jī)視覺服務(wù):用于識(shí)別設(shè)計(jì)元素中的文本施蜜。
Azure Blob Storage:保存與 HTML 生成過程的每個(gè)步驟相關(guān)的信息卒蘸,包括原始圖像、預(yù)測(cè)結(jié)果翻默、布局和分組信息等缸沃。
Azure Function:它作為后端入口點(diǎn),通過與其他服務(wù)發(fā)生交互來協(xié)調(diào)生成過程修械。
Azure Website:用戶界面前端趾牧,用戶可以在這里上載設(shè)計(jì)圖,并查看生成的 HTML肯污。
以上組件通過如下架構(gòu)組合在一起:
是不是感覺躍躍欲試翘单?
你可以在這里找到 Sketch2Code 的開源代碼:
https://github.com/Microsoft/ailab/tree/master/Sketch2Code
也可以在這里對(duì) Sketch2Code 的實(shí)際效果進(jìn)行驗(yàn)證:https://sketch2code.azurewebsites.net/
查看原文
http://www.infoq.com/cn/news/2018/09/Ms-sketch2Code-opensourcing