当前位置:   article > 正文

鸿蒙HarmonyOS开发实战—AI功能开发(图像超分辨率)_鸿蒙中如何调用ai算法_鸿蒙 超分

鸿蒙 超分

调用VisionManager.init()方法,将此工程的context和和已经定义的connectionCallback回调作为入参,建立与能力引擎的连接,context应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。

int result = VisionManager.init(context, connectionCallback);
  • 1

在收到onServiceConnect回调连接服务成功后,实例化IImageSuperResolution接口,将此工程的context作为入参,context应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。

IImageSuperResolution imageSuperResolution = VisionManager.getSisr(context);
  • 1

实例化VisionImage对象image,并传入待超分图片pixelMap。

VisionImage image = VisionImage.fromPixelMap(pixelMap);
  • 1

实例化ImageResult对象imageResult,该对象用于在同步模式下存放doSuperResolution()方法传出的超分后图片结果。

ImageResult imageResult = new ImageResult();
  • 1

(可选)定义VisionCallback回调。

VisionCallback<ImageResult> callback= new VisionCallback<ImageResult>() {
    @Override
    public void onResult(ImageResult imageResult) {
        // 对正确获得图片超分结果进行处理。
    }
    @Override
    public void onError(int i) {
        // 处理错误返回码。
    }
    @Override
    public void onProcessing(float v) {
        // 返回处理进度。
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

说明

  • 在异步模式下,该类的onResult()方法用于获得超分的结果imageResult(内含超分后图片结果);onError()方法用于处理错误返回码;onProcessing()方法用于返回处理进度,目前没有实现此接口的功能。
  • 同步与异步模式区别在于doSuperResolution()的最后一个参数visionCallback是否为空。若非空则为异步模式,此时会忽略自定义的ImageResult输入result,接口调用结果一律从回调类visionCallback获得。

通过SisrConfiguration配置超分参数,可选择超分倍数、质量、调用模式(推荐使用MODE_IN同进程模式)等。跨进程模式(MODE_OUT)下调用方与能力引擎处于不同进程;同进程模式(MODE_IN)下,能力引擎在调用方进程中实例化,调用方通过反射的方式调用引擎里的图像超分能力。以下以同进程调用,3x最高质量超分为例:

SisrConfiguration.Builder builder = new SisrConfiguration.Builder();
builder.setProcessMode(VisionConfiguration.MODE_IN);
SisrConfiguration config = builder.build();
config.setScale(SisrConfiguration.SISR_SCALE_3X);
config.setQuality();
imageSuperResolution.setVisionConfiguration(config);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(可选)调用IImageSuperResolution的prepare方法。

result = imageSuperResolution.prepare();
  • 1

说明 如果返回的result不为0,说明当前超分能力准备失败,需要处理错误,不再执行之后的动作。在doSuperResolution()方法中会首先调用prepare()启动引擎,如果引擎已经启动则不会再次启动。

调用IImageSuperResolution的doSuperResolution方法。

result = imageSuperResolution.doSuperResolution(image, imageResult, null); // 同步
  • 1

或者:

result = imageSuperResolution.doSuperResolution(image, null, callback); // 异步
  • 1

说明

  • 同步模式调用完成时,该函数立即返回结果码。
  • 异步模式调用请求发送成功时,该函数返回结果码700。如果返回其他的值,说明异步调用请求不成功,需要先处理错误,回调函数不会被调用。
  • 如果异步模式调用请求发送成功,则超分完成后,相应的回调函数会被自动调用:
    • 如果onResult()回调被调用,说明超分成功,相当于同步模式结果码为“0”的情况。
    • 如果onError()方法被调用,说明超分发生了错误,具体的调用结果码将由onError()的参数接收。

结果码定义如下表:

结果码说明
0成功
-1未知错误
-2不支持的功能或接口
-3内存分配失败或创建对象失败
-4所需库加载失败
-10引擎开关已经关闭
101失败
102超时
200输入参数不合法(图片尺寸错误)
201输入参数不合法(为空)
210输入参数合法
500服务绑定异常
521服务绑定异常断开
522服务已连接
600模型文件异常
601模型文件不存在
602模型加载失败
700异步调用请求发送成功
1001神经网络处理单元错误

调用IImageSuperResolution的release()方法,释放模型资源;调用pixelMap的release()方法,释放图片内存。

result = imageSuperResolution.release();
if (pixelMap != null) {
    pixelMap.release();
    pixelMap = null;
}
  • 1
  • 2
  • 3
  • 4
  • 5

说明 不再使用图像超分能力时,调用release()方法释放资源。

调用VisionManager.destroy()方法,断开与能力引擎的连接。

VisionManager.destroy();
  • 1

最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频电子书学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。

纯血版鸿蒙 HarmonyOS 4.0 视频学习资料

需要以上视频学习资料小伙伴

请点击→纯血版全套鸿蒙HarmonyOS学习资料


《纯血版华为鸿蒙 (Harmony OS)开发手册》

这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点

纯血版鸿蒙 (Harmony OS)开发手册部分精彩内容

HarmonyOS 概念:

  • 系统定义
  • 技术架构
  • 技术特性
  • 系统安全

如何快速入门?

  • 基本概念
  • 构建第一个ArkTS应用
  • 构建第一个JS应用
  • ……


开发基础知识:

  • 应用基础知识
  • 配置文件
  • 应用数据管理
  • 应用安全管理
  • 应用隐私保护
  • 三方应用调用管控机制
  • 资源分类与访问
  • 学习ArkTS语言
  • ……

基于ArkTS 开发:

  • Ability开发
  • UI开发
  • 公共事件与通知
  • 窗口管理
  • 媒体
  • 安全
  • 网络与链接
  • 电话服务
  • 数据管理
  • 后台任务(Background Task)管理
  • 设备管理
  • 设备使用信息统计
  • DFX
  • 国际化开发
  • 折叠屏系列
  • .……

获取以上文中提到的这份纯血版鸿蒙 (Harmony OS) 开发资料的小伙伴

请点击→纯血版全套鸿蒙HarmonyOS学习资料


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/759632?site

推荐阅读
相关标签