KR102294578B1 - 로봇 프로세스 자동화를 위한 객체 탐지 시스템 - Google Patents

로봇 프로세스 자동화를 위한 객체 탐지 시스템 Download PDF

Info

Publication number
KR102294578B1
KR102294578B1 KR1020190174743A KR20190174743A KR102294578B1 KR 102294578 B1 KR102294578 B1 KR 102294578B1 KR 1020190174743 A KR1020190174743 A KR 1020190174743A KR 20190174743 A KR20190174743 A KR 20190174743A KR 102294578 B1 KR102294578 B1 KR 102294578B1
Authority
KR
South Korea
Prior art keywords
reference object
script
image
unit
automation
Prior art date
Application number
KR1020190174743A
Other languages
English (en)
Other versions
KR20210082622A (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 주식회사 포스코아이씨티
Priority to KR1020190174743A priority Critical patent/KR102294578B1/ko
Publication of KR20210082622A publication Critical patent/KR20210082622A/ko
Application granted granted Critical
Publication of KR102294578B1 publication Critical patent/KR102294578B1/ko

Links

Images

Classifications

    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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

Abstract

로봇 프로세스 자동화에서 사용되는 객체를 정확하게 탐지할 수 있는 본 발명의 일 측면에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템은, 로봇 프로세스 자동화(Robot Process Automation)를 통해 자동으로 수행될 업무가 정의된 자동화 스크립트(Script)를 실행하는 스크립트 실행부; 및 상기 업무의 수행을 위해 실행될 기준객체의 정보를 기초로 상기 로봇 프로세스 자동화가 수행될 단말기 상에서 상기 기준객체와 동일한 타겟객체를 탐지하여 활성화시키는 객체 탐지부를 포함하고, 상기 객체 탐지부는 상기 단말기에 포함된 객체들 중 상기 기준객체의 속성정보 및 계층적 구조정보를 기초로 생성된 고유값, 상기 기준객체의 이미지, 및 상기 기준객체의 정형화된 변형 이미지 중 적어도 하나가 동일한 객체를 상기 타겟객체로 결정하는 것을 특징으로 한다.

Description

로봇 프로세스 자동화를 위한 객체 탐지 시스템{System for Searching Object for Robot Process Automation}
본 발명은 로봇 프로세스 자동화에 관한 것으로서, 보다 구체적으로 로봇 프로세스 자동화를 위한 객체 탐지에 관한 것이다.
정보통신 기술이 발달함에 따라 컴퓨터를 사용하여 처리하는 업무(이하 "컴퓨팅 업무"라 함)가 크게 증가하게 되었으며, 컴퓨터를 사용하여 일정한 패턴으로 반복 처리하는 업무도 증가하게 되었다.
이에 따라, 반복적으로 수행되는 정형화된 업무를 사용자의 관여 없이 자동으로 처리해 줄 수 있는 로봇 프로세스 자동화(Robot Process Automation: RPA, 이하, 'RPA'라 함) 솔루션이 제안된 바 있다.
RPA는 사용자의 업무 패턴을 녹화하여 자동화 자동화 스크립트(Script)로 저장 후 재생함으로써 사용자의 업무를 대신하게 하는 솔루션으로서, 메일 클라이언트 등 여러 가지 업무용 소프트웨어가 설치된 사용자의 컴퓨터에 로봇(소프트웨어)를 설치하여, 반복적이거나 정형화된 업무를 자동화 자동화 스크립트로 작성하여 재실행하는 소프트웨어를 의미한다.
일반적인 RPA 솔루션에서는 사용자의 반복적인 업무를 자동화하기 위해, 사용자가 업무를 수행할 때 사용한 객체(Object) 및 동작을 기록하고, 업무 자동 실행시 동일한 객체를 탐지함으로써 동일한 동작이 수행될 수 있도록 하여 업무를 자동으로 수행한다.
이때, 탐지 대상이 되는 객체의 예로 도 1에 도시된 바와 같은 윈도우 컨트롤 메뉴(Window Control Menu)가 있다. 윈도우 컨트롤 메뉴는 도 1a에 도시된 바와 같은 버튼(Button), 도 1b에 도시된 바와 같은 레디오 버튼(Radio Button), 도 1c에 도시된 바와 같은 콤보박스(Combo Box), 도 1d에 도시된 바와 같은 텍스트 에디트(Text Edit), 도 1e에 도시된 바와 같은 슬라이더(Slider), 또는 도 1f에 도시된 바와 같은 체크박스(Check Box) 등을 포함할 수 있다.
상술한 바와 같은 객체를 얼마나 정확하게 탐지하는지에 따라 자동화 적용 가능한 업무 범위가 달라지기 때문에, 객체의 탐지 성능은 RPA 솔루션에 있어 매우 중요한 요소 중 하나이다.
따라서, RPA 솔루션의 적용 범위 확장을 위해 객체를 정확하게 탐지할 수 있는 방법의 개발이 요구된다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 로봇 프로세스 자동화에서 사용되는 객체를 정확하게 탐지할 수 있는 로봇 프로세서 자동화를 위한 객체 탐지 시스템을 제공하는 것을 그 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템은, 로봇 프로세스 자동화(Robot Process Automation)를 통해 자동으로 수행될 업무가 정의된 자동화 스크립트(Script)를 실행하는 스크립트 실행부; 및 상기 업무의 수행을 위해 실행될 기준객체의 정보를 기초로 상기 로봇 프로세스 자동화가 수행될 단말기 상에서 상기 기준객체와 동일한 타겟객체를 탐지하여 활성화시키는 객체 탐지부를 포함하고, 상기 객체 탐지부는 상기 단말기에 포함된 객체들 중 상기 기준객체의 속성정보 및 계층적 구조정보를 기초로 생성된 고유값, 상기 기준객체의 이미지, 및 상기 기준객체의 정형화된 변형 이미지 중 적어도 하나가 동일한 객체를 상기 타겟객체로 결정하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 다른 측면에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템은, 적어도 하나의 이벤트로 구성된 태스크 및 적어도 하나의 태스크로 구성된 프로세스를 설정하며, 상기 태스크 및 상기 프로세스 수행을 위한 자동화 스크립트를 생성하는 적어도 하나의 스크립트 생성부; 상기 태스크를 구성하는 적어도 하나의 이벤트를 실행하여 상기 자동화 스크립트를 실행하는 적어도 하나의 스크립트 실행부; 상기 태스크 또는 프로세스의 수행을 위해 실행될 기준객체의 속성정보 및 계층적 구조정보를 기초로 생성된 고유값, 상기 기준객체의 이미지, 및 상기 기준객체의 정형화된 변형 이미지 중 적어도 하나를 기초로 상기 로봇 프로세스 자동화가 수행될 단말기 상에서 상기 기준객체와 동일한 타겟객체를 탐지하여 활성화시키는 적어도 하나의 객체 탐지부; 및 상기 적어도 하나의 스크립트 실행부와 연동되어 상기 자동화 스크립트의 실행을 제어하는 적어도 하나의 제어부를 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명에 따르면, 기준객체 별로 부여된 고유값 기반으로1차적으로 객체를 탐지하고 탐지 실패시 기준객체의 이미지를 기반으로 2차적으로 객체를 탐지할 수 있기 때문에 객체의 고유값이 변경되는 경우에도 객체의 이미지를 기반으로 객체를 정확하게 탐지할 수 있다는 효과가 있다.
또한, 본 발명에 따르면 기준객체의 이미지를 기반으로 객체 탐지시, 기준객체의 정형화된 변형을 예측함에 의해 생성된 정형화된 변형 이미지를 추가로 이용하여 객체를 탐지할 수 있기 때문에 객체의 외형이 변경된 경우에도 객체탐지 정확도를 극대화시킬 수 있다는 효과가 있다.
도 1은 일반적인 윈도우 컨트롤 메뉴의 예를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 로봇 프로세스 자동화를 위한 객체 탐지 시스템의 구성을 보여주는 블록도이다.
도 3은 도 2에 도시된 객체정보 활성화부의 구성을 보여주는 블록도이다.
도 4는 객체 선택부에 의한 기준객체 선택의 예를 보여주는 도면이다.
도 5a는 기준객체의 계층적 구조정보에 포함되는 트리구조의 예를 보여주는 도면이다.
도 5b는 기준객체의 고유값 생성에 이용되는 소속정보의 예를 보여주는 도면이다.
도 5c는 XML 형태의 고유값의 예를 보여주는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 로봇 프로세스 자동화를 위한 객체 탐지 시스템의 구성을 보여주는 블록도이다.
명세서 전체에 걸쳐서 동일한 참조번호들은 실질적으로 동일한 구성요소들을 의미한다. 이하의 설명에서, 본 발명의 핵심 구성과 관련이 없는 경우 및 본 발명의 기술분야에 공지된 구성과 기능에 대한 상세한 설명은 생략될 수 있다. 본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
본 명세서에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성 요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
위치 관계에 대한 설명일 경우, 예를 들어, '~상에', '~상부에', '~하부에', '~옆에' 등으로 두 부분의 위치 관계가 설명되는 경우, '바로' 또는 '직접'이 사용되지 않는 이상 두 부분 사이에 하나 이상의 다른 부분이 위치할 수도 있다.
시간 관계에 대한 설명일 경우, 예를 들어, '~후에', '~에 이어서', '~다음에', '~전에' 등으로 시간적 선후 관계가 설명되는 경우, '바로' 또는 '직접'이 사용되지 않는 이상 연속적이지 않은 경우도 포함할 수 있다.
제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3 항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미할 수 있다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하고, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템의 구성을 개략적으로 보여주는 블록도이다. 도 2에 도시된 바와 같이, 로봇 프로세서 자동화를 위한 객체 탐지 시스템(200)은 스크립트 생성부(210), 스크립트 실행부(220), 객체 탐지부(230)를 포함한다.
스크립트 생성부(210)는 로봇 프로세스 자동화(Robot Process Automation: RPA, 이하 'RPA'라 함)스크립트(Script)를 생성한다. 자동화 스크립트란 사용자가 수행하는 반복적이거나 정형화된 업무를 로봇이 대신하여 자동으로 수행할 수 있도록 하기 위해 작성되는 문서를 의미한다. 로봇에 의해 자동화 스크립트가 실행됨으로써, 사용자가 수행해야 하는 업무가 사용자가 수행하는 것과 동일하게 재현될 수 있게 된다.
일 실시예에 있어서, 스크립트 생성부(210)는 자동화 스크립트 생성을 위해 사용자에게 스크립터 생성을 위한 툴(예컨대, 자동화 스크립트 에디터)을 제공하고, 사용자는 스크립터 에디터를 통해 프로세스Process), 태스크(Task), 및 이벤트(Event) 중 적어도 하나를 구체적으로 설정한 후 디버깅(Debugging)을 수행함으로써 자동화 스크립트를 생성할 수 있게 된다.
일 실시예에 있어서, 자동화 스크립트를 통해 설정되는 이벤트(Event)란 사용자가 특정 객체(Object)에 대해 임의의 동작(Action)을 하거나 또는 사용자의 의지와 관계없이 운영체제(Operating System: OS)가 발생시키는 사건을 의미하는 것으로서, 윈도우 오브젝트 검출, 웹 오브젝트 검출, UI(User Interface) 개체 검출, 이미지 검출, OCR(Optical Character Reader) 검출, 키(Key) 입력, 또는 마우스 입력 등을 포함할 수 있다.
또한, 자동화 스크립트를 통해 설정되는 태스크(Task)란 하나 이상의 이벤트로 구성된 사용자의 단위 실행동작을 의미하고, 프로세스(Process)란 하나 이상의 태스크로 구성된 사용자의 단위 컴퓨팅 업무를 의미한다.
이를 위해, 스크립트 생성부(20)는 도 2 도시된 바와 같이, 프로세스 설정부(212), 태스크 설정부(214), 객체정보 설정부(216), 및 스크립트 제작부(218)를 포함할 수 있다.
프로세스 설정부(212)는 사용자에게 프로세스를 설정하고 편집할 수 있는 기능을 제공한다. 예컨대, 프로세스 설정부(212)는 사용자에게 프로세스를 설정하고 편집할 수 있는 프로세스 에디터를 제공하고, 사용자는 프로세스 에디터를 통해 하나 이상의 태스크를 생성하거나 선택하고 이에 대한 속성, 실행조건, 실행순서 등을 결정하여 프로세스를 설정한다. 이를 위해, 프로세스 에디터는 하나 이상의 태스크의 생성을 관리하는 태스크 생성 관리자, 하나 이상의 태스크의 속성을 관리하는 태스크 속성 관리자, 하나 이상의 태스크의 상호 연결을 관리하는 태스크 연결관리자 등을 포함할 수 있다.
이러한 실시예에 따르는 경우 사용자는 프로세스 설정부(212)에 의해 제공되는 프로세스 에디터를 통해 하나 이상의 태스크를 생성하고 이들의 속성, 실행조건, 실행순서 등을 설정한다. 일 실시예에 있어서, 태스크의 속성은 태스크의 명칭, 입력자료, 입력방법, 출력자료, 출력방법, 처리시간, 및 지연시간 중 적어도 하나가 될 수 있으며, 실행조건은 기 설정된 선행 태스크가 종료되면 실행, 기 설정된 입력자료가 수신되면 실행, 및 기 설정된 실행시각에 실행 중 적어도 하나를 포함할 수 있다. 실행순서는 각각의 태스크가 연속적으로 입력 및 출력 관계가 되어 복수개의 태스크가 상호 연결됨으로써 하나의 프로세스가 생성될 수 있다.
태스크 설정부(214)는 사용자에게 태스크를 설정하고 편집할 수 있는 기능을 제공한다. 예컨대, 태스크 설정부(214)는 사용자에게 태스크를 설정하고 편집할 수 있는 태스크 에디터를 제공하고, 사용자는 태스크 에디터를 통해 하나 이상의 이벤트를 생성하거나 선택하고 이에 대한 속성, 실행조건, 실행순서 등을 결정하여 태스크를 설정한다. 이를 위해, 태스크 에디터는 하나 이상의 이벤트의 생성을 관리하는 이벤트 생성 관리자, 하나 이상의 이벤트의 속성을 관리하는 이벤트 속성 관리자, 하나 이상의 이벤트의 상호 연결을 관리하는 이벤트 연결 관리자 등을 포함할 수 있다.
이러한 실시예에 따르는 경우, 사용자는 태스크 설정부(214)에 의해 제공되는 태스크 에디터를 통해 하나 이상의 이벤트를 생성하고 이들의 속성, 실행조건, 실행순서 등을 설정한다. 일 실시예에 있어서, 이벤트의 속성은 이벤트의 명칭, 대상(예; 텍스트, 이미지, 오브젝트, 파일), 실행방법(예; 오브젝트 검출, 키 입력, 마우스 입력), 실행결과(예; 단순 실행, 텍스트 저장, 이미지 저장, 파일 생성), 및 실행시간 중 적어도 하나를 포함할 수 있고, 실행조건은 기 설정된 선행 이벤트가 종료되면 실행, 기 설정된 선행 이벤트가 종료되면 일정 시간 경과 후 실행, 및 기 설정된 실행시각에 실행 중 적어도 하나를 포함할 수 있다. 실행순서는 각각의 이벤트가 연속적으로 입력 및 출력 관계가 되어 복수개의 이벤트가 상호 연결됨으로써 하나의 태스크가 생성될 수 있다.
일 실시예에 있어서, 상술한 프로세스 설정부(212)와 태스크 설정부(214)는 사용자가 프로세스와 태스크를 실행하는 행동 패턴을 레코딩하여 프로세스 레코딩 자료와 태스크 레코딩 자료(참고로, 컴퓨팅 환경 정보가 반영됨)를 생성하고, 프로세스/태스크 레코딩 자료에 기초하여 프로세스와 태스크의 속성, 실행조건, 실행순서 등을 추출할 수 있다.
객체정보 설정부(216)는 프로세스 설정부(212)를 통해 생성되는 태스크 또는 태스크 설정부(214)를 통해 생성되는 이벤트에 포함될 객체(이하, '기준객체'라 함)에 대한 정보를 설정한다. 일 실시예에 있어서, 객체정보 설정부(216)에 의해 설정되는 기준객체는 사용자와 단말기 간의 상호 작용을 위한 윈도우 컨트롤 메뉴(Window Control Menu)일 수 있다. 이러한 실시예에 따르는 경우, 윈도우 컨트롤 메뉴는, 도 1에 도시된 바와 같이, 버튼(Button), 레디오 버튼(Radio Button), 콤보박스(Combo Box), 텍스트 에디트(Text Edit), 슬라이더(Slider), 또는 체크박스(Check Box) 중 적어도 하나를 포함할 수 있다.
이하, 태스크 또는 이벤트에 포함될 기준객체의 정보를 설정하는 본 발명에 따른 객체정보 설정부(216)의 구성을 도 3을 참조하여 보다 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 객체정보 설정부의 구성을 개략적으로 보여주는 블록도이다. 도 3에 도시된 바와 같이, 객체정보 설정부(216)는 객체 선택부(310), 객체정보 획득부(320), 고유값 산출부(330), 이미지 생성부(340), 및 예측이미지 생성부(350)를 포함한다.
객체 선택부(310)는 자동화 스크립트를 구성하는 태스크 또는 이벤트에 포함될 기준객체를 선택한다. 구체적으로, 객체 선택부(310)는 RPA를 이용해서 자동화 스크립트를 작성하고자 하는 사용자가 자동화 대상이 되는 업무 설정을 위해 필요한 기준객체를 선택한다. 이를 위해, 객체 선택부(310)는 사용자에게 기준객체를 선택할 수 있는 인터페이스(미도시)를 제공할 수 있다.
구체적으로, 사용자가 화면상에서 자동화 스크립트에 포함시키기 원하는 객체 상에 마우스의 포인터를 위치시키게 되면, 객체 선택부(310)는 단말기에 설치된 운영체제(Operating System: OS) 또는 응용프로그램 프로그래밍 인터페이스(Application Programming Interface: API)를 통해 마우스 포인터가 위치하고 있는 영역(이하, '포인터 영역'이라 함)의 정보를 획득한다.
일 예로, 도 4에 도시된 바와 같이, 사용자가 자동화 스크립트 생성을 위해 시작버튼(미도시)을 선택한 후 마우스 포인터(410)를 이동시키면서 선택할 객체(420) 상에 마우스 포인터를 위치시키면, 객체 선택부(310)는 마우스 포인터가 위치된 포인터 영역의 정보를 운영체제 또는 API로부터 획득한다.
이후, 객체 선택부(310)는 포인트 영역의 정보에 대응되는 영역 중 객체가 차지고 있는 영역을 미리 정해진 UI를 통해 단말기 상에 표시함으로써 사용자가 기준객체를 선택할 수 있도록 한다. 예컨대, 상술한 도 4에 도시된 예에서, 객체 선택부(310)는 마우스 포인터가 위치하는 포인터 영역을 미리 정해진 인터페이스(일 예로 빨간색 테두리 표시, 430)로 표시하고, 사용자에 의해 포인터 영역 상에서 마우스 클릭이 발생되면 해당 포인터 영역 전체 또는 해당 포인터 영역 내에 포함된 특정 객체를 기준객체로 선택할 수 있다.
객체 선택부(310)는 기준객체의 선택이 완료되면, 기준객체 선택의 완료를 객체정보 획득부(320)로 전송한다.
객체정보 획득부(320)는 객체 선택부(310)로부터 기준객체 선택완료가 통지되면, 운영체제로부터 기준객체의 정보를 획득한다.
일 실시예에 있어서, 객체정보 획득부(320)는 기준객체의 정보로써, 기준객체가 차지하고 있는 영역에 대한 정보(예컨대, 기준객체의 높이(Height) 및 폭(Width)에 대한 정보), 단말기 상에서 기준객체의 좌표값(예컨대, 기준객체가 시작되는 X 좌표값 및 Y 좌표값), 기준객체가 소속된 계층에 대한 계층적 구조정보, 또는 기준객체의 속성정보 등을 획득할 수 있다.
일 예로, 객체정보 획득부(310)는 운영체제(예컨대, 마이크로소프사의 윈도우)에서 제공되는 MSAA(Microsoft Active Accessibility), UIA(UI Automation), Java Accessibility, SAP Gui Scripting, Selenium, 또는 MSHTML 등을 이용하여 상술한 바와 같은 기준객체의 정보를 획득할 수 있다.
상술한 실시예에 있어서는, 기준객체의 정보를 객체정보 획득부(320)가 획득하는 것으로 설명하였지만, 변형된 실시예에 있어서, 기준객체의 정보는 객체 선택부(310)에 의해 획득될 수도 있을 것이다. 이러한 경우, 객체정보 획득부(320)는 생략될 수도 있다.
객체정보 획득부(320)는 획득된 기준객체의 정보를 고유값 산출부(330), 이미지 생성부(340), 또는 예측이미지 생성부(350) 중 적어도 하나로 전송한다.
고유값 산출부(330)는 객체정보 획득부(320)로부터 제공받은 기준객체의 속성정보 및 기준객체의 계층적 구조정보를 기초로 기준객체의 고유값을 산출한다. 고유값 산출부(330)는 산출된 고유값을 저장부(미도시)에 저장할 수 있다. 일 실시예에 있어서, 고유값 산출에 이용되는 기준객체의 속성정보는 기준객체가 특정 프로그램을 구성하는 경우 해당 프로그램의 실행파일정보, 기준객체가 윈도우 컨트롤 메뉴인 경우 윈도우 컨트률 메뉴의 윈도우 타이틀(Title)에 대한 정보, 기준객체의 종류, 또는 해당 기준객체가 특정메뉴를 구성하는 경우 해당 메뉴의 네임(Name)정보 등을 포함할 수 있다.
또한, 기준객체의 계층적 구조정보는 도 5a에 도시된 바와 같이, 해당 기준객체의 상위노드들 및 하위노드들로 구성된 트리구조의 정보를 포함할 수 있다. 일 실시예에 있어서, 기준객체의 계층적 구조정보는 트리구조 상에서 최상위 노드로부터 기준객체까지의 최적경로정보일 수 있다. 이때, 최적경로정보는 트리구조 상에서 최상위 노드로부터 기준객체 사이에 배치된 모든 노드들을 선택한 후, 선택된 노드들 중 해당 노드가 없어도 기준객체의 특정이 가능한 것으로 판단되는 노드들을 제거함으로써 생성될 수 있다. 이와 같은 과정을 통해 생성된 최적경로정보를 이용하여 고유값을 생성하는 이유는 고유값에 포함된 기준객체의 계층적 구조정보는 변경될 수 있기 때문에, 기준객체의 특정을 위한 최소한의 정보만이 포함되도록 해야 안전성을 향상시킬 수 있기 때문이다.
일 실시예에 있어서, 고유값 산출부(330)는 상술한 기준객체의 속성정보 및 계층적 구조정보를 조합하여 각 기준객체 별로 고유한 고유값을 생성할 수 있다. 예컨대, 도 5b에 도시된 바와 같은 "메모장"의 경우, 도시된"메모장"에서 "저장(S)"항목은 데스크탑, nodepad.exe(프로그램), 메뉴모음(상단 메뉴바), 메뉴항목(파일(F)), 메뉴항목(저장(S)) 순서의 소속정보를 가지게 된다. 이때, 소속정보를 XML 형태로 표현하면 하나의 노드는 기준객체의 정보를 표현하고, 노드기술순서대로 소속정보가 나타내게 된다. 따라서, 도 5b에 도시된 예의 경우, "nodepad.exe"에 관련된 노드가 먼저 기술되고, "메뉴모음"에 대한 노드, "메뉴항목"에 대한 노드 순서로 기술되게 된다. 이때, 각 노드마다 여러가지 속성정보를 가지게 되는데, 원하는 기준객체를 탐지할 수 있도록 각 노드들의 속정정보를 조합하여 XML형태의 고유값으로 나타내게 된다. 예컨대, "nodepad.exe"는 타이틀 바에 포함된 "제목없음-메모장"이라는 속성정보를 가지고, "메뉴항목"은 각 메뉴에서 보여지는 "파일(F)", "편집(E)" 등의 문자열을 속성정보로 가진다. 도 5c에 a.work에서 사용되는 XML 형태의 고유값의 예가 도시되어 있다.
다시 도 2를 참조하면, 이미지 생성부(340)는 객체정보 획득부(320)로부터 제공받은 기준객체가 차지하고 있는 영역의 정보 또는 기준객체의 좌표값을 기초로 기준객체에 대한 이미지를 생성한다. 이미지 생성부(340)는 생성된 기준객체의 이미지를 저장부(미도시)에 저장할 수 있다. 일 실시예에 있어서, 이미지 생성부(340)는 기준객체가 포함된 윈도우 화면을 캡쳐하고 캡쳐된 화면 이미지 내에서 기준객체가 차지하고 있는 영역의 정보 또는 기준객체의 좌표값을 기초로 기준객체가 차지하고 있는 영역을 크롭(Crop)함에 의해 기준객체의 이미지를 생성할 수 있다.
본 발명에서 기준객체의 고유값 이외에 이미지 생성부(340)를 통해 기준객체이미지를 추가로 생성하는 이유는 기준객체의 고유값이 변경되는 경우 추후 RPA 실행시 기준객체의 탐지가 불가능하거나 다른 기준객체가 잘못 탐지될 수 있기 때문이다. 예컨대, 기준객체의 고유값을 구성하는 속성정보인 윈도우 타이틀에 입력된 문자열이 변경되는 경우, 기준객체는 동일하지만 기존의 윈도우 타이틀을 이용하여 생성된 고유값과 변경된 윈도우 타이틀을 이용하여 생성된 고유값이 상이해지므로 기준객체와 동일한 객체를 탐지할 수 없게 될 수 있기 때문이다.
따라서, 본 발명은 고유값 이외에 이미지 생성부(340)를 통해 기준객체의 이미지를 추가로 생성함으로써 기준객체의 이미지 자체를 기준객체의 정보 중 하나로 사용할 수 있어 기준객체의 외형이 변경되지 않는 경우 기준객체를 매우 정확하게 탐지할 수 있다는 장점이 있다.
예측이미지 생성부(350)는 기준객체의 이미지 변형을 예측하여 기준객체에 대한 정형화된 변형 이미지를 생성한다. 예측이미지 생성부(350)는 생성된 기준객체의 정형화된 변형 이미지를 저장부(미도시)에 저장할 수 있다. 본 발명에서 예측이미지 생성부(350)를 통해 기준객체에 대한 정형화된 변형 이미지를 추가 생성하는 이유는, 기준객체의 경우 클릭상태 등에 의해 외형 이미지가 변형될 수 있는데 기준객체의 외형 이미지 변형이 발생되는 경우 기준 기준객체의 이미지만으로는 기준객체를 정확하게 탐지할 수 없기 때문이다.
따라서, 본 발명에서는 이와 같은 문제를 해결하기 위해 예측이미지 생성부(350)를 이용하여 기준객체의 외형이 일반적이고 정형적으로 변경되는 상황을 정의하고, 해당 상황에 따라 캡처된 이미지의 변화를 예측함으로써 기준객체에 대한 정형화된 변형 이미지를 생성한다.
이때, 대부분의 기준객체들은 활성화 상태에서 비활성화 상태로 변경되는 경우 색상이 회색으로 변경되거나, 기준객체가 선택되는 경우 선택되지 않았을 때와 비교하여 배경이 다른 색으로 변경되는 것과 같이 정형화된 변형을 보이는 것이 일반적이므로, 본 발명에 따른 예측이미지 생성부(350)는 이러한 기준객체의 정형화된 변형을 예측함으로써 기준객체의 정형화된 변형 이미지를 생성할 수 있게 된다.
일 실시예에 있어서, 기준객체에 대한 정형화된 예측 이미지는 기준객체가 인에이블(Enable) 상태(변화없는 상태)일 때의 이미지, 기준객체가 디스에이블(Disable) 상태(Grayscale로 변화된 상태)일 때의 이미지, 기준객체가 눌려진(Pressed) 상태(Pressed 배경 Highlight된 상태)일 때의 이미지, 기준객체가 선택된(Selected) 상태(Selected 배경 Highlight된 상태)일 때의 이미지, 기준객체가 포커스(Focus)된 상태(Focus 배경 Highlight된 상태)일 때의 이미지, 기준객체 상에 입력도구가 위치(Hover)된 상태(Hover 배경 Highlight된 상태)일 때의 이미지 중 적어도 하나를 포함할 수 있다.
상술한 실시예에 있어서, 예측이미지 생성부(350)는 운영체제에서 지원하는 함수를 이용하여 기준객체에 대한 정형화된 변형 이미지를 획득할 수 있다. 구체적으로 마이크로소프트사의 윈도우를 이용하는 단말기에서, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, 마이크로소프트사의 윈도우에서 제공하는 Win32 API DrawState 함수의 uFlages 파라미터를 DSS_NORMAL로 설정함으로써 Enabled된 변형이미지를 획득할 수 있다.
다른 예로, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, Win32 API DrawState 함수의 uFlages 파라미터를 DSS_DISABLED로 설정함으로써 Disable된 변형이미지를 획득할 수 있다.
또 다른 예로, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, Win32 API DrawThemeBackground 함수의 PRESSED 매개변수를 적용하여 Pressed된 변형이미지를 획득할 수 있다.
또 다른 예로, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, Win32 API DrawFocusRect 함수를 사용하여 Focus 변형이미지를 획득할 수 있다.
또 다른 예로, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, Win32 API DrawThemeBackground 함수의 HOT 매개변수를 적용하여 Hover 변형이미지를 획득할 수 있다.
또 다른 예로, 예측이미지 생성부(350)는 기준객체와 동일한 객체를 가상으로 생성하고, Win32 API DrawThemeBackground 함수의 SELECTED 매개변수를 적용하여 Selected 변형이미지를 획득할 수 있다.
이와 같이 본 발명에 따른 예측이미지 생성부(350)는 운영체제에서 제공하는 API를 사용하여 일반적인 GUI 프로그램들이 가질 수 있는 기준객체의 변경 상태를 예측함으로써 기준객체의 정형화된 변형 이미지를 획득할 수 있다.
다시 도 2를 참조하면, 스크립트 제작부(218)는 사용자가 프로세스 설정부(212) 및 태스크 설정부(214)를 통해 설정한 프로세스와 태스크가 실제 자동으로 실행될 수 있도록 자동화 스크립트를 제작한다. 예컨대, 스크립트 제작부(218)는 프로세스 설정부(212)에서 설정된 프로세스를 수행하는 프로세스 자동화 스크립트를 제작하고, 마찬가지로 태스크 설정부(214)에서 설정된 태스크를 수행하는 태스크 자동화 스크립트를 제작한다. 그리고, 스크립트 제작부(218)는 스크립트 실행부(220)와 연동하여 태스크를 구성하는 하나 이상의 이벤트가 실제 실행순서대로 정상적으로 동작할 수 있는지 검증하여 디버깅(Debugging)하고, 마찬가지로 프로세스를 구성하는 하나 이상의 태스크가 실제 실행순서대로 정상적으로 동작할 수 있는지 검증하여 디버깅한다.
스크립트 제작부(218)는 이와 같이 생성된 프로세스 자동화 스크립트 또는 태스크 자동화 스크립트를 실제 실행을 위해 스크립트 실행부(220)로 전송하고, 추후 재사용 및 관리를 위해 제작된 프로세스 자동화 스크립트 또는 태스크 자동화 스크립트를 저장할 수 있다.
상술한 바와 같은 스크립트 생성부(210)는 생성된 자동화 스크립트를 스크립트 실행부(220)로 전송함으로써 스크립트 실행부(220)에 의해 자동화 스크립트가 자동으로 실행될 수 있도록 한다.
스크립트 실행부(220)는 스크립트 생성부(210)에 의해 생성된 자동화 스크립트를 실제로 실행함으로써 사용자의 컴퓨팅 업무를 자동으로 처리한다. 구체적으로, 스크립트 실행부(220)는 스크립트 생성부(210)로부터 프로세스 자동화 스크립트 또는 태스크 자동화 스크립트를 수신하고, 수신된 프로세스 자동화 스크립트 또는 태스크 자동화 스크립트를 해석하여 각각의 이벤트, 태스크, 프로세스에 대해 속성, 실행조건, 우선순위 등을 판단하고 실행순서를 스케쥴링한다. 또한, 스크립트 실행부(220)는 각각의 이벤트들을 실행순서에 따라 순차적으로 실행함으로써 태스크를 실행하고, 또한 각각의 태스크들을 실행순서에 따라 실행함으로써 프로세스를 실행한다.
객체 탐지부(230)는 스크립트 실행부(220)에 의해 실행된 자동화 스크립트에 포함된 기준객체의 정보를 기초로 업무 수행 대상이 되는 단말기 상에서 기준객체와 동일한 타겟객체의 존재여부를 탐지하고, 타겟객체가 탐지되면 타겟객체를 활성화시킴으로써, 자동화 스크립트의 실행에 따른 업무가 수행될 수 있도록 한다.
구체적으로, 객체 탐지부(230)는 단말기에 포함된 객체들 중 자동화 스크립트에 포함되어 있는 기준객체의 고유값과 동일한 고유값을 갖는 타겟객체가 존재하는지 여부를 판단하고, 존재하는 경우 타겟객체를 활성화시킨다. 객체 탐지부(230)가 단말기에 포함된 객체들의 고유값을 산출하는 방법은 상술한 고유값 산출부(330)가 기준객체의 고유값을 산출하는 방법과 동일하므로 구체적인 설명은 생략하기로 한다. 다른 예로, 단말기에 존재하는 객체들의 고유값을 상술한 고유값 산출부(330)가 직접 산출하여 객체 탐지부(230)로 제공할 수도 있을 것이다.
객체 탐지부(230)는 기준객체의 고유값과 동일한 고유값을 갖는 타겟객체가 존재하지 않는 경우 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하는지 여부를 추가로 판단한다. 판단결과, 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하면 타겟객체를 활성화시킨다. 객체 탐지부(230)가 단말기에 포함된 객체들의 이미지를 생성하는 방법은 상술한 이미지 생성부(340)가 기준객체의 이미지를 생성하는 방법과 동일하므로 구체적인 설명은 생략하기로 한다. 다른 예로, 단말기에 존재하는 객체들의 이미지를 상술한 이미지 생성부(340)가 직접 생성하여 객체 탐지부(230)로 제공할 수도 있을 것이다.
이와 같이, 본 발명에 따르면 객체 탐지부(230)가 기본객체의 고유값을 기초로 타겟객체의 존재여부를 1차적으로 판단하고, 기본객체의 고유값과 동일한 타겟객체가 존재하지 않는 경우 기본객체의 이미지를 기초로 타겟객체의 존재여부를 2차적으로 판단한다. 즉, 본 발명은 고유값 기반의 객체탐지와 이미지 기반의 객체탐지의 장점을 모두 사용하는 하이브리드 탐지 방법을 이용함으로써, 단말기 상에 포함된 객체들의 외형 이미지 변화나 고유값 변화 중 하나가 발생하더라도 사용자가 자동화 스크립트를 수정하거나 추가로 작성할 필요 없이 기본객체의 존재여부를 정확하게 탐지할 수 있으므로, 사용자의 편의성이 증대된다.
한편, 객체 탐지부(230)는 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하지 않는 경우 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 타겟객체가 존재하는지 여부를 추가로 판단할 수 있다. 판단결과, 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 타겟객체가 존재하면 타겟객체를 활성화시킨다.
이와 같이, 본 발명에 따르면 기본객체의 이미지와 동일한 타겟객체가 존재하지 않는 경우 기본객체의 정형화된 변형 이미지를 기초로 타겟객체의 존재여부를 추가로 판단한다. 즉, 본 발명은 단말기 상에 포함된 객체들에 정형화된 외형 이미지의 변화가 발생되더라도, 미리 기준객체들의 정형화된 변형 이미지를 예측하여 저장하고 있기 때문에, 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 객체의 존재여부를 판단하여 타겟객체를 특정할 수 있어 객체탐지 능력의 정확도를 극대화시킬 수 있게 된다.
도 7은 본 발명의 다른 실시예에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템의 구성을 개략적으로 보여주는 블록도이다. 도 7에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 로봇 프로세서 자동화를 위한 객체 탐지 시스템(700)은 적어도 하나의 스크립트 생성부(710a~710n), 적어도 하나의 스크립트 실행부(720a~720n), 적어도 하나의 객체 탐지부(730a~730n), 적어도 하나의 제어부(740a~740n), 및 스크립트 관리부(750)를 더 포함한다.
도 7에 도시된 로봇 프로세서 자동화를 위한 객체 탐지 시스템(700)에서 적어도 하나의 스크립트 실행부(720a~720n)와 적어도 하나의 제어부(750)는 각각 1대1로 연동되어 하나의 제어부(750)가 하나의 하나의 스크립트 실행부(720a~720n)를 제어하는 구조이다. 또한, 도 7에 도시된 로봇 프로세서 자동화를 위한 객체 탐지 시스템(700)에서 스크립트 관리부(750)는 적어도 하나의 스크립트 생성부(710) 및 적어도 하나의 스크립트 실행부(720a~720n)를 관리한다.
적어도 하나의 스크립트 생성부(710a~710n)는 로봇 프로세스 자동화를 위한 자동화 스크립트(Script)를 생성한다. 이를 위해, 로봇 프로세서 자동화를 위한 키 입력 가상화 시스템(700)은 자동화 스크립트에 포함된 객체를 탐지하고 활성화시키는 객체 활성화부(미도시)를 더 포함할 수 있다. 객체 활성화부의 기능은 도 1에 도시된 객체 활성화부의 기능과 동일하므로 구체적인 설명은 생략한다. 다른 실시예에 있어서, 객체의 탐지 및 활성화는 상술한 스크립트 실행부(720a~720n)에 의해 직접 수행될 수도 있을 것이다.
이를 위해, 각 스크립트 생성부(710a~710n)는 프로세스 설정부(712), 태스크 설정부(714), 객체정보 설정부(716), 및 스크립트 제작부(718)를 포함한다. 스크립트 생성부(710a~710n) 및 스크립트 생성부(710a~710n)에 포함된 프로세스 설정부(712), 태스크 설정부(714), 객체정보 설정부(716), 스크립트 제작부(718)는 도 2에 도시된 스크립트 생성부(210) 및 프로세스 설정부(212), 태스크 설정부(214), 객체정보 설정부(216), 및 스크립트 제작부(218)와 그 기능이 동일하므로 구체적인 설명은 생략하기로 한다.
적어도 하나의 스크립트 실행부(720a~720n)는 적어도 하나의 스크립트 생성부(710)에 의해 생성된 자동화 스크립트를 실제로 실행함으로써 사용자의 컴퓨팅 업무를 자동으로 처리한다. 구체적으로, 각 스크립트 실행부(720a~720n)는 스크립트 생성부(710a~710n) 또는 스크립트 관리부(750)로부터 자동화 스크립트를 수신하고, 제어부(740a~740n) 또는 스크립트 관리부(750)로부터 실행명령을 수신하면 해당 자동화 스크립트를 실행하여 사용자의 컴퓨팅 업무를 처리한다.
각 스크립트 실행부(720a~720n)는 수신된 자동화 스크립트에 대한 실행명령이 수신되면, 해당 자동화 스크립트를 해석하여 각각의 이벤트, 태스크, 프로세스에 대해 속성, 실행조건, 우선순위 등을 판단하고 실행순서를 스케쥴링한다. 또한, 스크립트 실행부(720a~720n)는 각각의 이벤트들을 실행순서에 따라 순차적으로 실행함으로써 태스크를 실행하고, 또한 각각의 태스크들을 실행순서에 따라 실행함으로써 프로세스를 실행한다.
특히, 본 발명에 따른 각 스크립트 실행부(720a~720n)는 제어부(740a~740n)와 스크립트 관리부(750) 사이에서 제어부(740a~740n) 및 스크립트 관리부(750)를 상호 연동시켜 제어부(740a~740n)가 스크립트 관리부(750)를 통해 원격의 스크립트 실행부를 제어할 수 있도록 해 준다.
일 실시예에 있어서, 스크립트 실행부(720a~720n)는 스크립트 실행시 레코딩 시의 컴퓨팅 환경 정보를 참조하여 현재의 컴퓨팅 환경(화면 해상도, 화면 배치, 화면 크기 등)이 레코딩시의 컴퓨팅 환경과 동일해지도록 현재의 컴퓨팅 환경을 조정할 수 있다.
적어도 하나의 객체 탐지부(730a~730n)는 각 스크립트 실행부(720a~720n)에 의해 실행된 자동화 스크립트에 포함된 기준객체의 정보를 기초로 업무 수행 대상이 되는 컴퓨터 상에서 기준객체와 동일한 타겟객체의 존재여부를 탐지하고, 타겟객체가 탐지되면 타겟객체를 활성화시킴으로써, 자동화 스크립트의 실행에 따른 업무가 수행될 수 있도록 한다.
구체적으로, 객체 탐지부(730a~730n)는 컴퓨터에 포함된 객체들 중 자동화 스크립트에 포함되어 있는 기준객체의 고유값과 동일한 고유값을 갖는 타겟객체가 존재하는지 여부를 판단하고, 존재하는 경우 타겟객체를 활성화시킨다. 객체 탐지부(730a~730n)는 기준객체의 고유값과 동일한 고유값을 갖는 타겟객체가 존재하지 않는 경우 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하는지 여부를 추가로 판단한다. 판단결과, 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하면 타겟객체를 활성화시킨다.
한편, 객체 탐지부(730a~730n)는 기준객체의 이미지와 동일한 이미지를 갖는 타겟객체가 존재하지 않는 경우 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 타겟객체가 존재하는지 여부를 추가로 판단할 수 있다. 판단결과, 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 타겟객체가 존재하면 타겟객체를 활성화시킨다.
이와 같이, 본 발명에 따르면 객체 탐지부(730a~730n)가 기본객체의 고유값을 기초로 타겟객체의 존재여부를 1차적으로 판단하고, 기본객체의 고유값과 동일한 타겟객체가 존재하지 않는 경우 기본객체의 이미지를 기초로 타겟객체의 존재여부를 2차적으로 판단한다. 즉, 본 발명은 고유값 기반의 객체탐지와 이미지 기반의 객체탐지의 장점을 모두 사용하는 하이브리드 탐지 방법을 이용함으로써, 단말기 상에 포함된 객체들의 외형 이미지 변화나 고유값 변화 중 하나가 발생하더라도 사용자가 자동화 스크립트를 수정하거나 추가로 작성할 필요 없이 기본객체의 존재여부를 정확하게 탐지할 수 있으므로, 사용자의 편의성이 증대된다.
또한, 본 발명은 기본객체의 이미지와 동일한 타겟객체가 존재하지 않는 경우 기본객체의 정형화된 변형 이미지를 기초로 타겟객체의 존재여부를 3차적으로 판단한다. 즉, 본 발명은 단말기 상에 포함된 객체들에 정형화된 외형 이미지의 변화가 발생되더라도, 미리 기준객체들의 정형화된 변형 이미지를 예측하여 저장하고 있기 때문에, 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 객체의 존재여부를 판단하여 타겟객체를 특정할 수 있어 객체탐지 능력의 정확도를 극대화시킬 수 있게 된다.
상술한 바와 같은 객체 탐지부(730a~730n)는 스크립트 실행부(720a~720n)별로 각각 구비될 수 있지만, 변형된 실시예에 있어서, 하나의 객체 탐지부(730)가 복수개의 스크립트 실행부(720a~720n)와 연동되도록 구현될 수도 있다.
적어도 하나의 제어부(740a~740n)는 사용자가 적어도 하나의 스크립트 실행부(720a~720n)를 제어하기 위한 장치이다. 적어도 하나의 제어부(740a~740n)는 제어 대상인 적어도 하나의 스크립트 실행부(720a~720n)와 연동되며, 해당 스크립트 실행부(720a~720n)가 처리할 자동화 스크립트를 선택하고, 실행을 명령한다. 또한, 해당 스크립트 실행부(720a~720n)로부터 자동화 스크립트의 실행결과를 수신한다.
이를 위해, 각 제어부(740a~740n)는 사용자가 해당 제어부(740a~740n)를 통해 원하는 스크립트 실행부(720a~720n)를 제어할 수 있도록 사용자 인터페이스를 제공한다. 예컨대, 제어부(740a~740n)는 사용자 인터페이스를 통해 사용자의 로그인/로그아웃, 스크립트 실행부 선택, 및 자동화 스크립트의 실행/정지 중 적어도 하나에 대하여 GUI(Graphic User Interface)를 제공하고, 해당 스크립트 실행부(720)에서 실행되고 있는 스크립에 포함된 프로세스의 진행상태, 실행결과 등을 표시한다.
또한, 제어부(740a~740n)는 스크립트 실행부(720a~720n)에서 처리될 수 있는 자동화 스크립트를 사용자에게 제공한다. 또한, 사용자가 스크립트 실행부(720a~720n)에 대해 임의의 자동화 스크립트를 등록하거나 삭제하면, 이에 따라 해당 자동화 스크립트가 실행되거나 취소될 수 있도록 한다.
또한, 제어부(740a~740n)는 스크립트 실행부(720a~720n)로 해당 자동화 스크립트의 실행을 명령하고, 그 실행결과를 수신하여 사용자 인터페이스를 통해 사용자에게 통지한다.
특히, 본 발명에 따른 각각의 제어부(740a~740n)가 각 스크립트 실행부(720a~720n)와 1대1로 연동되는 경우, 사용자가 제1 스크립트 실행부(720a)와 연동되어 있는 제1 제어부(740a)로 제1 제어부(740a)와 연동되어 있지 않은 제2 스크립트 실행부(720b)에서 자동화 스크립트의 실행을 등록하는 경우, 제1 제어부(740)는 제1 스크립트 실행부(720a), 스크립트 관리부(750), 및 제2 스크립트 실행부(720b)를 통해 해당 자동화 스크립트가 실행되도록 할 수 있다.
구체적으로, 제1 제어부(740a)는 먼저 제1 스크립트 실행부(720a)로 실행요청된 자동화 스크립트의 실행을 명령한다. 이에 따라, 제1 스크립트 실행부(720a)는 이를 스크립트 관리부(750)로 전달하고, 스크립트 관리부(750)는 제2 스크립트 실행부(720b)로 해당 자동화 스크립트를 전송하면서 실행을 명령한다. 제2 스크립트 실행부(720b)는 스크립트 관리부(750)로부터 전달받은 자동화 스크립트를 실행하여 그 결과를 스크립트 관리부(750)로 전달한다. 스크립트 관리부(750)는 해당 자동화 스크립트의 실행결과를 제1 스크립트 실행부(720a)로 전달하고, 제1 스크립트 실행부(720a)는 스크립트 관리부(750)로부터 전달받은 자동화 스크립트의 실행결과를 제1 제어부(740a)로 전달한다.
이를 통해, 각각의 제어부(740a~740n)는 자신과 직접 연동된 스크립트 실행부(720a~720n)뿐만 아니라 스크립트 관리부(750)를 통해 원격에 있는 타 스크립트 실행부(720a~720n)에 대해서도 원하는 자동화 스크립트의 실행을 명령할 수 있게 된다.
스크립트 관리부(750)는 적어도 하나의 스크립트 생성부(710a~710n) 및/또는 적어도 하나의 스크립트 실행부(720a~720n)와 연동되어 이들을 관리한다. 스크립트 관리부(750)는 적어도 하나의 스크립트 생성부(710a~710n)와 연동되며, 적어도 하나의 스크립트 생성부(710a~710n)로부터 자동화 스크립트를 수신하여 관리한다. 또한, 스크립트 관리부(750)는 적어도 하나의 스크립트 실행부(720a~720n)와 연동되며, 적어도 하나의 스크립트 실행부(720a~720n)에 대해 자동화 스크립트의 실행을 명령하고 실행결과를 수신하여 관리한다.
특히, 본 발명에 따른 스크립트 관리부(750)는 복수개의 스크립트 실행부(720a~720n)들 중 제1 스크립트 실행부(720a)의 요청에 따라 원격에 있는 제2 스크립트 실행부(720b)로 제2 자동화 스크립트의 실행을 명령하고, 그 실행결과를 수신하여 제1 스크립트 실행부(720a)로 전송할 수 있다.
즉, 스크립트 관리부(750)는 각각의 제어부(740a~740n)가 자신과 직접 연동된 스크립트 실행부(720a~720n) 뿐만 아니라 자신과 연동되어 있지 않는 원격에 있는 타 스크립트 실행부(720a~720n)에 대해서도 원하는 자동화 스크립트의 실행을 명령할 수 있도록 스크립트 실행부(720a~720n)들 사이에서 자동화 스크립트의 송신, 자동화 스크립트의 실행명령의 송수신, 및 자동화 스크립트 실행결과의 송수신 기능을 수행한다.
본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
200: 객체 탐지 시스템 210: 스크립트 생성부
212: 프로세서 설정부 214: 태스크 설정부
216: 객체정보 설정부 218: 스크립트 제작부
220: 스크립트 실행부 230: 객체 탐지부

Claims (15)

  1. 로봇 프로세스 자동화(Robot Process Automation)를 통해 자동으로 수행될 업무가 정의된 자동화 스크립트(Script)를 실행하는 스크립트 실행부; 및
    상기 업무의 수행을 위해 실행될 기준객체의 정보를 기초로 상기 로봇 프로세스 자동화가 수행될 단말기 상에서 상기 기준객체와 동일한 타겟객체를 탐지하여 활성화시키는 객체 탐지부를 포함하고,
    상기 객체 탐지부는 상기 단말기에 포함된 객체들 중 상기 기준객체의 속성정보 및 계층적 구조정보를 기초로 생성된 고유값, 상기 기준객체의 이미지, 및 상기 기준객체의 정형화된 변형 이미지 중 적어도 하나가 동일한 객체를 상기 타겟객체로 결정하고,
    상기 기준객체가 표시된 화면을 캡쳐한 이미지로부터 상기 기준객체가 차지하는 영역을 크롭하여 상기 기준객체의 이미지를 생성하는 이미지 생성부를 더 포함하는 것을 특징으로 하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  2. 제1항에 있어서,
    상기 객체 탐지부는 상기 단말기에 포함된 객체들 중 상기 기준객체의 고유값과 동일한 고유값을 갖는 객체의 존재여부를 판단하고, 동일한 고유값을 갖는 객체가 존재하지 않는 경우 상기 기준객체의 이미지와 동일한 이미지를 갖는 객체의 존재여부를 판단하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  3. 제1항에 있어서,
    상기 객체 탐지부는 상기 단말기에 포함된 객체들 중 상기 기준객체의 고유값과 동일한 고유값 또는 상기 기준객체의 이미지와 동일한 이미지를 갖는 객체의 존재여부를 판단하고, 동일한 고유값 또는 동일한 이미지를 갖는 객체가 존재하지 않는 경우 상기 기준객체의 정형화된 변형 이미지와 동일한 이미지를 갖는 객체의 존재여부를 판단하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  4. 제1항에 있어서,
    상기 기준객체 및 상기 타겟객체는 사용자와 상기 단말기 간의 상호작용을 위한 윈도우 컨트롤 메뉴(Window Control Menu)인 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  5. 제4항에 있어서,
    상기 윈도우 컨트롤 메뉴는 버튼(Button), 레디오 버튼(Radio Button), 콤보박스(Combo Box), 텍스트 에디트(Text Edit), 슬라이더(Slider), 및 체크박스(Check Box) 중 적어도 하나를 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  6. 제1항에 있어서,
    상기 기준객체의 속성정보 및 상기 기준객체의 계층적 구조정보를 이용하여 상기 기준객체 별로 상이한 고유값을 생성하는 고유값 산출부를 더 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  7. 제6항에 있어서,
    상기 기준객체의 속성정보는 상기 기준객체를 포함하는 응용 프로그램의 실행파일에 대한 정보, 상기 기준객체의 윈도우 타이틀 정보, 상기 기준객체의 종류, 및 상기 기준객체의 메뉴이름 중 적어도 하나를 포함하고,
    상기 계층적 구조정보는 상기 기준객체의 상위노드 및 하위노드들이 배치된 트리구조 상에서 상기 상위노드로부터 상기 기준객체까지의 최적경로정보를 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  8. 삭제
  9. 제1항에 있어서,
    상기 기준객체의 정형화된 변형 이미지를 예측하여 상기 기준객체의 정형화된 변형 이미지를 생성하는 예측이미지 생성부를 더 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  10. 제9항에 있어서,
    상기 예측이미지 생성부는 상기 단말기의 운영체제(Operating System: OS)에서 제공되는 응용프로그램 프로그래밍 인터페이스(Application Programming Interface: API)를 실행하여 상기 API로부터 상기 기준객체의 정형화된 변형 이미지를 획득하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  11. 제1항에 있어서,
    상기 정형화된 변형 이미지는, 상기 객체가 인에이블(Enable) 상태일 때의 이미지, 상기 객체가 디스에이블(Disable) 상태일 때의 이미지, 상기 객체가 눌려진(Pressed) 상태일 때의 이미지, 상기 객체가 선택된(Selected) 상태일 때의 이미지, 사이 객체가 포커스(Focus)된 상태일 때의 이미지, 상기 객체 상에 입력도구가 위치(Hover)된 상태일 때의 이미지 중 적어도 하나를 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  12. 제1항에 있어서,
    사용자에 의해 조작되는 마우스 포인터가 위치하는 영역의 정보를 획득하고, 상기 영역 상에서 마우스의 클릭이 발생되면 해당 영역 또는 해당 영역에 포함된 객체를 상기 기준객체로 선택하는 객체 선택부; 및
    상기 객체 선택부에 의해 선택된 기준객체로부터 상기 기준객체가 차지하고 있는 영역에 대한 정보, 상기 단말기 상에서 상기 기준객체의 좌표값, 상기 기준객체가 소속된 계층에 대한 계층적 구조정보, 및 상기 기준객체의 속성정보 중 적어도 하나를 포함하는 상기 기준객체의 정보를 획득하는 객체정보 획득부를 더 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  13. 적어도 하나의 이벤트로 구성된 태스크 및 적어도 하나의 태스크로 구성된 프로세스를 설정하며, 상기 태스크 및 상기 프로세스 수행을 위한 자동화 스크립트를 생성하는 적어도 하나의 스크립트 생성부;
    상기 태스크를 구성하는 적어도 하나의 이벤트를 실행하여 상기 자동화 스크립트를 실행하는 적어도 하나의 스크립트 실행부;
    상기 태스크 또는 프로세스의 수행을 위해 실행될 기준객체의 속성정보 및 계층적 구조정보를 기초로 생성된 고유값, 상기 기준객체의 이미지, 및 상기 기준객체의 정형화된 변형 이미지 중 적어도 하나를 기초로 로봇 프로세스 자동화가 수행될 단말기 상에서 상기 기준객체와 동일한 타겟객체를 탐지하여 활성화시키는 적어도 하나의 객체 탐지부;
    상기 기준객체가 표시된 화면을 캡쳐한 이미지로부터 상기 기준객체가 차지하는 영역을 크롭하여 상기 기준객체의 이미지를 생성하는 이미지 생성부; 및
    상기 적어도 하나의 스크립트 실행부와 연동되어 상기 자동화 스크립트의 실행을 제어하는 적어도 하나의 제어부를 포함하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 제어부는 상기 적어도 하나의 스크립트 실행부와 각각 대응되어 상기 적어도 하나의 스크립트 실행부로 상기 자동화 스크립트의 실행을 명령하고, 상기 적어도 스크립트 실행부는 해당 자동화 스크립트를 실행하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
  15. 제13항에 있어서,
    상기 스크립트 실행부에 연동되어 상기 스크립트 실행부를 관리하는 스크립트 관리부를 더 포함하고,
    상기 스크립트 관리부는 상기 제어부로부터 제2 스크립트 실행부에서 실행될타겟 자동화 스크립트의 실행명령이 제1 스크립트 실행부를 통해 수신되면, 상기 제2 스크립트 실행부로 상기 타겟 자동화 스크립트 및 상기 타겟 자동화 스크립트의 실행명령을 전달하고, 상기 제2 스크립트 실행부로부터 제2 타겟 자동화 스크립트 실행결과를 수신하여 상기 제1 스크립트 실행부를 통해 상기 제어부로 전달하는 것을 특징으로 하는 로봇 프로세스 자동화를 위한 객체 탐지 시스템.
KR1020190174743A 2019-12-26 2019-12-26 로봇 프로세스 자동화를 위한 객체 탐지 시스템 KR102294578B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190174743A KR102294578B1 (ko) 2019-12-26 2019-12-26 로봇 프로세스 자동화를 위한 객체 탐지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190174743A KR102294578B1 (ko) 2019-12-26 2019-12-26 로봇 프로세스 자동화를 위한 객체 탐지 시스템

Publications (2)

Publication Number Publication Date
KR20210082622A KR20210082622A (ko) 2021-07-06
KR102294578B1 true KR102294578B1 (ko) 2021-08-26

Family

ID=76860747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174743A KR102294578B1 (ko) 2019-12-26 2019-12-26 로봇 프로세스 자동화를 위한 객체 탐지 시스템

Country Status (1)

Country Link
KR (1) KR102294578B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102453289B1 (ko) * 2022-03-29 2022-10-11 주식회사 시메이션 로보틱 자동화 방법과 시스템 및 이를 수행하기 위한 컴퓨팅 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101737839B1 (ko) * 2010-09-16 2017-05-19 엘지전자 주식회사 투명 디스플레이 장치 및 객체 탐지 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102183448B1 (ko) * 2013-04-26 2020-11-26 삼성전자주식회사 사용자 단말 장치 및 그 디스플레이 방법
KR102199786B1 (ko) * 2013-08-27 2021-01-07 삼성전자주식회사 콘텐트를 기반으로 하는 정보 제공 방법 및 장치
KR20180130630A (ko) * 2017-05-29 2018-12-10 서일대학교산학협력단 자동화 진단도구를 이용한 정보시스템 취약점 진단 관리 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101737839B1 (ko) * 2010-09-16 2017-05-19 엘지전자 주식회사 투명 디스플레이 장치 및 객체 탐지 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102453289B1 (ko) * 2022-03-29 2022-10-11 주식회사 시메이션 로보틱 자동화 방법과 시스템 및 이를 수행하기 위한 컴퓨팅 장치

Also Published As

Publication number Publication date
KR20210082622A (ko) 2021-07-06

Similar Documents

Publication Publication Date Title
JP7089879B2 (ja) ロボットによるプロセス自動化
US7624192B2 (en) Framework for user interaction with multiple network devices
KR102160344B1 (ko) 로봇 프로세스 자동화 시스템 및 방법
US9383903B2 (en) Systems and methods for providing programmable macros
EP2705441B1 (en) Automatic classification adjustment of recorded actions for automation script
US20140325482A1 (en) Method for creating a label
JP5931806B2 (ja) 画像認識による自動操作装置、その方法及びプログラム
JP4381436B2 (ja) シナリオ生成装置およびシナリオ生成プログラム
US10067667B2 (en) Method and apparatus for touch gestures
KR102254850B1 (ko) 프로세스 설정 장치 및 프로세스 설정 장치를 포함하는 로봇 프로세스 자동화 시스템
US20140258989A1 (en) Method and system for automating a scene-based test
US11474931B2 (en) Debugging a cross-technology and cross-environment execution
KR102294578B1 (ko) 로봇 프로세스 자동화를 위한 객체 탐지 시스템
US20230267255A1 (en) Semiconductor equipment modeling method and device
JP2023107749A (ja) ブラウザベースのロボティックプロセスオートメーション(rpa)ロボット設計インターフェース
WO2022066351A1 (en) Computer-implemented method and system for test automation of an application under test
KR102299657B1 (ko) 로봇 프로세서 자동화를 위한 키 입력 가상화 시스템
KR20220148081A (ko) 로봇 프로세스 자동화(rpa)를 위한 프로세스내 트리거 관리
JP4896909B2 (ja) シナリオ生成装置及びプログラム
KR102439574B1 (ko) 로봇 프로세스 자동화를 위한 이미지 기반의 객체탐지 시스템
CN106815010B (zh) 一种操作数据库的方法及装置
JPH09274553A (ja) ウィンドウ表示制御装置及びウィンドウ表示制御方法
JPH0784765A (ja) Guiテスト装置
KR20230102575A (ko) 로봇 프로세서 자동화를 위한 객체 탐지 시스템
JP2009259275A (ja) シナリオ生成装置およびシナリオ生成プログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant