Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ data
*.csv
*.pl

**.laz
**.tif
**.log
**.wandb
Expand Down
9 changes: 9 additions & 0 deletions configs/3d-geoinfo-2025/baseline/run_baseline_evaluation.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
python .\scripts\prediction.py --config-path .\configs\baseline\predict_without_finetuning_2_5_cm.toml
python .\scripts\prediction.py --config-path .\configs\baseline\predict_without_finetuning_5_cm.toml
python .\scripts\prediction.py --config-path .\configs\baseline\predict_without_finetuning_7_5_cm.toml
python .\scripts\prediction.py --config-path .\configs\baseline\predict_without_finetuning_10_cm.toml

python .\scripts\evaluate.py --config-path .\configs\baseline\evaluate_without_finetuning_2_5_cm.toml
python .\scripts\evaluate.py --config-path .\configs\baseline\evaluate_without_finetuning_5_cm.toml
python .\scripts\evaluate.py --config-path .\configs\baseline\evaluate_without_finetuning_7_5_cm.toml
python .\scripts\evaluate.py --config-path .\configs\baseline\evaluate_without_finetuning_10_cm.toml
168 changes: 168 additions & 0 deletions notebooks/3d-geoinfo-2025/1_table_dataset_overview.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Table 1: Dataset Overview\n",
"\n",
"This notebook can be used to create the table providing an overview of the datasets used in this study."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"from pathlib import Path\n",
"\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# adjust base directory if needed\n",
"base_dir = Path(\"G:/3D-GeoInfo-2025/data/1_base_data/labels\")\n",
"csv_output_file_path = \"./datasets.csv\"\n",
"\n",
"datasets = [\n",
" # small plot that was labeled using all three labeling approaches\n",
" {\n",
" \"LabelFile\": \"./manual_labeling/s1_p1_small_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.0\",\n",
" \"Size\": \"50 x 50\",\n",
" \"Labeling\": \"ML\",\n",
" \"Usage\": \"train (small)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./manual_correction/s1_p1_small_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.0\",\n",
" \"Size\": \"50 x 50\",\n",
" \"Labeling\": \"MC\",\n",
" \"Usage\": \"train (small)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./automatic_labeling/s1_p1_small_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.0\",\n",
" \"Size\": \"50 x 50\",\n",
" \"Labeling\": \"AL\",\n",
" \"Usage\": \"train (small)\"\n",
" },\n",
" # additional manually labeled data\n",
" {\n",
" \"LabelFile\": \"./manual_labeling/s1_p1_ext_ml_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.1\",\n",
" \"Size\": \"100 x 100\",\n",
" \"Labeling\": \"ML\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" # additional manually corrected data\n",
" {\n",
" \"LabelFile\": \"./manual_correction/s1_p1_ext_mc_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.2\",\n",
" \"Size\": \"120 x 80\",\n",
" \"Labeling\": \"MC\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./manual_correction/s1_p2_mc_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 2\",\n",
" \"Size\": \"120 x 120\",\n",
" \"Labeling\": \"MC\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./manual_correction/s2_p1_mc_coco.json\",\n",
" \"Site\": 2,\n",
" \"Plot\": \"Plot 1\",\n",
" \"Size\": \"120 x 120\",\n",
" \"Labeling\": \"MC\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" # additional automatically labeled data\n",
" {\n",
" \"LabelFile\": \"./automatic_labeling/s1_p1_ext_al_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 1.3\",\n",
" \"Size\": \"200 x 100\",\n",
" \"Labeling\": \"AL\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./automatic_labeling/s1_p2_al_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 2\",\n",
" \"Size\": \"150 x 100\",\n",
" \"Labeling\": \"AL\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" {\n",
" \"LabelFile\": \"./automatic_labeling/s1_p3_al_coco.json\",\n",
" \"Site\": 1,\n",
" \"Plot\": \"Plot 3\",\n",
" \"Size\": \"100 x 100\",\n",
" \"Labeling\": \"AL\",\n",
" \"Usage\": \"train (ext.)\"\n",
" },\n",
" # test set\n",
" {\n",
" \"LabelFile\": \"./manual_labeling/s3_p1_coco.json\",\n",
" \"Site\": 3,\n",
" \"Plot\": \"Plot 1\",\n",
" \"Size\": \"50 x 50\",\n",
" \"Labeling\": \"ML\",\n",
" \"Usage\": \"test\"\n",
" },\n",
"]\n",
"\n",
"dataset_metadata_list = []\n",
"\n",
"for dataset in datasets:\n",
" label_file_path = base_dir / dataset[\"LabelFile\"]\n",
" assert label_file_path.exists(), f\"{label_file_path} does not exist.\"\n",
" with open(label_file_path, \"r\", encoding=\"utf-8\") as f:\n",
" labels = json.load(f)\n",
" dataset[\"NumTrees\"] = len(labels[\"annotations\"])\n",
" dataset[\"Plot\"] = dataset[\"Plot\"].replace(\"_\", r\"\\_\")\n",
" dataset[\"Size\"] = dataset[\"Size\"].replace(\"x\", r\"$\\times$\")\n",
" dataset_metadata_list.append(dataset)\n",
"\n",
"dataset_metadata = pd.DataFrame(dataset_metadata_list)\n",
"dataset_metadata.to_csv(csv_output_file_path, index=False)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "deepforest-env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading