You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-12Lines changed: 19 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,23 +35,29 @@ Goal: Confirm or refute groups of candidate building points when possible, mark
35
35
36
36
1) Clustering of _candidate buildings points_ into connected components.
37
37
2) Point-level decision
38
-
1) Decision at the point-level based on probabilities : `confirmed` if p>=`C1` / `refuted` if (1-p)>=`R1`
39
-
2) Identification of points that are `overlayed` by a building vector from the database.
38
+
1) Identification of points with ambiguous probability: `high entropy` if entropy $\geq$ E1
39
+
2) Identification of points that are `overlayed` by a building vector from the database.
40
+
3) Decision at the point-level based on probabilities :
41
+
1)`confirmed` if:
42
+
1) p$\geq$`C1`, or
43
+
2)`overlayed` and p$\geq$ (`C1` * `Cr`), where `Cr` is a relaxation factor that reduces the confidence we require to confirm when a point overlayed by a building vector.
44
+
2)`refuted` if (1-p)$\geq$`R1`
40
45
3) Group-level decision :
41
-
1) Confirmation: if proportion of `confirmed` points >= `C2` OR if proportion of `overlayed` points >= `O1`
42
-
2) Refutation: if proportion of `refuted` points >= `R2` AND proportion of `overlayed` points < `O1`
43
-
3) Uncertainty: elsewise.
46
+
1) Uncertain due to high entropy: if proportion of `high entropy` points $\geq$ `E2`
47
+
2) Confirmation: if proportion of `confirmed` points $\geq$ `C2` OR if proportion of `overlayed` points $\geq$ `O1`
48
+
3) Refutation: if proportion of `refuted` points $\geq$ `R2` AND proportion of `overlayed` points < `O1`
49
+
4) Uncertainty: elsewise (this is a safeguard: uncertain groups are supposed to be already captured via their entropy)
44
50
4) Update of the point cloud classification
45
51
46
-
Decision thresholds `C1`, `C2`, `R1`, `R2`, `O1` are chosen via a multi-objective hyperparameter optimization that aims to maximize automation, precision, and recall of the decisions. Right now we have automation=90%, precision=98%, recall=98% on a validation dataset. Illustration comes from older version.
52
+
Decision thresholds `E1`, `E2` , `C1`, `C2`, `R1`, `R2`, `O1` are chosen via a multi-objective hyperparameter optimization that aims to maximize automation, precision, and recall of the decisions. Right now we have automation=91%, precision=98.5%, recall=98.1% on a validation dataset. Illustration comes from older version.
Goal: Confirm points that were too isolated to make up a group but have high-enough probability nevertheless (e.g. walls)
53
59
54
-
Identify_candidate buildings points_ that have not been clustered in previous step due AND have high enough probability (p>=0.5)).
60
+
Among_candidate buildings points_ that have not been clustered in previous step due, identify those which nevertheless meet the requirement to be `confirmed`.
55
61
Cluster them together with previously confirmed building points in a relaxed, vertical fashion (higher tolerance, XY plan).
56
62
For each cluster, if some points were confirmed, the others are considered to belong to the same building, and are
57
63
therefore confirmed as well.
@@ -63,7 +69,9 @@ therefore confirmed as well.
63
69
64
70
Goal: Highlight potential buildings that were missed by the rule-based algorithm, for human inspection.
65
71
66
-
Clustering of points that have a probability of beind a building p>=`C1` AND are **not**_candidate buildings points_. This clustering defines a LAS extra dimensions (default name `Group`).
72
+
Among points that were **not**_candidate buildings points_ identify those which meet the requirement to be `confirmed`, and cluster them.
73
+
74
+
This clustering defines a LAS extra dimensions (`Group`) which indexes newly found cluster that may be some missed buildings.
New features are staged in the `dev` branch, and CICD workflow is run when a pull requets to merge is created.
159
167
In Actions, check the output of a full evaluation on a single LAS to spot potential regression. The app is also run
160
168
on a subset of a LAS, which can be visually inspected before merging - there can always be surprises.
161
169
162
170
Package version follows semantic versionning conventions and is defined in `setup.py`.
163
171
164
-
Releases are generated when new high-level functionnality are implemented (e.g. a new step in the production process) or
165
-
when key parameters are changed. Generally speaking, the latest release `Vx.y.z` is the one to use in production.
172
+
Releases are generated when new high-level functionnality are implemented (e.g. a new step in the production process), with a documentation role. Production-ready code is fast-forwarded in the `prod` branch when needed.
0 commit comments