목 차
I. UiPath개발자 포럼 소개
I. UiPath Community
II. NuGet
II. 문제해결을 위한 프로세스
I. Problem
II. Python Script
III. Python Script to UiPath
III. ‘Invoke Python’ Flowchart
I. Flowchart
II. Sequence
III. For Each
IV. Q & A
3.
UiPath 개발자 포럼소개
3
UiPath OCR Activity with Python
UiPath Community
https://forum.uipath.com/
문제해결을 위한 프로세스
5
UiPathOCR Activity with Python
Problem
문서는 색상을 포함하고 있는데,
어째서 UiPath OCR Activity는 색상을 인식해주지 않을까?
*RPA 발표인 관계로 getBluePlus.py 코드에 대한 설명은 생략합니다.
문제해결을 위한 프로세스
7
UiPathOCR Activity with Python
Python Script
“문서는 흰색, 검정색, 파란색을 가지고 있군!”
Python Image Library
+ getBlue.py
Function getLocPixData(ImageFile)
“((R, G, B), (x,y))”
8.
문제해결을 위한 프로세스
8
UiPathOCR Activity with Python
Python Script
Blue-Spectrum
(255, 255, 255) +-
(100, 100, 100) ~ (200, 200, 200)
(0, 0, 0) +-
(255, 255, 255) +-
역방향 추론이 필요합니다.
Not-Blue XY 데이터를 통해 Blue XY를 구합니다.
Image Cleaning
9.
문제해결을 위한 프로세스
9
UiPathOCR Activity with Python
Python Script
파란색 글자 위치 데이터를 어떻게 하나의 단어 혹은 연속적 단어로 인식해야 하는가?
Problem
Core Point 1
Core Point 2
클러스터 흡수
eps = 6, minP =5
eps
[DBSCAN] 밀도 기반 클러스터링 -, + +, +
-, - +, - -, + +, +
-, - +, -
[일반적 그래프] [이미지 파일]
‘능동적’인 학습을 위해 DBSCAN이 활용되었습니다.
10.
문제해결을 위한 프로세스
10
UiPathOCR Activity with Python
Python Script
(x-4,y-4) (x+4,y-4)
(x-4,y+4) (x+4,y+4)
(minX,minY)
분류된 단어의 공간을 어떻게 분류할 것인가?
Problem
[DBSCAN Output]
Clustered Data[] 픽셀 수준
11.
문제해결을 위한 프로세스
11
UiPathOCR Activity with Python
Python Script to UiPath
0
1
2
3
4
3_0
6
1_0 1_1 1_2
5
3_1 3_2
5_0 5_1 5_2
Output Input
12.
‘Invoke Python’ Flowchart
12
UiPathOCR Activity with Python
Flowchart
Input
‘Python’ 실행파일 경로를 설정합니다.
Input
‘Python’ 의 스크립트 파일 경로를 설정합니다.
주의사항!
Python의 버전이 3.6+이며,
32-bit만 실행 가능합니다.
또한, UiPath의 버전을 확인해주세요.
13.
‘Invoke Python’ Flowchart
13
Flowchart
UiPathOCR Activity with Python
Python Script
Delay Activity가 없다면,
UiPath는 ‘MS Word 2007.exe’를 실행시킨 뒤,
이미지 파일이 존재하지 않는 해당폴더의 디렉토리 정보를
받아오게 됩니다.
‘Invoke Python’ Flowchart
15
Sequence
UiPathOCR Activity with Python
System.IO.Directory.GetFiles("C:UsersWORKDesktopML_workfloor")
‘Directory’ 클래스를 통해 디렉토리의 파일명을 String[] 형태로 할당합니다.
= 하나의 파일마다 무슨 작업을 할 것인가?
16.
‘Invoke Python’ Flowchart
ForEach
UiPath OCR Activity with Python
파일명이 ‘Cropped’를 포함하고 있다면,
String = 경로명
UiPath.Core.Image = 실질적 이미지 데이터
Input
주의사항!
‘Cropped’ 파일들 중 공백 이미지를 가지고 있는 파일이 존재합니다.
프로세스의 진행을 위해 Try, Catch문을 활용해야 합니다.
17.
‘Invoke Python’ Flowchart
ForEach
UiPath OCR Activity with Python
ResultText.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
Output<String>
“Edityout ScannedDocumentsUsing OpticalCharacterRecognitionrnIfyou want to convert….rn”
’MS Word 2007’의 경우, 개행문자를 새 페이지로 인식합니다.
따라서 해당사항 해결을 위해 ‘rn’을 기준으로 Split 작업을 진행합니다.
SplittedLine(0) = “Edit yout Scanned Documents Using Optical Character Recognition”
SplittedLine(1) = “If you want to convert…”
SplittedLine(2) = “(OCR)will be your solution. OCR is software… “
…
‘Invoke Python’ Flowchart
ForEach
UiPath OCR Activity with Python
변수 String[] SplittedLine은 여전히 존재하고 있습니다.
따라서 공값의 SplittedLine을 작업하여 발생하는
오류를 방지하기 위해 Try, Catch문을 활용해야 합니다.
파란색 글자의 경우
20.
‘Invoke Python’ Flowchart
ForEach
UiPath OCR Activity with Python
일반 글자의 경우
개행을 위해 Type into Activity에서 ‘엔터키’를 누르도록 합니다.