머신러닝&딥러닝(45)
-
병원차트 OCR 전처리 코드 공유 (OpenCV)
지난 번 pytesseract로 휴대폰으로 촬영한 병원차트 OCR을 시도해 본 결과, foundation model로는 인식 성능이 매우 나쁘게 나와서 fine tuning을 시도해 보았다. 그러나, 이미지 퀄리티가 너무 안 좋아서 bounding box도 못 잡길래, 병원 측에 이미지 촬영본 말고 캡처본으로 다시 데이터를 달라고 요청드렸다. 기존 데이터는 이렇게 생겼다. (개인정보는 모두 블러 처리했다.) 위아래, 양옆으로 잘린 글씨 및 불규칙한 촬영 각도로 인해 전처리도 까다로웠고 bbox 잡는 것도 어려웠다. 새로운 데이터는 위와 같이 차트 전체 모습이 캡쳐된 형태여서 훨씬 규칙적이었다. 이 이미지 332장, 총 8,567명의 환자 데이터를 OCR하는 task를 수행하기 위해 전처리를 아래와 같이..
2024.05.03 -
Windows에서 tesseract OCR, pytesseract 환경설정하는 법
Tesseract OCR이란?Tesseract OCR은 오픈소스 광학 문자 인식(OCR) 엔진으로, 다양한 이미지 형식에서 텍스트를 추출할 수 있다. Tesseract는 한국어를 포함한 여러 언어를 지원하며, 사용자가 직접 학습 데이터를 추가하여 성능을 향상시킬 수 있는 기능을 제공한다. Medical Vision Lab에서 새로 주어진 과제로, 휴대폰 카메라로 촬영한 전자의무기록(EMR)을 OCR하여 문서화하는 작업을 수행하고 있다. 본 포스팅에서는 tesseract OCR 환경설정하는 방법에 대해 다루고자 한다. 설치: tesseract.exe 파일, pytesseract파이썬에서 사용 가능한 tesseract인 pytesseract는 라이브러리 형태로 제공한다. pip을 이용해 pytesseract..
2024.04.26 -
ImageNet 데이터셋의 AlexNet을 이용한 분류 (A.Krizhevsky 2012 논문 리뷰)
CNN 모델은 20세기에 등장하여, 1990년대에 들어 폭발적으로 발전했다. 지난 번 리뷰한 1998년의 LeNet-5는 MNIST라는 손글씨 데이터 분류에서 당시 sota를 찍었던 모델인데, 손글씨 데이터셋은 분류할 항목이 숫자(0~9)밖에 없기 때문에 아주 쉬운 태스크이다. https://cascade.tistory.com/40 [CNN] LeNet-5를 활용한 손글씨 인식 (Yann LeCun 1998 논문 리뷰) 패턴 인식은 실용성이 아주 높은 분야이다. 손글씨 인식을 대표로 하는 OCR(Optical Character Recognition)기술, 얼굴 인식, 생체정보 인식 등의 기술은 현재 널리 사용된다. 이러한 기술에 커다란 발전을 cascade.tistory.com 글자 인식, 그 중에서도 ..
2024.04.22 -
생성 모델로 만든 이미지의 평가 방법 (S.Azizi 2023 논문 리뷰)
생성 모델로 만든 이미지가 원본 이미지랑 얼마나 비슷한지 어떻게 비교할까? 이는 해당 생성 모델의 성능과도 직결되는 문제이기 때문에, 적절한 평가 지표가 필요하다. 현재 융합의학기술원에서 디지털 병리 연구의 일환으로 DDPM으로 사구체 이미지를 생성한 synthetic data를 만들고 있는데, 아래와 같이 육안으로 보았을 때도 생성된 이미지의 Good case와 Bad case를 나눌 수 있다. 하지만, 육안으로 생성된 이미지의 퀄리티를 평가하는 것 말고 조금 더 정량적인 방법은 없을까?Synthetic Data를 만드는 근본적인 이유는, Classification 혹은 Segmentation 등 다른 task를 수행하는 모델의 데이터셋을 보강하여 accuracy를 높이기 위함이다. 따라서, 가장 실용..
2024.04.15 -
[머신러닝] 옵티마이저(optimizer)의 종류
옵티마이저(optimizer)란? 옵티마이저 = loss의 최솟값을 찾는 최적화 알고리즘 머신러닝의 목적은 데이터의 학습을 통해 loss 값을 줄여 작업의 정확도를 올리는 것이다. 앞선 포스팅에서, Gradient Descent라는 알고리즘으로 loss의 최솟값을 찾아나가는 방법을 설명했다. 그러나, 단순한 Gradient Descent는 learning rate의 크기나 가속 알고리즘의 유무 등에 따라 수렴하지 않는 경우도 존재했으며, local minimum에 빠지는 경우도 있었다. https://cascade.tistory.com/36 Gradient descent & Backpropagation (Rumelhart 1986 논문 리뷰) 딥러닝 분야에는 다양한 아키텍처가 있다. CNN, RNN, T..
2024.04.12 -
RNNsearch, 최초의 Attention (D.Bahdanau 2014 논문 리뷰)
바닷가 앞 의자에 사과가 하나 놓여 있다. 배경에는 폭죽놀이가 한창이다. 사람의 눈으로 사과를 주시하고 있을 때, 우리는 배경에 어떤 모양의 폭죽이 터지는지와 상관없이 사과라는 개체에 시선을 집중할 수 있다. Attention이라는 알고리즘이 나오기 전의 컴퓨터는 이러한 시선 집중을 할 수 없었다. 원근감, 사물 등의 개념을 그저 픽셀의 RGB 값으로만 인식했었기 때문에, 이미지에서 집중에서 보아야 할 사물이 무엇인지 알지 못했던 것이다. Attention은 컴퓨터가 특정 context에 "주의 집중"할 수 있도록 만들어준 알고리즘이며, 생성형 AI, 인공지능 번역, 자연어 처리, 영상 처리 등 다양한 분야에 사용된다. 또한 오늘날 인공지능 모델들의 아주 중요한 구성요소인 transformer의 기초가 ..
2024.04.02