일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- type hint
- python
- 선그래프
- dataframe
- 가상환경
- 알고리즘
- programmers
- Algorithm
- queue
- pandas
- 알고리즘 스터디
- MySQL
- String Method
- 알고리즘스터디
- aws jupyter notebook
- 정보처리기사 c언어
- Stack
- 파이썬
- 데이터시각화
- Join
- javascript
- 노마드코딩
- 코딩테스트
- 자료구조
- Selenium
- 프로그래머스
- Matplotlib
- NumPy
- openCV
- 백준
- Today
- Total
목록Python (75)
조금씩 꾸준히 완성을 향해
git에 대용량 파일 업로드하기 (git lfs) github에 파일을 올릴 때 100MB 이상 파일은 업로드할 수 없다!!! 이 사실을 몰랐던 나는 대용량의 CNN model을 올리려 했고, push 과정에서 에러를 마주했다ㅠㅠ commit 을 되돌리고 git lfs를 사용하는 과정에서 애를 많이 먹었기 때문에 다음부턴 업로드 전에 반드시 꼭! 파일 용량을 확인하겠노라 굳게 다짐했다... git lfs를 사용법 자체는 아주 간단하다. 1. git lfs 설치 $ git lfs install 2. 대용량 파일 추적 현재 폴더에 특정 확장자를 가진 모든 파일을 올리고 싶을 경우 아래와 같이 입력해 주면된다. - 업로드 하고 싶은 폴더로 꼭! 이동한 후 진행해야 한다. - (확장자) 부분에는 파일의 확장자를..
이름이 지정된 색깔 목록 (List of named colors) 색 관련한 더 많은 정보는 아래를 참조 the Specifying colors tutorial; the matplotlib.colors API; the Color Demo. ▶ Base colors plot_colortable(mcolors.BASE_COLORS, ncols=3, sort_colors=False) ▶ Tableau Palette plot_colortable(mcolors.TABLEAU_COLORS, ncols=2, sort_colors=False) ▶ CSS Colors plot_colortable(mcolors.CSS4_COLORS) plt.show() ▶ XKCD Colors XKCD 색이 사용가능하지만, 그래프를 크게..
본격적으로 프로젝트를 시작하면서 생각지 못한 변수들을 마주하게 됐다. 그 중 하나가 직접 수집한 대용량의 이미지 데이터를 다루는 것이었다. 혼자 공부하면서 다루던 샘플 데이터들과는 차원이 다른 용량에 깜짝 놀랐다. 아직 1차 수집만 완료된 상태인데... 각설하고, 내가 저장하고 싶은 데이터는 (320, 180, 3) 픽셀값을 가진 이미지들이었다. 일단 해당 폴더에서 jpg 파일을 다 가져와서 flatten을 한 후 list에 저장하였다. 평소에 흔히 하던 대로 csv 파일로 저장을 하려는데, 웬걸 커널이 계속 돌아갔다. 오랜 시간을 기다린 끝에 csv를 마주하게 되었는데, 문제는 이 파일이 전혀 읽히지가 않는단 것이었다.... 메모리 에러가 자꾸 뜨길래 구글링을 해서 대책을 강구하기 시작했다. chunk..
dictionary가 여러개 담긴 list인 'all_db'를 json 파일 형식으로 변경하던 중 몇 가지 에러가 발생했다. 아래는 제일 먼저 내가 실했했던 코드이다. import json def write_to_json(dictionary_data): with open('db.json', 'w', encoding='UTF8') as file: json.dump(dictionary_data, file) write_to_json(all_db) TypeError: Object of type int64 is not JSON serializable 다음과 타입 에러가 떴고 인코딩이 잘못 됐음을 알아챘다. class NumpyEncoder(json.JSONEncoder): def default(self, obj)..
구글 코랩에서 딥러닝 모델을 돌리는 와중에 지속적으로 커널이 죽는 현상이 발생했다. 에러 메세지는 'Your session crashed after using all available RAM' 구글링 해보니 결국 메모리 문제였다. 구글 코랩에서 기본적으로 제공되는 램은 약 12GB이다. 때문에 복잡하고 방대한 신경망 모델을 돌리 경우에는 세션이 중단될 수 밖에 없는 것이다. 해결책은 두 가지. 1. 매월 구독료를 내고 구글 Pro 버전을 사용한다. 2. train 및 test 데이터 세트를 줄이거나 모델을 간소화시킨다. 유튜브 강의 교안으로 공부하기 위해 코랩을 사용 중이었는데, 강사님은 아마 Pro 버전이라 아무 문제가 없었던 것 같다. 사용 중이던 데이터는 imdb 10,000개 from tensor..
코너 검출 특징(feature) 영상으로부터 추출한 유용한 정보 global feature & local feature 코너 검출 방법 엣지 방향이 급격히 변하는 부분 꼭지점, 튀어나온 부분 코너는 다른 지역 특징에 비해 분별력이 높고 영상 전체에 분포 # 코너점 검출 미분 연산자에 의한 엣지 방향 이용 cv2.preCornerDetect(src, ksize) dst의 local optima 값으로 검출 import numpy as np import pandas as pd import matplotlib.pyplot as plt import cv2 src = cv2.imread('./CornerTest.jpg') # 컬러로 이미지 가져오기 gray = cv2.cvtColor(src, cv2.COLOR_B..
CANNY Edge Detector 정확한 검출(Good Detection), 정확한 위치(Good Localization), 단일 엣지(Single Edge) gradient 크기와 방향을 모두 고려하여 좀 더 정확한 엣지 위치를 찾을 수 있음. 총 4 딘계 가우시안 필터링 > gradient 계산 > 비최대 억제(non-maximum suppression) > 이중 임계값을 이용한 히스테리시스 엣지 트래킹 Sobel vs Canny src = cv2.imread('./lena.jpg', cv2.IMREAD_GRAYSCALE) dst = cv2.Canny(src, 100, 200) #Canny gxo = cv2.Sobel(src, ddepth=cv2.CV_32F, dx=1, dy=0, ksize=3) ..
Labeling 배경과 객체를 구분 한 후 레이블링을 이용하여 객체 간 구분 연결 구성 요소 레이블링 (CCL, Connected Component Labeling) 객체 인식을 위한 전처리 과정으로 사용 이진화 영상에서 수행(배경:검은색, 객체:흰색) 연결성 정의에 따라 결과가 달라질 수 있음 # 고전적 레이블링 기법 등가 테이블(Equibalent Table)을 만들면서 영상을 두 번 스캔함으로써 레이블링을 수행 첫번째 스캔에서는 레이블을 전파시키면서 등가 테이블 생성 두번째 스캔에서는 등가 테이블을 참조하여 각 픽셀에 고유의 레이블을 부여 4-이웃 연결성 고려 cv2.connectedComponents : 연결된 compoenets의 개수를 반환하고 labeling을 해준다. cv2.connecte..
# 모폴로지 연산 Morphology : 형태 또는 모양에 관한 학문 모폴로지 변환의 팽창(dilation)과 침식(erosion)을 기본 연산으로 사용해 고급 형태학을 적용하는 변환 기법 그레이 스케일 영상, 이진영상 모두 적용 가능 구조 요소( Structuring Element) 다양한 형태를 가지지만 주로 정방형을 사용 구조 요소에 따라 형태가 달라짐 ▶ cv2.getStrucuringElement() shape : element의 모양 morph_rect 사각형 morph_cross 십자 모양 morph_ellipse 타원형 모양 ksize : structuring element 사이즈 => rectangle을 일반적으로 가장 많이 사용 # shape 확인 및 비교 kernel_rect = cv..