본문 바로가기

전체 글

Python file 우클릭 시 context menu에 Anaconda 가상환경 idle 뜨게 하는 방법 파이썬을 설치하면 기본적으로 파이썬 파일 우클릭 시 context menu에 [ Edit with IDLE ] 이 생겨 바로 열어줄 수 있다. 근데 이게 아나콘다 가상환경을 사용하는 경우에는 안 뜨더라. 그래서 위 사진처럼 [ Edit with ENV -> Edit with GPU1.12.0 ] 을 통해 열어줄 수 있는 방법이 있나 하고 찾아봤다. 설정 방법은 다음과 같다. 실행 창에 regedit 입력 후 레지스트리 편집기를 띄운다. 컴퓨터\HKEY_CLASSES_ROOT\Python.File 을 찾는다. 기존에 있는 editwithidle / editwithidle\shell / editwithidle\shell\edit36 / editwithidle\shell\edit36\command 와 똑같이 .. 더보기
Python으로 시스템 변수 추가하는 방법 Code 1 2 import sys sys.path.append('C:/Users/Ballentain/Desktop/test') cs 설명 시스템 변수에 경로를 추가하면 무엇이 좋냐고 물어본다면, 파일을 import할 때 경로 신경 안 쓰고 바로 import해줄 수 있어서 좋다고 답할 수 있을 것 같다. 말로는 이해가 힘들다. 예제를 통해 살펴보자. test 폴더에는 train.py 와 obj 폴더가 들어있고, obj 폴더에는 trainer.py가 들어있다. [ train.py ]는 obj의 trainer.py를 import하게끔만 설정해 놨고, [ trainer.py ]는 실행 Hi 를 출력하도록 설정해놨다. 위와 같은 구조 아래에서 train.py를 실행하면 trainer.py가 import 되어 에.. 더보기
(1) Advancing Medical Imaging Informatics by Deep Learning-Based Domain Adaptation 정리 시작 Medical Image Dataset에서는 환자 케이스, 촬영 장비, 촬영 방식 등과 같은 다양한 요인에 의해 distribution-shift (also known as domain-shift) 현상이 발생한다. 그리고 이 domain-shift 현상이 모델의 성능을 꽤 많이 떨궈서 성능 문제로 이어지게 된다. Hospital A에서 수집된 데이터셋으로 개발된 모델이 AUC 0.99를 찍었다 하더라도, Hospital B 데이터셋에서는 AUC 0.7도 안 나오는 현상이 발생한다. Domain-shift 현상 때문이다. 당연하게도 이 문제점을 해결하기 위해 많은 연구들이 진행되었고, "Domain Generalization (DG)" 또는 "Domain Adaptation (DA)"의 키워드로 검색하면.. 더보기
선형 보간법과 쌍선형 보간법 다양한 Conv 연산 방법들 중 하나인 Deformable Conv에 대해 공부하기 위해 [논문] Deformable Convolutional Networks을 읽던 중, 쌍선형 보간법(Bilinear Interpolation)이라는 처음 보는 개념을 접하게 됐다. 보간법, 선형 보간법은 들어봤는데 쌍선형 보간법은 뭘까? 그래서 이 놈은 무엇인지 구글링하면서 공부 좀 해봤고, 그 과정에서 깨달은 내용들을 수식과 코드 위주로 정리해놓고자 한다. 보간법 ? 이미 알려진 값들을 활용하여 원하는 위치에서의 값을 추정하는 방법의 한 종류이다. 보간법, 선형 보간법, 쌍선형 보간법에 대한 더 자세한 정의는 여기에서 참고하길 바란다. 1. 선형 보간법 우리는 이미 알고 있는 x1, y1, x2, y2, a 값을 활용.. 더보기
homography matrix 다루기 / cv2.findHomography( ), cv2.warpPerspective( ) 제목을 뭐로 해야할지 몰라서 homography matrix 다루기라 두루뭉실하게 적어놨다. 오늘은 아래의 그림과 목차 흐름으로 정리하고자 한다. cv2.xfeatures2d.SIFT_create( ) 함수로 keypoint와 descriptor 추출 cv2.BFMatcher( ) 함수로 keypoint 매칭 cv2.findHomography( ) 함수로 homography matrix, H 추출 추출한 H로 이미지 변환 → cv2.warpPerspective( ) 함수 사용하면 쉽게 할 수 있는데, 이번 글에서는 H를 직접 다루는 방법으로 정리하고자 한다. 정합 결과 확인 먼저 말해두자면, 난 SIFT 이론에 대해 아직은 정확히 모른다. -> 20.01.15 논문 쓰려고 공부했다. 이해한 데까지 정리도.. 더보기
2.2. Mask R-CNN을 Retrain 시켜보자 create_tf_record.py를 통해 TFRecord 파일을 만들었으니 이제 Retrain 하는 방법에 대해 알아볼 차례다. Retrain 방법에 대해 구글링해본 사람이라면 한 번쯤은 이런 생각을 해본 적 있지 않을까 싶다. (뭐.. 나만 삐뚫어진 걸 수도 있지만..ㅎㅎ) '뭐야, 이게 무슨 API야? 사용성이 너무 떨어지는데?' 그래서 기존에 알려진 방식보다 더 사용성을 높여 보려고 이것 저것 추가해서 작성해봤다. 순서는 다음과 같다.[pretrained_model 폴더]에 mask_rcnn_resnet101_coco_2018_01_28 모델 다운로드 모델은 detection_model_zoo에서 다운받으면 된다. [model_configs 폴더] 생성 후 ./object_detection/sam.. 더보기
2.1. Custom Dataset으로 TFRecord 파일 만들기 Tensorflow Object Detection API를 사용해서 모델 재학습을 하려면 TFRecord 형태의 input data를 만들어줘야 한다. TFRecord는 "Tensorflow 전용 학습 데이터 저장 형태" 정도로 알아두면 될 것 같다. 제대로 알아보지는 않았지만 Tensorflow로 설계한 모델 학습에 TFRecord를 사용하면 학습 속도가 개선되는 장점이 있다고 한다. 자세하게 알고 싶다면 여기1와 여기2에 들어가서 관련 설명을 읽어보면 될 것 같다. 그리고 이미지를 byte 단위로 읽고 쓰는 법에 대해 모르는 경우라면, [Python] - 이미지 읽는 방법 / cv.imdecode( ), io.BytesIO( ) 을 읽으면 도움이 될 거다. 이제 본격적으로 Custom Dataset을.. 더보기
이미지 읽는 방법 / cv.imdecode( ), io.BytesIO( ) 이미지를 읽는 방법에는 여러가지가 있다. OpenCV를 사용해서 읽는 방법도 있고, PIL를 이용해서 읽는 방법도 있다. 그리고 최근에는 이미지 파일을 Binary 형태로 읽은 다음 ( = byte 단위로 읽는다는 의미 ) jpg로 decoding하는 방법도 있다는 걸 알게 됐다. 하나씩 그 사용법에 대해 정리해보도록 하자. 1. cv2.imread( ) import cv2 path = './test_image.jpg' img = cv2.imread(path) 내가 주로 사용하는 함수다. 2. PIL.Image.open( ) from PIL import Image path = './test_image.jpg' img = Image.open(path)​ 가끔 코드 검색을 하다 보면 접하게 되는 함수다. 직.. 더보기