KR20210010833A - 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습 - Google Patents

사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습 Download PDF

Info

Publication number
KR20210010833A
KR20210010833A KR1020200088891A KR20200088891A KR20210010833A KR 20210010833 A KR20210010833 A KR 20210010833A KR 1020200088891 A KR1020200088891 A KR 1020200088891A KR 20200088891 A KR20200088891 A KR 20200088891A KR 20210010833 A KR20210010833 A KR 20210010833A
Authority
KR
South Korea
Prior art keywords
captured image
robot
elements
geometric
anchors
Prior art date
Application number
KR1020200088891A
Other languages
English (en)
Other versions
KR102356950B1 (ko
Inventor
코스민 보이쿠
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20210010833A publication Critical patent/KR20210010833A/ko
Priority to KR1020220008654A priority Critical patent/KR20220013450A/ko
Application granted granted Critical
Publication of KR102356950B1 publication Critical patent/KR102356950B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • G06K9/20
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/048Fuzzy inferencing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • G06K2209/01
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Geometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)
  • Debugging And Monitoring (AREA)

Abstract

사용자 인터페이스(UI)의 로봇 프로세스 자동화(RPA)를 위해 복수의 앵커가 이용될 수 있다. 복수의 앵커는 RPA를 위한 UI의 캡처된 이미지 내의 요소들 간의 관계를 결정하는 데 이용될 수 있다. 앵커링의 결과는 머신 학습(ML) 컴포넌트의 트레이닝 또는 재 트레이닝에 이용될 수 있다.

Description

사용자 인터페이스(UI)의 다중 앵커 기반 추출, 인식, 및 머신 학습{MULTI-ANCHOR BASED EXTRACTION, RECOGNITION, AND MACHINE LEARNING OF USER INTERFACE(UI)}
로봇 프로세스 자동화(robotic process automation)(RPA)는 엔터프라이즈 플랫폼(enterprise platforms), 가상 머신(virtual machine)(VM) 구성, 원격 데스크탑, 클라우드 컴퓨팅, 데스크탑 애플리케이션 등에서 반복적인 동작, 기능, 또는 작업 흐름을 자동화할 수 있다. 자동화를 위한 사용자 인터페이스(UI) 캡처, 추출, 스크래핑, 또는 실행의 경우, 앵커 또는 참조 포인트는 컴퓨터 비전(computer vision)(CV) 또는 머신 비전(machine vision)(MV)과 함께 이용되어, UI의 이미지의 타겟 구역에서 하나 이상의 요소를 식별할 수 있다. 그러나, 단일 앵커 또는 참조 포인트를 이용하는 구성은 바람직하지 않은 복제, 에러, 위양성(false positives), 누락된 요소 등에 영향을 받기 쉽다.
작업 흐름의 RPA 디자인 또는 실행시에, 인치당 도트 수(dots per inch)(DPI), 크기, 스케일링, 비디오 프레임 레이트, 음영 등에 기반한 에러가 또한 발생할 수 있다. 이러한 에러는 가상 또는 원격 머신 구성에서 더욱 두드러질 수 있다. 또한, UI의 버튼 형상 또는 체크 박스는 CV를 사용하는 RPA에 대해 에러를 유발시킬 수 있다. RPA에 대한 작업 흐름 생성 또는 런타임시 에러를 감소시키기 위해 개선된 앵커링을 사용하는 것이 바람직하다.
하나 이상의 작업 흐름의 로봇 프로세스 자동화(robotic process automation)(RPA)를 위한 사용자 인터페이스(UI)를 위해 다중 앵커링을 이용하는 방법 및 장치가 개시된다. 자동화를 위한 하나 이상의 작업 흐름에 대해 로봇의 개발 또는 런타임 동안 UI에 대한 다중 앵커 분석을 추출 또는 스크랩된 이미지에 대한 요소 검출 또는 트레이닝에 이용할 수 있다. 데스크탑 애플리케이션, 웹 애플리케이션, 및 가상 또는 원격 머신 구성을 위한 UI에 대해 다중 앵커링 분석을 구성하여 에러를 감소시키고 성능을 향상시킬 수 있다.
첨부된 도면들과 함께 예로서 주어진 다음의 설명으로부터 보다 상세한 이해가 이루어질 수 있으며, 도면에서 유사한 참조 번호는 유사한 요소를 나타낸다.
도 1a는 로봇 프로세스 자동화(RPA) 개발, 디자인, 작동, 또는 실행의 예시도이다.
도 1b는 RPA 개발, 디자인, 작동, 또는 실행의 다른 예시도이다.
도 1c는 컴퓨팅 시스템 또는 환경의 예시도이다.
도 2는 RPA를 위해 피드백 루프를 사용하는 재 트레이닝의 예시도이다.
도 3은 RPA를 위한 사용자 인터페이스(UI)의 다중 앵커링의 예시도이다.
도 4는 RPA를 위한 UI의 다중 앵커링의 다른 예시도이다.
도 4a는 RPA를 위한 UI의 다중 앵커링의 다른 예시도이다.
도 5는 RPA를 위한 UI의 다중 앵커링을 사용하는 프로세스의 예시도이다.
후술되는 방법 및 프로세스에 대해, 언급된 단계들은 임의의 순서로 시퀀스 없이 수행될 수 있으며, 명시적으로 설명 또는 도시되지 않은 서브 단계들이 수행될 수 있다. 또한, "연결된" 또는 "동작가능하게 연결된"은 객체들이 연결되어 있지만 연결된 객체들 사이에 0 개 또는 그 초과의 중간 객체를 가질 수 있음을 의미할 수 있다. 또한, 개시된 특징/요소의 임의의 조합이 하나 이상의 실시예에서 사용될 수 있다. "A 또는 B"를 언급할 때, 이는 A, B, 또는 A 및 B를 포함할 수 있으며, 이는 더 긴 리스트에 대해 유사하게 확장될 수 있다. X/Y 표기법을 사용할 때, 이는 X 또는 Y를 포함할 수 있다. 대안적으로, 표기법 X/Y를 사용할 때, 이는 X 및 Y를 포함할 수 있다. X/Y 표기법은 동일한 설명 논리를 사용하여 더 긴 리스트에 대해 유사하게 확장될 수 있다.
도 1a는 로봇 프로세스 자동화(RPA) 개발, 디자인, 작동, 또는 실행(100)의 예시도이다. 때때로 스튜디오, 개발 플랫폼, 개발 환경 등으로 지칭되는 디자이너(102)는 로봇이 하나 이상의 작업 흐름을 수행하거나 자동화하기 위한 코드, 명령어, 커맨드 등을 생성하도록 구성될 수 있다. 컴퓨팅 시스템이 로봇에 제공할 수 있는 선택(들)으로부터, 로봇은 사용자 또는 운영자에 의해 선택된 시각 디스플레이의 구역(들)의 대표 데이터를 결정할 수 있다. RPA의 일부로서, 컴퓨터 비전(computer vision)(CV) 동작 또는 머신 학습(machine learning)(ML) 모델과 관련한 UI 로봇 개발 및 런타임에 다차원의 정사각형, 직사각형, 원, 다각형, 자유 형태 등의 형상이 이용될 수 있다.
작업 흐름에 의해 달성될 수 있는 비 제한적인 동작의 예는 로그인 수행, 양식 작성, 정보 기술(IT) 관리 등 중 하나 이상일 수 있다. UI 자동화를 위한 작업 흐름을 실행하기 위해, 로봇은 애플리케이션 액세스 또는 애플리케이션 개발에 관계없이, 버튼, 체크 박스, 텍스트 필드, 라벨 등과 같은 특정 스크린 요소를 고유하게 식별할 필요가 있을 수 있다. 애플리케이션 액세스의 예는 로컬, 가상, 원격, 클라우드, Citrix®, VMWare®, VNC®, Windows® 원격 데스크탑, 가상 데스크탑 기반 구조(virtual desktop infrastructure)(VDI) 등일 수 있다. 애플리케이션 개발의 예는 win32, Java, Flash, 하이퍼 텍스트 마크업 언어(HTML), HTML5, 확장 가능 마크업 언어(XML), Javascript, C#, C++, Silverlight 등일 수 있다.
작업 흐름은 태스크 시퀀스, 플로우차트, 유한 상태 머신(Finite State Machines)(FSMs), 글로벌 예외 핸들러(global exception handlers) 등을 포함할 수 있지만, 이에 제한되지는 않는다. 태스크 시퀀스는 하나 이상의 애플리케이션 또는 윈도우 사이의 선형 태스크를 처리하기 위한 선형 프로세스일 수 있다. 플로우챠트는 복잡한 비즈니스 로직을 처리하도록 구성되어, 다수의 분기 로직 연산자를 통해 의사 결정의 통합과 활동의 연결을 보다 다양한 방식으로 가능하게 할 수 있다. FSMs은 대규모 작업 흐름을 위해 구성될 수 있다. FSMs은 실행시에 유한 개수의 상태를 사용할 수 있으며, 이들 상태는 조건(condition), 천이(transition), 활동(activity) 등에 의해 트리거될 수 있다. 글로벌 예외 핸들러는 프로세스 디버깅 등을 위해 실행 에러가 발생할 때 작업 흐름 행위를 결정하도록 구성될 수 있다.
로봇은 기본 운영 체제(OS) 또는 하드웨어에 투명한 UI를 자동화할 수 있는 애플리케이션, 애플릿, 스크립트 등일 수 있다. 구축시에, 하나 이상의 로봇은 때때로 오케스트레이터(orchestrator)로 지칭되는 컨덕터(conductor)(104)에 의해 관리, 제어 등이 수행될 수 있다. 컨덕터(104)는 메인 프레임, 웹, 가상 머신, 원격 머신, 가상 데스크탑, 엔터프라이즈 플랫폼, 데스크탑 app(s), 브라우저, 또는 이와 유사한 클라이언트, 애플리케이션, 또는 프로그램에서 작업 흐름을 실행 또는 모니터링하도록 로봇(들) 또는 자동화 실행자(106)에게 지시하거나 명령할 수 있다. 컨덕터(104)는 컴퓨팅 플랫폼을 자동화하도록 복수의 로봇에게 지시하거나 명령하기 위한 중앙 또는 반 중앙 포인트로서 기능할 수 있다.
특정 구성에서, 컨덕터(104)는 프로비저닝(provisioning), 구축(deployment), 구성(configuration), 큐잉(queueing), 모니터링(monitoring), 로깅(logging), 및/또는 상호 연결성(interconnectivity)의 제공을 위해 구성될 수 있다. 프로비저닝은 로봇(들) 또는 자동화 실행자(106)와 컨덕터(104) 사이의 연결 또는 통신의 생성 및 유지를 포함할 수 있다. 구축은 실행을 위해 지정된 로봇으로의 패키지 버전의 전달을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 및 전달을 포함할 수 있다. 큐잉은 큐(queues) 및 큐 아이템(queue items)의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하고 사용자 허가(user permissions)를 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예컨대, SQL 데이터베이스) 및/또는 다른 스토리지 메커니즘(예컨대, 대규모 데이터 세트를 저장하고 빠르게 쿼리하는 능력을 제공하는 ElasticSearch®)에 로그를 저장 및 인덱싱하는 것을 포함할 수 있다. 컨덕터(104)는 제3자 솔루션 및/또는 애플리케이션을 위한 중앙 통신 포인트로서 기능함으로써 상호 연결성을 제공할 수 있다.
로봇(들) 또는 자동화 실행자(106)는 무인(unattended)(108) 또는 유인(attended)(110)으로 구성될 수 있다. 무인(108) 작동의 경우, 제3자 입력이나 제어없이 자동화가 수행될 수 있다. 유인(110) 작동의 경우, 자동화는 제3자 컴포넌트로부터 입력, 커맨드, 명령어, 안내 등을 수신함으로써 수행될 수 있다.
로봇(들) 또는 자동화 실행자(106)는 디자이너(102)에 내장된 작업 흐름을 실행하는 실행 에이전트일 수 있다. UI 또는 소프트웨어 자동화를 위한 로봇의 상업적 예는 UiPath Robots™이다. 일부 실시예에서, 로봇(들) 또는 자동화 실행자(106)는 Microsoft Windows® 서비스 컨트롤 관리자(Service Control Manager)(SCM) 관리 서비스를 디폴트로 설치할 수 있다. 결과적으로, 이러한 로봇은 로컬 시스템 계정으로 대화형 Windows® 세션을 열 수 있으며 Windows® 서비스의 권한을 가질 수 있다.
일부 실시예에서, 로봇(들) 또는 자동화 실행자(106)는 사용자 모드에서 설치될 수 있다. 이들 로봇은 주어진 로봇이 설치된 사용자와 동일한 권한을 가질 수 있다. 이 특징은 또한 고밀도(High Density)(HD) 로봇에도 이용 가능할 수 있으며, 이 로봇은 HD 환경에서와 같이 최대 성능으로 각 머신을 최대로 활용할 수 있다.
특정 구성에서, 로봇(들) 또는 자동화 실행자(106)는, 각각이 특정 자동화 태스크 또는 활동에 전용되는 여러 컴포넌트로 분할, 분산 등이 수행될 수 있다. 로봇 컴포넌트들은 SCM 관리 로봇 서비스, 사용자 모드 로봇 서비스, 실행자, 에이전트, 커맨드 라인 등을 포함할 수 있다. SCM 관리 로봇 서비스는 Windows® 세션을 관리 또는 모니터링할 수 있으며 컨덕터(104)와 실행 호스트(즉, 로봇(들) 또는 자동화 실행자(106)가 실행되는 컴퓨팅 시스템) 사이의 프록시로서 기능할 수 있다. 이러한 서비스는 로봇(들) 또는 자동화 실행자(106)에 대한 크리덴셜로 신뢰되고 이를 관리할 수 있다.
사용자 모드 로봇 서비스는 Windows® 세션을 관리하고 모니터링할 수 있으며, 컨덕터(104)와 실행 호스트 사이의 프록시로서 기능할 수 있다. 사용자 모드 로봇 서비스는 로봇(130)에 대한 크리덴셜로 신뢰되고 이를 관리할 수 있다. Windows® 애플리케이션은 SCM 관리 로봇 서비스가 설치되지 않은 경우 자동으로 시작될 수 있다.
실행자는 Windows® 세션에서 주어진 작업(given jobs)을 실행할 수 있다(즉, 실행자는 작업 흐름을 실행할 수 있다). 실행자는 모니터마다의 인치당 도트 수(DPI) 설정을 인지할 수 있다. 에이전트는 시스템 트레이 윈도우에서 이용 가능한 작업을 표시하는 WPF (Windows® Presentation Foundation) 애플리케이션일 수 있다. 에이전트는 서비스의 클라이언트일 수 있다. 에이전트는 작업 시작 또는 중지 및 설정 변경을 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트일 수 있다. 커맨드 라인은 작업 시작을 요청할 수 있고 그 출력을 기다리는 콘솔 애플리케이션이다.
로봇(들) 또는 자동화 실행자(106)의 컴포넌트가 위에서 설명된 바와 같이 분할되는 구성은 개발자, 지원 사용자, 및 컴퓨팅 시스템이 각 컴포넌트에 의한 실행을 보다 쉽게 실행, 식별 및 추적하는 데 도움을 준다. 실행자와 서비스에 대해 서로 다른 방화벽 규칙을 설정하는 등의 방식으로 컴포넌트별로 특수한 행위가 구성될 수 있다. 실행자는 일부 실시예에서 모니터마다의 DPI 설정을 인지할 수 있다. 결과적으로, 작업 흐름은 작업 흐름을 생성한 컴퓨팅 시스템의 구성과는 관계없이 임의의 DPI에서 실행될 수 있다. 디자이너(102)로부터의 프로젝트는 또한 브라우저 줌 레벨과는 독립적일 수 있다. DPI를 인지하지 못하거나 의도적으로 인지하지 못하는 것으로 표시된 애플리케이션의 경우, DPI는 일부 실시예에서 디스에이블될 수 있다.
도 1b는 RPA 개발, 디자인, 작동, 또는 실행(120)의 다른 예시도이다. 스튜디오 컴포넌트 또는 모듈(122)은 로봇이 하나 이상의 활동(124)을 수행하기 위한 코드, 명령어, 커맨드 등을 생성하도록 구성될 수 있다. 사용자 인터페이스(UI) 자동화(126)는 하나 이상의 드라이버(들) 컴포넌트(128)를 사용하여 클라이언트 상에서 로봇에 의해 수행될 수 있다. 로봇은 컴퓨터 비전(CV) 활동 모듈 또는 엔진(130)을 사용하여 활동을 수행할 수 있다. 다른 드라이버(132)가 로봇에 의한 UI 자동화에 이용되어 UI의 요소를 획득할 수 있게 된다. 이들 드라이버는 OS 드라이버, 브라우저 드라이버, 가상 머신 드라이버, 엔터프라이즈 드라이버 등을 포함할 수 있다. 특정 구성에서, CV 활동 모듈 또는 엔진(130)은 UI 자동화에 사용되는 드라이버일 수 있다.
도 1c는 정보 또는 데이터를 통신하기 위한 버스(142) 또는 다른 통신 메커니즘, 및 처리를 위해 버스(142)에 연결된 하나 이상의 프로세서(144)를 포함할 수 있는 컴퓨팅 시스템 또는 환경(140)의 예시도이다. 하나 이상의 프로세서(들)(144)는 중앙 처리 유닛(CPU), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 그래픽 처리 유닛(GPU), 컨트롤러, 다중 코어 처리 유닛, 3 차원 프로세서, 양자 컴퓨팅 디바이스, 또는 이들의 임의의 조합을 포함하는 임의의 타입의 범용 또는 특정 목적 프로세서일 수 있다. 하나 이상의 프로세서(들)(144)는 또한 다수의 처리 코어를 가질 수 있고, 이들 코어 중 적어도 일부는 특정 기능을 수행하도록 구성될 수 있다. 다중 병렬 처리가 또한 구성될 수 있다. 또한, 적어도 하나 이상의 프로세서(들)(144)는 생물학적 뉴런을 모방하는 처리 요소를 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다.
메모리(146)는 프로세서(들)(144)에 의해 실행되거나 처리될 정보, 명령어, 커맨드, 또는 데이터를 저장하도록 구성될 수 있다. 메모리(146)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 솔리드 스테이트 메모리, 캐시, 정적 스토리지, 예컨대, 자기 또는 광 디스크, 또는 임의의 다른 타입의 비 일시적 컴퓨터 판독 가능 매체의 임의의 조합으로 구성될 수 있다. 비 일시적 컴퓨터 판독 가능 매체는 프로세서(들)(144)에 의해 액세스될 수 있는 임의의 매체일 수 있고 휘발성 매체, 비 휘발성 매체 등을 포함할 수 있다. 이들 매체는 또한 착탈식, 비 착탈식 등일 수 있다.
통신 디바이스(148)는 주파수 분할 다중 액세스(FDMA), 단일 캐리어 FDMA (SC-FDMA), 시분할 다중 액세스(TDMA), 코드 분할 다중 액세스(CDMA), 직교 주파수 분할 다중화(OFDM), 직교 주파수 분할 다중 액세스(OFDMA), GSM (Global System for Mobile) 통신, GPRS (General Packet Radio Service), UMTS (Universal Mobile Telecommunications System), cdma2000, 광대역 CDMA (W-CDMA), 고속 다운링크 패킷 액세스(HSDPA), 고속 업링크 패킷 액세스(HSUPA), 고속 패킷 액세스(HSPA), 롱텀에볼루션(LTE), LTE Advanced (LTE-A), 802.11x, Wi-Fi, Zigbee, UWB (Ultra-WideBand), 802.16x, 802.15, 홈 노드 B (HnB), 블루투스(Bluetooth), 무선 주파수 식별(RFID), 적외선 데이터 연결(IrDA), 근거리 통신(NFC), 5 세대(5G), 새로운 라디오(NR), 또는 하나 이상의 안테나를 통한 통신을 위한 임의의 다른 무선 또는 유선 디바이스/트랜시버로 구성될 수 있다. 안테나는 단일형, 어레이형, 위상형, 스위치형, 빔 포밍, 빔 스티어링 등일 수 있다.
하나 이상의 프로세서(들)(144)는 버스(142)를 통해 디스플레이 디바이스(150), 예를 들어, 플라즈마, 액정 디스플레이(LCD), 발광 다이오드(LED), 전계 방출 디스플레이(FED), 유기 발광 다이오드(OLED), 플렉시블 OLED, 플렉시블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고선명(high definition)(HD) 디스플레이, Retinaⓒ 디스플레이, 평면 내 스위칭(in-plane switching)(IPS) 등에 기반한 디스플레이에 추가로 연결될 수 있다. 디스플레이 디바이스(150)는 입력/출력(I/O)에 대해 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같은 저항성, 용량성, 표면 음향파(SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 좌절된 내부 전반사(frustrated total internal reflection) 등을 사용하는 터치, 3 차원(3D) 터치, 다중 입력 터치, 또는 다중 터치 디스플레이로 구성될 수 있다.
컴퓨팅 시스템 또는 환경(140)으로의 입력을 위해 키보드(152) 및 컨트롤 디바이스(154), 예컨대, 컴퓨터 마우스, 터치패드 등이 버스(142)에 추가로 연결될 수 있다. 또한, 입력은 컴퓨팅 시스템 또는 환경(140)에 그와 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 제공될 수 있거나, 컴퓨팅 시스템 또는 환경(140)은 자율적으로 동작할 수 있다.
메모리(146)는 하나 이상의 프로세서(들)(144)에 의해 실행되거나 처리될 때 기능성을 제공하는 소프트웨어 컴포넌트, 모듈, 엔진 등을 저장할 수 있다. 이것은 컴퓨팅 시스템 또는 환경(140)을 위한 OS(156)를 포함할 수 있다. 모듈은 애플리케이션 특정 프로세스 또는 그 파생물을 수행하기 위한 커스텀 모듈(158)을 더 포함할 수 있다. 컴퓨팅 시스템 또는 환경(140)은 추가 기능성을 포함하는 하나 이상의 추가 기능 모듈(160)을 포함할 수 있다.
컴퓨팅 시스템 또는 환경(140)은 서버, 임베디드 컴퓨팅 시스템, 퍼스널 컴퓨터, 콘솔, 개인 휴대 정보 단말기(PDA), 셀폰(cell phone), 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 디바이스, 클라우드 컴퓨팅 디바이스, 모바일 디바이스, 고정 모바일 디바이스, 스마트 디스플레이, 웨어러블 컴퓨터 등으로서 수행하도록 적응되거나 구성될 수 있다.
본원에 제공된 예에서, 모듈은 커스텀 초대규모 집적(very-largescale integration)VLSI 회로 또는 게이트 어레이, 로직 칩, 트랜지스터, 또는 다른 개별 컴포넌트와 같은 기성품 반도체들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래머블 게이트 어레이(field programmable gate arrays), 프로그래머블 어레이 로직(programmable array logic), 프로그래머블 로직 디바이스(programmable logic devices) 등과 같은 프로그래머블 하드웨어 디바이스로 구현될 수 있다.
모듈은 다양한 타입의 프로세서에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수 있다. 식별된 실행 가능 코드 유닛은, 예를 들어, 객체, 절차, 루틴, 서브 루틴, 또는 기능으로 조직화될 수 있는 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블럭을 포함할 수 있다. 식별된 모듈의 실행 파일들은 함께 위치하거나 또는 상이한 위치에 저장되어 논리적으로 함께 결합될 때 모듈을 포함하게 된다.
실행 가능한 코드의 모듈은 여러 상이한 코드 세그먼트를 통해, 상이한 프로그램들 사이에서, 여러 메모리 디바이스들에 걸쳐 분산된 단일 명령, 하나 이상의 데이터 구조, 하나 이상의 데이터 세트, 복수의 명령어 등일 수 있다. 동작 또는 기능의 데이터는 본원에서 모듈들 내에 식별되고 도시될 수 있으며, 적합한 형태로 구현될 수 있고 임의의 적합한 타입의 데이터 구조 내에 조직화될 수 있다.
본원에 주어진 예에서, 컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현으로 구성될 수 있다. 컴퓨터 프로그램은, 서로 동작 가능하게 통신하고 정보 또는 명령어를 전달하는 모듈로 구성될 수 있다.
도 2는 RPA를 위해 피드백 루프를 사용하는 재 트레이닝의 예시도이다. CV 모듈, 엔진, 또는 컴포넌트(202) 및 광학 문자 인식(OCR) 모듈 또는 엔진(204)은 로봇(206)으로부터 캡처된 이미지에서 발견된 요소, 버튼, 체크 박스를 대응하는 좌표 및 타입 정보와 함께 수신할 수 있다. 캡처된 이미지는 자동화를 위한 개발, 런타임 등에서 만들어진 클라이언트 상에서의 UI의 타겟화된 시각적 및 텍스트 부분의 스크린샷일 수 있다. 이들 이미지는 윈도우, 문서, 보고서, 영수증, 인보이스(invoice), 애플리케이션 등의 일부 또는 일부분일 수 있다. 이들 이미지는 구조적 또는 비 구조적 데이터를 포함할 수 있다. UI의 이미지는 자동화될 애플리케이션의 그래픽 사용자 인터페이스(Graphical User Interface)(GUI)를 포함할 수 있다.
로봇(206)은 CV 모듈, 엔진, 또는 컴포넌트(202)에 대한 UI의 이미지에서 타겟 또는 요소의 둘 이상의 앵커 포인트, 참조 포인트 등을 식별할 수 있다. 특정 구성에서, 제 1 앵커는 자동으로 선택될 수 있고, 만약 타겟 구역의 요소가 고유하지 않은 경우, 하나 이상의 추가 판별기 앵커에 대한 사용자 입력이 요청될 수 있다. 일 예로서, 두 개 이상의 앵커 포인트는 편집 박스와 체크 박스 사이의 관계를 결정하는 데 도움을 줄 수 있다. 특정 구성에서, 이 관계는, CV 모듈, 엔진, 또는 컴포넌트(202)가 체크 박스를 편집 박스 또는 라디오 버튼으로 잘못 식별하고, 그것을, 예컨대, ML 모델에서의 요소 크기 또는 포맷으로 인한 에러로 폐기하는 것을 방지할 수 있다.
로봇(206)은 또한 캡처된 UI 이미지 또는 스크린의 관계를 결정하는 것을 돕기 위해, 본 기술 분야의 통상의 기술자에게 이해되는 바와 같이, 텍스트 또는 텍스트 필드를 검출하는 OCR 모듈 또는 엔진(204)에 타겟 구역의 캡처된 이미지 또는 스크린샷을 송신할 수 있다. 텍스트 필드는 하나 이상의 텍스트 토큰을 포함할 수 있다. 텍스트 토큰은 공백, 구두점 문자, 특수 문자 등과 같은 사전 결정된 구분자 세트 사이에서 발견되는 하나 이상의 문자를 포함할 수 있다. 텍스트 토큰은 또한 숫자, 날짜, 이메일 주소, URI (Uniform Resource Identifier), 우편 번호 등을 포함할 수 있다.
RPA(200)를 위한 UI의 다중 앵커링에서, UI 이미지 내의 하나 이상의 앵커 또는 참조 포인트는 요소 식별, 시각화, 개발, 생성, 생산, 재생, 트레이닝, 재 트레이닝 등을 위한 기하학, 포지션, 위치, 좌표, 또는 이와 유사한 연관 또는 관계를 페어링 또는 생성하는 데 이용될 수 있다. 특정 구성에서, 다중 앵커링은 RPA 시스템에 의해, UI의 1 차 캡처에 대한 추가 또는 제 2 에러 체크 계층으로서 이용될 수 있다.
자동화를 위해 UI에서 앵커로 정의된 라벨 및 텍스트 필드는 관계로 연결되거나 관계를 형성할 수 있다. 일 예에서, 텍스트 필드는 타겟일 수 있고 라벨은 앵커일 수 있다. 일 예로서, UI에서 요소의 왼쪽에 제 1 이름 필드와 라벨이 고정되어 있고 제 1 이름 필드의 상부에는 고정된 제 2 이름 필드가 존재하는 관계가 있을 수 있다. RPA 개발 동안, 활동 또는 작업 흐름에 필요한 하나 이상의 요소에 대해 앵커 세트가 정의될 수 있다. 특정 구성에서, 타겟 요소와 함께, 요소 및 앵커는 런타임 동안과 같이 자동화를 위한 후속 실행에서 동일한 요소를 식별하는 데 사용될 수 있는 논리적 지문(logical fingerprint)으로서 작동할 수 있다.
도 3은 RPA(300)를 위한 UI의 다중 앵커링의 다른 예시도이다. 일 예로서, UI 내의 윈도우 또는 애플리케이션(302)은 필드들(3041-4)에 대한 라벨 1 내지 라벨 4, 버튼 1 (306), 버튼 2 (308), 및 최소화/최대화/닫기 컨트롤(310)을 포함할 수 있다. 윈도우 또는 애플리케이션(302)은 실질적으로 윈도우 또는 애플리케이션(320) 앞에 배향되거나 배치될 수 있다. 특정 구성에서, RPA(300)를 위한 UI의 다중 앵커링은 가상 머신 환경, 원격 데스크탑 등을 나타낼 수 있다. 그러나, RPA(300)를 위한 UI의 다중 앵커링은 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같은 다른 컴퓨팅 환경 또는 애플리케이션을 나타낼 수 있다. 예를 들어, 다중 앵커 구성은 PDF (Portable Document Format), Silverlight, Flash 등을 포함하는 활동에 적용될 수 있다.
앵커 X (312)는 버튼 2 (308)의 치수와 관련하여 좌표(x, y, 폭, 및 높이)를 포함할 수 있다. 특정 구성에서, 좌표은 UI의 구역 내의 요소들의 저장된 스크린 좌표일 수 있고, 런타임 동안 로봇(206)에 의해 모든 요소들 사이의 상대적 관계가 자동으로 추론될 수 있다. 또한, 런타임 동안 상대적 관계의 사용은 CV 모듈, 엔진, 또는 컴포넌트(202)와 함께 또는 없이 수행될 수 있다.
특정 구성에서, 좌표(x, y, 폭, 및 높이)는 바운딩 박스(bounding box)를 정의할 수 있다. 파라미터 x 및 y는 꼭지점의 좌표일 수 있고, w 및 h는 폭 및 높이일 수 있다. 타겟과 앵커 사이의 관계는 UI 또는 애플리케이션 구역에서 스케일, DPI 등의 변경 또는 변화에 대한 공차 또는 임계치 내에서 탄력적일 수 있다. 이미지 매칭 또는 선택기 기반 구성의 경우, CV를 사용하는 로봇은 작업 흐름 또는 활동을 자동화하기 위해 개발 중에 식별된 요소를 찾기 위해 동일한 구조가 필요할 수 있기 때문에 변경 또는 변화는 바람직하지 않거나 문제가 될 수 있다. 애플리케이션이 자동화 개발 중의 애플리케이션과 상이하면, 런타임 중에 로봇 또는 작업 흐름은 충돌(crash)할 수 있다.
윈도우 크기에 따라 컨텐츠를 리플로우하는 웹 페이지와 같이 동적 또는 "유동" 레이아웃을 가진 애플리케이션의 경우, 탄력성이 특히 바람직할 수 있다. 탄력성은 또한 가상 머신, 원격 머신, 또는 가상 데스크탑 환경의 비디오 스트림 또는 출력에 유리할 수 있다. 특정 구성에서, 기하학적 앵커 또는 참조 좌표 또는 각도가 비탄력적인 것이 바람직할 수 있다.
앵커 Y (314)는 버튼 1 (306)과 필드(3044) 사이의 기하학적 각도(θ) 관계 1을 측정함으로써 윈도우 또는 애플리케이션(302)에서의 요소 검출에 이용될 수 있다. 앵커 X (312) 및 앵커 Y (314)를 통한 다중 앵커링은 윈도우 또는 애플리케이션(302) 내의 요소가 자동화 개발 동안의 요소와 실질적으로 다르거나 변경되는 경우 런타임 동안 로봇 또는 작업 흐름의 충돌을 방지할 수 있다. 이것은 로봇(206) 및/또는 CV 모듈, 엔진, 또는 컴포넌트(202)에 의해 다수의 앵커를 사용하여 달성되어, 다른 스크린 요소와의 관계, 인터페이스에서의 위치, 관련 텍스트 라벨 등에 기반하여 스크린 요소를 고유하게 식별할 수 있게 된다.
앵커 X (312)는 버튼 2 (308)와 필드(3044) 사이의 거리(316) 관계 2를 결정하는 데 이용될 수 있다. 버튼 2 (308)와 필드(3044) 사이의 거리(316)는 상대적이거나 절대적일 수 있다. 관계 1 및 2는 작업 흐름, 활동 등의 런타임 실행 동안 로봇 생성 또는 재생성을 위한 OCR 결과와 함께 CV 모듈, 엔진, 또는 컴포넌트(202)에 의해 이용될 수 있다. 본원에 설명된 바와 같이, 검출된 요소의 실질적으로 모든 또는 서브 세트에 대한 결과는 또한 로봇(206)에 대한 각 요소의 신뢰도 레벨과 함께 제공되어 자동화에 대한 에러를 감소시키고 성능을 향상시킬 수 있다.
관계 1 또는 2는 또한 이미지 데이터베이스(208)를 업데이트하는 데 이용되어, 트레이닝 또는 재 트레이닝을 위한 ML 트레이닝 모듈, 엔진, 또는 컴포넌트(210)에 의한 모델을 업데이트할 수 있다. 관계 1 및 2 외에도, 텍스트 필드는 로봇에 의한 고유 식별을 위한 편집 박스와의 관계를 형성하도록 박스에 대한 앵커 또는 참조일 수 있다. 두 개의 이름 라벨 필드가 있는 구성에서, 하나의 텍스트 박스에 대해 두 개의 앵커가 이용될 수 있다.
도 4는 RPA(400)를 위한 UI의 다중 앵커링의 다른 예시도이다. 일 예로서, UI 내의 윈도우 또는 애플리케이션(402)은 필드들(4041-4)에 대한 라벨 1 내지 라벨 4, 버튼 1 (406), 및 버튼 2 (408)를 포함할 수 있다. 앵커 X (410)는 버튼 2 (408)의 치수와 관련하여 좌표(x, y, 폭, 및 높이)를 포함할 수 있고 UI에서의 스케일, DPI 등의 변경에 대해 탄력적일 수 있다. 파라미터 x 및 y는 꼭지점의 좌표일 수 있고, w 및 h는, 예를 들어, 버튼 1 (406) 또는 버튼 2 (408)의 폭 및 높이일 수 있다. 특정 구성에서, 기하학적 앵커 또는 참조 좌표 또는 각도가 본원에서 설명된 바와 같이, 탄력적이거나 비탄력적인 것이 바람직할 수 있다.
앵커 Y (412) 및 앵커 X (410)는 버튼 1 (406), 필드(4043), 및 필드(4044) 사이에 삼각형 관계를 형성함으로써 UI 내의 윈도우 또는 애플리케이션(402)에서의 요소 검출에 이용될 수 있다. 삼각형 관계는 버튼 1 (406), 필드(4043), 필드(4044)의 각도, 포지션, 또는 거리 기반 기하학적 구조를 결정함으로써 달성되거나 수행될 수 있다. 삼각형 관계는 작업 흐름, 활동 등의 런타임 실행 동안 로봇 생성 또는 재생성을 위한 OCR 결과와 함께 사용될 CV 모듈, 엔진, 또는 컴포넌트(202)에 의해 결정되거나 이용될 수 있다.
도 4a는 RPA(420)를 위한 UI의 다중 앵커링의 다른 예시도이다. 캡처된 UI의 예금 거래(422)를 갖는 애플리케이션에서, 다수의 앵커(4261-4264)는 요소(4242)를 식별하기 위한 관계(428)를 생성하도록 구성될 수 있다. 관계(428)는 다수의 앵커(4261-4264)에 기반한 요소(4242)에 대해 형성된 기하학적 구조 또는 요소(4242)까지 계산된 거리에 기반하여 결정될 수 있다. 특정 구성에서, 관계(428)는 자동화 생산, 런타임, 실행 등의 동안에 요소(4241 및 4243)로부터 요소(4242)를 구별하기 위해 이용될 수 있다. 특정 구성에서, CV 모듈, 엔진, 또는 컴포넌트(202)가 관계(428)를 결정하는 동안 앵커는 클라이언트에서 설정되거나 클라이언트에서 이용될 수 있다.
다중 앵커링의 다른 구성에서, 관계는 정사각형, 직사각형, 임의의 N-면 다각형과 같은 다른 형상을 사용하거나, 또는 본원에서 삼각형 관계에 대해 설명된 분석을 사용하는 임의의 다른 원하는 형상을 사용하여 형성될 수 있다. 각 요소 사이의 각도가 탄력적이도록 N-면 다각형이 형성될 수 있고, 모든 앵커를 연결하는 엣지에 의해 형성된 N-면 다각형은 스케일링될 수 있다. 특정 구성에서, 텍스트 필드는 로봇에 의한 식별을 위한 편집 박스와의 관계를 형성하도록 박스에 대한 앵커 또는 참조일 수 있다. 또한, 임의의 관계는 런타임 또는 실행 동안 요소를 찾거나 식별하기 위한 지문(fingerprint), 인상(impression), 템플릿(template) 등으로서 기능할 수 있다.
다시 도 2를 참조하면, CV 모듈, 엔진, 또는 컴포넌트(202)는 앵커 또는 참조 포인트 정보, 기하학적 구조 등을 포함하여 리턴된 결과를 처리하고, 검출된 요소의 실질적으로 모든 또는 서브 세트의 데이터 또는 정보를 이미지 데이터베이스(208)에 제공할 수 있다. 이미지 데이터베이스(208)는, 이미지(들)에서 캡처된 이미지 또는 요소의 서브 세트를 라벨링하거나 분류하고, 이를 고유한 식별 및 모델링, 트레이닝, 재 트레이닝, 심층 학습, 신경 네트워크 동작 등을 위한 ML 트레이닝 모듈, 엔진, 또는 컴포넌트(210)에 제공하도록 서버, 스튜디오 컴포넌트, 디자인 컴포넌트 등에 의해 이용될 수 있다. 모델 업데이트(212)는 디자인 또는 런타임 동작을 분석하기 위한 CV 모듈, 엔진, 또는 컴포넌트(202)에 제공되어, 복제, 에러를 감소시키거나, 위양성(false positive)을 감소시키거나, RPA 자동화 성능을 향상시킬 수 있다.
퍼지 매칭 또는 로직은 텍스트 필드, 텍스트 등의 OCR 엔진, 예를 들어, Google™ 클라우드 OCR, Microsoft™ OCR, Tessoract OCR™ 등에 의한 에러를 보상하기 위해 RPA(200)를 위한 다중 앵커링에 이용될 수 있다. 이미지 또는 이미지의 일부는 OCR 모듈 또는 엔진(204) 및 CV 모듈, 엔진, 또는 컴포넌트(202)에 송신될 수 있고 피드백은 UI 뷰의 재생성을 위해 검출된 타입 또는 요소와 함께 로봇(206)으로 송신될 수 있다. 일 예로서, 퍼지 매칭을 사용하면, 라벨 1 내지 라벨 4가 각각 이름 리스트에 할당될 수 있다. 퍼지 매칭을 사용하면, "NAM" 또는 "NME" 검출은 논리적으로 "NAME"과 연관되거나 매칭될 수 있다. 유사하게, 도 3에서 필드(3041-4)는 편집 박스 리스트에 각각 할당될 수 있다. 가능한 요소들의 리스트는 CV 모듈, 엔진, 또는 컴포넌트(202)에 의해 로봇(206)에 제공되어 관계를 수립할 수 있게 된다.
본원에 주어진 예에서, 예컨대, 앵커와 연관된 상대적 거리에 대한 임계치와의 기하학적 매칭은 UI의 RPA에 이용될 수 있다. 일 예로서, UI 이미지의 각 요소는 신뢰도, 임계치, 매칭 임계치, 공차 등과 관련될 수 있다. 매칭 등을 위한 임계치 미만의 요소의 가능한 매칭은 폐기될 수 있다. 다수의 앵커를 사용하면, 요소에 대한 가능한 관계 적합도(relationship fit)는 하나 이상의 요소의 위양성이 감소되도록 신뢰도 간격(confidence interval)(CI)을 이용할 수 있다.
일 예로서, 50 %, 60 %, 98 %의 CI 또는 임의의 파라미터 미만의 검출된 요소는 폐기될 수 있다. CI, 신뢰도 임계치, 공차 임계치 등은 트레이닝되거나 재 트레이닝될 수 있는 ML 또는 심층 학습 모델에 기반할 수 있다. 상이한 CI, 신뢰도 임계치, 공차 임계치, 또는 이와 유사한 레벨 또는 범위는 오케스트레이터에 의한 로봇 또는 복수의 로봇의 개발 또는 런타임 동안 UI 내의 요소들을 매칭시키는 데 이용될 수 있다.
매칭 임계치를 모두 만족하는 두 요소 중에서 선택할 필요가 있을 수 있는 로봇의 경우, 다중 앵커링과 함께 요소, 타입, 또는 신뢰도가 이용될 수 있다. 다수의 매칭이 있는 특정 구성에서, UI 내의 다수의 앵커는 분석 동안 요소를 고유하게 식별하기 위한 스텐실 또는 형상을 취할 수 있다. 다중 앵커링이 있는 특정 구성에서, 작업 흐름의 디자인 또는 개발 동안의 CV 결과에 가장 높은 신뢰도를 가진 선택된 UI 요소가 표시될 수 있는 반면, 런타임 동안에 UI에서의 요소의 모든 가능성이 로봇에 의한 작업 흐름 실행을 위해 CV에 의해 체킹될 수 있다.
본원에 주어진 예에서, 다수의 앵커의 기하학적 구조는 기하학적 임계치에 대한 더 작은 공차로 수평 또는 수직으로 스냅(snap)될 수 있다. 다른 요소와 수평 또는 수직으로 스냅되는 앵커는 다르게 처리될 수 있다. 예를 들어, 방향이 스냅 축에 대해 수직으로 얼마나 멀리 이동할 수 있는지에 대해 더 작은 공차가 허용될 수 있다. 버튼이 텍스트 필드, 텍스트, 라벨 등의 요소에 대한 앵커로 사용되는 경우, 런타임은, 그 요소에 대한 연결이 행해질 때 다른 낮은 가능성의 요소가 각각의 위치 또는 좌표에 연결될 수 있도록, 계층화될 수 있다.
도 5는 RPA(500)를 위한 UI의 다중 앵커링을 사용하는 프로세스의 예시도이다. 도 5에서, 동작들은 비 순차적으로 수행될 수 있고 도시되지 않은 서브 단계들이 또한 수행될 수 있다. UI 구역의 이미지는 RPA를 위한 로봇에 의해 캡처될 수 있다(502). 이미지의 분석 및 디스플레이 후, 캡처된 이미지 및 앵커는 CV 컴포넌트 및 OCR 엔진에 의해 사용될 수 있다(504). 특정 구성에서, 시스템은 선택된 요소 및 작업 흐름에 저장된 하나 이상의 앵커의 입력를 수신할 수 있다. 캡처된 이미지에서 UI의 앵커를 포함한 요소들 간의 기하학적 관계가 계산될 수 있다(506). 선택된 요소가 식별되지 않으면, 본원에 설명된 바와 같이 바운딩 박스를 사용한 선택이 요소 검출을 위해 사용될 수 있고, 모델은 ML에 대한 기하학적 관계를 사용하여 재 트레이닝될 수 있다(508). RPA 로봇에 의한 UI는 작업 흐름 또는 활동 실행을 위해 OCR 결과 및 기하학적 관계(510)를 사용하여 재생성될 수 있다.
ML을 다시 참조하면, CV 모델의 결과는 캡처된, 분석된, 스크랩된, 또는 저장된 모든 이미지에 대해, 이미지 내의 하나 이상의 요소에 대한 가능성 리스트, 및 정확도를 높이고, 위양성을 방지하고, 자동화 성능 등을 향상시키는 관련 ML 결정 확률 리스트를 포함할 수 있다. 이는 ML 트레이닝 모듈, 엔진, 또는 컴포넌트(210)에 의한 머신 트레이닝 또는 재 트레이닝을 위해 이미지 데이터베이스(208)를 송신하는 CV 모듈, 엔진, 또는 컴포넌트(202)에 의해 수행될 수 있다.
타겟 구역 주위에 바운딩 박스를 그려 UI 내의 요소가 제대로 식별되지 않을 경우 사용자가 개입할 수 있다. 캡처된 이미지는 런타임 동안 검색하기 위해 자동화 파일에 저장될 수 있다. 부가적으로, 특정 구성에서, 모델이 요소를 누락했다는 것을 사용자 개입이 나타내거나 시그널링할 수 있기 때문에 캡처된 이미지는 CV 모델을 재 트레이닝하는 데 이용될 수 있다.
또한, CV 모듈, 엔진, 또는 컴포넌트(202)가 누락된 버튼 또는 요소의 서브 세트를 검출하면, ML 트레이닝 모듈, 엔진, 또는 컴포넌트(210)에 의한 머신 트레이닝 또는 재 트레이닝을 위해 누락된 요소 보고서가 이미지 데이터베이스(208)로 자동 송신될 수 있다. ML 모델이 요소를 식별하지 못해 요소가 누락되었을 수 있다. 이 동작은 로봇(206)에 투명할 수 있다.
요소 식별을 위해, 가능한 요소의 리스트는 유사하고 대안적인 요소를 포함할 수 있다. 각각의 가능한 결과는 ML 또는 심층 학습 모델과 연관될 수 있는 통계적 CI와 또한 연관될 수 있다. 이것은 UI에서 객체를 선택하는 동안 또는 어떠한 선택도 없이 수행될 수 있다. 클릭, 사용자 입력, 이미지 왜곡 등으로 인해 요소가 잘못 식별되면, 다중 앵커 알고리즘은 하나 이상의 앵커를 사용하여 의도된 타겟 요소를 정확하게 결정할 수 있다. 예를 들어, 앵커 X 및 앵커 Y는, ML 엔진이 적어도 하나의 요소가 라디오 버튼이라고 믿는 경우에도, 체크 박스인 모든 요소를 검색하는 데 이용될 수 있다.
요소가 잘못 식별되면, 다른 요소가 분석을 위한 앵커로 사용될 수 있다. 예를 들어, 라디오 버튼은 가장 가능성 있는 매칭 항목으로서 체크 박스로 잘못 식별될 수 있다. 확률이 있는 순위가 매겨진 리스트에서, 가장 가능성이 높은 제 2 또는 제 3의 매칭 항목은 실제 또는 정확한 매칭 항목일 수 있다. 인근의 다른 라디오 버튼과 같은 다른 앵커를 추가하면, 주어진 컴포넌트가 확률 리스트에서 어떤 요소인지를 식별하는 데 도움이 될 수 있다.
자율 주행 차량 컴퓨팅 상황에 대해 본원에 주어진 동작의 다른 예로서, CV를 사용하여 도로 상의 물체를 검출하는 동안, 물체를 자전거로 잘못 식별하는 것을 방지하기 위해 "자전거에 사람이 없으면 자전거가 아니다"라는 기준 또는 규칙이 수립될 수 있다. 타겟 물체는 자전거일 수 있고 사람 및 도로는 앵커 또는 참조 포인트일 수 있다. 유사한 UI 상황에서, 필드는 타겟일 수 있고 버튼 및 필드 라벨은 앵커일 수 있다.
특징 및 요소가 특정 조합으로 위에서 설명되었지만, 본 기술 분야의 통상의 기술자는 각 특징 또는 요소가 단독으로 또는 다른 특징 및 요소와의 임의의 조합으로 사용될 수 있음을 이해할 것이다. 또한, 본원에 설명된 방법은 컴퓨터 또는 프로세서에 의해 실행하기 위해 컴퓨터 판독 가능 매체에 포함된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독 가능 매체의 예는 (유선 또는 무선 연결을 통해 송신된) 전자 신호 및 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체의 예는 판독 전용 메모리(read only memory)(ROM), 랜덤 액세스 메모리(random access memory)(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 착탈식 디스크와 같은 자기 매체, 자기 광 매체, CD-ROM 디스크와 같은 광학 매체, 및 디지털 다목적 디스크(digital versatile disks)(DVDs)를 포함하지만, 이에 제한되는 것은 아니다.

Claims (20)

  1. 컴퓨팅 디바이스로서,
    사용자 인터페이스(user interface)(UI)를 디스플레이하도록 구성된 디스플레이 디바이스;
    가상 또는 원격 머신 환경에서 로봇을 작동시켜 활동을 자동화하도록 구성되는 프로세서 ― 상기 로봇은 상기 UI의 캡처된 이미지에서 2 개 이상의 앵커를 이용함 ―; 및
    상기 2 개 이상의 앵커와 함께 상기 캡처된 이미지를 컴퓨터 비전(computer vision)(CV) 엔진에 송신하고, 상기 캡처된 이미지를 광학 문자 인식(optical character recognition)(OCR) 엔진에 송신하도록 구성되는 트랜시버를 포함하고,
    상기 트랜시버는 상기 OCR 엔진으로부터의 결과, 및 상기 캡처된 이미지의 구역에서 상기 2 개 이상의 앵커 및 타겟 요소와 관련된 라벨 및 텍스트 필드 요소의 기하학적 매칭에 기반하여 상기 CV 엔진에 의해 결정된 관계를 수신하도록 구성되고, 상기 기하학적 매칭은 신뢰도 간격(CI)과 연관되고,
    상기 로봇은 상기 관계에 기반하여 상기 UI 내의 상기 타겟 요소 상에서 상기 활동을 수행하는 것인 컴퓨팅 디바이스.
  2. 제1항에 있어서,
    상기 관계는 앵커링된 버튼과 상기 라벨 또는 텍스트 필드 사이의 기하학적 포지션을 정의하는 것인 컴퓨팅 디바이스.
  3. 제1항에 있어서,
    상기 캡처된 이미지는 상기 가상 또는 원격 머신 환경의 비디오 스트림으로부터 온 것인 컴퓨팅 디바이스.
  4. 제1항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지 내의 하나 이상의 요소들 간의 각도 또는 삼각형 배열체를 포함하는 것인 컴퓨팅 디바이스.
  5. 제1항에 있어서,
    상기 기하학적 매칭은 ML 모델에 기반하는 것인 컴퓨팅 디바이스.
  6. 제1항에 있어서,
    재 트레이닝은 상기 UI의 캡처된 이미지에서 검출된 누락 요소에 기반하여 수행되는 것인 컴퓨팅 디바이스.
  7. 제1항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지에서 요소들의 탄력적 또는 비탄력적인 기하학적 관계에 기반하는 것인 컴퓨팅 디바이스.
  8. 제1항에 있어서,
    상기 2 개 이상의 앵커 중 제 1 앵커는 제 1 버튼 상에 배치되고, 상기 2 개 이상의 앵커 중 제 2 앵커는 제 2 버튼 상에 배치되는 것인 컴퓨팅 디바이스.
  9. 컴퓨팅 디바이스에 의해 수행되는 방법으로서,
    상기 컴퓨팅 디바이스에 의해, 사용자 인터페이스(UI)를 디스플레이하는 단계;
    상기 컴퓨팅 디바이스에 의해, 가상 또는 원격 머신 환경에서 활동을 자동화하도록 로봇을 작동시키는 단계 ― 상기 로봇은 상기 UI의 캡처된 이미지에서 2 개 이상의 앵커를 이용함 ―;
    상기 컴퓨팅 디바이스에 의해, 상기 2 개 이상의 앵커와 함께 상기 캡처된 이미지를 컴퓨터 비전(CV) 엔진에 송신하고, 상기 컴퓨팅 디바이스에 의해, 상기 캡처된 이미지를 광학 문자 인식(OCR) 엔진에 송신하는 단계; 및
    상기 컴퓨팅 디바이스에 의해, 상기 OCR 엔진으로부터의 결과, 및 상기 캡처된 이미지의 구역에서 상기 2 개 이상의 앵커 및 타겟 요소와 관련된 라벨 및 텍스트 필드 요소의 기하학적 매칭에 기반하여 상기 CV 엔진에 의해 결정된 관계를 수신하는 단계 ― 상기 기하학적 매칭은 신뢰도 간격(CI)과 연관됨 ― 를 포함하고,
    상기 로봇은 상기 관계에 기반하여 상기 UI 내의 상기 타겟 요소 상에서 상기 활동을 수행하는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  10. 제9항에 있어서,
    상기 관계는 앵커링된 버튼과 상기 라벨 또는 텍스트 필드 사이의 기하학적 포지션을 정의하는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  11. 제9항에 있어서,
    상기 캡처된 이미지는 상기 가상 또는 원격 머신 환경의 비디오 스트림으로부터 온 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  12. 제9항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지 내의 하나 이상의 요소들 간의 각도 또는 삼각형 배열체를 포함하는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  13. 제9항에 있어서,
    상기 기하학적 매칭은 ML 모델에 기반하는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  14. 제9항에 있어서,
    재 트레이닝은 상기 UI의 캡처된 이미지에서 검출된 누락 요소에 기반하여 수행되는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  15. 제9항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지에서 요소들의 탄력적 또는 비탄력적인 기하학적 관계에 기반하는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  16. 제9항에 있어서,
    상기 2 개 이상의 앵커 중 제 1 앵커는 제 1 버튼 상에 배치되고, 상기 2 개 이상의 앵커 중 제 2 앵커는 제 2 버튼 상에 배치되는 것인 컴퓨팅 디바이스에 의해 수행되는 방법.
  17. 컴퓨팅 디바이스로서,
    가상 또는 원격 머신 환경에서 로봇을 작동시켜 활동을 자동화하도록 구성되는 프로세서 ― 상기 로봇은 사용자 인터페이스(UI)의 캡처된 이미지에서 2 개 이상의 앵커를 이용함 ―; 및
    상기 2 개 이상의 앵커와 함께 상기 캡처된 이미지를 컴퓨터 비전(CV) 엔진에 송신하도록 구성되는 트랜시버를 포함하고,
    상기 트랜시버는 상기 캡처된 이미지의 구역에서 상기 2 개 이상의 앵커 및 타겟 요소와 관련된 라벨 및 텍스트 필드 요소의 기하학적 매칭에 기반하여 상기 CV 엔진에 의해 결정된 관계를 수신하도록 구성되고, 상기 기하학적 매칭은 신뢰도 간격(CI)과 연관되고,
    상기 로봇은 상기 관계에 기반하여 상기 UI 내의 상기 타겟 요소 상에서 상기 활동을 수행하는 것인 컴퓨팅 디바이스.
  18. 제17항에 있어서,
    상기 관계는 앵커링된 버튼과 상기 라벨 또는 텍스트 필드 사이의 기하학적 포지션을 정의하는 것인 컴퓨팅 디바이스.
  19. 제17항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지 내의 하나 이상의 요소들 간의 각도 또는 삼각형 배열체를 포함하는 것인 컴퓨팅 디바이스.
  20. 제17항에 있어서,
    상기 기하학적 매칭은 상기 UI의 캡처된 이미지에서 요소들의 탄력적 또는 비탄력적인 기하학적 관계에 기반하는 것인 컴퓨팅 디바이스.
KR1020200088891A 2019-07-19 2020-07-17 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습 KR102356950B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220008654A KR20220013450A (ko) 2019-07-19 2022-01-20 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/516,998 US10936351B2 (en) 2019-07-19 2019-07-19 Multi-anchor based extraction, recognition, and machine learning of user interface (UI)
US16/516,998 2019-07-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220008654A Division KR20220013450A (ko) 2019-07-19 2022-01-20 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습

Publications (2)

Publication Number Publication Date
KR20210010833A true KR20210010833A (ko) 2021-01-28
KR102356950B1 KR102356950B1 (ko) 2022-02-07

Family

ID=71670169

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200088891A KR102356950B1 (ko) 2019-07-19 2020-07-17 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습
KR1020220008654A KR20220013450A (ko) 2019-07-19 2022-01-20 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220008654A KR20220013450A (ko) 2019-07-19 2022-01-20 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습

Country Status (5)

Country Link
US (3) US10936351B2 (ko)
EP (1) EP3767449B1 (ko)
JP (2) JP7104107B2 (ko)
KR (2) KR102356950B1 (ko)
CN (2) CN114661400B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11830605B2 (en) * 2013-04-24 2023-11-28 Koninklijke Philips N.V. Image visualization of medical imaging studies between separate and distinct computing system using a template
US10936351B2 (en) * 2019-07-19 2021-03-02 UiPath, Inc. Multi-anchor based extraction, recognition, and machine learning of user interface (UI)
US11074063B2 (en) * 2019-09-10 2021-07-27 International Business Machines Corporation Automatic upgrade of robotic process automation using a computer
US11054960B1 (en) * 2019-12-30 2021-07-06 UiPath Inc. Fuzzy target selection for robotic process automation
US11232170B1 (en) * 2020-09-08 2022-01-25 UiPath, Inc. Application-specific graphical element detection
US11507259B2 (en) 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US11543930B2 (en) * 2020-11-10 2023-01-03 RealFar Ltd Augmenting web applications with optimized workflows supporting user interaction
US20220237404A1 (en) * 2021-01-25 2022-07-28 Sap Se Surface automation in black box environments
GB2609947A (en) * 2021-08-18 2023-02-22 Blue Prism Ltd Systems and methods for determining GUI in interaction information for an end user device
CN113495775B (zh) * 2021-09-07 2021-12-03 长沙博为软件技术股份有限公司 Rpa定位控件元素的组合定位系统、方法、设备及介质
US20230108015A1 (en) * 2021-10-05 2023-04-06 UiPath, Inc. Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
US20230107316A1 (en) 2021-10-05 2023-04-06 UiPath, Inc. Automatic data transfer between a source and a target using semantic artificial intelligence for robotic process automation
CN114035726B (zh) * 2021-10-19 2023-12-22 四川新网银行股份有限公司 一种机器人流程自动化页面要素识别过程的方法及系统
CN114461122B (zh) * 2022-04-12 2022-07-19 杭州实在智能科技有限公司 Rpa元素拾取同屏切换方法及系统
CN115495055B (zh) * 2022-11-03 2023-09-08 杭州实在智能科技有限公司 基于界面区域识别技术的rpa元素匹配方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140118239A1 (en) * 2012-10-25 2014-05-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
US20150242306A1 (en) * 2014-02-25 2015-08-27 International Business Machines Corporation System and method for creating change-resilient scripts
WO2018128930A1 (en) * 2017-01-09 2018-07-12 Snap Inc. Augmented reality object manipulation
JP2018206288A (ja) * 2017-06-09 2018-12-27 富士ゼロックス株式会社 情報処理装置及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070172130A1 (en) * 2006-01-25 2007-07-26 Konstantin Zuev Structural description of a document, a method of describing the structure of graphical objects and methods of object recognition.
US8126907B2 (en) * 2004-08-03 2012-02-28 Nextengine, Inc. Commercial shape search engine
US20090063946A1 (en) 2007-08-29 2009-03-05 International Business Machines Corporation Anchor store for transmitting multiple dynamic anchors
US20100138775A1 (en) 2008-11-28 2010-06-03 Sharon Kohen Method, device and system, for extracting dynamic content from a running computer application
US9245043B2 (en) * 2009-12-23 2016-01-26 Fuji Xerox Co., Ltd. Embedded media markers and systems and methods for generating and using them
WO2012154159A1 (en) 2011-05-06 2012-11-15 Hewlett-Packard Development Company, L.P. Image-based automation systems and methods
US20140285519A1 (en) * 2013-03-22 2014-09-25 Nokia Corporation Method and apparatus for providing local synchronization of information for augmented reality objects
AU2014277851A1 (en) 2014-12-22 2016-07-07 Canon Kabushiki Kaisha Detecting a gap between text columns from text line fragments
US9870623B2 (en) * 2016-05-14 2018-01-16 Google Llc Segmenting content displayed on a computing device into regions based on pixels of a screenshot image that captures the content
US20180157386A1 (en) 2016-12-05 2018-06-07 Jiawen Su System and Method for detection, exploration, and interaction of graphic application interface
US10409712B2 (en) * 2016-12-30 2019-09-10 Accenture Global Solutions Limited Device based visual test automation
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US10600205B2 (en) * 2018-01-08 2020-03-24 Htc Corporation Anchor recognition in reality system
CN109492583A (zh) * 2018-11-09 2019-03-19 安徽大学 一种基于深度学习的车辆重识别方法
US10936351B2 (en) * 2019-07-19 2021-03-02 UiPath, Inc. Multi-anchor based extraction, recognition, and machine learning of user interface (UI)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140118239A1 (en) * 2012-10-25 2014-05-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
US20150242306A1 (en) * 2014-02-25 2015-08-27 International Business Machines Corporation System and method for creating change-resilient scripts
WO2018128930A1 (en) * 2017-01-09 2018-07-12 Snap Inc. Augmented reality object manipulation
JP2018206288A (ja) * 2017-06-09 2018-12-27 富士ゼロックス株式会社 情報処理装置及びプログラム

Also Published As

Publication number Publication date
US11983379B2 (en) 2024-05-14
EP3767449A1 (en) 2021-01-20
US20210182089A1 (en) 2021-06-17
CN114661400A (zh) 2022-06-24
US10936351B2 (en) 2021-03-02
JP7104107B2 (ja) 2022-07-20
JP2022109927A (ja) 2022-07-28
CN112241302B (zh) 2022-04-12
US11487563B2 (en) 2022-11-01
KR102356950B1 (ko) 2022-02-07
EP3767449B1 (en) 2023-08-02
CN112241302A (zh) 2021-01-19
CN114661400B (zh) 2023-12-01
US20230051443A1 (en) 2023-02-16
KR20220013450A (ko) 2022-02-04
JP2021018820A (ja) 2021-02-15
US20210019157A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
KR102356950B1 (ko) 사용자 인터페이스(ui)의 다중 앵커 기반 추출, 인식, 및 머신 학습
JP7034217B2 (ja) ロボティックプロセスオートメーション用のコンピュータビジョンモデルの再訓練
US11599775B2 (en) Detecting user interface elements in robotic process automation using convolutional neural networks
KR20220079834A (ko) 로봇 프로세스 자동화를 위한 인공 지능 계층 기반 프로세스 추출
US20230168654A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
US11782733B2 (en) Training an artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision
US11507772B2 (en) Sequence extraction using screenshot images
EP3909722A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant