android 强制分辨率_【华为HMS ML Kit】文字超分能力提升文本分辨率

有些软件在发布图片时会强制压缩,导致图片分辨率下降,文字变得模糊难以阅读。华为HMS ML Kit提供了文字超分技术,可以突破图像中文本分辨率的物理限制,对包含文字内容的图像进行9倍放大(长宽各放大3倍),同时显著增强图像中文字的清晰度和可辨识度,轻松解决图片中文字分辨率低的问题。

应用场景

文字超分技术在生活中有很多的应用场景,比如刚刚提到朋友圈发布的截图被压缩时,文字超分技术可以把截图还原到高清晰度。

e16723c893262a233e869fbfc6ca7e5d.png

或者是在文档翻拍时,因为距离远、未聚焦等原因,导致拍摄的文字不清晰。文字超分技术可以提高翻拍文档的清晰度和可辨识度,让文档中的字变得清晰。

怎么样,是不是很实用?下面给大家简单介绍如何集成HMS ML Kit文字超分服务。

开发实战

1.     配置Maven仓地址

1.1  打开Android Studio项目级“build.gradle”文件

9eae37ec1d92196e6f5b5bed35b7b81a.png

1.2 添加HUAWEI agcp插件以及Maven代码库。

在allprojects ->repositories里面配置HMS Core SDK的Maven仓地址。

allprojects {

    repositories {

        google()

        jcenter()

       maven{url'https://developer.huawei.com/repo/'}

    }

 }

在buildscript->repositories里面配置HMS Core SDK的Maven仓地址。

buildscript {

    repositories {

        google()

        jcenter()

        maven {url 'https://developer.huawei.com/repo/'}

    }

 }

2.  集成文字图像超分辨率服务SDK

2.1  Full SDK方式集成(推荐使用)

dependencies{

    // 引入基础SDK

    Implementation 'com.huawei.hms:ml-computer-vision-textimagesuperresolution:2.0.3.300'

    // 引入文字图像超分辨率模型包

    implementation 'com.huawei.hms:ml-computer-vision-textimagesuperresolution-model:2.0.3.300'

}

2.2  文件头添加配置

apply plugin: 'com.android.application'

apply plugin: 'com.huawei.agconnect'

2.3  更新机器学习模型

   android:name="com.huawei.hms.ml.DEPENDENCY"

   android:value= "tisr"/>

3.  代码开发

3.1  创建文字图像超分辨率分析器

MLTextImageSuperResolutionAnalyzer analyzer =

MLTextImageSuperResolutionAnalyzerFactory.getInstance().getTextImageSuperResolutionAnalyzer();

3.2  通过android.graphics.Bitmap构造MLFrame(注意此处的bitmap类型必须为ARGB8888,请注意做必要的转换)

// 通过bitmap创建MLFrame,bitmap为输入的图片数据。

MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();

3.3  对包含文字的图片进行超分辨率处理

Task task = analyzer.asyncAnalyseFrame(frame);

task.addOnSuccessListener(new OnSuccessListener() {

    public void onSuccess(MLTextImageSuperResolutionResult result) {

        // 超分成功的处理逻辑。

    }})

    .addOnFailureListener(new OnFailureListener() {

        public void onFailure(Exception e) {

            // 超分失败的处理逻辑。

            if (e instanceof MLException) {

                MLException mlException = (MLException)e;

                // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。

                int errorCode = mlException.getErrCode();

                // 获取报错信息,开发者可以结合错误码,快速定位问题。

                String errorMessage = mlException.getMessage();

            } else {

                // 其他异常。

        }

});

3.4  超分完成,停止分析器,释放检测资源

if (analyzer != null) {

    analyzer.stop();

}

41e8816a4a56c129e71340f1a8525cc4.gif

获取Demo源码戳“阅读原文”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值