创建LensEngine
Context context = this.getApplicationContext(); LensEngine lensEngine = new LensEngine.Creator(context,analyzer) // 设置摄像头前后置模式,LensEngine.BACK_LENS为后置,LensEngine.FRONT_LENS为前置。 .setLensType(LensEngine.FRONT_LENS) .applyDisplayDimension(1280, 720) .applyFps(20.0f) .enableAutomaticFocus(true) .create();启动相机,读取视频流,进行识别。
// 请自行实现SurfaceView控件的其他逻辑。 SurfaceView mSurfaceView = new SurfaceView(this); try { lensEngine.run(mSurfaceView.getHolder()); } catch (IOException e) { // 异常处理逻辑。 }检测完成,停止分析器,释放检测资源。
if (analyzer != null) { try { analyzer.stop(); } catch (IOException e) { // 异常处理。 } } if (lensEngine != null) { lensEngine.release(); } 总结综上,通过引入包、建立检测、分析与结果处理等几个简单的步骤就可以快速实现这个小小的黑科技。另外通过图像分割技术,我们还可以做很多东西,比如视频网站中的蒙版弹幕,结合一些前端渲染技术轻松避免弹幕遮盖人体部分,或者利用现有素材制作各种尺寸的精美写真照片,语义分割的一大好处就是可以精准地控制你想要分割出来的物体,除了人像还可以对美食、宠物、建筑、风景甚至花花草草等进行分割,再也不用死磕电脑上的专业修图软件了。
Github Demo更详细的开发指南参考华为开发者联盟官网:https://developer.huawei.com/consumer/cn/hms/huawei-mlkit