분류 전체보기 27

[#02] 내가 찾은 모델 CRAFT, deep-text-recognition-benchmark

OCR 모델을 이용하여 약국이나 편의점에서 살 수 있는 일반의약품의 상품명을 인식해보는 과정을 담아보는 글. #01 글에 언급한 주소들에서 내가 활용할만한 text detection, recognition 모델을 찾아보았다. Text Detection Model - CRAFT 글자 검출 모델은 'Scene Text Detection'이라는 이름의 Task로 컴퓨터 비전 분야에서 연구되고 있으며 paperswithcode 사이트에서 찾아볼 수 있다.(링크) 내가 만들고 싶은 것은 의약품 포장지에 출력된 글자들인데 보통 한글로 구성이 되어있으며 영어나 숫자도 존재할 수 있으므로 Multi-language Text에 대한 데이터셋으로 연구하고 있는 모델을 살펴볼 필요가 있다. 다행히 이와 관련하여 'ICDAR..

Deep Learning/OCR 2021.03.29

[#01] OCR 모델 조사

OCR 모델을 이용하여 약국이나 편의점에서 살 수 있는 일반의약품의 상품명을 인식해보는 과정을 담아보는 글. 이전 글 요약 OCR은 2단계로 이루어진다 - Text detection + Text recognition - 글자 위치를 찾고 + 어떤 글자인지 인식하자. Pipeline 약 상자를 촬영하면 'Text Detection Model'을 통해 상자에 글씨가 있는 위치들이 네모 박스로 표시된다. 그리고 네모 박스로 표시된 글씨들은 'Text Recognition Model'을 통해 어떤 내용인지 인식하여 알려준다. Text Detection Text Recognition 좋은 Model을 찾아서 최신 Text Detection & Recognition 기술들을 follow-up 하는 방법 중에 하나는..

Deep Learning/OCR 2021.03.29

자료구조론 (C언어) 정리 자료 공유

석사과정 시절에 대학교에서 컴퓨터전공 학생들을 대상으로 자료구조론 수업의 실습 조교를 맡아서 수업을 진행했었다. 우리 학교의 자료구조론 수업은 이론수업과 실습 수업으로 나뉘는데 이론 수업은 지도교수님께서 'Fundamentals of Data Structures in C' 책과 ppt 자료로 수업을 진행하시고 실습에서는 이론 때 배웠던 내용을 복습하고 이를 실제 구현해 볼 수 있게 도와주고 과제를 내주는 방식으로 진행하였다. 2017년 봄학기, 여름학기, 2018년 봄학기에 자료구조론 실습 조교를 맡으면서 만들었던 실습 자료를 공유하려고 한다. 완벽하지는 않지만 그래도 누군가에게 조금이라도 도움이 되었으면 좋겠다. 오류나 질문이 있으시다면 언제든지 댓글 남겨주세요 :) (상업적인 목적으로 배포하시면 절대..

[#00] OCR? 딥러닝을 이용해 문자 인식하기 - 개념 정리

OCR - Optical Character Recognition OCR은 사람이 직접 입력하지 않고 스캐너를 통해 이미지 형태로 읽어들여 데이터의 내용을 분석하고 그림 영역과 글자 영역으로 구분한 후 글자 영역의 문자들을 일반 문서 편집기에 수정, 편집이 가능한 텍스트의 형태로 변환하여 주는 자동 입력 시스템이다. 기존에 거울이나 렌즈 등의 광학 기술을 이용한 광학 문자 인식과 스캐너 및 알고리즘에 의한 디지털 문자 인식은 별개의 영역이엇으나 최근 들어서 광학 문자 인식이라는 말이 디지털 문자 인식을 포함하는 것으로 간주되었다. (위키백과) OCR 과정 (Text Detection - Text Recognition) 전처리(pre-processing) - 글자들이 잘 보여질 수 있게 밝기나 색과 같은 영..

Deep Learning/OCR 2021.03.23

[개념 정리] 음성 신호 처리 개념들 키워드 정리

Text to Speech 분야를 공부하면서 딥러닝 모델을 학습시키기 전에 음성 데이터를 어떻게 input 형태로 변환하여 주는지 궁금했다. 이를 위해 음성 신호를 처리하는 기법들 중 기초적인 개념들에 대해 키워드 식으로 알아보자. Sampling rate, SR(샘플링레이트) - 이산적 신호를 얻기 위한 아날로그 신호의 단위 시간당 샘플링 횟수. - 단위는 헤르츠 Hz (1/s, s^-1) - 샘플링 레이트에 따라 푸리에 변환으로 계산되는 최대 주파수 정보가 정해진다 Discrete Fourier Transform, DFT(이산 푸리에 변환) - 음성 신호를 0 ~ sampling rate Hz 범위에 해당하는 주파수 별 크기(magnitude) & 위상(phase) 값으로 변환 - 그냥 푸리에 변환(..

[정리] Neural Vocoder에 대해 알아보자

이전 글에서는 Text-to-Speech(TTS)의 연구 동향에 대해 알아보았다. 이번 글에서는 TTS에서 Vocoder 부분에 대해 좀 더 자세히 알아보고자 한다. (HiFi-GAN [1] 논문의 introduction 내용을 주로 참고하였음) Vocoder의 역할 Neural Speech Synthesis는 크게 2-stage pipeline으로 이루어져 있다. Text로부터 Mel-spectrogram이나 linguistic feature와 같은 low resolution intermediate representation을 예측 Low resolution representation으로부터 raw waveform audio를 예측 여기서 Vocoder의 역할은 2번째 stage를 수행하는 것이다. 위..

대표적인 TTS Datasets (LJ, KSS, VCTK)

음성 합성 분야에서 주로 사용하는 데이터셋이 있어서 이를 간략하게 정리해 보았다. LJ speech dataset (English) https://keithito.com/LJ-Speech-Dataset/ The LJ Speech Dataset The LJ Speech Dataset This is a public domain speech dataset consisting of 13,100 short audio clips of a single speaker reading passages from 7 non-fiction books. A transcription is provided for each clip. Clips vary in length from 1 to 10 seconds and have keith..

[Intro] Speech Synthesis | Text to Speech (TTS)

Speech Synthesis 혹은 Text to Speech(TTS)로 부르는 음성 합성 연구 분야는 입력 문자에 대응하는 가상의 자연스러운 음성을 생성해내는 것을 목표로 한다. 음성 합성에 대한 연구가 어떻게 진행되어 왔는지 또 딥러닝 기술이 어떻게 접목이 되었는지에 대해 살펴보도록 하자 음성 합성 기술 연결 방식 (Concatenative Synthesis) 초창기 연구 방식인 것 같은 연결 방식은 Unit Selection Synthesis라고도 불린다. 말 그대로 입력에 대응하는 값을 선택(selection)하여 음성을 합성화는 연구 방식이다. 이를 위해 소리를 음편(Speech unit)이라는 가장 작은 단위로 분해해서 데이터베이스에 저장한다. 연결 방식의 음성 합성은 가장 간단하지만 모든 입..

[개발팁] Golang을 사용해서 개발한다면 대소문자에 유의하자...

Golang으로 개발하면서 구조체의 멤버 변수를 만들 때 아무 생각 없이 소문자로 만들었다가 반나절 시간을 허비하고 말았다... Private vs Public members 만일 내가 작성한 구조체가 Exported 될 일이(외부에서 접근) 있는 멤버 변수가 있다면 이를 소문자로 작성하면 안된다. 왜냐하면 소문자로 만들 경우 private member variable이 되기 때문에 접근이 불가능해진다. 따라서! 외부에서 쓰일 멤버 변수는 가장 앞 글자를 대문자로 작성하자!!! The rule is simple, if an identifier is capitalized it will be exported. This manifests itself in golang when converting a struc..

Programming/Go 2020.08.11

[개발팁] torch.nn 과 torch.nn.functional 어느 것을 써야 하나?

파이토치를 쓰다보니 같은 기능에 대해 두 방식(torch.nn, torch.nn.functional)으로 구현 된 것들이 있다. 관련된 글들을 찾아보니 결론은 두 방식 다 같은 결과를 제공해주며 편한 것으로 선택해서 개발하면 된다고 한다. What is the difference between torch.nn and torch.nn.functional? What is the difference between torch.nn and torch.nn.functional? They look like a little same… so, is there any difference between them? discuss.pytorch.org torch.nn.CrossEntropyLoss / torch.nn.funct..