UiPath OCR Activity with Python
명지대학교 경영대학 경영정보학과
60155262 김영섭
RPA Awareness Training
목 차
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
UiPath 개발자 포럼 소개
3
UiPath OCR Activity with Python
UiPath Community
https://forum.uipath.com/
UiPath 개발자 포럼 소개
4
UiPath OCR Activity with Python
NuGet UiPath
https://www.nuget.org/packages/UiPath/
문제해결을 위한 프로세스
5
UiPath OCR Activity with Python
Problem
문서는 색상을 포함하고 있는데,
어째서 UiPath OCR Activity는 색상을 인식해주지 않을까?
*RPA 발표인 관계로 getBluePlus.py 코드에 대한 설명은 생략합니다.
문제해결을 위한 프로세스
6
UiPath OCR Activity with Python
Python Script
문제해결을 위한 프로세스
7
UiPath OCR Activity with Python
Python Script
“문서는 흰색, 검정색, 파란색을 가지고 있군!”
Python Image Library
+ getBlue.py
Function getLocPixData(ImageFile)
“((R, G, B), (x,y))”
문제해결을 위한 프로세스
8
UiPath OCR 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
UiPath OCR Activity with Python
Python Script
파란색 글자 위치 데이터를 어떻게 하나의 단어 혹은 연속적 단어로 인식해야 하는가?
Problem
Core Point 1
Core Point 2
클러스터 흡수
eps = 6, minP =5
eps
[DBSCAN] 밀도 기반 클러스터링 -, + +, +
-, - +, - -, + +, +
-, - +, -
[일반적 그래프] [이미지 파일]
‘능동적’인 학습을 위해 DBSCAN이 활용되었습니다.
문제해결을 위한 프로세스
10
UiPath OCR 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
UiPath OCR 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
‘Invoke Python’ Flowchart
12
UiPath OCR Activity with Python
Flowchart
Input
‘Python’ 실행파일 경로를 설정합니다.
Input
‘Python’ 의 스크립트 파일 경로를 설정합니다.
주의사항!
Python의 버전이 3.6+이며,
32-bit만 실행 가능합니다.
또한, UiPath의 버전을 확인해주세요.
‘Invoke Python’ Flowchart
13
Flowchart
UiPath OCR Activity with Python
Python Script
Delay Activity가 없다면,
UiPath는 ‘MS Word 2007.exe’를 실행시킨 뒤,
이미지 파일이 존재하지 않는 해당폴더의 디렉토리 정보를
받아오게 됩니다.
‘Invoke Python’ Flowchart
UiPath OCR Activity with Python
UiPath.Core.Image
UiPath
Python
PIL.JpegImagePlugin.JpegImageFile JPEG
‘Invoke Python’ Flowchart
15
Sequence
UiPath OCR Activity with Python
System.IO.Directory.GetFiles("C:UsersWORKDesktopML_workfloor")
‘Directory’ 클래스를 통해 디렉토리의 파일명을 String[] 형태로 할당합니다.
= 하나의 파일마다 무슨 작업을 할 것인가?
‘Invoke Python’ Flowchart
For Each
UiPath OCR Activity with Python
파일명이 ‘Cropped’를 포함하고 있다면,
String = 경로명
UiPath.Core.Image = 실질적 이미지 데이터
Input
주의사항!
‘Cropped’ 파일들 중 공백 이미지를 가지고 있는 파일이 존재합니다.
프로세스의 진행을 위해 Try, Catch문을 활용해야 합니다.
‘Invoke Python’ Flowchart
For Each
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
For Each
UiPath OCR Activity with Python
파란색 글자 일반 글자
‘Invoke Python’ Flowchart
For Each
UiPath OCR Activity with Python
변수 String[] SplittedLine은 여전히 존재하고 있습니다.
따라서 공값의 SplittedLine을 작업하여 발생하는
오류를 방지하기 위해 Try, Catch문을 활용해야 합니다.
파란색 글자의 경우
‘Invoke Python’ Flowchart
For Each
UiPath OCR Activity with Python
일반 글자의 경우
개행을 위해 Type into Activity에서 ‘엔터키’를 누르도록 합니다.
‘Invoke Python’ Flowchart
Sequence
UiPath OCR Activity with Python
페이지 여백 조정을 위해 Recording(Basic)을 활용합니다.
모든 파일작업이 끝나면 진행하기 위해
Sequence 수준에 있어야 합니다.
Demonstration
22
MediaRecognitionAutomaticMosaicTargeting
https://www.youtube.com/watch?v=ScEIpsNt8yo

UiPath ocr activity with python

  • 1.
    UiPath OCR Activitywith Python 명지대학교 경영대학 경영정보학과 60155262 김영섭 RPA Awareness Training
  • 2.
    목 차 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/
  • 4.
    UiPath 개발자 포럼소개 4 UiPath OCR Activity with Python NuGet UiPath https://www.nuget.org/packages/UiPath/
  • 5.
    문제해결을 위한 프로세스 5 UiPathOCR Activity with Python Problem 문서는 색상을 포함하고 있는데, 어째서 UiPath OCR Activity는 색상을 인식해주지 않을까? *RPA 발표인 관계로 getBluePlus.py 코드에 대한 설명은 생략합니다.
  • 6.
    문제해결을 위한 프로세스 6 UiPathOCR Activity with Python Python Script
  • 7.
    문제해결을 위한 프로세스 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’를 실행시킨 뒤, 이미지 파일이 존재하지 않는 해당폴더의 디렉토리 정보를 받아오게 됩니다.
  • 14.
    ‘Invoke Python’ Flowchart UiPathOCR Activity with Python UiPath.Core.Image UiPath Python PIL.JpegImagePlugin.JpegImageFile JPEG
  • 15.
    ‘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… “ …
  • 18.
    ‘Invoke Python’ Flowchart ForEach UiPath OCR Activity with Python 파란색 글자 일반 글자
  • 19.
    ‘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에서 ‘엔터키’를 누르도록 합니다.
  • 21.
    ‘Invoke Python’ Flowchart Sequence UiPathOCR Activity with Python 페이지 여백 조정을 위해 Recording(Basic)을 활용합니다. 모든 파일작업이 끝나면 진행하기 위해 Sequence 수준에 있어야 합니다.
  • 22.