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
|
* przepinana w locie. Tryb `disabled` przepuszcza obraz bez zmian i nie
|
||||||
* przerywa publikacji.
|
* 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 }) {
|
export function BackgroundBlurToggle({ className = '' }: { className?: string }) {
|
||||||
const { cameraTrack } = useLocalParticipant()
|
const { cameraTrack } = useLocalParticipant()
|
||||||
const [enabled, setEnabled] = useState(false)
|
const [enabled, setEnabled] = useState(false)
|
||||||
@@ -79,7 +98,7 @@ export function BackgroundBlurToggle({ className = '' }: { className?: string })
|
|||||||
|
|
||||||
const processor = BackgroundProcessor({
|
const processor = BackgroundProcessor({
|
||||||
mode: 'background-blur',
|
mode: 'background-blur',
|
||||||
blurRadius: 10,
|
blurRadius: BLUR_RADIUS,
|
||||||
assetPaths: {
|
assetPaths: {
|
||||||
tasksVisionFileSet: '/mediapipe/wasm',
|
tasksVisionFileSet: '/mediapipe/wasm',
|
||||||
modelAssetPath: '/mediapipe/selfie_segmenter.tflite',
|
modelAssetPath: '/mediapipe/selfie_segmenter.tflite',
|
||||||
|
|||||||
Reference in New Issue
Block a user