KR20210050771A - 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 - Google Patents
이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210050771A KR20210050771A KR1020190135204A KR20190135204A KR20210050771A KR 20210050771 A KR20210050771 A KR 20210050771A KR 1020190135204 A KR1020190135204 A KR 1020190135204A KR 20190135204 A KR20190135204 A KR 20190135204A KR 20210050771 A KR20210050771 A KR 20210050771A
- Authority
- KR
- South Korea
- Prior art keywords
- screen image
- image
- objects
- user interface
- list
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000001514 detection method Methods 0.000 claims abstract description 90
- 239000012634 fragment Substances 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 9
- 238000013145 classification model Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 239000000470 constituent Substances 0.000 description 6
- 238000012015 optical character recognition Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004801 process automation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G06K9/20—
-
- G06K9/6201—
-
- G06K9/6267—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법이 제공된다. 본 개시의 몇몇 실시예에 이미지 기반의 사용자 인터페이스 객체 탐지 방법은 화면 이미지를 제1 배율로 스케일링 하는 단계, 상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여, 제1 객체 리스트를 생성하는 단계 및 상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여, 제2 객체 리스트를 생성하는 단계를 포함한다.
이러한 방법에 따르면, 화면 이미지를 기반으로 화면에 포함된 객체를 정확히 탐지할 수 있으며, 그에 따라 ID 정보를 참조하지 않고도 목표로 하는 객체를 찾을 수 있다. 또한, 객체의 크기에 관계없이 다양한 크기의 객체들을 탐지할 수 있으며, 봇 생성 시점과 작업 환경이 달라진 경우에도 이미지를 기반으로 목표 객체를 정확히 탐지할 수 있다.
이러한 방법에 따르면, 화면 이미지를 기반으로 화면에 포함된 객체를 정확히 탐지할 수 있으며, 그에 따라 ID 정보를 참조하지 않고도 목표로 하는 객체를 찾을 수 있다. 또한, 객체의 크기에 관계없이 다양한 크기의 객체들을 탐지할 수 있으며, 봇 생성 시점과 작업 환경이 달라진 경우에도 이미지를 기반으로 목표 객체를 정확히 탐지할 수 있다.
Description
본 개시는 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법에 관한 것이다. 보다 자세하게는, 컴퓨터 화면의 스크린샷 등 사용자 인터페이스 객체가 포함된 이미지로부터 목표 객체를 탐지하는 시스템 및 그것의 동작 방법에 관한 것이다.
로봇 프로세스 자동화(Robot Process Automation, 이하 'RPA')는 정형적이고 반복적인 사람의 작업을 로봇이 모방하여 대신 수행하도록 하는 자동화 기술이나 서비스를 지칭한다. RPA는 인공지능 기술의 발전과 맞물려 최근 그 기능 및 효용성이 크게 향상되었으며, 기업의 워크 플로우 효율화에 긍정적으로 기여하고 있다. IT 분야의 전문 리서치 기관인 가트너(Gartner)에 따르면 글로벌 RPA 시장은 다른 엔터프라이즈 소프트웨어 시장보다 훨씬 가파르게 성장하고 있으며, 2019년 시장 규모는 전년대비 약 54% 성장한 13억 달러로 추정된다. 최근에는, 기존 RPA의 개념에서 한발 더 나아가 더욱 복잡한 업무 처리를 위한 지능형 업무 자동화(Intelligent Process Automation, 이하 'IPA')라는 개념이 등장하였다.
이러한 RPA 또는 IPA는 작업 대상 객체를 지정한 후 수행할 작업 이벤트를 등록함으로써, 봇이 사전 정의된 작업을 반복 수행하는 방식으로 동작한다. 그러나, 봇은 생성 당시의 작업 환경을 기준으로 설계되기 때문에, 봇 생성 이후 작업 환경이 변경되어(가령, GUI의 해상도, 자동 수행 작업을 실행할 웹 사이트나 프로그램의 버전 등이 변경되는 경우, 또는 다른 작업 환경을 사용하는 사용자에게 봇을 공유하는 경우) 봇이 참조하는 객체의 위치가 변화하는 경우, 봇이 정상적으로 동작하지 않고 오동작 하거나 작업을 정지하는 등 오류가 발생할 수 있다.
종래에는 이러한 작업 환경이 변화되는 상황에서 객체의 위치 변화를 탐지하기 위해 미리 정의된 고유 ID를 활용하여 해당 객체의 좌표 변화를 추적하는 방식을 사용하였다. 그러나, 이러한 ID를 이용하는 방식은 어플리케이션의 버전 변화나 디자인 등 화면 구성 변화와 같은 환경적인 변화에 취약하고, 동일 객체라도 고유 ID가 다르게 정의되는 경우 동일한 객체로 취급하지 않았으며, 나아가, 어플리케이션마다 객체 ID를 정의하는 방식이 달라 일반화된 방법을 적용하기 어려운 문제점이 있었다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 화면 이미지를 기반으로 객체를 탐지함으로써 ID 정보를 참조하지 않고도 목표로 하는 객체를 정확하게 찾을 수 있는 이미지 기반 사용자 인터페이스 객체 탐지 시스템 및 방법을 제공하는 데 있다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 화면 이미지에 표시된 다양한 크기의 객체를 모두 찾을 수 있는 이미지 기반 사용자 인터페이스 객체 탐지 시스템 및 방법을 제공하는 데 있다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 변화된 작업 환경에서도 목표로 하는 객체를 정확히 탐지함으로써, RPA 또는 IPA를 다양한 작업 환경에서 활용할 수 있도록 하는 이미지 기반 사용자 인터페이스 객체 탐지 시스템 및 방법을 제공하는 데 있다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 이미지 기반 사용자 인터페이스 객체 탐지 방법은, 화면 이미지를 제1 배율로 스케일링 하는 단계; 상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여, 제1 객체 리스트를 생성하는 단계; 및 상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여, 제2 객체 리스트를 생성하는 단계를 포함한다.
일 실시예로서, 상기 제1 객체 리스트 및 상기 제2 객체 리스트를 기반으로 통합 객체 리스트를 생성하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 제1 객체 리스트를 생성하는 단계는, 상기 제1 화면 이미지를 윈도윙하여 복수의 윈도우 조각을 획득하는 단계; 상기 복수의 윈도우 조각 각각에 대해 객체를 탐지하는 단계; 및 상기 복수의 윈도우 조각 각각에 대응하는 복수의 객체 리스트를 출력하는 단계를 포함할 수 있다.
일 실시예로서, 상기 제1 객체 리스트를 생성하는 단계는, 상기 복수의 객체 리스트에 포함된 객체들 중 중복된 객체들에 대해 대표 객체를 결정하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 대표 객체를 결정하는 단계는, 상기 중복된 객체들 중 가장 넓은 영역을 갖는 객체를 상기 대표 객체로 결정할 수 있다.
일 실시예로서, 상기 제1 객체 리스트를 생성하는 단계는, 상기 복수의 객체 리스트에 포함된 객체에 대해 바운딩 박스 조정을 수행하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 복수의 윈도우 조각을 획득하는 단계는, 상기 제1 화면 이미지를 미리 결정된 크기의 윈도우 조각으로 분할 샘플링하는 단계를 포함하고, 상기 복수의 윈도우 조각 중 어느 한 윈도우 조각은 다른 한 윈도우 조각과 서로 중첩되는 영역을 포함할 수 있다.
일 실시예로서, 상기 제2 화면 이미지는, 상기 제1 객체 리스트에 포함된 객체들이 마스킹된 것 일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 몇몇 실시예에 따른 이미지 기반의 사용자 인터페이스 객체 탐지 방법은, 화면 이미지를 획득하는 단계; 상기 화면 이미지의 배율을 달리하여 하나 이상의 객체를 탐지하는 단계; 및 상기 하나 이상의 객체와 목표 객체 사이의 유사도를 산출하고, 상기 산출된 유사도를 기반으로 상기 탐지된 하나 이상의 객체 중에서 목표 객체를 결정하는 단계를 포함한다.
일 실시예로서, 상기 하나 이상의 객체의 유형을 분류하는 단계를 더 포함하고, 상기 목표 객체를 결정하는 단계는 상기 하나 이상의 객체의 유형에 따라 상기 유사도를 산출하는 방법이 달라질 수 있다.
일 실시예로서, 상기 하나 이상의 객체를 탐지하는 단계는, 상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하는 단계; 및 상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하는 단계를 포함할 수 있다.
일 실시예로서, 상기 하나 이상의 객체의 유형을 분류하는 단계는, 상기 하나 이상의 객체의 객체 유형을 출력하는 단계; 및 상기 출력된 객체 유형을 상기 하나 이상의 객체와 결합하는 단계를 포함할 수 있다.
일 실시예로서, 상기 객체 유형이 결합된 상기 하나 이상의 객체를 상기 객체 유형을 기반으로 필터링하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 몇몇 실시예에 따른 이미지 기반의 사용자 인터페이스 객체 탐지 장치는 프로세서; 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 화면 이미지를 제1 배율로 스케일링 하는 동작, 상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여 제1 객체 리스트를 생성하는 동작, 및 상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여 제2 객체 리스트를 생성하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함한다.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 몇몇 실시예에 따른 컴퓨팅 장치와 결합된 프로그램은, 화면 이미지를 제1 배율로 스케일링 하는 단계; 상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여, 제1 객체 리스트를 생성하는 단계; 및 상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여, 제2 객체 리스트를 생성하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장된다.
상술한 본 개시의 다양한 실시예에 따르면, 화면 이미지를 기반으로 화면에 포함된 객체를 정확히 탐지함으로써 ID 정보를 참조하지 않고도 목표로 하는 객체를 찾을 수 있게 된다.
또한, 단계적 탐지 방법을 통해 대형 객체 및 소형 객체를 모두 찾을 수 있으므로, 객체의 사용자 인터페이스(User Interface, 이하 'UI'라 함) 크기에 구애받지 않고 필요한 객체를 모두 찾을 수 있게 된다.
또한, 봇 생성 시점과 작업 환경이 달라진 경우에도 이미지 기반으로 목표로 하는 객체를 정확히 탐지할 수 있으므로, 다양한 작업 환경에서 RPA 및 IPA를 활용할 수 있는 기술적 기반을 제공한다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 사용자 인터페이스 객체 탐지 시스템(1000)를 나타내는 블록도이다.
도 2는 도 1에 도시된 이미지 스케일링부(110)의 동작 방법을 개념적으로 설명하는 도면이다.
도 3은 도 1에 도시된 이미지 윈도윙부(120)의 동작 방법을 개념적으로 설명하는 도면이다.
도 4는 본 개시의 몇몇 실시예에 따른 사용자 인터페이스 객체 탐지 방법을 나타내는 순서도이다.
도 5는 도 4에 도시된 객체 탐지 단계(S200)를 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 도 5에 도시된 제1 객체 리스트 생성 단계(S220)를 구체화한 일 실시예를 나타내는 순서도이다.
도 7은 도 6의 S224 단계에 따라 객체 탐지부(130)가 중복 객체들의 대표 객체를 결정하는 방법을 개념적으로 설명하는 도면이다.
도 8 내지 도 10은 본 개시의 일 실시예에 따른, 다양한 크기의 객체들의 통합된 리스트를 생성하는 방법을 구체적인 예시로서 나타내는 순서도들이다.
도 11은 도 1의 객체 유형 분류기(200)가 탐지된 객체의 유형을 분류하는 방법을 설명하는 도면이다.
도 12는 도 1의 객체 유형 필터(300)가 객체 유형을 기준으로 객체 리스트를 필터링하는 방법을 설명하는 도면이다.
도 13는 도 1의 텍스트 유사도 산출부(410)가 텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다.
도 14는 도 1의 비텍스트 유사도 산출부(420)가 비텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다.
도 15는 본 개시의 다양한 실시예에 따른 사용자 인터페이스 객체 탐지 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(2000)를 도시하는 블록도이다.
도 2는 도 1에 도시된 이미지 스케일링부(110)의 동작 방법을 개념적으로 설명하는 도면이다.
도 3은 도 1에 도시된 이미지 윈도윙부(120)의 동작 방법을 개념적으로 설명하는 도면이다.
도 4는 본 개시의 몇몇 실시예에 따른 사용자 인터페이스 객체 탐지 방법을 나타내는 순서도이다.
도 5는 도 4에 도시된 객체 탐지 단계(S200)를 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 도 5에 도시된 제1 객체 리스트 생성 단계(S220)를 구체화한 일 실시예를 나타내는 순서도이다.
도 7은 도 6의 S224 단계에 따라 객체 탐지부(130)가 중복 객체들의 대표 객체를 결정하는 방법을 개념적으로 설명하는 도면이다.
도 8 내지 도 10은 본 개시의 일 실시예에 따른, 다양한 크기의 객체들의 통합된 리스트를 생성하는 방법을 구체적인 예시로서 나타내는 순서도들이다.
도 11은 도 1의 객체 유형 분류기(200)가 탐지된 객체의 유형을 분류하는 방법을 설명하는 도면이다.
도 12는 도 1의 객체 유형 필터(300)가 객체 유형을 기준으로 객체 리스트를 필터링하는 방법을 설명하는 도면이다.
도 13는 도 1의 텍스트 유사도 산출부(410)가 텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다.
도 14는 도 1의 비텍스트 유사도 산출부(420)가 비텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다.
도 15는 본 개시의 다양한 실시예에 따른 사용자 인터페이스 객체 탐지 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(2000)를 도시하는 블록도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 1은 본 개시의 몇몇 실시예에 따른 사용자 인터페이스 객체 탐지 시스템(1000)를 나타내는 블록도이다. 도 1에 도시된 사용자 인터페이스 객체 탐지 시스템(100)은 객체의 ID 정보를 기반으로 객체를 탐지하는 종래기술과 달리 현재 획득한 화면 이미지를 기반으로 상기 화면 이미지에 포함된 UI 객체를 탐지한다. 일반적으로 종래기술은 봇 생성 시점에 객체들의 ID들을 저장하고, 이후 봇을 실행할 때 수행할 이벤트가 참조하는 객체(즉, 탐지하고자 하는 객체, 이하 '목표 객체'라 함)의 ID와 동일한 ID를 저장된 ID 중에서 찾는 방법으로 목표 객체를 탐지한다. 그에 반해, 사용자 인터페이스 객체 탐지 시스템(1000)은 봇 생성 시점에 목표 객체의 이미지를 저장하고, 이후 봇 실행시 현재의 작업 환경을 나타내는 이미지 정보(예를 들어, 현재 컴퓨팅 화면을 캡쳐한 스크린샷 등)로부터 저장된 목표 객체 이미지에 대응하는 객체를 찾는 방법으로 목표 객체를 탐지한다.
따라서, 종래기술은 봇 생성 시점 이후에 목표 객체의 ID 정보가 달라지면 더 이상 목표 객체를 탐지하는 것이 불가능해지는 반면에, 사용자 인터페이스 객체 탐지 시스템(1000)은 작업 환경의 변화로 인해 객체의 모양이나 위치가 달라지더라도 이미지 정보 내에 목표 객체의 이미지만 전부 또는 일부 남아있으면 목표 객체의 탐지가 가능하다.
이하, 도 1을 참조하면, 사용자 인터페이스 객체 탐지 시스템(1000)은 객체 탐지 모듈(100), 객체 유형 분류기(200), 객체 유형 필터(300) 및 유사도 비교 모듈(400)을 포함한다.
객체 탐지 모듈(100)은 화면 이미지로부터 그것에 포함된 UI 객체들을 탐지하고 이를 리스트화하는 구성요소로서, 서로 다른 크기의 객체 탐지에 각각 적합한 복수의 탐지 단계들을 순차적으로 수행하는 단계적 탐지 방법을 통해 다양한 크기의 UI 객체들을 탐지할 수 있다.
일반적으로 화면 이미지는 매우 큰 용량의 데이터이므로, 화면 이미지 전체를 한번에 분석하여 그 안의 객체를 탐지하는 것은 현재의 인공지능 기술로는 매우 어렵고 비효율적이다. 따라서, 전체 화면 이미지를 미리 결정된 크기의 윈도우 조각으로 분할 샘플링하고(이하, '윈도윙'이라고 함), 개별 윈도우 조각마다 객체를 탐지한 후 이를 전체적으로 합산하는 방법으로 화면 이미지 내의 UI를 탐지해야 한다. 이때, 탐지하는 객체의 크기에 비해 분할 샘플링에 사용되는 윈도우가 너무 큰 경우 객체를 탐지하는 성능이 저하되고, 반대로 탐지하는 객체의 크기에 비해 윈도우가 너무 작은 경우 객체의 사이즈가 윈도우의 영역을 벗어나서 객체의 탐지 자체가 불가능해지는 문제가 있다. 이에, 객체 탐지 모듈(100)은 화면 이미지의 배율을 달리하여 축소한 후, 축소된 각 화면 이미지에 대해 객체를 탐지하는 단계적 탐지 방법을 통해 다양한 크기의 객체를 탐지할 수 있도록 한다. 상기 단계적 탐지 방법에 대한 구체적인 내용은 도 5 이하에서 더욱 상세히 후술된다.
객체 탐지 모듈(100)은 그 하위 구성요소로서 이미지 스케일링부(110), 이미지 윈도윙부(120), 객체 탐지부(130) 및 리스트 통합부(140)를 포함할 수 있다.
이미지 스케일링부(110)는 화면 이미지의 배율을 변경하는 구성요소로서, 획득한 화면 이미지를 여러가지 배율로 축소 또는 확대하여 객체 탐지 모듈(100)에 제공한다. 도 2를 참조하면 이미지 스케일링부(110)의 동작 방법이 개념적으로 도시된다.
도 2에서, (a)는 세 개의 UI 객체들(10a, 10b, 10c)을 포함하는 원본 크기의 화면 이미지(10)를 도시하고, (b)는 원본 이미지를(10)를 축소한 축소 이미지(20)를 도시한다. 축소 이미지(20)는 이미지 스케일링부(110)에 의해 원본 이미지(10)를 일정 배율로 축소한 이미지로서, 축소 이미지(20)에도 동일하게 세 개의 UI 객체들(20a, 20b, 20c)이 포함되어 있으나, 그 크기는 축소 이미지(20)와 마찬가지로 일정 배율로 축소되어 있다.
도 2의 (a)를 참조하면, 원본 크기의 화면 이미지(10)에 대해 미리 결정된 크기의 윈도우(11, 12)로 윈도윙을 하는 예가 오른쪽에 도시된다. 상대적으로 크기가 작은 UI 객체들(10b, 10c)은 그 크기가 윈도우(12) 안에 모두 포함되므로 온전히 샘플링되지만, 상대적으로 크기가 큰 UI 객체(10a)는 그 크기가 윈도우(11)의 범위를 벗어나기 때문에 정상적으로 샘플링 되지 않는 문제가 발생한다.
이와 같은 문제를 해결하기 위해, 이미지 스케일링부(110)는 원본 이미지(10)를 가로 대 세로 비율은 동일하게 유지한 채 크기만 축소하여 축소 이미지(20)를 생성한다. 이 경우, 화면 이미지 내 UI 객체도 함께 축소되므로, 원본 이미지(10)에서는 크기가 컸던 UI 객체도 축소 이미지(20)에서는 윈도우 범위를 벗어나지 않게 되어 객체 샘플링이 온전히 수행될 수 있다. 나아가, 이처럼 화면 이미지를 축소하는 경우 탐지 대상 이미지 수도 감소되므로 탐지 속도도 향상될 수 있다.
한편, 화면 이미지를 과도하게 축소하는 경우, 객체의 크기가 너무 작아져 그 결과 소형 객체의 탐지 성능이 저하되는 문제가 발생할 수 있다. 따라서, 탐지하고자 하는 객체의 크기에 맞게 축소 비율을 결정해야 하며, 일 실시예로서, 이미지 스케일링부(110)는 첫 번째 단계에서는 이미지를 가장 작은 배율로 축소하고, 다음 단계에서는 그보다 큰 배율로 이미지를 축소하고, 마지막에는 가장 작은 객체까지 탐지하기 위해 화면 이미지 축소를 하지 않는 방식으로 단계적인 스케일링을 할 수 있다.
도 2의 (b)를 참조하면, 축소 이미지(20)를 윈도윙한 예가 오른쪽에 도시된다. 객체들(20a, 20b, 20c)은 원본 이미지(10)의 객체들(20a, 20b, 20c)보다 그 크기가 축소되어 있으므로, (a)와 동일한 크기의 윈도우(21)로 샘플링 하여도, 모든 UI 객체들(20a, 20b, 20c)이 온전히 샘플링되는 것을 볼 수 있다. 이처럼, 이미지 스케일링부(110)는 화면 이미지에 포함된 다양한 크기의 UI 객체들을 샘플링할 수 있도록 화면 이미지를 다양한 배율로 축소 또는 확대하는 기능을 수행한다.
이미지 윈도윙부(120)는 화면 이미지를 미리 결정된 크기의 윈도우로 윈도윙하여 복수의 윈도우 조각을 생성한다. 도 3을 참조하면, 이미지 윈도윙부(120)의 동작 방법이 개념적으로 도시된다.
도 3에서는, 이미지 윈도윙부(120)는 화면 이미지(30)에 있는 객체들을 윈도윙하기 위해, 미리 결정된 크기의 윈도우로 화면 이미지(30)의 좌상단에서 우하단으로 순차적으로 윈도윙(31, 32, 33,34)하는 예가 도시된다.
화면 이미지(30)를 순차적으로 윈도윙(31, 32, 33, 34)할 때, 각 윈도윙(31, 32, 33, 34)간 간격이 정확히 맞아 떨어지지 않는 경우 윈도윙(31, 32, 33, 34)의 가장자리 부분은 어느 쪽(31, 32, 33, 34)에도 윈도윙 되지 않은 상태로 남겨지는 문제가 발생할 수 있다. 따라서, 이를 방지하기 위해 이미지 윈도윙부(120)는 윈도윙(31, 32, 33, 34)을 수행할 때 인접하는 윈도윙 간(예를 들어, 31과 32, 또는 31과 33) 일정 이상의 영역이 중첩되어 포함되도록 각 윈도윙(31, 32, 33, 34)에 마진을 둘 수 있다.
이미지 윈도윙부(120)가 개별 윈도윙(31, 32, 33, 34)을 완료하면 그 결과로서 윈도우 조각(31a, 32a, 33a, 34a)이 생성된다. 이미지 윈도윙부(120)는 이를 수집하여 윈도우 조각 세트(35)를 구성할 수 있다. 윈도우 조각 세트(35)는 객체 탐지를 위해 객체 탐지부(130)에 제공될 수 있다.
객체 탐지부(130)는 이미지 윈도윙부(120)로부터 하나 이상의 윈도우 조각을 포함하는 윈도우 조각 세트(35)를 입력 데이터로서 수신하고, 수신한 윈도우 조각 세트 내의 객체들을 탐지하여 리스트화 한다.
일 실시예로서, 객체 탐지부(130)는 딥러닝 기반의 인공지능 모델을 포함할 수 있다. 이때, 상기 인공지능 모델은 SSD(Single Shot Multibox Detector), YOLOv3(You Only Look Once Version 3), 또는 Faster R-CNN(Faster Region Convolutional Neural Network) 알고리즘 모델일 수 있다.
일 실시예로서, 객체 탐지부(130)는 제1 배율로 축소된 화면 이미지의 윈도우 조각 세트로부터 객체를 탐지하고, 이어서 제2 배율로 축소된 화면 이미지의 윈도우 조각 세트로부터 객체를 탐지하는 단계적 탐지 방법을 통해 화면 이미지 내의 객체들을 탐지할 수 있다. 앞서 언급한 바와 같이, 상기 단계적 탐지 방법에 대한 구체적인 내용은 도 5 이하에서 후술되므로, 여기서는 그에 대한 자세한 설명은 생략한다.
리스트 통합부(140)는 객체 탐지부(140)가 생성한 객체 리스트들을 통합하여 통합 객체 리스트를 생성한다. 앞서, 설명한 바와 같이 객체 탐지부(140)는 원본 화면 이미지를 여러가지 배율로 변경하고, 각각에 대해 객체를 탐지하는 단계적 탐지 방법을 사용한다. 이 경우, 각 탐지 단계마다 별개의 객체 리스트가 산출되게 되는 데, 리스트 통합부(140)는 이렇게 산출된 단계별 객체 리스트를 수신하여 통합 객체 리스트를 생성한다.
객체 유형 분류기(200)는 리스트 통합부(140)로부터 통합 객체 리스트를 수신하고, 통합 객체 리스트 내의 객체가 텍스트 기반의 객체인지 또는 비텍스트 기반의 객체인지 그 유형을 분류하는 기능을 수행한다. 일반적으로 UI를 구성하는 객체들 중 상당수의 객체는 텍스트 기반으로 구성되어 있으며, 객체가 텍스트인지 또는 비텍스트인지에 따라 이후의 유사도 판단에 사용되는 알고리즘 등이 완전히 달라지게 된다. 따라서, 이후의 유사도 판단 단계 등을 효과적으로 수행하기 위해, 객체 유형 분류기(200)는 사전에 객체 유형을 판별하여 이를 개별 객체 정보에 포함시키는 기능을 수행한다. 객체 유형 분류기(200)의 구체적인 구성에 대해서는 도 11을 참조하여 후술된다.
객체 유형 필터(300)는 객체 유형 분류기(200)가 판별한 객체 유형에 따라 통합 객체 리스트를 필터링하여 유사도 비교 모듈(400)에 제공한다. 가령, 객체 유형 필터(300)는 통합 객체 리스트를 필터링하여 텍스트 유사도 산출부(410)에는 텍스트 기반 객체들만 포함된 객체 리스트를 제공하고, 비텍스트 유사도 산출부(420)에는 비텍스트 기반 객체들만 포함된 객체 리스트를 제공할 수 있다. 객체 유형 필터(300)의 구체적인 구성에 대해서는 도 12를 참조하여 후술된다.
유사도 비교 모듈(400)은 객체 유형 필터(300)로부터 제공된 객체 리스트 내 각 객체들에 대해 목표 객체와의 유사도를 산출한다. 그리고, 유사도 비교 모듈(400)은 산출된 유사도를 기반으로, 가장 높은 유사도를 갖는 객체를 목표 객체로 결정한다. 일 실시예로서, 유사도 비교 모듈(400)은 그 하위 구성요소로서 텍스트 유사도 산출부(410) 및 비텍스트 유사도 산출부(420)를 포함할 수 있다.
텍스트 유사도 산출부(410)는 목표 객체가 텍스트 기반 객체인 경우, 객체 유형 필터(300)가 제공하는 텍스트 객체 리스트 내의 각 객체들에 대해 목표 객체와의 유사도를 산출하고, 산출된 유사도를 기반으로 가장 높은 유사도를 갖는 객체를 목표 객체로 결정한다. 일 실시예로서, 텍스트 유사도 산출부(410)는 광학 문자 인식 모듈 (Optical Character Recognition, 이하 'OCR'이라 함)을 포함할 수 있다. 텍스트 유사도 산출부(410)의 구체적인 구성에 대해서는 도 13을 참조하여 후술된다.
비텍스트 유사도 산출부(420)는 목표 객체가 비텍스트 기반 객체인 경우, 객체 유형 필터(300)가 제공하는 비텍스트 객체 리스트 내의 각 객체들에 대해 목표 객체와의 유사도를 산출하고, 산출된 유사도를 기반으로 가장 높은 유사도를 갖는 객체를 목표 객체로 결정한다. 이때 비텍스트 기반 객체는 이미지 기반 객체일 수 있다. 비텍스트 유사도 산출부(420)의 구체적인 구성에 대해서는 도 14를 참조하여 후술된다.
한편, 상기 사용자 인터페이스 객체 탐지 시스템(1000)의 구성 중 객체 탐지부(130), 객체 유형 분류기(200), 텍스트 유사도 산출부(410), 또는 비텍스트 유사도 산출부(420)는 딥러닝 기반의 인공지능 모델을 포함할 수 있다.
이 때 사용되는 상기 인공지능 모델은 복수개의 층과 각 층을 구성하는 복수개의 노드로 이루어진 그래프 구조의 인공신경망을 포함할 수 있고, 상기 복수개의 층은 하나 이상의 입력층, 하나 이상의 은닉층 및 하나 이상의 출력층을 포함할 수 있다. 입력층은 인공신경망의 층 구조에서 분석/학습하고자 하는 데이터를 입력 받는 층을 의미하고, 출력층은 인공신경망의 층 구조에서 결과값이 출력되는 층을 의미한다. 은닉층은 인공신경망의 층 구조에서 입력층과 출력층을 제외한 모든 층을 의미한다. 인공신경망은 뉴런의 연속된 층으로 구성되어 있으며, 각 층의 뉴런은 다음 층의 뉴런에 연결되어 있다. 은닉층 없이 입력층과 출력층을 바로 연결하면 각 입력이 다른 입력에 상관없이 독립적으로 출력에 기여하여 정확한 결과를 얻기 어렵다. 실제로는 입력 데이터가 상호 의존적이고 서로 결합되어 복잡한 구조로 출력에 영향을 미치므로, 은닉층을 추가하여 은닉층의 뉴런이 최종 출력에 영향을 미치는 입력 간의 미묘한 상호작용을 잡아내게 된다.
이처럼, 객체 탐지부(130), 객체 유형 분류기(200), 텍스트 유사도 산출부(410), 또는 비텍스트 유사도 산출부(420)에 딥러닝 기반의 인공지능 모델을 사용하게 되면 작업 환경 상의 변화 뿐만 아니라 목표 객체 자체에 시각적 변화가 발생하는 상황에서도 목표 객체를 탐지해 낼 수 있는 장점이 있다.
지금까지 설명한 사용자 인터페이스 객체 탐지 시스템(1000)에 따르면, 화면 이미지를 기반으로 화면에 포함된 객체를 정확히 탐지할 수 있다. 그에 따라, ID 정보를 참조하지 않고도 목표로 하는 객체를 찾는 것이 가능하다.
또한, 사용자 인터페이스 객체 탐지 시스템(1000)은 단계적 탐지 방법을 적용하므로, 이를 통해 객체의 크기에 관계없이 다양한 크기의 객체들을 탐지할 수 있다. 또한, 봇 생성 시점과 작업 환경이 달라진 경우에도 이미지를 기반으로 목표 객체를 정확히 탐지할 수 있으므로, 다양한 작업 환경에서 RPA 및 IPA를 활용할 수 있는 기술적 기반이 제공될 수 있다.
도 4는 본 개시의 몇몇 실시예에 따른 사용자 인터페이스 객체 탐지 방법을 나타내는 순서도이다. 도 4를 참조하면, 본 실시예에 따른 사용자 인터페이스 객체 탐지 방법은 S100 단계 내지 S500 단계의 다섯 단계로 구성된다. 도 4 이하에서, 각 방법의 단계에서 주어가 명시되지 않은 경우 그 수행 주체는 도 1의 사용자 인터페이스 객체 탐지 시스템(1000)임을 전제한다.
S100 단계에서, 사용자 인터페이스 객체 탐지 시스템(1000)은 목표 객체를 탐지하기 위해 화면 이미지를 획득한다. 일 실시예로서, 상기 화면 이미지는 현재 컴퓨팅 화면을 캡쳐한 스크린샷일 수 있으나, 이에 한정되지는 않는다.
S200 단계에서, 사용자 인터페이스 객체 탐지 시스템(1000)은 상기 획득한 화면 이미지의 배율을 달리하여 상기 화면 이미지 내의 객체들을 탐지한다. 예를 들어, 사용자 인터페이스 객체 탐지 시스템(1000)은 화면 이미지 내의 상대적으로 큰 객체들을 탐지하기 위해 상대적으로 작은 제1 배율로 화면 이미지를 축소한다(즉, 상대적으로 더 많이 화면 이미지를 축소한다). 그리고, 제1 배율로 축소된 화면 이미지에 포함된 객체들을 탐지하여 제1 객체 리스트를 생성한다. 이어서, 사용자 인터페이스 객체 탐지 시스템(1000)은 화면 이미지 내의 상대적으로 작은 객체들을 탐지하기 위해 상대적으로 큰 제2 배율로 화면 이미지를 축소한다(즉, 상대적으로 더 적게 화면 이미지를 축소한다). 그리고, 제2 배율로 축소된 화면 이미지에 포함된 객체들을 탐지하여 제2 객체 리스트를 생성한다. 제1 객체 리스트 및 제2 객체 리스트는 통합되어 한 개의 통합 객체 리스트로 구성될 수 있다.
S300 단계에서, 사용자 인터페이스 객체 탐지 시스템(1000)은 통합 객체 리스트 내의 탐지된 객체들에 대해 유형을 분류하고, 분류 결과를 각 객체의 객체 정보에 포함시키거나 각 객체에 태깅(tagging)한다. 예를 들어, 사용자 인터페이스 객체 탐지 시스템(1000)은 객체 리스트 내의 개별 객체들이 텍스트 기반 객체인지 또는 비텍스트 기반 객체인지 판단하고, 그 결과에 따라 개별 객체가 텍스트 기반 객체이면 텍스트 기반 객체라는 정보를 해당 객체의 객체 정보에 포함시킨다. 유사하게, 개별 객체가 비텍스트 기반 객체이면 비텍스트 기반 객체라는 정보를 해당 객체의 객체 정보에 포함시킨다.
일 실시예로서, 사용자 인터페이스 객체 탐지 시스템(1000)은 개별 객체에 대한 유형 분류 결과 텍스트 기반 객체로 판단되면, 어떤 언어 기반의 텍스트로 구성되어 있는지(예를 들어, 영어, 한글, 기타언어, 또는 다국어 등) 그 구성 언어를 추가로 분류할 수 있다.
S400 단계에서, 사용자 인터페이스 객체 탐지 시스템(1000)은 통합 객체 리스트를 객체 유형을 기준으로 필터링하여 텍스트 객체 리스트 또는 비텍스트 객체 리스트를 추출한다. 가령, 사용자 인터페이스 객체 탐지 시스템(1000)은 통합 객체 리스트를 텍스트 유형 필터에 통과시켜 비텍스트 객체들이 제거된 텍스트 객체 리스트를 추출할 수 있다. 유사하게, 사용자 인터페이스 객체 탐지 시스템(1000)은 통합 객체 리스트를 비텍스트 유형 필터에 통과시켜 텍스트 객체들이 제거된 비텍스트 객체 리스트를 추출할 수 있다.
S500 단계에서, 사용자 인터페이스 객체 탐지 시스템(1000)은 S400 단계에서 필터링된 텍스트 객체 리스트 또는 비텍스트 객체 리스트로부터, 객체간 유사도를 기반으로 목표 객체를 결정한다.
이때, 사용자 인터페이스 객체 탐지 시스템(1000)은 목표 객체의 유형 정보를 획득하여, 목표 객체가 텍스트 기반 객체인 경우에는 텍스트 객체 리스트 내의 객체들 중에서 목표 객체와의 유사도가 가장 높은 객체를 목표 객체로 결정하고, 목표 객체가 비텍스트 기반 객체인 경우에는 비텍스트 객체 리스트 내의 객체들 중에서 목표 객체와의 유사도가 가장 높은 객체를 목표 객체로 결정한다.
일 실시예로서, 텍스트 객체 리스트 또는 비텍스트 객체 리스트 내의 각 객체들과 목표 객체 간의 유사도는 딥러닝 기반의 인공지능 모델에 의해 산출될 수 있다.
본 실시예에 따른 사용자 인터페이스 객체 탐지 방법에 의하면, 화면 이미지를 기반으로 화면에 포함된 객체를 정확히 탐지할 수 있다. 그에 따라, ID 정보를 참조하지 않고도 목표로 하는 객체를 찾는 것이 가능하다. 또한, 봇 생성 시점과 작업 환경이 달라진 경우에도 이미지를 기반으로 목표 객체를 정확히 탐지할 수 있다.
도 5는 도 4에 도시된 객체 탐지 단계(S200)를 구체화한 일 실시예를 나타내는 순서도이다. 도 5를 참조하면, S200 단계는 S210 단계 내지 S250 단계의 다섯 단계로 구성된다.
S210 단계에서, 화면 이미지를 제1 배율로 스케일링하여 축소된 제1 화면 이미지를 생성한다. 이때, 제1 배율은 상기 화면 이미지 내의 상대적으로 큰 객체를 탐지하기 위한 배율로서, 상대적으로 작은 배율일 수 있다.
S220 단계에서, 제1 배율의 축소된 제1 화면 이미지로부터 객체를 탐지하여 제1 객체 리스트를 생성한다.
S230 단계에서, 화면 이미지를 제2 배율로 스케일링하여 축소된 제2 화면 이미지를 생성한다. 이때, 제2 배율은 상기 화면 이미지 내의 상대적으로 작은 객체를 탐지하기 위한 배율로서, 상대적으로 작은 배율일 수 있다.
일 실시예로서, 이때 제2 배율은 1 배율일 수 있다. 이 경우, 제2 배율로 축소된 제2 화면 이미지는 원본 화면 이미지와 동일한 배율의 이미지일 수 있다.
일 실시예로서, 상기 제2 배율로 축소된 제2 화면 이미지는 상기 제1 객체 리스트에 포함된 객체들이 마스킹된 화면 이미지 일 수 있다. 이는 제1 화면 이미지에서 탐지되었던 객체가 제2 화면 이미지에서 다시 반복 탐지되는 것을 방지하기 위함이다.
S240 단계에서, 제2 배율의 축소된 제2 화면 이미지로부터 객체를 탐지하여 제2 객체 리스트를 생성한다.
S250 단계에서, 앞서 생성한 제1 객체 리스트 및 제2 객체 리스트를 통합하여 통합 객체 리스트를 생성한다.
한편, 여기서는 서로 다른 배율로 축소된 두 개의 화면 이미지로부터 각각 객체를 탐지하는 경우를 예시하였지만, 본 개시의 범위는 이에 한정되지 않는다. 예를 들어, 도 8 내지 도 10의 실시예에서와 같이 서로 다른 배율로 축소된 화면 이미지가 세 개 이상인 경우도 가능하며, 반대로 서로 다른 배율로 축소된 화면 이미지가 한 개인 경우도 또한 가능하다.
도 6은 도 5에 도시된 제1 객체 리스트 생성 단계(S220)를 구체화한 일 실시예를 나타내는 순서도이다. 도 6을 참조하면, S220 단계는 S221 단계 내지 S225 단계의 다섯 단계로 구성된다.
S221 단계에서, 제1 배율의 화면 이미지를 윈도윙하여 제1 윈도우 조각을 획득한다. 화면 이미지를 윈도윙하는 구체적인 방법은 앞에서 도 3에서 상술하였으므로 여기서는 그에 대한 구체적인 설명을 생략한다.
S222 단계에서, 획득한 제1 윈도우 조각으로부터 객체를 탐지한다. 이때, 제1 윈도우 조각(즉, 이미지)로부터 객체를 탐지하기 위해 딥러닝 기반의 인공지능 모델이 사용될 수 있음은, 앞서 도 1에서 설명한 바와 같다.
S223 단계에서, S222 단계의 탐지 결과에 따라 조각 별 객체 리스트를 출력한다.
S224 단계에서, 조각 별 객체 리스트를 기반으로 중복된 객체들에 대해 대표 객체를 결정한다. 한 개의 화면 이미지는 윈도윙 과정에서 여러 개의 윈도우 조각들로 분할된다. 그 과정에서, 각 윈도우 조각들 간에 서로 중첩되는 영역이 존재할 수 있으므로, 결과적으로 각 윈도우 조각에 대해 생성되는 객체 리스트들은 동일한 객체를 서로 중복하여 포함할 수 있다. 따라서, S224 단계에서는 각 조각 별 객체 리스트를 통합하여 탐지된 객체 들을 수집한 후, 그 중 중복되는 객체들이 있는 경우 하나의 대표 객체를 결정하고 나머지 중복되는 객체들은 제거한다. 이하, 대표 객체 결정 및 중복되는 객체들을 제거하는 방법에 대해 도 7을 참조하여 자세히 설명하기로 한다.
도 7은 도 6의 S224 단계에 따라 객체 탐지부(130)가 중복 객체들의 대표 객체를 결정하는 방법을 개념적으로 설명하는 도면이다. 도 7의 실시예에서는 중복된 객체들 중 가장 넓은 영역을 갖는 객체를 대표 객체로 결정하고 나머지 중복된 객체들을 제거하는 방법이 예시된다.
이하 도면을 참조하여 설명하면, 도 7의 (a)에는 예시적인 화면 이미지(40)가 도시된다. 화면 이미지(40)의 중앙에는 객체 'A'가 위치한다. 도 7의 (b)는 화면 이미지(40)를 윈도윙하여 객체를 탐지하는 예시적인 방법을 도시한다.
도 7의 (b)를 살펴보면, 여러 번의 순차적인 윈도윙을 통해 얻어지는 복수의 윈도우 조각들(41, 42, 43, 44, 45, 46, 47, 48, 49)이 도시된다. 윈도우 조각들(41, 42, 43, 44, 45, 46, 47, 48, 49)은 화면 이미지(40)의 서로 다른 영역을 샘플링하며, 그 샘플링한 영역 내에 객체 'A'를 적어도 일부는 포함하고 있다. 따라서, 윈도우 조각들(41, 42, 43, 44, 45, 46, 47, 48, 49)로부터 객체를 탐지하는 경우, 각각의 조각들에 대해 모두 객체 'A'가 탐지될 것이다.
한편, 윈도우 조각들(41, 42, 43, 44, 45, 46, 47, 48, 49)은 객체 'A'의 서로 다른 부분들을 샘플링하고 있기 때문에, 그로부터 탐지되는 객체들 또한 서로 상이할 수 있다. 예를 들어, 첫 번째 윈도우 조각(41)의 경우 객체 'A'의 좌상단부를 샘플링하므로 탐지되는 객체(41a) 역시 객체 'A'의 좌상부만을 포함한다. 반면에, 다섯 번째 윈도우 조각(45)의 경우 객체 'A'의 전체를 샘플링하므로 탐지되는 객체(45a)는 객체 'A'를 전부 포함하게 된다.
이처럼, 서로 형태가 다른 어떤 객체들이 중복 객체인지를 판별하는 방법은 여러가지가 있을 수 있다. 예를 들어, 일 실시예로서, 각 객체들의 좌표를 확인하여 이를 기반으로 각 객체들이 차지하는 화면 이미지(40)상의 영역을 결정하고, 상기 결정된 영역이 서로 중첩되는 객체들을 서로 중복 객체인 것으로 판별할 수 있다. 또는, 다른 실시예로서, 탐지된 객체들의 이미지 유사도를 분석하여 서로 일정 이상 유사한 것으로 판정되는 경우 해당 객체들을 중복 객체로 판별할 수도 있다. 여기서는, 상기 객체들의 좌표에 기반하여 중복 객체를 판별하는 방법을 통해 중복 객체를 확인하는 것으로 가정한다.
이를 전제로 도 7 (b)를 살펴보면, 윈도우 조각들(41, 42, 43, 44, 45, 46, 47, 48, 49)로부터 탐지되는 객체들(41a, 42a, 43a, 44a, 45a, 46a, 47a, 48a, 49a)은 화면 이미지(40) 상에서 그 영역이 서로 중첩되므로, 서로 중복 객체인 것으로 판별된다. 가령, 첫 번째 객체(41a)와 아홉 번째 객체(49a)는 그 영역이 서로 중첩되지 않는 것처럼 보이나, 다섯 번째 객체(45a)를 기준으로 판단하면 첫 번째 객체(41a)는 다섯 번째 객체(45a)와 영역이 중첩되고 있고 마찬가지로 아홉 번째 객체(49a)도 다섯 번째 객체(45a)와 영역이 중첩된다. 이처럼, 하나의 객체(45a)와의 관계에서 중첩되는 영역을 갖는 모든 객체들(41a, 49a)은 서로 중복 객체인 것으로 볼 수 있다.
이러한 중복 객체들은 동일한 하나의 객체를 서로 중복하여 나타내고 있으므로, 정확한 객체 탐지를 위해서는 이러한 중복 상태를 제거할 필요가 있다. 이를 위해, 본 실시예에서는 탐지된 중복 객체들(41a, 42a, 43a, 44a, 45a, 46a, 47a, 48a, 49a) 중 하나의 객체를 대표 객체로 결정하고, 대표 객체를 제외한 나머지 객체들은 삭제하는 방법으로 중복 상태를 제거한다.
이때, 대표 객체는, 중복 객체들(41a, 42a, 43a, 44a, 45a, 46a, 47a, 48a, 49a) 중 화면 이미지(40) 상에서 가장 넓은 영역(또는, 면적)을 갖는 객체(45a)가 대표 객체가 되는 것으로 정할 수 있다. 동일한 객체를 나타내는 복수의 중복 객체들 중에서 가장 넓은 영역을 갖고 있다는 것은, 곧 그 객체의 이미지 정보를 가장 많이 잘 포함하고 있다는 의미이므로 가장 넓은 영역의 객체를 대표 객체로 지정하는 것이다.
도 7 (b)의 실시예를 참조하면, 다섯 번째 객체(45a)가 중복 객체들(41a, 42a, 43a, 44a, 45a, 46a, 47a, 48a, 49a) 중 가장 넓은 영역을 가지고 있으므로, 상기 다섯 번째 객체(45a)를 대표 객체로 지정하고 나머지 중복 객체들(41a, 42a, 43a, 44a, 46a, 47a, 48a, 49a)은 삭제하게 된다.
S225 단계에서, S221 단계 내지 S224 단계를 통해 탐지된 객체들에 대해 바운드 박스를 조정하고, 이를 기반으로 제1 객체 리스트를 생성한다.
이때, 바운딩 박스 조정은 각 객체들의 좌표를 원본 화면 이미지에 대응하는 좌표로 조정하는 단계이다. 앞서 S221 단계 내지 S224 단계에서 탐지된 객체들은 축소된 화면 이미지를 기준으로 탐지된 것이므로, 탐지된 객체들의 좌표 역시 제1 배율에 의해 스케일링된 좌표를 갖게 된다. 따라서, 원래 화면 이미지에서의 좌표를 정확히 반영하기 위해서는, 바운딩 박스 조정을 통해 탐지된 좌표 값을 원래 화면 이미지의 좌표 값으로 조정해야 한다. 이는, 화면 이미지를 축소한 배율의 역을 객체의 좌표 값에 곱하는 방식으로 수행될 수 있다. 예를 들어, 화면 이미지를 0.5배로 축소한 경우 탐지된 객체들의 좌표를 2배로 증가시키는 방식으로 바운딩 박스를 조정할 수 있다.
한편, 본 실시예는 제1 객체 리스트 생성 단계(S220) 구체화한 실시예이나, 유사한 단계들이 도 5의 S240 단계에도 유사하게 적용될 수 있다. 즉, 배율이 제1 배율 및 제2 배율로 다른 것을 제외하고는 본 실시예의 각 단계들이 S240 단계에도 그대로 적용될 수 있다.
도 8 내지 도 10은 본 개시의 일 실시예에 따른, 다양한 크기의 객체들의 통합된 리스트를 생성하는 방법을 구체적인 예시로서 나타내는 순서도들이다. 본 실시예에서는 큰 크기의 대형 객체, 중간 크기의 중형 객체 및 작은 크기의 소형 객체를 각각 탐지하기 위해 화면 이미지를 세 개의 배율로 스케일링하여 각각 객체를 탐지하는 단계적 탐지 방법의 예를 설명한다. 이하에서는, 먼저 도 8을 참조하여 설명한다.
S1110 단계에서, 화면 이미지를 작은 배율로 축소한다. 이때, 축소되는 배율은 예를 들어, 0.5배일 수 있다. (즉, 화면 이미지를 1/2로 축소)
S1120 단계에서, 상기 축소된 화면 이미지 내의 대형 객체를 탐지한다. 이를 위해, 먼저 윈도윙을 통해 윈도우 조각을 획득한 후, 획득한 윈도우 조각 각각에 대해 객체 탐지를 수행한다.
S1130 단계에서, 각 윈도우 조각 별로 객체를 탐지한 결과에 따라 객체 리스트를 출력한다.
S1140 단계에서, 조각 별 객체 리스트를 통합하여 탐지된 객체들을 수집하고, 상기 탐지된 객체들 중 중복된 객체들의 대표 객체를 생성한다. 대표 객체 생성 후 중복된 객체들은 모두 삭제한다.
S1150 단계에서, 각 객체들에 대해 바운딩 박스 조정을 통해 원래 화면 이미지의 좌표 값으로 각 객체들의 좌표 값을 조정한다. 그리고, 좌표 값이 조정된 객체들을 리스트하여 대형 객체 리스트를 생성한다.
다음으로, 도 9를 참조하여 설명한다.
S1210 단계에서, 화면 이미지에서 대형 객체 리스트에 포함된 대형 객체들을 마스킹 처리한다. 이는 앞서 대형 객체 리스트 생성 단계에서 탐지되었던 객체가 중형 객체 리스트 생성 단계에서 다시 반복 탐지되는 것을 방지하기 위함이다.
S1220 단계에서, 상기 마스킹 처리된 화면 이미지를 중간 배율로 축소한다. 이때, 축소되는 배율은 예를 들어, 0.7배일 수 있다. (즉, 화면 이미지를 7/10로 축소)
S1230 단계에서, 상기 0.7배 축소된 화면 이미지 내의 중형 객체를 탐지한다. 이를 위해, 먼저 윈도윙을 통해 윈도우 조각을 획득한 후, 획득한 윈도우 조각 각각에 대해 객체 탐지를 수행한다.
S1240 단계에서, 각 윈도우 조각 별로 객체를 탐지한 결과에 따라 객체 리스트를 출력한다.
S1250 단계에서, 조각 별 객체 리스트를 통합하여 탐지된 객체들을 수집하고, 상기 탐지된 객체들 중 중복된 객체들의 대표 객체를 생성한다. 대표 객체 생성 후 중복된 객체들은 모두 삭제한다.
S1260 단계에서, 각 객체들에 대해 바운딩 박스 조정을 통해 원래 화면 이미지의 좌표 값으로 각 객체들의 좌표 값을 조정한다. 그리고, 좌표 값이 조정된 객체들을 리스트하여 중형 객체 리스트를 생성한다.
다음으로, 도 10을 참조하여 설명한다.
S1310 단계에서, 앞서 S1210 단계에서 마스킹 처리된 화면 이미지에 중형 객체 리스트에 포함된 중형 객체들을 추가 마스킹 처리한다. 이는 앞서 대형 객체 리스트 생성 단계 및 중형 객체 리스트 생성 단계에서 탐지되었던 객체가 소형 객체 리스트 생성 단계에서 다시 반복 탐지되는 것을 방지하기 위함이다.
S1320 단계에서, 화면 이미지 내의 중형 객체를 탐지한다. 이를 위해, 먼저 윈도윙을 통해 윈도우 조각을 획득한 후, 획득한 윈도우 조각 각각에 대해 객체 탐지를 수행한다. 한편, 여기서는 S1310 단계에서 마스킹 처리된 화면 이미지를 축소하지 않고 원래 크기 상태에서 중형 객체를 탐지한다. 이는 소형 객체 탐지를 용이하게 하기 위해 축소되지 않은 화면 이미지를 이용하고자 함이다.
S1330 단계에서, 각 윈도우 조각 별로 객체를 탐지한 결과에 따라 객체 리스트를 출력한다.
S1340 단계에서, 조각 별 객체 리스트를 통합하여 탐지된 객체들을 수집하고, 상기 탐지된 객체들 중 중복된 객체들의 대표 객체를 생성한다. 대표 객체 생성 후 중복된 객체들은 모두 삭제한다.
S1350 단계에서, 탐지된 객체들을 리스트하여 소형 객체 리스트를 생성한다. 소형 객체 리스트 생성 단계에서는 원래 크기의 화면 이미지를 기준으로 객체를 탐지하였으므로, 여기서는 별도의 바운딩 박스 조정이 필요하지 않다.
S1360 단계에서, 지금까지 생성한 대형 객체 리스트, 중형 객체 리스트 및 소형 객체 리스트를 통합하여 통합 객체 리스트를 생성한다.
도 11은 도 1의 객체 유형 분류기(200)가 탐지된 객체의 유형을 분류하는 방법을 설명하는 도면이다. 도 11에서 객체 유형 분류기(200)는 통합 객체 리스트를 입력으로 받을 수도 있지만, 여기서는 설명의 편의를 위해 통합 객체 리스트 내의 개별 객체를 입력으로 받는 경우를 가정한다.
앞서 설명한 것처럼, UI 객체들 중 상당수는 텍스트 기반의 객체들이다. 이 경우, 목표 객체와의 유사도 산출을 위해서는, 해당 객체가 텍스트 기반인지 또는 비텍스트 기반인지 그 유형을 미리 구분하여 유사도 산출을 하는 것이 바람직하다. 왜냐하면, 객체가 텍스트 기반인지 또는 비텍스트 기반인지에 따라 유사도 산출 알고리즘 및 단계가 서로 다르기 때문에, 사전에 객체 유형을 인지하여 그에 적합한 유사도 산출 알고리즘을 적용하는 것이 전체적인 시스템 효율에 있어 크게 유리하기 때문이다.
도 11을 참조하면, 객체 유형 분류기(200)는 입력으로 객체(200a)를 수신한다. 그리고, 수신한 객체(200a)를 객체 유형 분류 모델(210)에 입력하여 객체(200a)의 객체 유형을 출력한다. 이때, 객체 유형 분류 모델(210)은 인공신경망 기반의 객체 유형 분류 모델일 수 있다. 일 실시예로서, 객체 유형 분류 모델(210)은 DarkNet 또는 VGG16 기반의 모델일 수 있다.
일 실시예로서, 객체 유형 분류 모델(210)이 판별한 객체(200a)의 유형이 텍스트 기반 객체인 경우, 객체 유형 분류 모델(210)는 상기 객체(200a)의 텍스트가 기반한 언어의 종류도 판별하여 객체 유형으로서 함께 출력할 수 있다.
객체 유형 분류 모델(210)이 출력한 객체 유형은 정보 결합부(220)로 제공된다. 정보 결합부(220)는 상기 객체 유형 및 객체(200a)를 입력으로 수신하고, 상기 객체(200a)에 상기 객체 유형을 결합하여 출력한다. 이때 정보 결합부(220)는 상기 객체(200a)의 객체 정보에 객체 유형을 포함시키거나 객체(200a)에 객체 유형을 태깅(tagging)하는 방식으로, 객체(200a)에 객체 유형을 결합할 수 있다.
도 12는 도 1의 객체 유형 필터(300)가 객체 유형을 기준으로 객체 리스트를 필터링하는 방법을 설명하는 도면이다. 도 12에서 객체 유형 필터(300)는 객체 유형 정보가 포함된 통합 객체 리스트(300a)를 입력으로 수신한다.
객체 유형 필터(300)는 수신한 통합 객체 리스트(300a)를 텍스트 유형 필터(310) 및 비텍스트 유형 필터(320)에 동시에 제공한다. 이때, 통합 객체 리스트(300a)에는 텍스트 기반 객체와 비텍스트 기반 객체가 함께 포함되어 있을 수 있다.
텍스트 유형 필터(310)는 제공된 통합 객체 리스트(300a) 중에서 비텍스트 기반 객체를 필터링하여, 텍스트 기반 객체만을 출력한다. 이때, 출력되는 텍스트 기반 객체들은 텍스트 객체 리스트(300b)의 형태로 출력될 수 있다.
비텍스트 유형 필터(320)는 제공된 통합 객체 리스트(300a) 중에서 텍스트 기반 객체를 필터링하여, 비텍스트 기반 객체만을 출력한다. 이때, 출력되는 비텍스트 기반 객체들은 비텍스트 객체 리스트(300c)의 형태로 출력될 수 있다.
도 13는 도 1의 텍스트 유사도 산출부(410)가 텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다. 도 13에서 텍스트 유사도 산출부(410)는 텍스트 객체 리스트(410a) 및 목표 객체(410b)를 입력으로서 수신한다.
텍스트 유사도 산출부(410)는 수신한 텍스트 객체 리스트(410a)를 텍스트 인식 모델(411)에 제공한다. 텍스트 인식 모델(411)은 광학 문자 인식(OCR, Optical Character Recognition) 모델로서, 인식할 객체와 상기 인식할 객체에 포함된 텍스트의 언어 종류를 입력으로 받아 인식할 객체에 포함된 텍스트를 읽는다. 일 실시예로서, 텍스트 인식 모델(411)은 Tesseract와 같은 오픈소스 OCR 라이브러리를 참조할 수 있다.
한편, 텍스트 인식 모델(412)은 목표 객체와 상기 목표 객체에 포함된 텍스트의 언어 종류를 입력으로 받아 목표 객체에 포함된 텍스트를 읽는다. 일 실시예로서, 텍스트 인식 모델(412)은 텍스트 인식 모델(411)과 동일한 구성요소로서 구성될 수 있다.
텍스트 인식 모델(411, 412)이 읽어낸 텍스트들은 텍스트 유사도 산출 모델(413)로 제공된다. 텍스트 유사도 산출 모델(413)은 텍스트 객체 리스트(410a) 내 객체로부터 읽어낸 텍스트와 목표 객체(410b)로부터 읽어낸 텍스트를 기반으로, 텍스트 객체 리스트(410a) 내 객체 각각이 목표 객체(410b)와 얼마나 유사한 지를 나타내는 유사도 점수를 산출한다. 유사도 산출의 결과는 목표 객체 선택부(414)로 전달된다. 일 실시예로서, 텍스트 유사도 산출 모델(413)은 코사인 유사도(Cosine Similarity), 자카드 유사도 (Jaccard Similarity), 또는 레벤슈타인 거리법(Levenshtein Distance)을 이용하여 상기 유사도 점수를 산출할 수 있다.
목표 객체 선택부(414)는 상기 유사도 산출 결과 및 텍스트 객체 리스트(410a)를 입력으로 받고, 텍스트 객체 리스트(410a) 내의 객체들 중 목표 객체와의 유사도가 가장 높은 객체가 무엇인지 판단한다. 그리고, 유사도가 가장 높은 것으로 판단된 객체를 목표 객체(410c)로 결정한다.
도 14는 도 1의 비텍스트 유사도 산출부(420)가 비텍스트 객체간 유사도를 기반으로 목표 객체를 결정하는 방법을 설명하는 도면이다. 도 14에서 비텍스트 유사도 산출부(420)는 비텍스트 객체 리스트(420a) 및 목표 객체(420b)를 입력으로서 수신한다.
비텍스트 유사도 산출 모델(421)은 비텍스트 객체 리스트(420a) 내 객체로부터 읽어낸 비텍스트(예를 들어, 이미지)와 목표 객체(420b)로부터 읽어낸 비텍스트(예를 들어, 이미지)를 기반으로, 비텍스트 객체 리스트(420a) 내 객체 각각이 목표 객체(420b)와 얼마나 유사한 지를 나타내는 유사도 점수를 산출한다. 유사도 산출의 결과는 목표 객체 선택부(422)로 전달된다. 일 실시예로서, 비텍스트 유사도 산출 모델(421)은 읽어낸 비텍스트(예를 들어, 이미지)의 특징을 추출한 후 코사인 유사도(Cosine Similarity), 자카드 유사도 (Jaccard Similarity), 또는 레벤슈타인 거리법(Levenshtein Distance)을 이용하여 상기 유사도 점수를 산출할 수 있다. 또는, 비텍스트 유사도 산출 모델(421)은 비텍스트(예를 들어, 이미지) 간의 동일 객체 여부를 판단하는 딥러닝 기반 인공지능 모델을 구성하고, 출력부의 활성화 함수를 시그모이드 함수로 하여 그 결과값을 유사도 점수로 취급하는 방법으로 상기 유사도 점수를 산출할 수도 있다.
목표 객체 선택부(422)는 상기 유사도 산출 결과 및 비텍스트 객체 리스트(420a)를 입력으로 받고, 비텍스트 객체 리스트(420a) 내의 객체들 중 목표 객체와의 유사도가 가장 높은 객체가 무엇인지 판단한다. 그리고, 유사도가 가장 높은 것으로 판단된 객체를 목표 객체(420c)로 결정한다.
이하에서는, 도 15를 참조하여 본 개시의 다양한 실시예에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(2000)에 대하여 설명하도록 한다.
도 15는 컴퓨팅 장치(2000)를 나타내는 하드웨어 구성도이다. 도 15에 도시된 바와 같이, 컴퓨팅 장치(2000)는 하나 이상의 프로세서(2100), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(2200), 버스(2500), 통신 인터페이스(2400)와 컴퓨터 프로그램(2310)을 저장하는 스토리지(2300)를 포함할 수 있다. 다만, 도 15에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 15에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(2100)는 컴퓨팅 장치(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(3100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(2100)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(2000)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(2200)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(2200)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(2300)로부터 하나 이상의 프로그램(2310)을 로드할 수 있다. 메모리(2200)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(2500)는 컴퓨팅 장치(2000)의 구성 요소 간 통신 기능을 제공한다. 버스(2500)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(2400)는 컴퓨팅 장치(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2400)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(2400)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(2400)는 생략될 수도 있다.
스토리지(2300)는 상기 하나 이상의 컴퓨터 프로그램(2310)과 각종 데이터 등을 비임시적으로 저장할 수 있다. 스토리지(2300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 도 2에서 설명한 화면 이미지를 획득하는 동작, 화면 이미지의 배율을 달리하여 객체를 탐지하는 동작, 탐지된 객체의 유형을 분류하는 동작, 객체 유형을 기준으로 필터링하는 동작, 또는 객체간 유사도를 기반으로 목표 객체를 결정하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또한, 컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 다양한 소프트웨어 구성요소를 포함할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 도 1에서 설명한 이미지 i) 스케일링부(110), 이미지 윈도윙부(120), 객체 탐지부(130), 리스트 통합부(140) 및 이것들을 포함하는 객체 탐지 모듈(100), 또는 ii) 객체 유형 분류기(200), 또는 iii) 객체 유형 필터(300), 또는 iv) 텍스트 유사도 산출부(410) 및 비텍스트 유사도 산출부(420) 및 이것들을 포함하는 유사도 비교 모듈(400)의 일부 또는 전부를 포함하도록 구성될 수 있다.
지금까지 도 1 내지 도 15를 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 15를 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (15)
- 컴퓨터 장치에 의해 수행되는 이미지 기반의 사용자 인터페이스 객체 탐지 방법에 있어서,
화면 이미지를 제1 배율로 스케일링 하는 단계;
상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여, 제1 객체 리스트를 생성하는 단계; 및
상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여, 제2 객체 리스트를 생성하는 단계를 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제1 항에 있어서,
상기 제1 객체 리스트 및 상기 제2 객체 리스트를 기반으로 통합 객체 리스트를 생성하는 단계를 더 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제1 항에 있어서,
상기 제1 객체 리스트를 생성하는 단계는,
상기 제1 화면 이미지를 윈도윙하여 복수의 윈도우 조각을 획득하는 단계;
상기 복수의 윈도우 조각 각각에 대해 객체를 탐지하는 단계; 및
상기 복수의 윈도우 조각 각각에 대응하는 복수의 객체 리스트를 출력하는 단계를 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제3 항에 있어서,
상기 제1 객체 리스트를 생성하는 단계는,
상기 복수의 객체 리스트에 포함된 객체들 중 중복된 객체들에 대해 대표 객체를 결정하는 단계를 더 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제4 항에 있어서,
상기 대표 객체를 결정하는 단계는,
상기 중복된 객체들 중 가장 넓은 영역을 갖는 객체를 상기 대표 객체로 결정하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제3 항에 있어서,
상기 제1 객체 리스트를 생성하는 단계는,
상기 복수의 객체 리스트에 포함된 객체에 대해 바운딩 박스 조정을 수행하는 단계를 더 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제3 항에 있어서,
상기 복수의 윈도우 조각을 획득하는 단계는,
상기 제1 화면 이미지를 미리 결정된 크기의 윈도우 조각으로 분할 샘플링하는 단계를 포함하고,
상기 복수의 윈도우 조각 중 어느 한 윈도우 조각은 다른 한 윈도우 조각과 서로 중첩되는 영역을 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제1 항에 있어서,
상기 제2 화면 이미지는,
상기 제1 객체 리스트에 포함된 객체들이 마스킹된 것인,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 컴퓨터 장치에 의해 수행되는 이미지 기반의 사용자 인터페이스 객체 탐지 방법에 있어서,
화면 이미지를 획득하는 단계;
상기 화면 이미지의 배율을 달리하여 하나 이상의 객체를 탐지하는 단계;
상기 하나 이상의 객체와 목표 객체 사이의 유사도를 산출하고, 상기 산출된 유사도를 기반으로 상기 탐지된 하나 이상의 객체 중에서 목표 객체를 결정하는 단계를 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제9 항에 있어서,
상기 하나 이상의 객체의 유형을 분류하는 단계를 더 포함하고,
상기 목표 객체를 결정하는 단계는,
상기 하나 이상의 객체의 유형에 따라 상기 유사도를 산출하는 방법이 달라지는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제10 항에 있어서,
상기 하나 이상의 객체를 탐지하는 단계는,
상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하는 단계; 및
상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하는 단계를 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제10 항에 있어서,
상기 하나 이상의 객체의 유형을 분류하는 단계는,
상기 하나 이상의 객체의 객체 유형을 출력하는 단계; 및
상기 출력된 객체 유형을 상기 하나 이상의 객체와 결합하는 단계를 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 제12 항에 있어서,
상기 객체 유형이 결합된 상기 하나 이상의 객체를 상기 객체 유형을 기반으로 필터링하는 단계를 더 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 방법. - 프로세서;
상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
상기 컴퓨터 프로그램은,
화면 이미지를 제1 배율로 스케일링 하는 동작,
상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여 제1 객체 리스트를 생성하는 동작, 및
상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여 제2 객체 리스트를 생성하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하는,
이미지 기반의 사용자 인터페이스 객체 탐지 장치. - 컴퓨팅 장치와 결합되어,
화면 이미지를 제1 배율로 스케일링 하는 단계;
상기 화면 이미지를 상기 제1 배율로 스케일링 한 제1 화면 이미지로부터 객체를 탐지하여, 제1 객체 리스트를 생성하는 단계; 및
상기 화면 이미지를 상기 제1 화면 이미지와 상이한 배율로 표시한 제2 화면 이미지로부터 객체를 탐지하여, 제2 객체 리스트를 생성하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되는,
컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190135204A KR20210050771A (ko) | 2019-10-29 | 2019-10-29 | 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190135204A KR20210050771A (ko) | 2019-10-29 | 2019-10-29 | 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210050771A true KR20210050771A (ko) | 2021-05-10 |
Family
ID=75917166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190135204A KR20210050771A (ko) | 2019-10-29 | 2019-10-29 | 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210050771A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102525725B1 (ko) * | 2022-09-30 | 2023-05-02 | 옴니스랩스 주식회사 | 고해상도 이미지에서 객체를 탐지하는 방법 및 이러한 방법을 수행하는 장치 |
KR102553304B1 (ko) * | 2022-11-01 | 2023-07-10 | 주식회사 로지비 | 딥러닝 비전 학습 기반 물류 검수 서버 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130119715A (ko) | 2012-04-24 | 2013-11-01 | 한국전자통신연구원 | 비즈니스 프로세스 자동화 장치 |
-
2019
- 2019-10-29 KR KR1020190135204A patent/KR20210050771A/ko active Search and Examination
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130119715A (ko) | 2012-04-24 | 2013-11-01 | 한국전자통신연구원 | 비즈니스 프로세스 자동화 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102525725B1 (ko) * | 2022-09-30 | 2023-05-02 | 옴니스랩스 주식회사 | 고해상도 이미지에서 객체를 탐지하는 방법 및 이러한 방법을 수행하는 장치 |
KR102553304B1 (ko) * | 2022-11-01 | 2023-07-10 | 주식회사 로지비 | 딥러닝 비전 학습 기반 물류 검수 서버 및 그 동작 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11430259B2 (en) | Object detection based on joint feature extraction | |
Zhang et al. | Research on face detection technology based on MTCNN | |
US11176415B2 (en) | Assisted image annotation | |
CN111385602B (zh) | 基于多层级多模型的视频审核方法、介质及计算机设备 | |
Salman et al. | Classification of real and fake human faces using deep learning | |
WO2016054778A1 (en) | Generic object detection in images | |
US11720789B2 (en) | Fast nearest neighbor search for output generation of convolutional neural networks | |
CN113111804B (zh) | 一种人脸检测的方法、装置、电子设备及存储介质 | |
Shamsuddin et al. | Exploratory analysis of MNIST handwritten digit for machine learning modelling | |
KR20210050771A (ko) | 이미지 기반의 사용자 인터페이스 객체 탐지 시스템 및 방법 | |
US11410016B2 (en) | Selective performance of deterministic computations for neural networks | |
Shi et al. | Layout-aware subfigure decomposition for complex figures in the biomedical literature | |
US11615321B2 (en) | Techniques for modifying the operation of neural networks | |
Singh et al. | A deep learning approach for human face sentiment classification | |
Gao et al. | Chinese character components segmentation method based on faster RCNN | |
CN117441166A (zh) | 用于训练分类器的方法和用于对块进行分类的系统 | |
Kazangirler et al. | UIBee: An improved deep instance segmentation and classification of UI elements in wireframes | |
Mia et al. | Parallelizing Image Processing Algorithms for Face Recognition on Multicore Platforms | |
CN111767710A (zh) | 印尼语的情感分类方法、装置、设备及介质 | |
US11961223B2 (en) | Apparatus for predicting wheel performance in vehicle and method therefor | |
US20230305863A1 (en) | Self-Supervised System for Learning a User Interface Language | |
CN116502117B (zh) | 一种基于ResNet的危险化学品识别方法、装置以及设备 | |
US20230282013A1 (en) | Automated key-value pair extraction | |
RU2786951C1 (ru) | Детектирование повторяющихся паттернов действий в пользовательском интерфейсе | |
US20240202599A1 (en) | Individualized machine learning algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |