超简单集成HMS ML Kit文字超分能力,一键提升文本分辨率

前言

大家有没有遇到过这种情况,在浏览微博或者公众号时看到一段有趣的文字,于是截图发到朋友圈想和好友分享。但是在发布图片时,软件会对图片强制进行压缩,导致图片分辨率下降,文字变得模糊难以阅读。那么有没有什么办法可以解决这种情况呢?当然有啦。华为HMS ML Kit提供了文字超分技术,可以突破图像中文本分辨率的物理限制,对包含文字内容的图像进行9倍放大(长宽各放大3倍),同时显著增强图像中文字的清晰度和可辨识度,轻松解决图片中文字分辨率低的问题。

应用场景

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


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

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

开发实战

[if !supportLists]1.     [endif]配置Maven仓地址

[if !supportLists]1.1  [endif]打开Android

Studio项目级“build.gradle”文件。

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/'}


  }

 }

[if !supportLists]2.     [endif]集成文字图像超分辨率服务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"/>

[if !supportLists]3.     [endif]代码开发

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();

[if !supportLists]3.3  [endif] 对包含文字的图片进行超分辨率处理。

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();

}

Github地址

https://github.com/HMS-Core/hms-ml-demo/tree/master/MLKit-Sample/module-vision/src/main/java/com/huawei/mlkit/sample/activity

更详细的开发指南参考华为开发者联盟官网

https://developer.huawei.com/consumer/cn/hms/huawei-mlkit

你可能感兴趣的:(超简单集成HMS ML Kit文字超分能力,一键提升文本分辨率)