Tech & Development
[ OCR ] 파이썬 Tesseract OCR 활용 (심화1) - Python
[ OCR ] 파이썬 Tesseract OCR 활용 (심화1) - Python
2022.01.11OCR에서는 인식율이 매우 중요하며, 당연한 이야기이기도 하지만 이미지의 품질이 가장 중요합니다. 하지만 현실에서 우리가 인식하려는 이미지의 품질은 매우 좋지 않습니다. 다양한 촬영기기 (카메라/스캐너/팩스 등), 다양환 촬영 환경 (조명/화각/배경 등) 등으로 인해 매우 불량한 상태의 이미지이고 이러한 이미지의 인식율을 올린다는 것은 매우 도전적인 일입니다. 이전 글에서 간단히 Tesseract를 사용해봤다면, 입력된 이미지를 이미지 전처리 과정을 통해 Scan한 이미지로 변경하여 OCR을 수행하는 방법에 대해 소개하겠습니다. 먼저, Tesseract가 설치되어 있지 않다면, Tesseract 설치방법을 참고하시여 설치를 진행해 주시기 바랍니다. Import Packages from imutils.pe..
[ OpenCV ] Basic 2 - 기본 그리기 (선, 점, 사각형, 원)
[ OpenCV ] Basic 2 - 기본 그리기 (선, 점, 사각형, 원)
2022.01.10Drawing with OpenCV OpenCV 기본 그리기 기능을 사용하는 방법을 설명드리겠습니다. OpenCV에는 불규칙한 모양의 다각형을 포함하여 다양한 모양을 그리는 데 사용할 수 있는 여러 그리기 기능이 있지만 가장 일반적인 3가지 OpenCV 그리기 기능은 다음과 같습니다. cv2.line : 지정된 (x, y) 좌표 에서 시작 하여 다른 (x, y) 좌표 에서 끝나는 이미지에 선을 그립니다. cv2.circle : 중심 (x, y) 좌표와 제공된 반지름으로 지정된 이미지에 원을 그립니다. cv2.rectangle : 왼쪽 위 모서리와 오른쪽 아래 모서리 (x, y) 좌표로 지정된 이미지에 직사각형을 그립니다. Import packages import cv2 import numpy as np ..
[ OpenCV ] Basic 1 - 픽셀(Pixel)값 가져오고 설정하기
[ OpenCV ] Basic 1 - 픽셀(Pixel)값 가져오고 설정하기
2022.01.10Getting and Setting Pixels Python과 OpenCV를 이용하여 Pixel값을 가져오고 설정하는 방법을 설명드리겠습니다. Pixel(픽셀)이란? 픽셀(=화소)은 화면을 구성하는 가장 기본이 되는 단위입니다. 디지털 이미지의 경우 수많은 타일의 모자이크 그림과 같은 사각형의 픽셀로 이루어져 있습니다. 대부분의 픽셀은 두 가지 방식으로 표현됩니다. Grayscale/single channel Color Grayscale 이미지에서 각 픽셀은 0에서 255 사이의 값을 가지여, 0은 검정에 해당하고 255는 흰색에 해당합니다. 0에서 255 사이의 값은 다양한 회색 음영으로, 0에 가까울수록 더 어둡고 255에 가까울수록 더 밝아집니다. Color 픽셀은 일반적으로RGB색상 공간으로 표현..
[ OCR ] 파이썬 Tesseract OCR 활용 (기본) - Python
[ OCR ] 파이썬 Tesseract OCR 활용 (기본) - Python
2021.12.23OCR이라는 기술은 정확히는 몰라도 한 번쯤은 들어봤거나 차량 번호판 인식, 카드번호 인식과 같이 이미 직ㆍ간접적으로 경험해 본 적이 있을 것입니다. OCR(Optical character recognition)의 역사는 생각한 것보다 매우 깁니다. 1928년에 독일의 G. Taushek가 미리 준비된 몇 개의 표준 pattern 문자와 입력 문자를 비교하여 표준 pattern 문자와 가장 유사한 것을 해당 문자로 선정하는 pattern matching 기법을 이용한 문자 인식 방법을 특허로 등록하면서 시작되었습니다. 연구소나 기업 등에서 대형 컴퓨터를 통하여 수행되던 것이 PC와 이미지 스캐너의 보급으로 우리 가까이 사용되기 시작하여 역사로는 이미 20년이 넘었다고 볼 수 있습니다. 하지만 굉장히 오래..
[ OCR ] Tesseract, PyTesseract 설치방법 (OCR 개발환경) - Python
[ OCR ] Tesseract, PyTesseract 설치방법 (OCR 개발환경) - Python
2021.12.13Tesseract란? 테서랙트(Tesseract)는 다양한 운영 체제를 위한 광학 문자 인식 엔진입니다. 이 소프트웨어는 Apache License, 버전 2.0에 따라 배포되는 무료 소프트웨어이며 2006년부터 Google에서 개발을 후원했습니다. Tesseract는 1995년 문자 정확도 측면에서 3대 OCR 엔진에 속했으며 Linux, Windows 및 Mac OS X에서 사용할 수 있습니다. 버전 2 이하의 Tesseract에서는 간단한 단일 열 텍스트의 TIFF 이미지만 입력으로 허용했었고, Version 3 부터 Tesseract는 출력 텍스트 형식, OCR 위치 정보 및 페이지 레이아웃 분석을 지원하게 되었고 Leptonica 라이브러리를 사용하여 여러 가지 새로운 이미지 형식에 대한 지원이..
[ Python ] ASCII Character Art 만들기 (100줄)
[ Python ] ASCII Character Art 만들기 (100줄)
2021.12.102018년 삼성 오픈소스 컨퍼런스에 참석 했을 당시 Keynote에서 "호안 산도발(Joan Sandoval)"이라는 크리에이티브 코더의 라이브코딩을 보고 상당히 신선한 자극을 받았습니다. 호안 산도발은 기술, 디자인, 예술의 경계를 연구하는데 관심을 가지고 있으며 다양하고 독특한 프로젝트들을 개발하고 있습니다. 이 날 선보인 건 Hand Coded 라는 공연으로 직접 Loop, Sleep 같은 코드를 입력하면서 리듬을 변화시키며 연주를 하는 거죠. 저에게는 상당히 신선했습니다. 항상 코딩을 상업적/생산성 관점에서 명확한 산출물을 만드는 것을 목표로 했었는데, 이렇게 "개발을 이용해 다양하고 멋진 퍼포먼스를 선보일 수도 있겠구나" 하고 생각했죠. 여기서 일단, DJ가 디제잉 하듯 보이는 영역을 Pytho..
[ Python ] OpenCV (정리)
[ Python ] OpenCV (정리)
2021.12.10
[ Python ] Pillow (정리)
[ Python ] Pillow (정리)
2021.12.10
[ Python ] scikit-image (정리)
[ Python ] scikit-image (정리)
2021.12.10
[ Python ] Image Library
[ Python ] Image Library
2021.12.10Python에서 Image를 처리하기 위해서는 Pillow, OpenCV, PIL 등의 외부 패키지를 설치하여 사용합니다. 아래 각 페이지에서 이미지를 불러오고 저장하는 방법에 대해 소개되어 있습니다. 1. Pillow [ Python ] Pillow (정리) yunwoong.tistory.com 2. scikit-image [ Python ] scikit-image (정리) yunwoong.tistory.com 3. OpenCV [ Python ] OpenCV (정리) yunwoong.tistory.com Image의 타입은 Pillow 의 경우는 PIL.Image.Image 이고 scikit-image과 OpenCV는 numpy.ndarray 입니다. 각 라이브러리마다 장단점이 있지만 정지이미지뿐만 ..
[ Python ] 간단한 MNIST 모델 (OCR) 만들기
[ Python ] 간단한 MNIST 모델 (OCR) 만들기
2021.11.29전체 Source는 Github에 있습니다. 1. Keras로 MNIST 모델생성 from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import Adam from keras.utils import np_utils # MNIST 데이터 읽어 들이기 --- (※1) (X_train, y_train), (X_test, y_test) = mnist.load_data() # 데이터를 float32 자료형으로 변환하고 정규화하기 --- (※2) X_train = X_train.reshape(60000, ..
딥러닝 객체 검출 용어 정리
딥러닝 객체 검출 용어 정리
2021.08.251. Classification 입력으로 주어진 이미지 안의 객체의 종류를 구분하는 행위입니다. 학습방법 : Classification Model은 이미지를 보고 각 폴더에 분류 후 학습 시켜 만듭니다. Model을 만들기 위한 분류 작업은 사람이 하게 됩니다. 생성된 Classification에 이미지를 입력하면 결과 값을 줍니다. 2. Localization 주어진 이미지 안의 Object 가 이미지 안의 어느 위치에 있는지 위치 정보를 출력하는 것입니다. 이제부터는 위치 정보가 필요합니다. (X, Y, W, H) 학습방법 : Localization Model은 이미지의 좌표를 Text 형태로 저장해야 합니다. 좌표 정보를 얻기 위해 Labeling 프로그램을 이용합니다. 더보기 데이타의 형태는 아래..