diff --git a/react/features/stream-effects/virtual-background/JitsiStreamBackgroundEffect.js b/react/features/stream-effects/virtual-background/JitsiStreamBackgroundEffect.js index 64f14650a..bbced2be3 100644 --- a/react/features/stream-effects/virtual-background/JitsiStreamBackgroundEffect.js +++ b/react/features/stream-effects/virtual-background/JitsiStreamBackgroundEffect.js @@ -166,14 +166,10 @@ export default class JitsiStreamBackgroundEffect { const outputMemoryOffset = this._model._getOutputMemoryOffset() / 4; for (let i = 0; i < this._segmentationPixelCount; i++) { - const background = this._model.HEAPF32[outputMemoryOffset + (i * 2)]; - const person = this._model.HEAPF32[outputMemoryOffset + (i * 2) + 1]; - const shift = Math.max(background, person); - const backgroundExp = Math.exp(background - shift); - const personExp = Math.exp(person - shift); - + const person = this._model.HEAPF32[outputMemoryOffset + i]; + // Sets only the alpha component of each pixel. - this._segmentationMask.data[(i * 4) + 3] = (255 * personExp) / (backgroundExp + personExp); + this._segmentationMask.data[(i * 4) + 3] = (255 * person); } this._segmentationMaskCtx.putImageData(this._segmentationMask, 0, 0); } diff --git a/react/features/stream-effects/virtual-background/index.js b/react/features/stream-effects/virtual-background/index.js index fe754dfcb..98429d12f 100644 --- a/react/features/stream-effects/virtual-background/index.js +++ b/react/features/stream-effects/virtual-background/index.js @@ -8,8 +8,8 @@ import JitsiStreamBackgroundEffect from './JitsiStreamBackgroundEffect'; import createTFLiteModule from './vendor/tflite/tflite'; import createTFLiteSIMDModule from './vendor/tflite/tflite-simd'; const models = { - model96: 'libs/segm_lite_v681.tflite', - model144: 'libs/segm_full_v679.tflite' + model_landscape: 'libs/selfie_segmentation_landscape.tflite' + }; let tflite; @@ -17,11 +17,7 @@ let wasmCheck; let isWasmDisabled = false; const segmentationDimensions = { - model96: { - height: 96, - width: 160 - }, - model144: { + model_landscape: { height: 144, width: 256 } @@ -76,7 +72,7 @@ export async function createVirtualBackgroundEffect(virtualBackground: Object, d } const modelBufferOffset = tflite._getModelBufferMemoryOffset(); - const modelResponse = await fetch(wasmCheck.feature.simd ? models.model144 : models.model96); + const modelResponse = await fetch(models.model_landscape); if (!modelResponse.ok) { throw new Error('Failed to download tflite model!'); @@ -89,9 +85,12 @@ export async function createVirtualBackgroundEffect(virtualBackground: Object, d tflite._loadModel(model.byteLength); const options = { - ...wasmCheck.feature.simd ? segmentationDimensions.model144 : segmentationDimensions.model96, + ...segmentationDimensions.model_landscape, virtualBackground - }; + }; + + + return new JitsiStreamBackgroundEffect(tflite, options); } diff --git a/react/features/stream-effects/virtual-background/vendor/models/segm_full_v679.tflite b/react/features/stream-effects/virtual-background/vendor/models/segm_full_v679.tflite deleted file mode 100644 index 1f56ae7cd..000000000 Binary files a/react/features/stream-effects/virtual-background/vendor/models/segm_full_v679.tflite and /dev/null differ diff --git a/react/features/stream-effects/virtual-background/vendor/models/segm_lite_v681.tflite b/react/features/stream-effects/virtual-background/vendor/models/segm_lite_v681.tflite deleted file mode 100644 index 593b591b6..000000000 Binary files a/react/features/stream-effects/virtual-background/vendor/models/segm_lite_v681.tflite and /dev/null differ diff --git a/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation.tflite b/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation.tflite new file mode 100755 index 000000000..374c0720d Binary files /dev/null and b/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation.tflite differ diff --git a/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation_landscape.tflite b/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation_landscape.tflite new file mode 100755 index 000000000..4ea3f8a10 Binary files /dev/null and b/react/features/stream-effects/virtual-background/vendor/models/selfie_segmentation_landscape.tflite differ