本篇內(nèi)容主要講解“如何使用超簡單集成HMS Core ML Kit場景識別,構(gòu)建相冊管理新模式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用超簡單集成HMS Core ML Kit場景識別,構(gòu)建相冊管理新模式”吧!
為蔡家坡等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及蔡家坡網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、蔡家坡網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
華為場景識別服務(wù)支持對圖片的場景內(nèi)容進行分類并添加標注信息,如美食、花朵、綠植、貓、狗、廚房、山峰、洗衣機等102種場景,并基于識別到的信息,構(gòu)建更智能的相冊應(yīng)用體驗。
場景識別具有以下功能特性:
多類場景識別支持102種場景的識別,并持續(xù)增加。
識別準確率高可識別多種物品、場景,識別準確率高。
識別響應(yīng)速度快毫秒級響應(yīng)速度,并不斷優(yōu)化性能表現(xiàn)。
集成簡單高效提供API接口和SDK包,方便客戶集成,操作簡單,減少開發(fā)成本。
場景識別除了應(yīng)用于建立智能相冊、照片檢索和分類外,還可以識別拍攝場景自動選擇相應(yīng)的場景濾鏡和相機參數(shù),幫助用戶拍攝出更好看的照片。
在開發(fā)應(yīng)用前,需要在AppGallery Connect中配置相關(guān)信息。 具體操作步驟,請參考下方鏈接: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/config-agc-0000001050990353-V5
(1)打開Android Studio項目級“build.gradle”文件。
(2)添加HUAWEI agcp插件以及Maven代碼庫。
在“allprojects > repositories”中配置HMS Core SDK的Maven倉地址。
在“buildscript > repositories”中配置HMS Core SDK的Maven倉地址。
如果App中添加了“agconnect-services.json”文件則需要在“buildscript > dependencies”中增加agcp配置。
buildscript { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... classpath 'com.huawei.agconnect:agcp:1.4.1.300' } } allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } }
// 方式1:使用默認的參數(shù)配置。 MLSceneDetectionAnalyzer analyzer = MLSceneDetectionAnalyzerFactory.getInstance().getSceneDetectionAnalyzer(); // 方式2:按自定義配置創(chuàng)建場景識別分析器實例。 MLSceneDetectionAnalyzerSetting setting = new MLSceneDetectionAnalyzerSetting.Factory() // 設(shè)置場景識別可信度閾值。 .setConfidence(confidence) .create(); MLSceneDetectionAnalyzer analyzer = MLSceneDetectionAnalyzerFactory.getInstance().getSceneDetectionAnalyzer(setting);
MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();
// 方式1:同步識別。 SparseArrayresults = analyzer.analyseFrame(frame); // 方式2:異步識別。 Task > task = analyzer.asyncAnalyseFrame(frame); task.addOnSuccessListener(new OnSuccessListener
>() { public void onSuccess(List
result) { // 場景識別成功的處理邏輯。 }}) .addOnFailureListener(new OnFailureListener() { public void onFailure(Exception e) { // 場景識別識別失敗的處理邏輯。 // failure. if (e instanceof MLException) { MLException mlException = (MLException)e; // 獲取錯誤碼,開發(fā)者可以對錯誤碼進行處理,根據(jù)錯誤碼進行差異化的頁面提示。 int errorCode = mlException.getErrCode(); // 獲取報錯信息,開發(fā)者可以結(jié)合錯誤碼,快速定位問題。 String errorMessage = mlException.getMessage(); } else { // 其他異常。 } } });
if (analyzer != null) { analyzer.stop(); }
開發(fā)者可以自行處理視頻流,將視頻流轉(zhuǎn)化為MLFrame對象,再按靜態(tài)圖像檢測的方法進行場景識別。
如果開發(fā)者調(diào)用的是同步檢測接口,也可以使用SDK內(nèi)置的LensEngine類實現(xiàn)視頻流場景識別。示例代碼如下:
MLSceneDetectionAnalyzer analyzer = MLSceneDetectionAnalyzerFactory.getInstance().getSceneDetectionAnalyzer();
public class SceneDetectionAnalyzerTransactor implements MLAnalyzer.MLTransactor{ @Override public void transactResult(MLAnalyzer.Result results) { SparseArray items = results.getAnalyseList(); // 開發(fā)者根據(jù)需要處理識別結(jié)果,需要注意,這里只對檢測結(jié)果進行處理。 // 不可調(diào)用ML Kit提供的其他檢測相關(guān)接口。 } @Override public void destroy() { // 檢測結(jié)束回調(diào)方法,用于釋放資源等。 } }
analyzer.setTransactor(new SceneDetectionAnalyzerTransactor()); // 創(chuàng)建LensEngine,該類由ML Kit SDK提供,用于捕捉相機動態(tài)視頻流并傳入分析器。 Context context = this.getApplicationContext(); LensEngine lensEngine = new LensEngine.Creator(context, this.analyzer) .setLensType(LensEngine.BACK_LENS) .applyDisplayDimension(1440, 1080) .applyFps(30.0f) .enableAutomaticFocus(true) .create();
// 請自行實現(xiàn)SurfaceView控件的其他邏輯。 SurfaceView mSurfaceView = findViewById(R.id.surface_view); try { lensEngine.run(mSurfaceView.getHolder()); } catch (IOException e) { // 異常處理邏輯。 }
if (analyzer != null) { analyzer.stop(); } if (lensEngine != null) { lensEngine.release(); }
到此,相信大家對“如何使用超簡單集成HMS Core ML Kit場景識別,構(gòu)建相冊管理新模式”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!