Skip to content

Commit 0fa2ebc

Browse files
authored
Create INSTALL.md with setup and usage instructions
Added installation instructions and guidelines for reproducibility, CI, and data availability.
1 parent 8c83dce commit 0fa2ebc

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

assets/docs/INSTALL.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
## Reproducibility & Installation
2+
3+
### Continuous Integration and Code Quality
4+
5+
This repository enforces consistent coding standards and documentation to support long-term reproducibility and collaborative research.
6+
7+
All Python code is automatically checked using:
8+
9+
- **Ruff** for PEP8 and PEP257 compliance
10+
- **Pre-commit hooks** to prevent non-compliant code from being committed locally
11+
- **GitHub Actions CI** to validate code quality on every push and pull request
12+
13+
The CI pipeline runs the following checks:
14+
15+
```bash
16+
ruff check .
17+
ruff format --check .
18+
```
19+
Pull requests to the main branch are blocked unless all checks pass, ensuring that the repository remains clean, readable, and reproducible over time.
20+
21+
### Data Availability
22+
23+
Due to data access restrictions associated with Oak Ridge National Laboratory (ORNL), the original datasets used in this study are **not publicly available**. Full reproduction of the reported experimental results therefore requires **authorized access** to the Advanced Plant Phenotyping Laboratory (APPL) data.
24+
25+
That said, the codebase is **dataset-agnostic by design**. Any 3D LiDAR point cloud dataset can be used **provided that**:
26+
- Point clouds are available in **XYZ format** (e.g., `.txt`, `.pcd`, `.ply`)
27+
- Point-wise semantic labels are provided (or generated) following a compatible annotation scheme
28+
- The data can be adapted to the expected input format used by the dataset loader
29+
30+
This enables reuse of the pipeline for **methodological experimentation**, architectural benchmarking, and extension to alternative 3D segmentation tasks.
31+
32+
33+
### Installation
34+
35+
The main dependencies of the project are listed below.
36+
37+
**Core Requirements**
38+
- Python ≥ 3.8
39+
- CUDA ≥ 11.x (optional, but recommended for training)
40+
- PyTorch + PyTorch Geometric
41+
- Open3D
42+
43+
44+
### Step 1: Clone the Repository and Create Environment
45+
46+
```bash
47+
git clone https://github.com/angomezu/geometric-deep-learning-plant-organ-segmentation.git
48+
cd geometric-deep-learning-plant-organ-segmentation
49+
50+
conda create -n plantseg python=3.9 pip
51+
conda activate plantseg
52+
```
53+
54+
### Step 2: Install PyTorch
55+
56+
Install PyTorch with CUDA support (adjust CUDA version if needed):
57+
58+
```bash
59+
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
60+
```
61+
62+
For CPU-only usage:
63+
64+
```bash
65+
pip install torch torchvision torchaudio
66+
```
67+
68+
### Step 3: Install PyTorch Geometric
69+
70+
Install PyTorch Geometric and its dependencies:
71+
72+
```bash
73+
pip install torch-geometric
74+
```
75+
76+
If you encounter issues, refer to the official installation guide:
77+
https://pytorch-geometric.readthedocs.io/en/latest/install/installation.html
78+
79+
### Step 4: Install 3D Processing and ML Dependencies
80+
81+
```bash
82+
pip install open3d numpy scikit-learn tqdm
83+
```
84+
85+
86+
## Notes on Usage
87+
88+
- Training scripts assume point-wise labeled data
89+
- Data loaders and feature computation logic are implemented in src/dataset.py
90+
- Visualization utilities require a functioning OpenGL context (for on-screen rendering)
91+
92+
### Users intending to apply the pipeline to new datasets may need to:
93+
94+
- Adapt the annotation format
95+
- Update normalization statistics
96+
- Adjust neighborhood radius and voxelization parameters
97+
98+
---
99+
100+
### Model checkpoints (.pth)
101+
102+
This project uses PyTorch checkpoint files (`.pth`) to store trained model weights.
103+
Running `python train.py` will save a checkpoint to `models/` (see the filename in `train.py`).
104+
Update `MODEL_PATH` (evaluation) and `CHECKPOINT` (visualization) to point to your `.pth`.
105+
106+
---

0 commit comments

Comments
 (0)