이 글에서는 파이썬 flask 아바타 변환기 설치하는 방법에 대해서 설명합니다.
- 이미지에서 아바타를 만드는 웹 서비스 빠르게 제공하기
- keras_segmentation 패키지 호환 문제
- 모델 다운 및 처리
이미지에서 아바타를 만드는 웹서비스 빠르게 제공하기
이미지에서 아바타를 만드는 웹 서비스를 만들려고 합니다. 물론, 처음부터 코드를 작성할 생각이 없습니다. 저는 ai나 이미지 처리 쪽으로 해본 적이 없으므로 최대한 빠르게 결과를 보려고 합니다. github에서 이것저것 찾다가 아래의 링크에서 감사하게도 좋은 소스를 찾았습니다.
이제 이 소스를 clone해서 기존에 동작 중인 flask 앱에 추가하려고 합니다.
원본의 requirement는 ubuntu 20.04에 들어있는 python 3.8에서 정상 동작하지 않는다.
또, 현재 설치된 버전의 패키지와 호환되지 않는 문제가 있다. 그러므로, 현재 상황에서 호환 가능한 패키지를 설치하려면 requirement.txt에서 버전 번호를 모두 제거하고 설치한다.
Flask
numpy
matplotlib
keras
keras-segmentation
wandb
helper
cycler
pandas
scikit_learn
seaborn
MulticoreTSNE
이렇게 설치를 하고 python app.py를 했더니, keras_segmentation관련 에러가 발생합니다.
keras_segmentation 패키지 호환 문제
keras_segmentation 패키지가 다른 버전들의 최신 패키지들과 호환이 되지 않는 문제가 발생하였습니다. 해당 문제는 이것저것 해보았지만 결국 keras_segmentation의 코드를 한줄 수정하여 해결되었습니다.
keras_segmentation
패키지의 일부 코드를 임시로 수정할 수 있습니다. 아래의 단계를 수행하여 예기치 않은 모듈 임포트 문제를 해결하세요.
- 가상 환경의
keras_segmentation
패키지 디렉토리로 이동하세요. 경로는~/imgTestEnv/lib/python3.8/site-packages/keras_segmentation
에 있어야 합니다.
- 코드에서 오류가 발생한 모듈인
_pspnet_2.py
를 수정하기 위해 텍스트 편집기를 엽니다.
- 해당 파일에서
from keras.layers.merge import Concatenate, Add
를 다음과 같이 수정합니다:
- 파일을 저장하고 편집기를 닫습니다.
이제 프로젝트가 문제없이 실행되어야 합니다. 하지만 이 과정은 임시 해결책이므로, 발생한 문제를 keras_segmentation
저장소의 이슈로 제출하여 향후 버전에서 공식적으로 해결될 수 있도록 предлож게에게 알리는 것이 좋습니다. 이는 프로젝트의 유지 관리에 도움이 됩니다.
데이터 다운 및 모델 학습하기
이번에 알게 된 것인데, ai를 위해 학습된 모델 파일들은 대부분 github에 넣지 못합니다. 사이즈가 100M가 넘어가는 파일은 github에 저장할 수 없기 때문입니다. 그래서, google drive를 많이 사용하는데, google drive는 링크를 통해서 바로 wget을 할 수 없습니다.
이 문제를 해결하기 위해서 python에서는 gdown이란 패키지를 사용할 수 있습니다.
pip install gdown
(imgTestEnv) lswhh@DESKTOP-HQPQNKV:~/imgFilterApp/avatar-image-generator$ gdown https://drive.google.com/uc?id=1tfMW5vZ0aUFnl-fSYpWexoGRKGSQsStL
Downloading...
From (uriginal): https://drive.google.com/uc?id=1tfMW5vZ0aUFnl-fSYpWexoGRKGSQsStL
From (redirected): https://drive.google.com/uc?id=1tfMW5vZ0aUFnl-fSYpWexoGRKGSQsStL&confirm=t&uuid=15697fff-a74f-4e92-81c2-49fef72fa7e0
To: /home/lswhh/imgFilterApp/avatar-image-generator/datasets.zip
16%|█████████████████████▋ | 379M/2.32G [00:49<04:21, 7.
실제로 다운을 받으면서 확인해보니 2.3G 입니다.
unzip으로 압축을 해제하면 datasets 디렉토리에 데이터들이 압축 해제됩니다 .
이제 train.py를 통해서 학습 시켜야 합니다.
학습은 아래와 같이 설명하고 있지만, 2번은 skip하고 --no-wandb 옵션으로 train.py를 실행합니다. 실행하기 전에 config.json에서 root_path만 내가 clone 받은 디렉토리 경로로 수정해 줍니다.
- Change
root_path
inconfig json
. It specifies where isdatasets
which contains the datasets. - Run
wandb login 17d2772d85cbda79162bd975e45fdfbf3bb18911
to use wandb to get the report - Run
python3 train.py --wandb --run_name <RUN_NAME> --run_notes <RUN_NOTES>
orpython3 train.py --no-wandb
- To launch an agent with a sweep configuration of wandb in bg from ssh
nohup wandb agent --count <RUN_NUMBERS> stevramos/avatar_image_generator/<SWEEP_ID> &
'개발' 카테고리의 다른 글
오라클 클라우드(oracle cloud) 우분투 서버에 flask 앱 설치하기 (0) | 2024.01.20 |
---|---|
사진 애니화 카툰화 만화화 등 이미지 변환기 설치하기 (0) | 2024.01.20 |
VS CODE 한글 깨짐 EUCKR 설정하기 (0) | 2024.01.15 |
VSCODE 자주쓰는 단축키 정리 - 파일 열기/명령표시/우분투 리눅스에서 svn 연동 (0) | 2024.01.15 |
vscode 미니맵에 함수 목록 등 아웃라인(개요) 표시하기 (0) | 2024.01.14 |