분류 전체보기 62

[DL] 아인슈타인 합의 표기법(Einstein Summation Notation)

아인슈타인 합의 표기법(Einstein Summation Notation) 정의 아인슈타인 표기법 또는 아인슈타인의 합 규약은 수학의 선형대수학을 물리학에 응용하면서 좌표계에 관한 공식을 다룰 때 유용한 표기 규칙입니다. 이 방법의 핵심은 반복되는 인덱스를 사용하여 합을 나타내고, 이를 통해 더 복잡한 텐서 연산을 단순화하는 것입니다. 수식 특정 index의 집합에 대한 합(시그마)연산을 간결하게 표시하는 방법. Aik⋅Bkj를 수행하면 output dimension은 [I,J] 이 후 I에 대해 summation Einstein Notation(우변) 에서는 다음의 경우 sigma기호를 생략 반복적으로 합산되는데 이용되는 index(k)에 관련된 sigma 최종 결과 값 Cj에 명시되지 않은 index..

DL 2024.04.17

[Voice] 음성 데이터 1D Convolution 설명 및 코드

1. 1D convolution vs 2D convolution CNN(Convolutional Neural Networks)과 1D 컨볼루션의 주요 차이점은 컨볼루션 연산이 적용되는 데이터의 차원성에 있습니다. CNN이라는 용어는 일반적으로 이미지와 같은 2차원 데이터 또는 때에 따라서는 3차원 데이터(예를 들어, 컬러 이미지의 경우 높이, 너비, 컬러 채널)를 처리하는 네트워크를 가리키는 데 사용되며, 이러한 경우에 주로 2D 컨볼루션 연산이 사용됩니다. 1D convolution 반면, 1D 컨볼루션은 시간적 데이터나 시퀀스 데이터와 같은 1차원 데이터를 처리하는 데 적합하며, 시계열 분석이나 텍스트 분석 그리고 오디오 처리 같은 분야에서 주로 사용됩니다. 여기에서 1차원이란 단일 차원의 벡터가 아..

DL/Voice 2024.03.12

[Voice] CNN (Convolutional neural network) 간단 설명

0. 개요 CNN은 주로 이미지 데이터 처리에 강점을 가지고 있지만, 오디오 데이터의 스펙트로그램(시간에 따른 주파수의 분포를 시각화한 것)과 같은 형태로 전처리하면 음성 신호 분석에도 활용할 수 있습니다. CNN으로 음성 데이터 처리를 하기에 앞서 CNN은 무엇인지에 대해 정리하겠습니다. 1. CNN의 역사 LeNet (1998) Yann LeCun에 의해 제안되었습니다. 초기 핸드쓴 문자 인식에 사용됐습니다. CNN의 초기 모델로서 기초적인 컨볼루션 레이어와 풀링 레이어의 구조를 갖고 있습니다. AlexNet (2012) 2012년 ImageNet Large Scale Visual Recognition Challenge에서 우승한 모델입니다. 딥러닝의 인기를 불러일으키는 데 중요한 역할을 했습니다. ..

DL/Voice 2024.03.12

[Voice] 디지털 신호(음성) 처리 개념 정리

0. 기초 용어 Frequency: 주파수 (높이) Amplitude: 진폭 (세기) Phase: 위상 (맵시) 1. 컴퓨터가 소리를 인식하는 방식 연속적인 아날로그 신호를 표본화(Sampling), 양자화(Quantizing), 부호화(Encoding)을 거쳐 이진 디지털 신호(Binary Digital Signal)로 변화시켜 인식하게 됨 표본화(Sampling) 샘플링 단계에서 초당 샘플링 횟수를 정하는데, 이를 Sampling rate라고 함 “1초에 연속적인 시그널을 몇 개의 숫자로 표한할 것인가?” sampling rate가 클수록 즉, 자주 sampling할 수록 원본 데이터와 비슷할 것 → 그러나 그만큼 저장해야 하는 데이터의 양이 늘어나게 됨 sampling rate가 작게 되면 아래와 ..

DL/Voice 2024.03.12

[NLP] Selenium에서 Javascript 명령어 사용하기

1. 개요 파이썬 환경에서 셀레늄을 사용하여 데이터를 수집한 뒤, 전처리를 진행하는 것이 필수적입니다. 그러나, 셀레늄에 요청을 하는 것은 많은 리소스를 소모하여 시간이 오래 걸립니다. 그래서 셀레늄(Selenium)에서 execute_script 메서드를 사용하여 자바스크립트(Javascript) 코드를 실행하여 데이터 수집 전에 전처리를 진행해 비용을 감소시킵니다. 이 방법은 셀레늄의 기본 API만으로는 해결하기 어려운 특정 작업들을 수행할 수 있게 해주고 리소스를 줄여줍니다. 셀레늄에서 페이지 내의 모든 html의 내부 요소의 텍스트 길이를 파악하고 데이터를 수집하려면, for 문으로 매번 셀레늄으로 요청을 해야합니다. 이 때, 1분 정도의 시간이 소요됩니다. script = """ var text..

DL/NLP 2024.03.06

[NLP] Selenium 파일 다운로드 경로 설정

1. 개요 자동화된 크롤링 툴을 만들면서 여러 사이트에 적용되는 범용적인 툴을 개발하고자 했습니다. 그러나, 사이트마다 HTML 구조가 모두 다르기 때문에 자동화가 아닌 반자동 방법을 채택하여 직접 웹 페이지에서 PDF 파일을 클릭하면 어떠한 메시지도 없이 자동으로 지정한 경로로 저장되도록 세팅했습니다. chrome_options = Options() chrome_options.add_argument("--no-sandbox") # 샌드박스 모드 비활성화 chrome_options.add_argument("--disable-dev-shm-usage") # /dev/shm 사용 비활성화 chrome_options.add_argument("--disable-gpu") # GPU 가속 비활성화 download..

DL/NLP 2024.03.06

[NLP] Selenium으로 데이터 수집

1. 개요 머신러닝, 딥러닝 모델 학습을 위해 데이터를 직접 수집하여 정제하는 작업은 ML Framework에서 필수적입니다. 그러나, 모든 데이터를 하나씩 수집하고 라벨링을 진행하는 것은 많은 비용이 소모됩니다. 그렇기 때문에 뉴스 기사, 상품 정보 등 웹페이지의 데이터를 수집할 때, 사용자가 수동으로 수행할 수 있는 모든 작업을 프로그래밍 방식으로 수행하여 비용을 최소화하는 것이 필요합니다. 대표적으로 웹페이지의 데이터를 수집하는 방법은 Beautifulsoup와 Selenium이 있습니다. 이 글에서는 Selenium에 대해 다뤄보도록 하겠습니다. 2. Selenium? request와 Beautifulsoup를 사용해 데이터를 수집하는 방법은 셀레늄에 비해 실행 속도가 굉장히 빠르다는 장점이 있습..

DL/NLP 2024.03.06

[Computer Vision] Extraction of Table Text Information in Documents Using Deep Learning Object Detection (2023)

0. 요약 본 논문에서는 딥러닝 객체 인식을 기반으로 한글 문서 내 표 및 박스의 텍스트 정보를 추출하고 이를 재배열하여 문장화하는 방안을 제시하였습니다. 객체 감지 모델 Yolo를 통해 추출한 문서 내 표 및 박스의 좌표 정보를 토대로 OpenCV와 Google Cloud Platform의 Vision API를 적용하여 문서로부터 표 및 박스 이미지를 분리하고 텍스트를 감지하였습니다. 추출한 표 및 박스 내 텍스트를 문장화하기 위한 규칙 기반의 텍스트 재배열 방법을 제안하였으며 이를 통해 표의 텍스트 정보가 원래 의도된 문장으로 도출되는지 확인하였습니다. 1. 서론 문서 내에는 본문의 텍스트 정보뿐만 아니라 다양한 형태의 그림이나 표 등의 자료를 포함하고 있는 경우가 많습니다. 이러한 자료 중 표 내부..

DL/Computer Vision 2024.02.22

[Computer Vision] Methods of Classification and Character Recognitionfor Table Items through Deep Learning (2021) 리뷰 및 구현

1. 서론 문서 내 표 영역의 경우, 표 내부 항목명과 항목 내용을 인식하는 것은 업무 자동화를 위한 문서 처리 에 있어서 중요한 부분입니다. 하지만 OCR만을 통해서는 표 내부의 문자를 인식하는 것에만 국한되어있고, 해당 내용이 무슨 의미를 가지는지는 인식을하지 못합니다. 따라서 문서 인식을 수행한 후, 사람의 손으로 항목을 분류해야 한다는 불편함이 있으며, 표 영역 내 구분자는 문자 인식의 정확도를 떨어뜨리는 요인이 되기도 합니다. 본 논문에서는 딥러닝 신경망을 통해 표 항목 내의 문자를 인식하고, 이를 통해 문서를 디지털화하는 방법을 제안합니다. 먼저 스캔된 문서 이미지 파일에서 CNN을 통해 표 영역을 검출합니다. 그 후, 표 영역 내 수직선과 수평선의 구분자로 분리된 각 영역을 검출한 후, 각각..

DL/Computer Vision 2024.02.22

[Computer Vision] LayoutLM: Pre-training of Text and Layout for Document Image Understanding (2019) 리뷰

0. 요약 NLP 사전 학습 모델이 널리 사용되고 있지만, 대부분 텍스트에만 집중하고 문서 이미지 이해에 필수적인 레이아웃과 스타일 정보는 간과하고 있습니다. 본 논문에서는 스캔된 문서 이미지 전반에 걸쳐 텍스트와 레이아웃 그리고 이미지 정보를 고려한 joint 모델 LayoutLM을 제안합니다. (BERT + Fast R-CNN) LayoutLM이 문서 이미지 이해를 위해 텍스트와 레이아웃의 정보를 단일 프레임워크에서 학습하는 첫 번째 사례입니다. 이는 여러 Downstream task에서 최고 성능을 달성했습니다. form understanding (70.72 → 79.27) receipt understanding(94.02 → 95.24) document image classification (93..

DL/Computer Vision 2024.02.22