# Photo Classifier



照片分类插件是一个Flutter插件,旨在为移动应用提供智能照片分类功能。该插件能够自动识别和分组照片,提升照片管理体验。
## 功能特点
- **相似照片分组**: 自动检测并分组相似的照片,帮助用户快速找到并整理重复照片
- **人物照片识别**: 智能识别包含人物的照片
- **屏幕截图识别**: 自动归类所有屏幕截图
- **模糊照片检测**: 识别质量不佳的模糊照片
- **实时处理进度**: 通过流(Stream)提供实时的分类进度和结果更新
## 安装
将以下内容添加到您项目的 `pubspec.yaml` 文件中:
```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` 文件中添加以下权限描述:
调用分类器方法前请确保获取了相应的相册权限
```xml
NSPhotoLibraryUsageDescription
需要访问照片库以进行照片分类
```
## 使用方法
### 基本用法
```dart
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
```dart
await classifier.configureClassifier(
batchSize: 100,
maxConcurrentProcessing: 2,
similarityThreshold: 0.8,
);
```
## 完整示例
查看 [example](http://git.atmob.com/Groot/clean_pro_photo_classifier_plugin/src/master/example) 目录获取完整的示例应用。
## 实现原理
该插件使用视觉处理算法对照片进行分析,通过比较图像特征向量实现相似照片的分组,使用机器学习模型识别人物照片、屏幕截图和模糊图像。
## 性能优势
在iPhone 12上对1686张相册图片的测试对比中,相比`Clean Pro` `v1.04`版本:
| 性能指标 | 旧版本 | 新版本 | 提升倍率 |
|---------|-------|-------|---------|
| 首屏加载时间 | 44.76秒 | 1.27秒 | **35.2倍** |
| 全分类完成时间 | 76.22秒 | 10.93秒 | **7.0倍** |
通过算法优化和并行处理,大幅提升了分类速度,同时保持了高准确度的分类结果,为用户提供更流畅的照片管理体验。
## 贡献
欢迎提交问题和功能请求!要贡献代码,请先创建一个issue讨论您想要更改的内容。
## 许可
该项目采用MIT许可证 - 详情请参阅 [LICENSE](LICENSE) 文件