화면을 설명하는 능력과 올바른 UI 요소를 눌러 작업을 끝내는 능력은 다릅니다. OmniParser 출력은 행동 후보를 만드는 지각층이므로 좌표 정확도, 중복 요소, 화면 변화 뒤의 재인식을 별도로 검증해야 합니다.
OmniParser: GUI 자동화를 위한 순수 비전 기반 에이전트
OmniParser: GUI 자동화를 위한 순수 비전 기반 에이전트
- 논문: https://arxiv.org/abs/2408.00203v1
- 깃허브: https://github.com/microsoft/OmniParser
- 프로젝트: https://microsoft.github.io/OmniParser/
** 연구 기관:** Microsoft Research, Microsoft Gen AI ** 저자:** Yadong Lu, Jianwei Yang, Yelong Shen, Ahmed Awadallah ** 논문 발표:** 2025년 2월 12일
OmniParser란?
OmniParser는 GUI(그래픽 사용자 인터페이스) 자동화를 위한 최첨단 AI 모델입니다. 최근 GPT-4V와 같은 대형 비전-언어 모델(VLM, Vision-Language Models)이 등장하면서 GUI 에이전트의 가능성이 확대되었지만, 기존 모델들은 GUI 요소를 신뢰성 있게 인식하고, 실제 동작을 수행하는 문제에서 어려움이 있었습니다.
OmniParser는 이러한 문제를 해결하기 위해 UI 스크린샷을 해석하고, 액션을 실행할 수 있도록 GUI 정보를 구조화된 데이터로 변환하는 기술을 제공합니다. 이를 통해 GPT-4V 및 기타 비전-언어 모델(VLM)이 실제 애플리케이션과 상호작용할 수 있도록 지원합니다.
OmniParser를 활용하면:
- 지원: 웹, 모바일, 데스크톱 GUI 자동화 가능
- 지원: AI가 UI를 이해하고 버튼을 클릭하거나 텍스트 입력 수행 가능
- 지원: GPT-4V, LLaMA-3, Phi-3.5-V 등 다양한 비전-언어 모델과 결합 가능
OmniParser의 핵심 기술
1 인터랙티브 UI 요소 감지 (Interactable Region Detection)
- 지원: UI에서 버튼, 아이콘, 입력 필드 등의 상호작용 가능한 요소를 감지하여 바운딩 박스(Bounding Box)로 제공합니다.
- 지원: YOLO 기반 감지 모델을 활용하여 웹, 모바일, 데스크톱 환경에서 DOM 트리 정보 없이 UI 요소를 탐지합니다.
- 지원: 67K+ 개의 UI 스크린샷을 학습 데이터로 활용하여 모델의 정밀도를 극대화하였습니다.
2 로컬 의미 분석 (Local Semantics Analysis)
- 지원: 단순한 위치 정보뿐만 아니라 아이콘 및 버튼의 기능을 설명하여 GPT-4V와 같은 LLM이 UI를 정확히 이해하도록 지원합니다.
- 지원: GPT-4o를 활용한 7K+ 개의 아이콘-설명 데이터셋을 구축하고 BLIP-2 모델을 학습하여 기능 설명을 자동 생성합니다.
- 지원: OCR(광학 문자 인식) 기능을 포함하여 UI의 텍스트 요소도 분석합니다.
3 순수 비전 기반 UI 분석
- 지원: 기존 연구들은 웹 브라우저의 DOM 트리 정보를 활용했지만, 이는 모바일 앱 및 데스크톱 애플리케이션에서는 사용이 불가능합니다.
- 지원: OmniParser는 HTML 없이도 완전한 비전 기반 UI 분석이 가능하여 다양한 운영체제 및 애플리케이션에서 활용할 수 있습니다.
벤치마크 성능 평가
OmniParser는 ScreenSpot, Mind2Web, AITW 등 다양한 GUI 자동화 관련 벤치마크에서 성능을 검증하였습니다.
ScreenSpot 벤치마크 결과 (아이콘/위젯 인식 정확도)
OmniParser는 기존 GPT-4V 대비 평균 56.8% 성능 향상
Mind2Web 벤치마크 결과 (웹 탐색 정확도)
HTML 정보를 사용하지 않고도 GPT-4V 대비 웹 탐색 성능이 6~8% 향상
AITW 벤치마크 결과 (GUI 자동화 정확도)
OmniParser는 GPT-4V 대비 AITW 벤치마크에서 4.7% 향상된 전체 성능을 기록
실제 사용 사례 (Demo & Use Cases)
1 GUI 자동화 및 원격 조작
“설정에서 Wi-Fi를 켜줘”
- 지원: OmniParser는 설정 화면에서 Wi-Fi 버튼을 인식
- 지원: 해당 버튼을 선택하고 활성화하는 액션을 실행
2 웹 탐색 자동화
“Amazon에서 노트북을 검색해줘”
- 지원: 검색창을 인식하고 “노트북” 입력
- 지원: 검색 버튼을 클릭하여 결과 페이지 이동
3 앱 내 내비게이션 자동화
“Gmail에서 새 이메일을 작성해줘”
- 지원: OmniParser는 Gmail UI에서 “작성하기” 버튼을 찾아 클릭
- 지원: 이메일 입력창을 선택하고 사용자 입력을 기다림
결론: GUI 에이전트가 실제로 사용자의 명령을 이해하고, 자동으로 실행하는 단계로 발전하고 있습니다.
설치 및 사용법
기본 환경 설정
1
2
3
4
cd OmniParser
conda create -n "omni" python==3.12
conda activate omni
pip install -r requirements.txt
모델 다운로드
1
2
3
# download the model checkpoints to local directory OmniParser/weights/
for f in icon_detect/{train_args.yaml,model.pt,model.yaml} icon_caption/{config.json,generation_config.json,model.safetensors}; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights; done
mv weights/icon_caption weights/icon_caption_florence
추론(Inference) 코드 예제
1
python gradio_demo.py
화면 파싱 결과를 행동 전에 검증한다
같은 “저장”이라는 문구가 메뉴와 dialog에 동시에 있을 수 있고 icon만 있는 버튼도 있습니다. 출력된 element마다 label, bounding box, element type을 확인하고, 사람이 선택한 target과 IoU 또는 중심점 거리를 비교하면 grounding 품질을 잴 수 있습니다. 작은 버튼과 겹친 영역, scroll 밖 요소를 별도 집단으로 두는 편이 좋습니다.
클릭 뒤에는 이전 좌표를 재사용하지 않습니다. dialog가 열리거나 layout이 움직이면 화면을 다시 capture하고 parsing해야 합니다. 예상한 화면 변화가 없으면 연속 클릭을 멈추고, destructive action 앞에는 버튼 label뿐 아니라 주변 dialog 문맥과 사용자 승인을 확인해야 합니다.
실제 과제는 지각과 계획을 분리해 채점한다
첫째 올바른 요소가 파싱됐는지, 둘째 agent가 그 요소를 선택했는지, 셋째 클릭, 입력 뒤 상태가 목표와 맞는지를 나눠 기록합니다. 요소가 없는데 agent가 틀렸다면 perception 문제이고, 요소는 있었지만 다른 것을 골랐다면 planning 문제입니다. 성공률 하나만 쓰면 수정할 모듈을 찾기 어렵습니다.
OmniParser가 적합한지는 정적 benchmark보다 사용하는 OS, browser, 해상도, 확대율에서 판단해야 합니다. 접근성 tree를 쓸 수 있는 환경이라면 pixel parsing과 정확도, 속도를 비교하고, 두 source가 충돌할 때 어떤 것을 우선할지도 정해야 합니다.
평가 기록에는 화면 해상도와 확대율, 모델 버전을 함께 남겨 같은 실패를 재현할 수 있어야 합니다.
함께 읽으면 이해가 이어지는 글
- RAG 답이 틀릴 때 LLM보다 PDF를 먼저 의심해야 하는 이유: RAGFlow — RAGFlow의 문서 이해형 수집 구조를 표, 레이아웃, 읽기 순서 중심으로 살펴보고, 검색 품질을 평가하는 실무 절차와 운영 비용을 정리합니다.
- 온디바이스 VLM은 모든 이미지를 고해상도로 봐야 할까? HyperVL의 VRC 판단 — HyperVL이 저해상도 thumbnail로 입력 난도를 먼저 판단하고 필요한 이미지에만 고해상도 branch를 쓰는 이유, token 절감과 routing 실패의 대가를 함께 살펴봅니다.
- 이미지에 없는 물체를 말할 때: NoLan의 언어 사전확률 억제 — NoLan이 이미지+텍스트 로짓에서 텍스트 전용 편향을 동적으로 억제하는 방식, POPE 개선과 두 번의 forward 비용, 오탐 가능성을 정리합니다.
←→ 키와 좌우 스와이프를 지원합니다. 읽던 페이지는 이 기기에 저장됩니다.







