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

Groot 42d48e346c version update 1.0.1 11 mesi fa
example 3d4ec508cc update example app, update redme 11 mesi fa
ios f496d53a4b init 11 mesi fa
lib 8106cdb3a8 update 11 mesi fa
.gitignore f496d53a4b init 11 mesi fa
.metadata f496d53a4b init 11 mesi fa
CHANGELOG.md f496d53a4b init 11 mesi fa
LICENSE f496d53a4b init 11 mesi fa
README.md 3d4ec508cc update example app, update redme 11 mesi fa
analysis_options.yaml f496d53a4b init 11 mesi fa
pubspec.yaml 42d48e346c version update 1.0.1 11 mesi fa

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 文件