forked from Project-PLATEAU/Auto-Create-bldg-lod2-tool
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
270 lines (184 loc) · 9.21 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
FROM nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04
# タイムゾーンの設定
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 必要なパッケージのインストール
RUN apt-get update && \
apt-get install -y --no-install-recommends \
nano curl wget zip unzip libopencv-dev jq build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libffi-dev liblzma-dev git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# pyenv のインストール
ENV PYENV_ROOT="/root/.pyenv"
ENV PATH="${PYENV_ROOT}/bin:${PATH}"
RUN git clone https://github.com/pyenv/pyenv.git "${PYENV_ROOT}" && \
git clone https://github.com/pyenv/pyenv-virtualenv.git "${PYENV_ROOT}/plugins/pyenv-virtualenv" && \
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc && \
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# Python 3.9.19 のインストールと設定
RUN eval "$(pyenv init --path)" && \
pyenv install 3.9.19 && \
pyenv global 3.9.19 && \
pyenv rehash
# Python のパス設定
ENV PATH="${PYENV_ROOT}/shims:${PATH}"
# AWS CLIのインストール
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
unzip awscliv2.zip && \
./aws/install && \
rm -rf awscliv2.zip aws
# ワーキングディレクトリを設定
WORKDIR /app
# 出力用ディレクトリを作成
RUN mkdir -p ./output
# pip 仮装環境コマンド追加
RUN echo "alias create_env='python -m venv \$(basename \$PWD)'" >> ~/.bashrc && \
echo "alias activate='source \"\$PWD/\$(basename \$PWD)/bin/activate\"'" >> ~/.bashrc
########## LOD2建築物自動作成ツールのインストール ##########
# LOD2建築物自動作成ツールのフォルダーに移動
RUN mkdir -p /app
WORKDIR /app
# 必要なファイルをコピー
COPY requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
deactivate
# 学習済みモデルのダウンロード(ファイルがない場合のみ)
RUN mkdir -p src/createmodel/data && \
test -f src/createmodel/data/classifier_parameter.pkl || \
wget 'https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/classifier_parameter.pkl' \
-O src/createmodel/data/classifier_parameter.pkl && \
test -f src/createmodel/data/roof_edge_detection_parameter.pth || \
wget 'https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/roof_edge_detection_parameter.pth' \
-O src/createmodel/data/roof_edge_detection_parameter.pth && \
test -f src/createmodel/data/balcony_segmentation_parameter.pkl || \
wget 'https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/balcony_segmentation_parameter.pkl' \
-O src/createmodel/data/balcony_segmentation_parameter.pkl
########## 壁面視認性向上ツールのインストール ##########
# 壁面視認性向上ツールのフォルダーに移動
RUN mkdir -p /app/tools/SuperResolution/WallSurface
WORKDIR /app/tools/SuperResolution/WallSurface
# 必要なファイルをコピー
COPY tools/SuperResolution/WallSurface/checkpoint checkpoint
COPY tools/SuperResolution/WallSurface/requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
deactivate
# 学習済みモデルのダウンロード(ファイルがない場合のみ)
RUN test -f checkpoint/latest_net_G_A.pth || \
wget 'https://github.com/realglobe-Inc/pytorch-CycleGAN-and-pix2pix/releases/download/bldg-lod2-tool-v2.0.0/latest_net_G_A.pth' \
-O checkpoint/latest_net_G_A.pth
########## テクスチャ鮮明化ツールのインストール ##########
# テクスチャ鮮明化ツールのフォルダーに移動
RUN mkdir -p /app/tools/DeblurGANv2
WORKDIR /app/tools/DeblurGANv2
# 必要なファイルをコピー
COPY tools/DeblurGANv2/checkpoints checkpoints
COPY tools/DeblurGANv2/requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
deactivate
# 学習済みモデルのダウンロード(ファイルがない場合のみ)
RUN mkdir -p ~/.cache/torch/hub/checkpoints && \
test -f ~/.cache/torch/hub/checkpoints/inceptionresnetv2-520b38e4.pth || \
wget 'https://github.com/realglobe-Inc/DeblurGANv2/releases/download/v1.0.0/inceptionresnetv2-520b38e4.pth' \
-O ~/.cache/torch/hub/checkpoints/inceptionresnetv2-520b38e4.pth && \
test -f checkpoints/fpn_inception.h5 || \
wget 'https://github.com/realglobe-Inc/DeblurGANv2/releases/download/v1.0.0/fpn_inception.h5' \
-O checkpoints/fpn_inception.h5
########## テクスチャシャープ化ツールのインストール ##########
# テクスチャシャープ化ツールのフォルダーに移動
RUN mkdir -p /app/tools/UnsharpMask
WORKDIR /app/tools/UnsharpMask
# 必要なファイルをコピー
COPY tools/UnsharpMask/UnsharpMask.py .
COPY tools/UnsharpMask/requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
deactivate
########## テクスチャ解像度向上ツールのインストール ##########
# テクスチャ解像度向上ツールのフォルダーに移動
RUN mkdir -p /app/tools/Real-ESRGAN
WORKDIR /app/tools/Real-ESRGAN
# 必要なファイルをコピー
COPY tools/Real-ESRGAN/weights weights
COPY tools/Real-ESRGAN/realesrgan realesrgan
COPY tools/Real-ESRGAN/setup.py .
COPY tools/Real-ESRGAN/VERSION .
COPY tools/Real-ESRGAN/README.md .
COPY tools/Real-ESRGAN/requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
python3 setup.py develop && \
deactivate
# 学習済みモデルのダウンロード(ファイルがない場合のみ)
RUN test weights/RealESRGAN_x4plus.pth || \
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth \
-O weights/RealESRGAN_x4plus.pth
########## テクスチャアトラス化ツールのインストール ##########
# テクスチャアトラス化ツールのフォルダーに移動
RUN mkdir -p /app/tools/Atlas_Prot
WORKDIR /app/tools/Atlas_Prot
# 必要なファイルをコピー
COPY tools/Atlas_Prot/Atlas_Prot.py .
COPY tools/Atlas_Prot/requirements.txt .
# 必要なPythonライブラリをインストール
RUN python3 -m venv $(basename $PWD) && \
. $(basename $PWD)/bin/activate && \
python3 -m pip install --no-cache-dir -r requirements.txt && \
deactivate
########################################################################
########## ビルド速度向上のため、この下は頻繁に変更されるファイルの処理 ##########
########################################################################
########## LOD2建築物自動作成ツールの頻繁に変更されるファイル ##########
# LOD2建築物自動作成ツールのフォルダーに移動
WORKDIR /app
# 必要なファイルをコピー
COPY requirements.txt .
# 必要なファイルをコピー
COPY src src
COPY AutoCreateLod2.py .
########## 壁面視認性向上ツールの頻繁に変更されるファイル ##########
# 壁面視認性向上ツールのフォルダーに移動
WORKDIR /app/tools/SuperResolution/WallSurface
# 必要なファイルをコピー
COPY tools/SuperResolution/WallSurface/src src
COPY tools/SuperResolution/WallSurface/cyclegan cyclegan
COPY tools/SuperResolution/WallSurface/main.py .
########## テクスチャ鮮明化ツールの頻繁に変更されるファイル ##########
# テクスチャ鮮明化ツールのフォルダーに移動
WORKDIR /app/tools/DeblurGANv2
# 必要なファイルをコピー
COPY tools/DeblurGANv2/models models
COPY tools/DeblurGANv2/config config
COPY tools/DeblurGANv2/predict.py .
COPY tools/DeblurGANv2/aug.py .
########## テクスチャシャープ化ツールの頻繁に変更されるファイル ##########
# テクスチャシャープ化ツールのフォルダーに移動
WORKDIR /app/tools/UnsharpMask
########## テクスチャ解像度向上ツールの頻繁に変更されるファイル ##########
# テクスチャ解像度向上ツールのフォルダーに移動
WORKDIR /app/tools/Real-ESRGAN
# 必要なファイルをコピー
COPY tools/Real-ESRGAN/inference_realesrgan.py .
########## テクスチャアトラス化ツールの頻繁に変更されるファイル ##########
# テクスチャアトラス化ツールのフォルダーに移動
WORKDIR /app/tools/Atlas_Prot
# 必要なファイルをコピー
COPY tools/Atlas_Prot/src src
########## 実行関連設定 ##########
# デフォルト実行パス
WORKDIR /app
# 実行ファイルをコピー
COPY process.sh .