Skip to content

Commit bf22529

Browse files
authored
Update README.md
1 parent b6f5568 commit bf22529

File tree

1 file changed

+85
-94
lines changed

1 file changed

+85
-94
lines changed

README.md

Lines changed: 85 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,17 @@ _Last updated: December 18, 2025_
3434
## Table of Contents
3535

3636
- [Abstract](#abstract)
37-
- [Contributions](#contributions)
3837
- [Repository Purpose](#repository-purpose)
39-
- [Tech Stack](#tech-stack)
38+
- [Contributions](#contributions)
39+
- [Getting Started](#getting-started)
40+
- [Code Structure](#code-structure)
4041
- [Method Overview](#method-overview)
41-
- [Problem Setting](#problem-setting)
42-
- [Manual Annotation Protocol](#manual-annotation-protocol)
43-
- [Geometric Feature Engineering](#geometric-feature-engineering)
44-
- [Learning Architecture](#learning-architecture)
45-
- [Evaluation Protocol](#evaluation-protocol)
42+
- [Problem Setting](#problem-setting)
43+
- [Manual Annotation Protocol](#manual-annotation-protocol)
44+
- [Geometric Feature Engineering](#geometric-feature-engineering)
45+
- [Learning Architecture](#learning-architecture)
46+
- [Evaluation Protocol](#evaluation-protocol)
4647
- [Qualitative Findings](#qualitative-findings)
47-
- [Code Structure](#code-structure)
48-
- [Reproducibility & Installation](#reproducibility--installation)
49-
- [Data Availability](#data-availability)
50-
- [Installation](#installation)
51-
- [Step 1: Clone the Repository and Create Environment](#step-1-clone-the-repository-and-create-environment)
52-
- [Step 2: Install PyTorch](#step-2-install-pytorch)
53-
- [Step 3: Install PyTorch Geometric](#step-3-install-pytorch-geometric)
54-
- [Step 4: Install 3D Processing and ML Dependencies](#step-4-install-3d-processing-and-ml-dependencies)
55-
- [Notes on Usage](#notes-on-usage)
5648
- [Future Research Directions](#future-research-directions)
5749
- [Citation](#citation)
5850
- [External Research Collaborators](#external-research-collaborators)
@@ -64,32 +56,36 @@ _Last updated: December 18, 2025_
6456

6557
## Abstract
6658

67-
Semantic segmentation of unstructured 3D point clouds remains a challenging problem, particularly in domains where appearance cues are unavailable. In plant phenotyping, LiDAR-based point clouds provide rich geometric information but suffer from class imbalance, occlusion, and geometric ambiguity between biological and abiotic structures.
68-
69-
This work investigates the use of **geometry-aware deep learning** for organ-level plant segmentation using **Dynamic Edge Convolutional Neural Networks (DECNNs)**. We propose a structured annotation protocol, geometric feature augmentation, and a loss formulation tailored to highly imbalanced plant data. The released code focuses on methodology and reproducibility and accompanies an ongoing research manuscript.
70-
71-
Our goal with this applied research project is to demonstrate how computer vision tools have a direct impact on industry problems such as 3D perception, robotics, autonomous systems, medical imaging, and industrial and agricultural inspection.
59+
<div style="
60+
max-width: 1100px;
61+
margin: auto;
62+
text-align: justify;
63+
text-justify: inter-word;
64+
line-height: 1.6;
65+
">
66+
Semantic segmentation of unstructured 3D point clouds remains a challenging problem, particularly in domains where appearance cues are unavailable. In plant phenotyping, LiDAR-based point clouds provide rich geometric information but suffer from class imbalance, occlusion, and geometric ambiguity between biological and abiotic structures. This work investigates the use of geometry-aware deep learning for organ-level plant segmentation using Dynamic Edge Convolutional Neural Networks (DECNNs). We propose a structured annotation protocol, geometric feature augmentation, and a loss formulation tailored to highly imbalanced plant data. The released code focuses on methodology and reproducibility and accompanies an ongoing research manuscript. Our goal with this applied research project is to demonstrate how computer vision tools have a direct impact on industry problems such as 3D perception, robotics, autonomous systems, medical imaging, and industrial and agricultural inspection.
67+
</div>
7268

7369
---
7470

75-
## Contributions
76-
77-
- Geometry-based semantic segmentation of plant organs from 3D LiDAR point clouds
78-
- A structured manual annotation protocol tailored to complex biological structures
79-
- Integration of local geometric descriptors within dynamic graph convolutional networks
80-
- Robust learning under severe class imbalance in organ-level segmentation tasks
81-
- A research-oriented, modular codebase designed to support reproducible experimentation
82-
83-
---
84-
8571
## Repository Purpose
8672

8773
This repository releases **research code** developed in collaboration with **Oak Ridge National Laboratory** for studying semantic segmentation of 3D plant point clouds.
8874

8975
**Important:**
90-
- No raw or processed data is included
91-
- No trained model checkpoints are provided
92-
- The repository focuses on **methodology, architecture, and evaluation**
76+
- No raw or processed data is included.
77+
- No trained model checkpoints are provided.
78+
- The repository focuses on **methodology, architecture, and evaluation**.
79+
80+
---
81+
82+
## Contributions
83+
84+
- Geometry-based semantic segmentation of plant organs from 3D LiDAR point clouds.
85+
- A structured manual annotation protocol tailored to complex biological structures.
86+
- Integration of local geometric descriptors within dynamic graph convolutional networks.
87+
- Robust learning under severe class imbalance in organ-level segmentation tasks.
88+
- A research-oriented, modular codebase designed to support reproducible experimentation.
9389

9490
---
9591

@@ -102,6 +98,36 @@ train with `python train.py`, then evaluate with `python evaluation.py` and visu
10298

10399
---
104100

101+
## Code Structure
102+
103+
The repository is organized as a modular research pipeline:
104+
105+
```text
106+
├── data/ # Directory structure only (no data included)
107+
│ ├── train/
108+
│ ├── val/
109+
│ └── test/
110+
111+
├── src/
112+
│ ├── dataset.py # ETL and geometric feature computation
113+
│ ├── model.py # Dynamic Edge CNN architecture
114+
│ └── inference.py # Inference and post-processing
115+
116+
├── validations/ # Data integrity and sanity checks
117+
│ ├── check_data.py
118+
│ ├── check_labels.py
119+
│ └── count_nans.py
120+
121+
├── train.py # Training loop
122+
├── evaluation.py # Metric computation and bootstrapping
123+
├── visualization.py # 3D visualization utilities
124+
└── README.md
125+
```
126+
127+
All directories related to raw data, predictions, and model checkpoints are **intentionally excluded** from this repository to comply with data confidentiality and intellectual property constraints associated with Oak Ridge National Laboratory (ORNL).
128+
129+
---
130+
105131
## Method Overview
106132

107133
### Problem Setting
@@ -114,10 +140,10 @@ Given a 3D LiDAR point cloud acquired in a controlled phenotyping environment, t
114140
- **Background**
115141

116142
The task is challenging due to:
117-
- Severe class imbalance
118-
- Structural similarity between stems and stakes
119-
- Occlusion and sparse sampling
120-
- Absence of RGB or spectral information
143+
- Severe class imbalance.
144+
- Structural similarity between stems and stakes.
145+
- Occlusion and sparse sampling.
146+
- Absence of RGB or spectral information.
121147

122148
---
123149

@@ -128,16 +154,14 @@ High-quality ground truth is critical for supervised semantic segmentation of 3D
128154
The protocol defines a rule-based workflow for point-wise segmentation and labeling of LiDAR point clouds into four semantic classes: **stem**, **leaf**, **stake**, and **background**. It enforces strict completeness, naming conventions, boundary rules, and class assignment guidelines, ensuring that every point in the original scan is assigned a biologically meaningful label.
129155

130156
This annotation strategy was essential for:
131-
- Producing reliable supervision signals for deep learning
132-
- Reducing label noise in geometrically ambiguous regions
133-
- Enabling consistent evaluation across samples
134-
- Supporting reproducibility and future dataset extensions
157+
- Producing reliable supervision signals for deep learning.
158+
- Reducing label noise in geometrically ambiguous regions.
159+
- Enabling consistent evaluation across samples.
160+
- Supporting reproducibility and future dataset extensions.
135161

136162
A total of 30 fully annotated 3D LiDAR point clouds were generated and used for supervised training and evaluation.
137163

138-
The full annotation procedure, including setup instructions, segmentation steps, labeling rules, and export formats, is documented in detail here:
139-
140-
[`docs/3D_Plant_Segmentation_Protocol.pdf`](docs/3D_Plant_Segmentation_Protocol.pdf)
164+
The full annotation procedure, including setup instructions, segmentation steps, labeling rules, and export formats, is documented in detail here: [Manual Annotation Protocol](assets/docs/3D_Plant_Segmentation_Protocol.pdf)
141165

142166
---
143167

@@ -158,9 +182,9 @@ These features encode local shape properties critical for organ discrimination.
158182

159183
The core model is a **Dynamic Edge Convolutional Neural Network (DECNN)** that:
160184

161-
- Dynamically constructs neighborhood graphs per layer
162-
- Learns edge features capturing local geometry
163-
- Operates directly on unstructured point clouds
185+
- Dynamically constructs neighborhood graphs per layer.
186+
- Learns edge features capturing local geometry.
187+
- Operates directly on unstructured point clouds.
164188

165189
To address extreme class imbalance, training uses a composite loss combining:
166190

@@ -173,10 +197,10 @@ To address extreme class imbalance, training uses a composite loss combining:
173197

174198
Model performance is evaluated using:
175199

176-
- Intersection over Union (IoU)
177-
- Precision and Recall (per class)
178-
- Sample-averaged metrics
179-
- Bootstrapped confidence intervals
200+
- Intersection over Union (IoU).
201+
- Precision and Recall (per class).
202+
- Sample-averaged metrics.
203+
- Bootstrapped confidence intervals.
180204

181205
Qualitative evaluation is performed via 3D visualization of predicted segmentations.
182206

@@ -186,51 +210,18 @@ Qualitative evaluation is performed via 3D visualization of predicted segmentati
186210

187211
Under the described experimental setup:
188212

189-
- Strong performance is observed on the dominant **Leaf** class
190-
- High recall is achieved for the biologically critical **Stem** class
191-
- Qualitative results show coherent reconstruction of plant structure
213+
- Strong performance is observed on the dominant **Leaf** class.
214+
- High recall is achieved for the biologically critical **Stem** class.
215+
- Qualitative results show coherent reconstruction of plant structure.
192216

193217
Limitations include stem–stake ambiguity and boundary artifacts due to resolution constraints.
194218

195-
For a comprehensive discussion of experimental results, quantitative metrics, and additional analyses, please refer to the full exit report available here:
196-
197-
[`docs/ORNL_DECNN_Exit_Report.pdf`](docs/ORNL_DECNN_Exit_Report.pdf)
198-
199-
---
200-
201-
## Code Structure
202-
203-
The repository is organized as a modular research pipeline:
204-
205-
```text
206-
├── data/ # Directory structure only (no data included)
207-
│ ├── train/
208-
│ ├── val/
209-
│ └── test/
210-
211-
├── src/
212-
│ ├── dataset.py # ETL and geometric feature computation
213-
│ ├── model.py # Dynamic Edge CNN architecture
214-
│ └── inference.py # Inference and post-processing
215-
216-
├── validations/ # Data integrity and sanity checks
217-
│ ├── check_data.py
218-
│ ├── check_labels.py
219-
│ └── count_nans.py
220-
221-
├── train.py # Training loop
222-
├── evaluation.py # Metric computation and bootstrapping
223-
├── visualization.py # 3D visualization utilities
224-
└── README.md
225-
```
226-
227-
All directories related to raw data, predictions, and model checkpoints are **intentionally excluded** from this repository to comply with data confidentiality and intellectual property constraints associated with Oak Ridge National Laboratory (ORNL).
219+
For a comprehensive discussion of experimental results, quantitative metrics, and additional analyses, please refer to the full exit report available here: [Exit Report](assests/docs/ORNL_DECNN_Exit_Report.pdf)
228220

229221
---
230222

231223

232-
233-
### Future Research Directions
224+
## Future Research Directions
234225

235226
Potential extensions of this work include:
236227

@@ -241,7 +232,7 @@ Potential extensions of this work include:
241232

242233
---
243234

244-
### Citation
235+
## Citation
245236

246237
If you find this work useful in your research, please consider citing:
247238

@@ -253,7 +244,7 @@ If you find this work useful in your research, please consider citing:
253244
}
254245
```
255246
---
256-
### External Research Collaborators
247+
## External Research Collaborators
257248
**Oak Ridge National Laboratory (ORNL) | Biosciences Division**
258249

259250
**Dr. John Lagergren**
@@ -287,13 +278,13 @@ joynerm@etsu.edu
287278

288279
---
289280

290-
### Acknowledgments
281+
## Acknowledgments
291282

292283
This research used resources of the Advanced Plant Phenotyping Laboratory and the Center for Bioenergy Innovation (CBI), which is a U.S. Department of Energy Bioenergy Research Center supported by the Office of Biological and Environmental Research in the DOE Office of Science. Oak Ridge National Laboratory is managed by UT-Battelle, LLC for the U.S. Department of Energy under Contract Number DE-AC05-00OR22725.
293284

294285
We sincerely thank **Dr. John Lagergren**, **Dr. Larry M. York**, and **Anand Seethepalli** (Oak Ridge National Laboratory, Biosciences Division) for providing access to experimental data, domain expertise, and valuable feedback throughout the project. We also thank **Dr. Jeff R. Knisley**, **Dr. Robert M. Price**, and **Dr. Michele Joyner** (Department of Mathematics & Statistics, East Tennessee State University) for their academic guidance and mentorship, and for making this collaboration possible by enabling meaningful real-world research and development experience in data science.
295286

296287
---
297-
### Disclaimer
288+
## Disclaimer
298289

299290
The views and conclusions expressed in this repository are those of the authors and do not necessarily represent the views of Oak Ridge National Laboratory or the U.S. Department of Energy. The code is provided for **academic and research purposes only**.

0 commit comments

Comments
 (0)