feat(lidar): qualify Patchwork++ on GOOSE
This commit is contained in:
@@ -138,9 +138,11 @@ export function DatasetGatewayWorkspace() {
|
||||
masks: {
|
||||
currentGround: comparisonAligned?.currentGround ?? emptyMask,
|
||||
currentAssigned: comparisonAligned?.evaluated ?? emptyMask,
|
||||
candidateGround: comparisonAligned?.groundTruthGround ?? emptyMask,
|
||||
candidateAssigned: comparisonAligned?.evaluated ?? emptyMask,
|
||||
disagreement: comparisonAligned?.disagreement ?? emptyMask,
|
||||
candidateGround: comparisonAligned?.patchworkGround ?? emptyMask,
|
||||
candidateAssigned: comparisonAligned?.patchworkAssigned ?? emptyMask,
|
||||
disagreement: comparisonAligned?.currentDisagreement ?? emptyMask,
|
||||
candidateDisagreement:
|
||||
comparisonAligned?.patchworkDisagreement ?? emptyMask,
|
||||
groundTruthGround: preview.groundTruthGround,
|
||||
},
|
||||
};
|
||||
@@ -301,7 +303,9 @@ export function DatasetGatewayWorkspace() {
|
||||
...(comparison
|
||||
? ([
|
||||
["current", "Current"],
|
||||
["disagreement", "Ошибки"],
|
||||
["candidate", "Patchwork++"],
|
||||
["disagreement", "Ошибки Current"],
|
||||
["candidate-disagreement", "Ошибки PW++"],
|
||||
] as const)
|
||||
: []),
|
||||
["intensity", "Remission"],
|
||||
@@ -320,20 +324,42 @@ export function DatasetGatewayWorkspace() {
|
||||
{comparison ? (
|
||||
<dl className="dataset-preview__metrics">
|
||||
<div>
|
||||
<dt>Ground IoU</dt>
|
||||
<dd>{(comparison.metrics.groundIou * 100).toFixed(1)}%</dd>
|
||||
<dt>Current · IoU</dt>
|
||||
<dd>{(comparison.metrics.current.groundIou * 100).toFixed(1)}%</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Precision</dt>
|
||||
<dd>{(comparison.metrics.precision * 100).toFixed(1)}%</dd>
|
||||
<dt>Current · Recall</dt>
|
||||
<dd>{(comparison.metrics.current.recall * 100).toFixed(1)}%</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Recall</dt>
|
||||
<dd>{(comparison.metrics.recall * 100).toFixed(1)}%</dd>
|
||||
<dt>Current · Natural</dt>
|
||||
<dd>
|
||||
{(comparison.metrics.current.naturalGroundRecall * 100).toFixed(1)}%
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Latency</dt>
|
||||
<dd>{comparison.latencyMs.toFixed(0)} ms</dd>
|
||||
<dt>Current · Latency</dt>
|
||||
<dd>{comparison.latencyMs.current.toFixed(0)} ms</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Patchwork++ · IoU</dt>
|
||||
<dd>
|
||||
{(comparison.metrics.patchworkpp.groundIou * 100).toFixed(1)}%
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Patchwork++ · Recall</dt>
|
||||
<dd>{(comparison.metrics.patchworkpp.recall * 100).toFixed(1)}%</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Patchwork++ · Natural</dt>
|
||||
<dd>
|
||||
{(comparison.metrics.patchworkpp.naturalGroundRecall * 100).toFixed(1)}%
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Patchwork++ · Latency</dt>
|
||||
<dd>{comparison.latencyMs.patchworkpp.toFixed(1)} ms</dd>
|
||||
</div>
|
||||
</dl>
|
||||
) : comparisonError ? (
|
||||
@@ -362,9 +388,19 @@ export function DatasetGatewayWorkspace() {
|
||||
<span><i className="dataset-legend-ground" />current ground</span>
|
||||
<span><i className="dataset-legend-other" />current non-ground</span>
|
||||
</>
|
||||
) : previewMode === "candidate" ? (
|
||||
<>
|
||||
<span><i className="dataset-legend-ground" />Patchwork++ ground</span>
|
||||
<span><i className="dataset-legend-other" />Patchwork++ non-ground</span>
|
||||
</>
|
||||
) : previewMode === "disagreement" ? (
|
||||
<>
|
||||
<span><i className="dataset-legend-error" />ошибка относительно labels</span>
|
||||
<span><i className="dataset-legend-error" />ошибка Current</span>
|
||||
<span><i className="dataset-legend-other" />совпадение с labels</span>
|
||||
</>
|
||||
) : previewMode === "candidate-disagreement" ? (
|
||||
<>
|
||||
<span><i className="dataset-legend-error" />ошибка Patchwork++</span>
|
||||
<span><i className="dataset-legend-other" />совпадение</span>
|
||||
</>
|
||||
) : (
|
||||
@@ -380,6 +416,14 @@ export function DatasetGatewayWorkspace() {
|
||||
<p>{previewError ?? "Проверяем point alignment и разметку."}</p>
|
||||
</div>
|
||||
)}
|
||||
{comparison ? (
|
||||
<p className="dataset-preview__comparison-note">
|
||||
Patchwork++ использует опубликованную высоту VLS-128{" "}
|
||||
{comparison.inputProfile.sensorHeightM.toFixed(2)} м; это
|
||||
algorithm-specific admission, а не полный vehicle TF и не
|
||||
normalized scan.
|
||||
</p>
|
||||
) : null}
|
||||
</section>
|
||||
) : null}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ export type LidarGroundViewMode =
|
||||
| "current"
|
||||
| "candidate"
|
||||
| "disagreement"
|
||||
| "candidate-disagreement"
|
||||
| "semantic"
|
||||
| "ground-truth";
|
||||
|
||||
@@ -21,6 +22,7 @@ export interface LidarGroundPointCloudFrame {
|
||||
candidateGround: number[];
|
||||
candidateAssigned: number[];
|
||||
disagreement: number[];
|
||||
candidateDisagreement?: number[];
|
||||
groundTruthGround?: number[];
|
||||
};
|
||||
}
|
||||
@@ -119,6 +121,15 @@ function frameColors(
|
||||
disagreement ? 0.31 : 0.29,
|
||||
disagreement ? 0.22 : 0.35,
|
||||
);
|
||||
} else if (mode === "candidate-disagreement") {
|
||||
const disagreement = frame.masks.candidateDisagreement?.[index] === 1;
|
||||
setRgb(
|
||||
colors,
|
||||
offset,
|
||||
disagreement ? 1 : 0.24,
|
||||
disagreement ? 0.31 : 0.29,
|
||||
disagreement ? 0.22 : 0.35,
|
||||
);
|
||||
} else {
|
||||
setRgb(colors, offset, candidate ? 0.24 : 0.29, candidate ? 0.84 : 0.36, 0.43);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user