From b8dd969cb1a25c30e30299fb7951ddd59a4a7a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Mon, 7 Sep 2026 10:11:36 +0800 Subject: [PATCH] 1 --- flutter_app/lib/annotate/annotate_api.dart | 260 +++++++ .../lib/annotate/annotate_tasks_screen.dart | 197 +++++ .../lib/annotate/annotator_screen.dart | 376 +++++++++ flutter_app/lib/container.dart | 3 + flutter_app/lib/home/home_screen.dart | 25 +- server/README.md | 34 +- server/biz/consts/consts.go | 38 + server/biz/controller/admin.go | 37 + server/biz/controller/annotate.go | 47 ++ server/biz/dao/annotate_record.go | 264 +++++++ server/biz/dao/annotate_task.go | 114 +++ server/biz/dao/dataset.go | 26 +- server/biz/dao/dataset_image.go | 110 ++- server/biz/dao/license.go | 25 + server/biz/dao/reward_log.go | 64 ++ server/biz/model/dto/annotate.go | 204 +++++ server/biz/model/dto/training.go | 45 +- server/biz/model/entity/annotate_record.go | 20 + server/biz/model/entity/annotate_task.go | 13 + server/biz/model/entity/dataset_image.go | 18 +- server/biz/model/entity/license.go | 14 +- server/biz/model/entity/reward_log.go | 12 + server/biz/service/annotate.go | 724 ++++++++++++++++++ server/biz/service/dataset.go | 119 +-- server/biz/service/label_task.go | 115 +-- server/biz/service/training.go | 3 + .../biz/service/workspace/observer-latest.apk | 1 + server/config.yml | 11 + server/data/observer.db | Bin 1126400 -> 2211840 bytes server/main.go | 2 +- server/技术设计.md | 14 +- server_admin/src/views/DatasetDetail.vue | 329 +++++++- server_admin/src/views/Datasets.vue | 156 ++++ 33 files changed, 3247 insertions(+), 173 deletions(-) create mode 100644 flutter_app/lib/annotate/annotate_api.dart create mode 100644 flutter_app/lib/annotate/annotate_tasks_screen.dart create mode 100644 flutter_app/lib/annotate/annotator_screen.dart create mode 100644 server/biz/controller/annotate.go create mode 100644 server/biz/dao/annotate_record.go create mode 100644 server/biz/dao/annotate_task.go create mode 100644 server/biz/dao/reward_log.go create mode 100644 server/biz/model/dto/annotate.go create mode 100644 server/biz/model/entity/annotate_record.go create mode 100644 server/biz/model/entity/annotate_task.go create mode 100644 server/biz/model/entity/reward_log.go create mode 100644 server/biz/service/annotate.go create mode 100644 server/biz/service/workspace/observer-latest.apk diff --git a/flutter_app/lib/annotate/annotate_api.dart b/flutter_app/lib/annotate/annotate_api.dart new file mode 100644 index 0000000..3bc151a --- /dev/null +++ b/flutter_app/lib/annotate/annotate_api.dart @@ -0,0 +1,260 @@ +import 'dart:convert'; +import 'dart:io' show Platform; + +import 'package:cupertino_http/cupertino_http.dart'; +import 'package:flutter/foundation.dart' show kIsWeb; +import 'package:http/http.dart' as http; + +import '../auth/session_store.dart'; +import '../config/app_config.dart'; + +/// 标注众包 API 客户端(契约见 server/README.md「标注众包」)。 +/// 异常语义同 OrderApi:失败抛 AnnotateApiException,登录失效抛 SessionExpired。 +class AnnotateApiException implements Exception { + final String message; + const AnnotateApiException(this.message); + + @override + String toString() => message; +} + +class SessionExpiredException extends AnnotateApiException { + const SessionExpiredException() : super('登录已失效,请重新登录'); +} + +/// 众包任务条目 +class AnnotateTaskInfo { + final int id; + final String name; + final String datasetName; + final String species; + final int poolRemain; + + const AnnotateTaskInfo({ + required this.id, + required this.name, + required this.datasetName, + required this.species, + required this.poolRemain, + }); + + factory AnnotateTaskInfo.fromJson(Map j) => AnnotateTaskInfo( + id: (j['id'] as num).toInt(), + name: (j['name'] as String?) ?? '', + datasetName: (j['datasetName'] as String?) ?? '', + species: (j['species'] as String?) ?? '', + poolRemain: (j['poolRemain'] as num?)?.toInt() ?? 0, + ); +} + +/// 我的标注统计(进度/奖励/冻结) +class AnnotateStats { + final int submittedTotal; + final int approved; + final int rejected; + final double approveRatio; + final int progressDone; + final int rewardPerImages; + final int rewardMinutes; + final int totalEarnedMinutes; + final int todayEarnedMinutes; + final int dailyCapMinutes; + final DateTime? frozenUntil; + final DateTime? expiresAt; + + const AnnotateStats({ + required this.submittedTotal, + required this.approved, + required this.rejected, + required this.approveRatio, + required this.progressDone, + required this.rewardPerImages, + required this.rewardMinutes, + required this.totalEarnedMinutes, + required this.todayEarnedMinutes, + required this.dailyCapMinutes, + required this.frozenUntil, + required this.expiresAt, + }); + + bool get frozen => frozenUntil != null && frozenUntil!.isAfter(DateTime.now()); + + factory AnnotateStats.fromJson(Map j) => AnnotateStats( + submittedTotal: (j['submittedTotal'] as num?)?.toInt() ?? 0, + approved: (j['approved'] as num?)?.toInt() ?? 0, + rejected: (j['rejected'] as num?)?.toInt() ?? 0, + approveRatio: (j['approveRatio'] as num?)?.toDouble() ?? 1, + progressDone: (j['progressDone'] as num?)?.toInt() ?? 0, + rewardPerImages: (j['rewardPerImages'] as num?)?.toInt() ?? 10, + rewardMinutes: (j['rewardMinutes'] as num?)?.toInt() ?? 30, + totalEarnedMinutes: (j['totalEarnedMinutes'] as num?)?.toInt() ?? 0, + todayEarnedMinutes: (j['todayEarnedMinutes'] as num?)?.toInt() ?? 0, + dailyCapMinutes: (j['dailyCapMinutes'] as num?)?.toInt() ?? 120, + frozenUntil: j['frozenUntil'] == null + ? null + : DateTime.tryParse(j['frozenUntil'] as String), + expiresAt: j['expiresAt'] == null + ? null + : DateTime.tryParse(j['expiresAt'] as String), + ); +} + +/// 领取到的单张图 +class AnnotateClaimImage { + final int imageId; + final String url; // 相对路径,需拼 baseUrl;访问需 Bearer 头 + final int width; + final int height; + + const AnnotateClaimImage({ + required this.imageId, + required this.url, + required this.width, + required this.height, + }); + + factory AnnotateClaimImage.fromJson(Map j) => + AnnotateClaimImage( + imageId: (j['imageId'] as num).toInt(), + url: (j['url'] as String?) ?? '', + width: (j['width'] as num?)?.toInt() ?? 0, + height: (j['height'] as num?)?.toInt() ?? 0, + ); +} + +/// 提交结果(是否触发奖励发放) +class AnnotateSubmitResult { + final bool granted; + final int minutes; + final int todayEarnedMinutes; + final int progressDone; + + const AnnotateSubmitResult({ + required this.granted, + required this.minutes, + required this.todayEarnedMinutes, + required this.progressDone, + }); + + factory AnnotateSubmitResult.fromJson(Map j) => + AnnotateSubmitResult( + granted: j['granted'] == true, + minutes: (j['minutes'] as num?)?.toInt() ?? 0, + todayEarnedMinutes: (j['todayEarnedMinutes'] as num?)?.toInt() ?? 0, + progressDone: (j['progressDone'] as num?)?.toInt() ?? 0, + ); +} + +class AnnotateApi { + final String baseUrl; + final SessionStore sessionStore; + final http.Client _client; + + // iOS 本地网络 socket 拦截绕行,同 OrderApi(见其注释) + AnnotateApi({String? baseUrl, required this.sessionStore, http.Client? client}) + : baseUrl = baseUrl ?? AppConfig.apiBaseUrl, + _client = client ?? _defaultHttpClient(); + + static http.Client _defaultHttpClient() { + if (!kIsWeb && Platform.isIOS) { + return CupertinoClient.defaultSessionConfiguration(); + } + return http.Client(); + } + + /// 可领任务列表 + 我的统计 + Future<(List, AnnotateStats)> tasks() async { + final json = await _get('/api/v1/annotate/tasks'); + final list = (json['list'] as List? ?? []) + .map((e) => AnnotateTaskInfo.fromJson((e as Map).cast())) + .toList(); + final stats = AnnotateStats.fromJson( + ((json['stats'] as Map?) ?? const {}).cast()); + return (list, stats); + } + + /// 领取一批标注图片 + Future> claim(int taskId) async { + final json = await _post( + '/api/v1/annotate/claim', jsonEncode({'taskId': taskId})); + return (json['images'] as List? ?? []) + .map((e) => + AnnotateClaimImage.fromJson((e as Map).cast())) + .toList(); + } + + /// 提交单张标注(boxes 元素:{class,cx,cy,w,h,confidence},归一化坐标) + Future submit( + int imageId, List> boxes) async { + final json = await _post( + '/api/v1/annotate/submit', jsonEncode({'imageId': imageId, 'boxes': boxes})); + return AnnotateSubmitResult.fromJson(json); + } + + /// 我的统计 + Future me() async { + final json = await _get('/api/v1/annotate/me'); + return AnnotateStats.fromJson( + ((json['stats'] as Map?) ?? const {}).cast()); + } + + /// 图片完整 URL(Image.network 用,需带 Bearer 头) + Uri imageUrl(String relative) => Uri.parse('$baseUrl$relative'); + + /// 图片请求头(标注器 Image.network 加载用) + Future> imageHeaders() => _authHeaders(); + + Future> _authHeaders() async { + final token = await sessionStore.readToken(); + if (token == null || token.isEmpty) { + throw const SessionExpiredException(); + } + return {'Authorization': 'Bearer $token'}; + } + + Future> _get(String path) async { + try { + final res = await _client + .get(Uri.parse('$baseUrl$path'), headers: await _authHeaders()) + .timeout(const Duration(seconds: 30)); + return _decode(res); + } catch (e) { + if (e is AnnotateApiException) rethrow; + throw AnnotateApiException('网络请求失败: $e'); + } + } + + Future> _post(String path, String body) async { + try { + final res = await _client + .post(Uri.parse('$baseUrl$path'), + headers: { + 'Content-Type': 'application/json', + ...await _authHeaders(), + }, + body: body) + .timeout(const Duration(seconds: 30)); + return _decode(res); + } catch (e) { + if (e is AnnotateApiException) rethrow; + throw AnnotateApiException('网络请求失败: $e'); + } + } + + Map _decode(http.Response res) { + final Map json; + try { + json = jsonDecode(res.body) as Map; + } catch (_) { + throw AnnotateApiException('服务端响应异常 (${res.statusCode})'); + } + if (res.statusCode != 200 || json['code'] != 0) { + final message = json['message'] as String? ?? '服务端错误 (${res.statusCode})'; + if (json['code'] == 61) { + throw const SessionExpiredException(); + } + throw AnnotateApiException(message); + } + return json['data'] as Map; + } +} diff --git a/flutter_app/lib/annotate/annotate_tasks_screen.dart b/flutter_app/lib/annotate/annotate_tasks_screen.dart new file mode 100644 index 0000000..c836735 --- /dev/null +++ b/flutter_app/lib/annotate/annotate_tasks_screen.dart @@ -0,0 +1,197 @@ +import 'package:flutter/material.dart'; + +import 'annotate_api.dart'; +import 'annotator_screen.dart'; + +String _fmt(DateTime t) { + String p(int n) => n.toString().padLeft(2, '0'); + return '${t.month}/${t.day} ${p(t.hour)}:${p(t.minute)}'; +} + +/// 标注赚时长首页:我的统计(进度/今日已得/冻结态)+ 可领任务列表。 +/// 领取后进入标注器逐张画框提交,提交满 [AnnotateStats.rewardPerImages] 张自动到账时长。 +class AnnotateTasksScreen extends StatefulWidget { + final AnnotateApi api; + + const AnnotateTasksScreen({super.key, required this.api}); + + @override + State createState() => _AnnotateTasksScreenState(); +} + +class _AnnotateTasksScreenState extends State { + late Future<(List, AnnotateStats)> _future; + bool _claiming = false; + + @override + void initState() { + super.initState(); + _future = widget.api.tasks(); + } + + void _reload() { + setState(() => _future = widget.api.tasks()); + } + + Future _claim(AnnotateTaskInfo task) async { + if (_claiming) return; + setState(() => _claiming = true); + try { + final images = await widget.api.claim(task.id); + if (!mounted) return; + if (images.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('任务池暂时没有可领取的图片,稍后再来'))); + _reload(); + return; + } + final earned = await Navigator.of(context).push(MaterialPageRoute( + builder: (_) => AnnotatorScreen(api: widget.api, task: task, images: images), + )); + if (earned == true) _reload(); // 本批有提交:回列表刷新进度/奖励 + } on SessionExpiredException { + if (mounted) _sessionExpired(); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text('$e'.replaceFirst('Exception: ', '')))); + } + } finally { + if (mounted) setState(() => _claiming = false); + } + } + + void _sessionExpired() { + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar(content: Text('登录已失效,请重新登录'))); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('标注赚时长')), + body: FutureBuilder<(List, AnnotateStats)>( + future: _future, + builder: (context, snap) { + if (snap.connectionState != ConnectionState.done) { + return const Center(child: CircularProgressIndicator()); + } + if (snap.hasError) { + return Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text('加载失败:${snap.error}'.replaceFirst('Exception: ', '')), + const SizedBox(height: 12), + FilledButton(onPressed: _reload, child: const Text('重试')), + ], + ), + ); + } + final (tasks, stats) = snap.data!; + return RefreshIndicator( + onRefresh: () async => _reload(), + child: ListView( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16), + children: [ + _StatsCard(stats: stats), + const SizedBox(height: 16), + Text('可领任务', style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 8), + if (tasks.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('暂无可领任务,敬请期待')), + ) + else + ...tasks.map((t) => Card( + margin: const EdgeInsets.only(bottom: 10), + child: ListTile( + title: Text(t.name, + style: const TextStyle(fontWeight: FontWeight.w600)), + subtitle: Text( + '物种:${t.species.isEmpty ? t.datasetName : t.species} · 池余量 ${t.poolRemain} 张'), + trailing: FilledButton( + onPressed: _claiming || stats.frozen || t.poolRemain <= 0 + ? null + : () => _claim(t), + child: const Text('领取'), + ), + ), + )), + ], + ), + ); + }, + ), + ); + } +} + +class _StatsCard extends StatelessWidget { + final AnnotateStats stats; + + const _StatsCard({required this.stats}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Card( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.emoji_events, + color: Colors.amber.shade700, size: 28), + const SizedBox(width: 8), + Text('标 ${stats.rewardPerImages} 张得 ${stats.rewardMinutes} 分钟', + style: theme.textTheme.titleMedium + ?.copyWith(fontWeight: FontWeight.w600)), + ], + ), + const SizedBox(height: 12), + LinearProgressIndicator( + value: stats.rewardPerImages <= 0 + ? 0 + : (stats.progressDone % stats.rewardPerImages) / + stats.rewardPerImages, + ), + const SizedBox(height: 6), + Text( + '本档进度 ${stats.progressDone}/${stats.rewardPerImages} · 今日已得 ${stats.todayEarnedMinutes}/${stats.dailyCapMinutes} 分钟 · 累计 ${stats.totalEarnedMinutes} 分钟', + style: theme.textTheme.bodySmall?.copyWith(color: Colors.grey.shade600), + ), + Text( + '通过 ${stats.approved} / 拒绝 ${stats.rejected}(通过率 ${(stats.approveRatio * 100).toStringAsFixed(0)}%)', + style: theme.textTheme.bodySmall?.copyWith(color: Colors.grey.shade600), + ), + if (stats.frozen) ...[ + const SizedBox(height: 8), + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: Colors.red.shade50, + borderRadius: BorderRadius.circular(8), + ), + child: Row(children: [ + const Icon(Icons.block, color: Colors.red, size: 20), + const SizedBox(width: 8), + Expanded( + child: Text( + '标注质量未达标,资格冻结中(${_fmt(stats.frozenUntil!)} 解冻)', + style: const TextStyle(color: Colors.red, fontSize: 13), + ), + ), + ]), + ), + ], + ], + ), + ), + ); + } +} diff --git a/flutter_app/lib/annotate/annotator_screen.dart b/flutter_app/lib/annotate/annotator_screen.dart new file mode 100644 index 0000000..9e67aff --- /dev/null +++ b/flutter_app/lib/annotate/annotator_screen.dart @@ -0,0 +1,376 @@ +import 'package:flutter/material.dart'; + +import 'annotate_api.dart'; + +/// 标注器:逐张画框提交。交互:空白处拖拽画框、点框选中(高亮)、 +/// 撤销/删除选中;每张提交进「待审核」,满 rewardPerImages 张自动到账时长。 +class AnnotatorScreen extends StatefulWidget { + final AnnotateApi api; + final AnnotateTaskInfo task; + final List images; + + const AnnotatorScreen({ + super.key, + required this.api, + required this.task, + required this.images, + }); + + @override + State createState() => _AnnotatorScreenState(); +} + +/// 归一化框(cx,cy 中心 + w,h,0~1,同服务端 AdminLabelBox) +class _NormBox { + double cx; + double cy; + double w; + double h; + _NormBox(this.cx, this.cy, this.w, this.h); + + bool hit(Offset p) => + p.dx >= cx - w / 2 && p.dx <= cx + w / 2 && p.dy >= cy - h / 2 && p.dy <= cy + h / 2; +} + +class _AnnotatorScreenState extends State { + int _index = 0; + final List<_NormBox> _boxes = []; + int? _selected; + Offset? _dragStart; // 拖拽画框进行中(归一化坐标) + Offset? _dragCur; + bool _submitting = false; + bool _earnedThisBatch = false; + + AnnotateClaimImage get _current => widget.images[_index]; + + void _clamp(_NormBox b) { + // 边界钳制 + 防越界(归一化 0~1,同服务端校验) + b.cx = b.cx.clamp(0.0, 1.0); + b.cy = b.cy.clamp(0.0, 1.0); + b.w = b.w.clamp(0.001, 1.0); + b.h = b.h.clamp(0.001, 1.0); + } + + void _onPanStart(DragStartDetails d) { + _dragStart = d.localPosition; + _dragCur = d.localPosition; + setState(() {}); + } + + void _onPanUpdate(DragUpdateDetails d) { + _dragCur = d.localPosition; + setState(() {}); + } + + void _onPanEnd(DragEndDetails d) { + final s = _dragStart; + final e = _dragCur; + _dragStart = null; + _dragCur = null; + if (s == null || e == null) { + setState(() {}); + return; + } + final dx = (e.dx - s.dx).abs(); + final dy = (e.dy - s.dy).abs(); + if (dx < 8 || dy < 8) { + setState(() {}); // 过小视为误触 + return; + } + final box = _NormBox( + (s.dx + e.dx) / 2, + (s.dy + e.dy) / 2, + dx, + dy, + ); + final size = _canvasSize; + if (size == null || size.width <= 0 || size.height <= 0) { + setState(() {}); + return; + } + box.cx /= size.width; + box.cy /= size.height; + box.w /= size.width; + box.h /= size.height; + _clamp(box); + setState(() { + _boxes.add(box); + _selected = _boxes.length - 1; + }); + } + + Size? _canvasSize; + + void _onTapUp(TapUpDetails d) { + final p = d.localPosition; + final size = _canvasSize; + if (size == null) return; + final n = Offset(p.dx / size.width, p.dy / size.height); + int? hit; + for (var i = _boxes.length - 1; i >= 0; i--) { + if (_boxes[i].hit(n)) { + hit = i; + break; + } + } + setState(() => _selected = hit); + } + + void _deleteSelected() { + if (_selected == null) return; + setState(() { + _boxes.removeAt(_selected!); + _selected = null; + }); + } + + void _undo() { + if (_boxes.isEmpty) return; + setState(() { + _boxes.removeLast(); + _selected = null; + }); + } + + Future _submit({required bool noTarget}) async { + if (_submitting) return; + if (!noTarget && _boxes.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('请先画框,或使用「画面无目标」提交'))); + return; + } + setState(() => _submitting = true); + try { + final payload = noTarget + ? >[] + : _boxes + .map((b) => { + 'class': 0, + 'cx': b.cx, + 'cy': b.cy, + 'w': b.w, + 'h': b.h, + 'confidence': 1, + }) + .toList(); + final res = await widget.api.submit(_current.imageId, payload); + if (res.granted) _earnedThisBatch = true; + if (!mounted) return; + if (res.granted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text( + '恭喜!累计提交满档,${res.minutes} 分钟时长已到账(今日已得 ${res.todayEarnedMinutes} 分钟)'), + backgroundColor: Colors.green, + )); + } + _next(); + } on SessionExpiredException { + if (mounted) Navigator.of(context).pop(false); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text('$e'.replaceFirst('Exception: ', '')))); + } + } finally { + if (mounted) setState(() => _submitting = false); + } + } + + void _next() { + if (_index + 1 >= widget.images.length) { + // 本批完成:回任务列表刷新进度 + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text(_earnedThisBatch ? '本批完成,奖励已到账' : '本批完成,继续加油!'))); + Navigator.of(context).pop(true); + return; + } + setState(() { + _index++; + _boxes.clear(); + _selected = null; + _dragStart = null; + _dragCur = null; + }); + } + + @override + Widget build(BuildContext context) { + final img = _current; + final aspect = + img.width > 0 && img.height > 0 ? img.width / img.height : 4 / 3; + return Scaffold( + appBar: AppBar( + title: Text('${widget.task.name}(${_index + 1}/${widget.images.length})'), + ), + body: SafeArea( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(12), + child: FutureBuilder>( + future: widget.api.imageHeaders(), + builder: (context, snap) { + final headers = snap.data ?? const {}; + return LayoutBuilder(builder: (context, constraints) { + final maxW = constraints.maxWidth; + final maxH = constraints.maxHeight.isInfinite + ? MediaQuery.of(context).size.height * 0.55 + : constraints.maxHeight; + var w = maxW; + var h = w / aspect; + if (h > maxH) { + h = maxH; + w = h * aspect; + } + _canvasSize = Size(w, h); + return Center( + child: GestureDetector( + onPanStart: _onPanStart, + onPanUpdate: _onPanUpdate, + onPanEnd: _onPanEnd, + onTapUp: _onTapUp, + child: Stack( + children: [ + SizedBox( + width: w, + height: h, + child: Image.network( + widget.api.imageUrl(img.url).toString(), + headers: headers, + fit: BoxFit.fill, + loadingBuilder: (c, child, progress) => + progress == null + ? child + : const Center( + child: CircularProgressIndicator()), + errorBuilder: (c, e, st) => const Center( + child: Text('图片加载失败', + style: TextStyle(color: Colors.red))), + ), + ), + Positioned.fill( + child: CustomPaint( + painter: _BoxesPainter( + boxes: _boxes, + selected: _selected, + dragStart: _dragStart == null + ? null + : Offset(_dragStart!.dx / w, + _dragStart!.dy / h), + dragCur: _dragCur == null + ? null + : Offset( + _dragCur!.dx / w, _dragCur!.dy / h), + ), + ), + ), + ], + ), + ), + ); + }); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + TextButton.icon( + onPressed: _boxes.isEmpty ? null : _undo, + icon: const Icon(Icons.undo), + label: const Text('撤销'), + ), + TextButton.icon( + onPressed: _selected == null ? null : _deleteSelected, + icon: const Icon(Icons.delete_outline), + label: const Text('删除选中'), + ), + Text( + '${_boxes.length} 框', + style: Theme.of(context).textTheme.bodyMedium, + ), + ], + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: _submitting ? null : () => _submit(noTarget: true), + child: const Text('画面无目标'), + ), + ), + const SizedBox(width: 12), + Expanded( + flex: 2, + child: FilledButton.icon( + onPressed: _submitting ? null : () => _submit(noTarget: false), + icon: _submitting + ? const SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator(strokeWidth: 2)) + : const Icon(Icons.check), + label: Text(_submitting + ? '提交中…' + : '提交${_boxes.isEmpty ? '' : '(${_boxes.length} 框)'}'), + ), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +class _BoxesPainter extends CustomPainter { + final List<_NormBox> boxes; + final int? selected; + final Offset? dragStart; // 归一化 + final Offset? dragCur; + + _BoxesPainter({ + required this.boxes, + required this.selected, + required this.dragStart, + required this.dragCur, + }); + + @override + void paint(Canvas canvas, Size size) { + final border = Paint() + ..style = PaintingStyle.stroke + ..strokeWidth = 2; + for (var i = 0; i < boxes.length; i++) { + final b = boxes[i]; + border.color = i == selected ? Colors.orange : Colors.green; + canvas.drawRect( + Rect.fromLTWH((b.cx - b.w / 2) * size.width, (b.cy - b.h / 2) * size.height, + b.w * size.width, b.h * size.height), + border, + ); + } + final s = dragStart; + final e = dragCur; + if (s != null && e != null) { + border.color = Colors.blue; + canvas.drawRect( + Rect.fromPoints(Offset(s.dx * size.width, s.dy * size.height), + Offset(e.dx * size.width, e.dy * size.height)), + border, + ); + } + } + + @override + bool shouldRepaint(covariant _BoxesPainter old) => + old.boxes != boxes || old.selected != selected || old.dragCur != dragCur; +} diff --git a/flutter_app/lib/container.dart b/flutter_app/lib/container.dart index 57d5a3a..ed22188 100644 --- a/flutter_app/lib/container.dart +++ b/flutter_app/lib/container.dart @@ -1,3 +1,4 @@ +import 'annotate/annotate_api.dart'; import 'auth/auth_view_model.dart'; import 'auth/session_store.dart'; import 'home/home_view_model.dart'; @@ -15,6 +16,7 @@ class AppContainer { late final AuthViewModel authViewModel; late final HomeViewModel homeViewModel; late final PaywallViewModel paywallViewModel; + late final AnnotateApi annotateApi; AppContainer() { sessionStore = SessionStore(); @@ -31,5 +33,6 @@ class AppContainer { PayChannel.alipay: AlipayService(orderApi: orderApi), }, ); + annotateApi = AnnotateApi(sessionStore: sessionStore); } } diff --git a/flutter_app/lib/home/home_screen.dart b/flutter_app/lib/home/home_screen.dart index 7a19ea8..dd46dc8 100644 --- a/flutter_app/lib/home/home_screen.dart +++ b/flutter_app/lib/home/home_screen.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../annotate/annotate_tasks_screen.dart'; import '../auth/session_store.dart'; import '../config/app_version.dart'; +import '../container.dart'; import 'home_view_model.dart'; /// 主界面:当前账号到期时间 + 搜索按钮(强制服务端校验后进相机)+ 充值入口 @@ -49,6 +51,14 @@ class _HomeScreenState extends State { if (mounted) context.read().refresh(); } + /// 标注赚时长:处理众包标注任务获取使用时长 + Future _onAnnotate() async { + final api = context.read().annotateApi; + await Navigator.of(context).push(MaterialPageRoute( + builder: (_) => AnnotateTasksScreen(api: api), + )); + } + Future _toLogin() async { final container = context.read(); await container.clear(); @@ -148,9 +158,20 @@ class _HomeScreenState extends State { SizedBox( height: 52, child: OutlinedButton.icon( + onPressed: _onAnnotate, + icon: const Icon(Icons.edit_note), + label: const Text('标注赚时长', + style: TextStyle(fontSize: 16)), + ), + ), + const SizedBox(height: 12), + SizedBox( + height: 44, + child: TextButton.icon( onPressed: _onRecharge, - icon: const Icon(Icons.payment), - label: const Text('充值', style: TextStyle(fontSize: 16)), + icon: const Icon(Icons.payment, size: 18), + label: + const Text('充值', style: TextStyle(fontSize: 14)), ), ), if (vm.error != null && vm.license != null) ...[ diff --git a/server/README.md b/server/README.md index 593e140..80502d2 100644 --- a/server/README.md +++ b/server/README.md @@ -11,14 +11,15 @@ | 支付回调 | 微信支付 / 支付宝异步回调验签落授权(`/api/v1/payment` 分组,按渠道应答格式直返,不做统一包装) | | 订单确认 | 客户端支付成功后 `POST /api/v1/orders/{orderId}/confirm` 幂等通知,加速授权刷新 | | 授权查询 | `GET /api/v1/license`(Bearer token)返回授权状态,App 识别入口强制服务端校验 | +| 标注众包赚时长 | App 用户处理管理端下发的标注任务获取使用时长:任务 = 管理端**勾选的具体图片集合**(图片粒度下发,2026-09-07;已下发图即从「未标注」tab 消失,停用任务释放未领取图回池),每次领取 10 张(锁定向、超时自动释放、已处理过的图不再分配),手机上画框提交 → 图片进「待审核」;每有效提交 10 张**即时到账 30 分钟**(license 到期时间分钟级顺延),**每日上限 2 小时**;质量惩罚:审核通过比例 <80%(已审核样本 ≥5)自动冻结领取资格 24 小时(时间戳对比天然自动解冻、统计重新累计),管理端可手动解冻;服务端 `annotate_record` 记录每用户每张图的处理明细(领取/提交快照/审核结果) | | 套餐 | `config.yml` `plans` 节点配置三档套餐(改价 = 改配置重启),价格**整数分**(1000 / 5600 / 18000) | | 后台管理端 | `server_admin/`(Vue3 + Element Plus)管理页面:订单查询、账号/授权管理(手动授权/撤销)、App 版本管理;构建产物由后端 `/admin/` 托管,登录页输入 token 后以 `X-Admin-Token` 头鉴权(`config.yml admin.token`) | | 版本管理 | 后台管理端上传 Android APK + 更新说明,APK 存服务器 `app.apkDir`(默认 `./workspace/`,与 `./data` 平级、挂载持久化)**固定文件名 `observer-latest.apk`,上传即覆盖,目录永远只保留最新一个文件**;**版本号从文件名识别**:文件须命名为 `observer-x.y.z.apk`(Flutter 打包产物即此命名,版本号取自 pubspec);客户端启动时 `GET /api/v1/app/update` 检查更新:服务器版本高于本地版本即弹更新提示(不可跳过)。**仅 Android 检查,iOS 不做版本下发**(iOS 走 App Store 自行更新)。版本记录可删除:删最新版本联动删除 APK 文件,删历史版本仅删记录 | -| 数据训练(唯一入口) | 后台管理端「数据训练」一个菜单承载数据集全流程:**数据集卡片列表**(封面图/描述/图片数/已标注数/**训练状态徽标**),**卡片下方直接展示训练任务进度条与状态**(无独立训练页);详情页为**图片与标注一体视图**:分页(每页 20 条)逐行「原图 ‖ 标注图」对照展示;**图片入库(手动上传/AI 生成)自动触发 RF-DETR 四级漏斗标注(全图扫描→空检切片扫描→VLM 提议候选区精修,见技术设计.md「预标注四级漏斗」)**,进度条展示在页顶;页顶另有「全量标注」按钮可手动重标全部图片(覆盖各图已有标注);点击原图/标注图弹窗放大,弹窗为**审核视图(不做手动画框)**:点击框选中,列表可确认疑似框/删除误检框/清空并保存——AI 自动标注结果直接作为标注,人工仅审核确认;封面(上传/生成统一 1248x704 转 jpg + UUID 命名)/**描述**/AI 生成图片(provider 抽象:dashscope 通义万相付费 API / localai 训练机 local-ai qwen-image,`config.yml imageGen` 节点切换,见配置说明);AI 标注端点与训练机 SSH 为**全局配置,直接读 `config.yml`**(`localAi` / `training.ssh` 节点,改配置需重启服务);图片落服务器 `app.datasetDir`/`datasets/<数据集名>/`,DB 存元数据 + 标注 JSON;**数据清洗(2026-09-02)**:详情页「数据清洗」——按标注目标尺寸细档统计超配,超配桶内整图 dHash 多样性保留、其余进候选清单,执行=打「已排除训练集」标记(可恢复不删图),prepare_yolo 打包跳过 | +| 数据训练(唯一入口) | 后台管理端「数据训练」一个菜单承载数据集全流程,**双 tab(2026-09-07)**:「数据集」tab = 数据集卡片列表(封面图/描述/图片数/已标注数/**训练状态徽标**),「负样本」tab = 负样本库图片网格(上传/删除,见技术设计.md「负样本库」——训练打包时统一混入全部物种数据集);**卡片下方直接展示训练任务进度条与状态**(无独立训练页);详情页为**图片与标注一体视图**:分页(每页 20 条)逐行「原图 ‖ 标注图」对照展示;**图片不自动标注(2026-09-04 自动标注退场)**:标注唯一入口 = 勾选图片顶栏「预标」(RF-DETR 四级漏斗检测,见技术设计.md「预标注四级漏斗」),进度条展示在页顶;**预标完成进「待审核」,人工审核通过才「已标注」**(`dataset_image.review_status` 0 未标注/1 待审核/2 已审核 三态,训练集只收已审核图);点击原图/标注图弹窗放大进入标注编辑器(画框/确认/清理,保存即视为已审核);封面(上传/生成统一 1248x704 转 jpg + UUID 命名)/**描述**/AI 生成图片(provider 抽象:dashscope 通义万相付费 API / localai 训练机 local-ai qwen-image,`config.yml imageGen` 节点切换,见配置说明);AI 标注端点与训练机 SSH 为**全局配置,直接读 `config.yml`**(`localAi` / `training.ssh` 节点,改配置需重启服务);图片落服务器 `app.datasetDir`/`datasets/<数据集名>/`,DB 存元数据 + 标注 JSON;**数据清洗(2026-09-02)**:详情页「数据清洗」——按标注目标尺寸细档统计超配,超配桶内整图 dHash 多样性保留、其余进候选清单,执行=打「已排除训练集」标记(可恢复不删图),prepare_yolo 打包跳过 | | 模型训练 | 从数据集卡片「开始训练」一键触发(参数 imgsz/epochs/batch/device 默认走 `config.yml` `training` 节点,部署级配置);**双档位(2026-09-03)**:一次发起按档位各建一条任务——高识别档 s(基座 `training.model`、imgsz `training.imgsz`=1280)/ 高性能档 n(基座 `training.modelN`=yolov8n.pt、imgsz `training.imgszN`=704),请求传 `variants:["s","n"]` 限定(省略=双档;n 档配置缺失时请求报错),epochs/batch/device 双档共用,任务带 `variant` 快照;**GPU 独占排队(2026-09-03)**:并发度 1 不变——已有 running 时新任务落 `queued` 排队(不再拒绝),10s 轮询在 running 结束后自动按创建顺序晋级启动、一次一个(训练机单 GPU 串行跑多档/多数据集),取消 running=杀进程、queued=直接置失败;进度/日志/指标监控(每 epoch 粒度);训练通道 `training` 节点可配置 subprocess(与 Go 服务同机直接起 python)/ ssh(异机执行,SSH 凭据取 `config.yml` `training.ssh` 节点);训练脚本 `server/training/train_server.py`(随项目迁移,2026-08-26)参数化(task.json 传 model/imgsz),产物(best.tflite/best.pt/曲线)拉回服务器;训练收尾自动做 **tflite 产物自检**(输入/输出 shape 校验,原 `inspect_tflite.py` 逻辑内嵌脚本),自检失败任务置失败并带出原因;`dump_graph.py` 留作训练机人工深度调试 | | 模型版本与热更新 | **每数据集每档位一个模型**(2026-09-03 双档位):训练成功后一键「发布」(训练任务操作列)——tflite 已由训练成功直写最终位置:s 档 `workspace/trainings/<文件名前缀>.tflite`、n 档 `<文件名前缀>_n.tflite`(前缀空回退数据集名),发布仅落 `model_version` 记录(sha256/大小/指标/类别名,带 `variant` 档位列);版本序列每数据集全局共用 m1.0.0 递增(s/n 交替发布走同一序列,无档位独立序列),`is_latest` 按 (数据集, 档位) 各记一条——发布只清同档位旧记录,s/n 两档互不影响,目录可分别发布、分别下发。管理端**无模型管理界面**(版本记录仅支撑客户端下发)。**App 模型热更新**:`GET /api/v1/app/update` 扩展返回 `models` 目录数组,客户端独立检查,新模型下载校验替换,失败回退旧模型——模型迭代不再重打包 APK | | 模型目录与多模型推理 | `GET /api/v1/models`(登录态)返回全部数据集当前生效模型(数据集/档位 `variant` s|n/版本/类别/大小/sha256/下载地址;**每数据集最多 2 条 = s/n 两档各自的 is_latest**),下载 URL s 档 `/download/trainings/<文件名前缀>.tflite`、n 档 `/download/trainings/<文件名前缀>_n.tflite`(前缀空回退数据集名);**App 模型管理页**用户自由下载/删除/启用模型,识别时**按当前识别档位(s 高识别 / n 高性能,全局切换)加载该档位已启用模型**并行推理 + 跨模型 NMS 合并(按类别名),内置 assets 模型兜底 | -| 标注 | **图片入库自动触发**:手动上传/AI 生成成功后,新增图自动调 `config.yml` `localAi` 节点配置的 AI 端点做 RF-DETR 检测(**四级漏斗(2026-09-04)**:全图扫描→空检自动升级切片扫描→仍空 VLM 提议候选区+RF-DETR 精修→全空写空标注等人工,切片块长边/重叠/切片阈值走 `localAi.tileSize`/`tileOverlap`/`tileThreshold`,见技术设计.md「预标注四级漏斗」;`label_task` 记录进度,页顶进度条展示;**localAi 未配置 → 上传/生成接口直接报错;已有标注任务在跑(忙)→ 不报错**,当前任务成功完成后自动补标未标注图)→ 扫描结果(**重叠去重**:NMS 风格按置信度降序保留,重叠比 > `localAi.overlapThreshold` 默认 0.3 的框剔除——重叠比 = 交叠面积/两框较小面积,RF-DETR 同目标常输出一大一小两框,此判据能命中,同目标只留置信度最高者)**直接写 `dataset_image.labels_json`**(覆盖该图已有标注,即重标语义);点击弹窗放大进入**审核视图(不做手动画框)**:点击框选中,列表确认疑似框/删除误检框/清空 → 保存即整体覆写 `dataset_image.labels_json`(YOLO 归一化 JSON 数组,AI 标注直写、人工仅审核确认);`POST /admin/label-tasks` 详情页「全量标注」按钮入口(另有自动触发),可发起全量/指定图重标;自动/手动/混合并存,训练前自动整理(prepare_yolo 逻辑在服务端) | +| 标注 | **无自动标注(2026-09-04 退场,用户定案)**:上传/生成入库不触发任何检测,`localAi` 未配置不再阻断入库;标注唯一入口 = 管理端勾选图片顶栏「预标」→ `POST /admin/label-tasks`(RF-DETR **四级漏斗**:全图扫描→空检自动升级切片扫描→仍空 VLM 提议候选区+RF-DETR 精修;切片参数走 `localAi.tileSize`/`tileOverlap`/`tileThreshold`,见技术设计.md「预标注四级漏斗」;扫描结果 minIoU 重叠去重后直写 `dataset_image.labels_json`,空检出写 `[]` 且 review_status 保持未标注);**预标完成 →「待审核」(review_status=1),人工审核通过才「已标注」(=2)**,训练集打包只收已审核图(prepareYoloSet 质量闸门);工作台弹窗人工画框/确认后保存即视为已审核;管理端对待审核图批量「通过/拒绝」(拒绝 = 清标注回未标注池,并计入对应 App 用户的低质统计,见「标注众包赚时长」) | ## 架构与数据流 @@ -46,14 +47,17 @@ Flutter App ── POST /auth/register|login ─► 账号注册/登录,签发 | 表 | 说明 | 关键字段 | |---|---|---| | `payment_order` | 支付订单 | `order_id`(PK)、`phone_num`、`plan_id`、`channel`(wechat/alipay)、`amount_cents`、`status`(created/paid/closed)、`wx_trade_no`(UNIQUE)、`alipay_trade_no`(UNIQUE)、`created_at`、`paid_at` | -| `license` | 手机号账号与授权 | `phone_num`(PK)、`password`(bcrypt)、`expires_at`(未充值 NULL)、`remark`(管理端备注)、`created_at`、`updated_at` | +| `license` | 手机号账号与授权 | `phone_num`(PK)、`password`(bcrypt)、`expires_at`(未充值 NULL;标注奖励分钟级顺延)、`annotate_frozen_until`(标注低质冻结到期标记,NULL/过期=正常)、`annotate_stats_since`(通过比例统计基线,冻结时重置实现解冻后重新累计)、`remark`(管理端备注)、`created_at`、`updated_at` | | `app_version` | App 版本管理 | `id`(PK)、`version`(x.y.z, UNIQUE)、`notes`(更新说明)、`created_at`、`updated_at`(下载地址不落表:APK 固定文件 `app.apkDir`/`observer-latest.apk`,默认 `./workspace/`) | -| `dataset` | 训练数据集 | `id`(PK)、`name`(UNIQUE)、`source`(manual/ai)、`image_count`、`labeled_count`、`status`(building/synced/labeled)、`cover`(封面文件名,UUID 命名 jpg,如 `9f2a...-xx.jpg`)、`description`、`created_at`、`updated_at`(图片文件在 `app.datasetDir`/`datasets//`,DB 只存元数据;AI 标注/训练机 SSH 配置走 `config.yml` 的 `localAi` / `training.ssh` 节点);**生成参数池(创建时 VLM 自动生成,界面不维护,可 `POST /datasets/gen-pools` 重新生成)**:`gen_species`(单值=数据集物种)、`gen_tone`(单值 轮廓色词 深色/浅色)、`gen_heights`(数值 站高cm,距离感公式用)、`gen_scenes`/`gen_actions`/`gen_occlusions`(JSON 数组 各≥3条)、`gen_classes`(单值 第二标注类别名="suspect",第一类别=gen_species,训练 data.yaml names);**单物种规则:每数据集只对应一个物种(生成图片固定按数据集名),不同物种拆到不同数据集** | -| `dataset_image` | 数据集图片 | `id`(PK)、`dataset_id`、`filename`、`source`(manual/ai)、`prompt`(AI 生成图记录提示词)、`labels_json`(标注 JSON 数组:YOLO 归一化 xywh+类别+置信度,AI 自动标注与人工标注同存、人工可修改/清理,null/''/'[]'=未标注)、`clean_excluded`(0/1,2026-09-02 数据清洗排除出训练集标记,prepare_yolo 打包跳过,可恢复)、`created_at` | +| `dataset` | 训练数据集 | `id`(PK)、`name`(UNIQUE)、`source`(manual/ai/**negative**=负样本库,2026-09-07:固定保留名 `__negative__`,训练打包时混入全部物种数据集当背景学习)、`image_count`、`labeled_count`、`status`(building/synced/labeled)、`cover`(封面文件名,UUID 命名 jpg,如 `9f2a...-xx.jpg`)、`description`、`created_at`、`updated_at`(图片文件在 `app.datasetDir`/`datasets//`,DB 只存元数据;AI 标注/训练机 SSH 配置走 `config.yml` 的 `localAi` / `training.ssh` 节点);**生成参数池(创建时 VLM 自动生成,界面不维护,可 `POST /datasets/gen-pools` 重新生成)**:`gen_species`(单值=数据集物种)、`gen_tone`(单值 轮廓色词 深色/浅色)、`gen_heights`(数值 站高cm,距离感公式用)、`gen_scenes`/`gen_actions`/`gen_occlusions`(JSON 数组 各≥3条)、`gen_classes`(单值 第二标注类别名="suspect",第一类别=gen_species,训练 data.yaml names);**单物种规则:每数据集只对应一个物种(生成图片固定按数据集名),不同物种拆到不同数据集** | +| `dataset_image` | 数据集图片 | `id`(PK)、`dataset_id`、`filename`、`source`(manual/ai)、`prompt`(AI 生成图记录提示词)、`labels_json`(标注 JSON 数组:YOLO 归一化 xywh+类别+置信度,AI 预标与人工标注同存、人工可修改/清理,null/''/'[]'=无框)、`review_status`(2026-09-04 审核三态:0 未标注/1 待审核/2 已审核;预标与 App 提交→1,人工保存与审核通过→2,拒绝清标注→0;训练集只收 2)、`clean_excluded`(0/1,2026-09-02 数据清洗排除出训练集标记,prepare_yolo 打包跳过,可恢复)、`annotate_task_id`(2026-09-07 众包下发的任务占用标记,0=未下发;下发即从「未标注」tab 消失,停用任务释放未领取图回 0)、`created_at` | | `model_training` | 训练任务 | `id`(PK)、`name`、`status`(queued/running/success/failed;queued=GPU 忙排队中,2026-09-03)、`dataset_id`、`variant`(s/n 档位,default s,2026-09-03)、`imgsz`/`epochs`/`batch`/`device`(参数快照)、`current_epoch`/`total_epochs`、`metrics`(JSON)、`log_tail`、`pid`、`error`、`started_at`/`finished_at`、`created_at` | | `model_version` | 模型版本(每数据集全局共用序列) | `id`(PK)、`dataset_id`、`variant`(s/n,default s;存量行迁移为 s)、`version`(m1.0.0 递增, 同数据集 UNIQUE,s/n 交替发布共用序列)、`training_id`、`metrics`(JSON)、`labels`(JSON 类别名数组)、`sha256`、`size_bytes`、`is_latest`(按 (数据集,档位) 各记一条)、`notes`、`created_at`(模型文件不落表:发布即写 `trainings/<文件名前缀>.tflite`(s)/`<文件名前缀>_n.tflite`(n,前缀空回退数据集名),客户端固定下载,无存档回退) | | `label_task` | 标注任务 | `id`(PK)、`dataset_id`、`filenames`(JSON 选中图片列表,NULL=全量)、`status`(running/done)、`total`/`done`、`created_at`、`finished_at` | | `gen_task` | AI 生成任务(异步批量) | `id`(PK)、`dataset_id`、`status`(running/done/failed)、`total`/`done`、`error`、`created_at`、`finished_at` | +| `annotate_task` | 标注众包任务(2026-09-04;2026-09-07 图片粒度下发) | `id`(PK)、`dataset_id`、`name`、`status`(published/stopped)、`created_at`(任务图集 = `dataset_image.annotate_task_id` 占用本任务 id 的图,不落任务表) | +| `annotate_record` | 用户标注记录(2026-09-04) | `id`(PK)、`phone_num`、`task_id`、`dataset_id`(领取时冗余,详情页过滤用)、`image_id`、`labels_json`(提交快照)、`status`(pending 领取锁/submitted/approved/rejected)、`created_at`、`submitted_at`、`reviewed_at`;UNIQUE(phone_num,image_id),partial unique(image_id) WHERE status='pending' | +| `reward_log` | 标注时长发放流水(2026-09-04) | `id`(PK)、`phone_num`、`minutes`、`task_id`、`granted_at`(日上限 = 自然日求和) | 建表与迁移见 `技术设计.md`(新库直接建表;存量库以 `PRAGMA user_version` 版本化迁移)。 @@ -180,7 +184,8 @@ APK 下载引导页(静态页面,源码在 `h5/index.html`,由后端 `/dow | POST | `/admin/app-versions` | 下发新版本(multipart/form-data):`notes` + `file`(APK 文件,仅接受 `.apk`);**版本号从文件名识别**,文件须命名为 `observer-x.y.z.apk`(如 `observer-1.0.1.apk`),格式不符拒绝;版本号不可重复,APK 上传覆盖 `app.apkDir`/`observer-latest.apk`(目录永远只有一个文件);检测到新版本即强制更新 | | POST | `/admin/app-versions/delete` | 删除版本记录 `{"id":1}`:删**最新版本**时联动删除 APK 文件(客户端不再提示更新、下载 404);删历史版本只删记录不动文件 | | POST | `/admin/datasets` | 创建数据集 `{"name":"pheasant_v2","namePrefix":"pheasant","source":"manual"\|"ai","cover":"<文件名>"}`(name ≤50 字唯一,目录自动建;namePrefix=AI 生成图文件名前缀,生成图按 `<前缀>_<两位序号>.jpg` 顺序命名;物种=数据集名(单物种规则),创建时同步调 VLM(qwen3.6-35b-a3b) 自动生成物种/场景/动作/遮挡/站高/类别名等生成参数池,响应含 `poolsGenerated`/`poolError`——VLM 失败不阻断创建,参数可事后用 gen-pools 补生成;封面优先用 cover 参数(新建对话框预生成封面回传,跳过自动生成),否则参数池成功后自动生成 16:9(1248x704)封面(1 雄 1 雌并排,响应含 `coverGenerated`/`coverError`,失败可在编辑模式重新生成);模型生成图统一转 jpg 落盘) | -| GET | `/admin/datasets` | 数据集列表:`page/size` 分页,返回 `{total, list}`(含 imageCount/labeledCount/status/cover/description/**training 聚合状态**:最新训练记录的 status/currentEpoch/totalEpochs) | +| GET | `/admin/datasets` | 数据集列表:`page/size` 分页,返回 `{total, list}`(含 imageCount/labeledCount/status/cover/description/**training 聚合状态**:最新训练记录的 status/currentEpoch/totalEpochs);**排除负样本库**(source=negative,仅「负样本」tab 展示) | +| POST | `/admin/datasets/negative` | 获取负样本库(2026-09-07):不存在则自动创建(source=negative 固定名 `__negative__`),返回数据集记录;其 id 供既有 `/admin/datasets/upload`、`/admin/datasets/images`、`/admin/datasets/images/delete`、`/admin/datasets/image` 复用(负样本无标注/审核/清洗流程) | | POST | `/admin/datasets/update` | 更新数据集配置 `{"id":1,"name":"新名","namePrefix":"pheasant","description":"...","cover":"a.jpg"}`:名称(改名)/文件名前缀/描述/封面,空值字段不覆盖原值;gen_* 生成参数池不在此维护(仅 VLM 生成,见 gen-pools);改名同步迁移图片目录与模型文件,标注/训练进行中拒绝 | | POST | `/admin/datasets/gen-pools` | 重新生成数据集生成参数池 `{"datasetId":1}`:按数据集名(物种)调 VLM(qwen3.6-35b-a3b) 生成轮廓色/站高/场景/动作/遮挡并写表(覆盖旧值);失败报错保留旧值 | | POST | `/admin/datasets/images/vlm-review` | VLM 藏匿位补检 `{"datasetId":1,"imageId":5}`(两阶段标注第二阶段,**须与图像生成显存互斥**):qwen3.6-35b-a3b(+mmproj) 排除已确认框,按环境/季节/时间/天气/光线/地形/习性综合判读画面推理藏身位,追加 ≤3 个疑似框(class 1)进同一 labels_json | @@ -198,7 +203,7 @@ APK 下载引导页(静态页面,源码在 `h5/index.html`,由后端 `/dow | POST | `/admin/datasets/sync` | 同步数据集到训练机 `{"id":1}`:按 `training` 通道推送图片到训练机 `datasetDir//`(subprocess 同机 cp、ssh 异机 scp/rsync);训练启动前自动执行 | | POST | `/admin/datasets/clean/preview` | 数据清洗预览 `{"datasetId":1,"quotas":{...}}`(quotas 各档配额缺省用代码默认):按标注框高占比细档(<2/2-3/3-4/4-6/6-8/8-12/12-20/>20%)统计分布与超配量,超配桶按图内最小确认目标尺寸升序优先保留(小目标样本稀缺先保)、再整图 dHash 去近重复,其余进 `candidates`(含主/最小目标占比 + 目标数 + 实拍生成标识);返回各档分布 + 候选清单 + 已排除列表;<2% 极远档固定豁免,仅 class1 疑似图/空检 `[]` 不入清单 | | POST | `/admin/datasets/clean/apply` | 清洗执行 `{"imageIds":[1,2],"exclude":true}`:批量置/清 `clean_excluded`(排除=打标记,prepare_yolo 打包跳过;false=恢复),不删文件不删标注 | -| POST | `/admin/label-tasks` | 发起预标注 `{"datasetId":1,"filenames":["a.jpg","b.jpg"]}`(详情页「全量标注」按钮入口,图片入库亦自动触发):**filenames 缺省=全量**,指定图则只扫描选中图(全量重标/单张修补);调 `config.yml` `localAi` 配置的 AI 端点 RF-DETR 逐张推理(common 池并行,未配置报错),扫描结果做**重叠去重**(NMS 风格按置信度降序保留,重叠比 > `localAi.overlapThreshold` 默认 0.3 的框剔除,同目标只留置信度最高者)后**直写 `dataset_image.labels_json`(重跑覆盖该图标注)**,`label_task` 记录进度 | +| POST | `/admin/label-tasks` | 发起预标注 `{"datasetId":1,"filenames":["a.jpg","b.jpg"]}`(详情页勾选图片「预标」按钮入口,**2026-09-04 起为标注唯一触发方式,入库不再自动标注**):**filenames 缺省=全量**,指定图则只扫描选中图(全量重标/单张修补);调 `config.yml` `localAi` 配置的 AI 端点 RF-DETR 逐张推理(common 池并行,未配置报错),扫描结果做**重叠去重**(NMS 风格按置信度降序保留,重叠比 > `localAi.overlapThreshold` 默认 0.3 的框剔除,同目标只留置信度最高者)后**直写 `dataset_image.labels_json`(重跑覆盖该图标注)**并置 review_status=1 待审核(空检出 `[]` 保持未标注),`label_task` 记录进度 | | GET | `/admin/label-tasks` | 标注任务列表:`page/size` 分页(含 status/total/done) | | GET | `/admin/label-tasks/detail` | 标注任务详情:返回数据集全部图片 + 每张标注框(`boxes`,YOLO 归一化 xywh + 置信度 + 类别) | | POST | `/admin/label-tasks/save` | 保存单张标注 `{"datasetId":1,"filename":"a.jpg","boxes":[{"class":0,"cx":0.5,"cy":0.4,"w":0.1,"h":0.2}]}`:整体覆写该图 `labels_json`(空 boxes=清空标注),返回该数据集当前 `labeledCount` | @@ -208,6 +213,21 @@ APK 下载引导页(静态页面,源码在 `h5/index.html`,由后端 `/dow | POST | `/admin/trainings/cancel` | 取消训练 `{"id":1}`:running=杀训练进程置 failed;queued=无进程直接置 failed | | POST | `/admin/trainings/publish` | 发布为最新模型 `{"id":1,"notes":"..."}`(仅 success):读训练成功已直写的 tflite(s 档 `<文件名前缀>.tflite` / n 档 `<文件名前缀>_n.tflite`)算 sha256/大小 → 插入 `model_version`(版本号数据集内递增 m1.0.0 → m1.0.1)+ 同档位旧版 `is_latest=0`(s/n 互不影响) | | GET | `/admin/label-workbench` | 标注工作台数据 `{"datasetId":1}`:数据集全部图片 + 每张标注框(`boxes`,labels_json 全量)——无历史标注任务时详情页工作台的数据源 | +| POST | `/admin/annotate-tasks` | 下发标注任务 `{"datasetId":1,"name":"...","imageIds":[...]}`(2026-09-07 图片粒度下发):勾选的未标注图批量占用(`annotate_task_id` 写任务 id;校验属本数据集/未标注/未占用,任一非法整单拒绝),**已下发图即从「未标注」tab 消失**;同数据集已有 published 任务时拒绝 | +| GET | `/admin/annotate-tasks` | 标注任务列表:`datasetId` 可选过滤(**无独立菜单——任务面板内嵌数据训练详情页「标注任务」tab**,同 tab 还有「下发标注任务」按钮),含数据集名/池余量/各状态记录数/状态 | +| POST | `/admin/annotate-tasks/stop` | 停用任务 `{"id":1}`:整体不可再领取(已领取未提交的可继续提交);**释放未被领取过的图**(清 `annotate_task_id`,回到「未标注」tab 可再次下发) | +| POST | `/admin/annotate-review` | 批量审核 `{"imageIds":[...],"approve":true}`(详情页「待审核」tab):通过 → review_status=2;拒绝 → 清 labels_json 回未标注池 + 对应 submitted 记录置 rejected(计入该用户低质统计:通过比例 <80% 且已审核样本 ≥5 → 冻结 24h,自动解冻) | +| GET | `/admin/annotate-records` | 用户标注记录分页:`datasetId/phone/taskId/status` 过滤,每用户每张图的领取/提交快照/审核结果(**「标注记录」tab 同样内嵌详情页**) | +| POST | `/admin/annotate-unfreeze` | 手动解冻 `{"phone":"..."}`:清冻结标记与统计基线 | + +### 标注众包(App,Bearer token) + +| 接口 | 说明 | +|---|---| +| GET | `/api/v1/annotate/tasks` 可领任务列表(published + 池余量),附我的统计:今日已得时长/上限、进度(已提交 x/10)、通过比例、冻结到期时间(冻结中不可领取) | +| POST | `/api/v1/annotate/claim` 领取 `{"taskId":1}`:分配 ≤10 张未处理过的**任务下发图**(池 = 任务占用的未标注图,2026-09-07 起任务为勾选图片集合;pending 锁定,超时惰性释放;返回图片 URL + 数据集物种名) | +| POST | `/api/v1/annotate/submit` 提交 `{"imageId":1,"boxes":[...]}`:写 labels_json + review_status=1 待审核 + 记录置 submitted;每累计 10 张即时发 30 分钟(到期时间顺延),当日累计超 2 小时不再发 | +| GET | `/api/v1/annotate/me` 我的标注统计:累计提交/通过/拒绝、通过比例、累计获得时长、今日已得、冻结状态 | 管理页面由 `server_admin/` 构建产物提供,访问 `http:///admin/`。金额均为整数分,前端展示 ÷100 转元。 diff --git a/server/biz/consts/consts.go b/server/biz/consts/consts.go index 91b4e17..d200e27 100644 --- a/server/biz/consts/consts.go +++ b/server/biz/consts/consts.go @@ -13,6 +13,17 @@ const ( TableLabelTask = "label_task" TableGenTask = "gen_task" + TableAnnotateTask = "annotate_task" + TableAnnotateRecord = "annotate_record" + TableRewardLog = "reward_log" + + // dataset_image.review_status 审核三态(技术设计.md「标注审核状态机」): + // 预标/App 提交 → 待审核;人工保存/审核通过 → 已审核;拒绝清标注 → 未标注(回任务池)。 + // 不变式:review_status=0 ⟹ labels_json 无框;训练集只收 ReviewApproved + ReviewImageNone = 0 + ReviewImagePending = 1 + ReviewImageApproved = 2 + // 订单状态机 created → paid(closed 仅超时/失败关闭) OrderStatusCreated = "created" OrderStatusPaid = "paid" @@ -47,6 +58,12 @@ const ( DatasetStatusLabeled = "labeled" DatasetStatusSynced = "synced" + // 负样本库(技术设计.md「负样本库」):source=negative 的特殊数据集,统一背景样本 + // 训练打包时混入全部物种数据集(空标签 = 背景);固定保留名同是目录名, + // AdminCreateDataset 拒绝用户使用该名,AdminDeleteDataset 拒绝删除整库 + DatasetSourceNegative = "negative" + NegativeDatasetName = "__negative__" + // 标注任务状态 LabelTaskRunning = "running" LabelTaskDone = "done" @@ -75,6 +92,27 @@ const ( // L3 候选区扩大倍数(VLM 坐标偏粗,扩大裁剪给 RF-DETR 足够上下文,钳制图片边界) VlmRegionExpand = 2.0 + // 标注众包与时长激励(技术设计.md「App 标注众包与时长激励」): + // 以下为 config.yml annotateReward 缺失/非法时的回退默认值,可配项含义见 config.yml 注释 + AnnotateClaimSize = 10 // 每次领取图片数 + AnnotateClaimTimeoutHour = 2 // 领取锁超时(pending 超时视为放弃,领取时惰性释放) + AnnotateRewardPerImages = 10 // 每累计提交 N 张发一次时长 + AnnotateRewardMinutes = 30 // 每次发放分钟数(expires_at 分钟级顺延) + AnnotateDailyCapMinutes = 120 // 每日发放上限(自然日) + AnnotateFreezeRatio = 0.8 // 通过比例低于该值触发冻结 + AnnotateFreezeMinReviewed = 5 // 触发冻结判定的最小已审核样本数(防小样本误冻) + AnnotateFreezeHours = 24 // 冻结时长(annotate_frozen_until 时间戳对比天然自动解冻) + + // 众包任务状态 + AnnotateTaskPublished = "published" + AnnotateTaskStopped = "stopped" + + // 用户标注记录状态机:领取 pending → 提交 submitted → 审核 approved/rejected + AnnotateRecordPending = "pending" + AnnotateRecordSubmitted = "submitted" + AnnotateRecordApproved = "approved" + AnnotateRecordRejected = "rejected" + // 模型版本号前缀(m1.0.0),同数据集内递增 ModelVersionPrefix = "m" diff --git a/server/biz/controller/admin.go b/server/biz/controller/admin.go index 1c5c2b5..3f9f994 100644 --- a/server/biz/controller/admin.go +++ b/server/biz/controller/admin.go @@ -82,6 +82,11 @@ func (c *cAdmin) DeleteDataset(ctx context.Context, req *dto.AdminDatasetDeleteR return service.Dataset.AdminDeleteDataset(ctx, req) } +// NegativeLibrary 获取负样本库(无则创建) +func (c *cAdmin) NegativeLibrary(ctx context.Context, req *dto.AdminDatasetNegativeReq) (*dto.AdminDatasetNegativeRes, error) { + return service.Dataset.AdminNegativeLibrary(ctx, req) +} + // UploadImages 上传图片 func (c *cAdmin) UploadImages(ctx context.Context, req *dto.AdminDatasetUploadReq) (*dto.AdminDatasetUploadRes, error) { return service.Dataset.AdminUploadImages(ctx, req) @@ -219,3 +224,35 @@ func (c *cAdmin) SaveLabel(ctx context.Context, req *dto.AdminLabelSaveReq) (*dt func (c *cAdmin) VlmReview(ctx context.Context, req *dto.AdminImageVlmReviewReq) (*dto.AdminImageVlmReviewRes, error) { return service.LabelTask.AdminImageVlmReview(ctx, req) } + +// ---------- 标注众包(2026-09-04) ---------- + +// CreateAnnotateTask 下发标注任务 +func (c *cAdmin) CreateAnnotateTask(ctx context.Context, req *dto.AdminAnnotateTaskCreateReq) (*dto.AdminAnnotateTaskCreateRes, error) { + return service.Annotate.AdminCreateTask(ctx, req) +} + +// ListAnnotateTasks 标注任务列表 +func (c *cAdmin) ListAnnotateTasks(ctx context.Context, req *dto.AdminAnnotateTaskListReq) (*dto.AdminAnnotateTaskListRes, error) { + return service.Annotate.AdminListTasks(ctx, req) +} + +// StopAnnotateTask 停用标注任务 +func (c *cAdmin) StopAnnotateTask(ctx context.Context, req *dto.AdminAnnotateTaskStopReq) (*dto.AdminAnnotateTaskStopRes, error) { + return service.Annotate.AdminStopTask(ctx, req) +} + +// AnnotateReview 批量审核标注(通过/拒绝) +func (c *cAdmin) AnnotateReview(ctx context.Context, req *dto.AdminAnnotateReviewReq) (*dto.AdminAnnotateReviewRes, error) { + return service.Annotate.AdminReview(ctx, req) +} + +// ListAnnotateRecords 用户标注记录列表 +func (c *cAdmin) ListAnnotateRecords(ctx context.Context, req *dto.AdminAnnotateRecordListReq) (*dto.AdminAnnotateRecordListRes, error) { + return service.Annotate.AdminListRecords(ctx, req) +} + +// UnfreezeAnnotate 手动解冻标注资格 +func (c *cAdmin) UnfreezeAnnotate(ctx context.Context, req *dto.AdminAnnotateUnfreezeReq) (*dto.AdminAnnotateUnfreezeRes, error) { + return service.Annotate.AdminUnfreeze(ctx, req) +} diff --git a/server/biz/controller/annotate.go b/server/biz/controller/annotate.go new file mode 100644 index 0000000..02653b5 --- /dev/null +++ b/server/biz/controller/annotate.go @@ -0,0 +1,47 @@ +package controller + +import ( + "context" + + "github.com/gogf/gf/v2/net/ghttp" + + "observer-server/biz/model/dto" + "observer-server/biz/service" +) + +// cAnnotate 标注众包接口(登录态,手机号取自 token) +type cAnnotate struct{} + +var Annotate = &cAnnotate{} + +// Tasks 可领任务列表 + 我的统计 +func (c *cAnnotate) Tasks(ctx context.Context, req *dto.AnnotateTaskListReq) (*dto.AnnotateTaskListRes, error) { + return service.Annotate.AppTaskList(ctx, req) +} + +// Claim 领取标注图片 +func (c *cAnnotate) Claim(ctx context.Context, req *dto.AnnotateClaimReq) (*dto.AnnotateClaimRes, error) { + return service.Annotate.AppClaim(ctx, req) +} + +// Submit 提交标注 +func (c *cAnnotate) Submit(ctx context.Context, req *dto.AnnotateSubmitReq) (*dto.AnnotateSubmitRes, error) { + return service.Annotate.AppSubmit(ctx, req) +} + +// Me 我的标注统计 +func (c *cAnnotate) Me(ctx context.Context, req *dto.AnnotateMeReq) (*dto.AnnotateMeRes, error) { + return service.Annotate.AppMe(ctx, req) +} + +// Image 标注图片访问(直写响应体:service 校验归属返回路径,controller 输出二进制; +// 登录态鉴权,与管理端 image 端点隔离) +func (c *cAnnotate) Image(ctx context.Context, req *dto.AnnotateImageReq) (*dto.AnnotateImageRes, error) { + path, err := service.Dataset.ImageFile(ctx, req.DatasetId, req.Filename) + if err != nil { + return nil, err + } + r := ghttp.RequestFromCtx(ctx) + r.Response.ServeFile(path) + return &dto.AnnotateImageRes{}, nil +} diff --git a/server/biz/dao/annotate_record.go b/server/biz/dao/annotate_record.go new file mode 100644 index 0000000..b2e7c3c --- /dev/null +++ b/server/biz/dao/annotate_record.go @@ -0,0 +1,264 @@ +package dao + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + + "observer-server/biz/consts" + "observer-server/biz/model/entity" + "observer-server/common" +) + +// AnnotateRecord 用户标注记录表 DAO:pending 即领取锁(partial unique index 同图仅一条), +// UNIQUE(phone_num, image_id) 一人一图仅一次;拒绝不删记录(低质统计与审计依据)。 +type annotateRecordDao struct{} + +var AnnotateRecord = &annotateRecordDao{} + +func init() { + ctx := context.Background() + _, err := g.DB().Exec(ctx, `CREATE TABLE IF NOT EXISTS annotate_record ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + phone_num TEXT NOT NULL, + task_id INTEGER NOT NULL, + dataset_id INTEGER NOT NULL DEFAULT 0, + image_id INTEGER NOT NULL, + labels_json TEXT NOT NULL DEFAULT '', + status TEXT NOT NULL DEFAULT 'pending', + created_at TEXT NOT NULL, + submitted_at TEXT, + reviewed_at TEXT, + UNIQUE (phone_num, image_id) +)`) + if err != nil { + panic(err) + } + // 存量表补列(领取时冗余数据集 id,管理端详情页按数据集过滤记录) + common.EnsureColumn(ctx, consts.TableAnnotateRecord, "dataset_id", "dataset_id INTEGER NOT NULL DEFAULT 0") + // 领取锁:同一张图同时只允许一条 pending(partial unique index,SQLite 原生支持) + if _, err := g.DB().Exec(ctx, `CREATE UNIQUE INDEX IF NOT EXISTS idx_annotate_record_image_pending +ON annotate_record (image_id) WHERE status = 'pending'`); err != nil { + panic(err) + } +} + +// InsertInTx 事务内插入领取记录(锁竞争由 partial unique index 兜底,冲突即失败回滚) +func (d *annotateRecordDao) InsertInTx(ctx context.Context, tx gdb.TX, m *entity.AnnotateRecord) error { + _, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx).TX(tx).Data(g.Map{ + "phone_num": m.PhoneNum, + "task_id": m.TaskId, + "dataset_id": m.DatasetId, + "image_id": m.ImageId, + "labels_json": m.LabelsJson, + "status": m.Status, + "created_at": m.CreatedAt, + }).Insert() + return err +} + +// DeleteExpiredPending 惰性释放过期领取锁(领取时调用;pending 未产生任何标注,直接删除) +func (d *annotateRecordDao) DeleteExpiredPending(ctx context.Context, before *gtime.Time) error { + _, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("status", consts.AnnotateRecordPending). + WhereLT("created_at", before). + Delete() + return err +} + +// ListImageIdsByPhone 某用户全部记录的图片 id(领取时排除自己处理过的图,含全部状态) +func (d *annotateRecordDao) ListImageIdsByPhone(ctx context.Context, phone string) ([]int64, error) { + out, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("phone_num", phone).Fields("image_id").Array() + if err != nil { + return nil, err + } + return gconvInt64Slice(out), nil +} + +// ListPendingImageIds 当前全部领取锁的图片 id(领取时排除他人锁定的图) +func (d *annotateRecordDao) ListPendingImageIds(ctx context.Context) ([]int64, error) { + out, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("status", consts.AnnotateRecordPending).Fields("image_id").Array() + if err != nil { + return nil, err + } + return gconvInt64Slice(out), nil +} + +// ListPendingImageIdsByTask 某任务当前领取锁的图片 id(停用任务释放时保留这些图—— +// 已领取未提交的可继续提交;过期锁由调用方先经 DeleteExpiredPending 惰性清理) +func (d *annotateRecordDao) ListPendingImageIdsByTask(ctx context.Context, taskId int64) ([]int64, error) { + out, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("task_id", taskId). + Where("status", consts.AnnotateRecordPending).Fields("image_id").Array() + if err != nil { + return nil, err + } + return gconvInt64Slice(out), nil +} + +// GetMyPending 某用户在某图上的领取记录(提交校验:必须存在且为 pending) +func (d *annotateRecordDao) GetMyPending(ctx context.Context, phone string, imageId int64) (*entity.AnnotateRecord, error) { + var one *entity.AnnotateRecord + err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("phone_num", phone).Where("image_id", imageId). + Where("status", consts.AnnotateRecordPending).Scan(&one) + if err != nil { + return nil, err + } + return one, nil +} + +// MarkSubmitted 提交:写快照 + 置 submitted +func (d *annotateRecordDao) MarkSubmitted(ctx context.Context, id int64, labelsJson string, submittedAt *gtime.Time) error { + _, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx).Where("id", id). + Data(g.Map{"labels_json": labelsJson, "status": consts.AnnotateRecordSubmitted, "submitted_at": submittedAt}). + Update() + return err +} + +// MarkReviewedByImages 按图片批量审核当前提交中的记录(通过→approved / 拒绝→rejected): +// 只命中 status=submitted 的记录(历史已审核记录不动) +func (d *annotateRecordDao) MarkReviewedByImages(ctx context.Context, imageIds []int64, status string, reviewedAt *gtime.Time) error { + if len(imageIds) == 0 { + return nil + } + _, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + WhereIn("image_id", imageIds). + Where("status", consts.AnnotateRecordSubmitted). + Data(g.Map{"status": status, "reviewed_at": reviewedAt}). + Update() + return err +} + +// ListSubmittedPhonesByImages 被审核图片对应的提交用户(审核后重算通过比例用,去重) +func (d *annotateRecordDao) ListSubmittedPhonesByImages(ctx context.Context, imageIds []int64) ([]string, error) { + if len(imageIds) == 0 { + return []string{}, nil + } + out, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + WhereIn("image_id", imageIds). + Where("status", consts.AnnotateRecordSubmitted). + Fields("DISTINCT phone_num").Array() + if err != nil { + return nil, err + } + phones := make([]string, 0, len(out)) + for _, v := range out { + if s := v.String(); s != "" { + phones = append(phones, s) + } + } + return phones, nil +} + +// StatusCount 按 task_id × status 聚合的任务记录数(任务列表进度展示) +type StatusCount struct { + TaskId int64 `orm:"task_id"` + Status string `orm:"status"` + Cnt int64 `orm:"cnt"` +} + +// CountByTaskIds 多任务各状态记录数(一次 GROUP BY;IN 按 ≤100 分批由调用方保证) +func (d *annotateRecordDao) CountByTaskIds(ctx context.Context, taskIds []int64) (map[int64]map[string]int64, error) { + out := make(map[int64]map[string]int64) + if len(taskIds) == 0 { + return out, nil + } + var rows []StatusCount + err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + WhereIn("task_id", taskIds). + Fields("task_id, status, COUNT(*) AS cnt"). + Group("task_id, status").Scan(&rows) + if err != nil { + return nil, err + } + for _, r := range rows { + if out[r.TaskId] == nil { + out[r.TaskId] = make(map[string]int64) + } + out[r.TaskId][r.Status] = r.Cnt + } + return out, nil +} + +// UserStats 用户统计:累计提交数 + 审核通过/拒绝数(reviewedSince 非空时只统计其后的审核—— +// 冻结重置基线后「重新累计」语义) +type UserStats struct { + SubmittedTotal int64 + Approved int64 + Rejected int64 +} + +// CountUserStats 用户统计查询 +func (d *annotateRecordDao) CountUserStats(ctx context.Context, phone string, reviewedSince *gtime.Time) (*UserStats, error) { + stats := &UserStats{} + // 累计提交 = 已产生标注的全部记录(submitted/approved/rejected;pending 是未处理的锁不算) + n, err := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx). + Where("phone_num", phone). + WhereIn("status", []string{consts.AnnotateRecordSubmitted, consts.AnnotateRecordApproved, consts.AnnotateRecordRejected}). + Count() + if err != nil { + return nil, err + } + stats.SubmittedTotal = int64(n) + base := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx).Where("phone_num", phone) + if reviewedSince != nil { + base = base.WhereGTE("reviewed_at", reviewedSince) + } + approved, err := base.Clone().Where("status", consts.AnnotateRecordApproved).Count() + if err != nil { + return nil, err + } + rejected, err := base.Where("status", consts.AnnotateRecordRejected).Count() + if err != nil { + return nil, err + } + stats.Approved = int64(approved) + stats.Rejected = int64(rejected) + return stats, nil +} + +// PageByFilter 管理端记录分页(datasetId>0/phone 精确/taskId/status 过滤,id 倒序) +func (d *annotateRecordDao) PageByFilter(ctx context.Context, phone string, taskId, datasetId int64, status string, page, size int) ([]*entity.AnnotateRecord, int64, error) { + base := func() *gdb.Model { + m := g.DB().Model(consts.TableAnnotateRecord).Ctx(ctx) + if phone != "" { + m = m.Where("phone_num", phone) + } + if taskId > 0 { + m = m.Where("task_id", taskId) + } + if datasetId > 0 { + m = m.Where("dataset_id", datasetId) + } + if status != "" { + m = m.Where("status", status) + } + return m + } + total, err := base().Count() + if err != nil { + return nil, 0, err + } + var list []*entity.AnnotateRecord + err = base().OrderDesc("id").Limit((page-1)*size, size).Scan(&list) + if err != nil { + if common.IsNoRows(err) { + return []*entity.AnnotateRecord{}, int64(total), nil + } + return nil, 0, err + } + return list, int64(total), nil +} + +func gconvInt64Slice(vals gdb.Array) []int64 { + out := make([]int64, 0, len(vals)) + for _, v := range vals { + out = append(out, v.Int64()) + } + return out +} diff --git a/server/biz/dao/annotate_task.go b/server/biz/dao/annotate_task.go new file mode 100644 index 0000000..e385b0d --- /dev/null +++ b/server/biz/dao/annotate_task.go @@ -0,0 +1,114 @@ +package dao + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + + "observer-server/biz/consts" + "observer-server/biz/model/entity" + "observer-server/common" +) + +// AnnotateTask 标注众包任务表 DAO:管理端下发/停用,App 端只读 published。 +type annotateTaskDao struct{} + +var AnnotateTask = &annotateTaskDao{} + +func init() { + ctx := context.Background() + _, err := g.DB().Exec(ctx, `CREATE TABLE IF NOT EXISTS annotate_task ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + dataset_id INTEGER NOT NULL, + name TEXT NOT NULL, + status TEXT NOT NULL DEFAULT 'published', + created_at TEXT NOT NULL +)`) + if err != nil { + panic(err) + } +} + +// InsertInTx 事务内下发任务(与批量占用同事务,service 编排多表一致性) +func (d *annotateTaskDao) InsertInTx(ctx context.Context, tx gdb.TX, m *entity.AnnotateTask) (int64, error) { + res, err := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx).TX(tx).Data(g.Map{ + "dataset_id": m.DatasetId, + "name": m.Name, + "status": m.Status, + "created_at": m.CreatedAt, + }).Insert() + if err != nil { + return 0, err + } + return res.LastInsertId() +} + +// GetById 按主键取 +func (d *annotateTaskDao) GetById(ctx context.Context, id int64) (*entity.AnnotateTask, error) { + var one *entity.AnnotateTask + err := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx).Where("id", id).Scan(&one) + if err != nil { + return nil, err + } + return one, nil +} + +// GetPublishedByDataset 某数据集当前 published 任务(下发查重:同数据集同时只允许一个开放任务) +func (d *annotateTaskDao) GetPublishedByDataset(ctx context.Context, datasetId int64) (*entity.AnnotateTask, error) { + var one *entity.AnnotateTask + err := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx). + Where("dataset_id", datasetId). + Where("status", consts.AnnotateTaskPublished). + OrderDesc("id").Scan(&one) + if err != nil { + return nil, err + } + return one, nil +} + +// ListPublished 全部开放任务(App 任务列表) +func (d *annotateTaskDao) ListPublished(ctx context.Context) ([]*entity.AnnotateTask, error) { + var list []*entity.AnnotateTask + err := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx). + Where("status", consts.AnnotateTaskPublished). + OrderDesc("id").Scan(&list) + if err != nil { + if common.IsNoRows(err) { + return []*entity.AnnotateTask{}, nil + } + return nil, err + } + return list, nil +} + +// Page 管理端任务分页(datasetId>0 按数据集过滤——详情页 tab 内嵌展示;id 倒序) +func (d *annotateTaskDao) Page(ctx context.Context, datasetId int64, page, size int) ([]*entity.AnnotateTask, int64, error) { + base := func() *gdb.Model { + m := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx) + if datasetId > 0 { + m = m.Where("dataset_id", datasetId) + } + return m + } + total, err := base().Count() + if err != nil { + return nil, 0, err + } + var list []*entity.AnnotateTask + err = base().OrderDesc("id").Limit((page-1)*size, size).Scan(&list) + if err != nil { + if common.IsNoRows(err) { + return []*entity.AnnotateTask{}, int64(total), nil + } + return nil, 0, err + } + return list, int64(total), nil +} + +// Stop 停用任务(整体不可再领取;已领取未提交的可继续提交) +func (d *annotateTaskDao) Stop(ctx context.Context, id int64) error { + _, err := g.DB().Model(consts.TableAnnotateTask).Ctx(ctx).Where("id", id). + Data(g.Map{"status": consts.AnnotateTaskStopped}).Update() + return err +} diff --git a/server/biz/dao/dataset.go b/server/biz/dao/dataset.go index f564f10..2de9491 100644 --- a/server/biz/dao/dataset.go +++ b/server/biz/dao/dataset.go @@ -95,6 +95,22 @@ func (d *datasetDao) GetById(ctx context.Context, id int64) (*entity.Dataset, er return &e, nil } +// GetByIds 按主键批量查询(众包任务/记录组装用) +func (d *datasetDao) GetByIds(ctx context.Context, ids []int64) ([]*entity.Dataset, error) { + if len(ids) == 0 { + return []*entity.Dataset{}, nil + } + var list []*entity.Dataset + err := g.DB().Model(consts.TableDataset).Ctx(ctx).WhereIn("id", ids).Scan(&list) + if err != nil { + if common.IsNoRows(err) { + return []*entity.Dataset{}, nil + } + return nil, err + } + return list, nil +} + // GetByName 按名称查询(目录名即数据集名),不存在返回 nil func (d *datasetDao) GetByName(ctx context.Context, name string) (*entity.Dataset, error) { var e entity.Dataset @@ -217,9 +233,10 @@ func (d *datasetDao) DeleteById(ctx context.Context, id int64) error { } // PageByKeyword 数据集分页:名称模糊匹配(Like 命中目录名,数据库内仅元数据) -// 排序同 Page:序号升序,同号按创建时间倒序(id 降序) +// 排序同 Page:序号升序,同号按创建时间倒序(id 降序);负样本库不进列表(独立 tab 展示) func (d *datasetDao) PageByKeyword(ctx context.Context, keyword string, page, size int) ([]*entity.Dataset, int64, error) { - base := g.DB().Model(consts.TableDataset).Ctx(ctx).WhereLike("name", "%"+keyword+"%") + base := g.DB().Model(consts.TableDataset).Ctx(ctx).WhereLike("name", "%"+keyword+"%"). + Where("source !=", consts.DatasetSourceNegative) total, err := base.Count() if err != nil { return nil, 0, err @@ -248,9 +265,10 @@ func (d *datasetDao) ListAll(ctx context.Context) ([]*entity.Dataset, error) { return list, nil } -// Page 数据集分页:序号升序,同号按创建时间倒序(id 降序) +// Page 数据集分页:序号升序,同号按创建时间倒序(id 降序);负样本库不进列表(独立 tab 展示) func (d *datasetDao) Page(ctx context.Context, page, size int) ([]*entity.Dataset, int64, error) { - base := g.DB().Model(consts.TableDataset).Ctx(ctx) + base := g.DB().Model(consts.TableDataset).Ctx(ctx). + Where("source !=", consts.DatasetSourceNegative) total, err := base.Count() if err != nil { return nil, 0, err diff --git a/server/biz/dao/dataset_image.go b/server/biz/dao/dataset_image.go index 72dd88d..18e85e4 100644 --- a/server/biz/dao/dataset_image.go +++ b/server/biz/dao/dataset_image.go @@ -36,6 +36,16 @@ func init() { common.EnsureColumn(ctx, consts.TableDatasetImage, "labels_json", "labels_json TEXT") common.EnsureColumn(ctx, consts.TableDatasetImage, "animal_count", "animal_count INTEGER NOT NULL DEFAULT 0") common.EnsureColumn(ctx, consts.TableDatasetImage, "clean_excluded", "clean_excluded INTEGER NOT NULL DEFAULT 0") + common.EnsureColumn(ctx, consts.TableDatasetImage, "review_status", "review_status INTEGER NOT NULL DEFAULT 0") + // 存量库迁移:众包任务图片粒度下发占用标记(2026-09-07,0=未下发) + common.EnsureColumn(ctx, consts.TableDatasetImage, "annotate_task_id", "annotate_task_id INTEGER NOT NULL DEFAULT 0") + // 存量迁移(幂等):加列后既有标注统一视为已审定稿(非空框→2);上线后不变式 + // review_status=0 ⟹ labels_json 无框 恒成立(拒绝清框、提交/预标置 1、审核置 2), + // 故本 UPDATE 只会命中存量行,不会误改新数据 + if _, err := g.DB().Exec(ctx, `UPDATE dataset_image SET review_status = 2 +WHERE review_status = 0 AND labels_json IS NOT NULL AND labels_json != '' AND labels_json != '[]'`); err != nil { + panic(err) + } // 存量库迁移:删除 prompt 列(生成提示词不再存储,2026-09-02 决策) cols, err := g.DB().GetAll(ctx, "PRAGMA table_info(dataset_image)") if err != nil { @@ -94,16 +104,15 @@ func (d *datasetImageDao) ListByDataset(ctx context.Context, datasetId int64) ([ return list, nil } -// ListUnlabeledByDataset 从未扫描过的图片(labels_json 为 null 或空串;自动补标轮次用)。 -// '[]'(已自动扫描但检出为空)不在此列:空检出图重扫结果不变,若仍入池,自动补标的 -// 「排除本轮已扫图」只换子集不灭池,会乒乓死循环(2026-09-02 兔子 3 张空检出实测: -// {9}→{10,17}→{9}… 无限交替续跑,每轮白打一次 RF-DETR);空检出图仍在管理端未标注 -// tab 等人工画框,重扫走手动触发(AdminStartLabelTask 按文件名批量或全量)。 -func (d *datasetImageDao) ListUnlabeledByDataset(ctx context.Context, datasetId int64) ([]*entity.DatasetImage, error) { +// ListPoolByTask 众包任务池(技术设计.md「App 标注众包与时长激励」;2026-09-07 图片粒度下发): +// 本任务占用(annotate_task_id=taskId)且未审核未清洗排除的图;待审核(1)/已审核(2)不进池—— +// 分别等管理端审核与已定稿 +func (d *datasetImageDao) ListPoolByTask(ctx context.Context, taskId int64) ([]*entity.DatasetImage, error) { var list []*entity.DatasetImage err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). - Where("dataset_id", datasetId). - Where("labels_json IS NULL OR labels_json = ''"). + Where("annotate_task_id", taskId). + Where("review_status", consts.ReviewImageNone). + Where("clean_excluded", 0). OrderAsc("id").Scan(&list) if err != nil { if common.IsNoRows(err) { @@ -114,6 +123,66 @@ func (d *datasetImageDao) ListUnlabeledByDataset(ctx context.Context, datasetId return list, nil } +// CountPoolByTaskIds 多任务池余量(一次 GROUP BY;众包任务列表展示用) +func (d *datasetImageDao) CountPoolByTaskIds(ctx context.Context, taskIds []int64) (map[int64]int64, error) { + out := make(map[int64]int64) + if len(taskIds) == 0 { + return out, nil + } + var rows []struct { + AnnotateTaskId int64 `orm:"annotate_task_id"` + Cnt int64 `orm:"cnt"` + } + err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). + WhereIn("annotate_task_id", taskIds). + Where("review_status", consts.ReviewImageNone). + Where("clean_excluded", 0). + Fields("annotate_task_id, COUNT(*) AS cnt"). + Group("annotate_task_id"). + Scan(&rows) + if err != nil { + return nil, err + } + for _, r := range rows { + out[r.AnnotateTaskId] = r.Cnt + } + return out, nil +} + +// OccupyByTask 下发占用:批量写 annotate_task_id(Serial 内调用,防与并发下发竞态;IN ≤100 分批) +func (d *datasetImageDao) OccupyByTask(ctx context.Context, ids []int64, taskId int64) error { + for start := 0; start < len(ids); start += 100 { + end := start + 100 + if end > len(ids) { + end = len(ids) + } + if _, err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). + WhereIn("id", ids[start:end]). + Where("annotate_task_id", 0). + Data(g.Map{"annotate_task_id": taskId}).Update(); err != nil { + return err + } + } + return nil +} + +// ReleaseByTask 停用释放:清指定图的任务占用标记回未标注(仅当仍占用本任务,防误清新任务标记;IN ≤100 分批) +func (d *datasetImageDao) ReleaseByTask(ctx context.Context, ids []int64, taskId int64) error { + for start := 0; start < len(ids); start += 100 { + end := start + 100 + if end > len(ids) { + end = len(ids) + } + if _, err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). + WhereIn("id", ids[start:end]). + Where("annotate_task_id", taskId). + Data(g.Map{"annotate_task_id": 0}).Update(); err != nil { + return err + } + } + return nil +} + // GetByIds 按 id 批量取(删除图片定位文件用) func (d *datasetImageDao) GetByIds(ctx context.Context, ids []int64) ([]*entity.DatasetImage, error) { var list []*entity.DatasetImage @@ -154,11 +223,30 @@ func (d *datasetImageDao) UpdateLabels(ctx context.Context, id int64, labelsJson return err } -// CountLabeledByDataset 某数据集已标注图片数(labels_json 非空数组的图片行数) +// UpdateLabelsAndReview 覆写标注 JSON 并同步审核状态(预标/AdminLabelSave/App 提交共用): +// 预标检出/人工保存/App 提交 → 1;人工清空保存 → 0(回到未标注池) +func (d *datasetImageDao) UpdateLabelsAndReview(ctx context.Context, id int64, labelsJson string, reviewStatus int) error { + _, err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx).Where("id", id). + Data(g.Map{"labels_json": labelsJson, "review_status": reviewStatus}).Update() + return err +} + +// SetReviewStatus 只改审核状态(审核通过=2 / 拒绝先清标注再置 0,两步由 service 编排) +func (d *datasetImageDao) SetReviewStatus(ctx context.Context, ids []int64, reviewStatus int) error { + if len(ids) == 0 { + return nil + } + _, err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx).WhereIn("id", ids). + Data(g.Map{"review_status": reviewStatus}).Update() + return err +} + +// CountLabeledByDataset 某数据集已审核图片数(review_status=2;2026-09-04 起已标注口径 +// = 人工审核通过,labels_json 非空只是必要条件) func (d *datasetImageDao) CountLabeledByDataset(ctx context.Context, datasetId int64) (int64, error) { n, err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). Where("dataset_id", datasetId). - Where("labels_json IS NOT NULL AND labels_json != '' AND labels_json != '[]'"). + Where("review_status", consts.ReviewImageApproved). Count() return int64(n), err } @@ -184,7 +272,7 @@ func (d *datasetImageDao) CountStatByDatasets(ctx context.Context, datasetIds [] } err := g.DB().Model(consts.TableDatasetImage).Ctx(ctx). WhereIn("dataset_id", datasetIds[start:end]). - Fields("dataset_id, COUNT(*) AS cnt, SUM(CASE WHEN labels_json IS NOT NULL AND labels_json != '' AND labels_json != '[]' THEN 1 ELSE 0 END) AS labeled_cnt"). + Fields("dataset_id, COUNT(*) AS cnt, SUM(CASE WHEN review_status = 2 THEN 1 ELSE 0 END) AS labeled_cnt"). Group("dataset_id"). Scan(&rows) if err != nil { diff --git a/server/biz/dao/license.go b/server/biz/dao/license.go index 0db0d70..ce5eb26 100644 --- a/server/biz/dao/license.go +++ b/server/biz/dao/license.go @@ -32,6 +32,9 @@ func init() { panic(err) } common.EnsureColumn(ctx, consts.TableLicense, "remark", "remark TEXT") + // 标注众包(2026-09-04):冻结到期标记 + 通过比例统计基线(技术设计.md「App 标注众包与时长激励」) + common.EnsureColumn(ctx, consts.TableLicense, "annotate_frozen_until", "annotate_frozen_until TEXT") + common.EnsureColumn(ctx, consts.TableLicense, "annotate_stats_since", "annotate_stats_since TEXT") } // GetByPhone 按手机号查询(走缓存,键含手机号) @@ -110,6 +113,28 @@ func (d *licenseDao) ClearAuthInTx(ctx context.Context, tx gdb.TX, phone string) return err } +// ExtendExpiresInTx 事务内写到期时间(标注奖励分钟级顺延;新值由 service 按 max(now, expires_at) 计算) +func (d *licenseDao) ExtendExpiresInTx(ctx context.Context, tx gdb.TX, phone string, expiresAt any) error { + _, err := g.DB().Model(consts.TableLicense).Ctx(ctx).TX(tx). + Where("phone_num", phone). + Data(gdb.Map{"expires_at": expiresAt, "updated_at": gtime.Now()}). + Update() + return err +} + +// UpdateAnnotateState 写标注冻结标记与统计基线(传 nil 即清除;写后清缓存) +func (d *licenseDao) UpdateAnnotateState(ctx context.Context, phone string, frozenUntil, statsSince any) error { + _, err := g.DB().Model(consts.TableLicense).Ctx(ctx). + Where("phone_num", phone). + Data(gdb.Map{"annotate_frozen_until": frozenUntil, "annotate_stats_since": statsSince, "updated_at": gtime.Now()}). + Update() + if err != nil { + return err + } + common.ClearCache(ctx, "license:"+phone) + return nil +} + // SetRemarkInTx 事务内写备注(管理端 remark,空串即清空):不覆盖密码/授权字段 func (d *licenseDao) SetRemarkInTx(ctx context.Context, tx gdb.TX, phone, remark string) error { _, err := g.DB().Model(consts.TableLicense).Ctx(ctx).TX(tx). diff --git a/server/biz/dao/reward_log.go b/server/biz/dao/reward_log.go new file mode 100644 index 0000000..2a11c4a --- /dev/null +++ b/server/biz/dao/reward_log.go @@ -0,0 +1,64 @@ +package dao + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + + "observer-server/biz/consts" +) + +// RewardLog 标注时长发放流水表 DAO:只增不改(审计);日上限按自然日求和。 +type rewardLogDao struct{} + +var RewardLog = &rewardLogDao{} + +func init() { + ctx := context.Background() + _, err := g.DB().Exec(ctx, `CREATE TABLE IF NOT EXISTS reward_log ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + phone_num TEXT NOT NULL, + minutes INTEGER NOT NULL, + task_id INTEGER NOT NULL DEFAULT 0, + granted_at TEXT NOT NULL +)`) + if err != nil { + panic(err) + } +} + +// InsertInTx 事务内落一条发放流水(与 expires_at 顺延同事务保证原子) +func (d *rewardLogDao) InsertInTx(ctx context.Context, tx gdb.TX, phone string, minutes int, taskId int64, grantedAt *gtime.Time) error { + _, err := g.DB().Model(consts.TableRewardLog).Ctx(ctx).TX(tx).Data(g.Map{ + "phone_num": phone, + "minutes": minutes, + "task_id": taskId, + "granted_at": grantedAt, + }).Insert() + return err +} + +// SumMinutesByPhoneSince 某时间点(含)之后累计发放分钟数(日上限 = 传当日 0 点) +func (d *rewardLogDao) SumMinutesByPhoneSince(ctx context.Context, phone string, since *gtime.Time) (int, error) { + v, err := g.DB().Model(consts.TableRewardLog).Ctx(ctx). + Where("phone_num", phone). + WhereGTE("granted_at", since). + Fields("COALESCE(SUM(minutes), 0) AS total").Value() + if err != nil { + return 0, err + } + return v.Int(), nil +} + +// SumMinutesByPhone 累计发放分钟数(我的统计) +func (d *rewardLogDao) SumMinutesByPhone(ctx context.Context, phone string) (int, error) { + v, err := g.DB().Model(consts.TableRewardLog).Ctx(ctx). + Where("phone_num", phone). + Fields("COALESCE(SUM(minutes), 0) AS total").Value() + if err != nil { + return 0, err + } + return v.Int(), nil +} diff --git a/server/biz/model/dto/annotate.go b/server/biz/model/dto/annotate.go new file mode 100644 index 0000000..7af3b0a --- /dev/null +++ b/server/biz/model/dto/annotate.go @@ -0,0 +1,204 @@ +package dto + +import ( + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) + +// 标注众包与时长激励(技术设计.md「App 标注众包与时长激励」): +// 管理端 = 下发/停用任务、批量审核、用户标注记录、手动解冻;App = 任务列表/领取/提交/我的统计。 + +// ---------- 管理端 ---------- + +// AdminAnnotateTaskCreateReq 下发标注任务(2026-09-07 图片粒度:勾选的具体未标注图集合即任务图集, +// 下发即占用(annotate_task_id 写任务 id)从未标注 tab 消失,停用任务释放未领取图) +type AdminAnnotateTaskCreateReq struct { + g.Meta `path:"/annotate-tasks" method:"post" summary:"下发标注任务" tags:"管理端"` + DatasetId int64 `json:"datasetId" v:"required|min:1" dc:"数据集"` + Name string `json:"name" v:"required|length:1,50" dc:"任务名"` + ImageIds []int64 `json:"imageIds" v:"required|min-length:1" dc:"勾选的未标注图片 id 列表"` +} + +type AdminAnnotateTaskCreateRes struct { + Id int64 `json:"id"` +} + +// AdminAnnotateTaskListReq 标注任务列表(datasetId 缺省=全部;详情页 tab 内嵌时按数据集过滤) +type AdminAnnotateTaskListReq struct { + g.Meta `path:"/annotate-tasks" method:"get" summary:"标注任务列表" tags:"管理端"` + DatasetId int64 `json:"datasetId" v:"integer|min:0" dc:"数据集过滤,0=全部"` + Page int `json:"page" v:"integer|min:1" dc:"页码,默认 1"` + Size int `json:"size" v:"integer|min:1|max:100" dc:"每页条数,默认 20"` +} + +// AdminAnnotateTaskItem 任务条目:池余量 + 各状态记录数 +type AdminAnnotateTaskItem struct { + Id int64 `json:"id"` + DatasetId int64 `json:"datasetId"` + DatasetName string `json:"datasetName"` + Name string `json:"name"` + Status string `json:"status"` + PoolRemain int64 `json:"poolRemain"` + Pending int64 `json:"pending"` + Submitted int64 `json:"submitted"` + Approved int64 `json:"approved"` + Rejected int64 `json:"rejected"` + CreatedAt *gtime.Time `json:"createdAt"` +} + +type AdminAnnotateTaskListRes struct { + Total int64 `json:"total"` + List []*AdminAnnotateTaskItem `json:"list"` +} + +// AdminAnnotateTaskStopReq 停用任务 +type AdminAnnotateTaskStopReq struct { + g.Meta `path:"/annotate-tasks/stop" method:"post" summary:"停用标注任务" tags:"管理端"` + Id int64 `json:"id" v:"required|min:1" dc:"任务 id"` +} + +type AdminAnnotateTaskStopRes struct{} + +// AdminAnnotateReviewReq 批量审核:通过 → review_status=2;拒绝 → 清标注回未标注池 + +// 对应 submitted 记录置 rejected(触发低质统计/冻结判定) +type AdminAnnotateReviewReq struct { + g.Meta `path:"/annotate-review" method:"post" summary:"批量审核标注" tags:"管理端"` + ImageIds []int64 `json:"imageIds" v:"required" dc:"图片 id 列表"` + Approve bool `json:"approve" dc:"true=通过 false=拒绝"` +} + +type AdminAnnotateReviewRes struct { + Affected int64 `json:"affected"` // 实际变更的图片数(过滤掉不存在/非待审核) + FrozenPhones []string `json:"frozenPhones"` // 本次触发冻结的用户(空=无) +} + +// AdminAnnotateRecordListReq 用户标注记录分页(每用户每张图的处理明细;datasetId 缺省=全部) +type AdminAnnotateRecordListReq struct { + g.Meta `path:"/annotate-records" method:"get" summary:"用户标注记录列表" tags:"管理端"` + DatasetId int64 `json:"datasetId" v:"integer|min:0" dc:"数据集过滤,0=全部"` + Phone string `json:"phone" v:"length:0,20" dc:"手机号精确过滤"` + TaskId int64 `json:"taskId" v:"integer|min:0" dc:"任务过滤,0=全部"` + Status string `json:"status" v:"in:,pending,submitted,approved,rejected" dc:"状态过滤,空=全部"` + Page int `json:"page" v:"integer|min:1" dc:"页码,默认 1"` + Size int `json:"size" v:"integer|min:1|max:100" dc:"每页条数,默认 20"` +} + +// AdminAnnotateRecordItem 记录条目(附图片文件名与数据集名,内存组装) +type AdminAnnotateRecordItem struct { + Id int64 `json:"id"` + PhoneNum string `json:"phoneNum"` + TaskId int64 `json:"taskId"` + DatasetName string `json:"datasetName"` + ImageId int64 `json:"imageId"` + Filename string `json:"filename"` + ImageUrl string `json:"imageUrl"` + Status string `json:"status"` + Boxes []*AdminLabelBox `json:"boxes"` + CreatedAt *gtime.Time `json:"createdAt"` + SubmittedAt *gtime.Time `json:"submittedAt"` + ReviewedAt *gtime.Time `json:"reviewedAt"` +} + +type AdminAnnotateRecordListRes struct { + Total int64 `json:"total"` + List []*AdminAnnotateRecordItem `json:"list"` +} + +// AdminAnnotateUnfreezeReq 手动解冻 +type AdminAnnotateUnfreezeReq struct { + g.Meta `path:"/annotate-unfreeze" method:"post" summary:"手动解冻标注资格" tags:"管理端"` + Phone string `json:"phone" v:"required|length:6,20" dc:"手机号"` +} + +type AdminAnnotateUnfreezeRes struct{} + +// ---------- App(Bearer token,手机号取登录态) ---------- + +// AnnotateStats 我的标注统计(任务列表/我的页共用) +type AnnotateStats struct { + SubmittedTotal int64 `json:"submittedTotal"` // 累计有效提交 + Approved int64 `json:"approved"` // 审核通过 + Rejected int64 `json:"rejected"` // 审核拒绝 + ApproveRatio float64 `json:"approveRatio"` // 当前统计基线内通过比例(0~1,无样本=1) + ProgressDone int64 `json:"progressDone"` // 距下次奖励进度(累计提交 mod perImages) + RewardPerImages int `json:"rewardPerImages"` // 每次奖励所需提交数 + RewardMinutes int `json:"rewardMinutes"` // 每次奖励分钟数 + TotalEarnedMinutes int `json:"totalEarnedMinutes"` // 累计获得分钟数 + TodayEarnedMinutes int `json:"todayEarnedMinutes"` // 今日已得(自然日) + DailyCapMinutes int `json:"dailyCapMinutes"` // 每日上限 + FrozenUntil *gtime.Time `json:"frozenUntil"` // 冻结到期(nil=未冻结) + ExpiresAt *gtime.Time `json:"expiresAt"` // 当前授权到期 +} + +// AnnotateTaskListReq App 可领任务列表 +type AnnotateTaskListReq struct { + g.Meta `path:"/annotate/tasks" method:"get" summary:"可领标注任务列表" tags:"标注众包"` +} + +// AnnotateTaskItem 任务条目(含池余量;冻结中仍展示但不可领取) +type AnnotateTaskItem struct { + Id int64 `json:"id"` + Name string `json:"name"` + DatasetId int64 `json:"datasetId"` + DatasetName string `json:"datasetName"` + Species string `json:"species"` + PoolRemain int64 `json:"poolRemain"` +} + +type AnnotateTaskListRes struct { + List []*AnnotateTaskItem `json:"list"` + Stats *AnnotateStats `json:"stats"` +} + +// AnnotateClaimReq 领取:分配 ≤ClaimSize 张未处理过的池内图(pending 锁定) +type AnnotateClaimReq struct { + g.Meta `path:"/annotate/claim" method:"post" summary:"领取标注图片" tags:"标注众包"` + TaskId int64 `json:"taskId" v:"required|min:1" dc:"任务 id"` +} + +// AnnotateClaimImage 分配的单张图(宽高供 App 端 canvas 画框) +type AnnotateClaimImage struct { + ImageId int64 `json:"imageId"` + Url string `json:"url"` + Width int `json:"width"` + Height int `json:"height"` +} + +type AnnotateClaimRes struct { + Images []*AnnotateClaimImage `json:"images"` + Species string `json:"species"` +} + +// AnnotateSubmitReq 提交标注:写 labels_json + review_status=1 待审核,每累计 RewardPerImages +// 张发 RewardMinutes 分钟(当日超 DailyCapMinutes 不再发);boxes 可为空数组(画面无目标主张) +type AnnotateSubmitReq struct { + g.Meta `path:"/annotate/submit" method:"post" summary:"提交标注" tags:"标注众包"` + ImageId int64 `json:"imageId" v:"required|min:1" dc:"图片 id"` + Boxes []*AdminLabelBox `json:"boxes" dc:"标注框(空数组=画面无目标)"` +} + +type AnnotateSubmitRes struct { + Granted bool `json:"granted"` // 本次是否触发发放 + Minutes int `json:"minutes"` // 本次发放分钟数(granted 时有效) + TodayEarnedMinutes int `json:"todayEarnedMinutes"` // 今日已得 + ExpiresAt *gtime.Time `json:"expiresAt"` // 发放后的授权到期 + ProgressDone int64 `json:"progressDone"` // 距下次奖励进度 +} + +// AnnotateMeReq 我的标注统计 +type AnnotateMeReq struct { + g.Meta `path:"/annotate/me" method:"get" summary:"我的标注统计" tags:"标注众包"` +} + +type AnnotateMeRes struct { + Stats *AnnotateStats `json:"stats"` +} + +// AnnotateImageReq 标注图片访问(登录态;controller 直写响应体,服务端校验图片归属) +type AnnotateImageReq struct { + g.Meta `path:"/annotate/image" method:"get" summary:"标注图片访问" tags:"标注众包"` + DatasetId int64 `json:"datasetId" v:"required|min:1" dc:"数据集"` + Filename string `json:"filename" v:"required" dc:"文件名"` +} + +type AnnotateImageRes struct{} diff --git a/server/biz/model/dto/training.go b/server/biz/model/dto/training.go index 579f8f7..97869d2 100644 --- a/server/biz/model/dto/training.go +++ b/server/biz/model/dto/training.go @@ -125,6 +125,18 @@ type AdminDatasetDeleteReq struct { type AdminDatasetDeleteRes struct{} +// AdminDatasetNegativeReq 获取负样本库(技术设计.md「负样本库」):固定保留名特殊数据集, +// 不存在则自动创建;管理端「负样本」tab 进入时调用,返回 id 供既有上传/图片列表/删除接口复用 +type AdminDatasetNegativeReq struct { + g.Meta `path:"/datasets/negative" method:"post" summary:"获取负样本库(无则创建)" tags:"管理端"` +} + +type AdminDatasetNegativeRes struct { + Id int64 `json:"id"` + Name string `json:"name"` + ImageCount int64 `json:"imageCount"` +} + // AdminDatasetUploadReq 上传图片(multipart 多文件;重名跳过并计数) type AdminDatasetUploadReq struct { g.Meta `path:"/datasets/upload" method:"post" summary:"上传图片" tags:"管理端" mime:"multipart/form-data"` @@ -182,14 +194,16 @@ type AdminDatasetImagesReq struct { } // AdminImageItem 图片条目(url 为管理端图片访问地址,前端拼 apiBaseUrl 使用; -// cleanExcluded=1 的图归「已清洗」tab——数据清洗排除,训练集打包跳过,可恢复) +// cleanExcluded=1 的图归「已清洗」tab——数据清洗排除,训练集打包跳过,可恢复; +// annotateTaskId>0 的图已下发给众包任务,不进「未标注」tab) type AdminImageItem struct { - Id int64 `json:"id"` - Filename string `json:"filename"` - Source string `json:"source"` // manual | ai - Url string `json:"url"` - CleanExcluded int `json:"cleanExcluded"` // 1=已清洗排除 - CreatedAt *gtime.Time `json:"createdAt"` + Id int64 `json:"id"` + Filename string `json:"filename"` + Source string `json:"source"` // manual | ai + Url string `json:"url"` + CleanExcluded int `json:"cleanExcluded"` // 1=已清洗排除 + AnnotateTaskId int64 `json:"annotateTaskId"` // 众包任务占用标记(0=未下发) + CreatedAt *gtime.Time `json:"createdAt"` } type AdminDatasetImagesRes struct { @@ -367,7 +381,7 @@ type AdminLabelTaskListRes struct { type AdminLabelTaskStartReq struct { g.Meta `path:"/label-tasks" method:"post" summary:"发起预标注" tags:"管理端"` DatasetId int64 `json:"datasetId" v:"required|min:1" dc:"数据集 id"` - Filenames []string `json:"filenames" v:"length:0,500" dc:"选中图片列表(多选批量);缺省=全量扫描"` + Filenames []string `json:"filenames" dc:"选中图片列表(多选批量);缺省=全量扫描"` } type AdminLabelTaskStartRes struct { @@ -407,14 +421,15 @@ type AdminLabelBox struct { Class int `json:"class"` // 0 确认 | 1 疑似 } -// AdminLabelImageItem 工作台单张图:全部标注(labels_json,AI 自动标注与人工框同层,人工可修改/清理) +// AdminLabelImageItem 工作台单张图:全部标注(labels_json,AI 预标与人工框同层,人工可修改/清理) type AdminLabelImageItem struct { - Filename string `json:"filename"` - Url string `json:"url"` - Width int `json:"width"` - Height int `json:"height"` - Boxes []*AdminLabelBox `json:"boxes"` - Labeled bool `json:"labeled"` // 有标注(AI 自动标注或人工保存) + Filename string `json:"filename"` + Url string `json:"url"` + Width int `json:"width"` + Height int `json:"height"` + Boxes []*AdminLabelBox `json:"boxes"` + Labeled bool `json:"labeled"` // 有标注框(AI 预标或人工保存) + ReviewStatus int `json:"reviewStatus"` // 审核三态 0=未标注,1=待审核,2=已审核 } type AdminLabelTaskDetailRes struct { diff --git a/server/biz/model/entity/annotate_record.go b/server/biz/model/entity/annotate_record.go new file mode 100644 index 0000000..d56b892 --- /dev/null +++ b/server/biz/model/entity/annotate_record.go @@ -0,0 +1,20 @@ +package entity + +import "github.com/gogf/gf/v2/os/gtime" + +// AnnotateRecord 用户标注记录(服务端记录每用户每张图的处理明细,技术设计.md「App 标注众包与时长激励」): +// pending 即领取锁(partial unique index 同图仅一条 pending,超时惰性释放); +// UNIQUE(phone_num, image_id) 一人一图仅一次(拒后图回池可被他人再标); +// 拒绝不删记录——低质统计(通过比例)与审计依据。 +type AnnotateRecord struct { + Id int64 `json:"id" orm:"id" description:"自增主键"` + PhoneNum string `json:"phoneNum" orm:"phone_num" description:"用户手机号"` + TaskId int64 `json:"taskId" orm:"task_id" description:"所属任务"` + DatasetId int64 `json:"datasetId" orm:"dataset_id" description:"数据集(领取时冗余,详情页按数据集过滤记录用)"` + ImageId int64 `json:"imageId" orm:"image_id" description:"图片"` + LabelsJson string `json:"labelsJson" orm:"labels_json" description:"提交快照(YOLO 归一化 JSON 数组)"` + Status string `json:"status" orm:"status" description:"pending|submitted|approved|rejected"` + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"领取时间"` + SubmittedAt *gtime.Time `json:"submittedAt" orm:"submitted_at" description:"提交时间"` + ReviewedAt *gtime.Time `json:"reviewedAt" orm:"reviewed_at" description:"审核时间"` +} diff --git a/server/biz/model/entity/annotate_task.go b/server/biz/model/entity/annotate_task.go new file mode 100644 index 0000000..ef145f2 --- /dev/null +++ b/server/biz/model/entity/annotate_task.go @@ -0,0 +1,13 @@ +package entity + +import "github.com/gogf/gf/v2/os/gtime" + +// AnnotateTask 标注众包任务(管理端下发):池子动态 = 数据集内 review_status=0 +// 且 clean_excluded=0 的图(不落表,实时查询),新增图自动入池,停用即整体不可领。 +type AnnotateTask struct { + Id int64 `json:"id" orm:"id" description:"自增主键"` + DatasetId int64 `json:"datasetId" orm:"dataset_id" description:"数据集(任务池来源)"` + Name string `json:"name" orm:"name" description:"任务名"` + Status string `json:"status" orm:"status" description:"published|stopped"` + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"下发时间"` +} diff --git a/server/biz/model/entity/dataset_image.go b/server/biz/model/entity/dataset_image.go index 47ac24a..1bb941b 100644 --- a/server/biz/model/entity/dataset_image.go +++ b/server/biz/model/entity/dataset_image.go @@ -5,12 +5,14 @@ import "github.com/gogf/gf/v2/os/gtime" // DatasetImage 数据集图片:文件在 datasets/<数据集名>/; // 标注为 JSON 数组存本表(元素同 dto.AdminLabelBox:class/cx/cy/w/h/confidence,YOLO 归一化)。 type DatasetImage struct { - Id int64 `json:"id" orm:"id" description:"自增主键"` - DatasetId int64 `json:"datasetId" orm:"dataset_id" description:"所属数据集"` - Filename string `json:"filename" orm:"filename" description:"唯一文件名(防重名加时间戳后缀)"` - Source string `json:"source" orm:"source" description:"manual|ai"` - AnimalCount int `json:"animalCount" orm:"animal_count" description:"AI 生成提示词中的声明目标数量(0=手动上传,仅信息性,自动标注上限固定 3 与声明数无关)"` - LabelsJson string `json:"labelsJson" orm:"labels_json" description:"标注 JSON 数组(AI 自动标注与人工标注同存,null/''/'[]'=未标注)"` - CleanExcluded int `json:"cleanExcluded" orm:"clean_excluded" description:"数据清洗排除标记(0=正常,1=已从训练集排除;只影响训练集打包,图片/标注不动,可恢复)"` - CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` + Id int64 `json:"id" orm:"id" description:"自增主键"` + DatasetId int64 `json:"datasetId" orm:"dataset_id" description:"所属数据集"` + Filename string `json:"filename" orm:"filename" description:"唯一文件名(防重名加时间戳后缀)"` + Source string `json:"source" orm:"source" description:"manual|ai"` + AnimalCount int `json:"animalCount" orm:"animal_count" description:"AI 生成提示词中的声明目标数量(0=手动上传,仅信息性,自动标注上限固定 3 与声明数无关)"` + LabelsJson string `json:"labelsJson" orm:"labels_json" description:"标注 JSON 数组(AI 预标与人工标注同存,null/''/'[]'=无框)"` + ReviewStatus int `json:"reviewStatus" orm:"review_status" description:"审核三态(0=未标注,1=待审核,2=已审核;训练集只收2)"` + CleanExcluded int `json:"cleanExcluded" orm:"clean_excluded" description:"数据清洗排除标记(0=正常,1=已从训练集排除;只影响训练集打包,图片/标注不动,可恢复)"` + AnnotateTaskId int64 `json:"annotateTaskId" orm:"annotate_task_id" description:"众包任务占用标记(0=未下发;>0=已下发给该任务,从未标注tab隐藏,停用任务释放未领取图回0)"` + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` } diff --git a/server/biz/model/entity/license.go b/server/biz/model/entity/license.go index 6199a61..ec44442 100644 --- a/server/biz/model/entity/license.go +++ b/server/biz/model/entity/license.go @@ -5,10 +5,12 @@ import "github.com/gogf/gf/v2/os/gtime" // License 手机号账号与授权:一账号一记录;password 不对外(json 排除); // expires_at 未充值(含被撤销)时为 NULL;购买的套餐记录在 payment_order,本表不存。 type License struct { - PhoneNum string `json:"phoneNum" orm:"phone_num" description:"手机号账号(主键)"` - Password string `json:"-" orm:"password" description:"bcrypt 加盐哈希"` - ExpiresAt *gtime.Time `json:"expiresAt" orm:"expires_at" description:"到期时间(自然日,服务端时区),未充值 NULL"` - Remark string `json:"remark" orm:"remark" description:"管理端备注(客户端不可见)"` - CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"注册时间"` - UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` + PhoneNum string `json:"phoneNum" orm:"phone_num" description:"手机号账号(主键)"` + Password string `json:"-" orm:"password" description:"bcrypt 加盐哈希"` + ExpiresAt *gtime.Time `json:"expiresAt" orm:"expires_at" description:"到期时间(自然日,服务端时区),未充值 NULL;标注奖励分钟级顺延"` + AnnotateFrozenUntil *gtime.Time `json:"-" orm:"annotate_frozen_until" description:"标注低质冻结到期标记(NULL/过期=正常,时间戳对比天然自动解冻)"` + AnnotateStatsSince *gtime.Time `json:"-" orm:"annotate_stats_since" description:"通过比例统计基线(冻结时重置,解冻后重新累计)"` + Remark string `json:"remark" orm:"remark" description:"管理端备注(客户端不可见)"` + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"注册时间"` + UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` } diff --git a/server/biz/model/entity/reward_log.go b/server/biz/model/entity/reward_log.go new file mode 100644 index 0000000..42f2ffe --- /dev/null +++ b/server/biz/model/entity/reward_log.go @@ -0,0 +1,12 @@ +package entity + +import "github.com/gogf/gf/v2/os/gtime" + +// RewardLog 标注时长发放流水:日上限 = 自然日求和;只增不改(审计)。 +type RewardLog struct { + Id int64 `json:"id" orm:"id" description:"自增主键"` + PhoneNum string `json:"phoneNum" orm:"phone_num" description:"用户手机号"` + Minutes int `json:"minutes" orm:"minutes" description:"本次发放分钟数"` + TaskId int64 `json:"taskId" orm:"task_id" description:"触发发放的任务(0=未知)"` + GrantedAt *gtime.Time `json:"grantedAt" orm:"granted_at" description:"发放时间"` +} diff --git a/server/biz/service/annotate.go b/server/biz/service/annotate.go new file mode 100644 index 0000000..03e2a0e --- /dev/null +++ b/server/biz/service/annotate.go @@ -0,0 +1,724 @@ +package service + +import ( + "context" + "encoding/json" + "fmt" + "net/url" + "os" + "path/filepath" + "time" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + + "observer-server/biz/consts" + "observer-server/biz/dao" + "observer-server/biz/model/dto" + "observer-server/biz/model/entity" + "observer-server/common" +) + +// annotateService 标注众包与时长激励(技术设计.md「App 标注众包与时长激励」): +// 管理端下发数据集级动态池任务 → App 用户领取(pending 锁)/提交(进待审核)→ +// 每累计 N 张即时发时长(日上限封顶)→ 管理端审核,通过比例过低自动冻结领取资格。 +type annotateService struct{} + +var Annotate = &annotateService{} + +// annotateRewardCfg annotateReward 配置(缺失/非法回退 consts 默认) +type annotateRewardCfg struct { + ClaimSize int + ClaimTimeoutHour int + RewardPerImages int + RewardMinutes int + DailyCapMinutes int + FreezeRatio float64 + FreezeMinReviewed int + FreezeHours int +} + +func annotateRewardConfig(ctx context.Context) annotateRewardCfg { + get := func(key string, def int) int { + v := g.Cfg().MustGet(ctx, "annotateReward."+key, def).Int() + if v <= 0 { + return def + } + return v + } + ratio := g.Cfg().MustGet(ctx, "annotateReward.freezeRatio", consts.AnnotateFreezeRatio).Float64() + if ratio <= 0 || ratio > 1 { + ratio = consts.AnnotateFreezeRatio + } + return annotateRewardCfg{ + ClaimSize: get("claimSize", consts.AnnotateClaimSize), + ClaimTimeoutHour: get("claimTimeoutHour", consts.AnnotateClaimTimeoutHour), + RewardPerImages: get("rewardPerImages", consts.AnnotateRewardPerImages), + RewardMinutes: get("rewardMinutes", consts.AnnotateRewardMinutes), + DailyCapMinutes: get("dailyCapMinutes", consts.AnnotateDailyCapMinutes), + FreezeRatio: ratio, + FreezeMinReviewed: get("freezeMinReviewed", consts.AnnotateFreezeMinReviewed), + FreezeHours: get("freezeHours", consts.AnnotateFreezeHours), + } +} + +// speciesOf 任务物种展示名:gen_species 空回退数据集名(单物种规则) +func annotateSpecies(d *entity.Dataset) string { + if d.GenSpecies != "" { + return d.GenSpecies + } + return d.Name +} + +// annotateImageUrl App 端图片访问地址(登录态 Bearer 鉴权,controller 直写响应体, +// 与管理端 /admin/datasets/image 的 X-Admin-Token 鉴权隔离——App 用户无管理 token) +func annotateImageUrl(ctx context.Context, datasetId int64, filename string) string { + return fmt.Sprintf("/api/v1/annotate/image?%s", + url.Values{"datasetId": {fmt.Sprintf("%d", datasetId)}, "filename": {filename}}.Encode()) +} + +func annotateFrozen(lic *entity.License) *gtime.Time { + if lic == nil || lic.AnnotateFrozenUntil == nil { + return nil + } + if lic.AnnotateFrozenUntil.Timestamp() <= gtime.Now().Timestamp() { + return nil // 已过期 = 自动解冻 + } + return lic.AnnotateFrozenUntil +} + +// ---------- 管理端 ---------- + +// AdminCreateTask 下发任务(2026-09-07 图片粒度):勾选的具体图片集合即任务图集—— +// dataset_image.annotate_task_id 写任务 id 作占用标记(已下发图即从管理端「未标注」tab 消失), +// 停用任务时释放未领取图回未标注。同数据集同时只允许一个 published 任务; +// Serial 内查重 + 逐图校验(属本数据集/未标注/未占用,任一非法整单拒绝)+ 事务内插任务与批量占用。 +func (s *annotateService) AdminCreateTask(ctx context.Context, req *dto.AdminAnnotateTaskCreateReq) (*dto.AdminAnnotateTaskCreateRes, error) { + dataset, err := dao.Dataset.GetById(ctx, req.DatasetId) + if err != nil { + return nil, err + } + if dataset == nil { + return nil, gerror.NewCode(common.CodeDatasetNotFound) + } + if dataset.Source == consts.DatasetSourceNegative { + return nil, gerror.New("负样本库不参与标注众包") + } + images, err := dao.DatasetImage.GetByIds(ctx, req.ImageIds) + if err != nil { + return nil, err + } + if len(images) != len(req.ImageIds) { + return nil, gerror.New("部分图片不存在,请刷新后重试") + } + for _, img := range images { + if img.DatasetId != dataset.Id { + return nil, gerror.Newf("图片 %d 不属于该数据集", img.Id) + } + if img.ReviewStatus != consts.ReviewImageNone { + return nil, gerror.Newf("图片 %d 已标注,只能下发未标注图", img.Id) + } + if img.AnnotateTaskId != 0 { + return nil, gerror.Newf("图片 %d 已下发给其他任务,请刷新后重试", img.Id) + } + } + var taskId int64 + err = common.Serial().Submit(ctx, func() error { + running, err := dao.AnnotateTask.GetPublishedByDataset(ctx, dataset.Id) + if err != nil { + return err + } + if running != nil { + return gerror.Newf("该数据集已有进行中的标注任务(id=%d),请先停用", running.Id) + } + return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { + taskId, err = dao.AnnotateTask.InsertInTx(ctx, tx, &entity.AnnotateTask{ + DatasetId: dataset.Id, + Name: req.Name, + Status: consts.AnnotateTaskPublished, + CreatedAt: gtime.Now(), + }) + if err != nil { + return err + } + return dao.DatasetImage.OccupyByTask(ctx, req.ImageIds, taskId) + }) + }) + if err != nil { + return nil, err + } + return &dto.AdminAnnotateTaskCreateRes{Id: taskId}, nil +} + +// AdminListTasks 任务分页:组装数据集名/池余量/各状态记录数 +func (s *annotateService) AdminListTasks(ctx context.Context, req *dto.AdminAnnotateTaskListReq) (*dto.AdminAnnotateTaskListRes, error) { + page, size := common.NormalizePage(req.Page, req.Size) + list, total, err := dao.AnnotateTask.Page(ctx, req.DatasetId, page, size) + if err != nil { + return nil, err + } + res := &dto.AdminAnnotateTaskListRes{Total: total, List: make([]*dto.AdminAnnotateTaskItem, 0, len(list))} + if len(list) == 0 { + return res, nil + } + taskIds := make([]int64, 0, len(list)) + for _, t := range list { + taskIds = append(taskIds, t.Id) + } + names := Training.datasetNameMap(ctx) + poolCnt, err := dao.DatasetImage.CountPoolByTaskIds(ctx, taskIds) + if err != nil { + return nil, err + } + recCnt, err := dao.AnnotateRecord.CountByTaskIds(ctx, taskIds) + if err != nil { + return nil, err + } + for _, t := range list { + item := &dto.AdminAnnotateTaskItem{ + Id: t.Id, + DatasetId: t.DatasetId, + DatasetName: names[t.DatasetId], + Name: t.Name, + Status: t.Status, + PoolRemain: poolCnt[t.Id], + CreatedAt: t.CreatedAt, + } + if m := recCnt[t.Id]; m != nil { + item.Pending = m[consts.AnnotateRecordPending] + item.Submitted = m[consts.AnnotateRecordSubmitted] + item.Approved = m[consts.AnnotateRecordApproved] + item.Rejected = m[consts.AnnotateRecordRejected] + } + res.List = append(res.List, item) + } + return res, nil +} + +// AdminStopTask 停用任务(整体不可再领取;已领取未提交的可继续提交)。 +// Serial 内停用 + 释放:未被领取过的图清占用标记回未标注(重新出现在未标注 tab 可再次下发); +// 有 pending 锁的图保留占用(用户可继续提交)。过期锁先按领取同语义惰性清理,防已放弃的锁 +// 永久占图(停用任务不再有领取触发清理)。 +func (s *annotateService) AdminStopTask(ctx context.Context, req *dto.AdminAnnotateTaskStopReq) (*dto.AdminAnnotateTaskStopRes, error) { + t, err := dao.AnnotateTask.GetById(ctx, req.Id) + if err != nil { + return nil, err + } + if t == nil { + return nil, gerror.New("标注任务不存在") + } + cfg := annotateRewardConfig(ctx) + err = common.Serial().Submit(ctx, func() error { + if err := dao.AnnotateTask.Stop(ctx, req.Id); err != nil { + return err + } + if err := dao.AnnotateRecord.DeleteExpiredPending(ctx, gtime.Now().Add(-time.Duration(cfg.ClaimTimeoutHour)*time.Hour)); err != nil { + return err + } + pool, err := dao.DatasetImage.ListPoolByTask(ctx, req.Id) + if err != nil { + return err + } + lockedIds, err := dao.AnnotateRecord.ListPendingImageIdsByTask(ctx, req.Id) + if err != nil { + return err + } + locked := make(map[int64]bool, len(lockedIds)) + for _, id := range lockedIds { + locked[id] = true + } + release := make([]int64, 0, len(pool)) + for _, img := range pool { + if !locked[img.Id] { + release = append(release, img.Id) + } + } + return dao.DatasetImage.ReleaseByTask(ctx, release, req.Id) + }) + if err != nil { + return nil, err + } + return &dto.AdminAnnotateTaskStopRes{}, nil +} + +// AdminReview 批量审核:通过 → review_status=2;拒绝 → 清标注回未标注池。 +// 多表变更(dataset_image + annotate_record + license 冻结)走 Serial + 事务; +// 审核后对涉及用户重算通过比例,低于阈值自动冻结(解冻后按 stats_since 重新累计)。 +func (s *annotateService) AdminReview(ctx context.Context, req *dto.AdminAnnotateReviewReq) (*dto.AdminAnnotateReviewRes, error) { + res := &dto.AdminAnnotateReviewRes{FrozenPhones: []string{}} + // 只审待审核图(重复审核/未标注图直接忽略) + images, err := dao.DatasetImage.GetByIds(ctx, req.ImageIds) + if err != nil { + return nil, err + } + ids := make([]int64, 0, len(images)) + for _, img := range images { + if img.ReviewStatus == consts.ReviewImagePending { + ids = append(ids, img.Id) + } + } + if len(ids) == 0 { + return res, nil + } + now := gtime.Now() + recordStatus := consts.AnnotateRecordRejected + if req.Approve { + recordStatus = consts.AnnotateRecordApproved + } + var phones []string + err = common.Serial().Submit(ctx, func() error { + return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { + if req.Approve { + if err := dao.DatasetImage.SetReviewStatus(ctx, ids, consts.ReviewImageApproved); err != nil { + return err + } + } else { + // 拒绝:清标注(不变式 0 ⟹ 无框)回未标注池,可被再次领取 + for _, id := range ids { + if err := dao.DatasetImage.UpdateLabelsAndReview(ctx, id, "", consts.ReviewImageNone); err != nil { + return err + } + } + } + if err := dao.AnnotateRecord.MarkReviewedByImages(ctx, ids, recordStatus, now); err != nil { + return err + } + phones, err = dao.AnnotateRecord.ListSubmittedPhonesByImages(ctx, ids) + return err + }) + }) + if err != nil { + return nil, err + } + res.Affected = int64(len(ids)) + // 审核后逐用户重算通过比例(IO 次数 = 涉及用户数,审核批量 ≤ 每页图片数,可控) + for _, phone := range phones { + frozen, err := s.maybeFreeze(ctx, phone) + if err != nil { + g.Log().Errorf(ctx, "标注低质冻结判定失败(%s): %+v", phone, err) + continue + } + if frozen { + res.FrozenPhones = append(res.FrozenPhones, phone) + } + } + return res, nil +} + +// maybeFreeze 通过比例过低自动冻结:已审核样本(stats_since 基线后)≥ FreezeMinReviewed 且 +// approved/(approved+rejected) < FreezeRatio → frozen_until = now + FreezeHours、基线重置(解冻后重新累计)。 +// 已到账时长不追溯扣回。返回是否触发冻结。 +func (s *annotateService) maybeFreeze(ctx context.Context, phone string) (bool, error) { + lic, err := dao.License.GetByPhone(ctx, phone) + if err != nil { + return false, err + } + if lic == nil { + return false, nil + } + stats, err := dao.AnnotateRecord.CountUserStats(ctx, phone, lic.AnnotateStatsSince) + if err != nil { + return false, err + } + reviewed := stats.Approved + stats.Rejected + if reviewed < int64(annotateRewardConfig(ctx).FreezeMinReviewed) { + return false, nil // 样本不足不判(防小样本误冻) + } + cfg := annotateRewardConfig(ctx) + if float64(stats.Approved)/float64(reviewed) >= cfg.FreezeRatio { + return false, nil + } + frozenUntil := gtime.Now().Add(time.Duration(cfg.FreezeHours) * time.Hour) + if err := dao.License.UpdateAnnotateState(ctx, phone, frozenUntil, gtime.Now()); err != nil { + return false, err + } + g.Log().Infof(ctx, "标注低质冻结: %s 通过 %d/%d,冻结至 %s", phone, stats.Approved, reviewed, frozenUntil) + return true, nil +} + +// AdminListRecords 用户标注记录分页(附图片文件/URL 与数据集名,内存组装) +func (s *annotateService) AdminListRecords(ctx context.Context, req *dto.AdminAnnotateRecordListReq) (*dto.AdminAnnotateRecordListRes, error) { + page, size := common.NormalizePage(req.Page, req.Size) + list, total, err := dao.AnnotateRecord.PageByFilter(ctx, req.Phone, req.TaskId, req.DatasetId, req.Status, page, size) + if err != nil { + return nil, err + } + res := &dto.AdminAnnotateRecordListRes{Total: total, List: make([]*dto.AdminAnnotateRecordItem, 0, len(list))} + if len(list) == 0 { + return res, nil + } + imageIds := make([]int64, 0, len(list)) + for _, r := range list { + imageIds = append(imageIds, r.ImageId) + } + images, err := dao.DatasetImage.GetByIds(ctx, imageIds) + if err != nil { + return nil, err + } + imageMap := make(map[int64]*entity.DatasetImage, len(images)) + datasetIds := make([]int64, 0) + for _, img := range images { + imageMap[img.Id] = img + datasetIds = append(datasetIds, img.DatasetId) + } + names := Training.datasetNameMap(ctx) + for _, r := range list { + item := &dto.AdminAnnotateRecordItem{ + Id: r.Id, + PhoneNum: r.PhoneNum, + TaskId: r.TaskId, + ImageId: r.ImageId, + Status: r.Status, + CreatedAt: r.CreatedAt, + SubmittedAt: r.SubmittedAt, + ReviewedAt: r.ReviewedAt, + } + if img := imageMap[r.ImageId]; img != nil { + item.Filename = img.Filename + item.DatasetName = names[img.DatasetId] + item.ImageUrl = datasetImageUrl(ctx, img.DatasetId, img.Filename) // 管理端页面展示:admin token 鉴权 + } + if r.LabelsJson != "" { + var boxes []*dto.AdminLabelBox + if json.Unmarshal([]byte(r.LabelsJson), &boxes) == nil { + item.Boxes = boxes + } + } + res.List = append(res.List, item) + } + return res, nil +} + +// AdminUnfreeze 手动解冻:清冻结标记与统计基线(历史重新累计) +func (s *annotateService) AdminUnfreeze(ctx context.Context, req *dto.AdminAnnotateUnfreezeReq) (*dto.AdminAnnotateUnfreezeRes, error) { + lic, err := dao.License.GetByPhone(ctx, req.Phone) + if err != nil { + return nil, err + } + if lic == nil { + return nil, gerror.New("账号不存在") + } + if err := dao.License.UpdateAnnotateState(ctx, req.Phone, nil, nil); err != nil { + return nil, err + } + return &dto.AdminAnnotateUnfreezeRes{}, nil +} + +// ---------- App ---------- + +// AppTaskList 可领任务列表 + 我的统计(冻结中仍展示,领取时拒绝) +func (s *annotateService) AppTaskList(ctx context.Context, req *dto.AnnotateTaskListReq) (*dto.AnnotateTaskListRes, error) { + phone := common.PhoneFromCtx(ctx) + tasks, err := dao.AnnotateTask.ListPublished(ctx) + if err != nil { + return nil, err + } + res := &dto.AnnotateTaskListRes{List: make([]*dto.AnnotateTaskItem, 0, len(tasks))} + stats, err := s.buildStats(ctx, phone) + if err != nil { + return nil, err + } + res.Stats = stats + if len(tasks) == 0 { + return res, nil + } + datasetIds := make([]int64, 0, len(tasks)) + taskIds := make([]int64, 0, len(tasks)) + for _, t := range tasks { + datasetIds = append(datasetIds, t.DatasetId) + taskIds = append(taskIds, t.Id) + } + datasets, err := dao.Dataset.GetByIds(ctx, datasetIds) + if err != nil { + return nil, err + } + datasetMap := make(map[int64]*entity.Dataset, len(datasets)) + for _, d := range datasets { + datasetMap[d.Id] = d + } + names := Training.datasetNameMap(ctx) + poolCnt, err := dao.DatasetImage.CountPoolByTaskIds(ctx, taskIds) + if err != nil { + return nil, err + } + for _, t := range tasks { + item := &dto.AnnotateTaskItem{ + Id: t.Id, + Name: t.Name, + DatasetId: t.DatasetId, + DatasetName: names[t.DatasetId], + PoolRemain: poolCnt[t.Id], + } + if d := datasetMap[t.DatasetId]; d != nil { + item.Species = annotateSpecies(d) + } + res.List = append(res.List, item) + } + return res, nil +} + +// AppClaim 领取:惰性释放过期锁 → 任务占用池内挑未处理过且未被锁定的图 → Serial+事务插入 pending 记录 +func (s *annotateService) AppClaim(ctx context.Context, req *dto.AnnotateClaimReq) (*dto.AnnotateClaimRes, error) { + phone := common.PhoneFromCtx(ctx) + cfg := annotateRewardConfig(ctx) + task, err := dao.AnnotateTask.GetById(ctx, req.TaskId) + if err != nil { + return nil, err + } + if task == nil { + return nil, gerror.New("标注任务不存在") + } + if task.Status != consts.AnnotateTaskPublished { + return nil, gerror.New("任务已停用") + } + lic, err := dao.License.GetByPhone(ctx, phone) + if err != nil { + return nil, err + } + if lic == nil { + return nil, gerror.New("账号不存在") + } + if annotateFrozen(lic) != nil { + return nil, gerror.Newf("标注资格已冻结(%s 解冻),暂不可领取任务", lic.AnnotateFrozenUntil) + } + dataset, err := dao.Dataset.GetById(ctx, task.DatasetId) + if err != nil { + return nil, err + } + if dataset == nil { + return nil, gerror.NewCode(common.CodeDatasetNotFound) + } + res := &dto.AnnotateClaimRes{Images: []*dto.AnnotateClaimImage{}, Species: annotateSpecies(dataset)} + // 惰性释放:超时未提交的领取锁直接删除(未产生任何标注,非处理记录) + if err := dao.AnnotateRecord.DeleteExpiredPending(ctx, gtime.Now().Add(-time.Duration(cfg.ClaimTimeoutHour)*time.Hour)); err != nil { + return nil, err + } + // 候选挑选放在 Serial 临界区内(挑图 + 插锁全程串行):两个用户并发领取时, + // 后者读到的 pending 锁一定包含前者刚插入的,同一张图不会分给多人—— + // partial unique index(image_id WHERE pending) 是跨实例兜底的最后一道防线 + now := gtime.Now() + var picked []*entity.DatasetImage + err = common.Serial().Submit(ctx, func() error { + pool, err := dao.DatasetImage.ListPoolByTask(ctx, task.Id) + if err != nil { + return err + } + mine, err := dao.AnnotateRecord.ListImageIdsByPhone(ctx, phone) + if err != nil { + return err + } + locked, err := dao.AnnotateRecord.ListPendingImageIds(ctx) + if err != nil { + return err + } + exclude := make(map[int64]bool, len(mine)+len(locked)) + for _, id := range mine { + exclude[id] = true + } + for _, id := range locked { + exclude[id] = true + } + picked = make([]*entity.DatasetImage, 0, cfg.ClaimSize) + for _, img := range pool { + if len(picked) >= cfg.ClaimSize { + break + } + if exclude[img.Id] { + continue + } + picked = append(picked, img) + } + if len(picked) == 0 { + return nil + } + return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { + for _, img := range picked { + if err := dao.AnnotateRecord.InsertInTx(ctx, tx, &entity.AnnotateRecord{ + PhoneNum: phone, + TaskId: task.Id, + DatasetId: task.DatasetId, + ImageId: img.Id, + Status: consts.AnnotateRecordPending, + CreatedAt: now, + }); err != nil { + return err + } + } + return nil + }) + }) + if err != nil { + return nil, err + } + if len(picked) == 0 { + return res, nil + } + dir := common.DatasetImagesDir(ctx, dataset.Name) + for _, img := range picked { + item := &dto.AnnotateClaimImage{ + ImageId: img.Id, + Url: annotateImageUrl(ctx, dataset.Id, img.Filename), + } + if data, rErr := os.ReadFile(filepath.Join(dir, img.Filename)); rErr == nil { + item.Width, item.Height = imageSize(data) + } + res.Images = append(res.Images, item) + } + return res, nil +} + +// AppSubmit 提交标注:写 labels_json + 待审核;每累计 RewardPerImages 张有效提交即时发时长 +// (expires_at = max(now, expires_at) + RewardMinutes 分钟级顺延;当日累计超上限不再发) +func (s *annotateService) AppSubmit(ctx context.Context, req *dto.AnnotateSubmitReq) (*dto.AnnotateSubmitRes, error) { + phone := common.PhoneFromCtx(ctx) + cfg := annotateRewardConfig(ctx) + for _, box := range req.Boxes { + if box.Cx < 0 || box.Cy < 0 || box.W <= 0 || box.H <= 0 || box.Cx > 1 || box.Cy > 1 { + return nil, gerror.New("标注框坐标非法(需 0~1 归一化)") + } + } + raw, err := json.Marshal(req.Boxes) + if err != nil { + return nil, gerror.Wrap(err, "标注序列化失败") + } + record, err := dao.AnnotateRecord.GetMyPending(ctx, phone, req.ImageId) + if err != nil { + return nil, err + } + if record == nil { + return nil, gerror.New("未领取该图片或已提交") + } + img, err := dao.DatasetImage.GetById(ctx, req.ImageId) + if err != nil { + return nil, err + } + if img == nil { + return nil, gerror.NewCode(common.CodeImageNotFound) + } + now := gtime.Now() + // Serial 内先提交(提交计数与发放判定串行化,防并发双发) + err = common.Serial().Submit(ctx, func() error { + return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { + if err := dao.AnnotateRecord.MarkSubmitted(ctx, record.Id, string(raw), now); err != nil { + return err + } + // App 提交一律进待审核(空框=「画面无目标」的主张,同样待审核确认) + if err := dao.DatasetImage.UpdateLabelsAndReview(ctx, img.Id, string(raw), consts.ReviewImagePending); err != nil { + return err + } + // 奖励判定:累计提交数整跨 RewardPerImages → 尝试发放 + stats, err := dao.AnnotateRecord.CountUserStats(ctx, phone, nil) + if err != nil { + return err + } + if stats.SubmittedTotal%int64(cfg.RewardPerImages) != 0 { + return nil + } + dayStart := gtime.New(now.Format("Y-m-d") + " 00:00:00") + todaySum, err := dao.RewardLog.SumMinutesByPhoneSince(ctx, phone, dayStart) + if err != nil { + return err + } + if todaySum+cfg.RewardMinutes > cfg.DailyCapMinutes { + g.Log().Infof(ctx, "标注奖励触达日上限不发: %s 今日已得 %d 分钟", phone, todaySum) + return nil + } + lic, err := dao.License.GetByPhoneInTx(ctx, tx, phone) + if err != nil { + return err + } + if lic == nil { + return gerror.New("账号不存在") + } + base := now + if lic.ExpiresAt != nil && lic.ExpiresAt.Timestamp() > now.Timestamp() { + base = lic.ExpiresAt + } + newExpires := base.Add(time.Duration(cfg.RewardMinutes) * time.Minute) + if err := dao.License.ExtendExpiresInTx(ctx, tx, phone, newExpires); err != nil { + return err + } + if err := dao.RewardLog.InsertInTx(ctx, tx, phone, cfg.RewardMinutes, record.TaskId, now); err != nil { + return err + } + common.ClearCache(ctx, "license:"+phone) + g.Log().Infof(ctx, "标注奖励发放: %s +%d 分钟,到期 %s", phone, cfg.RewardMinutes, newExpires) + return nil + }) + }) + if err != nil { + return nil, err + } + // 回程统计(展示口径,允许轻微滞后) + dayStart := gtime.New(now.Format("Y-m-d") + " 00:00:00") + todaySum, _ := dao.RewardLog.SumMinutesByPhoneSince(ctx, phone, dayStart) + lic, _ := dao.License.GetByPhone(ctx, phone) + stats, _ := dao.AnnotateRecord.CountUserStats(ctx, phone, nil) + var expiresAt *gtime.Time + if lic != nil { + expiresAt = lic.ExpiresAt + } + return &dto.AnnotateSubmitRes{ + Granted: stats.SubmittedTotal > 0 && stats.SubmittedTotal%int64(cfg.RewardPerImages) == 0, + Minutes: cfg.RewardMinutes, + TodayEarnedMinutes: todaySum, + ExpiresAt: expiresAt, + ProgressDone: stats.SubmittedTotal % int64(cfg.RewardPerImages), + }, nil +} + +// AppMe 我的标注统计 +func (s *annotateService) AppMe(ctx context.Context, req *dto.AnnotateMeReq) (*dto.AnnotateMeRes, error) { + stats, err := s.buildStats(ctx, common.PhoneFromCtx(ctx)) + if err != nil { + return nil, err + } + return &dto.AnnotateMeRes{Stats: stats}, nil +} + +// buildStats 我的统计组装(任务列表/我的页/提交回程共用) +func (s *annotateService) buildStats(ctx context.Context, phone string) (*dto.AnnotateStats, error) { + cfg := annotateRewardConfig(ctx) + stats := &dto.AnnotateStats{ + RewardPerImages: cfg.RewardPerImages, + RewardMinutes: cfg.RewardMinutes, + DailyCapMinutes: cfg.DailyCapMinutes, + ApproveRatio: 1, // 无样本不惩罚 + ProgressDone: 0, + } + lic, err := dao.License.GetByPhone(ctx, phone) + if err != nil { + return nil, err + } + var since *gtime.Time + if lic != nil { + since = lic.AnnotateStatsSince + stats.FrozenUntil = annotateFrozen(lic) + stats.ExpiresAt = lic.ExpiresAt + } + rec, err := dao.AnnotateRecord.CountUserStats(ctx, phone, since) + if err != nil { + return nil, err + } + stats.SubmittedTotal = rec.SubmittedTotal + stats.Approved = rec.Approved + stats.Rejected = rec.Rejected + if reviewed := rec.Approved + rec.Rejected; reviewed > 0 { + stats.ApproveRatio = float64(rec.Approved) / float64(reviewed) + } + stats.ProgressDone = rec.SubmittedTotal % int64(cfg.RewardPerImages) + total, err := dao.RewardLog.SumMinutesByPhone(ctx, phone) + if err != nil { + return nil, err + } + stats.TotalEarnedMinutes = total + dayStart := gtime.New(gtime.Now().Format("Y-m-d") + " 00:00:00") + today, err := dao.RewardLog.SumMinutesByPhoneSince(ctx, phone, dayStart) + if err != nil { + return nil, err + } + stats.TodayEarnedMinutes = today + return stats, nil +} diff --git a/server/biz/service/dataset.go b/server/biz/service/dataset.go index b06c342..f3393be 100644 --- a/server/biz/service/dataset.go +++ b/server/biz/service/dataset.go @@ -499,6 +499,9 @@ func (s *datasetService) CompressExistingCovers(ctx context.Context) error { // AdminCreateDataset 新建数据集:名称唯一(UNIQUE 兜底)+ 创建图片目录 + // VLM 同步生成生成参数池(失败不阻断创建,poolsGenerated/poolError 反馈)。 func (s *datasetService) AdminCreateDataset(ctx context.Context, req *dto.AdminDatasetCreateReq) (*dto.AdminDatasetCreateRes, error) { + if req.Name == consts.NegativeDatasetName { + return nil, gerror.New("该名称为负样本库保留名,请更换数据集名称") + } now := gtime.Now() var id int64 err := common.Serial().Submit(ctx, func() error { @@ -571,6 +574,47 @@ func (s *datasetService) AdminCreateDataset(ctx context.Context, req *dto.AdminD return res, nil } +// AdminNegativeLibrary 获取负样本库(技术设计.md「负样本库」):source=negative 的固定保留名 +// 特殊数据集,不存在则 Serial 内懒创建(防并发重建)+ 建目录;返回 id 与图片数, +// 管理端「负样本」tab 复用既有上传/图片列表/删除接口(负样本无标注/审核/清洗/生成流程) +func (s *datasetService) AdminNegativeLibrary(ctx context.Context, req *dto.AdminDatasetNegativeReq) (*dto.AdminDatasetNegativeRes, error) { + now := gtime.Now() + var lib *entity.Dataset + err := common.Serial().Submit(ctx, func() error { + existing, err := dao.Dataset.GetByName(ctx, consts.NegativeDatasetName) + if err != nil { + return err + } + if existing != nil { + lib = existing + return nil + } + id, err := dao.Dataset.Insert(ctx, &entity.Dataset{ + Name: consts.NegativeDatasetName, + Source: consts.DatasetSourceNegative, + Status: consts.DatasetStatusBuilding, + CreatedAt: now, + UpdatedAt: now, + }) + if err != nil { + return err + } + lib, err = dao.Dataset.GetById(ctx, id) + return err + }) + if err != nil { + return nil, err + } + if err := os.MkdirAll(common.DatasetImagesDir(ctx, lib.Name), 0o755); err != nil { + return nil, gerror.Wrap(err, "创建负样本库目录失败") + } + cnt, err := dao.DatasetImage.CountByDataset(ctx, lib.Id) + if err != nil { + return nil, err + } + return &dto.AdminDatasetNegativeRes{Id: lib.Id, Name: lib.Name, ImageCount: cnt}, nil +} + // ensureJpeg 模型生成的图片统一转 jpg:解码校验 + 非 jpeg(png/webp 等)转 jpeg(Quality 92)。 // 生成服务返回格式不可控,扩展名统一 .jpg,内容须与扩展名一致(RF-DETR 按扩展名推断 mime 提交)。 func ensureJpeg(data []byte) ([]byte, error) { @@ -819,6 +863,9 @@ func (s *datasetService) AdminDeleteDataset(ctx context.Context, req *dto.AdminD if d == nil { return gerror.NewCode(common.CodeDatasetNotFound) } + if d.Source == consts.DatasetSourceNegative { + return gerror.New("负样本库不可删除整库(如需清理请逐张删除图片)") + } name = d.Name modelName = modelFileName(d.Name, d.NamePrefix) // 预标注任务进行中(RF-DETR 正在扫该数据集图片) @@ -904,13 +951,7 @@ func (s *datasetService) AdminUploadImages(ctx context.Context, req *dto.AdminDa if len(saved) == 0 { return res, nil } - // 标注强语义:未配置标注服务时不允许产生无标注图(文件已落盘,失败则清掉) - if common.LocalAiClient(ctx) == nil { - for _, name := range saved { - _ = os.Remove(filepath.Join(dir, name)) - } - return nil, gerror.NewCode(common.CodeLocalAiNotConfigured) - } + // 标注不再强制(2026-09-04 自动标注退场):未配置 localAi 也可上传,图片以未标注态入池 addedIds := make([]int64, 0, len(saved)) err = common.Serial().Submit(ctx, func() error { for _, name := range saved { @@ -943,30 +984,7 @@ func (s *datasetService) AdminUploadImages(ctx context.Context, req *dto.AdminDa } return nil, err } - // 自动触发标注:忙(已有 running 任务)不报错,由任务完成后的自动补标轮兜底;其他失败回滚本次入库 - newImages, err := dao.DatasetImage.GetByIds(ctx, addedIds) - if err != nil { - return nil, err - } - if err := LabelTask.AutoLabel(ctx, dataset, newImages); err != nil { - // 触发失败回滚本次入库(manual 上传文件非付费资产,可删) - rollbackIds := make([]int64, 0, len(newImages)) - for _, img := range newImages { - rollbackIds = append(rollbackIds, img.Id) - if rErr := os.Remove(filepath.Join(dir, img.Filename)); rErr != nil { - g.Log().Warningf(ctx, "回滚删除图片文件失败: %s: %v", img.Filename, rErr) - } - } - if rErr := common.Serial().Submit(ctx, func() error { - if dErr := dao.DatasetImage.DeleteByIds(ctx, rollbackIds); dErr != nil { - return dErr - } - return dao.Dataset.UpdateCounters(ctx, dataset.Id, -int64(len(rollbackIds)), 0, "") - }); rErr != nil { - g.Log().Errorf(ctx, "自动标注触发失败后的入库回滚失败: %v", rErr) - } - return nil, err - } + // 上传不触发标注(2026-09-04 自动标注退场):图片以未标注态入池(管理端预标/众包任务池) return res, nil } @@ -1244,10 +1262,10 @@ func (s *datasetService) AdminGenerateImages(ctx context.Context, req *dto.Admin if dataset == nil { return nil, gerror.NewCode(common.CodeDatasetNotFound) } - // 标注强语义:未配置标注服务时不允许开始生成(避免付费资产生成后无法标注) - if common.LocalAiClient(ctx) == nil { - return nil, gerror.NewCode(common.CodeLocalAiNotConfigured) + if dataset.Source == consts.DatasetSourceNegative { + return nil, gerror.New("负样本库不支持 AI 生成图片") } + // 标注不再强制(2026-09-04 自动标注退场):未配置 localAi 也可生成,图以未标注态入池 dir := common.DatasetImagesDir(ctx, dataset.Name) if err := os.MkdirAll(dir, 0o755); err != nil { return nil, gerror.Wrap(err, "创建图片目录失败") @@ -1386,7 +1404,6 @@ func (s *datasetService) runGenTask(taskId int64, dataset *entity.Dataset, req * }) } if failed != "" { - s.genTaskAutoLabel(bgCtx, dataset, addedIds) // 部分失败:已入库图按付费资产保留,计数须计入(曾漏更新致 image_count 漂移为负) if err := common.Serial().Submit(bgCtx, func() error { return dao.Dataset.UpdateCounters(bgCtx, dataset.Id, int64(generated), -1, "") @@ -1396,33 +1413,16 @@ func (s *datasetService) runGenTask(taskId int64, dataset *entity.Dataset, req * _ = dao.GenTask.Finish(bgCtx, taskId, failed) return } - // 全部成功:更新数据集计数 → 自动标注 → 置 done + // 全部成功:更新数据集计数 → 置 done(图以未标注态入池,2026-09-04 自动标注退场) if err := common.Serial().Submit(bgCtx, func() error { return dao.Dataset.UpdateCounters(bgCtx, dataset.Id, int64(generated), -1, "") }); err != nil { g.Log().Errorf(bgCtx, "生成任务 %d 更新数据集计数失败: %+v", taskId, err) } - s.genTaskAutoLabel(bgCtx, dataset, addedIds) _ = dao.GenTask.Finish(bgCtx, taskId, "") }() } -// genTaskAutoLabel 生成任务完成后对本次新增图触发自动标注:忙(已有 running 任务)不报错, -// 由标注任务完成后的自动补标轮兜底;其他失败只记日志(付费资产,不可删)。 -func (s *datasetService) genTaskAutoLabel(ctx context.Context, dataset *entity.Dataset, addedIds []int64) { - if len(addedIds) == 0 { - return - } - newImages, err := dao.DatasetImage.GetByIds(ctx, addedIds) - if err != nil { - g.Log().Errorf(ctx, "生成任务后读取新增图失败: %+v", err) - return - } - if err := LabelTask.AutoLabel(ctx, dataset, newImages); err != nil { - g.Log().Errorf(ctx, "生成任务后自动标注触发失败: %+v", err) - } -} - // AdminGenTaskQuery 生成任务进度(最近一次;无任务返回 nil) func (s *datasetService) AdminGenTaskQuery(ctx context.Context, req *dto.AdminGenTaskQueryReq) (*dto.AdminGenTaskQueryRes, error) { dataset, err := dao.Dataset.GetById(ctx, req.DatasetId) @@ -1467,12 +1467,13 @@ func (s *datasetService) AdminListImages(ctx context.Context, req *dto.AdminData items := make([]*dto.AdminImageItem, 0, len(list)) for _, v := range list { items = append(items, &dto.AdminImageItem{ - Id: v.Id, - Filename: v.Filename, - Source: v.Source, - Url: datasetImageUrl(ctx, dataset.Id, v.Filename), - CleanExcluded: v.CleanExcluded, - CreatedAt: v.CreatedAt, + Id: v.Id, + Filename: v.Filename, + Source: v.Source, + Url: datasetImageUrl(ctx, dataset.Id, v.Filename), + CleanExcluded: v.CleanExcluded, + AnnotateTaskId: v.AnnotateTaskId, + CreatedAt: v.CreatedAt, }) } return &dto.AdminDatasetImagesRes{List: items}, nil diff --git a/server/biz/service/label_task.go b/server/biz/service/label_task.go index 3f4ab03..5358486 100644 --- a/server/biz/service/label_task.go +++ b/server/biz/service/label_task.go @@ -87,6 +87,9 @@ func (s *labelTaskService) AdminStartLabelTask(ctx context.Context, req *dto.Adm if dataset == nil { return nil, gerror.NewCode(common.CodeDatasetNotFound) } + if dataset.Source == consts.DatasetSourceNegative { + return nil, gerror.New("负样本库图片无需标注(训练打包时以空标签作为背景参与)") + } if common.LocalAiClient(ctx) == nil { return nil, gerror.NewCode(common.CodeLocalAiNotConfigured) } @@ -158,46 +161,9 @@ func (s *labelTaskService) startDetection(ctx context.Context, dataset *entity.D return taskId, nil } -// AutoLabel 图片入库自动触发标注(上传/AI 生成成功后调用):只标本次新增图。 -// localAi 未配置 → 报错(调用方拒绝/回滚,不允许产生无标注图); -// 已有 running 任务(忙)→ 不报错:本次跳过,由任务成功完成后的自动补标轮兜底。 -func (s *labelTaskService) AutoLabel(ctx context.Context, dataset *entity.Dataset, images []*entity.DatasetImage) error { - if len(images) == 0 { - return nil - } - if common.LocalAiClient(ctx) == nil { - return gerror.NewCode(common.CodeLocalAiNotConfigured) - } - names := make([]string, 0, len(images)) - for _, img := range images { - names = append(names, img.Filename) - } - filenamesJSON := "" - if raw, jErr := json.Marshal(names); jErr == nil { - filenamesJSON = string(raw) - } - _, err := s.startDetection(ctx, dataset, images, filenamesJSON) - if err != nil && gerror.HasCode(err, common.CodeLabelTaskRunning) { - return nil // 忙:不报错 - } - return err -} - -// autoSupplement 自动补标:任务成功完成后,该数据集仍有从未扫描过的图(忙时入库等)则续一轮 -// 只扫未扫描图;失败任务不续(防配置故障时无限重试)。 -// 池语义 = labels 为 null/”(见 ListUnlabeledByDataset),已扫过的图(含空检出写 '[]')不入池—— -// 空检出图若留池中,每轮完成续一轮只会轮到别的空图、轮完又轮回来(2026-09-02 兔子 3 张空检出 -// 实测 {9}→{10,17}→{9}… 乒乓死循环,RNPHE_202 单张案例侥幸被上一版「排除本轮图」挡住); -// 空检出图重扫结果不变,确需重扫由人工触发(AdminStartLabelTask 指定文件名/全量)。 -func (s *labelTaskService) autoSupplement(ctx context.Context, dataset *entity.Dataset) { - unlabeled, err := dao.DatasetImage.ListUnlabeledByDataset(ctx, dataset.Id) - if err != nil || len(unlabeled) == 0 { - return - } - if err := s.AutoLabel(ctx, dataset, unlabeled); err != nil { - g.Log().Infof(ctx, "自动补标未触发(数据集 %d): %v", dataset.Id, err) - } -} +// AutoLabel 已随自动标注退场删除(2026-09-04 用户定案):上传/生成入库不再触发标注, +// 标注唯一入口 = 管理端勾选图片「预标」(AdminStartLabelTask); +// 原 autoSupplement 自动补标机制一并删除(空检出乒乓问题随机制消亡)。 // runDetection 预标注执行协程(生命周期任务):池内逐张检测,进度经 Serial 更新。 // 每张:读图 → 全图检测(等比缩放提交,坐标映射回原图归一化)→ 标注(conf≥confConfirmed 为 class 0)。 @@ -272,14 +238,19 @@ func (s *labelTaskService) runDetection(ctx context.Context, taskId int64, datas _ = dao.LabelTask.Finish(bgCtx, taskId, failed) return } - // 全部成功:Serial 内逐张覆写标注(重跑覆盖该图标注,人工保存同走 UpdateLabels) + // 全部成功:Serial 内逐张覆写标注(重跑覆盖该图标注); + // 有检出框 → 待审核(1),空检出 → 未标注(0)(无框可审,等人工画框) err := common.Serial().Submit(bgCtx, func() error { for i := range results { raw, jErr := json.Marshal(results[i]) if jErr != nil { return gerror.Wrap(jErr, "标注序列化失败") } - if uErr := dao.DatasetImage.UpdateLabels(bgCtx, images[i].Id, string(raw)); uErr != nil { + status := consts.ReviewImageNone + if len(results[i]) > 0 { + status = consts.ReviewImagePending + } + if uErr := dao.DatasetImage.UpdateLabelsAndReview(bgCtx, images[i].Id, string(raw), status); uErr != nil { return uErr } } @@ -290,9 +261,6 @@ func (s *labelTaskService) runDetection(ctx context.Context, taskId int64, datas return } _ = dao.LabelTask.Finish(bgCtx, taskId, "") - // 成功完成:自动补标该数据集从未扫描过的图(忙时入库的图等兜底),失败任务不续; - // 空检出 '[]' 图不入池(见 ListUnlabeledByDataset),每张图同链条最多被自动扫一次 - s.autoSupplement(bgCtx, dataset) }() } @@ -579,6 +547,7 @@ func (s *labelTaskService) buildWorkbenchItems(ctx context.Context, dataset *ent item.Labeled = true } } + item.ReviewStatus = img.ReviewStatus if data, rErr := os.ReadFile(filepath.Join(imgDir, img.Filename)); rErr == nil { item.Width, item.Height = imageSize(data) } @@ -630,18 +599,20 @@ func (s *labelTaskService) AdminLabelSave(ctx context.Context, req *dto.AdminLab return nil, gerror.New("标注框坐标非法(需 0~1 归一化)") } } - // 空框 = 清空标注 + // 空框 = 清空标注;人工保存即审核定稿(有框→2 已审核,空框→0 未标注回池) raw := "" + reviewStatus := consts.ReviewImageNone if len(req.Boxes) > 0 { b, err := json.Marshal(req.Boxes) if err != nil { return nil, gerror.Wrap(err, "标注序列化失败") } raw = string(b) + reviewStatus = consts.ReviewImageApproved } var labeled int64 if err := common.Serial().Submit(ctx, func() error { - if err := dao.DatasetImage.UpdateLabels(ctx, img.Id, raw); err != nil { + if err := dao.DatasetImage.UpdateLabelsAndReview(ctx, img.Id, raw, reviewStatus); err != nil { return err } labeled, err = dao.DatasetImage.CountLabeledByDataset(ctx, dataset.Id) @@ -677,8 +648,11 @@ func (s *labelTaskService) prepareYoloSet(ctx context.Context, dataset *entity.D if img.CleanExcluded == 1 { continue // 数据清洗排除图不进训练集(图片/标注保留,可恢复) } + if img.ReviewStatus != consts.ReviewImageApproved { + continue // 训练集只收人工审核通过的图(标签质量闸门,2026-09-04 审核状态机) + } if img.LabelsJson == "" || img.LabelsJson == "[]" { - continue // 空标注图剔除 + continue // 空框(确认无目标)不进训练集:维持原负样本不入包行为 } var boxes []*dto.AdminLabelBox if json.Unmarshal([]byte(img.LabelsJson), &boxes) != nil || len(boxes) == 0 { @@ -723,9 +697,54 @@ func (s *labelTaskService) prepareYoloSet(ctx context.Context, dataset *entity.D } addSplit("train", trainItems) addSplit("val", valItems) + // 混入负样本库(技术设计.md「负样本库」):全部物种数据集共用一套统一背景样本, + // 库不存在/为空时行为与无负样本完全一致 + if err := s.appendNegatives(ctx, pkg); err != nil { + return nil, err + } return pkg, nil } +// appendNegatives 训练包混入负样本库图片:空标签 txt = 背景图(ultralytics 自动按背景学习, +// 无需改训练脚本),文件名加 neg_ 前缀防与主数据集图重名覆盖;负样本无审核语义 +// (不看 review_status/clean_excluded),同一 80/20 逻辑拆 train/val(val 含负样本 +// 可在训练指标中观测背景误检);label txt 写空内容。 +func (s *labelTaskService) appendNegatives(ctx context.Context, pkg *common.YoloPackage) error { + lib, err := dao.Dataset.GetByName(ctx, consts.NegativeDatasetName) + if err != nil { + return err + } + if lib == nil { + return nil + } + images, err := dao.DatasetImage.ListByDataset(ctx, lib.Id) + if err != nil { + return err + } + if len(images) == 0 { + return nil + } + idx := make([]int, len(images)) + for i := range idx { + idx[i] = i + } + randShuffle(idx) + nVal := len(idx) / 5 + srcDir := common.DatasetImagesDir(ctx, lib.Name) + for i, j := range idx { + split := "train" + if i < nVal { + split = "val" + } + name := "neg_" + images[j].Filename + pkg.Files = append(pkg.Files, + common.YoloFile{Name: filepath.Join("images", split, name), ImagePath: filepath.Join(srcDir, images[j].Filename)}, + common.YoloFile{Name: filepath.Join("labels", split, strings.TrimSuffix(name, filepath.Ext(name))+".txt"), Content: []byte{}}, + ) + } + return nil +} + // randShuffle Fisher-Yates 伪随机(固定种子,沿用原 prepare_yolo.py random.seed(42) 语义) func randShuffle(n []int) { state := uint32(42) diff --git a/server/biz/service/training.go b/server/biz/service/training.go index 17dab5b..5994a7a 100644 --- a/server/biz/service/training.go +++ b/server/biz/service/training.go @@ -387,6 +387,9 @@ func (s *trainingService) AdminStartTraining(ctx context.Context, req *dto.Admin if dataset == nil { return nil, gerror.NewCode(common.CodeDatasetNotFound) } + if dataset.Source == consts.DatasetSourceNegative { + return nil, gerror.New("负样本库不能单独训练(打包时自动混入各数据集)") + } variants, err := normalizeVariants(req.Variants, cfg) if err != nil { return nil, err diff --git a/server/biz/service/workspace/observer-latest.apk b/server/biz/service/workspace/observer-latest.apk new file mode 100644 index 0000000..dbb5e2a --- /dev/null +++ b/server/biz/service/workspace/observer-latest.apk @@ -0,0 +1 @@ +apk \ No newline at end of file diff --git a/server/config.yml b/server/config.yml index 5d1b194..a3497ce 100644 --- a/server/config.yml +++ b/server/config.yml @@ -110,6 +110,17 @@ labelTask: # 预标注并发度(逐张调 RF-DETR,缺失或非法时回退默认值) poolSize: 4 +annotateReward: + # 标注众包时长激励(技术设计.md「App 标注众包与时长激励」;缺失/非法回退 consts 默认值) + claimSize: 10 # 每次领取图片数 + claimTimeoutHour: 2 # 领取锁超时(pending 超时未提交视为放弃,领取时惰性释放) + rewardPerImages: 10 # 每累计提交 N 张发一次时长 + rewardMinutes: 30 # 每次发放分钟数(license 到期时间分钟级顺延) + dailyCapMinutes: 120 # 每日发放上限(自然日) + freezeRatio: 0.8 # 通过比例(approved/(approved+rejected))低于该值触发冻结 + freezeMinReviewed: 5 # 触发冻结判定的最小已审核样本数(防小样本误冻) + freezeHours: 24 # 冻结时长(license.annotate_frozen_until 时间戳对比自动解冻,基线重置后统计重新累计) + # 套餐定价(静态配置,改价 = 改本节点后重启服务;金额单位为分,展示名由 days 派生"N天") plans: - id: day diff --git a/server/data/observer.db b/server/data/observer.db index 4a657f0ebc9bf0297abaea17aea4159e6ca995eb..61ad51c1a9faec818179860a173c417a9fd62396 100644 GIT binary patch literal 2211840 zcmeEv31A%6k@n0;mgXKG*v6Pc2pnUuQGr%S5q8y6;;OQNo!F1OqDzLFA`Ygx?Y@?7n5x%*u%R|NmN z3;!#`|MWjM9zyz${Qr+S%Bz1g1cmO%@9C9zE_Csg^9V=AK^Ri zpM3l5$tAOIzhmm;63crfH~C9SYEmWo-@VgkPk#U8`%7ltfA6&0?|-yp%H&5&Zhvt0 zjC-e}j%kyp&z^|)jT%xV`uo#o%r2S!;MA#9TwPO}u1hRTqt4lrA3?sUtf_ucW0Fd2 zWhHk_zWeqEr_L@Jzc5j^C{a6}Dr#t~U)a!Wyi8fi#&n`NovK79S?eyTO;n|8n=0ow z)z_&-6HAhbx>OBdO`CI3$Ai=Fo%P`4lAE$sVLdZF@&r->j-%0xD9+vVNnl(~XVwjaoa@7q;%Pf=Y$eHFY&j^Rk`i&yu}K zeS1Qi?~3BlW5>Fe)tEV2>!+ZF=vrnD#j}_UN^^}rP2d}Bs__RwY~ohDX<;~nK4ykh zMXxehzo?G5c5sraTmxdTw+DZ>$;1Hz!cn!TrZ%NBfk{s6kP~8y8b~fwF|rqB;)Wl;yJp>8I4+6O^$+V&_}}wWg`Emh>*u-S#&O(NUF9UAH@2{L5G3XuV zL;@h)P@kM<^!|Xo!^hPAsY)~_=Uu#RUZSc~>BTkL@QzO`ylp@+o>PaZ@unI!k~k_N#j~slBp5uJChdDnZwj^maph_)A(sA^G|qUXz}P<$GclX z>Nr)CT2k4NcxoXrI!3y5V`alUOu8&tUJciKr{6XC5zNK&eo-=GdWq$$o79Rb>lQ7X zphN~^BFk5mQOnO_C4A|h3YJfcl+dMr%3D4ivUE&P9iQ8uP+7oIX!%iSVFOE%$_R|4 zSs_;Y!o&*HRR*0j9cJk-^@Z9*9UE-f8#yl|=OyauFuT$Ja$ZO*q#0jj61_a&kZ9HV z1L{VN=~NB*>i)->Mxup7EzO~WdA+$y zqc}Aua{QppWy@P`ju6F-9tNnAlBM{JSx?%Mu9Or11k_QI;h>P7d)A4!!th*kZ^gw+&{pbTT?wUL|G5b#8zK3Q^z5C9) z@0y&RUDL2&%47H5Q&T5h7O;ZEDT2lq#)pPrN#)Tv$LoC4GBo7B-o(ptjO0{@^^V!~ z56-(iUjI~0TAcQD{X@6Ute5U7pY-HpSy@nBH6wZ7tZ9pC5^_RFNp}eIpPsv5(%oDl zUz405@ce+nER~zfTZRTLASqFmxisl|IMsY#Y{_H7l1Bdh)8@^8?5X>!>Kf9wrx!d~ z73J@^XOeX1tl3SqGajAw^!uy$s?f)~w6{AJhZMR_<5(V@fCjvDZhd9;~ z7;a(}V%~~{c!el2 zLWq|G9#QY0mhlBTq)}NEWloO8Vj83~W~Z9xO?%>zx$~7t=|#2o$Dl#@ zr{1+hcvR+RaKi1g=gRk$Pnj8;`=~55Hr}arA}^E){6L)uNK}$?O1Tgf!Lc^VGDtC< ziIxLSp4T|WkD1T#aJMV+50RG0uE>|e{}H((QW_Z^@kE4hcjW%a_ao~gKaU)ZJP}F! zeN6crEF20r6mTfuP{5&pLji{Z4h0+vI23Rw;85W2l>*^{>)qMi{VTMe+Wz~9NWl$M zs&9`E*MDo9)5G-N+V1gC{kOKc8_|C2`=?>OHMT_=Qj4?uaRK#rcGJwyJ~uYBe5~Bq zb@H-uV^64HS6^qe`Jg|b*h$}*Cd2G9KFX<<2~oq8GqmkKp~$*O+DZB$LVNhJtJ1R;8mWSF47s8$8k^d+mA&i}*V z?XJj=BmWZFA9*X%87Yc1MIMga8o56Flkiu0-vx6@^!>KLRRxOPj&0Y>Z~Dl(;pH1! zaBKD>>t2;Nr!2e6RBUOCzB4v_icCee&6gn~3nrm8+g3=SC0F0YC@|$_Hy}J$6io8v z>>a4<|H#X($R8rViTpD1?~$)Yx+2FThp-p0JF+A4a^ynf8-LL*b}Dx$;84J!fI|U? z0uBWn3OE#SDBw`Qp@2gHhXVhnDNtD8a)&7iQ4*viK#89cA0=K|=Nq;cx@Af+6%}1k zP?jyy%rb^hNg*W#lz0jXTt2q`KagGj_eDM*`BdZ|BX35|L{3BwM-D{3@_)J;9ONAe zI23Rw;84J!fI|U?0uBWn3OE#SDBw`Qp}=320<>hm$bJC5QcRlyIrl?~sA%Bz|BbFl zTckOXip-AO6%ivhMvg^(0ndM5hF8E>BOCv!XgZBK6mTfuP{5&pLji{Z4h0+vI23Rw z;84J!fJ1@55d}1tdb;P5u>M=WaiIU!e1k9_ds%ND%;jI!`-bN7&+x{fRfTX=O3 zf-D+QvGr$>_EU4kp!@sN9RL(+!05jVY`;C>f*X7$hXJ9`11@jyk1nkE?+yPZ{7QIw z=y##L!9OC)`Ew}XP{5&pLji{Z4h0+vI23Rw;84J!z~2!C9=NK=H9j zf8Ywek0j)hE4_hGmt@fz#L|YlseI-L0+i^Ptu#NNac+zQR8y}J(eb}q}`3>=saN{?*$)L})gF<>vgoGXvUjM~H!9$^Tj z3Z6%9T$b&%4N&fneAwlU%y&ipGt!N_|Njstp9Ma=WOVriXHz%6YmCcE!1wl{2 zSWhZ}$8@u6+31+ROcu~Ow_rm&Ay0#KQQ)}vK>gL8HUv!0hbJKNd z6_LV%>piuJDtZAm7C$j;2(}d17mF!WV}0G|$PZjY+`;04Yux%*9|EW$x7PAUBkqD5 z+=+&UO6`NIhM>4O@@=H1>XLcD}i zD#Un2jDsCgj8iN@J5er|@G{wUL=~96$dV|q*o{%dHXNFP-y@{!~%gbNXoCieshEX0xKPXCE)^*?zeHTwCwUZGCH2 zWVY?fY*^j5W&=HMJ<{FvTnRBPQ&v#{(AL)B*YtN=Lr4vgt=a=?9_X1wP%e@6-umSJT=lX}JCv)_L(m9Wpc3^_lsVQK%XI|#V7r>L%jd;0bgpuMke>N|P5 z@44eWTTc>vN7nWne68>F@xIebGb`5g?OIJQpE;JB)487@wt@r__MYENFYjCr z{6WH=?b~{`?P5R@k+e>qSlYCxsUe+gE}gUD>FQCg>%g63!JVPeAI zC=(N+SSE{ATv<9M@lsV>;>1LZ`1AhhGw+%Fc&Pyd@oDylnN>}>Dz}2RJzKZ*ytuRf zrFM{_w{u1B(c_G3*mLjRj_$7Al)3xm{?|97JHVm+FP_M3-O+dYu)(kfhvM7Jnd7}@ z-vYsHmG>`OPn~jhPv7b{PzkE)*?20m;#g)~CzFi+=g&ecEH#|j)w69qYpZwvTYYaW z%ba8 zp6NZ;(Yx^^Q0Uorpzp-t-i_z_x4pt7FIyXku&fhwpif>s3Ce(h87~2h%$6;g_4~3w zTIJr1Ag}|#ne)#vqt>c~Uu2pC~v*JMSj)QoU zWKh*WS>TVo)Vt$&&$<1CAk^O0xB9kjz?w7x(tKVA{15`-QONWUVDj#Y3Kvz-ST?g`NDYHuJTdHbEwOWf>QY&O?25Jd48_Efv z_iSB(9>%xOh~4Kp`&PGR4tFp{?(RCs^d%u_g_e-q-b&EsRbzR<-ntJkK>s5vueVm{N_FxRCOOlW|wPZ?@Jf@_rKBKwQGPOSygEqUm=n)s>I28hveMyhbPax zXYOKiLw(P0yQGGqQn?^f1o(Wq6%E) z^%^!6zeo6^e_;J_GWI?+5m8LyyO734%z z1U>S7wUCf8Z%>!SqGB3Trm94lBFJ)COialsftNW+l4#1*P%}4OU*~eQco!Poj`c?W znbrMg)(;?>@e&^W5Ut?Ea;OB)x zoD2UA@7a13r(ivs*7tV}D;VdgtgK7VO*GdmPFGgCmW2wga~oSw)#@*O3;84T%h>1r zsQOFaj9o;w_H4(rnI74;W)qp@oA(|YDZ{)$_=Ng~X@9L=%`k0I)KPV817ZG_71f}> zpKbpH3dVR;BzC&m=^brTNPSfIV`^1E)E&ZxA%U;CA1FSHuidKy+p*67aAXwj0W`n^ zKq@jc^1;X>k^3W4BmT(Uk@rO^B3C0iKzZb*NNJ=n{PA#4_*D3N;V*=@hp!5Egr5sn zg+CB}I{cIH%ZUGOmYM&x&qUxk|^UkcYn`oiL`9}Jcke=>Me@#l)a5-ctLM)2z5 z?*vB`cNhOCIJEfZL4WbDgN4O^@V+bXNAJYIZ@og`mtNWX-oQ`1cLjR9_jzXqzUO@? z@J;Uryj9+L-a7Awz!$umy;@G0+h@9x0Iy$8Hk1kQVp6rc5;3Y_wu_l5&UydU>| zs`z7p1KuxqzZTf-{fYOt-mAR7^gbQf>?`y(2R3;B=o{)S39R<{10BArz0U=n^NsR$ z_-+b3?JM=J_I<*4cc9t#i0}SDo%fr*`My+Oo^P>lYM{#3;A{1MFYp21hkc!ahkVO@ zFME3eGkqHa_xX1E-|g%3l?U$f?eTrd_lEBWzF+x{`MLt{^?k%lGww z;1hkn^9KVH{Y8Oy`6~QZ`iJ}8=fB6_7%1`I5xB}f+rKVwh5uUrbpJ>E`}|7+VgHT( zmHt=!Tm3itHwC1^WyeQ! zD*5ud-m`l$YjOTc2cOJ10)_*LZNn)kvk9Q1MB~)+&p0?l79eGX4Wk4+1%NE79K_RXWCV>ijJ2uhqmMNF|&J9 z&-%8^g`))O)*Z;~ZQt9wVp-pbeLZbE^h1#-PgW)|bq73--Ca&$`@d}uv={hY?s3DG z-#*Rdt5y%=D>-$SIZ?xE2ij!q@zP;b-Lq=V&(6Qxvtm^bj(IzG^ls_GLwDCXKtR?M zYd80{?ExIxsr5T?&P=s!-52N7Q~XUt7X6UE|D`sNi>TMNvHM&*9(Xzp+|t(b++IUh z|Lpv7e9pQM2a%aK520V_pnloT?lYbJFTdG+?lts!-=W>8noKYl9l;H2cCxSjS`5Vw z`rjdvT?$)eT5(kTG7KAF3DmP`YyalsMC*5mttPd5RJL07l!>iWdyhYZt=_h+z~3Je zVZ{FVK@ZXo9=aOot*`o!zWY_l0grB12GIigR$noqC;(6NsyOB=cj{^ty9}kR0`lkaj(wPTPoBIbxh9Ujo z;m44sk8((>k1jwu_ZW}#{sZ*YuU-dUo}sTlh3EfxBaHNyZ^V%kc?0Jco~sWIMb6I- zz8lZsgMh^S?}rGxpBy5Letc*q(%R$YNE=R2i~oG`e!Lkv^bAt};d_wtqr+6g?~kBP z_a6@9h{XN7BUI1#kKBv&+eaTn`kkW$`M(`2LHgUHi;y;-BHTaR^?szs&s>Z2*qQes z{pPV5NWX9*f^@-gqRIa|Mp($N5Y}HhPNlua>G`WC1f*X){$Zq_I{}KhKYxO1`^w4j zNI!d$DE#S@Payrw$@e0C;?x+V|9FaMwdfRZcRzWWpjvX8ushjB@Bil5dyszY^nFM_ zekzId>8=S#-|QNN^dC-9Tc127Aw7Ni5v1o&6NLZT1)8|eod!+Z&z>npdbTTt^w60Y z(yyNxhx8+7sYlw*67DabyAkP&=Lp)h7YLWeQ@0@PIzy%Za)zk-`q>Jkubm}2Y&y3D z>4x+4&d&4H*7EbWB0YNMA*8KmKZvyDEOE}hbJSl4&OVED&)KVx?mtJo*M5$kx10+g zef2ES@Rf5lNH?DQ0Mh5rUxReldFsa(&J!iqoTvQl7pV317YdMeULbDYd*L>un=eqE z>n>1l?l@2NtU6CHzjVG3>9TVK+t#!5knTQ9m>xMx`G?P7a_v5IW;oIlUDV1mU4-LX zr{^L)b((7a#wmjBQ>RECGbag#e>yoDY0rr&r1d9CkuE$=HGl0mVKo0(0_nGoQ7`=0 zQL5p4M-htK<2yoaC6BxdY1QF+Ov|rsr(XWhA++Tgd*~)S&pAl%eBj`Cq>sNr^*r_l zLHp?IX{7)CdU1HQtLOlD#^c%#I(yvvZ$MhG4^rSM+y{zziuOK;w0JK)d-tFhJj3^Z zqdX&CqvtDLyB_JN-SqzG-Jq4{%2!iJuX^=L)L-!mVJ+>Vo{jAy9uRlZv#^t%`5pAk z?V#uK?esixJ3ZgBjh-iLqvxBp()0MO^gM10J>Rf}o=ab*=j&gl=j&dg=WAc0=W908 z^VOT_`KlM`dCZIS9Na|Dflbtd{!P>)-c4mli#AdJ4%tLp;n_qz;(CF4#Qg$f%Jusf z1f>7D{xPIKe;$10`tb%Y(r>MYq`2;12VQmkZo~VL{$V}(&h^SVaHi{*FMy+5zjz*$ zas6h)9HhVAFahar*EJ&j*@il#{p+VA?OXqDq`m9WYpx%yZ$kQmHPDByAFjC$>6@zw zhVQKgJzd{j{Rq&XMyZ&`8LHqT!;AGdo ztfe=RRxm>l2-HsQcwk^uFs$o#=7b$2&nE*B3f(Mw;oo66t5xfNx#@u;y{3 zpI$Qs>1Wo=N7}uHYWrL#_|WxFYr+4nudJokzu0*%(#6Xlo32l-q5SW!LE<{U8XC!U zc6ABTGpnifuGK@3o?5jS>6YamLHg42B+{)bh9O*YITo+u~*K!*fx47|)BAMUgI9F)92t)N)0sMN6RitsO8!R7D4b5T1{Y~eCUmaDO2A<|vTr$j#CDq1e$`QO$T zB7JKeL6z#5hP0vsa_Uk#=>2Fr^(@yxZ&r4I$6U8|+=-O$APSUr5Dd3<5d1fGK&!ZJ z=zu)B-qmp}(s3PQklxgB1=8^y#5u8!BBT>K+(^sXKaBL|cIuG_+KF@i`-S_EzS>TZ z{B#3-`_RgfNN21hx@})U{VT7eK0UCKXtjSO_41CD1Xc6O8zWzL1y|jU=Oe2Gq=#0G zi~Q6zd==GmYE=!=ldB#@dTbR@qi9tK=^HDFdati+@C4s5C1%WR`W=5pQXG59LpF*DwCnIAcncyFSE5p6Phk~C9#Deb$e-3N!D}ql1uMZ9h z%n1A__-goQcvEN+d9Hv8JJTK$0U z9^V`Oss81GCD<_thVQ}Zv&0v~dbry=toZlEnc^=NpDBK|cunz>#fjo6#j)b+ihV`@ zQS|Mie=a&&w56!MsJ`gYqC1PqibfZ?hx~ZRzYKY6$o?VE4|#UT+#$1u+&X03kVxTw z75=dB^M$7icNMNGTvS+DcyD2}@S4Knf?pK;TfsjS94>gNU}?d^f`pjnS(w-R}#dCuvU7E3xG=+^)0bGTg4U%Jm*F9J!TAGgChLOlk0^AH(}7o5 z2Yk%?Axzc@)#YyY{_F}_>v`$ z!Tc|lJVt~sSn?PRK5x#8Ga7u(lE>=%tR;`(@fk}V!{gJIJch@o%y}|v9{*s;V|aYblE?6P%aX_Nc+--{`s0En z50mA2BMaRVJPV&#l&Gn#yTe! zPFP|t;9);ZBiA~7@u0atfOBsu=tse16#!i%m6(d-*xjh>W%DOWR4pj}XRKn~O`{4u z6SANQZ1ng42Z}0fQ1iI!ho;6(K-rzPGEPtdzj8myKB_jR(LrF11+gk}Pf;mWn_84y zP^s{0FJE)h{*Pf%<$jm>8(C3FHwJ4i_xnuW#Nz5VquRcJf~8i#qoRsb-~+)Qxct`@ zy5Hl$+RpuurAs*6C?Etr8M@Df=?ywdrzdqXu%qusv7yZ z0G4lV#R>~Ny;I@v+e61)Q-&A1Z}2dj8Oni;Q$J5DvyWOJ5SfM;z8K$(Hhsfv`-881 zAI*$46DcOC#2CI}L&5dC!dJRRnZV{@&kq3b31+B3bADr@s;Z{BGR~_+8u@9@j{(3x zTFOLGt#9ajlrTN4e-%@^ws1%ISr?WACaOh6mG>fB&!PzPI#ZEMqZ(?${MM4Ia?q7W z0U1^RCdgz-h3v}H5x46~6%(y%SjTvFw&RmYRx-z8YIjCzQS^wlNMuuv;8#(!SglU$ zH&N}GA^tZD35G%w&EgFIF<+lDHL}gd9=xKGAoyi`^ML6a9`_JH=gf6iPW;f@LlifDsi1S`NRah1{W zaJv4#9EzT@03|4D4}?gMq)eCyOz{leIJcmhHg6_}X;Z=VQ97NE{4~;s+yCE+ zd_D4|$Y&y-z}Y=Jx!tGj96_ph^zM$=WI6xZd z^C8&5}2dR|KkslcAQS7_N?0 zs!UQk=R<9`8LdrPklUIVqdRK|_kjMiU7S&&p>m}hF(RXJEm+3mrP>moQ(2dqc<)kbHeXUL)wXXN(u}HbLd!hB#v0Xfb2*U=bg@36ZY$ z;eHrrjbEbkEP|5Y<|+cBNLeAYiA9U2O`%7?_%*PmaquxBnnHtXL?=HBE64 z;S>f%BFa}_IsmSf;&~(oP2lb?Y;&UU3^6dz@q;!YD7eOm>&0NHymX>+u^hpGBwhm{ z%hrY#;|6a6H#dO=hUk3qAA{Ib2wb@oharu2Z86(~ro}4TCJovZLcBtVK{zG-Dyo&` zsaPTngz>=M*@m7h9~=pgS}NyaQ6-kQD+IM%j!AMXho6il$_8%&=0v!-&S%Bjh6T#w z<nyc89cyh@VF z<#G<=?jU_}(;!WV_@1DQ3J8{#XZoO*D?G|I$;|2Q%C_-(6M1GRAhbgIBO1rRm*+yT zS`Pgoig7*ESGEOpeomVFU3v?7bRb>1rc2-=WH*+l1y(MAjtJ15gM>QEFP&4_Hco3I zpPCh*8)#sKj>|VFvSP#uQ!oY1X+d3>mCl*bcB6qrC}%n2<+oB|he4d_Q<>;xn z0tZoyrDqMN3e`b2R88~SRLbCTIQW4=0~eAkN257|EGx&fDvB8{<`Wu=&Kfpom2u3^ zi6t>7hOV{=7OF%!hHi>i#u>r&W(~bql>*JoFhP~$c3EXrMoF#8axAI~+N{V$s*FO_ z^0-4Cv&CS;97e4&3a%%XgkWh{%nE0#tRY&u-DXwymX=|QP*6_R+Oc4W(AE_Lh}f4kH-o)m;h5o z4&;sI1)P;*0|tD+dNdi(s+=+{s#a;E1y+{Vb;6Rx6YRt;jVI8#0L#%|cj8>y{hyt* zZP7=T3-0btSPi(p+?hc7iOx!-7dl~Q;Xc^;IMO#daf0n$+4(Ti6`iw@ZtH{%i@T%q zex$xmI=%l>Cs~3NchbrKA3L#e<@#0USfo#O4oCWvPCEDgWTyw|Kd*Tj>G3sBAr;q< z<-*Q2fX6j|4OtLuR_!BRT*Kpe(;E8rh1J-$a&26Vwp`DzCVPYptLbci{VF<{U$+X7 zxYn+ckante4Qp0DgXh&N$xdX|${5m>E2;GrD}bqM`3iz?*$O)0?^q6+xSE!e)x(EW zn}x)3vLN{2GO`g!E+csETSmJIQMsQZQ(L49Hk?p`$ZSSM?e-XR}f^x&)|L@nT_rKoA z54;~jmh+dF0^u)A9_#ja+!3!g6!M0qxuzM$#wC4+4)&f~TEg*VoIo>bPHbFMN4^}Z zJs)#z8p`R?25W3u8o|2-7HCmK*wj?&#mZf-@JyG{d~3Ajxllo3+O$C-Xj+s^rkk2H z2%afjm~L*YNj6Pdc>By4chemcN-H?5L!%R|1!YQ1E5pPpCTB|<8q>)d@;0dzOK>_U zWQ$RnsIAq?pe1B+VrgAsVY;cbVgS!f&zeCg0W8=~mnN3v2M6U`RHWj?iP}k3^-C&i z>zhz_iGbM?=4V<#vbIStz#Vx@4uX}dX2-oB> z2D=sPxc4HxU5yiobV}>&A>ZA~I5M;QXy1v~DoSeV(m)I3tEnrgu5WxY(U|g=;IA>= zyr{9Rq$yonT}}kOY01Qrn-h(5oA7@(FTiVanKVuc&d3`eH}VSnAB9$oGxofBo`#+rkf@$s)hg4+NYX{MeFJ& zk+0LH@`k5MCzjL_^oa4QLQhcUfSznbRgJ`(=%EyVuSzs0=b0h@xOB}(lK{m?fUxgy zNdg3A2@%e6fmwhMbTw)c616BRLJ%*`RBB}(ID3i-QDp!Tg1ejeMJ328&R{B>?MP8O z$La78({Y%^p*%;3BvDdy=`snCKu*IHMf<`eL~y5s{m7U_h*Yt88$u+B&7))T0Xz2 zzOJPA{MpQr^(9s5rsm4#>RRv~)87a@4DBDss*>ivF+|?cH-&8FJgr@M%(?Y#1Y3E| z_ZX+|Gt~cOj6MtNHza|8OEauD=$W@36Ti10@-YR&q0XhbY5-xzv&AO%hl+^e&!h(!nApcOyt_V|RYwqT>eL*8 z(1vsrM}?Rn&89(=q!~*VP0TIwkHhD9Uirr!7;lsRw>gL^5CpRnn+QM{sT8ouxH`|E zLO4$xc+LR6o&Is*DzoCBr1$q=b2okFG??P2m1efjY#k0KVKSdB&FOGi!NkPi2NS-S zQN&EWZ2)QM@XMK?NYSW7lOvt?Ol^UD5=d_@wXl-JbGe14u|&WuPv;C1FJZ%;iyJIs z;U!t%)!7n_KGv}Wp82f2gsJ7_Psq^URUa3|*yURt=r1ncY^I)Hz7dC=Gfj4F-7U~g zXSP4>-HnYgWgz)RD0fl~#!NYnd~1_+bQccrMDsvt0R!bctS91{5L!u>kOQM|M42PNx^zcHF^4-%3`i^WIjzwvF;mtT zX06dnpVkf5-+$9}QBm=?*eEBLUE+FCqODCR6`Wh>BRXiahqfTdi*GA(7oICv?3v{1N5S96U+bMCBDgu^ZjIgA5-Rjf zo))QINHGv4A-|xva4X-5Ur}JhQD@Llq8iZCFXkT)n6D5 z=9y&~b1IQ`Cz!nf$biooH#N21HJni~Zlz+3AApKHEGDvqu;?k8gkU2vTbe^fEL2Ui zB`XzSU~usPasV<`rEw&l=2PkFI1l@?s%TPDs?+IYGL^!$_(U?sVZcjO#j9d)Zwh;$ zG>`KuA(~936VXI8F1pS=T6KA3r1JzJs(X>HYrSI_BV&}v=rx#8EYDBIXdH7gW9YU~ zkr%P+VHDbli20nEQ!PY{!j?pOyS$jJN>ruN@f4Sm(gMc$B!?-bB&Aa@yQr?JQqo*f zOpBP6$x^y1E>>0JxE9CviMXinDU3GY#a~_$5u@r!fl?vB_5}{IW$nD9srAmGCSLST zo}x)~bkYDsjM9|XAXE+&VLgy7wUbd60e808N=6Za_IAlwT^&^tF(s*Rae+^A@V1*! zpj*J70{s2*Tq>1>fm@X0syUIXj#kBzco`N?)pB)pHG~_yn7BML!mfpbsRWbgy4G7G zjEa1W^x|#PBJ)+f$lsiwigd05p3$d~HYx&e!K5|qRKzeIHx*l`7{lzyywSm2+gRqi z`C?i`tK?`ZT9vM@65>f()ksMgfuKjKk_mWBu9m7&kZ44jz$Ru|L{>@`xCAF8xio}b zkU_r>u%-snhf&pchFpQWKyo|^3k;olcZM1D)KMiX$ijsD)Qdt=2Bsbl(welToqBQ< zJ2M95EyTk<=G$jM$ZC~{8l+?#$Mn&3GM%nYN>$jrR=~4?7CIk^}Y zP07$?u$zh|s?$*}T^*AXTvc^dGL2!E=OMQOUP{PZyc#2MqPiN#4GIPl`j-Ud{(Zpp zoH3a(CDPOgxf&Dgi!}t7LowU*V~g zOr*QG-ZMytgMaw3*X^yaBnax0>DD{Fc~u~PO@2cDZ8ypXm=PvL7~NHgN)_zAQZk3F z?zEVSaf#|=70qr05Lk{SFd8T1cy)r~M9@)5CNY%}tD!h)GIMDYYlEPCIYxC{0nsPc zawwvT@dOfMFNR@Fj)j{BAR}xGOdMz9N5on%&lv6eh)E$GD(FhUD#s>X%$3+@^NFz} zC2-G#i=|+2C#9-*5upJRa;zHD7AQjKTQMD%F=$}^97|QF^RIoNRwvV|kUe8NN;JLRP4fIGC{67Fq` z9@u|}84s2qGM`8!lDsHYV-x|GDG3FG2%o5qrDE09auTbMbfOwl76jNzz`9b3r=!&p zEk+)@_~>CK9v6pYr>tVh2{+un|X^e?_k_y(o<^{fG@W{Sb$lenf|=KeTh0h^a&ft3R~u@qoD@-f#Md z^O-*4z2^6Xkf{njNaz0rkzWw}{^x!F?VIcUviH{F*NVp#?Jk;KR5+x4NKs)! zL6zru_a@g07kMAN*k9B=);wVfMc9MhRb%IS)VFJ79guY?yD#oIb{WmvB@zp`xU=9wz5yiJB7gdle=3%$_~7 z1ZTNqxSeintZyu>c&0R2pGueFLNQ0%UrkN0I4-RyZEQ%EsBcu1P@th|yX(ZQA@lix_=}Pxl;c)y=>*PLF`41r9f)Vl!bB{-{0Sy>L3 zgfYmi@2>_FRFZ$VGKDCSH8Zh;2U6Wb4tAE*=%(}zy9gpw~ z_=)fVJ(~`aEBUpDQPi{PNM`N&zLTe|)kEP#WeTy2ld62p)2$%f?8X6>q#eRPJM^7u z9@mHwT$}Dx@=DH~A}Ax2(|@oKj3NrMW+^>Ag65f@74>4M2^~ZXhSvdrOO8(zjiYVl zsuKxB`i3nDLw9<3u=+Srtxv%5hsEj~w=Dr5dJlJ^aNAN6aHPQM`)G*B<926zrz-q* z`$vtWPNpQd=Ah)b4^aW2d(yZ}#EUp6WdM96r~=^40`TrXr+u&|T@Ho?Q!YUXJ~&B` z%MlS7HkqvbmJxKvQWKh5rV&%`q|i`6c3ddN)hZ5FC%Hm{a)FiO^jN=e+%m$Sg=*nn z2r6h>x^s-PqFiPnsMK;g4bqvVWrQyal{R#~!?5a^gCD7Sb{T&ZodvK9e#|5?={}OuEzw875tqqKt{J zRL2JJXcW^g3|paMb0b(aMs=4Y(~AaFAE*!GFK(gZt`(}uM|)V9fc9|H!s||wT0T5P z#nMfaDV5w7V?sxN7-S(vV0)NGIo z9$MfV0fR>jPOr!)!iK)APBqCH4vY;IQD@E8YYQ3rOK+Gqtw9shzd8CejaDa>S@cDv z0=_FGq3pfcJcEuE>cqREq`pC$nX2STmE;l#w`%G33ydG^dW;bWE(t&&oVn`!)AC`8 ze}wVHG}%s7sQjS}#vk(kNd8c7l)(aAmbJml#6PqYk;rikEbZU}NE=)}OmTWN^mWyA zE1@r`>nrn`%Cz>1skF&meEp5ZgN9GoH^OR78#{B*r{0favZ9Gk%ZJ@r^tI`E>VGl% zQ1LvF)4grk(2rGM-9C@}2~4~h$=FfkmY~qJ9Z?2?z5Y5cc|`ah^tbkr>d~(2#&|qq zr%js^8hzcEVK0tr8QI2<^%*9w3lnvV61ASm1@p03PvhpZfib*d(CnZBo=hcy!+>Dc zm$(-gr`aZk3rq%KOafbUR?ek3_@)xLGCsj4%EW{ymdRojSC)=pO;;6{IM|Ysdqy=- zngIrj7$`UzLe$9qvwQkhzk$zCmk}Wg zaP)3D(f|Beigl((OjD~kv#VztYNghC_rKNm)-o+v8zQT9Y(*`sS&I0!iK5@(wZ1pc z^lWSGTZ2GrTc8i97TY%fyT9dmf?o&Q_?`%|^9%y+^=>@bd-koKeFyqZ9A=T#C^X;h zHmVK~p^*9XXvrh`F5VGDj{TIv&OB+j6RB^A3s!*Ri#4`5LvBji)jzj%C($ z65;oqV?;4`2+$#ltXt1o#%n~1vkZjoTYGk{$39cvuGLhqeQRdR!QA%oPIuQT3IMp` zK<|!&coTF1fmNcs6EOj)qW%}&>N&ToXZvA_3A$zjS|E%VUu;;NIlr{;xfiHYt<<3} zd-sAc2m1DO^lqV8dH4n~{A?uXMeNTl2l6rqagf?7z6D)+_nik3`?ns;EIW%&`nSEJ zLbv4rqj9&&N~{g~^3bYm+Xk>IqoGs-cKH#;8E7C&dkU-wsKJVA-)VfH!j3N)ybLEm zomsw&s#|*i0sjDO&-QKLK9DF6q&oVYJ=Xy)CPIw(bM#8yHyRi2=*%0uR#%p!=q^)MOXMLS(ft0W#`>7@^4E zVQLa>r~=RE142Jj+LXjr9QNQe`Czr8dIT@*dG#cyhVM{K@0pgq)vW~i_H8}emTP)r z_x|4fXQ}<2>oXk)EJ@fIC}c(N$#l)!dCh2qZWJbx`nDeo{Xp2=Co(M%i%rz+Dp|I5 zcdhI>xU8q;u*z-c_akI(_xbfb9sAW+*eBwEi>TfyJvw9a*2oy7GR(5wC(7t?m9fCO$U~5l7Wdb=0 z_^7fcKfojihQoS7HewBH0dXk+~D>pI$V@HG|UmaTp3E@&j7I;<#XRv_l$VQNWL zs5++k5N&^rY1}+mPSmOe4Jl;hiZw=sjDVmSYDU`AiGC?%vcf0?;&-3x1iNGocd+`g zt;I-)H*L^ftb_7_eUbjr?yE0tTsYb_W{k(phW0UIhPBLT3ANrnR*zS#j_U=#tG5s9 z>adMfBivqNj}7-pY{PntHo3?@BYfR)vM~+D#hN5`5#+K|D$bROu){CI`n;+v23u7n zg?nDG+NWV%_2|y*DcP9L$Iyo+YJt**!UO#>*j#5?SXXSSTzACj~csz8US(Pi3^wk`# z&xf=vu2nnTdkxL!MxxVOYg(FGA4R9Dk*V2auAr}KQB5tKvKVu@INiU2<34iAiJdXt zvKfTAoZjg;N`S*>ID^#Ya_|{aB`MLe>agdkQuFXA1PGI!2bv4oTSQqv2$~}Fn&=LCV2ycT)NS~c- z?>V<09ZuduFe6(*LsxEH`Yh*?wOCv>0fWL2P(8AtV8*qUj74Ve&igO}JlJ+B<^UDwh3=7pZaTkt+r(*80o%5V#7~_ALVK`Dn~e?CVaJ#g>I(=qhXh-r79zP--Kcb; zIT3x#1Rw46?l^=Q3iue)r2dUBQ7^0^rA6QClV(%|#-z_MWy5@p-q^MaZloWvkd~PDptJnf~hJS>(dad_6{4$ z2{avFsLotf%S44y952&+_V5|>6#xQcnpQosiKbaZnS2Aii5|ufZ~OvG|DJ9ahU zj}=E|@Pj16{geI3Of8S$$Rt`0CrP;Z#RN>0(u12aNt#zNJzLk zn@Zpgin>aldi%_K%up~Pi(yO$;hl9l6Kb~3CxSTZ^uDbdpi8i@#Z(4kU{BZ1T*b-e zf2!7U*6EldIqP(1ovtn>oOQZs=%?L?yu-ITY5(7{PA^{jSe-VyPoXuNd2~Pf%B7C( zuo4pC3oZA^5`%vXo@Qd@aK0_*k#+cLI2qugN*Q9GBxwu2x-20l;~3nPH2jGuRbo0p zv*-8Ez~F8If(`D@CcLu=&lc{-Uh3U(oL0)%DaRUW>s!v?Zd*ChvdK6AaW>(dO?YP$ z-gesXcfAQ;D@uXD``}!(0Xa@?^NO z&~^nLhyDH%a#s&8QwqFJ8~-MjCZD2w_$v}*ctp`sIBa>6vN-|vgGMgifHM|&d#3_? zSzlLOlS<=!h;l@VZ39o0$gfS1V|o7BiF&J|EXOfTArDw;3b$)|v+!!7H%b8L?ZSV9 z0!t(#g^wK8E?kY-+J&dd7(DHp+MVNRnc6XvQLc6L0F+Y?EiQv{A`I;i?+x)4S*oJ| zCu3#=03V~AV#1fO))BA~6d2p^Atz=q#IfL0G{yC04IkVN@h!A-f+$z2yEb|7LD)jL zRyM+=7@UBBNjA7ymyn5*xlaIy#tJa?5GD9I(o#54(OAJ!54qE_Vg$Ee2q{Ls_6*LL z(=xf^g8`Rk!mw$rKnPcWv?y~tZnt29nu7<7&lLFkMgS$vFf@w?`HO;?N?c(nT45Y5 zAOv9+5rd-IJNW*9(Fv>R!4}{Tx!!UwKm~;@e zrz)+Oh}&GIKMf&7l_H1d9HJUhsu&^;!LoO*Nj_+}k47O{R&?Io@u0?IPY%#QYP7b? z=pYhJQ~&7L5NEKl14Fb;a+r#O8!$5hIr4&wec1fSGMK8NrgS`dk?t61EF7pi;HMW( zObznt@JFo@VqgP-!h{1p{a9-Bh80IXhr0v}U~nUzMTaMadtb)`8ag8e=#KnD;=m#g zpLw90F(}fMjByu6Vl#|7cfl(^$u?OSpHCtg}dT04znWUW|eTL#8tzv zp((2`pR5do%|M-#f69t+ceX~hfo6CEaq&P6!TG6;Ng3Iqa4~D?oZ*>ij0>7} zvf&B_dH%Pt!PJgfCVcX#&HTgIAZ&nOeG2EZnmkK zJP1)d@ED@vm>B`fm$$O`1{%fwwi9ko>y(b^ z45PMzMzMjW76W#OZH7szKvgt6E=ibq#+X}>xp>|+1OhLZMJ!i$!cQm^fn*+;v&&0d zq{ZS4FVMtU9WK}s0A8=7m}erC8iE0nhhS}KCQ9(Fh>-;=WUP@^fP>}M1aU~u6a z+R!Sv*4d_d{_o!5@;!m%ukg2aa`Pyd{pq#>FvQvPc*_h}^!Gi#t^drjL5&1(nM_95 zXWZV%e~y4Ko-!_~Qn)&1B*3Su`9w-el=1M-TLxF;d>MJvE|bKhl1jlq2XjPP4?OVj z%zIe-e;xAxyY0ciR{U#cG?U$uiCo$R2>1UbdO6n~U{vH>doYZ{%oZ7%`IvLkWE;^pjBg2H0_4V7^~KC2Ro5NZ)59qTo8cG+ z^2|&UK@M>Povb9a84#iYRVCA$R8}peX$F)M%9MmCm67ueI7pGCXiA+e-+9l>+gbZ; z1|@7yUHq{&s=7VHV`RYkr@x;M89ki=gwK7|_ zWY+J)PwlRyik)#PPnHU2j^majEQj8SE0Lwfbx^c;nKvR~hW=+>h%C+C=lruwG2Zrd z$iKpENX-ZyMA4LY#t* z8$oAs<~nff0RJ$C6E`lM#x>5UP?pBkKC&83l)(##QpO`TB8Si#3IZ6@ZqFT)vD>4A z;Fyd$ej9K}-0|CB_>6G;HaLD89KQ|5U3&GJFR_3DPI*dB$l!jbXY3@C3<2v~$L$Enm=xH9j5I#&nNW1E?XsQ}FsH<^_ zKM~`TWl|NcRZAkDhFuMf>kngGH$cc9uYb#%y>FcFy|AB_-KwfLuTgLbmpMZ* z7T;_+-n;F&-hI!(KL{!HBJi8920|a`dPH4t2Rc zcwxuI>>Nm|TD{N?pxBiwvoj-u2!Mkwv!mJzhcf4$XXqcmK8)rhM&}!Lts0-1&l^Bf z=GDMJrGLY6Tsp_gJ@Cr2?KxDf)ku7!fp57qkFEN?SGx$bWBaiWm-m)CPC9@DfqCp; z)>(+LFlIN$adn^kg{aAmxC|E@RL<`eR5jz;h;<0sZVnKw6Q-dt(^yl3Sb z7kdEFoslPj%bm`4ZI z^^ds*+=OR7BnTk0B4#cIR8KeN_t~v`vZ}%A;bf)4RZU^)*Xgpj4-YL$Gf(;BBAi! z@ExI_g;s>5;17fAg6|3ZD6lyo`M>Ia!XNg%?z_jE@wR%eD?VTRSkZ5aHWu+izBr_I zh_7&IVM)P-g2z0+@oe<)?k~D)-9A+JPW&xsdmlVAGQZT5Yg6@gh(;_(WgHwuW4BwX zh{3DA2v?{)qG9LmhU?{I>a33>kCz$-=dkMK$=*k-RQJD2=X|K`Hlwvk3vye7kA7Gm zkQ;3MmZB9JDp%mCn8W1&2F>H8nlU&WwqkgqCf+-E6L7H%2fa!h-g5IH1Yd^mYmS)h zG2OLoP7{@F@6nr>k{1j3^Og~502X|j0lEzfwOpa$*^Y#2{!K`{TW?`nz80d0@XVLP z1Ue??Iirx^?4Qcx2}&?a!X zR^3C1A;@YzET|mZKsQ0OxmF%R#RqQ!?sjA4aID4Yp=_-T1#j+{&c$F}ofSfxShRTB zBx=L$4o#a@uZmtlfw>lPXDS4z5j^zG*3dO&h3%TqC;M92u6GO!XW9~=pgS}Nyah!mb53AJ2~ zNw|YIU{{n4-h>()Lg2IFZNmcPam4w-jk}z#FnW99piS^_zD3bIL}OsJHbLbv2qrXf z4nrBeeaqlYz?&fM4$4?a=FyX+hp8Mkc^kg?M$<>t=i(3&Z%r0r!|pJ&0>dxqk$DVF5jTYij{H*z7ZrS+k$$n zpmffRwi^v3LOIh>p#q%=*@m}#Q4hyq<|kH;o+3kFjZU*D@D3YfLu#0pl*Lsx6dD+v zPE?}NoIw_@v{8;}6~*F^aOsDUe%7!-tBhlQPArKzF?6+!Ur;5=F?1tV4enp*N^aKB zi&csJA%XUfCmh)DrmV+G- zz@C+Zsph2g)HX+bes5I`sji}ZYOvto>LG1J1yfLjxX6or~$%sXHs0;V0YIQU|KR$%^5 zcJ=yjn}<3r4PIO=Kr^jlrcHZ~DkN?fMM6+xp4^mJ)LdVtI*2T5PB%5HpiSs`^|_vt ztMbNI!>qd;SIo=#3Wb8JrP9sVKV@!-jhJetcZ^tS#zVfKYHBaQUmhk0h>(=K$TF3K z{czt@=Y@RGm(HQ}|0sm?i@3v{P(k1a{vTdK{J(c%b#Jf3iT~%s|6{D`#Q*zW64=s- z|L4U2qy0klK+lQ)cS-Rf5y1@c{jihl#Q(c!C{KzWhqYTds^(TB7DG&fp^2aVk%-LZ~b7Ud~C3l8b9&4d#XM2gln9Sp~L99;O( zUKpHXNpPdZ94w&e3)pWN2OnKNxQx*%N9^UxtQ>nf*g=e`H`;`(+XPNgunCAAcieKr z)*U%K)4ce=9S@E~xtJ1z|3Pvq#QY{81RxF&5ugK+tg*|fdPp-lim^IQXi?hBbAcDt z)5Oc647T$m9EE`>F~sDK8s1G1#0K#UB)A!a&pE)V1CQu8cpYcPaPI&kIm5{fHd%oq zPFiHxAb=b;hkQ2RW9<_);7#7qMD?ijGJua^5{n?~*h$AmGr5^y?s+J3wL<>R;&3NM z5HhmEeILA^MJfESEaB)}Cp(X>!LBA8JIfOGmdVY}fK>Or>ADbPEK}_BxxE_CV1M!Q zcn0CoaqJz3yB8c2lA8=2cw9K(;R8yH;n+-q^C1Ix@C(i~5qv0$xX$D)i1CboP?7NG zg@4#>L(KBQfCtOmoQGx9gOSUiI=UIR9$+^BM^D5%2H{2QU&F5$PUB>rZa(O+$KVDB z8|=hkk?c7!>$;`*;obAz5L?j`ZabUcf;hT<_2^mm4N20D&*Q4##G;A|7%lSUbkX>nq%Vl<$ zpj;lufLu5Sq87-Dm_L42!I0jlY@}maN&fy;TMVoT);@8 zI$&gDA_g0%HjHl~2JNWc0iq%s6DX((C>T;3G7n2FeI$qe9j8HQ(!Zj`P1hx8 z0%%##3Pge&V3;G7uhN!A1`K>S+k+N{>nyEXG1$eRj%C=50A53w$SpBE-r?jN=3+Dr z9E`rz?3-e=VS??$5mEhuw(L}kqgczY3{1BB*qsE)tJiR zNE$B1G_C-KWDNuwNKrV@RHxAc>Va^?{fq{>&kXuyk9r8Uh`|o3309}z2A%4VbOKNj zV!X_ei(CzK%(rRu0FQv(5uVc+_n?+B_mFwuj}l%Sl(EB+yz@Mm8eSgZF(zYV12r*d z(GaLZk4Xb`1f&lBFEJqKbjJt@OC1D4PGAsQM2PC|%*q$Ew6IIe8VM!_#En@1=Ok|o*3*x140WdkO05<&uY z0t90l=%mx8kMwz`k4bZH+o>hlZSSNro%T*<+Rpv0y}!ra`#gLkS+Wh16QQ%e?|k3d zYp=cb+H0@%UubfKjW3^S^|-WnRuZ)^KH4*^56n7(0rQ{OVi!Z@sAuBMq?Xj5XZ`Gipp!Gvuc` zwnSyHMCVX*EC=ae-4>K!xG#m^k%G9d#j#H?=TJ*2`b?CXKV6YH7Hc$r7Sltm1!ZPy zuzaK#Y{3U+f{VovyqM4IJqiLwh*So4ngCL#5pAr}6cG2atZ1%*H!o8b^^qjXy%Nh* z{(t0yk;b3p*Mxr_{>+AQ6#)AWo!ESM>|3v$I^CNPyEOYozjmwPxRD}3M2=@VQG0+R zYUjeT44Q}jFIWk~7NiS3sRhem!~*ueD>L!#mHe&tv)6wBXd8nH58#F}n}W}>Z|~@1 z`%gYGLnbkum8Ji zcaT6P**?zG%VYeNL%87)s=WH-AZ|!kd+kkK$W|x4Nn%X@BPU*+DH1eOB+51Whwxk_{Nt`?%h@qx;HKbwAn$jo7Ss$(dr(j?gMtKzKV&%b|{xyuxxpjwLQBs zv7kGfTt)_XW_kDW^fD0bHEi8=w|(5CL9gxUDF&~bS=(peXeH%0sJL!aR-b{RJ@L@D z%@lhvg{K~R&WG?ZaUH~@fAnF&JUIMyj2fM~KdOqa21(#!d!FIa%-UWd;amprl=F zV1@%T9GKz23-_PMJ$;10_0c3 zSEiPAXBOm$Wr+?@p(>mlMLZa)q3!{o;)p`0ceVGia_ezI}fyD6ZN` zq0R%#_vJT7k3Kv4^g;14?f4Q9XR@aZ08(f6|M-C(etvY{Hdq9P8$JLZ<8Kk|fvn$rMyrv#jn2hQyO5AT(8v4@`zKn*qUp5`Px_-z+TOLRJm{Cgf_SbYLEZ-08-SaEpXQ@}d}iK;?q$n*H!daCP6aL@zg`QFcw%*h z4TMSB4Mc3a4H}y#cm~n0?j6osvIPxUVthp-HHHm&4c%rmID`@Z>AWSc!rwyD0j6^A za4F5Zl;&MZ^Dd=%m(rX|Y0jlI=Te$;Db2Z*=3Gj1E~Pn_(ws|a&ZRW#Qkr!s&AOCk zT}rbqrCFEKtV?Our8MhOnsq77xRe5JWr-!BdTxVDDZpXQS6oUnE~Pp>$&erbjGSk< zlN^piiA=xRko{mH=}1D=wuvu+^X=}LS><21OG0>0zi;Zh1tlyiqmY0{-s$I%;<0vzQ$!=)5d zSo;prlbr^aQk|M&yroFNf&=S3!=+RwE11u4Db+{l#vMA)-fVCw1W{$Wqu+L~|fb;XOq(d)UbVTq|jKMSLzE zL8>5XfeD{nL~|fi{ykLRcD|J;xHKmUE}y|$EBcnpXF~Oh?s55yH>>C#mu3pvyZ02y zDtU25_Y~0_m_b3`13M^eDWW;Bgu;7@XbxGzWH4_~as*14}8qr-Uk?(yuWCCv>>BiA>4B-;KL?cZ9xGmRqSzBxDUt)h9``y^fv8Q7jVxNu0WABXBwf@)Ezi9n_>$h7UZGE8i^R2hF zUfX(Q%fGgaw)}C+(Uz~ZJlt|`%kq}RExDGHF6{ziwmcf3@#D<-ZG~{~rCj=$}U4jD9ovNc8^bs_4g}*F-Om zw%7c$=5K3$zvk7NXKS|CY^qs`JE7+HqF$0Zxz}oH#jcuNS2N#eRl^?pIj2=kvDjr! zs~Y~;yPQ@v)napzszkZ<-RaoG)2jN``qxgY>RanyURYOiMaW;(SUY$@UCrfTqiD3~ zHtXx&`rrCzPOD-<>mM^o-VuD?vjbXx*zl2>|7EmlCj5Zb<3_7y!uM(Y1EWF^BYopPs`?jm$Ba#1ZwCcWXr}f81tM1!y^WPY)0Cvb&#D-}7t>E4y0PoWJ z0Ii3NRxRlF(fXv(ss;TnS_h3*E$DaBx;AXpdM~z`)=wF&TF_U~`T?U=@gcU1)~k(H zJ&BjlI>%_$llW5&OHFyuwnpnMv>NiDy)dmGq1BKFZF96PqScTGZFjW3pH@R2v{R<_ z8d?o`(Dp}bmR3U^w0ovCL8~DT+74;GnpQ&|w4MU%1gl!>Xbnf6%v5P@`9HLV zBk$QOE&q$waO5chqwf7@TEme~XuGB5A88Fop43Wp@88oJjy$-_s&$msaO8ncP_2Jc zO24dcyw&WmHf~yeOsmmhZQ!*0Iju&AwM(ewPiQqdtPP!(->22+uyzi${5Gvdhqb}e z@*A`o9p(&PSoQ|3Mu)ZG)AAavMu)Y-sO4o^jSg!AsO6xgW%W+7mU(5$skV$-o~PB2 zQ*9l!e2rE^PPJ#LWk0QkoN6nnWiPFUoa#K_mPctdFf)WATgZO^-OOYGO8RcUsjGn(lU56?>cd?3by=+F!A6B^^ZQTIIAVjx{ZHT6G^j zWIt9l)_%72{K$oYnpUrhZneG+{DOMb^-inq*ELS7Qu9qIr&ag%3a3?*^)q&>UWl76 zaawhEZ3~X9XGPfs&b?{|H`!KMTyMM^|F^{i&Bf?R`vH3Y-S|&Vt0JNCC$X)j)aWyX zR$FQSFc88T|I&GaVngGfJFSWhjelsj>Q$-nO{Z1q=*Cx_R{ge@oK`iMjo-3c^*YhG z*J;(yeb{N$&$UID;s&a3Tbz6K+cw*+TA?@IXE9w*soKFl=Uyedjq99NP1&lpF@x(# zJ+EUoJNIf%{*v9Qb!_7=I<5L`A97lCj~$`b`mJ%H)eG%ZiypThpp{;uy@LV%L9xt{ zf330_-|aj>Gt!ZN&9laL+V^UW(|EDds%Ax_GgtK9s&S5UubQuov)kue>{U#UIV{tT z&PIE`1YnHn+j;H(5Sbn55j{S&yX=?gO;lsM)2hj}H(UTosK>TC_iAZqc3SnQH94(X zPVFrlXfo=#vrKD5(-j?NHyWry{r>3Y=H?$qmexHLiOp%fyd~ZK_w9d%AK-=dC)x+w z*R}t0`v=<-?eA)z)%M@o{<7^i+YYup(YCp5P4f?$ztg<8d8m0^^QW7yZ(h(mx4EY2 z@0CL8ZHtlKpwWiyfKHl{6O;@so|-HEe&@ze5PSh!@`D(8)|3$zq9^)*7s+9d)A|~9+>s{S+~u)cGi`% z&aeO1`qBD7sy|YHpnhllJ@w1#KU$xyzpTEc?w{-as_u8{UaEWQbpESPl>K)}{jA!{ z`PUx(Y4mTSzaM=y`fPN2bW?O`^dr%9^xe_Mn*Uz&9IaKpx&0x*inlI>Zf@q&F ze7FN%4TK2%BpIvrf3e0DbP?71-<(z@MeYCKv??iTA9Grj(6|2=r&Y;T`~U5KG3POIYOMJp|_)|ON4@7T9$lkTF=I<1-nd$rE#lb4GYJNGK4UG!n6 zRTE|#rU2n6a<6sn)ods@tx8lcT4=ZG)0T@acUtum8k|)geU9)QjDzqP5V~8Yo0sgw5ogOKH#(} zrq8|4X;sXbd#By1O|QAjoK`hk=6=d))o-&+I!a2(V9veKxmOMG+#8%$&4w`4hX4>4i)2a!x9nApMDH3c)b58F<=h}{Da9!2Cw&_JFDAj5kPQcx%)>@keZPLxL zoyXwZ$-Q%I=P_7Es`V$%6BHxo*luE=#nipFn;2|0)oOcm!IM(0KeV5#mE4@~JFTi0 zbDlBnDXr?GJFPo`n^aG=cN1ByT;}vU_bPFkbGOr~-?hdXVC?{`wO7ZiRylKSw;!O7 ze&;NAS~X#xc3L$X?TuYl$F|K`J} zpw(DiwTf-KgjQp9)o$CiIkXxb)^6Lj^Jq0XtlhS4t+W~))^6Lj2CKtbU)1i2U1fGy z+p^RUyUOgawq;}gMyt_by+@DzPg;!*YhP~cpJ+8Ytk0ff|CLsw!`hb{J4vh2VeQL} z9jDdkuwGMQe?_a&VeQL}{fJhh!`hb{`%}BaYNpgag7I!VR@<_%KcdxmtoG%`evek; zvD%i6{T8i}!2BoLR>UdxAJ`=Pozbe^7CT1ke==ItOo_cp>l;R^nkljG()ygys%A>; z1zNvkv?`H~JxA-W8m&sCV_&6pW!S3Mwb;|N-fFa}nH_tA)-Iz}O}5w`T7TAP)qQ)I z*0!+Kp1XRE%&Bu))mvu&AE#A4Z}vYst%@tN|K4d;{h$3ePOIww>>pc0t0!6QG5c06 zpR<44zEwT7_ORWk*jM{KYjsehMt4{@>giGYiruL7)Jt}wqOyb((q7PX&YNvng zH>?{KL!#TQ8@0Q=cE8=I?yTJxYkNnew)N6T?6%fR+pn+v#mG|(+1c{b_y^JN5#D#j zd0Sf+_utnP8S=sxbbNJp@5wDYM-Dtna*E)TJ#ld4#ivKN@A%2FCr7t!AKiCkWal$u zdk^!+@xw<)cMl#vykq3y$HxW*3uKbme3A;X@3~|~Ap<^2(nkRNck+qB6L0P&BkK6! zJ;#p@@kc_EM)p25`oK3vAKiWO@cy41+sb#x_8dL=)K`uleqrQ|7e@{~JhJuB$d>)b zU)y=|$v2K4{o08)o;&g40iG*aC9i*n*Nq+d`pAy``dc6ojvVrcr^2uHDh=&jIXh~9e^*blFeU}%H4ZJ2# zSJaFhCDG^`IxC2;OrA%h-);SA!_TP!+}6H$^S$8!>S*^#4B%8F$_V4$@*_MAOdS30 zvoaZ!NS=I(?6=(~zr2qOD48=4J~y`Qn=l%g9ev`t(P#DuGUekhjSPuUj|@M-bk-A` z$?MI6eb3N1HuR0LZCg&f{M_i^Gkyv&6-X!*mZJ7krV|LOb@Z1D0-TB?$;S5kn> zl@N$qe_DG`>&?3t56m{Eom!eEG3^|ka2gR)-x?EcX!UR=V0`TiMfh3B2fkO=$c5R_D_5RZJ^$ecV)z%K1DNL@Z`6KHkk$k zt@7$TkQ&aa;T7Yp(GX3waT$+jzMWRzXn)>Y1(?qk+q~tsdZT69XLJ-7Mat7f^~QjE z^SNruspf=RI4jWfQs*fw%9cV86(~+1N=a&)c)Exdv8kwBMUgP6E99g9^9U*qQ8J14 z$~7ZUMl~5t`sRBL(x+Tj`wPQ4Jxfr5<}5h}m==w-d@fSo{A{H8+4k$&HphOe^}NY! z{#$=juLgH49@-SH2HNE~iPZq~@e^;nrolXA=dfk}=vQB1uL=|fnttrH{u2)k$gcM3 zr$(O|2kge%VwIRW-c@DyyzteL9a~2q-+BDViy)y)VsDqsc5x;}T^4kZm&57r?I_+v zktRwXQuTx~RN0_L4eFD69YmN@NQb&-ex(!?O)izP>zd2bL_`t zt4MXd3Z*lG4IX?nD1oCE^O5{2)jGEf1f zsPr6VJIWhf!FwrEDD^9)DxH)V3GF>{H2xQv;zMhOwPR;1J50my)8`12nCfTK4s-CFciK(=MrUMT z$LJGJVz1+09DQ^j{v6S=6LIELnDF^jijry6Oa+^SVqQU+97+OGh-+a&=-vNZlSi-KjQ2rO#A>>;fqtR$;a;i9}`{P=f!3VQQJNSHq)8UBh6vrjN=d zA^6kajGOUj?i28~L$Bk2#KEnhxWsM{M6Jh=Qw*#G|l|`8(+8lEx ziEoZoEoo<9WsUZCc}uD;6ddRhe@U&H_%opqqy5)-not+952*JwVb#>*o#nho3Yk(Q zRBt_$I!_lkhf1fh^r?i%PQ%yd=%%dHZB9{8Q&k4^6%IAoyVJ-464HN5G01)$bdAZ}8caW)%Z9 z3CmJD!bXlgpo?LSZhPd!p;t!;6SAu}$#&J>Ap~`SC@XYgE0INSgP@Sp!lr6ANu!lq zgY7rWB3wuvi5kZcI{I}yHh)$&I-GEl{ZD1tz(+;_-z?TX^|)mf6`!55`8gt$62#*8 zlN~`iD51B-*xBa*S()mmr4PBs)qPVX0J~o%;433~8u1FkGAk#UiCC#n4 z(2(tXWv_4D3MJCphGz}W*MD7MyT4R8=_ItXc7JKji%Uk_z&pPrk&c}5JoTJ+(DUs* zV|yiZjE^I)eRu3z+wo{g^y7gr025qvgxfm_I&$FTo+lg__HjDF&OsmWw6U_xlwdQe zS8#VT>aE~a?}!LcnQrYZn^7&`?q<{z@T!SVNw8iztR(MG(;QyA1XbbL)^Ru#c<0#N zvAX1m-eJ8eunF{cb5iP*+V33B5RSuCmNl$Q8TlpRZ#rCJ*&Oc?__V7SMCNLxR$P%e z>nXo~i8x=bDoK3FaE}UZzB6EbM`N)D_W##L+TY)LZQD@n2Q}T(xPyIbzbZN+QW1%? zE>qI6b+NT#>P(?Yte7YFK0mT+r>vE)J&VzWK zKr6g`+V<}893kZi))k^Z;}TG=kAq~*;Ix#W^(0x# zGLR-@LgESt|HO2xu;4@@O+#9^=MG&ne3AF(;(?m*L`dhpO+wDKc#rIR=ESQ9$G-XI zi8r@6hP^iMBn9YENoL_Tf`xP$mg9%_>I%PaeXH-Zu&Ek(K7HvL6_!E{>r;5cN#K^8 zi|}YOOW+Dl@!;&h;-b z#CNhz)Uj_I4Arr!9)<(JjB-I_rFh=n=V@enbMlcRk`1=+(8y~qjU9PY6uPQEhN2%i zGC20!F{i%P_!aj#n2RnaZAn+TTbMj>_I`6>>Pmeo zm6WZvm^Fda%f|WFy^V827^vaf=v8m}GiSgCBkn!&ecToodjrv64MfQp^a=~_ndm{Z zKj+zwVmTTyC%)}iHUFpGY>4*%{P1j#@hukV7C1kgG)ySiV5!r|6n;nj;Lf z<7k!Jsmmm>MsXwkfunzN3UadfA{5nsx6*THCk|wDIdq$^wUU`k0-r<{M>xk(crwbr z8zZ&hZ`4fOO3Z)}BcK6*CNUFF%i;H1f0msVHdQl&D#i#1_Dj{!5EV=w@s1@B)U3qV zkq3j|slYoxAyQO~qq-@%LYYhuBtXzzh72LxY8=gwX5dLMQ;nTig6ILs{2_>@q5#)- zC;=Yo8h)3SWIJ|C!&6N{lAZ0=OzhTMKXxla%6^{stSo__>YU$82gnjwN=g8$gao%B zmO3r~&u$zECmoEh@u#nd32!GlMpg%cT{5yblv@KN9bhriJM_NcOG>I^g^o1|AwDg7 zW-{uSqrG>ko;l}|8vJcM`&*Dca|yBqfOlqq0v(fylRAjX$V&iSHt*}0xMUNO5Qqy@ zQv77lJmJfgwyA;3AYNB=K z!IJ1eZunA7Ji7y97whj2s^<9H&YqJabiE8Z^UPlct7aX`^mHphAzrILmv~S8RZToa z(c>Ux%c%!ud_iWjGDJX$!Zs$m8Cx1d1x>9rIR0J&Wa4s!Czw!y8K0NfFycjkG0nz_ z{HmbAqp`LhM(V%-Xlsvsyme2@=W5QM#18o_@zv%JH`J+VESPn7hmL0rqd1AxOz%yP zAKpotAwFX{xj%AXbm!LyUz0?>HYTSp(leg!0*^Xb zkSs$7*8l`Mw$Q08Xm*n1DT}?gF^Oa65rzze0RQ*YfdHxyE=Mdrc|pp=&?W;4f>vV7 zlBs--%+K=LAlTF6b0>}fry{{>;z;ygj19>ao!A2E1mIf;6cL+$j;nIO*u_bw4v$~C z9atB_;K)xRHnq}@sQJUSJJqZk>KSfRe{Ais;$?Jsut`imFY;f>52rb@K>|eN)#r#X zm9y0s4(K3Li7g%8Kl;ieBL|1&Xx0camD~JtSq=30wm5v9BF0rS%}%Qat-?%0umx|C z_-IKFE(GQ|=`gIjdGhO!_LQ`%m6tV|P)zaC6JCHB9<01fjDmQ)@XV942h>OT$+o2V z!!@7Mg3i`oKpMM-TY}GqQ%jc!n1tYuKD`g29^Ja@#Ip|}!h9Ur`$BMf8N|(S&+)_C z$%`M^_B^M+KVN(t=1)P}pgGIf%5hlT1I010x{jc`W2-6zE3#o<+Q{#ohiF$AUWKwxFVLMu_g3v$*O14+sPD=7<_F4I5GI=g#MB3U`&s> z4OrpNgzCq9`ZbUcuNNU_FY7NtRTF;(bdX>drnUOqe0LbcF*DaH>FrqiBF_IGiL`Bv z{a&oS^;Z6z`8fwT5d96&G0oZf?RwR1u~uDO%NA(gz%gbhco_FULvZ0>Ie-R7u)5cKHC55~UEywFdUJ5{%)J z=4|wjl;{qv8a_|U@Ex`cPxkak?_0HBP2fY1JxYY5T;~DcecpyiSNKI6Xgx9gh^Y{FO zl@>U3<9w9>72It8ksM*!ga{&a2aXKlyY0O0_3t_^El9X8> z=K=UoK`r$+Z*p9~X>Ed8#}^AJfAhxP4a7q-f+&1Jk07{`6#(&oxGA^=1A#uRN)e5N zc#fS31j?rYlOyKHIOW9e2vCSXE#O>%675BS!Nd+R2&p_oO2(4*SmHqu^#UwCXr+wB zDJX9#-ZJYFt>d7aaE{X{3>gNCDC2?%Rk_ehw#@a!wYwM>y7tz1NGD}jFtUlU!iOb6 zUfN5H^a`>cfJuRs6yGhYeUMFo08|ym8`+(SB66TJ4y-txu6aud*o=bCO;SEYfUW1`G4yzkyu;n zEo1-;oda9n84_nWFvEefkOR>_R~mflb=JYXt^+;^UzC&XFI58jA0f-X_y|+HR{LM0 z^yS!|SIC_neeU@aFCWy!Ej3J(KCe&3t1sL+6?R~5Y72LsUVc@xUq96`J^31|y!Fw@ zuJi@NGzk-3$y8T7)yZy3_JQ$Y;|URON;eVTdXIGcqX-0!D#``LZP^rQ5F(+ zq96e@iVI>rvUQ8dF11|uZ37Pgd^4uOi5=VCj$i;&#JFk%eVQCoSt2;4Y7No(xk8Z5 zg^veBG>TXt>-m)6^lLW?O*tw7a0#bL$_PdgsEiEoe!xWIkrfX>S!V>t_x(!Bw}I%!1BJ4PLyV6n&EXLC={;#(xrR5AHb;JA(D1or&B=oDP05DU*bM3om2YSwQ5$ z(ET3yRvP^|u~f-6^tBSp?0Cb6XkxIgeGmuRtMXaGz7=eLx`5{ZknQH3GSMpN0(ha8}6vlJ09z7;X z99CBpGUA$nm5_vCP8!Lb_k}E#m2>hG2a|yE0p<|cXoQ!LG%qLVz)WO<1xq&L+)ElV zhn4K@D+pOl`v+$&^GG+2s(l$S*V>At=MqGy2w*1J&m{gsikEAL^po8pRwIQg1cq6e zmvX$$9*a_;6k1~g=9`y*4dOze%#MJulbd@A$~B6*9GV(?ET8QYmfxuh)?iaL9-%%L zon@*X$W#OgRkIqLt~9cWqJ9QuDei=S)aDPW`T}Dqm{HY_j~w}WymN}poYS(RRU^P< z9Af>2p-rW>M82x4T1}q;*(CJ&RnAX`fHL=BuZ;1@8Shuz(8Z}2N*_F<90fK?E0&FsUrc-=9)ky+0I}-2AXWshW zRXyw0F3lBW^Dysf|8rigAoG^=4KAw(?fu1EHU8;V8_ z-zd4_shr2dqU)M2{IyPR<9Z~6k&Ua}M>x`)0$L*pG;*`0UW9!?%p<4*${)eH!!FxZj~qg9#hg9r`j3|1|bZc)x}bGCn)}%Q*C99QrcO z_+}jXbU|(7`3`-$9B+7C*A_NDJN(N!^kp6TbTL2U`wo5ObnxJ&!KHy-+WIlAm*&lL z^iH;m@xWUS>_r)UsPvZ9$aVBm*5OOmk^8K}mz*ymv{JAaOf*I{3|&06&(5s4t)iO zzJfzv!J)6<&{uHiBT7UqL`w#Laqx4kvLH4NT(x-d&^j%7bH~2@?T$pp$g%xbdL~O+ z5j21Fs}GF6vVG*hcTT+gwXTj^*Y$1en0NcejqAG>E+qTD6NrG$R44fjU6OthUwBty z;fkJ(JJ z0R3gsrRIUYPAm;RJZB#0ZiMr5M&H@?NY;_d3FQ!JY_Y{?ip-WJgYOyqtRYsO{eEGQw$f(!*&tSlu2iNAD-Qr3Y9khl zm47`;IA3~ZH(`s>1a}ilVoh&EF04HnX^*$nwEju!K+C-??`?Wt^N$*jHGjJ4KQ~^} z@b?XS8*ZAlVb;9*8|%7iPu9LG`hl87kqXF%+k1I@#4tP%I@CPJu7Yv zgpH(H@Q3tTc;(2e-_@Tx;<9Yc@9J2+Zh80W1>LV?gaa{#$z}2u0aa=7Ov`9+q0ot?592qs71GY&>Xf>jyLJ};Gxk+cb`1G|8F1IF}m;hlS4bkUVqW+?85_c+jsW=<&mDh#-@=pqFOEL+>`#tuBb=9>a=<*r)A27Q0(a~+&N1pxG z=)=3l4jeggaEDE7A}6SU6#pPJuGA>`*Evn~hUu2~HbrX0nRCwp9y=v^$#vOCOq9!ZB=sV@8n#N85}=;?q@Ua8oj zrh&(f3*VvmkrOpnW)>u}rFG!c%z}7VIxkDCfP>{qYzX4a?JgV##9guq>yF)gg$Pbl z6YgClI3^=_UY1q6GY868sSO6#b6qS=1Tv=!-uwDL`Ex~#TK)-PR9^9-45RXyX=GHq zzzWlaX+$~!R&4PMqhsu>QuuL+vGye7=F7`6isz*ZU2G)Du;x6a=z01&1Czz}@n`hS zKU?v6dC8NYya)K)C7;JY=Q~0EEcg<7^LsoEu=qwbkhQhOPznVpG3psd(jrPeG1C># zbpku?DTpu5<9Qd?)T|1o|B9y3eLF@TeD>s)9V5FAqT!AoJ<7-9hhG?d^aYi_aF9!* zj~*I%c=w4{UbSDJOtbcM0v(Vl;ldX3V0gZh;3agPChv>Xr}GH7L+hXA^^+hV&KiMd zo@1|M@zj8Tgc|WAkuJU{e~};>hXa>Rn1H-mdUKti!BfDg)ByMdWWaXT*RjGbskuas zULtpF*tB*nYHoSGX6vtA=FxW3;x(E%E9xdp8?u||$|#uHT=DW?@CJqG&6Y2A1ibnD z>3Kg6TuF-X*B@JYeBN*Z>G9^~cSC^ITX)EUXWkF5GhIB72q0i{i+Rm;9Eh1t0(g$W&KnSwt`JDfBha5#bg!BCatE5Q=$ zD}iG159tEFs_U7os8tp#U|ID02ClwXGj{X!lVz-LgsP1QN8TkiBD9(tku~f-R(E`M z-WL`q9xvFqX~VL0pPkpScHPE~mFqUGUD4Tb+d7Ppo{rF1QQzsix`RE?>W&XBx~)Te zfx0m?QF_uR zYj$yLMF1dWI2>v9*~Kvy0I=DFrv>^K&-JEl{bZ%9!n9Qz;@fc1{7G`Uy1*(Z@DNE`(f)NEq~f_QTq+f&VJ@29B6K=eV+>P zAoO_i{YE^SI$M}TX!B_a)OzbjX`U7~RTa-xI<4)Akr$uV;ki{794qB+_zcdgd**dv z#bA6eR+`^{3MmG48CHU;wwX@uiSD z1vJR~4}urTs-w1~)TAIA6finZ#+g=la>%0-kW0M2{`|rf7#Gh4xdI3}bFcjLTGIM2 z(SP?>2rD^7ohDC0$WM#v8>dL0gNa?Ig-uln@Zq7+C!QO9W{=>IJpR(ika%)OhEMMb zL4H4ltZ=cXSO-)%t(TpGgi1wMFfgdXB7&{LZ>3TT5En%2vPytn8E9$bJWo4c0so?6 z>T~PAM6N}Chn5fB6XdQ5GT^`5a^ zHS6DIb{5!+-sBZbPLpveB5EA-FrQ&EB?QBi>^RDu_%Ts-^V&iCCT2RP%SJ^?vjjQW7^epe~;}FHW4EniL z67#>zRn7wZ2WJI~du=z-PV>4xGcTZ%vw^-%ed`GWp10(Fo0<-MOleHut2=^6DpGxV zxK30v*?1lEI8|7z1?d6SKvA8`o{@Ud;#4Z207Ljn5(bY%V|)1uQcr(FPy5%HBK|KFMIdx<>Ak zdvO8s`@a5T$wPchi~u+kgr+SqrrIE=jb5D{$0Umqr%q;J#ejh&zG zBj$SS*pZP#yE~T2iOj~8t9v(kr;G(9I>hJ@P?75-n1a+u^L!z=&Z%k!f4ul5N?tGe zKD(8V1kxLeHFEM>QFOgiVXr&dhzj1G?BaBTT@^_CCEs3j9ftnUWM<>Im}znHiq64Z*OhK<7ks&UM)8BL!?^fkX1y0SI}E+bs0AQsyp0NZbN*`IqCtP#Pd7<|K8-6h#SYpw1|uS{TebLPZxQz&Cb_eCM$k1v|Q$^?>&l$0^P zS=3#|d&xlRq6-YeE>*o*S82R4+`<8~-W%tf9jvVIsyo`aJp`+-6N(BdT$?HYmhjU4vLaTeib-bs(uoyOC zq7%qu84i&yONfAYpxSJSX)VZw2}_8So}YjarSa>UR-i3J#O{Fz8j6_ekuOAPyy>R= z6?Hc$Q@d!=&|T_0``XIxFX3*!t!zyiU`SK;q)AWEBqsbcUw%o%TTc8@nf`(bsh0S% z!%NzJ$?j6z%I}rc-82}&zE*L%i>9}R7vQY%Yi&f1a8(w>utWCn0@bAmuzC~>Z>~^D zC4!;J!Fj3CW!Ou17ai-1x!v6iQT29rg^?4HW>)12-Q@tYNMM8R5(rr&>c*ms%n}b! zs=wg)`4{Zr1#{QGVE0!_oZ0;qPEVx28I&Sl^#{-%UWqg)8p5EzSxQ$MUoD!w9MzT< zXOL;+sYTj~c!^-AYxkF^Pg`55)n_98O%WY#5IwH`5~XE)wYa~buCHC0V|Cy2X%o}YK<*{?qxQk1*+SZ>~4mH2fMrS=81Hdjl4;;(_gUo zd9JU>)ady`i=k0;&Ctx$l+5_+irw45BWLMl=B?6vCFB^5Y4=scZ6bXoT*kB`oW54n z%efT$7Kal?ZzU$dUtaCr0tx0ztkqwvmO>dTk`sTczY}#d3TAeNd0VN!87Y!mslO>; za=9*}W%n06dw+Sg`wQ-u&j@Sk0tKG7Wf{oS363wjOM_@k! zT@@fWUsu~*<>=V^g5A>;3#C1>6Sb%c_|T00*ga*bC~rVgY}7Kfi+aoXb;*$h=~iuQ zi&vmjCKz(Nzob9dGgpb@L}o4qRRyhVaKai{(EBQCWDJ5-$-YV~Xh|tffh;B>R;;Cn zBCxF~rTr$-SG6tiRjxg<=9pVOWr-#ps)Bw>;xzW?w&$zh?Ryt2A;z*+W_gL8a;RcU zu{>ZRJ;jS{PCTctjGbv^+5MH1or?WUsC|;BpCtZ28v8@=|J$!`en;~=YX6{S7e0ZR zpEJgRh9pVnSDd%CWih~vLp}`RWMicr;QNzXcAq>tc=E{CDIf*BIw6dsd%ica?Yq>X z;?A+XFQ0tm$jH`1Bl`}Gy!H~M)Fj4n-*d@K^@Y=>B8D_SwT06>9syo_u?pv52nJ>w zW1xVi%EmxGNy7f-WQ6i*m2MC!`nw6KRB}O`LSnS;7$sCF%sh+gQ>vdp6nQqO!KD!ca3ZS4U0Cz zT@M=K&3#P2v3=W-A2625qdxxnmnm#`;=utC1M0v%e(>azyT*=uedOVTC*F8Y#Oc-V zoL~YUdU$N$HSW=6566x^CBgoipBvda%vTV(NlIWfA=0M{)tuvJvaUfR!01SL=jTBZ z4MoksI>kpq>>*nW3GwyvSg=I!e3BI-q5giXFlSUrq8iBvAdQC5=^)0RbFXABLA7aW zNnyHIicpM18sDi!mqZq$0EI^Qn}q02Q9i~vHTK!4ElwfNQ^dGxgnaZgWr|f6a=?p; zw8e2pR6NlEp^&qmqXb|cbU>+m=_hLuH;)gOkXx!<68G;XYsG=7Alpmoqp|bloUeR1 zd?Zq@k^3nG*ngj~_<1qJ6E0G5wiW_B2c>@6SXs?Hm>y-1q#OT&q(vfaboD=yLL^_t z{}%+H1N}|mBG9ciVG70eenD&pSr= zX)oTD%=G7n6N+@Fc7eY{na9azndT{j|L@y{)l)v*hCzQ}IO*}+N))WZ5 z=h0cS6lXw^mR#u!QGoyj1p6*&=OhTLRH{%US!ngjOue)$9#ir$(;Vgz?ck?|5j0K} zU$RvxTTRZGtibEmuIybQD4p}VxG!9go8MV`of6`q<-^ygKeqN*J1~u5J_#W}6S~zxv9^tIx5)U~4_{!U49;Y^wP^GQ5BEl}APn4$B_tv%y0k_2`T3%PIMjK6)!QA z65SGi1AaL56bXi`zzs6A>wm5|yIj{P7zg#h=1C<}YA8!JWl=E7VU!e4QGt_m#uuuj z`lQxej3GVZG=&sy6&~%;&e<6CnWYRl0fp3KuH-Tj+OPCzHQyN)rROw3X43Nd>iPz=o*N4aUKFazvvUQ6r zKzNGxZ5w?W&+k(JR&bEOfzQc(-yPXK7z7`L(Sk!yF{;H{$AcN`Gl7K!8|9naAd-Jtw`p<-(q;R2U**T7j zb3jvyH&Yqk=Rh67xVF znHlZu#5}NhFe8}kn1^KA3U5*u%@{PX$-Hh^F&;R{gOGnK#v_Rh=Y7HMu5ic>@sRr_ z(p{i>_-2`C7FCiuylVHBt&|y<9R-QbO z-jerd((DW_kyS-8I({@I6}DA;zR#)R?)oET_ZGjdKjzlZ(xozC{Qx^VL0R&EiS!l| z(Tu^dd&?nXh29eDY0iS;-U3kOjg{SBta7j2?rs5G7Vm;B$^`_%8rU4Wo{KG^-m#`hUv^_K**ggv|}(_|vU3&?bZ;f2|jtOk7r zgUbx+DjHgVz5JMFyRU>7`a@{-HOb!7zhLz>N#Q$ZY=z4c>8l{-89j1DnG~@Kk!Yug zaL4!KM}yk^CGp1ZmepUdzk-A`yT4hsleR3&lPA*Oq@7Xa^q2i%c|}D6ipi>?@#PSz z+Db=N*y9p9DD)g7^mB5s+ zr8!>4#=w!H!Z?fLNQo48`YQ~ZKz~_RD*hPR@XLD36gvZc8V6OtI_AiUY?ZVKSRlHv@Mfl~Ly z!%NhX9qg{8ZX&}AtePpXPJfv-CO0f`PLq65QJjhYmM<4gUviHF)7TnbD!izanBx9s zaF^M`J3+fD1u${>{@UqDc5lh_tJqs~Qpw%|tQ_Q!S-p+p{u5G)drL}~z4YcLXjY*P zD{c{RTDk)3D=Xk{m0?g`nhBdLHM$s=fpKj27k_8z?iMok;3_RS5n%>Vu)^R1kW@53 z{qB;4SJ|>6?n!1`?cLk87sN-vNl-2!P01Tnu~pMJKa9GT=exRIl-OE zhsN3-B>w-0;QzPZ(41;c)y=7SZYtk5^X!RoprK743Eg4l1yD=n^XpelP##kx#tw+Sswj@hp!$`taz}kBuDGLFg}her23cl_{PYINZ^KDqaM zqmMts{Ss45`?13#yLNLLI{K&tAmfiu#jDR3IAt7O_j?OhpPsZfa8~ zrh$po99NvKpu~#E&KYw1s7{{TMg!Em0l5e(;i7iV}!Ut3o(5vSt7A*LI$K z@{Qw1zeWzki5Cw*(upJA8hQOYGFQos*g@IFqnvV`{MO?mN4^fG))Y&>r!%IIiPcCy z2_sVvQ4jVyd63~h|2Un&GO#rjz-?AI+GFc;j(CghI1_U6gQ_lU8m*H)^D^gnXq)q}

W@xU#V12`?QNl4fy|BH9D~i=K$@|7;KM4-WzG#+twAkBi7XXkIlC)*N>gSgnF20_S+Mj+!<K87@38UXi-QWzEh$OdJl~>K{ zISM7?&`fAd#PY9Ile&nEfGm7PLgtbk7wp&=koANnYsCtuvs4gI3UFmI>jDz{WK-A_ zKv2NdY_iDgv$z2+sPkDxmIP!{q{F#xbCZ(^=ejbJg72pQPPVuYgrxmhIT?)mZTi^B zIQQH15&7v{x9J09#<}j$mvHDyIP_^JNJt-bxh?t=4t=_qk#WC6pDvSQTzBZBgr@a; zgx>z_(3f=hMwSQJ+n*i!QVxA7hdv6v+uwKS zOF8sWhups3p^rk$*7dYQABC0e>kfV1v<#=ILmw4!?e9DEr5*ax4t*JizKla(#-T6c z(3f%e2jsg&4=!f=vqN9Tp^rk`*8QHg4EmpS=*v3vWgYsm4t-gNzN|xE)}b%!(3f@S z%Q^hZIrQn|#Bjdp#5v=$LtoCJFXzzbt|mE$zMMl}-k~q=(5GV%Lwa=Nx$)VdPsh6& z*B$!u4*&8FeR+qzf>r0RKNW3Vhy%p%KiMpv4O1aXkN zN?`u0>xegbv|tzd%hH{jx_ehI4XDx|1ERc-K26?7U*x=xzQlPSeTI1-{qgiZYIZGI zx?_VF98FE2@-I-GDeg)JbAn1$<+{SmC#Ht14ZAA^{lX>v3wGQYGVFTwj#;yc-jXVG zazKrnPd}yTI_5`)M23P_Qu#CUO83&?fx{t(fBul`M|r$o(tqg=EPQ2z-L$y>az$`` zy+cr{3k8AEkhTij>oY3`IISR}rIeR<4^TPb1%bWhQRL5?Nf0WlIysLHx11+qt21?lbXwQd01$$TRxug@BP`KVz zn~c0ohAZZ}zi68^6}3$|*M(h~#*LYD?RlkG<$Ag^o(HhQyY35xw;YLjULA;D8THIl zu!cD~0HU^(w(+O{4#8E=IeUnfC-TP?sFEB6kRe!2~ZpR%S!)_|6 zp3|ahI&;(^@usme$+(=MJ_c@NXPSG<`I3R|9iI>QHF%Yps^_0y^c1W^xDLlk^2;M4 zo=Q8~E-)fI2084r1*|eRojKw%*Pc)=uWjLU=cY}SJFlHtZ%-L_*lY#j*_2CSvGXGJ zEqfxZx3%nPzrJla_B;N5f9AjE1_z=?wSSVdegjTT?;$4<7%=&i^>HTTO~sMNWWnlA z0Y5c)9#!L9ub6umi8Ou8^P1L&nZ5q#Yh|gcgCr?r*M&u^}0-) zoCI*AK+nw*mKtRB=P`mPx=b>&WcLd?n#zq$$O(5kN%&y`AG!phd8c_<{OJV}Y03F7 zfXgNh`f^GAq#iXs8o1U?(N&si5~6$BUF&ag+{@F;uWCg4G@ch#6l;mI5D#pEI9XLl z#XB#ORJ*i9KT|ZU0GO|jRYBzhj+(J0q*P28ph4~#8SXU6UXoZ3nI7fDIuek9WeG)s<+w(J*(iUZ%!$P{C*^`CfXKteK}eroiotvVKKgKZEJGKh zxR1WLJq*#?b7z(6T zndtf)z(u^Mu&U#;iYL@*H;3Rrj>ti`!n^>whZ13+b4bw@!fyhxptgIG5FLCQaR4JF zrp?3aAixcmVL`yf^MJ8Ruv<9|7zGe5>d|ijqMZv?Nf{J6eWWrj)=%@w1Jh@fWV&Zf zRc#8Mfi+VkMq+yfIl`70Z_%ut`03YzLVR6G;ypE3J@GlhQPAH26qDyjM5sSqDX^Nt zV-Ii;5u^b?4Pm6z2NN(MvOS4EWfJSjni1{I)Fwl=K%vM=MtC$f>+wje_SYlzPqa71 z*2I#n|6l8|)*D+s-;!$no5mZOzgzq3&38vz8h*e2_v^nDxto7werCOEmbx-<+nk2E zS6opuxN2kfvei8+x;J+B^=w?)yQX`U`2qd#z7Jhi6X{*MqUWBzJEd~+((X+g*Qw7- zyVtK@s?^J>rHSzG3}0%Lm(+hL`X^PqV^vSv^&ek!-EE6HZoBRSA6?X8(b92cb4N$- ziVpwh#+z?j^r1x`@3{5jH!i;JI$&se*JA#n7bYlqFU9SB6(hHoWj@z7 ztrrzjtdWrJ4LxhRH{7A#aCJw(mX#aUeW7RVQpTotwR=t2+qbl@7wktpBii#d-xeJ| zeBO*)!@@Ht*QXZM!8STirxzjkVU5 z^I*Q3%dIj_JgpHD;;%%(SJcv>);y&ClsZP}FxD?;z6B4xV%etN)hl|}u2M^wG2dLu zrDMjFb1yUNman_3XM;DfR`m2O-_W~$WAD1PUW>49DJ7~`_THmfLdFFa$Q4(2tYU)p zt?yah+oM+|-Lg^EOKn@o4Y&97uDX4rc|#w{$@)h3a(T6R%ev(#+dijJWpo5z>|3{C z<5H9pz3`=>co60bLS?3nRPz4 zSX$M&c%?A#YQ8x?bN;NkH@>GF0b;K*4$@O?ym}v+`#*bL!`%10r)J=biWK8MAxV z8Vf@dWT*l@nfLhfN!_p-8z_8+Eh2Km^4nRvdsh1|DZZh5jaXVsnfz!2e%x6r53!Y? zD~N&a@id>(f_LAubmNBZ6__#W)Vo#h^yWpL*uA3mu(&DyioPKyH{B)e!t}V z&GQ$uR8lLRiM2H0{ZY#{^tZ)48(@RWKG$pZ{&Vh_XY*rC`y(wiyCdzt+4i~m54Emu z>S?^NW_RnAO+TvpaP6nnmVV~fbaG(xqDvcCu%g4ipqB}MQvtRMvpz7U^~ahEEk)s6 zb=Qn=f*Pu#*vPUJhnifb*6=qsYW9?x@Y{z5x@9y+2M$vM0B_~htT4f6Q?v#LES9kb*$D7i>`mzSR zDbdZBsd3!Ub9eWK6`)|P3jeCP$Qr%yf;(_N7pon%qQ0-`UAxI!=ly4u8B_PN-Q`sq zy4M;U3~Wfc`>P$Yv_&^(Y_Sz_3B*!9)XcRyZC#sCzkQ3Z#D-f&*w``@vBeND>srw1 zE7osXwp#gaT=U$zzj^-9M=oxdJAZ!7gL=2VX5EUO)v`k2`B}Tl{&b$zfBTxt0Ao$9 zIQB*-`HDrG68&m6BBm?N;Hg1^DKfolR`q>B=>YjvR%!$!oMo|#$UZg3>! z?q%H@m*0NsXM=FW%`5QFc#c)RVs$+n#<(87O&d0dL8_=JPqU&yITQ7r&|S8F>Ru0J z$)i|E5W<-1c!F?ss2{&|yDy) z9KojCPK672^6uXGg-a@J8MF!r_KeoY3!1k?y2KB*rJ%;by2yvkpL?g;Q4HTFm(?N6 ztjqLCO#gd-reW?aS4I1Kf*o0)Y_;{Ey~InsCDgfCGsn|Y-ZB^N(wrOZr!=!)b8hIk zGFTQne(A%DKEBA`6TGkE3V-=-y}jmHv3k6nk@E!SHQTMpt`tahRu9jq zY|dQ!?pbp`c2%_8ft_uo;`p!|YGz|XtFyb!cW8m#GP|Tavub)1;rtTIr0>sg&hF5R zzV4`6*@Ry))s6pxP-h1wjxf_-(Dkm_d#79|vjV7-IsGhWX;MRTdpF0np zvbF9H>UOu?+AGTVOCZeo&Jlx#V&k53C1CWwcMXY+(v#8ZSad6mit z^CT3C=w;$20Qd6YLgH!ALI{#dkP*iH*^2QLKZtz6BfO@m(IZ?ZAdQ3YOdMSAB*?OY zBF684a0$%T#FF($tzTmJyx*y=2lGveW9NG#N<9e!OUpNxZSDSTo>JZXNX zfs!>Lp1eK~ga$rKg20wSw*MC%%#!OP0}cT-KI5j50_c#MP&$Gp>wr?((Qe>~6~F

s)C10x*oi$=*!g(z>-;CiU6@GGB})TYD6NhES5-} z>Qx0PJ}=Xhb0EZ0a02CbFq{&4X)?#>CHZj1=t~HgmPj((%-fxMX^bahfY!2D*`Ivy z=X4jS%_{Phh&fA$eZJ>CMWoeHBG3dWo9!-E6f#WpN~+(9j`sTy zOr#7Ev;h~=s>q!VzjdZ(umqLmoCB(-SY~mOjQ%WzQq1|xY)HAYK|>o;9|zuYHi3%WA!Vx?sIH zTgY?7JO@O4Jnc-*>mH<1x9Y*gVGndt^mrH?2ll)`4MnM8$Zwy)pzxbKLp;ma4Zea& znzzf}Jjs$Uj3zL+Edh%TeDJ}Ax)X!%F*;!dzE)wVp#sd|_4{D9slWYBl%FQ1Q1N%s zvd3yk!kV(Eie@XhZw8*F0-{v26(CoO5}yhQ$@T3Qu^xO*k^pYqFXL`;GDA`{0r)ig zG%Shs=N_EziGxHypGzih+xEzto~A&Oeafw{^J-+^ObPP9haXIPGR%78bKb5yR|Wmx zS-kBR9E`V4cg4}!{8ebQC6P$YCQpvSO~|=qaIr^zS$9C}EpH;6<>pqb{f0#dQt zEwSH?weiQy&kP4;;?~Z+II~Wl<4H?Y&k=I@V-uC$62PI)yXE7f+aB|NRPA>CX zA68=8SXoW-az*rsog)Vx9o;?X0q*a6X5_`E$A-Q!wr$Iam!BIQe5UHmH!xvUEkis~ zR1c$Eq_n;5*xF%TdAuP7U}W*eCioXv-lX&=bHGDWk}FPuJjeQ%itmBJ z9f{QKQS)Hv^TUnmkFB7Y8z>YSBy$oIV(JjN-}*CP>UdX;$WIqKMHT=#ASl35Nt0-w zkbR=saAxCRuA~x~1Wsm72>rb~URh9#3rvs#2NBc|@i&|)(nCq_rHF(%-L0 zrwVuvl z38a80v*K;jo^vS|ki$DpQZ!gE3CDA8%?_zT-{etWi!UHDw7z#$4~ZP-fb>Wjx?aef z9Qt!XeuQ|fja=d_k8TxWgYOLhsyIhj_$pJG;Jl>(x>W*on@A=|q^C-#_J<~r6fmqn zv7*Kd!V~CJT#`8eRS+0Ju_)Sv_?6SC0vU14o3{;y%vc9cRgiurB)%rr7K_xi{8=RS zvDQ5;f7bScx`vu9Z{f|)+1s^-52=DiRJDtQWxX_p<0Onwy%--qJcSjh$}GbtpBOyx zCS?J)9Y4J1_|YN$NQ^xE{K>uNAk3e~#MYnIzn~U}t#hrNf`;{-#2{&ODsA)1=6Ks9 zCl0+jf{~>Gjm(;geg(Fm^di+`PHe?4lL|2B5X8~JlTYrF0&Nc;q;Q+``PJ{7*mf$k z#iw>tp>mRJs>c35UG>wFT}djUWF*!Cycg?+GM_@S5JBh1f^sWEPdIfQ`g?#qH}c8pJPv zz9t)a5ZIF9uacwRa+6dj4*(=L-*3qEWKs2|4g_(WYtPvu;Nx6-rUHDkngwax0Fvy& zFZ1@X4dy;pW4F7z@Cs8Ga512Kspy5*DZ>%BFaKcsCfJ4(6GEUMP{95soLU@$Aq-qu zPGEy+_cr0FIIzQDO@eEt(CsVC0ND(7c+^{HaOZ;J5f_49mYia6=YZ-lO7LyI-%y%X zIFG-Ptspc6ePt+0CSG{9(W2~>WrHZ?3A4kANzE2z!RU~rY%ZD3iOoaIHMNtmV6@Bt zL@2ibU`qW)Dk+y2nXB&`$PCZZB7@2_95=eC#yAB24AAaDaOaYg7;=hj zxWMpPB;aQ%Nie$~_zP)CpIl=++8C(}BnY86rn`o@{)8PN_ zi?r-h=>NYPYdw3n$TO4~9Ejzk|5cm6_PLcVZ!!sE{;V+*&OuMX)bXwwGvTzJTcxPy zndywDsG8|l&kBNi(}bMH^H{$r$^yvwl&9b`lncn@GFZf!4AG+g)|C)wHoK(O5DuNq z$ML{x1uv(&)EuB0BLbaQK~Ev=|E8oJ|Co77t4pU%LfU5>WM8JT@QDWp#D(G4dQT0afw6m-l z!5;ViuWSrX1;Hjgi33vbr;%+;M+x-T2dPU zt1z@I(u@Y_8yuGd>>q?zWjQfN39;G8u!9hwaILeFX_A`MUW{VuY$AM}l>wHVt(a6# zVXx+9SI9sI@l~>ye5v?Q)K^)y1Fiz;(CKj2Ys z#V+`BscM!p(cwDDWOys71`#L%d_l-hHb?0}faoO+T1!iU_6)T|h}1)ENYtITf0uF* zEN)=dQzuG0h12UG@Hw#FzA&R3d)*?doWZc{;1+;z)Bx z(;Ibv8vWnV9zM+cL?Qzp9{dbxL9=UWC_lXU-jz~J`5o^tCsCp+PR-9ewSRHGc-19~ zu2VP!-zn9jyyL%lAHVt54=)OfDeI3xF=g+gU&+z?=+}AlKKivOy^ns4NbjRxywm&W z*O&A@DwzyQQy2W&l-^apMx_2ou@|e*IB_!0XPYo$Zk+3yv?cxL5B{>x%bWV!6))@R z99~hWGsk|DBTlQ5r(WJdUSprwtR!~Fd8^%Jf_TnV{9@{L!yIF#5{&kptg3@$%QYI&NJD=*qm?H*Q?twQwO;eV&&Sh%8RV~;{Xp4Zi}qPKf>$HwLBJ4)Q!1#mMktIIbAe+XzZK+T)_dRCY` zig#u5QZp6RoK9IaRW*jG|(@Q<6{mh!f(XOJjYZ|;66rR44An{8fFNjH@ydz)lT zuh6-3J>Qi`bjERL_?37+pVzgO2>3T{r>@6}|M2) z6I4R>uG(Y-Rg}G}4jDFcg8Iz*=Af9f_t74spf0p`)qby6%lm3i73A#q1|`k)cY~7V z-bZ^-^7ea!8s^^3wrm77%)P5xHkK?M{3Q}jXE!xrqbyKr&QW3*D7j8Kjr9$XqU%Zt zN{F<*s%ppTyd~Q|JNU_Pk=#?SUh)Zdk<=>j>{ukzNmZzw2=KI3sNG*AyA)J*Q??0dw^^jjKS$R=?-QqF^iMQ>+oTTutAS zVK1PkV+CQWe_bJSps}_xXP>q(sf~Ua6kq z)0791FT8glm%CT5_Ae3_LEc>Oq=jp)yEPLJE+z|LL^~H37`;svDCJzDw<+-VN_RJp zAJzMY)m`9y(h0k}N$#6ScR6o0d*t+&h%2{8L3gD9uzS($EFLEF%>Kj}ewIbJiV5 zztvwHn<=Ni^5zNjmj{9A7K)_P-!$Pm##Ot&Brcsont_)qCCwQosdvHZZxWD6f41BG z6&NmCn&kl#=`SY|Ml_Y#TQq$WdD68?jxTv4w%rT_@PzuC$Cxk& z$?h+UNqKQ5&&-Kwbj zU_n}jmpy&4_f0FMsJ~ckrM0sF)0FHl0_|TgCFPlt_IXD=i-1g^za*lV9kPcPObB^>8AFn+ z1NWk-tyH*P3FVvue%&8-Lz)@HoLyKw$Tz^~Zg4P8!eUU@;bL)Oo z_f*}l)V-(fJ>v)usNY@tA0ssbH}0B)pL+gziwEa7HLlb?Y)+GvThLF=0An-VAqS`& z%%wVkNX3qKa%M5?0g2qAA04N001ffy=@831o>%v^K3(BV-bb)dCP0ldknL@-5d#Zd-!EL8zS{}>E=u!~; zMQ)9hJ0Q+S{r01I5P1{7){o`^m6^S1foN9!TQVVya2^4aCkBuRLbIpQ{`9UoI&sB$ zi~A)l$LmBvhaHTg4$kcj4lA;mj0Oxd{3 zQVK>WTK9-T@`U+<;$C$yl#EK=&|=P55fe2Z7zv@vP*Y2}FMY*N-siIqpQT z#yd%QB=nWdwLhyNyZ;w<&Gu$>|8=`&mz=ul{9zm;A%V4oS_c1o@d4k)oTNb{9tbyn z9SGc!n513@94VAJYR_HfS589HLnS3s_k7(6RXiXNr?Y$*qW#zJI?rRi;HrmoD+m8L zn4ij%cL=PS|J!Fiu{9?1(M4K(%2jTl#)YX+T~tDr2uwxH7n$Or24cx<*WDPr-0X%9 z5gA7}GLk|W;={|>D;1QH(3fx`(5}0|0kLzxHwnzU`MXFXk<9}RoumQ>-3SUHFsCeV z>_DXuuW1k=ywOy!Z89p5B&4u~M@C4p`lhU`mMl|oA(I!;52#oY9r)0$n8(b^EN0qE z?y1*Ov?4pYaE|%ROgp7fyl#l@DOu0Ju702tiPZ_J8SzC-+OQV^FG)W!YySkSL|#ov zLpfV`TDOaC+%Dr*X(7-Us%C;lH3C zC@x~u!yhhq6O8Ihp?3BS6JWipjucy9tO6L0Rxhw3bET}vDYLC$+l7QtXlt&iCNwDs zMc@>69DF;Y=G+at=6HjDi8=TaG30UNhI1n{=nB?g;)3!9A6QqT%8|?%Pl_$|AznvE zAIKN;3iZzr;_G$+Qdn$T>rlRN3`ULwiclLUov4&+4ul><>-!?iw70Y??Wz~5yqNKY zBHc=SF?Gj^7HIJPq!ac6eO4Q(lBcj}*DR0uww zTAEPIZcm7ev63$eqb+?bOHE3SPc2n=-7e~;$>s(yr9c%@4{4k;TB+I4&JYRK-EiuT z1l=%<5{3KfcjHu=FwKg>f@^gm*1ib*|Bpr5w#I%B{Qr+N{;2Us;r@Q;&f!j#+OYMG z#RC_InTJ`gj}r!oow`KnvmkG4Vqi3!g>k8a&{ z;@O7;YVGNLBYR&c#+KurONtS{}zBUmP+ERj)>XUuGvFEA1C@nXnj7Lz4M9t2?SrU!Ddgo=p=02%!|dax6!x3iuO&!#qLtO%_xPux4a?| zfPU`SKep%S$)~;|)j^JY9oO;YKRLFIWkxE2Y&|r#Z#!`EU^yH=di40~rvaT}>THd( zM%2N8ii0ze#%};zwV+sQ6A}j&fhWLMKy6rQXa} zUm1DzIVu)lx{SPVK$o16N;AXzM_+klDE7hN7npnG3mbgshadj$P?MnaW&u$Xn}9WR!swEGJ>Xpmx#SIzIk7! zNo6UZx-nINVcXMfSH`{@dtd7hT0hqEmn}WbKWVBq(WpI&>3kRIqEbCM zQ6hal*(KLgM1V0aL8g{hkR!;n^FHgk#`BhJ7^?T*dQ*kBCOR?bfK=4+1*NGUP0PW&7fDh4QXwh_I#tzg zjaKtkKoRiorpxhHQ6&ecRll{Snz!aUiG;>*FEgqF)sU6r{;J;^sphTOPQ0_=Y?gbg zP$j#HYTr8e#p>Ql;448X<=!e(5dl~=hX;SHnzv@i5Tf*&CoM(N#5n+HFL(*6?(6;4 zyfxhk{xEq)<@zdA39fe4Z~fJ3-kR#<Pp*&?d5$05!#04TSs(kB)!42M9Z>q4Ub4)1_Bjq#`2qam-?5ld68@#icuBJK# z957$@twI#`bM>=zeRXdohJu8>a>FWA5h_wGgZl>8Rr6M?QUbgE*;usB0e2u37^^lA z`v%um^VUQsVcEc_mFufeMbcaK8=DJ7`&#!QZWE&#A)7|SYVA5yER-N z?hS$3AUB?V_1XFmsDc$2gK%1J418RLzYv|f~B2ZZb*`!DS&YbJm_dU zk|^*HoO>acKCC(9=Jhq;=B%pdoca%oTwI-GQf3siVD+k!uoQc70c4l&FkrRnmhZHB ztge*qpf&>&?3DmUl7psJSlWx`7Vt21$yA*=>}BALDnm`ti))X0BGC#t{3UyI#4XQK z9RYgbFCiAYKGvl-w;T=QO;wBf_=~?XTbzmG$6{+0EUET{4O7YF(2GmF+;j?-RAFCF z^b#bsIOx*LnOd{C?`~iG^Qr1BOP-l-9ao(>{Kd468#cJ~(zY*i|H{SAEw5C?Qa#a2 zM7gVSTyly0IE&$uD~W5?SJTyZ-R>hUxzbZbORYn$sFG}QDFSe-D^(SGFXT$Lu7$Kq zFXo|Lis+I{3bC!|(&WaiWgKc{GP>E-F17gNGpTJ-f8>_FtD?Xjs2wR&9_y!;`-uJ2 zC6|^6xx$QsF{;O*m*$~yZyAeToFL5dG2d`DuM}gsdso)02Xa|Zr$REpTq)AA7Q-c% zgx1tr*n5}FYnbJbOAU>xAy4UMO3Rgy$^(a7PQ7|!@Ag_;Nrix4m}Pp2pI#Xxo?Hx@ zUUp*U*-JHJ+~L7uFS=QVrtroTy=0rz61rJdx)=VEIq#>JxrVv?O;^@h^irNLND1-| zd(pG1wM&Yv- zXx^<$PLuFt&1-)Yc|#~Tua>AbFO$VXr)NU1ZrCM$-W;VvuzaWG_%-6^sqfoy@R#_% zqxk~lgTDN!Ye_8t{YuB$izUH?E9v>L) zKhb}A-@oYl<1VS4g?AVEG8z@}d{NiUj?MDh$a8TLaz6?77A^cy2-MavNkv48eNY7} z+D`@hZ5FN%f!Z8qrp8ECukq@r&?;DwpA;NAUAQg;D#OR6L6Y`-xn4klDp-*L6YK?C zcvlEiLIETkX1kOHYJ;{2q|)l$RP6Cw*d7A4HjEY9%68fdRKbdAnBjbVX8=?heq-=6 zD8(mDf|VrX2m0eW3)hA~tqiv~%8Va1#aD$DJ&VF={lgHbr0Q}pGSZTUDpSygNydwlEu~7^q6KqMX zFi`Q6v0;O0y($DMu~BB(nK*D7Dp)b1F<1}JE?lXhdcz{Jg2YC-3Tw8dfeKRieZon7 zdkCq-M(GS*$&3KSNL9k)P77CrKxNQ`Bo}4|C2sC3aGJYhoK=@kYm zl1+kh>pBZ>3xSG4l#r}<;|Nyx?ZP+CAA~@~O+t-_Q37dN1uM#c!wR#z?a=DJm%$t_oH{Z7|e!2-G@RRwT0dv;>1<5H?!d21BKvLw;(KtRQnA zs#Q;(Tl5^Olsv3psLc?lYA}>vODL>p8yuQBGrQ2xQ1gygGOMZO$xfOSQb7uDd3YAq zLOq1k3U?=SsgIdOR3<5qdXky#Q{*s7v}gR`zWF%ElYxx zG+zm(^$j6V8LcP{$9zx~R+vqp=Vxc(_d=lJ@}+pzSX(JtNn_@IN)R)U*4c&EYp8jr zwj>NU$$0fFFuB#$26evS+vayeNagz3psLcR4h1Q(0mJ<|uM2^SKaMa-c4{w5TGE(t z00cvwUDy(`z?gtIJG`f{ajpbAzbvxO@}I(-*ICGCZ5o~DRKalVGr`pN*P%!jSY z9mmU8!3y_4_?iA|Ay6rGpkIT>056X!tjH+|->>I~K$R$FnI1nL8D^3$;R~uYqvruT z=M^DPnZ%7-!5H=_Em7wZ$$mA3!2wXu3xSHMKt-R&LS%&nD`L8#M^485KUx2OkFNj! z;f6oRsQ>@^K)L^URsWy5|DUVr$y4w|DrwGY0$S-s6mkg?g`V593qv75xgF6cB-`F) z4HZsgf(6UVIU$_GK`ysXpB`Y6G@7N!j$Q1PFW+HDTV^a2Z3t#~O47r3)f*sVioVKWI!l+^!=Js<^5tY0z&?(<)feraN4k3j1})3Ntws5zVen zm*;{NU2Mal7WV6qw=xEU78QP|f>i@IY%pI7`*i@7*c}HXmqp)p6|CsY6KZD9E|`8D zc?S-$J4v|qu~i`@vrIxsoiA+HA*8k>i{I0lM4k&$*hRq$JYU$ZL*6P)K=5_=7Fc1` zY=k$?m@jPCAyBEdB;;+BKx*SCtQZ#(Z12t&w(Ah6qI%dFURnh!RAMM!XXj13j$C1q z@^k-{O(BIVBv>=e7k29qQl%#nt~1}|iRWb35#0+G;lgem0#%K@BEs+4tx>0@_##<+ z;>;Iz>kz1P<1_6QR?O)Nr?s$K2T zuw92h#hX-P9EQ&XS6C6>2sQj?=L_3)2voU}QT5{4I0`8|Kfw;s`NDP`0+ckXRwZsI zlNKgHiYsxr2p6{N5U4nJ3IBUNEP@qQzcDldltf{>4uQ&cEYr@^E5d>mJ{!w7;E9_v|imI>=jzw$RnU_{CgW<+)(R#H(;xcZEQ0;+3zpOr}~Is$j*~;c)G~GXyI4 z31lgIzY48_6T`6^h^1R&UJKmU;cs6-$noy_<<(@?>x30~oR9SecVsf}TjZK1Hj z3M)FTglqo~hd{;1CPygyCN59~EBfk$OVfu!pyGO@t8(@=MxY8-4SIV8Ys3$RK&|5} zqNhNnH6~C6E6U)*`TBtnsM3vzL_*(wtqWEp#fL(joqxZ9>hp68EmgTFk|~~LdCGIa zYBi+3&j9rqF!Ite8;7-yYPcQzvGhwFiU;9 zpS2(rg7&+CD;(Ybb^rfI&%I>mdqcl}&Yz$2?#=&p^PWxrY11b+t)>6}g@a!m9NutZ z!{zJ$#ri*9_wUzzZ0&zr`>C~qYd*8))mHw0vj2Z!NwJWFTb@Sz+4Wt9T$&Pw2Sy4@ zish}C(TtHdwWTS6QCLxt6E3EOCB*_2zr1vf^|DT|!r~1Vn8K1`fm&sSTXfa%s2_zD z86)AFqp+knf=WUTwxtiMV8xu@Q1vrAUszHsP`PY(Z@p=@VmFbFxr$Szu%sBE;+Cf& znD+oxNL9E}1n$Vrd|^qkKt<;f^fvdD6s>|4K_G)wfU!_mQXE0WYfSq(4_g&hU11A= zT3AvnP`NS4Xg1%*0jkV4G^b7g)WVWtf!ZX&9~;CARj_Jc#RT)Uu%uX^HYhEn$AWL; zD6HsU6{_Dm^MxhF0u{@LQU6|A_^g|Bd7NwGks1`!?M^%E+r>gdcsT4(1? zNwGI74pbr|3;{91l2%QE6ge#63tU)HEI^s=LMtKTkV`>TNHvJp1e0niigQV&CR;2(&X_SWqmal36O9%6vM42nOwR<3{oU`p^^qFCNa+@wyXo0nF>sutHd2hdtrQ7lmD+C#%@?@du*MRVbBz7|##3sj6EDgcbx znHFKe3buzsEvzUOs3dkUBh|mcf)(8>!=c7?zd7zCiPlgaZM1BfR>6wNec{qnSokZn z%Kel%u0AiJ!b(~g1@70``MB`c>+EPtjHp6D(KF;sV?~)zAkfZyVcjp2(+I{$)1&b0Py*adzI66z7U5u_fyAv`R|@6{IShJAptu^QNLWS4>IpuX0jlnBK36tlntw4^x3Y`HY8f>nh{^})0jmJ|zAa@nLIu@?RmRD~63QK9B;XWo<) z=dCaStr}e{O;J-Cs$j)hglpQunqr}qqHI#Oy-H7EMM`lv)WVu#fr?)qbJs+9(zFUz z=)_QG_Uyc=DbCwCgwed4mMZchM z)nrPFbGIwk&j$56TFs`R3RaC+bp==pg*C;{O2`l&tfvi&tc74D?MZ{Bsj#M4ptdoL z*f`ntuEvVGk5Cz&oi{bbdE1pbEYkly&LoW#HB;fF7M2tXsVXqSO(t5v6k8Qi`1Het zsj#Ftg32_OIBhQtRbhpPAds!I^QNRYcY!HT=Sa~n%>v3XNR?0JoT=jq;}>DD~bgwnnxycYg*E@3RaYChhHe-isGCb8!=ldyXcMS6DGkbu7fL7 z5wr7gL2({X6b}WU=6atdRUs8DN}c(_dSY2$imb3Aj3*-vRFD!K5-dxm>NigZOO;id zs#Bl+t+1jKZulu@%6@a9N|lwwpFLbvSjlwwU|I|7epz9vtmv;r)ua!q!ivCDFx0}j z-v}zoE*^HB;;X`n_AlWEcwybIKqa>t->%mH2P*w&nybh(0+^Zz%jxqr#0!Xvrt?H1XK=X{3qF0C!tlaqJ|}$*5WcC-b&z(&KSm+O$(D? zCEbF8X)P`T0xFjjV&d6(kwU9rMQAV7A=gu`1MYexMpkgb~Ytp!!i!GFe zxL_w|<8VMyx9e+9ud#|B7Xs}p6xZuiCA*8pQe3sO&QC~HNKq*me3C5`*X!_BNqelu zxzQve$2#t`?perp=4U{yihfviO<*t^o6&ZiI+Rv1pb4^`7~d_ zin6}&9HE86dL4mE?_83YO|?i0s=`W!2nI`2VZDw(C2vMLifIcZ4OOt}dbk3#L}9&- zK$XUgI2AJQi3Tefj~Ynp?1HJ+@m|E`tyIQPhvnO@3aJ(bOd!zCLSea%0A)@y7GQRa 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


c4X2DC_-!&V%v*6n=1Iayj+5AWKo|BHnhVw5Y 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%0Ak0QC=eK0`hpD67hI7 z;IZ&{S3iN&@ZnT-Sjxy9-HZot-$vUTn3UqG{qOAK5#^$%02Cnt!z=muTQ+LRt}^VP zJ_+nN2WGPe5yl0{OcHDaP)FpP#YHF&8;72xY2Y>T-B#Y^S^XgLfS39zAnC(NvnE=) zY$Ug6q)LGVg2&FPEKhz{v_P`Ev39<5XtUXQhS}EDGcXEp4~l5wt(>SXvK#{lRc?-2 zjv2}IXoM&H7$tc2-FYVf$iVjd&pJfI^_6T_f zj%*9~R9xgZLq1G$<9C(JCK=0F)ofk58A+}Z{pz_@VB>&?$vD?7A_;1%Tqs7qT}28F zB=DFO(2uzDDBHpeUD4LMP@cLWGgtsL@7B6y&7yZ6E;lRCKwY5Q%eV?bVW3ktsD?to zkPj1c%gD!vRu?@4CdW?BuRXQ9G-LN1f#Ebia}2?D6m%4M*&!+?PCgdt%2D? zj`!+uMH$kK)b*m4vkn)VN0$)d-+kzKLkF)gIx6>Efi}WQArt^62^0~>#fT_ugARHq z-1VR$_ACJ7!fnvefeHTZNXWkj5k!bSf{4Y74{g C$X1mN)ZxuGOzFB%X)}S|Z@F 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

MG&7Ig)(6ExkKBr93J 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 Tki2og1B1MXE_2&hD^33|ROvZt diff --git a/server/main.go b/server/main.go index 1841faf..6d3b004 100644 --- a/server/main.go +++ b/server/main.go @@ -41,7 +41,7 @@ func main() { }) s.Group("/api/v1", func(group *ghttp.RouterGroup) { group.Middleware(common.UnifiedResponse, common.AuthRequired) - common.BindController(group, controller.Order, controller.License, controller.ModelCatalog) + common.BindController(group, controller.Order, controller.License, controller.ModelCatalog, controller.Annotate) }) // 支付回调组:不做统一包装,按渠道应答格式直接返回(微信 SUCCESS/FAIL JSON、支付宝 success/failure 文本) s.Group("/api/v1/payment", func(group *ghttp.RouterGroup) { diff --git a/server/技术设计.md b/server/技术设计.md index d88fc35..1b22986 100644 --- a/server/技术设计.md +++ b/server/技术设计.md @@ -407,8 +407,11 @@ training: - `localAi` 配置节点:键与取值以 config.yml 为准,文档不复制具体数值(曾多次调整阈值致双源漂移,2026-09-02 起删除此类描述)——**部署前提:RF-DETR 服务须从 Go 服务器可达**(现跑在 Mac 上,部署时搬服务器/训练机;**未配置时图片上传/生成接口直接报错**——标注是强语义,不允许产生无标注图片;配置调不通则任务 failed,页顶错误条展示,不自动重试);**端点为配置唯一来源,无运行时覆盖** - **预标注自动触发(2026-08-26 决策,无手动按钮)**:手动上传/AI 生成图片入库成功后,自动对**本次新增图**发起标注;**`localAi` 未配置 → 上传/生成接口直接报错**(同步检查,生成场景在第一张生成前检查避免付费资产生成后标不了);**已有 running 标注任务(忙)→ 不报错**:上传/生成照常成功,新图由「任务成功完成后自动补标未标注图」机制兜底(每轮任务成功结束时检查该数据集**从未扫描过**的图(labels 为 null/''),有则自动续一轮——失败任务不续,防配置坏时无限重试;**2026-09-02 空检出图不入自动补标池**:检出为空的图写 `labels_json='[]'` 后仍被视作未标注(管理端未标注 tab 照常展示等人工画框),但不入自动池——空检出图若留池,每轮自动续一轮只会扫到别的空图、扫完又轮回来:RNPHE_202(阈值调高后 0 检出,低阈下 12 个候选全为噪声,无一过丢弃线)单张被上一版「排除本轮已扫图」恰好挡住未暴露,2026-09-02 兔子批量 3 张空检出实测 {9}→{10,17}→{9}… 无限交替、每轮白打一次 RF-DETR 方暴露;现自动链条只扫从未扫描的图,每张图至多被自动扫一次,空检出图确需重扫由人工触发(按文件名批量/全量任务,见下));service 逐张调 local-ai 推理(common 池并行,`label_task` 记录 total/done 进度)→ 扫描结果(YOLO 归一化 xywh + 置信度 + 建议类别)**直写 `dataset_image.labels_json`(重跑覆盖该图标注)**;**置信度分档(2026-09-02 起按两档语义调定,具体数值以 config.yml 为准不在此复制)**:conf ≥ confConfirmed 落 class 0 真目标,threshold ≤ conf < confConfirmed 落 class 1 疑似待人工复核,低于 threshold 不入库;背景(RNPHE_257 实测):COCO 通用 rfdetr 对类鸟纹理误检置信度可达 0.46~0.5 且与真目标仅差 ~0.1(真目标 0.562、两误检 0.477/0.462 曾全落 class 0),低置信段是纯噪声候选(该图 21 个原始检出中 17 个落此区间);单阈值无法分离真/假目标(类别名也无用——全部输出 "bird");误检落 class 0 会作为雉鸡正样本直接污染训练集,危害大于真目标降级疑似(后者人工一键确认即可);**重叠去重(2026-08-26 修订)**:NMS 风格、按置信度降序依次保留,与已保留框**重叠比(minIoU = 交叠面积/两框较小面积)> `localAi.overlapThreshold`**的框剔除(同目标被重复检出只留置信度最高者,跨 class 去重;人工画框不参与去重)——**用 minIoU 而非 IoU**:RF-DETR 对同一目标常输出一大一小两个框(标准 IoU 仅 0.3~0.5 会漏杀,实测红黄重叠即此形态),大框套小框时小框被覆盖比例高,minIoU 命中;相邻目标两框互有外露,minIoU 通常 < 0.3;**全图扫描**(项目既定规则:不套用生成规格的位置裁剪,候选宁多勿漏);**单图框数上限(2026-09-02,定义于 consts.go `consts.MaxPrelabelPerImage`)**:去重后仍超上限按置信度取前 N(曾按生成声明数 animal_count 裁剪致漏目标——声明 1 个不代表图内只有 1 个;手动上传图同限);不设候选确认两阶段(2026-08-26 撤销 candidates_json);`POST /admin/label-tasks` 接口保留(服务端 `filenames` 参数支持指定图批量重标,2026-09-02 前端入口收敛后仍可全量——不传 filenames 即全量扫描) - **预标注四级漏斗(2026-09-04,树栖藏匿难例)**:树冠藏匿生成图(树栖物种目标仅占画面高 ~2%)在全图扫描下不可检——模型包固定 700x700 stretch 输入(见「预标注模型固定 700x700」,不支持动态分辨率,提高提交分辨率无增益),占图高 2% 的目标等比缩入后仅 ~15px 落在检出盲区。单张处理升级为逐级漏斗,**检测只信 RF-DETR,VLM 永不直接出框(只提议候选区)**:①**全图扫描**(现有 `Detect`,`localAi.threshold`)有候选即收(绝大多数图到此命中,不触发后级);②空检出 → **切片扫描**:`common.TileRegions` 滑窗切块(块长边/重叠比 = `localAi.tileSize`/`tileOverlap`,边缘块贴边收口保证全覆盖)逐块 `DetectRegion` 按低阈值(`localAi.tileThreshold`,小目标置信度天然偏低,量级取 RF-DETR-S 实测经验;低于全图丢弃线的候选仍入库落疑似 class 1,宁多勿漏)检测,块内坐标在 DetectRegion 内映射回原图像素,跨块重复检出由既有 minIoU 去重兜住;③仍空 → **VLM 提议候选区**:qwen3-vl-8b 按「宁可指错不可遗漏」提示词输出 ≤`consts.VlmLocateMaxRegions` 个归一化候选区(与手动藏匿位补检不同:此阶段图内无已确认框,无排除集;物种注入同 vlm-review——`gen_species` 空回退数据集名),逐区扩大 `consts.VlmRegionExpand` 倍(VLM 坐标偏粗,扩大给 RF-DETR 足够上下文,钳制图片边界)后 `DetectRegion` 精修,精修命中的框才采纳、未命中丢弃(VLM 误报被 RF-DETR 否掉);**VLM 失败/超时/输出非法一律跳过该级不阻塞任务**(三模型共存 + local-ai 服务端排队串行,无需显存互斥检查,2026-09-02 已放开);④全空 → 写 `'[]'`(语义不变:未标注 tab 展示等人工画框、不入自动补标池防乒乓)。漏斗各级候选同通道处理:conf ≥ confConfirmed 落 class 0、否则 class 1、minIoU 去重、单图上限 `consts.MaxPrelabelPerImage`,全图扫描不套生成规格的项目规则不变。单图超时 120s → `consts.LabelImageTimeoutSec`(切片 ~20 块串行 + VLM 兜底;切片在单图池任务内串行执行,不嵌套协程池) +- **标注审核状态机(2026-09-04)**:`dataset_image.review_status`(EnsureColumn 幂等补列):`0=未标注, 1=待审核, 2=已审核`;存量迁移——labels_json 非空数组→2(既有标注视为已审定稿)、null/''/'[]'→0。流转:预标注完成→1(**空检出保持 0**——无框可审,「确认无动物」应由人工画框/清洗表达,避免空图混入已审核口径)、App 用户提交→1、管理端工作台保存(AdminLabelSave)→2、审核「通过」→2、「拒绝」→ 清 labels_json + 回 0(图重新进任务池);**训练集打包(prepareYoloSet)只收 review_status=2**(标签质量闸门,原「labels_json 非空即收」作废);管理端图片 tab 由三变四:未标注(0)/待审核(1)/已标注(2)/已清洗,另加「标注任务」「标注记录」两个管理面板 tab(同在详情页,无独立菜单,2026-09-07 用户定案)——任务面板=本数据集任务下发/进度/停用,记录面板=本数据集众包记录查询/解冻(两列表接口支持 `datasetId` 过滤;`annotate_record` 领取时冗余 `dataset_id` 列,单表过滤不跨表);labeled_count 与 dataset.status='labeled' 口径同步改为 review_status=2 计数(2 必然非空框,无歧义) +- **自动标注退场(2026-09-04 用户定案)**:删除上传入库与生成完成(genTaskAutoLabel)两处 AutoLabel 触发及 autoSupplement 自动补标机制(补标池/空检出乒乓问题随机制一并消亡);**`localAi` 未配置不再阻断上传/生成**(标注改纯管理端手动动作,「不允许产生无标注图」强语义随自动标注退场删除);标注唯一入口 = 管理端勾选图片「预标」(AdminStartLabelTask 保留) +- **App 标注众包与时长激励(2026-09-04;图片粒度下发 2026-09-07 用户定案)**:App 用户处理标注任务换取使用时长,全链路进待审核,服务端记录每用户每张图的处理明细。**下发粒度(2026-09-07 修订)**:任务 = 管理端**勾选的具体图片集合**(不再是数据集级动态池)——`dataset_image.annotate_task_id`(EnsureColumn 幂等补列,默认 0=未下发)作占用标记:下发时 Serial 内批量写占用(校验属本数据集/未标注/未占用),**已下发图即从管理端「未标注」tab 消失**(tab 只显示 annotate_task_id=0);领取池 = 本任务占用且 review_status=0 且 clean_excluded=0 的图;停用任务时**释放未被领取过的图**(清 annotate_task_id,回到未标注 tab 可再下发),已领取未提交的可继续提交(有 annotate_record 的图不释放)。**表**:`annotate_task`(下发任务:dataset_id/name/status published|stopped/created_at);`annotate_record`(用户标注记录:phone_num/task_id/image_id/labels_json 提交快照/status pending|submitted|approved|rejected/created_at/submitted_at/reviewed_at——pending 即领取锁(partial unique index 同图仅一条 pending,超时在领取时惰性释放;**并发防重**:挑图 + 插锁全程在 Serial 临界区内串行执行,并发领取时后读方一定看到先读方刚插入的锁,同一张图不会分给多人,索引为跨实例兜底),UNIQUE(phone_num,image_id) 一人一图仅一次(拒后图仍在本任务池内可被他人再标),拒绝不删记录=惩罚统计依据);`reward_log`(发放流水:phone_num/minutes/task_id/granted_at——日上限按自然日求和);`license.annotate_frozen_until` + `license.annotate_stats_since`(EnsureColumn):冻结到期标记(>now 即冻结,时间戳对比天然自动解冻,无定时任务)与统计基线(冻结时重置,实现解冻后重新累计)。**规则**:领取 = 每次 `annotateReward.claimSize` 张(池内排除该用户已有 annotate_record 的图,冻结中/停用不可领);提交 = 框写 labels_json + review_status=1 + 记录置 submitted,每累计 `perImages`(10) 张 submitted 发 `minutes`(30) 分钟(license.expires_at = max(now,expires_at)+30min 分钟级顺延),当日已发 +30 > `dailyCapMinutes`(120) 则本次不发(App 展示今日已达上限);审核 = 管理端批量通过/拒绝,每次审核后重算该用户通过比例(reviewed_at ≥ stats_since 的 approved/(approved+rejected)),已审核样本 ≥ `minReviewed`(5) 且比例 < `freezeRatio`(0.8) → annotate_frozen_until=now+`freezeHours`(24h) 且 stats_since=now(惩罚不追溯扣已到账时长)。**接口**:admin 下发(传 `imageIds` 勾选图)/列表/停用任务、批量审核(通过/拒绝)、用户标注记录分页;App(/api/v1) 任务列表(含我的统计/冻结态)、领取、提交、我的统计——App 契约不变(仍按 taskId 领取),仅池语义变为任务占用集。**配置**:`config.yml annotateReward` 节点(数值以 config.yml 为准不在此复制),阈值类缺失回退 consts 默认 - **手动标注入口收敛(2026-09-02 决策)**:详情页删除「全量标注」按钮与图片卡片「审核」按钮,**标注入口仅两处(勾选图片驱动,顶栏)**:①「预标」= POST `/admin/label-tasks` 传选中图 `filenames`(只扫选中图,覆盖各图已有标注);②「补标」= 对选中图逐张 POST `/datasets/images/vlm-review`(VLM 藏匿位补检,追加疑似框,批量=前端循环单图接口,依赖已确认框作为排除基准)——VLM 补检按钮从标注编辑器迁出(2026-09-02);点卡片缩略图仍进人工编辑器(确认/清理/画框,编辑器内不再有 VLM 按钮),编辑器文案「图片审核」→「图片标注」;服务端全量重标能力保留但不再有 UI 入口 -- **详情页布局(2026-09-02 卡片化改版后快照)**:图片以缩略图卡片网格展示(每页 18 张,点卡片进弹窗编辑器);页顶标注/AI 生成任务进度条;**图片列表三 tab(2026-09-02)**:「未标注」(默认,待处理优先)、「已标注」、**「已清洗」**各带计数——已标注判定 = labels_json 非空(空检出 `[]` 的图仍在未标注,等人工画框);**已清洗 tab = clean_excluded=1 的图(数据清洗执行后从已标注 tab 移入,卡片角标同 tab 语义二选一),内提供逐张/批量恢复(= 清除标记,回「已标注」)**,恢复仅动作无删除;「数据清洗」按钮在已标注 tab 工具条(分析/执行入口,见下节);切 tab/翻页均清空勾选(防跨 tab 误标),编辑器「上一张/下一张」仅在当前 tab 列表内导航(连续标注不串到另一分类);**卡片上不再叠「已标注/未标注」角标**(2026-09-02,分类由 tab 表达),仅保留 AI 来源角标(付费资产提示) +- **详情页布局(2026-09-02 卡片化改版后快照)**:图片以缩略图卡片网格展示(每页 18 张,点卡片进弹窗编辑器);页顶标注/AI 生成任务进度条;**图片列表三 tab(2026-09-02)**:「未标注」(默认,待处理优先)、「已标注」、**「已清洗」**各带计数——已标注判定 = labels_json 非空(空检出 `[]` 的图仍在未标注,等人工画框);**未标注 tab 只显示未下发的图(annotate_task_id=0,2026-09-07 众包图片粒度下发,已下发图从 tab 消失,停用任务释放后回来)**;**已清洗 tab = clean_excluded=1 的图(数据清洗执行后从已标注 tab 移入,卡片角标同 tab 语义二选一),内提供逐张/批量恢复(= 清除标记,回「已标注」)**,恢复仅动作无删除;「数据清洗」按钮在已标注 tab 工具条(分析/执行入口,见下节);切 tab/翻页均清空勾选(防跨 tab 误标),编辑器「上一张/下一张」仅在当前 tab 列表内导航(连续标注不串到另一分类);**卡片上不再叠「已标注/未标注」角标**(2026-09-02,分类由 tab 表达),仅保留 AI 来源角标(付费资产提示) - **弹窗标注**:点击原图/标注图打开放大弹窗(大 canvas,1152x2048 原尺寸),支持两点画框/点框删除/清空/类别切换(确认 0/疑似 1)/上下一张/保存——**AI 自动标注与人工框同层可编辑**(含清理 AI 框);保存即整体覆写 `dataset_image.labels_json`(JSON 数组,YOLO 归一化 xywh+类别+置信度,空=清空标注);未保存修改切换图片有确认 - 无历史标注任务时详情页工作台数据源为 `GET /admin/label-workbench?dataset_id=`(图片 + 全量标注框),避免依赖人工先跑一次任务 - 训练前自动整理(prepare_yolo 逻辑服务端,**内存组装不落本地盘**):数据集有 labels → 按 80/20 拆 train/val 生成 YOLO 训练集包(标注 txt 内存生成、原图只记数据集目录源路径)→ 随同步推训练机(subprocess 直写 `workdir/datasetDir/yolo//`;ssh 走 **tar 流式管道**本地不落盘);**自动标注图直接进训练集**(人工修改/清理后即为训练数据),**2026-09-02 起跳过 `clean_excluded=1` 的图(数据清洗排除,见下)**;本地无暂存目录(旧 `workspace/datasets/yolo/` 与 `labels/` 已删除) @@ -422,6 +425,15 @@ training: - **执行语义(排除而非删除)**:候选清单人工过目后打 `dataset_image.clean_excluded=1`(EnsureColumn 迁移)——**只影响训练集打包**(prepare_yolo 跳过),图片/标注不动、列表/标注/预标全流程照常可见;**可恢复**(清除标记即回训练集,付费资产原则:清洗默认不删文件,物理删除仍走人工逐删) - 接口:`POST /admin/datasets/clean/preview`(datasetId + 可选 quotas → 各档分布/配额/超配候选清单 + 已排除列表);`POST /admin/datasets/clean/apply`(imageIds + exclude bool 批量置/清标记);**管理端详情页承载:「数据清洗」按钮在已标注 tab 工具条**(配额表可编辑 + 候选清单默认全选 → 执行排除),**已排除的图集中到「已清洗」tab 展示,逐张/批量恢复(apply exclude=false)**,图片列表接口返回 cleanExcluded 供前端归类 +### 负样本库(训练背景样本统一管理,2026-09-07) + +- **背景**:训练集为合成图(每张必含目标),模型从未学过「这不是目标」,端侧实拍把非目标动物/纹理误识别为动物。根治 = 训练时混入**负样本**(无任何标注框的背景图,ultralytics 对空标签图自动按背景学习,无需改训练脚本),负样本对全部物种数据集**统一一套**(误报源与物种无关:猫狗/树桩/草丛/真实场景背景通用)。 +- **实现决策:不建新表**——负样本库是一个特殊数据集:`dataset.source='negative'`、固定保留名 `__negative__`(consts.NegativeDatasetName,目录名同名;AdminCreateDataset 拒绝用户使用该保留名),完全复用 `dataset`/`dataset_image` 表与上传/删除/图片网格能力。首次进入管理端「负样本」tab 时 `POST /admin/datasets/negative` 懒创建(Serial 内防并发重建)。 +- **管理端「数据训练」页双 tab(2026-09-07 用户定案)**:「数据集」tab = 现有数据集卡片列表(列表接口排除负样本库),「负样本」tab = 负样本库图片网格(复用既有上传/删除接口,按负样本库 datasetId 调用;无标注/审核/清洗/预标/生成/众包流程)。 +- **训练打包混入(prepareYoloSet)**:打包主数据集后查负样本库,存在且有图则全部图片(不看 review_status/clean_excluded——负样本库无审核语义)加入训练包:文件名统一加 `neg_` 前缀(防与主数据集图重名覆盖),label txt 写空内容(= 背景图),随主数据集按同一 80/20 逻辑拆 train/val(val 含负样本可观测背景误检率);`data.yaml` 类别不变(负样本不引入新类)。无负样本库/库为空 → 行为与原来完全一致。 +- **入口防护**:预标注(AdminStartLabelTask)、AI 生成(AdminGenerateImages)、众包下发(AdminCreateTask)、发起训练(AdminStartTraining)对 `source='negative'` 数据集一律拒绝(负样本库单独训练无意义、其图片不需要标注)。 +- **删除防护**:AdminDeleteDataset 拒绝删除负样本库(防误删整库);单张图片删除照常可用。 + ### 模型热更新与多模型推理(客户端 Flutter) - `GET /api/v1/app/update` 扩展:响应追加 `models` 数组(`GET /api/v1/models` 同构:datasetId/datasetName/version/labels/sizeBytes/sha256/downloadUrl)——**多模型目录,不再有单一 modelUrl**;无发布模型时不返回该字段(旧 App 忽略、新 App 兼容旧服务器) diff --git a/server_admin/src/views/DatasetDetail.vue b/server_admin/src/views/DatasetDetail.vue index 50bd486..9c7c96d 100644 --- a/server_admin/src/views/DatasetDetail.vue +++ b/server_admin/src/views/DatasetDetail.vue @@ -52,26 +52,45 @@ const pageSize = ref(pageSizeOptions.includes(savedSize) ? savedSize : 20) // 列表 tab:未标注(默认,待处理优先) | 已标注 | 已清洗(clean_excluded=1,数据清洗排除,可恢复)—— // 卡片上不再叠「已标注/未标注」角标,分类由 tab 表达(2026-09-02) const listTab = ref('unlabeled') +// tab 分类(2026-09-04 审核三态):reviewStatus 0=未标注 / 1=待审核 / 2=已标注; +// 已清洗(clean_excluded=1)优先于审核态;已下发众包任务(annotateTaskId>0)的图从未标注 tab 隐藏 +// (2026-09-07 图片粒度下发,停用任务释放后回来) +const reviewStatusOf = (it) => it.reviewStatus ?? 0 const tabCounts = computed(() => { const imgs = detail.value?.images || [] - const cleaned = imgs.filter((it) => meta(it).cleanExcluded).length - const labeled = imgs.filter((it) => it.labeled && !meta(it).cleanExcluded).length - return { labeled, cleaned, unlabeled: imgs.length - labeled - cleaned } + const countRs = (rs) => + imgs.filter((it) => { + if (meta(it).cleanExcluded) return false + // 已下发众包任务只隐藏「未标注」口径(提交后进待审核/已标注照常计数) + if (rs === 0 && meta(it).annotateTaskId) return false + return reviewStatusOf(it) === rs + }).length + return { + unlabeled: countRs(0), + pending: countRs(1), + labeled: countRs(2), + cleaned: imgs.filter((it) => meta(it).cleanExcluded).length, + } }) const visibleImages = computed(() => { const imgs = detail.value?.images || [] + const rsMap = { unlabeled: 0, pending: 1, labeled: 2 } return imgs.filter((it) => { if (meta(it).cleanExcluded) return listTab.value === 'cleaned' - return (listTab.value === 'labeled') === !!it.labeled + if (listTab.value === 'unlabeled' && meta(it).annotateTaskId) return false + return reviewStatusOf(it) === rsMap[listTab.value] }) }) const pagedImages = computed(() => { const start = (page.value - 1) * pageSize.value return visibleImages.value.slice(start, start + pageSize.value).map((item, i) => ({ item, gi: start + i })) }) +// 图片类 tab 才渲染图片工具条与卡片网格;tasks/records 为管理面板 +const isImageTab = computed(() => listTab.value !== 'tasks' && listTab.value !== 'records') const emptyTip = computed(() => { - if (!tabCounts.unlabeled && !tabCounts.labeled && !tabCounts.cleaned) return '暂无图片,请上传或 AI 生成' + if (!tabCounts.unlabeled && !tabCounts.pending && !tabCounts.labeled && !tabCounts.cleaned) return '暂无图片,请上传或 AI 生成' if (listTab.value === 'cleaned') return '暂无已清洗图片(数据清洗排除的图在此,可勾选恢复)' + if (listTab.value === 'pending') return '暂无待审核图片(预标/众包提交的标注在此等人工审核)' return listTab.value === 'unlabeled' ? '暂无未标注图片' : '暂无已标注图片' }) @@ -98,7 +117,8 @@ async function loadAll() { } const imgs = await request.get('/datasets/images', { params: { datasetId: datasetId.value } }).catch(() => null) imageMeta.value = {} - for (const i of imgs?.list || []) imageMeta.value[i.filename] = { id: i.id, source: i.source, cleanExcluded: i.cleanExcluded || 0 } + for (const i of imgs?.list || []) + imageMeta.value[i.filename] = { id: i.id, source: i.source, cleanExcluded: i.cleanExcluded || 0, annotateTaskId: i.annotateTaskId || 0 } // 记录刷新前编辑中的图:刷新可能使其移出当前 tab(预标完成/删除/人工保存等), // 原 editIndex 会漂移到邻图,继续编辑保存会把框存错图——按 filename 重定位,找不到即关弹窗 const editFn = editorVisible.value && currentImage.value ? currentImage.value.filename : null @@ -322,6 +342,164 @@ function startLabelTask() { }) } +// 下发众包标注任务(2026-09-07 图片粒度:勾选的未标注图即任务图集,下发后从未标注 tab 消失, +// 停用任务释放未领取图回池;App 端按任务领取) +async function publishTask() { + if (!selected.value.length) return + const ids = (detail.value.images || []) + .filter((it) => selected.value.includes(it.filename)) + .map((it) => meta(it).id) + .filter(Boolean) + if (!ids.length) { + ElMessage.warning('选中图片缺少 id,请刷新后重试') + return + } + try { + const { value } = await ElMessageBox.prompt(`任务名(App 端展示),下发选中的 ${ids.length} 张图片`, '下发标注任务', { + inputValue: `${dataset.value?.name || ''} 标注任务`, + inputValidator: (v) => (!!v && v.trim().length <= 50) || '1~50 字', + confirmButtonText: '下发', + cancelButtonText: '取消', + }) + const res = await request.post('/annotate-tasks', { datasetId: datasetId.value, name: value.trim(), imageIds: ids }) + ElMessage.success(`任务已下发(id=${res.id}),选中的 ${ids.length} 张图已从未标注 tab 移除,App 用户可领取`) + selected.value = [] + await loadAll() + } catch (e) { + const msg = e?.message || e + if (msg !== 'cancel' && msg !== 'close') ElMessage.error(`任务下发失败:${msg}`) + } +} + +// 众包审核(待审核 tab 勾选驱动):通过 → 已标注(入训练集);拒绝 → 清标注回未标注池 +// 并计入对应众包用户低质统计(通过比例过低自动冻结) +const reviewing = ref(false) +async function reviewSelected(approve) { + if (!selected.value.length || reviewing.value) return + const ids = (detail.value.images || []) + .filter((it) => selected.value.includes(it.filename)) + .map((it) => meta(it).id) + .filter(Boolean) + if (!ids.length) { + ElMessage.warning('选中图片缺少 id,请刷新后重试') + return + } + try { + await ElMessageBox.confirm( + approve + ? `审核通过选中的 ${ids.length} 张图片?通过后转入已标注(纳入训练集)。` + : `拒绝选中的 ${ids.length} 张图片?将清除标注退回未标注池,并计入对应众包用户的低质统计。`, + '标注审核', + { type: 'warning', confirmButtonText: approve ? '通过' : '拒绝', cancelButtonText: '取消' }, + ) + } catch { + return + } + reviewing.value = true + try { + const res = await request.post('/annotate-review', { imageIds: ids, approve }) + const frozen = res?.frozenPhones || [] + ElMessage.success( + `${approve ? '通过' : '拒绝'} ${res?.affected ?? ids.length} 张${frozen.length ? `;低质冻结用户:${frozen.join('、')}` : ''}`, + ) + selected.value = [] + await loadAll() + } finally { + reviewing.value = false + } +} + +// ---------- 标注任务/标注记录面板(详情页 tab 内嵌,仅本数据集,切 tab 惰性加载) ---------- +const anLoading = ref(false) +const anTasks = ref([]) +const anTasksTotal = ref(0) +const anTaskPage = ref(1) +const anRecords = ref([]) +const anRecordsTotal = ref(0) +const anRecordPage = ref(1) +const anRecordPhone = ref('') +const anRecordStatus = ref('') +const anStatusOptions = [ + { value: '', label: '全部状态' }, + { value: 'pending', label: '领取中' }, + { value: 'submitted', label: '待审核' }, + { value: 'approved', label: '已通过' }, + { value: 'rejected', label: '已拒绝' }, +] +const anTagType = { pending: 'info', submitted: 'warning', approved: 'success', rejected: 'danger' } +const anTagText = { pending: '领取中', submitted: '待审核', approved: '已通过', rejected: '已拒绝' } + +async function loadAnnotateTasks() { + anLoading.value = true + try { + const d = await request.get('/annotate-tasks', { + params: { datasetId: datasetId.value, page: anTaskPage.value, size: 20 }, + }) + anTasks.value = d.list || [] + anTasksTotal.value = d.total || 0 + } finally { + anLoading.value = false + } +} + +async function stopAnnotateTask(row) { + try { + await ElMessageBox.confirm(`停用任务「${row.name}」?停用后 App 端不可再领取。`, '停用任务', { + type: 'warning', + confirmButtonText: '停用', + cancelButtonText: '取消', + }) + } catch { + return + } + await request.post('/annotate-tasks/stop', { id: row.id }) + ElMessage.success('已停用') + loadAnnotateTasks() +} + +async function loadAnnotateRecords() { + anLoading.value = true + try { + const d = await request.get('/annotate-records', { + params: { + datasetId: datasetId.value, + phone: anRecordPhone.value.trim(), + status: anRecordStatus.value, + page: anRecordPage.value, + size: 20, + }, + }) + anRecords.value = d.list || [] + anRecordsTotal.value = d.total || 0 + } finally { + anLoading.value = false + } +} + +async function unfreezeRecordUser() { + const target = anRecordPhone.value.trim() + if (!target) { + ElMessage.warning('请先在输入框填要解冻的手机号') + return + } + try { + await ElMessageBox.confirm(`解冻用户 ${target} 的标注资格?解冻后通过比例统计重新累计。`, '手动解冻', { + type: 'warning', + confirmButtonText: '解冻', + cancelButtonText: '取消', + }) + } catch { + return + } + await request.post('/annotate-unfreeze', { phone: target }) + ElMessage.success('已解冻') +} + +watch(listTab, (t) => { + if (t === 'tasks' && !anTasks.value.length) loadAnnotateTasks() + if (t === 'records' && !anRecords.value.length) loadAnnotateRecords() +}) + // VLM 藏匿位补检(「补标」按钮,勾选驱动批量执行):排除已确认框,按环境/光线/习性 // 找可能藏匿处,逐张追加疑似框(黄框,人工确认);依赖已确认框作为排除基准 const vlmReviewing = ref(false) @@ -974,9 +1152,10 @@ onBeforeUnmount(() => { {{ trainBanner.text }} - -
+
{ @click="openClean" >数据清洗(已排除 {{ tabCounts.cleaned }}) 通过{{ selected.length ? ` ${selected.length} 张` : '' }} + 拒绝{{ selected.length ? ` ${selected.length} 张` : '' }} + 预标{{ selected.length ? ` ${selected.length} 张` : '' }} 补标{{ selected.length ? ` ${selected.length} 张` : '' }} + + 下发标注任务{{ selected.length ? ` ${selected.length} 张` : '' }} {
未标注 {{ tabCounts.unlabeled }} + 待审核 {{ tabCounts.pending }} 已标注 {{ tabCounts.labeled }} 已清洗 {{ tabCounts.cleaned }} + 标注任务 + 标注记录
+ +
+
+ 下发入口:在「未标注」tab 勾选图片后点顶栏「下发标注任务」 + 刷新 +
+ + + + + + + + + + + + + + + + +
+ +
+
+ + +
+
+ + + + + 查询 + 解冻输入的手机号 +
+ + + + + + + + + + + + + + + + +
+ +
+
+ -
+

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