본문 바로가기

전체 글

(34)
좌충우돌 Tesseract 4.0 LSTM 학습하기 (1) 너무 불친절한 Tesseract 학습 과정을 좌충우돌 시도해본 결과를 기록해 놓는다. Tesseract 학습을 위해서는 학습데이터가 필요한데 두가지 방법으로 학습데이터를 만들 수 있다. 1. 컴퓨터에 설치되어 있는 폰트를 이용하여 자동으로 학습데이터 생성 2. 기존의 이미지로 존재하는 글씨에 직접 라벨링을 해서 학습데이터 생성 (폰트에는 없는 손글씨나 고대상형문자 같은 것을 학습시킬때) 위 두가지 모두 2개의 파일형태가 필요하다 TIF : 글자 이미지 파일 BOX : TIF에 정보를 담은 파일 (레이블링 파일로 보면 되겠다) 위에 1번 방법인 폰트를 이용하여 자동으로 생성할 경우 Tesseract에 포함되어 있는 tesstrain.sh를 사용하면 자동으로 TIF/BOX 파일쌍과 lstmf 파일이 작성된다..
우분투 Docker 설치 및 nvidia-docker 설치 Docker 설치하기 sudo apt-get update && sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update && sudo apt-cache search docker-ce sudo apt-get updat..
Tesseract 5.0 인식하기 OCR 인식에 있어서 dpi, 폰트 크기보다. 문자의 높이(Height)가 관계가 가장 높다고 한다. 이것 역시 English에 한정된 결과이므로... 실제 사용에 있어서 최적의 값을 찾아야 하지 싶다.
Graph DB Neo4j에 대해서 들어본지는 꽤 된것 같다. 여전히 1위를 지키고 있는 위엄... 주목할만한 부분은 클라우드에서 서비스되는 GraphDB의 약진이다 MS Azure의 Cosmos DB, AWS의 Neptune 아무리 좋은 기술이라도 비즈니스에 적용함에 있어서 기술 커뮤니티와 레퍼런스는 무시하지 못한다. Neo4j를 우선적으로 검토해봐야겠다. https://db-engines.com/en/system/Neo4j 1. ACID 트랜잭션 지원 2. Native 그래프 DB (스토리지 레벨까지 구현됨) 3. Cypher 쿼리 언어 제공 (SQL-like) 4. 고정 시간(constant time) 순회 지원 - 속성(Property)과 레이블(Label)을 색인 5. 유연한 스키마 6. 유료 기능 - 클러스터..
Dlib Face Recognition에서 CUDA 가속하기 Face recognition 오픈소스 : https://github.com/ageitgey/face_recognition Dlib을 이용하여 구현하였고, CPU와 GPU를 둘다 지원한다. GPU 가속을 사용하기 위해서는 Dlib 빌드시에 GPU 옵션을 주고 해야한다. 1. Dlib을 git에서 다운로드 받는다 git clone https://github.com/davisking/dlib.git 2. 아래 명령어를 실행해서 Dlib을 빌드한다. cd dlib mkdir build; cd build; cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1; cmake --build . -- Using CMake version: 3.5.1 -- Compiling dlib..
Python의 성능을 높이는 방법 100만번 이상의 Euclidean Distance 연산을 할 일이 있었다. Python으로 Single Processor 연산을 하였을 경우 15초 가량 소요가 되었는데 이를 줄일 방법이 필요했다. 1. Multi-Processing 요즘 CPU는 4개의 Core가 보편적이다. Python 연산을 하였을때 확인해보니 하나의 Core만 가지고 100% 점유율의 연산을 하는 것을 확인할 수 있었다. 이를 Python의 Multi-processing을 이용하여 계산해보니 4개의 코어로 나누었을때 4배 가량 향상을 볼 수 있었다. [참고] https://doorbw.tistory.com/205 파이썬(python) #24_ 멀티프로세싱(Multi-processing) 과 멀티쓰레딩(Multi-threading..
CUDA 9.0 설치 딥러닝 환경 구성을 위해 CUDA를 설치해야 하는데 최적의 버전을 맞춰야 하는 번거로움이 있다. 현재 대부분 CUDA 9.0을 사용하는데 이에 맞는 환경구성을 기록한다 Linux : Ubuntu 16.04 GPU Driver : NVIDIA-384 https://www.nvidia.com/ko-kr/drivers/unix/linux-amd64-display-archive/ Linux AMD64 Display Driver Archive | NVIDIA 아래에 Linux AMD64 display 드라이버 다운로드 페이지가 링크되어 있습니다. 버전: 440.26 운영 체제: Linux 64-bit 출시 날짜: October 17, 2019 버전: 435.21 운영 체제: Linux 64-bit 출시 날짜: A..
리눅스에서 백그라운드 실행 Screen 명령어 Screen이란? #Screen이란 Linux에서 물리적인 터미널을 여러 개의 가상 터미널로 다중화해주는 도구입니다. 각 가상 터미널은 독립적으로 동작하며 사용자 세션이 분리되어도 동작합니다. 간단히 말하면 이 도구는 백그라운드로 동작하는 다중 터미널을 만들어 줍니다. 이걸 이용해서 백그라운드 작업을 간단히 수행할 수도 있고 회사에서 작업하던 터미널 화면을 집에 가서도 같은 터미널 화면을 보며 작업을 이어 할 수도 있습니다.Install #screen 이라는 명령어를 실행했을때 명령어가 없다고 나오면 아래와 같이 설치를 해줍니다.RedHat계열 (RedHat, CentOS, Fedora 등...) #yum install screen Debian 계열(Ubuntu 등..) #apt-get install s..