在人們的不斷探索下,「使用人工智能自動(dòng)生成網(wǎng)頁」的方法已經(jīng)變得越來越接近實(shí)用化了。本文介紹的這種名" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > 深度學(xué)習(xí)自動(dòng)前端開發(fā):從草圖到HTML只需5秒(附代碼)

深度學(xué)習(xí)自動(dòng)前端開發(fā):從草圖到HTML只需5秒(附代碼)

時(shí)間:2023-09-14 01:30:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-09-14 01:30:01 來源:網(wǎng)站運(yùn)營

深度學(xué)習(xí)自動(dòng)前端開發(fā):從草圖到HTML只需5秒(附代碼):文章選自InsightDataScience,作者:Ashwin Kumar,機(jī)器之心編譯。

在人們的不斷探索下,「使用人工智能自動(dòng)生成網(wǎng)頁」的方法已經(jīng)變得越來越接近實(shí)用化了。本文介紹的這種名為 SketchCode 的卷積神經(jīng)網(wǎng)絡(luò)能夠把網(wǎng)站圖形用戶界面的設(shè)計(jì)草圖直接轉(zhuǎn)譯成代碼行,為前端開發(fā)者們分擔(dān)部分設(shè)計(jì)流程。目前,該模型在訓(xùn)練后的 BLEU 得分已達(dá) 0.76。
你可以在 GitHub 上找到這個(gè)項(xiàng)目的代碼:https://github.com/ashnkumar/sketch-code

為用戶創(chuàng)造直觀、富有吸引力的網(wǎng)站是各家公司的重要目標(biāo),而且這是個(gè)快速進(jìn)行原型、設(shè)計(jì)、用戶測試循環(huán)的過程。像 Facebook 這樣的大公司有著讓整個(gè)團(tuán)隊(duì)專注于設(shè)計(jì)流程的人力,改動(dòng)可能需要幾周的時(shí)間,并涉及到多種利益相關(guān)者;而小型企業(yè)就沒有這樣的資源,因此其用戶界面可能受到一些影響。

我在 Insight 當(dāng)中的目標(biāo)是使用現(xiàn)代深度學(xué)習(xí)算法大大簡化設(shè)計(jì)工作流程,并使得任何規(guī)模的公司都能快速地創(chuàng)造并測試網(wǎng)頁。




現(xiàn)有的設(shè)計(jì)工作流程

現(xiàn)有工作流程涉及多個(gè)利益相關(guān)者
一個(gè)典型的設(shè)計(jì)工作流程如下所示:

開發(fā)周期的時(shí)間長度很快就會(huì)變成瓶頸,像 Airbnb 這樣的公司已經(jīng)開始使用機(jī)器學(xué)習(xí)來提高這個(gè)過程的效率了。(參見:https://airbnb.design/sketching-interfaces/

Airbnb 內(nèi)部 AI 工具演示:從草圖到代碼
雖然這種工具很有希望成為機(jī)器輔助設(shè)計(jì)的例子,但是尚不清楚這種模型在端到端的情況下能完全訓(xùn)練到什么程度,也不清楚它在多大程度上依賴于手工制作的圖像特征。這肯定是無法知道的,因?yàn)樗壳斑€是 Airbnb 專有的非開源方案。我想創(chuàng)造一個(gè)「從繪圖到代碼」技術(shù)的開源版本,可供更多開發(fā)者和設(shè)計(jì)者使用。

理想情況下,我的模型可以采用簡單的網(wǎng)站設(shè)計(jì)手繪原型,并立即從該圖像生成一個(gè)可用的 HTML 網(wǎng)站:

SketchCode 模型需要繪制好的網(wǎng)站線框圖并能生成 HTML 代碼
實(shí)際上,上面的例子是一個(gè)從我模型測試集圖像生成的實(shí)際網(wǎng)站!你可以在我的 Github 頁面中查看它:https://github.com/ashnkumar/sketch-code




從圖像標(biāo)注中獲取靈感

我正在解決的問題屬于程序綜合(https://en.wikipedia.org/wiki/Program_synthesis)這個(gè)廣義任務(wù)范疇,即工作源代碼的自動(dòng)生成。盡管很多程序綜合能處理從自然語言要求或執(zhí)行軌跡所生成的代碼,但在我這個(gè)案例中,我可以從一個(gè)源圖像(手繪線框圖)開始,自動(dòng)獲得想要的代碼。

機(jī)器學(xué)習(xí)領(lǐng)域中,有一個(gè)名為圖像字幕生成的領(lǐng)域(https://cs.stanford.edu/people/karpathy/deepimagesent/),該領(lǐng)域有著充分的研究,旨在學(xué)習(xí)將圖像和文本相連的模型,特別是生成關(guān)于源圖片內(nèi)容的描述。

圖像標(biāo)注模型生成源圖片的描述
我從最近一篇名為 pix2code 的論文和 Emil Wallner 使用該方法的一個(gè)相關(guān)項(xiàng)目獲得了靈感(參見:前端慌不慌?用深度學(xué)習(xí)自動(dòng)生成 HTML 代碼),并決定將我的任務(wù)重構(gòu)成圖像字幕生成問題的一部分,即將線框圖作為輸入圖像,將對(duì)應(yīng)的 HTML 代碼作為輸出文本。




獲取正確的數(shù)據(jù)集

考慮到圖像標(biāo)注的方法,我心中理想的訓(xùn)練數(shù)據(jù)集是成千上萬對(duì)手繪線框圖和它們 HTML 代碼的等價(jià)物。不出所料,我無法找到這種數(shù)據(jù)集,因此我不得不為該任務(wù)創(chuàng)建自己的數(shù)據(jù)。

我從 pix2code 論文中提到的一個(gè)開源數(shù)據(jù)集(https://github.com/tonybeltramelli/pix2code)入手,它由 1750 張人工生成的網(wǎng)頁截圖和其對(duì)應(yīng)源代碼構(gòu)成。

pix2code 中生成的網(wǎng)站圖像及其源代碼數(shù)據(jù)集
這個(gè)數(shù)據(jù)集對(duì)我而言是個(gè)很好的開始,其中有一些有趣的地方:




讓圖片更「手繪化」

將網(wǎng)站的多彩主題切換成手寫主題
為了調(diào)整數(shù)據(jù)集以適應(yīng)我的任務(wù),我得把網(wǎng)站的圖片弄得像是手繪的。對(duì)圖片的手繪化都得益于 OpenCV 和 PIL library 的灰度轉(zhuǎn)換和輪廓檢測功能。

最終,我決定直接通過一系列操作來直接修改原網(wǎng)站的 CSS 樣式表:

我的最終版本又增加了一個(gè)步驟,通過加入傾斜,偏移和旋轉(zhuǎn)來進(jìn)行數(shù)據(jù)增強(qiáng),以模仿實(shí)際繪制的素描的不確定性。




使用圖像標(biāo)注模型架構(gòu)

現(xiàn)在我已經(jīng)準(zhǔn)備好我的數(shù)據(jù)了,我可以把它輸入模型進(jìn)行訓(xùn)練了!

我用的這個(gè)用于圖像標(biāo)注的模型包括三個(gè)主要部分:

使用標(biāo)記序列作為輸入來訓(xùn)練模型
為了訓(xùn)練這個(gè)模型,我把源代碼分成標(biāo)記序列。其中一個(gè)序列及其源圖像是模型的單個(gè)輸入,其標(biāo)簽是文檔中的下一個(gè)標(biāo)記。該模型使用交叉熵成本(cross-entropy cost)作為其損失函數(shù),將模型預(yù)測的下一個(gè)標(biāo)記與實(shí)際的標(biāo)記進(jìn)行比較。

在模型從頭開始生成代碼的推理階段,該過程稍有不同。該圖像仍然通過 CNN 網(wǎng)絡(luò)進(jìn)行處理,但文本處理僅提供一個(gè)開始序列。在每一步中,模型對(duì)序列中下一個(gè)標(biāo)記的預(yù)測將返回到當(dāng)前輸入序列,同時(shí)作為新的輸入序列輸入到模型中。重復(fù)此操作直到模型預(yù)測出 <END> 標(biāo)記或進(jìn)程達(dá)到每個(gè)文檔的標(biāo)記數(shù)的預(yù)定義上限。

一旦從模型中生成了一組預(yù)測標(biāo)記,編譯器就會(huì)將 DSL 標(biāo)記轉(zhuǎn)換為 HTML,這些 HTML 可以在任何瀏覽器中展示出來。




用 BLEU 得分評(píng)估模型

我決定用 BLEU 評(píng)分(https://machinelearningmastery.com/calculate-bleu-score-for-text-python/)來評(píng)估模型。這是機(jī)器翻譯任務(wù)中經(jīng)常會(huì)用到的評(píng)估標(biāo)準(zhǔn),它試圖在給定相同輸入的情況下,評(píng)估機(jī)器生成的文本與人類可能寫的文本的近似程度。

實(shí)質(zhì)上,BLEU 通過比較生成文本和參考文本的 n-元 序列,生成精修改后的文本。它非常適合這個(gè)項(xiàng)目,因?yàn)樗鼤?huì)影響生成的 HTML 中的實(shí)際元素,以及它們之間的相互關(guān)系。

然后這是最棒的——我完全可以通過檢查生成的網(wǎng)站來理解 BLEU 得分!

BLEU 得分可視化
一個(gè)完美的 1.0 的 BLEU 分?jǐn)?shù)將在正確的位置生成源圖像的正確元素,而較低的得分可以預(yù)測錯(cuò)誤的元素和/或?qū)⑺鼈兎旁谙鄬?duì)于彼此錯(cuò)誤的位置。最終我的模型能夠在測試集上得到 0.76 的 BLEU 分?jǐn)?shù)。




福利 - 定制樣式

我覺察到的一個(gè)額外福利是,由于模型只生成頁面的骨架(文檔的標(biāo)記),我可以在編譯過程中添加一個(gè)自定義的 CSS 層,并且可以即時(shí)看到網(wǎng)站的不同風(fēng)格。

一次轉(zhuǎn)換 => 同時(shí)生成多種樣式
將樣式與模型生成過程分離,給使用模型帶來了很多好處:




總結(jié)與展望

通過利用圖像標(biāo)注的研究成果,SketchCode 能夠在幾秒鐘內(nèi)將手繪網(wǎng)站線框圖轉(zhuǎn)換為可用的 HTML 網(wǎng)站。

該模型有些局限性,大概包括以下幾點(diǎn):




我很期待看到項(xiàng)目的進(jìn)一步發(fā)展!

原文鏈接:https://blog.insightdatascience.com/automated-front-end-development-using-deep-learning-3169dd086e82



關(guān)鍵詞:草圖,學(xué)習(xí),深度

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉