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 <noreply@anthropic.com>
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user