数字スキャン は、写真に写ったシリアルナンバーをOCRで自動抽出し、コピペできる形にするiOSアプリです。
きっかけ
レシートや保証書には、商品ごとのシリアルナンバーが複数印字されていることがあります。これをWebページのフォームに登録しようとすると、1件ずつ写真を見ながら手入力する必要があり、地味に面倒な作業でした。この手間をなくすために作りました。
今どき生成AIに写真を見せればシリアルナンバーを読み取ってくれますが、毎回それをやるのはコストも手間もかかります。無料で、コピペの手間を減らせることを目的にシンプルなOCR特化アプリとして作りました。
Webアプリから iOS アプリへ
最初はWebアプリとしてブラウザ上で動くOCRツールを作ってみたのですが、認識精度がイマイチで実用に耐えませんでした。そこで iOS アプリとして作り直し、Apple の Vision フレームワーク(画像認識のためのファンデーションモデル)を使うことで、数字の読み取り精度を大きく向上させています。Web版で感じていた「読み取れない」ストレスがかなり減りました。
ハイフンなどの表記ゆれへの対応
単純にOCRだけで済ませようとすると、シリアルナンバーの区切りに使われるハイフンやスペースを誤って文字として認識してしまうことがあります。数字スキャンでは、抽出後にグループ数と1グループあたりの桁数を指定できるようにし、認識結果を意図した形式(例: 4桁×4グループ)に整形できるようにしています。
縦長画像は分割して精度を上げる
レシートのように縦に長い紙を1枚の写真で撮影すると、上下で遠近が変わって歪みが生まれ、OCRの読み取り精度が落ちてしまいます。この問題に対応するため、画像を分割してからOCRにかける機能を用意しました。範囲を区切って認識させることで、1枚まるごと処理するよりも数字の読み取り間違いを減らせます。
コピー済みかひと目でわかるボタン
複数のシリアルナンバーを1件ずつ別のフォームに貼り付けていく作業では、「どこまでコピーしたっけ」が分からなくなりがちです。数字スキャンでは、コピーボタンをタップすると見た目が変化するようにして、コピー済みの行がひと目で分かるようにしています。地味な工夫ですが、件数が多いときほど効いてきます。
プライバシーへの配慮
画像の処理はすべてデバイス内で完結し、外部サーバーには一切送信されません。シリアルナンバーのような個人情報に近いデータを扱うため、ここは譲れないポイントとして設計しました。
レシートや保証書のシリアルナンバー入力に地味に消耗している方は、ぜひ試してみてください。