OCR을 사용해야 하는 상황에서 만약 장비와 시간의 여유가 있다면 Python으로 EasyOCR을 한 번쯤 사용해보는 것도 좋을 것 같습니다. github.com/JaidedAI/EasyOCR 위 주소는 EasyOCR 공식github 주소입니다. 1. 그래서 EasyOCR이 뭔데? 우선 EasyOCR에 대해서 설명을 적어봅니다 EasyOCR은 OCR 오픈소스로 Detection부분과 Recognition부분으로 나누어져 있으며 Text Detection은 CRAFT를 사용하고 Recognition은 CRNN사용합니다. Framework는 모든 소스가 pytorch로 작성되어있습니다. pytorch는 tensorflow처럼 딥러닝을 위한 프레임워크로 tensorflow보다 좀 더 pythonic하게 코드를..
분류 전체보기
뭔가 갑자기 Flutter를 해보고 싶어서 tutorial을 따라 해 봤는데 구조를 이해 못하겠습니다. 그래도 뭔가는 남기고 싶어서 간단하게 글을 적습니다. 1. 설치 flutter-ko.dev/docs/get-started/install/windows 윈도우에서 설치 flutter-ko.dev document에서 알려주는대로 진행하면 되는데 우선 flutter sdk를 다운로드하고 환경변수를 잡아줍니다. 환경변수 path에 들어가는 경로 PATH/TO/flutter/bin (참고로 저는 android나 ios가 아닌 chrome에서 모든 tutorial app을 실행했습니다.) 이후 설치가 잘 되었는지 확인하기 위해 콘솔에서 명령어를 실행합니다. flutter doctor 근데 이 와중에 에러는 안나오..
Java로 프로그래밍하는 경우 IDE의 선택지가 좀 있는 편인데 저는 Eclipse를 사용합니다. 사람들은 그 무거운 거 왜 쓰냐 차라리 IntelliJ 쓰지 라고 하는데 회사에서도 이걸로 개발 읍읍 적응되고 단축키도 알아가니 생각보다 좋습니다. 무튼 Eclipse 시리즈의 첫 글로 디버깅에 대해 이야기를 해보고자 합니다. 학부 때 학교에서 잘 안 알려주는 것 중 하나가 디버깅입니다. 맨날 디버깅하라고 하는데 알려주지는 않더라고요. 그래서 정말 간단한 정도로만 여기에 사용법 정도로 올릴테니 반드시 읽어주셨으면 좋겠습니다. 근데 디버깅이 뭔지 모를 수 있어요. 저도 정의는 잘 몰라요.. 꺼무.. 아니 나무위키에서 설명된 글을 옮겨봤습니다. 디버그(Debug)는 프로그래밍 과정 중에 발생하는 오류나 비정상적..
회사에서 비전 딥러닝을 담당하고 Tensorflow Object Detection API를 사용하던 중 훈련 중에 발생한 에러들이 있다. 모두에게 반드시 통용되지는 않겠지만 일부 나와 같은 오류를 겪고 헤매는 사람들을 위해 올린다. 1. Invoke with: None, value error 위와 같은 에러는 명령어를 입력할 때 argument에 값을 잘못 넣은 경우이다. 오타 혹은 경로에 문제가 있는지 다시 확인하면 잘 고쳐졌다. 2. loss = nan loss값이 nan으로 찍히는 경우가 있다. 이는 total step이나 learning rate를 높게 설정하면 발생하는 문제로 역전파 과정에서 값이 증폭되며 loss에 찍힐 수 있는 값의 범위를 넘어가면 발생한다고 한다. total step을 무작..
알 수 없는 알고리즘으로 해당 사이트로 접근했다면 이전 글들을 읽고 오시기 바랍니다. developer-youn.tistory.com/35 developer-youn.tistory.com/36 이번 글은 크게 어려움이 없었습니다. 그래서 전체적으로 어떻게 진행했는지 작성하는 글입니다. 여기까지 따라오신 분들을 위해 현재 과정의 대략적 구조를 보여드리겠습니다. 8. 데이터 레이블링과 포맷 변환 데이터 레이블링은 labelImg 를 이용해서 진행합니다. 학습 데이터는 xml파일로 저장이 되며 아래 글은 labelImg를 통해 각 이미지 별 xml파일이 생성되었다는 가정하에 작성을 하겠습니다. xml파일을 csv파일을 거쳐 record파일로 만들기 위해 아래 코드를 clone합니다. git clone 이미지 ..
GC관련 혹은 JVM 관련해서 살펴볼 때 -XX:+~~~ 와 같은 문장을 본 적이 있을 것이다. 이게 도대체 뭔지 궁금해서 검색을 해보았더니 JAVA Hotspot VM에서 사용하는 Option설정 예약어였다. 아래 내용은 오라클에서 제공하는 Hotspot VM의 vmoptions 페이지에서 일부를 옮겨와 번역하였다. -XX란? 원문 - Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the JDK. - Options that are specified..
이 글을 쓰면서 너무 중구난방 한 글을 작성하지 않나 하는 생각이 머릿속을 계속 접근하고 있습니다.. class 파일의 내부 정의 키워드를 넣지 않는 등 일부 당장 필요가 없다고 판단되는 부분들을 임의로 삭제한다고 삭제하였는데 과연 좋은 판단이었는지에 대해서는 더 생각해보고 이 글을 수정하겠습니다. 0. 들어가며 JVM은 Java Virtual Machine의 약자이다. Virtual Machine이라는 단어에 주목해야한다. VM이라는 건 프로그램을 실행하기 위해 물리적 머신(즉, 컴퓨터)과 유사한 머신을 소프트웨어로 구현한 것을 말한다고 할 수 있다. 요즈음에 와서는 JAVA의 목적성에서 변색된 개념(왜 변색되었다고 말하는지는 추후 조사하여 작성하도록 하겠다..)이긴 하지만 자바는 원래 WORA(Wri..
알 수 없는 알고리즘으로 해당 사이트로 접근했다면 바로 전 글을 읽고 오시기 바랍니다. developer-youn.tistory.com/35 눈물없이는 볼 수 없는 회사 딥러닝 프레임워크 업데이트 모험기(1) 0. 들어가며 회사에서 맡은 제품 중 딥러닝으로 Objet Detection을 이용하는 제품이 있다. 이번에 성능 개선을 위해 tensorflow2.x버전으로 업데이트를 하려고 한다. 단순히 tensorflow버전을 올린다고 성능 developer-youn.tistory.com 4. protobuf 설치 내가 참고했다던 사이트를 따라하면서 했는데 protobuf에서 정상동작을 하지 않았다. 기존 tf1환경에서는 튜토리얼에 있는 proto보다 더 낮은 버전을 사용했던 기억이 나서 해당 버전으로 설치를..
0. 들어가며 회사에서 맡은 제품 중 딥러닝으로 Objet Detection을 이용하는 제품이 있다. 이번에 성능 개선을 위해 tensorflow2.x버전으로 업데이트를 하려고 한다. 단순히 tensorflow버전을 올린다고 성능이 좋아지지는 않겠지만 Tensorflow object detection model zoo에 있는 모델 중 성능이 괜찮은 것들은 tensorflow2로 되어있어 이번에 업데이트를 하려고 한다. 서버도 없고 그래픽카드도 없고 딥러닝 지식도 거의 없는 상황에서 맨땅에 헤딩하며 업데이트한 모험기 지금 시작합니다. 1. 그래서 어떻게 시작하라고요? 일단 가장 큰 문제는 서버였다. 내 컴퓨터에 그래픽 카드를 추가하면 되지 않냐 라고 할 수 있겠지만 라이젠 그래픽카드 소켓이여서 CUDA가 ..
이번에 길벗출판사 14차 리뷰어에 선정되어 [자바 코딩의 기술] 책을 받고 리뷰를 하게 되었다. 1. 책의 크기 실은 책의 페이지 수와 크기가 생각보다 중요하다고 생각한다. 너무 크고 양이 많으면 부담스럽고 너무 작고 양이 적어도 내용이 부실할 수 있는데 적당한 크기에 부담 없이 읽을 수 있는 양이였다. 2. 책의 내용 작년에 회사에 입사하여 1년동안 자바 개발자로 지내면서 느낀 점을 이번에 이 책과 비교해보려는 목적이 강했다. 책 표지의 아래에 적혀있는 문구 "현장에서 뽑은 70가지 예제로 배우는 코드 잘 짜는 법" 이란 말처럼 자바 언어로 코딩을 하는 데 있어 코드를 깨끗하게 짜는 방법과 여러 팁을 알려주고 있다. 책의 내용에서 '아니 이걸 적어놨네?' 라고 감탄하며 봤던 부분은 java doc 부분..