분류 전체보기 14

[OCR] #4_Naver Clova OCR API 네이버 클로바 OCR 사용해보기

저번 세션에서 tesseract를 사용해 OCR을 실습해봤는데요, 영어 텍스트는 아주 잘 인식하는 반면 한글 텍스트는 한글 트레인 데이터를 추가해줬음에도 형편 없는 성능을 보였습니다. 그래서 한글 텍스트 인식에 효과적이라는 clova api를 사용해볼지 말지 생각해보고 하든 말든 하겠다고 했는데요, 했습니다. 결론적으로 성능은 아주 훌륭했고, 단계별로 차례차례 정리해놓았으니 따라하시기 어렵지 않을 겁니다. 여전히 늘 ocr 실습을 하던 가상환경 ocr_projects에서 진행했습니다.네이버 clova api 서비스를 사용하기 위해선 먼저 naver cloud platform에 가입해야해요. 아래 링크로 접속해 ocr 서비스에 대해 이용신청 버튼을 누르면 회원가입하거나 로그인하는 창으로 안내됩니다. 회원가..

Study/Deep Learning 2024.08.05

[OCR] #3_Python Practice Tesseract & OCR 파이썬 실습

이 세션에서는 Python과 Tesseract, CV2를 사용해 OCR 실습을 진행합니다.mac os이고 프로젝트 간의 패키지 충돌을 방지하기 위해 anaconda 가상환경을 사용해 vscode에서 진행하지만, 문제가 없다면 가상환경 부분을 스킵하고 진행하셔도 무관합니다.Environment Setting anaconda virtual environmentOCR 실습을 위한 anaconda 가상환경을 생성하고 활성화합니다.% conda create -n ocr_project python=3.9% conda activate ocr_project 가상환경을 활성화한 후, pip도 가장 최신버전으로 업그레이드 해주고 이미지를 처리하는 데 사용할 opencv도 설치해줍니다.% python -m pip insta..

Study/Deep Learning 2024.08.02

[OCR] #2_Improving OCR quality with Preprocessing OCR 성능향상을 위한 전처리 방법들

실제로 OCR 모델을 사용해 텍스트 인식을 시도할 때 모델이 텍스트를 잘 읽어내지 못 할 수도 있는데, 모델이 내가 제공한 이미지에 대해 적절한 성능을 보이지 못 하는 데에는 다양한 이유가 있어요. 만약 내가 아주 복잡하고 난해한 폰트를 사용한다거나 아주 드문 언어를 사용하는 게 아니라면, 성능을 향상시키기 위해 모델을 새로 학습시킬 필요도 없고, 딱히 도움이 되지도 않을 거예요. 대신, 모델이 문자를 더 잘 읽을 수 있도록 이미지를 처리해 보여줌으로써 원하는 성능을 얻을 수 있습니다. 이번 세션에서는 바로 이런 전처리 방법들에 대한 이론적 내용을 다룰 거예요.Image Processing많은 OCR 모델은 실제 OCR을 수행하기 전에 내부적으로 여러 이미지 처리 작업을 수행합니다. 사실 대부분의 상황에..

Study/Deep Learning 2024.08.01

[OCR] #1_OCR Intro OCR이란

What is OCR?Optical Character Recognition (OCR): 텍스트 이미지들을 신속하게 기계가 읽을 수 있는 형식으로 변환하기 위해 자동 데이터 추출을 사용하는 기술 광학 문자 인식(OCR)은 텍스트 인식이라고도 불립니다. OCR 기술은 스캔된 문서, 카메라 이미지 및 이미지 전용 PDF에서 데이터를 추출하고 재사용합니다. OCR 소프트웨어는 이미지에서 글자를 찾아내어 단어로 만들고, 그런 다음 단어를 문장으로 조합하여 텍스트 형태의 데이터를 반환하기 때문에 이미지로 존재하는 원본 콘텐츠의 내용으로부터 텍스트를 얻고 이를 편집할 수 있게 합니다. How does OCR work?OCR 소프트웨어는 스캐너를 사용하여 문서에 나타나는 문자의 물리적 형태를 편집 가능한 디지털 텍스트..

Study/Deep Learning 2024.08.01

[Object Detection] #2_OpenCV & YOLOv8 & DeepSORT 객체탐지와 객체추적

저번 세션에서 Object detection, 객체 탐지의 개념과 작동 방식에 대해 알아보았습니다. 이번 세션에서는 추후 실습을 위해 OpenCV와 YOLO 모델, DeepSORT에 대해 다룹니다.OpenCVOpenCV(Open Source Computer Vision Library)는 오픈 소스 컴퓨터 비전 및 머신 러닝 소프트웨어 라이브러리입니다. OpenCV는 컴퓨터 비전 알고리즘부터 머신러닝 알고리즘까지 2500개 이상의 알고리즘을 포함하는데, 얼굴 인식, 객체 식별, 비디오에서 인간 행동 분류, 카메라 움직임 추적, 이동 객체 추적, 3D 모델 추출, 스테레오 카메라에서 3D 포인트 클라우드 생성, 이미지 스티칭을 통한 고해상도 이미지 생성, 이미지 데이터베이스에서 유사한 이미지 찾기, 플래시 ..

Study/Deep Learning 2024.08.01

[Object Detection] #1_Object Detection Intro 객체탐지란

Object Detection(객체탐지)란? Computer Vision: 컴퓨터 비전은 컴퓨터가 인간처럼 세상을 보고 이해할 수 있게 도와주는 인공지능(AI)의 하위 분야이다. 컴퓨터 비전은 이미지를 처리하고 분석하여 정보를 추출하고, 패턴을 인식하며, 그 데이터를 바탕으로 결정을 내린다.  Object Detection: Object detection(객체탐지)는 컴퓨터비전의 기술 중 하나, 그러니까 컴퓨터비전의 하위분야로, 이미지나 비디오에서 객체의 위치와 클래스를 식별하는 작업이다. 전체 이미지를 하나의 클래스나 레이블로 분류하는 image classification과 달리, 이미지나 비디오에 등장하는 하나 이상의 객체를 서로 구분되는 객체로 탐지할 수 있고 각 객체가 어떤 클래스에 속하는지 판별..

Study/Deep Learning 2024.07.31

[Ethereum] #01_Ethereum Intro 이더리움

[Blockchain] 시리즈는 블록체인 기술과 스마트컨트랙트의 컨셉에 대해 이해하는 것을 목표로 이론을 공부하고 간단한 실습을 진행해보았다. Blockchain 시리즈에서 다룬 이론내용은 특정 네트워크에 specific하지 않다. 특히 블록체인 구조와 같은 경우, 비트코인과 이더리움의 구조는 상당히 다르다. 합의 알고리즘도 네트워크마다 다르고, 같은 알고리즘 기반이라고 하더라도 알고리즘에 따라 합의가 이루어지고 거래가 'finalized' 상태가 되는 과정은 네트워크마다 조금씩 다르다. 즉, network-specific하지 않은 내용을 다루었던 지난 시리즈만으로는 Dapp을 개발하기에 부족하다. [Ethereum]시리즈에서는, 이더리움의 블록과 합의알고리즘 등 이더리움 네트워크에 대해 공부하고 스마트..

Study/Blockchain 2024.07.19

[Blockchain] #07_Smart Contract & Solidity 스마트 컨트랙트 배포

지난 장에서 VendingMachine이라는 이름의 smart contract를 작성했다.화면에서 보이는 것처럼 compiler 아이콘에 초록색 체크가 표시되면, 배포가 가능하다는 의미이다. 만약 체크가 표시되지 않는다면, Auto compile란에 체크를 했는지 확인해보자.배포를 위해 deploy 아이콘을 눌러 배포 탭으로 이동한 후, environment를 Remix VM (London)으로 설정한다. 주황색의 'Deploy' 버튼을 눌러 배포한다. 콘솔 창에 초록색 체크와 함께 배포가 성공적으로 완료된 것을 확인할 수 있다. 또, 좌측 하단 Deployed/Unpinned Contracts에서 배포된 스마트컨트랙트의 상태변수와 함수를 볼 수 있다. 이 과정은 remix vm에 배포한 것이고, 이제 ..

Study/Blockchain 2024.07.18

[Blockchain] #06_Smart Contract & Solidity 스마트 컨트랙트 작성

Solidity는 블록체인 smart contract에 쓰이는 전용 언어이다.이더리움을 기준으로, 이더를 보낼 수 있는 기능들을 제공하며, 튜링 완전한 언어이기 때문에 송금 외에도 다양한 기능들을 smart contract에 구현할 수 있다. 이번 장에서는, solidity 문법을 공부하고 직접 smart contract를 작성해본다. 먼저, 솔리디티 언어로 작성된 프로그램이 이더리움 네트워크에서 작동하는 원리를 살펴보자.  솔리디티로 스마트컨트랙트를 작성한다. 인간이 읽고 이해할 수 있는 형태의 소스코드이다.스마트 컨트랙트를 Ethereum Bytecode로 컴파일한다. 컴퓨터가 이해할 수 있는 형태이며, EVM 기반의 블록체인에서 사용할 수 있다.배포의 과정을 통해 EVM 블록체인에 배포되면, 작성한..

Study/Blockchain 2024.07.18

[Blockchain] #05_Smart Contract Introduction 스마트 컨트랙트 개념

3장까지는 블록체인의 기초에 대해 알아보았다. 4장에서부터는 블록체인의 활용에 대해 공부한다.이 장에서는 이더리움 블록체인의 코어라고 할 수 있는 '스마트 컨트랙트'를 이해해보도록 한다. 스마트 컨트랙트의 개념의 이해를 돕기 위해, 먼저 전통적인 계약에 대해 살펴보자.예를 들어 부동산을 사고 팔려고 하는 참여자 2명이 있다고 하자. 매수인은 매도인에게 돈을 지불해야 하고, 매도인은 매수인에게 부동산의 소유권을 주어야 한다. 그런데 만약 두 명만이 이 거래에 참여한다면, 매수인과 매도인은 서로 상대가 약속한 금액과 약속한 부동산을 줄지에 대해 확신할 수 없다. 그래서 전통적인 계약 방식은 중개인을 필요로 한다. 이 예시에서는 부동산 중개업자와 변호사 등에 해당한다. 매수인과 매도인이 합의한 금액에 대해, ..

Study/Blockchain 2024.07.18