[ 이미지 변환 플라스크 Rest API ver01 ]
0. Flask Rest API - in SunnyWeb : 이미지 변환 웹의 Flask Rest API
1. 구성
-
- flaskRestAPI01 : 이미지 변환 기능 중 유명 화가풍으로 변환, 안경과 동물들의 특징을 이미지에 추가하는 기능을 담당하는 flask Rest API
- flaskRestAPI01 : 이미지 변환 기능 중 유명 화가풍으로 변환, 안경과 동물들의 특징을 이미지에 추가하는 기능을 담당하는 flask Rest API
- a) imgs : 안경, 돼지(코), 쥐(코, 귀) 이미지
- b) models
- b-1) instance_norm
- b-2) eccv16
- b-1) instance_norm
- c) api_test01.py : json으로 request를 주었을 때를 테스트하는 모듈
- d) app01.py : flask로 웹 서버를 올려 json request를 json response를 보내주는 flask Rest API
- e) img_download.py : s3에서 이미지를 다운 받아서 임시 저장소에 이미지를 저장하는 함수를 가진 모듈
- f) plusimage.py : 이미지와 파일 이름을 넣으면 이미지를 추가해주는 함수를 가진 모듈
- g) total_pram : Rest API를 쉽게 사용할 수 있도록 조절할 파라미터만 모아 놓은 모듈
- h) transiamge : 이미지와 파일 이름을 넣으면 이미지를 변환해주는 함수를 가진 모듈
- i) upload_image : AWS S3의 버켓에 이미지를 업로드 하는 함수를 가진 모듈
- flaskRestAPI01 : 이미지 변환 기능 중 저화질의 이미지를 초고화질로 바꿔주는 기능을 담당하는 flask Rest API
a) api_test02.py : json으로 request를 주었을 때를 테스트하는 모듈 b) app02.py : flask로 웹 서버를 올려 json request를 json response를 보내주는 flask Rest API c) img_download.py : s3에서 이미지를 다운 받아서 임시 저장소에 이미지를 저장하는 함수를 가진 모듈 d) total_pram : Rest API를 쉽게 사용할 수 있도록 조절할 파라미터만 모아 놓은 모듈 e) upload_image : AWS S3의 버켓에 이미지를 업로드 하는 함수를 가진 모듈
2. 핵심 기능 및 파라미터 설명
- app01.py, app02.py
a) route /transimage : 이미지를 유명 화가풍으로 변환해주는 app
b) route /plussimage : 이미지에 쥐(코, 귀)의 이미지를 추가해주는 app
c) route /esrganimage : 저화질의 이미지를 초고화질의 이미지로 변환해주는 app
1. 라이브러리
- flask
- boto3
- openCV
- numpy
- dlib
- tansorflow
2. Rest API 조절 파라미터
- download_url = "다운로드 받을 url"
- s3_upload_bucket_name = "s3에 업로드할 버켓 이름"
- trans_image_model = "변환할 모델"
- 변환 가능한 모델 리스트 : composition_vii.t7, la_muse.t7, starry_night.t7, the_wave.t7,
candy.t7, feathers.t7, la_muse.t7, mosaic.t7, starry_night.t7, the_scream.t7, udnie.t7
3. 프로세스 및 예시
- json으로 이미지 파일의 이름을 보낸다.
- json으로 받은 이미지의 이름으로 s3에서 찾아 임시저장소에 다운로드한다.
- 임시 저장한 이미지를 변환한 후에 이미지를 잠시 로컬에 저장한다.
- 변환된 이미지를 s3에 업로드한다.
- 업로드 후 변환된 이미지를 삭제한다.
- 변환된 이미지의 이름을 json으로 보낸다.