Clean Pro的核心图片检测Swift模块

Groot 42d48e346c version update 1.0.1 7 miesięcy temu
example 3d4ec508cc update example app, update redme 7 miesięcy temu
ios f496d53a4b init 7 miesięcy temu
lib 8106cdb3a8 update 7 miesięcy temu
.gitignore f496d53a4b init 7 miesięcy temu
.metadata f496d53a4b init 7 miesięcy temu
CHANGELOG.md f496d53a4b init 7 miesięcy temu
LICENSE f496d53a4b init 7 miesięcy temu
README.md 3d4ec508cc update example app, update redme 7 miesięcy temu
analysis_options.yaml f496d53a4b init 7 miesięcy temu
pubspec.yaml 42d48e346c version update 1.0.1 7 miesięcy temu

README.md

Photo Classifier

Flutter Platform License

照片分类插件是一个Flutter插件,旨在为移动应用提供智能照片分类功能。该插件能够自动识别和分组照片,提升照片管理体验。

功能特点

  • 相似照片分组: 自动检测并分组相似的照片,帮助用户快速找到并整理重复照片
  • 人物照片识别: 智能识别包含人物的照片
  • 屏幕截图识别: 自动归类所有屏幕截图
  • 模糊照片检测: 识别质量不佳的模糊照片
  • 实时处理进度: 通过流(Stream)提供实时的分类进度和结果更新

安装

将以下内容添加到您项目的 pubspec.yaml 文件中:

dependencies:
  photo_classifier:
    git:
      url: http://git.atmob.com/Groot/clean_pro_photo_classifier_plugin
      ref: v1.0.1

然后运行:

flutter pub get

权限配置

iOS

ios/Runner/Info.plist 文件中添加以下权限描述: 调用分类器方法前请确保获取了相应的相册权限

<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问照片库以进行照片分类</string>

使用方法

基本用法

import 'package:photo_classifier/photo_classifier.dart';
import 'package:photo_classifier/models.dart';

// 创建分类器实例
final classifier = PhotoClassifier();

// 配置分类器
await classifier.configureClassifier(
  batchSize: 200,
  maxConcurrentProcessing: 4,
  similarityThreshold: 0.75,
);

// 开始分类并监听结果
final subscription = classifier
  .startClassificationStream()
  .listen((event) {
    if (event == null) return;
    
    // 获取进度信息
    final progress = event.progress;
    print('进度: ${(progress?.rate ?? 0) * 100}%');
    
    // 获取分类结果
    final result = event.result;
    if (result != null) {
      // 处理相似图片组
      final similarGroups = result.similarGroups ?? [];
      
      // 处理人物照片
      final peopleImages = result.peopleImages ?? [];
      
      // 处理截图
      final screenshotImages = result.screenshotImages ?? [];
      
      // 处理模糊照片
      final blurryImages = result.blurryImages ?? [];
    }
    
    // 检查是否完成
    if (progress?.isCompleted == true) {
      subscription.cancel();
    }
  },
  onError: (error) {
    print('分类错误: $error');
  });

// 取消分类过程
subscription.cancel();
classifier.resetClassifier();

配置选项

分类器提供以下配置选项:

  • batchSize: 每批处理的图片数量,默认为200
  • maxConcurrentProcessing: 并发处理的最大数量,默认为4
  • similarityThreshold: 相似度判定阈值(0.0-1.0),值越大表示要求越相似,默认为0.75
await classifier.configureClassifier(
  batchSize: 100,
  maxConcurrentProcessing: 2,
  similarityThreshold: 0.8,
);

完整示例

查看 example 目录获取完整的示例应用。

实现原理

该插件使用视觉处理算法对照片进行分析,通过比较图像特征向量实现相似照片的分组,使用机器学习模型识别人物照片、屏幕截图和模糊图像。

性能优势

在iPhone 12上对1686张相册图片的测试对比中,相比Clean Pro v1.04版本:

性能指标 旧版本 新版本 提升倍率
首屏加载时间 44.76秒 1.27秒 35.2倍
全分类完成时间 76.22秒 10.93秒 7.0倍

通过算法优化和并行处理,大幅提升了分类速度,同时保持了高准确度的分类结果,为用户提供更流畅的照片管理体验。

贡献

欢迎提交问题和功能请求!要贡献代码,请先创建一个issue讨论您想要更改的内容。

许可

该项目采用MIT许可证 - 详情请参阅 LICENSE 文件