今日から作業を開始。。。その前に、レシートのデータ化は簡単なのか。それを悩んだので、Geminiとやり取りしたり、写メったデータを読み込ませて検証などを行いました。
そして、それもGemini作成、ChatGPT監修、最終校正:私で記事を書いたのでアップします!(同様に、インフォグラフィックスをNotebookLMに作ってもらいました)

~確定申告をローカルAIで自動化できるか?実装前にやった「原資料」検証の話~
【1日目】
確定申告の作業は、いまだにどこかアナログな匂いが残っています。レシートを集め、金額を打ち込み、勘定科目を考える。今回はそれを、クラウド任せではなくローカル環境で自動化できないかを検証しました。
目標は「弥生会計に取り込めるCSVを自動生成すること」です。ただし、いきなりコードは書きません。最初にやったのは、もっと地味で重要な作業でした。
1. レシート撮影は本当に“写メ”で足りるのか?
最初の論点はシンプルです。「スマホで撮った写真は、OCRやAIにとって十分な入力なのか?」試してみると、いくつかの課題が見えてきました。
○ 遠景撮影の問題
長いレシートを一枚に収めようとすると、どうしても引いて撮ることになります。すると文字が小さくなり、特に数字の判別精度が落ちます。「8」と「3」の誤認識のような、地味ですが致命的なミスが起こりやすくなります。
○ 折るという選択
そこで考えたのが、レシートを軽く折り、店名と合計金額を物理的に近づけて撮る方法です。これだけで、文字の密度が上がり、読み取り精度はかなり改善しました。
AIに頑張らせる前に、入力側を整える。ここが最初の気づきでした。
2. スキャナという選択肢
さらに検証を進める中で、スマホ撮影よりも安定した方法があることに気づきます。それがフラットヘッドスキャナです。なぜ「スキャンが良い」のか。
・影が出ない
・コントラストが安定している
・傾きが発生しない
さらに、長いレシートや品目の多いものでも、フラットに取り込めます。特に複数商品・1万円超のようなレシートでは、スマホ撮影よりもスキャンの方が明らかに安定していました。
また意外だったのは、最適化されたスキャン画像の方がファイルサイズが小さいケースがあること。ローカルでAIを回す場合、画像サイズはVRAM使用量に直結します。この点でもスキャンは合理的でした。
それから、背景を黒バックにすること。これはいくつかの写メとスキャンデータで確かめたことですが、背景が様々であったり、傾いて撮影したりすると精度に揺れが生じるだけで無く、普通のコピー機だと背景がすべて白になり、境界が曖昧になることでデータサイズが拡大したり、OCR精度が落ちる危険性がありました。こちらも何度かテストを行い、最終的には、黒画用紙を背景にスキャンすることが一番効果的ということが分かりました。
3. 「スタート一回」で終わる設計を考える
スキャンの弱点は「手間」です。蓋を開けて、並べて、閉じて、保存する。そこで、発想を少し変えました。
A3サイズでまとめてスキャンし、その後はプログラムに任せる、という考え方です。スキャン時には複数枚のレシートを同時に取り込んだり、多少傾いていたり。縦横が混ざっていたりしてもいい形で。これならば、1枚ずつスキャンするという手間や面倒くささが軽減され、さらにノイズになってしまう、傾きや90度向きが傾いていて、取り込みに手間がかかってしまうことを防ぐことができる方法です。
1. 複数レシートを並べて一括スキャン
2. Pythonで自動的に輪郭検出
3. 個別レシートごとに自動切り出し
4. 傾き補正・回転
5. フォルダ監視で自動処理開始
人間の作業は「並べてスキャン」だけ。その後は自動で流れるという設計です。
4. まだコードは動いていない
今回のは、まだ実装していません。
やったのは、
・どう撮れば精度が安定するか
・どの入力方式が再現性を持つか
・自動化に向いた原資料とは何か
ということを整理することでした。AIは便利ですが、入力が曖昧なままでは精度は安定しません。また、一次データである画像が高精度であれば、今後、AIやOCR精度が向上したときにより高度な戦略が打てるようになる。そのためにも一次資料はできるだけ手間をかけず、しかし高精度でおきたい。
最初、確定申告作業の自動化作業の中で、写メった画像があれば、それをAIに読み取らせ、会計ソフトに渡すことができるようにすることが自動化作業の肝かなと思っていました。しかし、最初の「画像化」もかなり大事なことなのだと気づきました。結局のところ、「出力の信頼性は、入力の規格で決まる。」これは一連の検討作業において良き収穫となりました。(生成AIとのやり取りに5時間かけました)
実装はこれからですが、こうした、場を整えること。そして、生成AIに何が出来るか。自動化作業とはどういうことなのか。どの段階の精度を上げて、どの段階はコストを払うのか。この確定申告作業の自動化作業は(時間は無い中で)、そういった、私自身の省力化、付加価値を上げることを考えるいい作業となっているかなと思います。
まだ全体の一里塚。「最終的に税理士さんに投げた方が良かった」とはならないよう、頑張っていきたいと思っています。
(作成:Gemini、監修:ChatGPT、最終校正:私)