AIはどうやって手書きだけを消しているの? 仕組みをやさしく解説
「なんで印刷は残して、書き込みだけ消せるの?」——プリントリセットを使った方から一番よく聞かれる質問です。開発元が、魔法でも何でもない中身を、なるべく専門用語を使わずに説明します。
やっていることは「色塗り分けクイズ」
AIは写真を受け取ると、画像を細かな点(画素)に分けて、1点ずつ「これは印刷インク? 鉛筆? 赤ペン? ただの紙?」を分類していきます。専門的にはセグメンテーション(領域分割)と呼ばれる手法です。
人間が見ても、印刷された「17 + 3 =」と、子どもが書いた「20」は質感が違いますよね。印刷は輪郭がカリッとして色が均一、鉛筆はかすれや濃淡があり、赤ペンはにじみます。AIはこうした質感・色・形のパターンを大量の例から学んでいて、1画素単位でどちら側かを判定します。
「手書き」と判定された画素だけを消し、周りの紙の色で塗り直す——これが処理の全部です。
AIに「教科書」を手作りして学ばせた
AIが賢くなるには「正解付きの例」が必要です。ただ、同じプリントの「書き込み済み」と「まっさら」のペア写真なんて、世の中にほとんど存在しません。
そこでこのアプリでは、学習用の計算プリントや漢字プリントを自作して印刷し、実際に手書きで解いて、書く前と後をスキャンして比べることで「ここが手書き」という正解データを作りました。さらに、集めた手書き文字を別のプリント画像に合成して、数百ページ分の練習問題をAIに解かせています。影のある写真・暗い写真・斜めから撮った写真もわざと混ぜて、家庭のスマホ撮影に近い条件で鍛えました。
この学習の裏側(失敗談込み)は、開発記のnoteに詳しく書いています。
なぜ画像を送信せずに動くのか
ふつう、この手のAIはサーバーに画像を送って処理します。プリントリセットは逆で、AIモデル本体をあなたのブラウザにダウンロードして、スマホやPCの中で計算しています。だから画像は端末の外に出ません。
子どもの名前や筆跡が写った画像を扱う以上、「そもそも送信しない」のが一番安心だと考えてこの設計にしました。モデルを送れるサイズ(数MB)まで小さく作る工夫が必要でしたが、そのおかげで通信環境が悪くても、2回目以降はオフラインでも動きます。
苦手なことも正直に
判定は完璧ではありません。特に苦手なのは:
- 印刷の文字に重ねて書かれた字 — 印刷と手書きが同じ画素で重なっていると、片方だけ消すのは原理的に困難です
- 輪郭のはっきりした濃い影 — 手書きの線と見分けにくいことがあります(撮り方のコツで大きく改善します)
- 印刷そっくりの筆跡 — 定規で引いた線などは印刷と誤認することがあります
だからこそ、仕上がり画面に指でなぞって直せる修正ブラシを付けています。AIで9割消して、残りは人間が10秒で仕上げる——これが現実的な役割分担だと考えています。
精度はこれからも上がります
AIは学習例が増えるほど賢くなります。実際、公開前のテストでも実際の写真を学習に加えるたびに精度が目に見えて改善しました。うまく消えなかった場合は、お問い合わせフォームからお知らせください。改善の参考にします。