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
32 changes: 30 additions & 2 deletions client/platform/desktop/frontend/components/ViewerLoader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import context from 'dive-common/store/context';
import { usePrompt } from 'dive-common/vue-utilities/prompt-service';
import { SegmentationPredictRequest } from 'dive-common/apispec';
import { clientSettings } from 'dive-common/store/settings';
import { resolveConfidenceThreshold } from 'dive-common/typeHierarchy';
import { isStereoscopicDatasetConfig } from 'dive-common/multicamDisplay';
import type {
StereoAnnotationCompleteParams,
Expand All @@ -35,7 +36,7 @@ import {
segmentationPredict, segmentationStereoSegment, segmentationInitialize, segmentationIsReady,
segmentationEnsureStarted,
segmentationSam3Installed,
loadConfig, textQuery,
loadConfig, saveConfig, textQuery,
runTextQueryPipeline,
stereoEnable, stereoDisable, stereoSetFrame, stereoTransferLine, stereoTransferPoints,
stereoMeasureLine, stereoAggregateLengths,
Expand Down Expand Up @@ -577,9 +578,36 @@ export default defineComponent({
}, geoJsonFeatures.length > 0 ? geoJsonFeatures : undefined);
});

// Lower each returned type's threshold to its weakest result so every
// track the query just created is visible.
let lowered = false;
const trackFilters = viewerRef.value?.trackFilters;
if (trackFilters) {
const filters = { ...trackFilters.confidenceFilters.value };
detections.forEach((det) => {
if (typeof det.score === 'number'
&& det.score < resolveConfidenceThreshold(filters, det.label)) {
filters[det.label] = det.score;
lowered = true;
}
});
if (lowered) {
trackFilters.setConfidenceFilters(filters);
saveConfig(props.id, { confidenceFilters: filters });
}
}

const resultText = [
`Created ${detections.length} tracks for objects matching "${text}".`,
];
if (lowered) {
resultText.push(
'Confidence thresholds for the matching types were lowered so these results are visible.',
);
}
await prompt({
title: 'Text Query Results',
text: [`Created ${detections.length} tracks for objects matching "${text}".`],
text: resultText,
});
}
} catch (error) {
Expand Down
2 changes: 2 additions & 0 deletions server/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ envlist =
type
testunit
isolated_build = True
# uv run cannot use the .venv redirect file tox 4.64+ writes.
venv_redirect = false
requires =
tox-uv>=1.0.0

Expand Down
Loading