From 2cff98676083cd24a775635229c93bd860464b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Zatorski?= Date: Fri, 4 Sep 2026 14:36:09 +0200 Subject: [PATCH] Mocniejsze rozmycie tla Domyslne `blurRadius: 10` z biblioteki jest za slabe do tego zastosowania. Sprawdzone na zywo przy prowadzeniu z domu: przez rozmycie widac uklad pokoju, zdjecia na polkach i przechodzace osoby, czyli dokladnie to, co ma zaslaniac. 25 daje tlo nierozpoznawalne. Obrys postaci zostaje przy tym czysty, bo maska pochodzi z modelu segmentacji i nie zalezy od sily rozmycia: podnoszenie jej nie psuje krawedzi. Kosztuje nieco mocy procesora, bo rozmycie liczy sie dla kazdej klatki. Model zostaje ten sam. `selfie_segmenter.tflite` to wariant "general" 256x256, czyli DOKLADNIEJSZY z dwoch dostepnych; szybszego wariantu "landscape" uzywa Google Meet. Przy nieruchomym prelegencie roznica w plynnosci jest niezauwazalna, a jakosc obrysu ma tu wieksze znaczenie. Wartosc w stalej z wyjasnieniem, zeby nastepna zmiana nie byla zgadywaniem. Co-Authored-By: Claude Opus 5 --- .../src/pages/public/BackgroundBlurToggle.tsx | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/public/BackgroundBlurToggle.tsx b/frontend/src/pages/public/BackgroundBlurToggle.tsx index 900a76e..a721291 100644 --- a/frontend/src/pages/public/BackgroundBlurToggle.tsx +++ b/frontend/src/pages/public/BackgroundBlurToggle.tsx @@ -32,6 +32,25 @@ import { Icon } from '../../components/Icon' * przepinana w locie. Tryb `disabled` przepuszcza obraz bez zmian i nie * przerywa publikacji. */ +/** + * Sila rozmycia tla. + * + * Domyslne 10 z biblioteki jest ZA SLABE do tego zastosowania: przy prowadzeniu + * z domu widac przez nie uklad pokoju, zdjecia na polkach i osoby przechodzace + * w tle, czyli dokladnie to, co rozmycie ma zaslonic. Sprawdzone na zywo. + * + * 25 daje tlo nierozpoznawalne, a obrys postaci zostaje czysty: maska pochodzi + * z modelu segmentacji i nie zalezy od tej wartosci, wiec podnoszenie sily nie + * psuje krawedzi. Kosztuje za to nieco mocy procesora, bo rozmycie liczy sie + * dla kazdej klatki. + * + * Model `selfie_segmenter` to wariant "general" (256x256), czyli dokladniejszy + * z dwoch dostepnych. Wariant "landscape" jest szybszy i tego uzywa Google Meet, + * ale przy nieruchomym prelegencie roznica w plynnosci jest niezauwazalna, + * a jakosc obrysu ma tu wieksze znaczenie. + */ +const BLUR_RADIUS = 25 + export function BackgroundBlurToggle({ className = '' }: { className?: string }) { const { cameraTrack } = useLocalParticipant() const [enabled, setEnabled] = useState(false) @@ -79,7 +98,7 @@ export function BackgroundBlurToggle({ className = '' }: { className?: string }) const processor = BackgroundProcessor({ mode: 'background-blur', - blurRadius: 10, + blurRadius: BLUR_RADIUS, assetPaths: { tasksVisionFileSet: '/mediapipe/wasm', modelAssetPath: '/mediapipe/selfie_segmenter.tflite',