์ธ๊ณต์ง๋ฅ ์์ ์น ์๋น์ค Bletcher Project์ AI Repository ์ ๋๋ค. Django๋ก ์ด๋ฏธ์ง ํฉ์ฑ ์๋ฒ๋ฅผ ๊ตฌํํ์์ผ๋ฉฐ Oracle Cloud์ ๋ฐฐํฌ๋์ด ์์ต๋๋ค.
๐ ์ฐ๋ฆฌ๋ bletcher-ml ์ ์ฅ์๋ฅผ ์ง๋์ 100์ฌ๊ฐ์ commit๊ณผ 8๊ฐ์ issue๋ฅผ ํตํ ๋ง์ ํ ์ ๋์ ๋ฐฐํฌ๋์์ต๋๋ค!!
๐ Version 1.1.0 Released
์ด๋ฏธ์ง ํฉ์ฑ ์๋ฒ๋ Django ์ดํ๋ฆฌ์ผ์ด์
์ผ๋ก Oracle Cloud์ ๋ฐฐํฌ๋์ด ์์ต๋๋ค. http://193.123.235.185:8000
์ /synthesizing/:originid/:subid
๋ผ์ฐํฐ๋ก POST ์์ฒญํฉ๋๋ค.
Bletcher-mix๋ Oracle Cloud์ ๋ฐฐํฌ๋์ด์์ด ๋ฐ๋ก ํ๊ฒฝ์ ๊ตฌ์ถํ ํ์๊ฐ ์์ง๋ง, ๊ฐ๋ฐ์ ํ๊ฒฝ์์ ์ปค์คํฐ๋ง์ด์ง ํ๊ณ ์ถ์ ๋ถ์ ์๋์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ์ฃผ์ธ์.
์คํ ์ requirements๋ฅผ ์ฐธ๊ณ ํ์ฌ Python ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ์ญ์์ค. ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค์ด ๊ตฌ์ถํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
git clone https://github.com/Bletcher-Project/bletcher_mix
./bletcher_mix/
๊ฒฝ๋ก์ .env.example๋ฅผ ์ฐธ๊ณ ํ์ฌ .env
ํ์ผ์ ์์ฑํฉ๋๋ค.์ด๋ bletcher-back, Heroku, Cloudinary ๋ฑ์ ์๋น์ค์ ์ฐ๊ฒฐ์ด ํ์์ ์ด๊ณ ํด๋น ์๋น์ค๋ค์๊ฒ ์ต์ ํ๋์ด ์์ต๋๋ค. ์คํํ๋ ค๋ฉด ์ต์ํ bletcher-back server์ ์คํ๊ณผ Cloudinary ์ฐ๋์ด ํ์ํฉ๋๋ค.
python manage.py runserver
๋ฅผ ์คํํฉ๋๋ค./synthesizing
๋ผ์ฐํฐ๋ก ์์ฒญํฉ๋๋ค.โ๏ธ neural style์ pytorch๊ธฐ๋ฐ CNN ๋ชจ๋ธ๋ก VGG19 ๋ชจ๋ธ์ ์ฌ์ฉํ์ ๋ ์ต์ ์ ์ฑ๋ฅ์ ๋ณผ ์ ์์ต๋๋ค.
VGG19 ๋ชจ๋ธ์ ํตํด ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด neural_style.py ํ์ผ์ ์ด์ด layer์ model์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ผ ํฉ๋๋ค.
# VGG19 ver. Layer (line 83-89)
content_layers_default = ['conv_3']
style_layers_default = ['conv_1', 'conv_2', 'conv_3', 'conv_4', 'conv_5']
# VGG19 ver. Model (line 214-218)
cnn = models.vgg19(pretrained=True).features.to(device).eval()
Resnet50 ๋ชจ๋ธ์ ํตํด ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด neural_style.py ํ์ผ์ ์ด์ด layer์ model์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ผ ํฉ๋๋ค.
# resnet50 ver. Layer (line 83-89)
content_layers_default = ['conv_1']
style_layers_default = ['conv_1', 'conv_2', 'conv_3', 'conv_4', 'conv_5']
# resnet50 ver. Model (line 214-218)
cnn = models.resnet50(pretrained=True).to(device).eval()
All of source codes under our project are using MIT License.