<aside>
๐ก code : https://github.com/leigest519/ScreenCoder
</aside>
1. Introduction
1) About Author
2) ๋
ผ๋ฌธ์ด ๋ค๋ฃจ๋ task
<aside>
๐ฅ
Image(UI)-to-Code-Generation task
</aside>

- Input: Image(UI design Domain) + User query
- Output: Code (HTML and CSS code)
3) limitations of previous studies
์์ฐ์ด๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋ ํ๋กฌํํธ๋ ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ํ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
-
- ์ค์ง ํ
์คํธ๋ง์ผ๋ก ์์ธํ UI ๋ ์ด์์์ ์์ฑํ๋ ค๋ฉด ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ, ์คํ์ผ๋ง, ๊ณต๊ฐ์ ๊ด๊ณ๋ฅผ ์ถฉ๋ถํ ํฌ์ฐฉํ๊ธฐ ์ํด ๋งค์ฐ ๊ธธ๊ณ ์ฅํฉํ ํ๋กฌํํธ๊ฐ ํ์ํฉ๋๋ค. โ ์ฌ์ฉ์์๊ฒ ํฐ ๋ถ๋ด์ ์ฃผ๊ณ (long context length๋ก ์ธํ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋ถ์์ ์ฑ์ ์ ๋ฐํฉ๋๋ค.
-
- ์๋ฌด๋ฆฌ ์ ๊ตํ๊ฒ ์ค๋ช
ํ๋๋ผ๋ ํ
์คํธ๋ง์ผ๋ก๋ ์ปดํฌ๋ํธ์ ๋น์จ, ๊ฐ๊ฒฉ, ์ ๋ ฌ ๋ฑ ์ธ๋ฐํ ์๊ฐ์ ๋์์ธ์ ์ง์ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
- ์ค์ ๋์์ธ ์์
ํ๋ฆ์์ UI ๋์์ด๋๋ค์ ์ผ๋ฐ์ ์ผ๋ก ํ
์คํธ๊ฐ ์๋ ์ค์ผ์น๋ ๋ชฉ์
์ผ๋ก ์์
์ ์์ํ๋ค๋ ๊ฒ์
๋๋ค.
<aside>
๐ฅ
์ต๊ทผ VLM ๋ชจ๋ธ๋ก UI ๋์์ธ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํด์ํ๊ณ ์ด๋ฅผ ๊ตฌ์กฐํ๋ ์ฝ๋๋ก ๋ณํํ๋ ๊ฐ๋ฅ์ฑ์ ์ ์ํ์ง๋ง ์์ง ์ด๋ ค์์ด ๋ง์ต๋๋ค. UI-to-code ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๋ฅ๋ ฅ์ ์๊ตฌ๋ก ํฉ๋๋ค.
- Visual Understanding (์๊ฐ์ ์ดํด) : UI ์ปดํฌ๋ํธ ๋ฑ UI์ ๋ํ ์๊ฐ์ ์ดํด
- structural layout planning (๋ ์ด์์ ๊ตฌ์กฐ ๊ณํ) : Section๋ณ๋ก ๊ฐ๊ฐ planningํ๋ ๋ฅ๋ ฅ
- domain-specific code synthesis (๋๋ฉ์ธ ์ฝ๋ ํฉ์ฑ) : html, CSS ๋ฑ์ frontend ์ฝ๋ generation
</aside>
์ ์๋ 2๊ฐ์ง ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์์ต๋๋ค.
- understanding errors(์ดํด ์ค๋ฅ) : ์ปดํฌ๋ํธ๋ฅผ ๋์น๋ค๊ฑฐ๋ ์๋ชป ๋ถ๋ฅํ๋ ๊ฒฝ์ฐ
- miss : ์ฌ์ด๋๋ฐ๊ฐ ์๋ต๋๋ ์ค๋ฅ
- wrong : ๋ฒํผ ํ
์คํธ๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ
- Planning errors(๊ณํ ์ค๋ฅ) : ์ปดํฌ๋ํธ๊ฐ ์๋ชป๋ ์์น์ ๋ฐฐ์น๋๊ฑฐ๋ ๋ ์ด์์ ์ ์ฝ ์กฐ๊ฑด์ ๋ชป ์งํค๋ ๊ฒฝ์ฐ
- ์๋ชป๋ ์์น : header๊ฐ contents section ์๋์ ๋ฐฐ์น
- ์ ์ฝ ์กฐ๊ฑด : Navigation bar๊ฐ ์ ๋ ฌ์ด ์๋ ๊ฒฝ์ฐ
- ๋ ๋์๊ฐ ๊ณ ํ์ง์ HTML/CSS ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋ ์ด์์ ๋์์ธ, ์ปจํ
์ด๋ ๊ณ์ธต, ๋ฐ์ํ ๊ตฌ์ฑ ํจํด์ ํฌํจํ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ๋ํ ๋๋ฉ์ธ ํนํ ์ง์์ด ํ์ํ์ง๋ง ํ์ฌ์ VLM ๋ชจ๋ธ์ ๋ช
ํํ๊ฒ ๋ชจ๋ธ๋ง๋์ด ์์ง ์์ต๋๋ค.