当前位置:网站首页>Gesture switch background, let live with goods more immersive
Gesture switch background, let live with goods more immersive
2020-11-09 16:56:00 【Huawei Developer Forum】
Preface
This year's epidemic has changed the shopping habits of all kinds of people , E-commerce market share continues to rise , As a new way of transaction, live e-commerce is reshaping the flow entry pattern , More and more consumers enter the product page through live broadcast with goods . So in order to get a better live broadcast effect , It often takes more time to prepare product highlights 、 Preferential measures 、 Show session , Each link has a direct impact on the final trading result . In the past, merchants carried goods in the live broadcasting room with fixed scenes , It's easy to make the audience feel tired , When the audience can't see their products, they often leave because they are not interested , Unless the super comedian , Otherwise, the anchor will not be able to keep every audience interested in all the commodity links , The result may be that the number of live viewers decreases with the introduction of products . Now with the help of Huawei's machine learning service, image segmentation technology can be implemented according to different commodity categories 、 The need for digital real-time replacement of various static and dynamic scenes , Let the live broadcast become vivid and interesting with the switching of various styles . The technology uses semantic segmentation to segment the host portrait , For example, when introducing household goods, you can immediately switch to a home style room , When introducing outdoor sports equipment, you can also switch to outdoor in real time , Through this innovative experience, the audience can also find the immersive sense of substitution .
Function is introduced
Demo Based on Huawei's machine learning service, image segmentation and hand key point recognition are two major technologies , Development of background switching function through gesture , In order to avoid misoperation , This time Demo Set to switch the background only when you wave heavily , Support forward switching after loading custom background ( Turn right ) And switch back ( Turn left ), The operation mode is the same as that of the mobile phone , Support dynamic video background , At the same time, if you want to use customized gestures for background switching or other gesture effects , Huawei can be integrated ML Kit Hand key points identification for customized development .

Is it a very imaginative interactive experience ? Let's take a look at how it works .
Development steps
- add to HUAWEI agcp Plugins and Maven The code base .
buildscript {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
...
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
- Full SDK Way integration .
dependencies{
// Introduce the basis of image segmentation SDK
implementation 'com.huawei.hms:ml-computer-vision-segmentation:2.0.4.300'
// Introduce multi class segmentation model package
implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-multiclass-model:2.0.4.300'
// Introduce portrait segmentation model package
implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-body-model:2.0.4.300'
// Introduce the basics of gesture recognition SDK
implementation 'com.huawei.hms:ml-computer-vision-handkeypoint:2.0.4.300'
// The model package of hand key point detection is introduced
implementation 'com.huawei.hms:ml-computer-vision-handkeypoint-model:2.0.4.300'
}
-
Add configuration in the header . stay apply plugin: 'com.android.application' Add apply plugin: 'com.huawei.agconnect'
-
Automatically update machine learning models stay AndroidManifest.xml Add... To the file
<manifest
...
<meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value="imgseg,handkeypoint" />
...
</manifest>
- Create an image segmentation detector .
MLImageSegmentationAnalyzer imageSegmentationAnalyzer = MLAnalyzerFactory.getInstance().getImageSegmentationAnalyzer();// Image segmentation analyzer
MLHandKeypointAnalyzer handKeypointAnalyzer = MLHandKeypointAnalyzerFactory.getInstance().getHandKeypointAnalyzer();// Gesture recognition Analyzer
MLCompositeAnalyzer analyzer = new MLCompositeAnalyzer.Creator()
.add(imageSegmentationAnalyzer)
.add(handKeypointAnalyzer)
.create();
- Create recognition result processing class .
public class ImageSegmentAnalyzerTransactor implements MLAnalyzer.MLTransactor<MLImageSegmentation> {
@Override
public void transactResult(MLAnalyzer.Result<MLImageSegmentation> results) {
SparseArray<MLImageSegmentation> items = results.getAnalyseList();
// Developers process the identification results as needed , We need to pay attention to , Only the test results are processed here .
// Not callable ML Kit Other detection related interfaces provided .
}
@Override
public void destroy() {
// Detection end callback method , For releasing resources, etc .
}
}
public class HandKeypointTransactor implements MLAnalyzer.MLTransactor<List<MLHandKeypoints>> {
@Override
public void transactResult(MLAnalyzer.Result<List<MLHandKeypoints>> results) {
SparseArray<List<MLHandKeypoints>> analyseList = results.getAnalyseList();
// Developers process the identification results as needed , We need to pay attention to , Only the test results are processed here .
// Not callable ML Kit Other detection related interfaces provided .
}
@Override
public void destroy() {
// Detection end callback method , For releasing resources, etc .
}
}
- Set the recognition result processor , Implement the binding between analyzer and result processor .
imageSegmentationAnalyzer.setTransactor(new ImageSegmentAnalyzerTransactor());
handKeypointAnalyzer.setTransactor(new HandKeypointTransactor());
- establish LensEngine
Context context = this.getApplicationContext();
LensEngine lensEngine = new LensEngine.Creator(context,analyzer)
// Set camera front and back mode ,LensEngine.BACK_LENS For post ,LensEngine.FRONT_LENS For the front .
.setLensType(LensEngine.FRONT_LENS)
.applyDisplayDimension(1280, 720)
.applyFps(20.0f)
.enableAutomaticFocus(true)
.create();
- Start the camera , Read the video stream , For identification .
// Please do it yourself SurfaceView Other logic of the control .
SurfaceView mSurfaceView = new SurfaceView(this);
try {
lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
// Exception handling logic .
}
- Test complete , Stop the analyzer , Release detection resources .
if (analyzer != null) {
try {
analyzer.stop();
} catch (IOException e) {
// exception handling .
}
}
if (lensEngine != null) {
lensEngine.release();
}
summary
Sum up , By introducing packages 、 Establish detection 、 Analysis and result processing and other simple steps can quickly realize this small black Technology . In addition, through image segmentation technology , There are a lot of things we can do , For example, the masked bullet screen in the video website , Combined with some front-end rendering technology, it is easy to avoid bullet screen covering human body parts , Or use existing materials to make beautiful photo portraits of various sizes , One of the advantages of semantic segmentation is that it can control the objects you want to segment accurately , Besides portraits, you can also treat delicious food 、 Pets 、 Architecture 、 The scenery and even flowers and plants are divided , No longer have to knock on the computer professional repair software .
Github Demo
For more detailed development guidelines, please refer to the official website of Huawei developer alliance :https://developer.huawei.com/consumer/cn/hms/huawei-mlkit
Link to the original text :https://developer.huawei.com/consumer/cn/forum/topic/0204395267288570031?fid=18 The original author :timer
版权声明
本文为[Huawei Developer Forum]所创,转载请带上原文链接,感谢
边栏推荐
- Using GaN based oversampling technique to improve the accuracy of model for mortality prediction of unbalanced covid-19
- Equivalent judgment between floating point numbers
- 明年起旧版本安卓设备将无法浏览大约30%的网页
- 函数计算进阶-IP查询工具开发
- Explore cache configuration of Android gradle plug-in
- Express yourself with wechat expression translation, programmer's little romance, get up quickly!
- 5 minutes get I use GitHub's 5-year summary of these operations!
- 标梵互动解说小程序开发该如何选择?
- Ubuntu18.04 NAT模式下配置静态IP地址 -2020.11.09
- 数据库执行truncate table CM_CHECK_ITEM_HIS怎么恢复
猜你喜欢

函数计算进阶-IP查询工具开发

How the API gateway carries the API economic ecological chain

知识图谱描边1.1——从NER上手

如何设计并实现存储QoS?

标梵互动解说小程序开发该如何选择?

Explain git in detail

Echart sets the spacing between columns

第三阶段 Day16 用户模块跳转 SSO单点登录 JSONP/cors跨域方式 用户登录校检

Solve the problem that the page does not refresh after the wechat applet uses switchtab to jump

Rookie gospel, 28 books step by step to make you a big bull! (a copy of learning syllabus attached)
随机推荐
Centos7下基于Pseudo-Distributed的Hadoop环境搭建
SEO solution development, how to break away from the shadow of the bow?
5分钟GET我使用Github 5 年总结的这些骚操作!
脑机接口先驱炮轰马斯克:“他走的是一条死胡同,说的话我一个字都不同意”
Booker · apachecn programming / back end / big data / AI learning resources 2020.11
高质量的缺陷分析:让自己少写 bug
微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现
Help enterprises to get rid of difficulties, famous enterprises return home Engineers: success depends on it!
会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?
企业公司开发微信小程序适用于哪些行业?
In depth analysis of the multi-user shopping mall system from search to create a profit point
[invite you to vote] who is the key driver behind these big open source events in 2020?
iOS下带小数点的数字键盘
Solution to the failure of closing windows in Chrome browser JS
. net report builder stimulsoft Reports.Net Release the latest version of v2020.5!
缓存的数据一致性
第三阶段 Day19 用户回显 封装Cookie 商品远程调用 购物车模块 CRUD操作
Colleague notes - small program entry point
Experts' interpretation of four hot industries in 2020 China telecom terminal technology and Standards Forum
【分享】接口测试如何在post请求中传递文件