mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-09-30 22:32:30 +08:00

* 第一次提交 * 补充一处漏翻译 * deleted: docs/en/quantize.md * Update one translation * Update en version * Update one translation in code * Standardize one writing * Standardize one writing * Update some en version * Fix a grammer problem * Update en version for api/vision result * Merge branch 'develop' of https://github.com/charl-u/FastDeploy into develop * Checkout the link in README in vision_results/ to the en documents * Modify a title * Add link to serving/docs/ * Finish translation of demo.md * Update english version of serving/docs/ * Update title of readme * Update some links * Modify a title * Update some links * Update en version of java android README * Modify some titles * Modify some titles * Modify some titles * modify article to document * update some english version of documents in examples * Add english version of documents in examples/visions * Sync to current branch * Add english version of documents in examples
humanseg
A real-time human-segmentation model. You can use it to change background. The output of the model is gray value. Model supplies simple api for users.
Api drawHumanSeg can draw human segmentation with a specified background. Api blurBackground can draw human segmentation with a blurred origin background. Api drawMask can draw the background without human.
Usage
import * as humanseg from '@paddle-js-models/humanseg';
// load humanseg model, use 398x224 shape model, and preheat
await humanseg.load();
// use 288x160 shape model, preheat and predict faster with a little loss of precision
// await humanseg.load(true, true);
// get the gray value [2, 398, 224] or [2, 288, 160];
const { data } = await humanseg.getGrayValue(img);
// background canvas
const back_canvas = document.getElementById('background') as HTMLCanvasElement;
// draw human segmentation
const canvas1 = document.getElementById('back') as HTMLCanvasElement;
humanseg.drawHumanSeg(data, canvas1, back_canvas) ;
// blur background
const canvas2 = document.getElementById('blur') as HTMLCanvasElement;
humanseg.blurBackground(data, canvas2) ;
// draw the mask with background
const canvas3 = document.getElementById('mask') as HTMLCanvasElement;
humanseg.drawMask(data, canvas3, back_canvas);
gpu pipeline
// import humanseg sdk
import * as humanseg from '@paddle-js-models/humanseg/lib/index_gpu';
// load humanseg model, use 398x224 shape model, and preheat
await humanseg.load();
// use 288x160 shape model, preheat and predict faster with a little loss of precision
// await humanseg.load(true, true);
// background canvas
const back_canvas = document.getElementById('background') as HTMLCanvasElement;
// draw human segmentation
const canvas1 = document.getElementById('back') as HTMLCanvasElement;
await humanseg.drawHumanSeg(input, canvas1, back_canvas) ;
// blur background
const canvas2 = document.getElementById('blur') as HTMLCanvasElement;
await humanseg.blurBackground(input, canvas2) ;
// draw the mask with background
const canvas3 = document.getElementById('mask') as HTMLCanvasElement;
await humanseg.drawMask(input, canvas3, back_canvas);
Online experience
image human segmentation:https://paddlejs.baidu.com/humanseg
video-streaming human segmentation:https://paddlejs.baidu.com/humanStream
Performance

