項目 | 最小動作環境 | 推奨動作環境 |
---|---|---|
OS | Microsoft Windows 10 または 11 または Linux | 同左 |
CPU | Intel Core i5以上 | Intel Core i7以上 |
メモリ | 8GB以上 | 16GB以上 |
GPU | NVIDIA Quadro P620以上 | NVIDIA RTX 2080以上 |
GPU メモリ | 2GB以上 | 8GB以上 |
- AWS cuda 11.3 がインストールされている AMIを選択して、EC2作成
- 22.04 以上からは cuda 11.3 がインストールされないから注意
- インスタンススペック
- g4dn.xlarge
- SSD 500GB
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install 3.9.19
pyenv global 3.9.19
git clone --recurse-submodules https://github.com/realglobe-Inc/bldg-lod2-tool
-
以下を ~/.bashrc に追加
alias create_env='python -m venv $(basename $PWD)' alias activate='source "$PWD/$(basename $PWD)/bin/activate"'
-
pip 仮想環境の作成するパス(
create_env
コマンドで pip 仮装環境を作成)pip 仮想環境作成するパス ツールめ 備考 ./tools/SuperResolution/RoofSurface
屋根面視認性向上ツール 不要になった ./
LOD2建築物モデル自動作成ツール ./tools/SuperResolution/WallSurface
壁面視認性向上ツール ./tools/DeblurGANv2
テクスチャ鮮明化ツール ./tools/UnsharpMask
テクスチャシャープ化ツール ./tools/Real-ESRGAN
テクスチャ解像度向上ツール ./tools/Atlas_Prot
テクスチャアトラス化ツール バグが多すぎて、使用中止 -
仮想環境の開始
activate # requirements.txt のあるフォルダーに移動して実行
- 仮想環境の終了
deactivate # requirements.txt のあるフォルダーに移動して実行
pip install –r requirements.txt # 仮想環境の開始後
wget -O src/createmodel/data/classifier_parameter.pkl https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/classifier_parameter.pkl
wget -O src/createmodel/data/roof_edge_detection_parameter.pth https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/roof_edge_detection_parameter.pth
wget -O src/createmodel/data/balcony_segmentation_parameter.pkl https://github.com/realglobe-Inc/bldg-lod2-tool/releases/download/PretrainedModels-1.0/balcony_segmentation_parameter.pkl
- ブラウザからダウンロード(ファイル大きいから wget 不可)
- scp でインスタンスに転送
scp ~/Download/Auto-Create-bldg-lod2-tool-tutorial.zip [email protected]:~/
- インスタンス内部で圧縮解除
mkdir -p ~/Auto-Create-bldg-lod2-tool-tutorial
unzip ~/Auto-Create-bldg-lod2-tool-tutorial.zip -d ~/Auto-Create-bldg-lod2-tool-tutorial
~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/param.json
{
"LasCoordinateSystem": 9,
"DsmFolderPath": "~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/dataset/DSM",
"LasSwapXY": false,
"CityGMLFolderPath": "~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/dataset/CityGML",
"TextureFolderPath": "~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/dataset/RawImage",
"RotateMatrixMode": 0,
"ExternalCalibElementPath": "~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/dataset/ExCalib/ExCalib.txt",
"CameraInfoPath": "~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/dataset/CamInfo/CamInfo.txt",
"OutputFolderPath": "~/AutoCreateLod2_tutorial/output",
"OutputOBJ": true,
"OutputTexture": true,
"OutputCityGML": true,
"OutputLogFolderPath": "~/AutoCreateLod2_tutorial/output",
"DebugLogOutput": false,
"PhaseConsistency": {
"DeleteErrorObject": true,
"NonPlaneThickness": 0.05,
"NonPlaneAngle": 15
},
"DebugMode": true,
"TargetCoordAreas" : [
[[35, 139, 6668], [36, 140, 6668]],
[[35, 139, 6668], [-12516, -53774, 6677]],
[[-12516, -53774, 6677], [-12516, -53774, 6677]]
],
"TextureOutputWidthMax": 4096,
"TextureOutputHeightMax": 4096
}
python3 AutoCreateLod2.py ~/AutoCreateLod2_tutorial/LOD2Creator_tutorial/param.json
No | キー名 | 値形式 | 説明 |
---|---|---|---|
1 | LasCoordinateSystem | number |
航空写真DSM点群の平面直角座標系の番号です。1~19の数値にて指定します。未記入および1~19以外の値が入力された場合は無効とし、エラーメッセージを表示し、処理を中止します。 |
2 | DsmFolderPath | string |
航空写真DSM点群のフォルダパスを指定します。指定されたフォルダパスが存在しない場合は無効とし、エラーメッセージを表示し、処理を中止します。 |
3 | LasSwapXY | Boolean |
LASファイルのXY座標を入れ替えて使用するか否かを切り替えるフラグです。設定値がtrueの場合は、LASファイルのXY座標を入れ替えます。システム内部座標系が、xが東方向、yが北方向の値のため、LASファイル座標系が同一座標系となるようにユーザーがフラグを切り替える必要があります。未記入、または、真偽値以外の値が入力された場合は、エラーメッセージを表示し、処理を中止します。 |
4 | CityGMLFolderPath | string |
入力CityGMLフォルダパスを指定します。未記入および指定されたフォルダが存在しない場合、フォルダ内にCityGMLファイルがない場合は無効とし、エラーメッセージを表示し、処理を中止します。 |
5 | TextureFolderPath | string |
航空写真(原画像)の格納フォルダパスです。未記入および指定されたファイルが存在しない場合は無効とし、警告メッセージを表示し、テクスチャ貼付け処理を実施しません。 |
6 | ExternalCalibElementPath | string |
外部標定パラメータのファイルパスです。未記入および指定されたファイルが存在しない場合は無効とし、警告メッセージを表示し、テクスチャ貼付け処理を実施しません。 |
7 | RotateMatrixMode | number |
テクスチャ貼付け処理において、ワールド座標からカメラ座標に変換する際に使用する回転行列Rの種類を切り替える設定値です。 モードの種類は以下2種類とします。 0:R=R_x (ω) R_y (ϕ) R_z (κ) 1:R=R_z (κ)R_y (ϕ)R_x (ω) 未記入、または、0,1以外の値が入力された場合は、エラーメッセージを表示し、処理を中止します。 |
8 | CameraInfoPath | string |
内部標定パラメータのファイルパスです。未記入および指定されたファイルが存在しない場合は無効とし、警告メッセージを表示し、テクスチャ貼付け処理を実施しません。 |
9 | OutputFolderPath | string |
生成モデルの出力先フォルダパスです。指定されたフォルダ内に出力フォルダを作成し、作成したフォルダ内にCityGMLファイルとテクスチャ情報を出力します。テクスチャ情報は、入力CityGMLファイル名称(拡張子は除く)_appearanceフォルダに格納されます。 |
10 | OutputLogFolderPath | string |
ログのフォルダパスです。未記入または、存在しない場合は、本システムのPythonコードと同階層のログフォルダ“output_log”にログファイルを作成し、処理を中止します。 |
11 | DebugLogOutput | Boolean |
デバッグレベルのログを出力するかどうかのフラグです。trueまたはfalseで値を指定します。未記入または、真偽値以外の値が入力された場合は、エラーメッセージを表示し、処理を中止します。 |
12 | PhaseConsistency | { DeleteErrorObject: Boolean, NonPlaneThickness: number, NonPlaneAngle: number } |
位相一貫性検査/補正処理用パラメータです。項目は位相一貫性検査/補正用設定パラメータ一覧を参照してください。 |
No | キー名 | 値形式 | 基本値 | 説明 |
---|---|---|---|---|
1 | OutputOBJ | Boolean |
true |
生成モデルをCityGMLファイルとは別にOBJファイルとして出力するか否かを設定するフラグです。 |
2 | OutputTexture | Boolean |
true |
CityGMLファイルにテクスチャー情報を出力するか否かを設定するフラグです。 |
3 | OutputCityGML | Boolean |
true |
CityGMLファイル出力するか否かを設定するフラグです。 |
4 | DebugMode | Boolean |
false |
デバッグモード : キャッシュ化して実行速度改善、中間処理段階の結果をイメージとして保存して問題を追跡 |
5 | TargetCoordAreas | Array<Array<Array<number>>> | null |
null |
緯度経度の領域を指定して建築物の対象を絞ります。 緯度経度の領域 : [[x1, y1, epsg_code1], [x2, y2, epsg_code2]] ex) [[-13985, -51597, 6677], [-13963, -51576, 6677]] |
6 | TargetBuildingIds | Array<string> | null |
null |
建築IDを指定して建築物の対象を絞ります。入力しない場合、全ての建築物を対象とします |
7 | TextureOutputWidthMax | number |
4096 |
テクスチャー幅サイズ最大値制限 |
8 | TextureOutputHeightMax | number |
4096 |
テクスチャー縦サイズ最大値制限 |
python3 AutoCreateLod2.py param.json
不要になったため一旦隠す(クリックしてオープン)
pip install –r requirements.txt # 仮想環境の開始後
wget -O checkpoint/iter_280000_conv.pth https://drive.google.com/file/d/1xBFAVgGeIGFsvMN6bG_Y9renLyNm46is/view?usp=drivesdk
python3 CreateSuperResolution.py param.json
pip install –r requirements.txt # 仮想環境の開始後
wget -O checkpoint/latest_net_G_A.pth https://github.com/realglobe-Inc/pytorch-CycleGAN-and-pix2pix/releases/download/bldg-lod2-tool-v2.0.0/latest_net_G_A.pth
python3 main.py param.json
pip install –r requirements.txt # 仮想環境の開始後
~/.cache/torch/hub/checkpoints
に1inceptionresnetv2-520b38e4.pth
mkdir -p ~/.cache/torch/hub/checkpoints
wget -O ~/.cache/torch/hub/checkpoints/inceptionresnetv2-520b38e4.pth https://github.com/realglobe-Inc/DeblurGANv2/releases/download/v1.0.0/inceptionresnetv2-520b38e4.pth
checkpoints/fpn_inception.h5
に fpn_inception.h5
wget -O checkpoints/fpn_inception.h5 https://github.com/realglobe-Inc/DeblurGANv2/releases/download/v1.0.0/fpn_inception.h5
python3 predict.py -i input -o output -c checkpoints/fpn_inception.h5
pip install –r requirements.txt # 仮想環境の開始後
python3 UnsharpMask.py -i input -o output
# 仮想環境の開始後
pip install -r requirements.txt
python setup.py
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth -P weights
# -g gpu-id
# -s 解像度向上(n倍)
# -n 事前学習モデル
# -i 入力画像
# -i 出力画像
# 4倍解像度向上
python3 inference_realesrgan.py -n RealESRGAN_x4plus -g 0 -s 4 -i input -o output
# 2倍解像度向上
python3 inference_realesrgan.py -n RealESRGAN_x2plus -g 0 -s 2 -i input -o output
pip install –r requirements.txt # 仮想環境の開始後
python3 Atlas_Prot.py param.json
cd ~
git clone https://github.com/realglobe-Inc/pytorch-CycleGAN-and-pix2pix
cd pytorch-CycleGAN-and-pix2pix
wget -O datasets/d10.zip https://github.com/realglobe-Inc/pytorch-CycleGAN-and-pix2pix/releases/download/bldg-lod2-tool-v2.0.0/d10.zip
unzip datasets/d10.zip -d datasets/d10/
rm datasets/d10.zip
- B画像として高画質化済みの画像を選択する場合
cp -r datasets/d10/train_d10B_deblured/ datasets/d10/train_d10B/
- B画像として元の画像を選択する場合
cp -r datasets/d10/train_d10B_backup/ datasets/d10/train_d10B/
- 学習するデーターを追加する場合
- datasets/d10/train_d10B_backup/ に B画像追加
- datasets/d10/train_d10A/ に A画像追加
- テクスチャ鮮明化ツールで
datasets/d10/train_d10B_backup/
の画質向上 - 画質向上された画像を テクスチャシャープ化ツールで
datasets/d10/train_d10B_backup/
ジシャープ化 - ジシャープ化された画像を
datasets/d10/train_d10B/
にコピー
pip install –r requirements.txt # 仮想環境の開始後
- 実行
python3 train.py --dataroot ./datasets/d10 --name CycleGAN_d10 --model cycle_gan --direction AtoB --phase train_d10 --save_epoch_freq 100 --n_epochs 500 --input_nc 3 --output_nc 3
checkpoints/CycleGAN_d10_old/latest_net_G_A.pth
が学習済みパラメーター
- 実行
python3 test.py --dataroot ~/CycleGAN/datasets/d10 --name CycleGAN_d10 --model cycle_gan --direction AtoB --phase test_d10 --epoch latest --input_nc 3 --output_nc 3
results
から結果確認