Situation initiale : il existe une application iOS fonctionnelle pour les employés du service sur le terrain (iOS 16-17). De nos jours, les documents des clients sont photographiés avec un appareil photo ordinaire, après quoi les gestionnaires recadrent, alignent et réimpriment manuellement les données. Il est nécessaire d'intégrer un module d'analyse et de reconnaissance hors ligne pour accélérer l'enregistrement et réduire les erreurs. Environnement technique et limitations : projet Swift, architecture MVVM, assemblage via Xcode, dépendances via SPM. Il n'y a souvent pas d'Internet sur l'appareil, donc l'ensemble du pipeline doit fonctionner hors ligne. Vous ne pouvez pas utiliser de SDK payants tiers ni de services OCR cloud. Seuls les frameworks système Apple sont valides. Version minimale d'iOS 16. Les données sont personnelles - n'envoyez rien en externe, ne les enregistrez pas dans Photos, stockez-les uniquement dans le bac à sable de l'application. Ce qu'il faut faire : mettre en place un écran de numérisation avec recherche de documents en streaming, prise de vue automatique basée sur la stabilité, correction de perspective et meilleure lisibilité. Une fois numérisé, le document doit être converti en PDF de plusieurs pages, OCR effectué et le résultat renvoyé à l'application sous forme de PDF + texte structuré. Ajoutez un mode de numérisation par lots - jusqu'à 20 pages par session, avec la possibilité de reprendre une page, de modifier l'ordre, de supprimer, de fusionner en un seul PDF. Exigences fonctionnelles : 1) Numérisation : détection de rectangle de document, indication de la qualité du cadre, prise de vue automatique, prise de vue manuelle, réglage manuel de l'angle après avoir pris une photo. 2) Prétraitement : normalisation de la luminosité/contraste, suppression des ombres, netteté dans des limites raisonnables pour rendre le texte plus lisible. 3) OCR : reconnaissance de texte en russe et en anglais, si possible avec détection automatique des langues ; renvoie le texte intégral et un tableau de cadres de délimitation aux coordonnées de la page d'origine. 4) Exportation : PDF/PDF de type A (le PDF ordinaire est acceptable), chaque page est une couche d'image + texte (si implémentée sur l'API du système), ou PDF + JSON séparé avec des couches OCR. 5) Intégration : le module fini est connecté à l'écran de ticket existant via une seule interface publique (protocole/façade) afin que l'équipe puisse réutiliser le module dans d'autres parties de l'application. Critères d'acceptation (mesurables) : le module est construit dans le projet en cours sans dépendances payantes supplémentaires ; sur iPhone 12 et versions ultérieures, un paquet de 10 pages est traité complètement hors ligne en 60 secondes maximum (OCR comprise) sous un éclairage de bureau typique ; la précision de la reconnaissance du texte imprimé au format A4 n'est pas inférieure à 95 % pour les caractères d'un ensemble de test de 20 images fourni par le client ; la taille finale du PDF ne dépasse pas 1,5 Mo par page avec une qualité lisible ; il n'y a aucune fuite de données personnelles - les analyses ne se retrouvent pas dans Photos et ne sont pas écrites dans des répertoires publics. Résultat attendu : PR/engagement(s) dans le référentiel avec un module prêt à l'emploi, des modifications minimales des écrans existants pour l'intégration, la définition des résolutions de la caméra et de courtes instructions d'utilisation. Vous avez également besoin d'un petit ensemble de tests automatiques pour les parties critiques (par exemple, analyser/générer la couche JSON OCR et vérifier la séquence des pages) et d'une liste de contrôle manuelle pour le contrôle qualité. Outils : Swift, AVFoundation/Vision/CoreImage/PDFKit (ou équivalents système), Xcode, SPM. Au fur et à mesure que les travaux progressent, une analyse des performances et de la mémoire sera nécessaire afin que le traitement par lots ne plante pas sur les appareils de 4 à 6 Go de RAM.