# 视频会议玩消失？借助神器TensorFlow.js，200行代码教你“隐身”，GitHub标星3k+

https://github.com/jasonmayes/Real-Time-Person-Removal

```// Go through pixels and figure out bounding box of body pixels.

for (let x = 0; x < canvas.width; x++) {
for (let y = 0; y < canvas.height; y++) {
let n = y * canvas.width + x;
// Human pixel found. Update bounds.
if (segmentation.data[n] !== 0) {
if(x < minX) {
minX = x;
}

if(y < minY) {
minY = y;

}

if(x > maxX) {
maxX = x;
}

if(y > maxY) {
maxY = y;
}
foundBody = true;

}
}
}

// Calculate dimensions of bounding box.

var width = maxX - minX;
var height = maxY - minY;```

```// Define scale factor to use to allow for false negatives around this region.

var scale = 1.3;

// Define scaled dimensions.

var newWidth = width * scale;
var newHeight = height * scale;

// Caculate the offset to place new bounding box so scaled from center of current bounding box.

var offsetX = (newWidth - width) / 2;
var offsetY = (newHeight - height) / 2;

var newXMin = minX - offsetX;
var newYMin = minY - offsetY;```

```/ Now loop through update backgound understanding with new data

// if not inside a bounding box.

for (let x = 0; x < canvas.width; x++) {
for (let y = 0; y < canvas.height; y++) {
// If outside bounding box and we found a body, update background.
if (foundBody && (x < newXMin || x > newXMin + newWidth) || ( y < newYMin || y > newYMin + newHeight)) {
// Convert xy co-ords to array offset.
let n = y * canvas.width + x;

data[n * 4] = dataL[n * 4];
data[n * 4 + 1] = dataL[n * 4 + 1];
data[n * 4 + 2] = dataL[n * 4 + 2];
data[n * 4 + 3] = 255;

} else if (!foundBody) {
// No body found at all, update all pixels.
let n = y * canvas.width + x;
data[n * 4] = dataL[n * 4];
data[n * 4 + 1] = dataL[n * 4 + 1];
data[n * 4 + 2] = dataL[n * 4 + 2];
data[n * 4 + 3] = 255;
}
}
}

ctx.putImageData(imageData, 0, 0);```

https://codepen.io/jasonmayes/

TensorFlow.js能做的远不止让你“消失”

TensorFlow.js是一个使用JavaScript进行机器学习开发的库，允许使用JavaScript进行机器学习模型的开发，并可以直接在浏览器或Node.js中使用机器学习模型。

```const net = await bodyPix.load({
architecture: 'MobileNetV1',
outputStride: 16,
multiplier: 0.75,
quantBytes: 2
});```

“宅”家发呆，不如学嗨

0 条评论

• ### 斯坦福最新研究：看图“猜车祸”，用谷歌街景数据建立车祸预测新模型

与其他商品不同的是，车祸保单的最终成本在初始销售时是未知的。因此，建立一个合理的定价机制是非常具有挑战的。有些保险公司尝试使用统计方法来解决这一问题：预测每个客...

• ### 将文本转语音速度提高38倍，这个FastSpeech真的很fast

作者：Yi Ren、Yangjun Ruan、Xu Tan、Tao Qin、Sheng Zhao、Zhou Zhao、Tie-Yan Liu

• ### 想和时间做朋友？这 5 个小程序你一定会喜欢！

那是一个雨天的下午，一名 15 岁的洛杉矶少年，在一张黄色便条上写下了 My Life List（生命清单），列出了他人生的 127 个目标。

• ### MySql - InnoDB - 事务 , Php版

（出处：https://cloud.tencent.com/developer/user/1148436/activities） 1，前序 由于要重构APP(...

• ### Python实现Telnet自动连接检测密码

最近在学习Python网络相关编程，这个代码实现了Telnet自动连接检测root用户密码，密码取自密码本，一个一个检测密码是否匹配，直到匹配成功，屏幕输出停止...

• ### WPF 跨线程 UI 的方法

本文告诉大家如何在 WPF 使用多线程的 UI 的方法 在很多的时候都是使用单线程的 UI 但是有时候需要做到一个线程完全处理一个耗时的界面就需要将这个线程作为...

• ### 谷歌用AI诊断早期肺癌超越人类医生，登上Nature子刊

据国家癌症中心统计，我国每年新发肺癌约78.7万人，因肺癌死亡约63.1万人，如果这些患者都能早发现、早治疗，那么他们的寿命将会大大延长。

• ### 安装Anaconda

Anaconda的英文解释是产于南美洲的水蟒，这个Python的大蟒蛇是一个物种不同品种。