1. 폴더 안의 이미지 미리 보기 안 될 때
"아이콘은 항상 표시하고 미리 보기는 표시하지 않음" 체크 풀기
2. 랩탑 CPU 사양
인텔® 코어™ i5-7300HQ 프로세서 : 코어 수 4, 메모리 64GB
3. 파이썬 결과를 txt 파일로 저장
result_txt = open('C:/jupyter_home/Eye Detector by CNN/result.txt', 'w') # txt 파일 열기
# 생략 ~
total = state + ' ' + str(elapsed_time) + ' ' + now_time + '\n'
result_txt.write(total) # txt 파일에 내용 작성
result_txt.close() # 결과 저장 후 txt 파일 닫기
4. Up/Down-Sampling, Over/Under-Sampling
0 또는 1을 예측하는 모델을 만들어야 하는데
[0,0,0,0,1,1] 의 데이터를 그대로 분류할 경우 -> 0을 예측할 확률이 큰 모델이 만들어짐.
[0,0,1,1]로 표본 개수를 줄이는 경우 : 다운 샘플링(Down-Sampling)
[0,0,0,0,1,1,1,1]로 복원 추출 방식으로 표본 개수를 늘리는 경우 : 업샘플링(Up-Sampling)
↓OpenCV에서의 Up-Sampling, Down-Sampling↓
Image pyramid는 하나의 영상에 대해 크기를 줄이거나 키워서 다양한 크기의 영상을 생성함으로써 다양한 해상도의 영상 세트를 구성한 것
왜? 입력 영상에서 어떠한 객체를 찾고 싶을 때 영상에 존재하는 객체의 크기가 다양함. 고양이 얼굴 크기를 지정해두고 영상에서 고양이 얼굴을 찾고 싶을 때, 지정한 고양이 얼굴 크기보다 작거나 크면 못 찾을 가능성이 있기 때문!
OpenCV의 다운 샘플링 함수 :
cv2.pyrDown(src, dst=None, dstsize=None, borderType=None) -> dst
• src: 입력 영상
• dst: 출력 영상
• dstsize: 출력 영상 크기. 따로 지정하지 않으면 입력 영상의 가로, 세로 크기의 2배로 설정.
• borderType 가장자리 픽셀 확장 방식
OpenCV의 업샘플링 함수 :
cv2.pyrUp(src, dst=None, dstsize=None, borderType=None) -> dst
• src: 입력 영상
• dst: 출력 영상
• dstsize: 출력 영상 크기. 따로 지정하지 않으면 입력 영상의 가로, 세로 크기의 2배로 설정.
• borderType 가장자리 픽셀 확장 방식
https://deep-learning-study.tistory.com/187
↓딥러닝에서의 Up-Sampling↓
UpSampling2D : 케라스 기준 내부적으로 resize_images()를 호출함. 즉, 적은 해상도를 일부러 고해상도로 올리는 것. 단순히 잡아 늘리는 역할로 바로 Conv2D의 함수가 호출되어야 할 필요가 있음
Conv2DTranspose : Convolution 연산이 들어가서 해상도를 키움. 이 연산은 당연히 학습과정에서 필터가 학습이 됨
↓수업에서 잠깐 다룬 내용↓
Over-Sampling : 분류(Classification) 문제에서 자주 발생하는 클래스 불균형(Imbalance) 문제를 해결하는 방법 중 하나. 데이터가 부족하고 편향되어 있을 때 소수의 데이터를 복제함 → SMOTE 기법
SMOTE 기법은 Y(소수의 목적 변수)를 KNN(K-Nearest Neighbors, K-최근접 이웃)으로 늘려줘서 자동으로 Positive와 Negative 값을 동수로 만들어줌
pip install imblearn
from imblearn.over_sampling import SMOTE
from collections import Counter
sm = SMOTE(ratio='auto', kind='regular', k_neighbors=3, random_state = 7)
x_sm, y_sm = sm.fit_sample(x, y)
print('Dataset Shape %s' % Counter(y))
print('Resampled Dataset Shape %s' % Counter(y_sm))
https://wyatt37.tistory.com/10
https://greeksharifa.github.io/machine_learning/2019/10/01/Imbalanced-Learning/
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTE.html
Under-Sampling : Data 개수가 충분히 많다면 개수를 맞추어 나머지를 버림. 데이터가 많은 경우가 흔치 않고, 정상적인 데이터를 잃어버릴 수 있기 때문에 사용을 지양함
https://blog.naver.com/swkim4610/222153671827
5. 선형 보간(Linear interpolation)
지형이 직선적으로 변화하는 것으로 간주하여 2개의 인접한 관측값을 직선으로 연결하여 격자점 사이의 임의점 좌표를 선형 보간에 의하여 구하는 방법
6. EAR(Eyes Aspect Ratio)
눈의 면적은 검출된 안구에 여섯 개의 (x, y) 좌표를 이용하여 계산함
'개인 공부' 카테고리의 다른 글
6/15 수_ImageDataGenerator, PYTHONPATH, YOLO v5, metrics (0) | 2022.06.15 |
---|---|
6/9 목_PermissionError (0) | 2022.06.09 |
4/30 토_OSHW (0) | 2022.04.30 |
4/28 목_ReduceLROnPlateau, Optimizer(Momentum, AdaGrad, RMSProp) (0) | 2022.04.29 |
4/26 화_웹 스크래핑, Average Precision, Detector, Object Detection 모델(R-CNN, YOLO) (0) | 2022.04.27 |