修图神器—超简单实现华为HMS ML Kit图像超分辨率
前言
不知道大家有沒有遇到這樣的情況,圖片壓縮接收下載后清晰度驟降,畫質模糊,更不用說放大瀏覽了。最近小編就遇到了啊,收到朋友發(fā)送的旅游合照壓縮包,打開后,OMG,這昏暗的場景、黑黑的人像、模糊的畫面,怎么讓我發(fā)朋友圈炫耀。無奈只能上網(wǎng)求助,還真讓我發(fā)現(xiàn)了一款超好用、操作簡單的華為HMS ML Kit圖像超分辨率,重點是這個SDK完全免費、適用于各種Android機型。
背景介紹
華為HMS ML Kit圖像超分辨率基于深度神經(jīng)網(wǎng)絡,提供了可適用于移動端的1x和3x超分能力。1x超分去除壓縮噪聲,3x超分在抑制壓縮噪聲的同時,提供3倍放大能力。簡單通俗的說,華為圖像超分辨率提供1x和3x兩種服務,1x超分不改變圖片尺寸,但提高圖片的清晰度,提供更加逼真、自然的視覺體驗,3x超分是將圖像的邊長放大3倍,像素放大9倍,分辨率更高,得到更清晰的細節(jié)紋理。
相關場景
圖像超分辨率廣泛應用于實際生活中各種場景(綠植、美食、人像、風景等圖片),不僅僅只是優(yōu)化人臉和文字場景。例如,購物類APP集成該服務,用戶放大商品圖片時,經(jīng)過ML Kit 圖像超分3x功能,可獲得更清晰的商品細節(jié)。新聞閱讀類APP集成該服務,用戶可以在圖片分辨率不變的情況下,通過1x超分功能得到更清晰的圖片。拍照類APP集成該服務,用戶拍攝圖片時,經(jīng)過圖像超分功能獲得更逼真、更自然的圖片。
開發(fā)實戰(zhàn)
1. 開發(fā)準備
在開始API開發(fā)工作之前,您需要完成必要的開發(fā)準備工作,同時請確保您的工程中已經(jīng) 配置HMS Core SDK的Maven倉地址,并且完成了本服務的SDK集成。
相關步驟可以參考華為開發(fā)者聯(lián)盟:
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-process-4
1.1 項目級gradle里配置Maven倉地址
buildscript {repositories {...maven {url 'https://developer.huawei.com/repo/'}} }dependencies {...classpath 'com.huawei.agconnect:agcp:1.3.1.300'} allprojects {repositories {...maven {url 'https://developer.huawei.com/repo/'}} }1.2 應用級gradle里配置SDK依賴
dependencies{ // 引入集合包。implementation 'com.huawei.hms:ml-computer-vision-imageSuperResolution:2.0.2.300'implementation 'com.huawei.hms:ml-computer-vision-imageSuperResolution-model:2.0.2.300' }注意:
使用圖像超分辨率服務,您需要在應用的build.gradle配置文件中設置targetSdkVersion小于29。
1.3 在文件頭添加配置
apply plugin: 'com.android.application' apply plugin: 'com.huawei.agconnect'1.4 添加如下語句到AndroidManifest.xml文件中,自動更新機器學習模型到設備
<meta-data android:name="com.huawei.hms.ml.DEPENDENCY"android:value= "livenessdetection"/>1.5 讀取本地文件權限
<!--讀權限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />2.開發(fā)步驟
2.1 創(chuàng)建圖像超分辨率分析器。
可以通過自定義參數(shù)類MLImageSuperResolutionAnalyzerSetting創(chuàng)建分析器。
// 方式1:使用默認的參數(shù)配置即1x超分。 MLImageSuperResolutionAnalyzer analyzer = MLImageSuperResolutionAnalyzerFactory.getInstance() .getImageSuperResolutionAnalyzer(); // 方式2:使用自定義的參數(shù)配置,當前僅支持1x超分,后續(xù)可擴展。 MLImageSuperResolutionAnalyzerSetting settings = new MLImageSuperResolutionAnalyzerSetting .Factory() // 設置圖像超分辨率倍數(shù)1x setScale(MLImageSuperResolutionAnalyzerSetting.ISR_SCALE_1X) .create(); MLImageSuperResolutionAnalyzer analyzer = MLImageSuperResolutionAnalyzerFactory.getInstance() .getImageSuperResolutionAnalyzer(setting)2.2 通過android.graphics.Bitmap構造MLFrame(注意此處的bitmap類型必須為ARGB8888,請注意做必要的轉換)。
// 通過bitmap創(chuàng)建MLFrame,bitmap為輸入的圖片數(shù)據(jù)。 MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();2.3 對圖片進行超分辨率處理
錯誤碼信息可參見:機器學習服務錯誤碼
2.4 識別完成,停止分析器,釋放檢測資源。
if (analyzer != null) {analyzer.stop(); }Demo
關于圖像超分小編就介紹這么多內容,下面是效果對比圖,展示下此功能的強大吧。
原圖
1x效果圖
原圖
3x效果圖
相關鏈接
華為HMS ML Kit機器學習集成文本識別、卡證識別、文本翻譯、人臉識別、語音識別、語音合成、圖片分類、圖像分割、拍照購物等功能和服務。
大家感興趣的話,可以戳下方鏈接學習:
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-introduction-4
Github源碼
更詳細的開發(fā)指南參考華為開發(fā)者聯(lián)盟官網(wǎng)
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202348901052600500&fid=18
作者:留下落葉
總結
以上是生活随笔為你收集整理的修图神器—超简单实现华为HMS ML Kit图像超分辨率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java调天气接口
- 下一篇: 干货下载 | 数据管理国家标准DCMM、