We use essential cookies for the website to function, as well as analytics cookies for analyzing and creating statistics of the website performance. To agree to the use of analytics cookies, click "Accept All". You can manage your preferences at any time by clicking "Cookie Settings" on the footer. More Information.
We use essential cookies for the website to function, as well as analytics cookies for analyzing and creating statistics of the website performance. To agree to the use of analytics cookies, click "Accept All". You can manage your preferences at any time by clicking "Cookie Settings" on the footer. More Information.
We use essential cookies for the website to function, as well as analytics cookies for analyzing and creating statistics of the website performance. To agree to the use of analytics cookies, click "Accept All". You can manage your preferences at any time by clicking "Cookie Settings" on the footer. More Information.
We use essential cookies for the website to function, as well as analytics cookies for analyzing and creating statistics of the website performance. To agree to the use of analytics cookies, click "Accept All". You can manage your preferences at any time by clicking "Cookie Settings" on the footer. More Information.
This API supports real-time processing of real-time video streams (e.g. mobile camera). A developer transmits each frame in the real-time video streams to the HiAI Engine. The algorithm segments the portraits in the video frames, and returns the mask results of the byte array to the user.
Scenarios
Video rendering, background replacement
This API can be used to segment portrait of each frame in the videos and can be applicable to scenarios based on the understanding of video content, such as video foreground rendering and background replacement.
Video foreground rendering
Renders the video foreground (people) through video portrait segmentation, such as blurring and beautification.
Background replacement
Processes video stream can be processed in real time, with video background replaced or removed, etc.
Description
Request
Copy
ImageSegmentation imageSegmentation = new ImageSegmentation(getApplicationContext()); SegConfiguration config = new SegConfiguration.Builder() .setProcessMode(VisionConfiguration.MODE_IN) .setSegmentationType(SegConfiguration.TYPE_PORTRAIT_SEGMENTATION_VIDEO) .build(); imageSegmentation.setConfiguration(config); VisionImageMetadata.Builder builder = new VisionImageMetadata.Builder(); builder.setFormat(17); //nv21 format int originalHeight = 200; //image height int originalWidth = 200; //image width builder.setHeight(originalHeight); builder.setWidth(originalWidth); builder.setRotation(270); //front camera VisionImageMetadata metadata = builder.build(); byte[] yuvBytes = new byte[originalWidth * originalHeight * 3 / 2]; VisionImage image = VisionImage.fromByteArray(yuvBytes, metadata); int resultCode = imageSegmentation.doSegmentation(image, mImageResult, null); ImageResult mImageResult = new ImageResult(); byte[] resultBytes = mImageResult.getByteArray();
Response
Copy
{ "resultCode":0 }
Start development here with Huawei
Service introduction
Service overview, application scenarios, and functions
1Can I call the faceCompare() method without calling the prepare() method of the API?
Yes, you can. The engine is started by default in the faceCompare() method. If the engine has already been started, it will not restart.
2What are the input requirements for video portrait segmentation?
Video portrait segmentation recommends input image size of 1080 pixels.
3Is the video portrait segmentation on-device or in-cloud?
Video portrait segmentation is an on-device API. If the phone is of Chinese version, it needs to download the APK to your phone in the lazyload mode through the Internet; if the phone is of oversease version, no Internet access is needed.