iPhone 8、太陽光発電ベースのVision OCRサーバーとして再生
(terminalbytes.com)- 引き出しで眠る寸前だった iPhone 8 をSwiftUIベースのOCRサーバーに作り替え、Apple Visionで83,418件のリクエストと48GBの画像を1年以上処理した
- システムはiPhone 8、Webサービス・APIルーティング用Mini PC、EcoFlow River 2 Pro 768Wh、220Wソーラーパネル、Tailscaleネットワークで構成される
- 全体の電力使用量は1日あたり約 1.2kWh で、太陽光入力は夏の150〜220Wピークから冬の5〜20W水準まで季節によって大きく変動する
- 連続運用後のiPhoneのバッテリー状態は 76% で、忙しい日には1,000件以上を処理したが、iOSのバックグラウンド制約と熱管理には別途対策が必要だった
- クラウドOCRの代わりにローカル処理を選ぶことで、リクエストごとのコストと外部サーバーへのアップロードをなくし、年間 84〜120 CAD の電気料金削減と電子廃棄物の削減効果も得られた
古いiPhone 8をOCRサーバーに転用
- 個人の画像処理プロジェクトでは毎日数百枚の画像を自動分類しており、OCR処理はもともとMacでも実行可能だった
- 使っていなかった iPhone 8 と、キャンプ用に購入した EcoFlow River 2 Pro を組み合わせて、太陽光発電ベースのOCRサーバーに作り替えた
- OCR処理はブログとは別のサイドプロジェクトで使われている
- 1年以上の運用結果は次のとおり
- 83,418件 のOCRリクエストを処理
- 48GB の画像データを処理
- 忙しい日は 1,000件以上 のリクエストを処理
- iPhoneのバッテリー状態は 76%
- 年間電気料金を 84〜120 CAD 節約
システム構成と処理フロー
- 全体構成は4つのデバイスとネットワークに分かれる
- Mini PC: Webサーバー、画像処理サービス、Plexサーバー、その他のサービスを実行
- iPhone 8: 窓際でSwiftUIアプリを動かし、OCR処理とリアルタイムダッシュボードを担当
- EcoFlow power station: iPhoneとMini PCにオフグリッド電力を供給
- Tailscale network: デバイス間接続を担当
- 画像処理サービスがOCR対象の画像をiPhoneに送ると、iPhoneが Apple Vision でテキストを認識し、その結果を再送する
- iPhoneのダッシュボードは処理統計とサーバー状態を表示し、UI例には
Requests Today,Total Processed,Avg Processing Time,Success Rate、バッテリー状態、Server running on port 8080が含まれる - Google Analytics 4も統合されており、ダッシュボードには総ユーザー数 139,917人、今月 17,643人、平均セッション 6分28秒、現在のアクティブユーザー 11人 が表示される
Apple VisionベースのiOS OCRアプリ
- iOSでサーバーを作る際に最も厄介だったのは、アプリを継続して動作させることだった
- OCRの中核は Vision フレームワークの
VNRecognizeTextRequestrecognitionLevel = .accurateusesLanguageCorrection = trueVNImageRequestHandlerがCGImageを受け取りリクエストを実行- 認識結果は
VNRecognizedTextObservationの最上位候補文字列を集めて返す
- OCRはオンデバイスで実行されるため、API呼び出し、利用量制限、外部サーバーへの画像送信がない
- 精度はテストした一部のクラウドサービスと比べても遜色ないレベル
- Visionフレームワークの文字認識は時間とともに改善され、特に手書きや特殊なフォントで以前は失敗していた認識が動作するようになった
太陽光電源構成と季節ごとの運用
- 電源機器は EcoFlow River 2 Pro 768Wh と220Wソーラーパネル
- 実際の電力使用量はTP-Linkデータ基準で全体1日約 1.2kWh
| 構成要素 | アイドル電力 | 処理負荷 | 備考 |
|---|---|---|---|
| iPhone 8 OCR Server | 0.5〜1W | 2〜5W | 効率的 |
| Mini PC | 15W | 25〜30W | Plex、Archive Warriorsを含む |
| 全体の日次消費 | 約1.2kWh | 可変 | TP-Linkデータ基準 |
- 季節によって太陽光性能は大きく変わる
- 夏: 150〜220Wのピーク入力で、バッテリー充電まで可能な継続運用
- 春・秋: 平均20〜60Wで、太陽光とバッテリーの混合運用
- 冬: 運が良ければ5〜20Wで、ほとんどがバッテリー電力となり、ランタイムは15〜20時間
- River 2 Proのバッテリー管理システムは充電カーブを管理しており、単純にデバイスへ電力を流し込む方式ではない
- カナダの寒い朝には処理時間が遅くなり、iPhoneは少し温かいときのほうがOCRをより速く処理した
コスト計算とクラウドOCR比較
- 初期費用は次のとおり
- EcoFlow River 2 Pro: 599 CAD、もともとキャンプ用に購入
- 220Wソーラーパネル: 180 CAD
- ケーブルとマウント用ハードウェア: 約 50 CAD
- 追加の太陽光投資: 約 230 CAD
- 実際のEcoFlowデータ基準で月間消費量は、5月が 37.4kWh、4月が 45.8kWh
- 電気料金に換算した削減額は年間約 84〜120 CAD で、投資回収期間は約 2〜3年
- クラウドOCRサービスは通常、1,000件あたり 1.00〜1.50 CAD を請求する
- 83,000件超の処理量をクラウドOCRで処理していた場合、83〜125 CAD のコストがかかった計算になる
- ローカルの太陽光構成ではリクエストごとのコストがなく、画像を外部サーバーへ送らない
1年間の運用で見えた安定性と制約
- iPhone 8は1年以上連続稼働し、継続的なワークロードにもかかわらず性能低下は明確ではなかった
- iOSのバックグラウンド処理は予想以上にうまく動作したが、適切な構成が必要だった
- Background App Refresh を使用
- HTTPサーバーが定期リクエストに応答し続けるよう維持
- 最小限の位置情報サービスを使用
- 太陽光電力の断続性に対応するため、電源ステーションは低消費電力デバイスであるiPhoneを優先するよう設定されている
- バッテリー残量が低下するとMini PCは正常終了する
- iPhoneは必要に応じて単独で数時間、基本的なOCRリクエストを処理できる
- 直射日光と連続処理は熱スロットリングを引き起こす可能性があるため、日陰の確保や空気の流れの改善、高温報告時にリクエストを減らす処理を追加した
- iOSはアプリが永遠に動き続けることを想定していないため、生存性とバッテリー保全のバランスが必要になる
ローカル優先処理とデバイス再活用
- すべての画像はユーザーのデバイス内にとどまり、クラウドへのアップロードや第三者アクセスはない
- 命綱になるほどの節約額ではないが、意味のあるコンピューティングワークロードを再生可能エネルギーで動かせることを示している
- 引き出し行きになるはずだったiPhoneがOCRサーバーとして使われることで、電子廃棄物にならずに済んだ
- すべての処理がクラウド上にある必要はなく、太陽光で動くローカルデバイスがデータを直接処理できる
参考リソース
- EcoFlow River 2 Pro 768Wh: 使用した電源ステーション
- EcoFlow River 2 Proと220Wソーラーパネルのバンドル: 実際の運用構成と同じ組み合わせ
- 200W折りたたみ式ポータブルソーラーパネル: すでに電源ステーションがある場合に使える類似パネル
- iPhone 8以降とiOS 13+があればVisionフレームワークを利用できる
- Apple Vision Framework Documentation: OCR実装ドキュメント
- Background App Refresh Guide: iOSアプリをバックグラウンドで維持するためのドキュメント
- SwiftUI HTTP Server Examples: HTTPサーバー実装例
- TP-Link Kasa Smart Plugs: 実際の電力消費を監視するツール
- EcoFlowアプリ: River 2 Pro内蔵モニタリングツール
- GearScouts.com: 電源ステーションとアウトドア機器の価格比較ツール
1件のコメント
Hacker News のコメント
年間で約84〜120カナダドル節約できたとしても、自分のスマホで自分のアプリを1週間以上実行するには Apple に毎年99ドルを払わなければならないので、ほとんど相殺されそう
端末を買ったら自分のものだと感じたいのに、Apple は「この端末は私たちが許可する方法でだけ使わせてやる」という物語を押し通し続けている。結局、顧客は定価を払っても Apple から端末を借りて使っているようなもの
古くからの Apple ユーザーだが、この会社との愛憎関係から抜け出すのは難しい
この脆弱性は大きな勝利で、最後の脆弱な端末だった第7世代 iPad が iPad OS 26 アップデートを受けられなくなったことで、最近ようやく終わりを迎えた
iPhone よりアプリ開発と配布を自由に扱える家電製品も実際にある
興味深い技術だが、実際の用途説明がまったくないので、全体がやや抽象的に感じる
まもなく Apple が SpeechAnalyzer APIを追加し、音声テキスト変換もローカルで可能になる予定で、Whisper より速いとのこと
https://developer.apple.com/videos/play/wwdc2025/277/
https://www.macrumors.com/2025/06/18/apple-transcription-api...
macOS 26 の Speech.framework を使ってオンデバイス音声文字起こしを行う CLI
MacStories の記事では Whisper より約2倍速いように見えたし、ネットワークや共有サーバーがないので体感ではさらに速い
見事なハッカー的試みと記事だが、技術者たちがハッカーのネットワーク効果によって暗黙のうちに何を宣伝しているのかについて、HN によくあるパターンを指摘したい
「ハッカーに敵対的なプラットフォームなのに ___ を成し遂げ、今では自分が作ったものを使えるが、そのプラットフォームに完全に縛られる」という HN のブログ記事が出るたびに、幼子イエス Linus が涙を流していそう
今回の場合は少し微妙で、筆者が「Why This Actually Matters」セクションで、珍しく良いハッカー的・社会的価値を扱っているから
残念ながら私はフレームワークより機能に興味があるのだが、インストールして以来、何百人もの推薦者のうち何人が、私のスマホで最もバグの多いアプリと言えるものを実際に動かしてみたのか、ずっと気になっていた。問題を直そうとして何度も腹を立てて削除し、問題によってはクリーンインストールでしか解決しないものもあった
要するに、志向する哲学が重要であり、それを大規模に評価することが非常に重要だということ
何を OCR しているのか分かりにくい。こうした解決策が必要になるほど、どんな画像処理をしているのか気になる
まだ使っている iPhone 8 があるが、同じ年式の Android 端末と比べると Android が iPhone を圧倒している。Motorola eX 系列の低価格スマホだが、画面を消して Wi-Fi ストリーミング動画や音声を Bluetooth に出力しても1時間にバッテリーを15%ほど使う一方、iPhone は60%超を使う
どちらも同じ年数だが、iPhone は体感的に旧式で、低価格の Motorola は2010年代半ばのコンピューターのように感じる。年数が経っているのに Android は機内モードで2週間持つ
「1年以上ずっと動かし続けたのに、スマホのバッテリー状態はかなり良好だった。現在は容量76%だ」と言っていたが、iPhone SEを挿しっぱなしにしようとしたところ、バッテリーが3回もスパイシーピローになった。
最初はAppleが膨張したバッテリーには触れないとして端末全体を交換し、その後はサードパーティ製の交換キットを使った。
バッテリーがおおむね100%に留まるなら、長くは持ちにくい。古いスマホの再利用で一番欲しいのは、バッテリーに手を加えずに動作すること、またはバッテリーを50%に保つ機能だ。
最新のApple製スマホには80%制限オプションがあり改善ではあるが、どれほど役立つかは分からない。しかも最新機種でなければ、最新のiOSでもそのオプションはない。
もちろんHomeKitハブが必要だ。
バッテリーをスーパーキャパシタに置き換えるハックは見たことがある。
ただしサーマルペーストはやってくれなかったので自分でやる必要があり、二度と手を出したくない作業だった。それでも効果はあり、負荷時に約10°C低くなって速度も上がった。今でも大事に毎日使っている。
素晴らしい話だ。Appleがこうした古い端末を生かし続けてくれる点は、十分に評価されていない。
私にも、古い初代iPhone SEを再利用して新しい命を与えた、似たような話がある。
https://samkhawase.com/blog/dumb-smartphone/
AppleはBatterygateで見せたように、喜んでスマホの性能も制限する。
何か見落としているのかもしれない。ここで言っている数千人のユーザーはどこから来ているのだろう? 提供しているサービスがあるのだろうか?
iPhone 8に対抗して、Motorola MB525 “Defy”、Motorola MB526 “Defy+”、Samsung J3を挙げたい。これらの端末はWi-Fi対応のトレーラーカメラとして使っている。
スマホがWi-Fiホットスポットを提供し、それを通じてカメラ映像を見る。トレーラーを接続してWi-Fiネットワークに接続すれば、後方のトレーラーで何が起きているかを確認できる。
このリストで最も古い端末は2010年製で、いずれもCyanogenmod(MB525、MB526)またはその後継であるLineageOS(J3)を実行している。Motorola端末はバッテリーを交換し、J3は元のバッテリーに戻した。
画面はどうせ見えないし、3台中2台は割れているので、すべて画面なしで動作させている。Androidは画面なしでもうまく動き、この使い方だと消費電力も少し抑えられる。