一、前言
在手機(jī)相機(jī)功能日益強(qiáng)大的今天,相對(duì)于相機(jī)硬件的差異,圖像處理算法逐漸顯示出更加重要的地位?,F(xiàn)在的消費(fèi)者也開始由看重硬件能力慢慢轉(zhuǎn)向?qū)λ惴芰Φ闹匾?。用戶在拍照發(fā)朋友圈之前往往需要根據(jù)場(chǎng)景逐個(gè)調(diào)整畫面參數(shù),這一過程費(fèi)時(shí)費(fèi)力,對(duì)于小白用戶又很難調(diào)節(jié)到最佳狀態(tài)。有沒有一種方式可以精細(xì)化區(qū)分場(chǎng)景,實(shí)現(xiàn)一鍵式智能拍照修圖呢?華為機(jī)器學(xué)習(xí)服務(wù)近期推出的場(chǎng)景識(shí)別支持102種細(xì)分場(chǎng)景的識(shí)別,對(duì)于生活旅行常見的場(chǎng)景諸如沙灘、藍(lán)天、美食、夜景、綠植、典型建筑等場(chǎng)景都可以精準(zhǔn)地識(shí)別出來,配合圖像矩陣進(jìn)行精細(xì)化調(diào)參,幫助打造更加主動(dòng)智能、省時(shí)省力的移動(dòng)應(yīng)用。讓我們看一看增強(qiáng)效果。
二、增強(qiáng)效果
對(duì)于城市夜景圖,場(chǎng)景識(shí)別可以準(zhǔn)確識(shí)別出夜景,然后將圖片中的亮部增量,暗部變暗,整個(gè)照片比之前看起來層次感更強(qiáng),夜景效果更加純粹。

然后測(cè)試一張?zhí)炜盏膱D片,在準(zhǔn)確識(shí)別天空?qǐng)鼍爸笸ㄟ^增強(qiáng)矩陣將略顯昏暗的天空變得明亮起來。

以及對(duì)于綠植、花朵的拍照增強(qiáng)。


當(dāng)然,以上demo對(duì)于各種圖片的增強(qiáng)效果可能有細(xì)微的不同,當(dāng)然可以根據(jù)自己的風(fēng)格來選擇或搭配濾鏡。
所以讓我們了解開發(fā)原理之后再開發(fā)自己的相機(jī)模式吧。
三、開發(fā)步驟
1. 創(chuàng)建場(chǎng)景識(shí)別檢測(cè)器實(shí)例。
MLSceneDetectionAnalyzer analyzer= MLSceneDetectionAnalyzerFactory.getInstance().getSceneDetectionAnalyzer();
2. 通過android.graphics.Bitmap構(gòu)造MLFrame,支持的圖片格式包括:jpg/jpeg/png/bmp。
MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();
3. 場(chǎng)景識(shí)別。
Task<List<MLSceneDetection>> task = this.analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(
new OnSuccessListener>() {
@Override
public void onSuccess(List sceneInfos) {
// Processing logic for scene detection success.
??? }
}).addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// Processing logic for scene detection failure.
??????? if (e instanceof MLException) {
??????????? MLException exception = (MLException) e;
// Obtain the result code.
??????????? int errCode = exception.getErrCode();
// Obtain the error information.
??????????? String message = exception.getMessage();
??????? }
else {
// Other errors.
??????? }
??? }
});
4. 檢測(cè)完成,停止分析器,釋放檢測(cè)資源。
if (analyzer != null) {
analyzer.stop();
}
5. maven地址
buildscript {
??? repositories {
??????? maven { url
'https://developer.huawei.com/repo/' }
??? }
}
allprojects {
??? repositories {
??????? maven { url
'https://developer.huawei.com/repo/' }
??? }
}
6. 引入SDK
dependencies {
??? // Scene detection SDK.
??? implementation 'com.huawei.hms:ml-computer-vision-scenedetection:2.0.3.300'
??? // Scene detection model.
??? implementation 'com.huawei.hms:ml-computer-vision-scenedetection-model:2.0.3.300'
}
7. 清單文件
<manifest
??? ...
??? <
meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value="1" />
??? ...
</
manifest>
8. 權(quán)限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<
uses-permission android:name="android.permission.CAMERA" />
<
uses-feature android:name="android.hardware.camera" />
<
uses-feature android:name="android.hardware.autofocus" />
9. 動(dòng)態(tài)權(quán)限申請(qǐng)
if (!(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) {
??? requestCameraPermission();
}
四、總結(jié)
華為機(jī)器學(xué)習(xí)場(chǎng)景識(shí)別提供的更加主動(dòng)的智能是未來應(yīng)用趨勢(shì),除了用于拍照效果增強(qiáng),場(chǎng)景識(shí)別還可以用來進(jìn)行相冊(cè)管理及場(chǎng)景圖片檢索,幫助您構(gòu)建精細(xì)化的分類獲取和管理。
欲了解更多詳情,請(qǐng)參閱:
華為開發(fā)者聯(lián)盟官網(wǎng):https://developer.huawei.com/consumer/cn/hms
獲取開發(fā)指導(dǎo)文檔:https://developer.huawei.com/consumer/cn/doc/development
參與開發(fā)者討論請(qǐng)到Reddit社區(qū):https://www.reddit.com/r/HMSCore/
下載demo和示例代碼請(qǐng)到Github:https://github.com/HMS-Core
解決集成問題請(qǐng)到Stack
Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest