HarmonyOS鸿蒙Next主体分割技术,提升图像信息提取能力
HarmonyOS鸿蒙Next主体分割技术,提升图像信息提取能力 在智能设备普及和AI技术进步的推动下,用户对线上互动的质量、个性化以及沉浸式体验的追求日益增强。例如,对于热衷于图片编辑或视频制作的用户来说,他们需要一种快速而简便的方法来将特定主体从背景中分离出来。
HarmonyOS SDK 提供基础视觉服务(Core Vision Kit),可以检测出图片中区别于背景的前景物体或区域(即"显著主体"),并将其从背景中分离出来,适用于需要识别和提取图像主要信息的场景,广泛使用于前景目标检测和前景主体分离的场景。
适用场景
- 主体贴纸:从图片中提取显著性的主体,去掉背景。
- 背景替换:替换并提取出主体对象的背景。
- 显著性检测:快速定位图片中显著性区域。
- 辅助图片编辑:例如单独对主体进行美化处理。
功能演示
本文仅展示通用三个入口:复制、分享、识图搜索,其他功能开发者可以自行定制。
开发步骤
- 引用相关类添加至工程。
import { subjectSegmentation } from '@kit.CoreVisionKit';
- 准备预处理的图片资源,将图片转换为PixelMap,并添加初始化和释放方法。
async aboutToAppear(): Promise<void> {
const initResult = await subjectSegmentation.init();
hilog.info(0x0000, 'subjectSegmentationSample', `Subject segmentation initialization result:${initResult}`);
}
async aboutToDisappear(): Promise<void> {
await subjectSegmentation.release();
hilog.info(0x0000, 'subjectSegmentationSample', 'Subject segmentation released successfully');
}
private async selectImage() {
let uri = await this.openPhoto()
if (uri === undefined) {
hilog.error(0x0000, TAG, "uri is undefined");
}
this.loadImage(uri);
}
private openPhoto(): Promise<Array<string>> {
return new Promise<Array<string>>((resolve, reject) => {
let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
PhotoSelectOptions.maxSelectNumber = 1;
let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
hilog.info(0x0000, TAG, 'PhotoViewPicker.select successfully, PhotoSelectResult uri: ');
photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
hilog.info(0x0000, TAG, `PhotoViewPicker.select successfully, PhotoSelectResult uri: ${PhotoSelectResult.photoUris}`);
resolve(PhotoSelectResult.photoUris)
}).catch((err: BusinessError) => {
hilog.error(0x0000, TAG, `PhotoViewPicker.select failed with errCode: ${err.code}, errMessage: ${err.message}`);
reject();
});
})
}
private loadImage(names: string[]) {
setTimeout(async () => {
let imageSource: image.ImageSource | undefined = undefined
let fileSource = await fileIo.open(names[0], fileIo.OpenMode.READ_ONLY)
imageSource = image.createImageSource(fileSource.fd)
this.chooseImage = await imageSource.createPixelMap()
hilog.info(0x0000, TAG, `this.chooseImage===${this.chooseImage}`);
}, 100
)
}
- 实例化待分割的入参项VisionInfo,并传入待检测图片的PixelMap。
let visionInfo: subjectSegmentation.VisionInfo = {
pixelMap: this.chooseImage,
};
- 配置通用文本识别的配置项SegmentationConfig,包括最大分割主体个数、是否输出每个主体的分割信息,以及是否输出分割后的前景图。
let config: subjectSegmentation.SegmentationConfig = {
maxCount: parseInt(this.maxNum),
enableSubjectDetails: true,
enableSubjectForegroundImage: true
};
- 调用imageSegmentation的ai.vision.doSegmentation接口,实现主体分割。
let data: subjectSegmentation.SegmentationResult = await subjectSegmentation.doSegmentation(visionInfo, config);
let outputString = `Subject count: ${data.subjectCount}\n`;
outputString += `Max subject count: ${config.maxCount}\n`;
outputString += `Enable subject details: ${config.enableSubjectDetails ? 'Yes' : 'No'}\n\n`;
let segBox : subjectSegmentation.Rectangle = data.fullSubject.subjectRectangle;
let segBoxString = `Full subject box:
Left: ${segBox.left}, Top: ${segBox.top}, Width: ${segBox.width}, Height: ${segBox.height}\n\n`;
outputString += segBoxString;
if (config.enableSubjectDetails) {
outputString += 'Individual subject boxes:\n';
if (data.subjectDetails) {
for (let i = 0; i < data.subjectDetails.length; i++) {
let detailSegBox: subjectSegmentation.Rectangle = data.subjectDetails[i].subjectRectangle;
outputString += `Subject ${i + 1}:
Left: ${detailSegBox.left}, Top: ${detailSegBox.top}, Width: ${detailSegBox.width}, Height: ${detailSegBox.height}\n\n`;
}
}
}
了解更多详情>>
- 访问 基础视觉服务联盟官网
- 获取 主体分割开发指导文档
更多关于HarmonyOS鸿蒙Next主体分割技术,提升图像信息提取能力的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next的主体分割技术是一种基于深度学习的图像处理技术,旨在从复杂背景中准确分离出目标主体。该技术通过神经网络模型对图像进行像素级分析,识别并分割出图像中的主要对象。主体分割技术能够有效提升图像信息提取的精度和效率,适用于多种场景,如智能相册、AR应用、智能监控等。
在技术实现上,鸿蒙Next的主体分割采用了轻量化的神经网络架构,确保在移动设备上也能高效运行。该技术通过多尺度特征融合和上下文信息增强,提高了分割的准确性和鲁棒性。此外,鸿蒙Next还优化了模型的推理速度,使其在实时应用中表现优异。
主体分割技术的核心在于其能够处理复杂的图像场景,包括遮挡、光照变化和背景干扰等。通过深度学习模型的训练,鸿蒙Next能够自动学习图像中的特征,并在不同场景下保持较高的分割精度。这一技术的应用,不仅提升了用户体验,也为开发者提供了更强大的图像处理工具。
更多关于HarmonyOS鸿蒙Next主体分割技术,提升图像信息提取能力的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next的主体分割技术通过先进的深度学习算法,能够精确识别并分离图像中的主体与背景,从而显著提升图像信息提取的效率和准确性。该技术基于多模态感知和语义理解,能够适应复杂场景,支持实时处理,广泛应用于智能设备、AR/VR、自动驾驶等领域,为用户提供更加智能化、个性化的视觉体验。