SRCNN 오픈소스 분석 및 변형
- 1 minSRCNN 오픈소스 분석 및 변형
첫 머신러닝 관련 소스코드 분석.
OS 라이브러리
- os.path.join(arg1,arg2,..) #os마다 구분다르기에 이 함수로 매개변수들을 이어 경로로 반환
- os.makedir(경로) #arg동안 디렉토리 없으면 생성
- os.path.exits(경로) #해당 경로에 디렉토리 존재하는지?
- os.getcwd() #현재 디렉토리 경로 반환
- os.chdir(경로) #해당경로로 이동
- os.listdir() #현재 경로의 파일+폴더 이름 반환, arg로 경로 줄시 해당경로로 들어가서 반환
- os.path.basename(경로) #입력받은 경로의 기본 이름을 반환
scipy
- scipy.misc.imread(파일이름, flatten = 여부, 변환모드) 이미지는 픽셀로 이뤄지고 픽셀은 RGB경우 3개 element 이며 1byte(8bit), 즉 0~255의 색의정도가 들어있다.
- scipy.ndimage.interpolation.zoom(이미지, 비율, prefilter = False) #이미지를 보간 방식으로 줄이고 늘리고..
대략적 흐름
subject
기존 SRCNN을 이용한 오픈소스 이용. 각종 라이브러리 분석 및 이해 후 기존의 SRCNN모델과 다르게 bicubic(저해상도 이미지, input_data)이미지와 3개층 필터(기존 SRCNN모델)를 통과한 이미지를 원래 bicubic 이미지(보간법으로 이미지 사이즈가 커진)에 보간으로 채워진 부분을 필터로 더해져 좋은이미지를 보여주지 않을까 생각으로 시작
Model
Result & problem1
epoch 30(모델이 얼마나 좋아졌나 빠르게 보기위해 짧은 epoch을 줬다) 에서 기존의 모델 보다 가시적으로 좋은 결과를 얻어냈으나. 이미지를 21x21 사이즈로 자른 뒤 모델을 통과한 각 32x32 사이즈 이미지를 합병하는 과정에서 코드가 잘못되어 사진별 중복된 부분이 이중으로 포함되어 깨져 보이게 되었다.
Result & problem2
- 모델을 통과한 32x32이미지를 이어붙이는 과정에서 중복된 부분을 제외하고 이어 붙였다. 중복된 이미지가 발생한 이유는 원래 이미지를 자르는 과정에서 stride를 14로 했기 때문에 발생
- epoch을 15000으로 학습
cost가 충분히 낮았음에도 불구하고 결과가 좋지 못하였다.