深度學習成了前端開發(fā)神器:根據(jù)UI設(shè)計圖自動生成代碼
UI設(shè)計和前端工程師之間,可能還需要一個神經(jīng)網(wǎng)絡(luò)。
近日,位于哥本哈根的一家創(chuàng)業(yè)公司Uizard Technologies開發(fā)出了一個名為“pix2code”的系統(tǒng)。運用深度學習,這個系統(tǒng)能夠根據(jù)輸入的圖形用戶界面(GUI)截圖直接輸出對應(yīng)的代碼,從而省去前端手動編寫代碼的過程。
目前pix2code所生成代碼的準確率已經(jīng)達到77%,且這些代碼能夠兼容安卓、iOS以及Web界面三種平臺。
到底有多神奇?看看下面這段視頻就知道了。
UIzard的創(chuàng)始人Tony Beltramelli說,為了搞出這個神經(jīng)網(wǎng)絡(luò),研發(fā)團隊不得不克服三個主要方面的困難:
-
第一是計算機視覺層面——計算機無法自動識別、理解給定的對象和場景,也無法判斷它們的位置和特征;
-
第二是語言層面——他們需要教會神經(jīng)網(wǎng)絡(luò)理解文本,好讓它能夠創(chuàng)造出準確的樣本;
-
最后,神經(jīng)網(wǎng)絡(luò)需要理解代碼、文本以及對應(yīng)圖像之間的關(guān)聯(lián)。
Beltramelli還表示,在未來,他們可能會用生成對抗網(wǎng)絡(luò)(GANs)對pix2code進行進一步的完善。GANs已經(jīng)證明了自己在生成序列和圖像時的優(yōu)勢,但因為這一領(lǐng)域內(nèi)的研究還處于相對初步的階段,要對神經(jīng)網(wǎng)絡(luò)進行訓練仍然需要花費大量的時間。
附paper地址:
https://arxiv.org/abs/1705.07962
GitHub地址:
https://github.com/tonybeltramelli/pix2code
此外,在GitHub上,Beltramelli對于pix2code相關(guān)的一些常見問題進行了解答。量子位將這一部分編譯如下:
Q:數(shù)據(jù)集會在什么時候開放?
A:我們把論文投到了今年的NIPS,等他們給出采納或拒絕的結(jié)果后,數(shù)據(jù)集將會開放,具體時間大概在九月。那時我們將會提供包含在數(shù)據(jù)集中的GUI截圖、相關(guān)的DSL代碼以及針對iOS、安卓和Web界面的三種目標代碼。
Q:源代碼什么時候開放?
A:原本如論文中所寫,我們沒有開放源代碼的計劃。但沒想到這個項目吸引了如此多的關(guān)注,因此我們決定將論文中說的pix2code實現(xiàn)代碼和數(shù)據(jù)集一起開源。
Q:pix2code會支持其他目標平臺/語言嗎?
A:不,pix2code只是一個研究項目,它將保持論文中所描述的狀態(tài)。這個項目其實只是對我們在Uizard Technologies所做工作的一個小小展示。當然,我們歡迎你fork,自己在其他目標平臺/語言上進行實驗。
Q:我能在自己的前端項目中用上pix2code嗎?
A:不,pix2code只是實驗性的項目,目前還無法讓你在特定案例上應(yīng)用。但我們正在努力爭取讓它實現(xiàn)商業(yè)化。
Q:模型的表現(xiàn)是如何進行測量的?
A:論文中所報告的準確或是錯誤結(jié)果都是在DSL層次上,通過對生成的token和預期的token進行比較而得出的。如果二者存在任何長度上的差異,同樣會被認定為錯誤。
Q:訓練這個模型要花費多久?
A:在一塊英偉達的Tesla K80 GPU上,要讓一個數(shù)據(jù)集中包括的109 * 10^6條參數(shù)最優(yōu)化,需要花費不到5個小時的時間。因此如果你想在三個目標平臺上對這個模型進行訓練的話,大概要花費15個小時。
Q:我是一名前端開發(fā)者?我是不是很快就要失業(yè)?(我非常真誠地問了這個問題好多遍了……)
A:AI并不會那么快就把前端工程師替代。
即便假定已經(jīng)存在一個成熟的pix2code版本,在每種不同的平臺/語言上生成的代碼都能達到100%的準確率,好的前端仍然需要邏輯、互動、高級的圖形和動畫,以及其他所有用戶喜歡的東西。
我們做這個東西的目的是填平UI/UX設(shè)計師與前端開發(fā)者之間的鴻溝,而不是去代替他們。我們希望能讓設(shè)計者更好地創(chuàng)作,同時讓開發(fā)人員將自己的時間更多地花費在那些核心功能上。
我們相信未來AI將與人類協(xié)作,而不是代替人類。
---------------------------------------------------
唐旭 編譯整理
量子位 報道 | 公眾號QbitAI