1 points par GN⁺ 2025-06-19 | 1 commentaires | Partager sur WhatsApp
  • Un iPhone 8 promis au fond d’un tiroir a été transformé en serveur OCR basé sur SwiftUI, capable de traiter avec Apple Vision 83 418 requêtes et 48 Go d’images pendant plus d’un an
  • Le système se compose d’un iPhone 8, d’un Mini PC pour le service web et le routage API, d’une EcoFlow River 2 Pro 768Wh, d’un panneau solaire de 220 W et du réseau Tailscale
  • La consommation électrique totale est d’environ 1,2 kWh par jour, tandis que l’apport solaire varie fortement selon les saisons, d’un pic estival de 150 à 220 W à seulement 5 à 20 W en hiver
  • Après un fonctionnement continu, l’état de la batterie de l’iPhone est encore à 76 % ; les journées chargées ont dépassé 1 000 traitements, mais les limites d’iOS en arrière-plan et la gestion thermique ont demandé des ajustements spécifiques
  • En choisissant un traitement local plutôt qu’un OCR cloud, le projet supprime le coût par requête et l’envoi des images vers des serveurs externes, tout en réduisant la facture d’électricité de 84 à 120 CAD par an et les déchets électroniques

Transformer un vieil iPhone 8 en serveur OCR

  • Un projet personnel de traitement d’images classe automatiquement plusieurs centaines d’images par jour, et l’OCR pouvait à l’origine aussi fonctionner sur Mac
  • Un iPhone 8 inutilisé a été combiné à une EcoFlow River 2 Pro achetée pour le camping afin d’en faire un serveur OCR alimenté par l’énergie solaire
  • Le traitement OCR sert à un projet annexe distinct du blog
  • Après plus d’un an d’exploitation, le bilan est le suivant
    • 83 418 requêtes OCR traitées
    • 48 Go de données d’images traitées
    • plus de 1 000 requêtes lors des journées chargées
    • état de la batterie de l’iPhone à 76 %
    • 84 à 120 CAD d’économies annuelles sur l’électricité

Architecture du système et flux de traitement

  • L’ensemble se répartit entre quatre appareils et le réseau
    • Mini PC : exécute le serveur web, le service de traitement d’images, le serveur Plex et d’autres services
    • iPhone 8 : placé près d’une fenêtre, il assure le traitement OCR via une app SwiftUI et affiche un tableau de bord en temps réel
    • EcoFlow power station : fournit une alimentation hors réseau à l’iPhone et au Mini PC
    • Tailscale network : assure la connexion entre les appareils
  • Quand le service de traitement d’images envoie une image à analyser à l’iPhone, celui-ci reconnaît le texte avec Apple Vision puis renvoie le résultat
  • Le tableau de bord de l’iPhone affiche les statistiques de traitement et l’état du serveur ; l’interface d’exemple comprend Requests Today, Total Processed, Avg Processing Time, Success Rate, l’état de la batterie et Server running on port 8080
  • Google Analytics 4 est également intégré, avec sur le tableau de bord un total de 139 917 utilisateurs, 17 643 ce mois-ci, une session moyenne de 6 min 28 s et 11 utilisateurs actifs en temps réel

App OCR iOS basée sur Apple Vision

  • La partie la plus délicate lors de la création d’un serveur sur iOS a été de maintenir l’application en exécution continue
  • Le cœur de l’OCR repose sur VNRecognizeTextRequest du framework Vision
    • recognitionLevel = .accurate
    • usesLanguageCorrection = true
    • VNImageRequestHandler reçoit un CGImage et exécute la requête
    • les résultats reconnus sont renvoyés en agrégeant les chaînes des meilleurs candidats de VNRecognizedTextObservation
  • L’OCR s’exécute on-device, donc sans appel d’API, sans quotas d’usage et sans envoi d’images vers un serveur externe
  • La précision est jugée comparable à celle de certains services cloud testés
  • La reconnaissance de texte du framework Vision s’est améliorée avec le temps, notamment sur l’écriture manuscrite et les polices atypiques qui échouaient auparavant

Alimentation solaire et fonctionnement selon les saisons

  • L’équipement électrique repose sur une EcoFlow River 2 Pro 768Wh et un panneau solaire de 220 W
  • D’après les données TP-Link, la consommation réelle est d’environ 1,2 kWh par jour pour l’ensemble
Élément Puissance au repos Charge de traitement Remarques
Serveur OCR iPhone 8 0,5 à 1 W 2 à 5 W Efficace
Mini PC 15 W 25 à 30 W Inclut Plex et Archive Warriors
Consommation quotidienne totale env. 1,2 kWh Variable D’après les données TP-Link
  • Les performances solaires varient fortement selon la saison
    • Été : pic d’entrée de 150 à 220 W, fonctionnement continu avec recharge de la batterie possible
    • Printemps·automne : moyenne de 20 à 60 W, fonctionnement mixte solaire + batterie
    • Hiver : 5 à 20 W dans le meilleur des cas, alimentation surtout sur batterie avec 15 à 20 heures d’autonomie
  • Le système de gestion de batterie de la River 2 Pro contrôle la courbe de charge ; il ne se contente pas d’injecter de l’énergie brute dans les appareils
  • Lors des matinées froides au Canada, le temps de traitement augmentait, et l’iPhone effectuait l’OCR plus rapidement lorsqu’il était légèrement chaud

Calcul des coûts et comparaison avec l’OCR cloud

  • Le coût initial se répartit ainsi
    • EcoFlow River 2 Pro : 599 CAD, achetée à l’origine pour le camping
    • panneau solaire 220 W : 180 CAD
    • câbles et matériel de montage : environ 50 CAD
    • investissement solaire additionnel : environ 230 CAD
  • D’après les données réelles d’EcoFlow, la consommation mensuelle était de 37,4 kWh en mai et 45,8 kWh en avril
  • Les économies converties en facture d’électricité sont estimées à 84 à 120 CAD par an, pour un retour sur investissement d’environ 2 à 3 ans
  • Les services d’OCR cloud facturent généralement 1,00 à 1,50 CAD pour 1 000 requêtes
  • Si plus de 83 000 traitements avaient été confiés à un OCR cloud, le coût aurait été d’environ 83 à 125 CAD
  • Une architecture locale alimentée par le solaire n’a pas de coût par requête et n’envoie pas les images vers des serveurs externes

Fiabilité et limites observées après un an

  • L’iPhone 8 a fonctionné en continu pendant plus d’un an, sans dégradation nette des performances malgré une charge constante
  • Le traitement iOS en arrière-plan a mieux marché que prévu, mais a nécessité une configuration adaptée
    • utilisation de Background App Refresh
    • maintien du serveur HTTP en réponse à des requêtes régulières
    • usage minimal des services de localisation
  • Pour faire face à l’intermittence de l’énergie solaire, la power station a été configurée pour privilégier l’iPhone, appareil à faible consommation
    • lorsque la batterie baisse, le Mini PC s’arrête proprement
    • l’iPhone peut, si nécessaire, traiter seul les requêtes OCR de base pendant plusieurs heures
  • L’exposition directe au soleil et le traitement continu peuvent provoquer du thermal throttling ; des mesures ont donc été ajoutées pour créer de l’ombre, améliorer le flux d’air et réduire les requêtes en cas de température élevée
  • iOS n’est pas conçu pour laisser une app tourner éternellement, ce qui impose un équilibre entre disponibilité permanente et préservation de la batterie

Traitement local d’abord et réemploi des appareils

  • Toutes les images restent sur les appareils de l’utilisateur, sans upload vers le cloud ni accès par un tiers
  • Les économies ne changent pas une vie, mais le projet montre qu’une charge de calcul utile peut fonctionner avec de l’énergie renouvelable
  • L’iPhone qui aurait fini dans un tiroir est devenu un serveur OCR plutôt qu’un déchet électronique
  • Tout n’a pas besoin de passer par le cloud : un appareil local alimenté par le solaire peut traiter les données directement

Ressources utiles

1 commentaires

 
GN⁺ 2025-06-19
Avis sur Hacker News
  • Même en économisant environ 84 à 120 CAD par an, il faudrait payer 99 dollars par an à Apple pour faire tourner sa propre app plus d’une semaine sur son propre téléphone, ce qui devrait annuler l’essentiel du gain

    • Ces frais développeur Apple font partie des choses les plus absurdes qu’Apple impose. On peut vraiment se demander si l’infrastructure d’hébergement des apps et les coûts serveur coûtent 99 dollars
      Quand j’achète un appareil, j’aimerais avoir l’impression de le posséder, mais Apple continue de pousser le récit selon lequel « nous vous laissons utiliser cet appareil uniquement de la manière que nous autorisons ». Au final, même en payant le prix fort, les clients louent en quelque sorte leur appareil à Apple
      Je suis un utilisateur Apple de longue date, mais j’ai du mal à me défaire de cette relation amour-haine avec l’entreprise
    • L’iPhone 8 possède la faille de bootrom checkm8, impossible à corriger par patch ; même si l’article ne le dit pas, l’auteur aurait aussi pu le jailbreaker et exécuter le logiciel de son choix sans payer Apple
      Cette faille a été une grande victoire, et elle n’a vraiment pris fin que récemment, lorsque le dernier appareil vulnérable, l’iPad de 7e génération, n’a pas reçu la mise à jour iPadOS 26
    • J’ai pensé exactement la même chose. Si l’on considère l’ensemble des plateformes de développement qu’on peut choisir pour faire du bidouillage de type maker sur des appareils en dehors de leur usage officiel, iOS est de très loin la pire
      Il existe même des appareils électroménagers qui laissent plus de liberté que l’iPhone pour le développement et la distribution d’apps
    • Il me semble qu’il ne faut payer que pour publier sur l’App Store. J’ai déjà créé une app pour iPhone par le passé, et je n’ai jamais payé
    • Même si l’on considère que l’iPhone lui-même est gratuit parce qu’il est vieux, le matériel solaire et la batterie coûtent environ 1 000 dollars
  • C’est une technologie intéressante, mais comme il n’y a absolument aucune description de l’usage, l’ensemble paraît assez abstrait

    • J’aimerais en voir davantage sur le passage disant que « le vrai défi était de faire en sorte que ça continue à tourner, même quand iOS ne jugeait pas mon app assez importante pour la laisser s’exécuter »
    • L’exemple de code du framework Vision et les liens de la section « Software Resources » semblent suffisants. Si l’on a la flemme de comprendre soi-même, on pourrait aussi les donner à un LLM pour générer toute l’application
  • Apple va bientôt ajouter la SpeechAnalyzer API, ce qui permettra aussi la conversion parole-texte en local, et elle serait plus rapide que Whisper
    https://developer.apple.com/videos/play/wwdc2025/277/
    https://www.macrumors.com/2025/06/18/apple-transcription-api...

    • À ce sujet, il y a aussi https://github.com/finnvoor/yap
      C’est une CLI qui utilise Speech.framework de macOS 26 pour faire de la transcription vocale sur l’appareil
      Dans l’article de MacStories, elle semblait environ 2 fois plus rapide que Whisper, et comme il n’y a ni réseau ni serveur partagé, elle paraît encore plus rapide à l’usage
    • Plus rapide, c’est bien, mais je me demande ce qu’il en est de la qualité. Même si c’était 10 fois plus lent que Whisper 3, si la qualité était meilleure de 5 %, je choisirais cette option
  • C’est une excellente tentative de hacker et un bon article, mais j’aimerais souligner un schéma fréquent sur HN concernant ce que les techniciens promeuvent implicitement par effet de réseau hacker
    Chaque fois qu’un billet de blog HN dit « j’ai réussi à faire ___ malgré une plateforme hostile aux hackers, et maintenant je peux utiliser ce que j’ai créé, mais je suis totalement enfermé dans cette plateforme », le petit Jésus Linus doit verser une larme
    Le cas présent est un peu particulier, parce que l’auteur aborde dans la section « Why This Actually Matters » des valeurs hacker et sociales rarement aussi bonnes

    • Réutiliser de vieux appareils, c’est bien. Si les plateformes fermées vous dérangent, vous pouvez ne pas acheter d’iPhone, mais quoi qu’il en soit, ce genre de projet peut sauver de très nombreux vieux iPhone qui finiraient à la décharge
    • Je suis vraiment d’accord. Par exemple, j’utilise en ce moment une app Android installée via le Play Store, que j’ai découverte en page d’accueil, et dont le titre était « I developed and didn’t use »
      Malheureusement, je m’intéresse davantage aux fonctionnalités qu’au framework, et depuis l’installation, je n’arrête pas de me demander combien, parmi les centaines de personnes qui l’ont recommandée, ont réellement lancé sur leur téléphone ce que je qualifierais d’app la plus boguée que j’aie jamais eue. Je l’ai supprimée plusieurs fois, furieux, pour tenter de régler les problèmes, et certains n’ont pu être résolus que par une installation propre
      Le point essentiel, c’est que la philosophie visée compte, et qu’il est très important de l’évaluer à grande échelle
  • Je ne comprends pas bien ce qui est passé à l’OCR. Je me demande quel type de traitement d’image nécessite une telle solution

    • Il voulait sans doute essayer le framework OCR d’Apple, et cet iPhone était probablement ce qu’il avait sous la main. Je suis allé sur la page d’accueil du blog pour trouver un article expliquant ce qu’il traitait, mais je n’en ai pas trouvé. Peut-être qu’il scanne tous ses romans ?
  • J’ai encore un iPhone 8 que j’utilise, et comparé à un appareil Android de la même époque, Android écrase l’iPhone. C’est un téléphone d’entrée de gamme de la série Motorola eX : même avec l’écran éteint, en diffusant une vidéo ou de l’audio en Wi-Fi vers du Bluetooth, il consomme environ 15 % de batterie par heure, alors que l’iPhone consomme plus de 60 %
    Les deux ont le même âge, mais l’iPhone donne vraiment l’impression d’être obsolète, tandis que le Motorola d’entrée de gamme évoque un ordinateur du milieu des années 2010. Malgré son âge, l’Android tient deux semaines en mode avion

    • Cela veut plutôt dire que la batterie de l’iPhone 8 s’est davantage dégradée que celle du Motorola d’entrée de gamme. Si l’iPhone a été plus utilisé au cours de sa vie, c’est tout à fait possible, et ce n’est pas un bon critère pour comparer leurs performances relatives
  • « Même après l’avoir fait tourner en continu pendant plus d’un an, l’état de la batterie du téléphone restait plutôt correct. Elle est actuellement à 76 % de capacité », disait-il, mais quand j’ai essayé de laisser un iPhone SE branché en permanence, la batterie s’est transformée trois fois en spicy pillow
    La première fois, Apple a remplacé tout l’appareil en disant ne pas toucher aux batteries gonflées, puis j’ai utilisé ensuite un kit de remplacement tiers
    Si la batterie reste globalement à 100 %, elle a peu de chances de tenir longtemps. Ce que j’aimerais le plus pour réutiliser de vieux téléphones, c’est qu’ils puissent fonctionner sans solliciter la batterie, ou disposer d’une fonction qui maintienne la batterie à 50 %
    Les iPhone récents ont une option de limite à 80 %, ce qui est une amélioration, mais je ne sais pas à quel point ça aide. En plus, si ce n’est pas un téléphone récent, cette option n’existe pas même avec la dernière version d’iOS

    • Il suffit de brancher le chargeur sur une prise connectée compatible HomeKit, puis de créer un raccourci qui allume la prise quand la batterie atteint 45 % et l’éteint à 55 %
      Il faut bien sûr un hub HomeKit
    • La plupart de ces appareils ne peuvent pas fonctionner sans batterie, car ils ne fournissent pas les pics de courant instantanés qui nécessitent une alimentation externe. Si le CPU lance une tâche avec un pic soudain, l’appareil peut s’éteindre
      J’ai déjà vu un hack consistant à remplacer la batterie par un supercondensateur
    • Quand un spicy pillow est apparu sur mon MBP 2017, Apple a réparé la pauvre machine et, au passage, a aussi remplacé le clavier maudit et ajouté une sorte de ruban pour renforcer les ports USB-C devenus lâches
      En revanche, ils n’ont pas refait la pâte thermique, donc j’ai dû m’en charger moi-même, et c’était une opération que je ne veux plus jamais refaire. Cela dit, ça a été efficace : environ 10 °C de moins en charge et de meilleures performances. Je l’utilise encore tous les jours avec soin
    • C’est frustrant qu’Apple ne propose pas un vrai mode de contournement de la batterie, ni même la possibilité de définir une limite de charge
  • Belle histoire. Le fait qu’Apple permette à ce genre de vieux appareils de rester en vie n’est pas suffisamment reconnu
    J’ai moi aussi une histoire similaire où j’ai réutilisé un vieux iPhone SE original pour lui donner une nouvelle vie
    https://samkhawase.com/blog/dumb-smartphone/

    • Je ne comprends pas bien cet argument. Trouver un nouvel usage à un vieil iPad sans y consacrer beaucoup d’efforts m’a toujours semblé excessivement difficile. Est-ce que ça a changé ?
    • Pas du tout d’accord. J’ai dû abandonner un iPhone 7 parce qu’il n’était plus possible de mettre iOS à jour et que les apps bancaires refusaient de fonctionner sur l’ancienne version
      Apple est aussi tout à fait prêt à brider les performances des téléphones, comme l’a montré Batterygate
  • J’ai peut-être raté quelque chose. D’où viennent les milliers d’utilisateurs dont il est question ici ? Il y a un service proposé ?

    • Oui. L’auteur exploite un site web public qui permet de faire gratuitement de l’OCR sur les fichiers téléversés
  • Face à l’iPhone 8, je propose les Motorola MB525 « Defy », Motorola MB526 « Defy+ » et Samsung J3. J’utilise ces appareils comme caméras de remorque avec Wi‑Fi
    Le téléphone fournit un hotspot Wi‑Fi, via lequel on consulte l’image de la caméra. Quand on attelle la remorque et qu’on se connecte au réseau Wi‑Fi, on peut voir ce qui se passe derrière, au niveau de la remorque
    Le plus ancien appareil de cette liste date de 2010, et tous tournent sous CyanogenMod (MB525, MB526) ou son successeur LineageOS (J3). Les Motorola ont eu leur batterie remplacée, et le J3 fonctionne encore avec sa batterie d’origine
    L’écran n’est de toute façon pas visible, et deux des trois sont cassés, donc ils fonctionnent tous sans écran. Android tourne très bien sans écran, et cet usage consomme aussi un peu moins d’énergie

    • Assez impressionnant. J’aime voir de vieux appareils recevoir une nouvelle vie et éviter de devenir des déchets électroniques. C’est vraiment dans l’esprit hacker