본문 바로가기

전체 글

IoU, Intersection over Union 개념을 이해하자 Intersection over Union ? Intersection over Union (IoU)는 object detection에서 사용되는 도구다. 성능 지표는 아니고, 객체 인식 모델의 성능 평가를 하는 과정에서 사용되는 도구로 생각하면 된다. 정의는 아래와 같다. IoU = 교집합 영역 넓이 / 합집합 영역 넓이 두 box의 크기가 동일하다 가정하면, 두 개의 box가 적어도 2/3는 겹쳐줘야 0.5의 값이 나오기 때문에 여러 곳에서 IoU의 threshold 값을 0.5로 잡아서 사용하는 듯 하다. 모델의 성능을 높여보고자 IoU threshold 값을 올려서 모델링을 해도 되기는 하는데, 객체 인식 모델의 성능이라는 게 feature extractor, classifier, regressor.. 더보기
Ubuntu에 시스템 변수 영구 등록하는 방법 터미널 창에 다음의 코드 입력 1 sudo -H gedit /etc/environment cs 계정 패스워드 입력 원하는 변수명과 경로 작성 후 저장 재부팅 터미널 창에 export 명령어 입력 후 제대로 설정 됐는지 확인 [ 참고 사이트 ] https://askubuntu.com/questions/58814/how-do-i-add-environment-variables 더보기
Ubuntu에서 USB 인식시키는 방법 회사에서 Ubuntu 운영체제의 워크스테이션을 사용하게 돼서 익히고 있는 중이다. 이곳 저곳 참고해서 현재는 아래와 같이 꾸며놓은 상황이다. Ubuntu 버전 업그레이드도 하고, Visual Studio Code도 다운받고, 팀뷰어도 다운받고 등등.. 윈도우랑 비슷한 것 같으면서 다르다. (2021.09.15. 아 우분투 한글도 안 되고 뭐도 안 되고 복잡하고 어렵고 그냥 window로 밀어버렸다ㅎ) 오늘은 Ubuntu에서 USB 인식시키는 방법에 대해 정리하려고 한다. 이게 내 컴퓨터만 그러는지 모르겠는데 USB 꽂았다고 해서 바로 인식이 안 되고 에러가 나더라. 이유는 알아보는 건 포기했고 해결법만 찾아봤다. 여기랑 여기를 참고해서 해결했다. 사용한 코드만 순서대로 써놓고 마루리하고자 한다. sudo.. 더보기
Matplotlib을 이용해 그래프 그리기 Python의 matplotlib을 이용해 sine 함수 그래프를 그리는 방법에 대한 정리 글이다. 코드 몇 줄이면 뚝딱 뚝딱 할 수 있는 작업이지만 처음 하는 사람에게는 X축 설정에서 헷갈릴 부분들이 있어 그 부분을 중심으로 정리하고자 한다. import numpy as np import matplotlib.pyplot as plt fs = 100 time = np.arange(-5, 5, 1 / fs) signal = np.sin(time) plt.figure(1) plt.plot(time, signal) plt.show() [Line 4] fs는 sampling rate을 의미한다. 전자 장비를 사용하여 다루는 신호는 무조건 digital signal 즉 discrete signal이다. 자연에서 .. 더보기
Python으로 신호 푸리에 변환하는 방법 신호 처리를 하다 보면 가장 먼저 접하게 되는 개념이 '푸리에 변환'이다. 이번 글에서는 파이썬의 numpy를 통해 푸리에 변환하는 방법에 대해 정리하고자 한다. 그 전에... 푸리에 변환에 대한 이론적 배경을 정확하게 알고있는 게 아니라 틀린 부분이 있을 수 있다는 점을 미리 밝힙니다!! 푸리에 변환 (Fourier transform) 시간 영역에서 표현되는 신호를 주파수 영역으로 변환하여 다른 관점에서 신호를 분석하는 방법 Python에서 푸리에 변환을 하고 싶으면 np.fft.fft( ) 함수를 아래와 같이 이용하면 된다. import numpy as np import matplotlib.pyplot as plt fs = 100 t = np.arange(0, 3, 1 / fs) f1 = 35 f2 .. 더보기
Python으로 DICOM 파일 다루는 방법 DICOM 파일을 다룰 일이 생겨 공부 중이다. 지금 다루는 영상의 Modality가 CT이기 때문에 CT를 중심으로 정리해두고자 한다. 이번 글에서는 Hounsfield Unit (하우슨필드 유닛) Window Center, Window Width DICOM 파일 읽는 방법 에 대해 정리하도록 하겠다. Hounsfield Unit ? 우선 CT의 픽셀 값은 일반 RGB 이미지와는 다르다. RGB 이미지의 각 픽셀은 0 ~ 255의 값으로 이루어져 있지만, CT는 Hounsfield Unit (HU)라는 단위로 이루어져 있다. HU란 X 선이 몸을 투과할 때 감쇠되는 정도를 나타내는 단위이다. 물을 통과할 때를 0. 으로 두고 다른 부위의 감쇠정도를 상대적으로 표현한다. 이미 실험적(?)으로 정리되어 있.. 더보기
Python의 fileinput module로 파일 수정하는 방법 fileinput 모듈이라고 해서 크게 다른 건 없는 것 같다. 그냥 Python에서 파일 입출력할 때 쓰는 모듈인데 흔히 쓰는 open( ) 함수 말고 fileinput.input( ) 함수를 쓰는 거라 생각하면 된다. 그럼 왜 fileinput 이란 모듈을 따로 만들었으며 언제 사용하는 걸까?? 이렇게 저렇게 쓰다보니 fileinput을 사용하면 보다 간단하게 파일 수정을 할 수 있기 때문이란 생각을 하게 됐다. 아래와 같이 test_text.txt 파일이 있다고 가정하자. name : tube name : ryan name : apeach 그리고 형태는 유지시키면서 두 번째 줄의 "ryan"을 "라이언"으로 바꿔보도록 하자. open( )을 사용하면 불가능한 건 아니지만 fileinput.input.. 더보기
imgaug 라이브러리 사용 방법 classification이나 segmentation 작업을 위해 image augmentation을 하는 것은 그리 어려운 일이 아니다. 근데 object detection 영역으로 넘어오면 얘기가 달라진다. train image에 대해 augmentation을 진행할 때 ground truth도 같이 진행해줘야 하는데 이 과정이 까다롭기 때문이다. 예전에 잠깐 공부할 때는 flip, rotate, shift 등을 하나하나 직접 짜서 augmentation을 진행했었는데.. 우연히 회사 옆자리 연구원으로부터 imgaug 라이브러리를 알게되어 사용 방법을 정리하고자 한다. imgaug ? Image Augmentation을 위한 라이브러리다. 이곳에서 지원 augmentation 방법들을 확인할 수 있다.. 더보기