答案画像の傾き補正 — 類似変換の考え方
答案をスキャナーで読み取ると、どうしても用紙のズレや傾きが生じます。 v0.7.0では、コーナーマーカーを利用した 答案画像の自動補正機能を追加しました。 この記事では、補正の仕組みである「類似変換」の考え方をわかりやすく紹介します。
スキャン画像のズレはなぜ起きるのか
答案をスキャナーに通すとき、 用紙が完全にまっすぐに送られることはまずありません。 わずかに斜めに入ったり、 左右にずれたりするのが普通です。
このズレが問題になるのは、採点枠の位置がずれてしまうことです。 たとえば、設問1の解答欄が少し右に寄った状態でスキャンされると、 採点画面で表示される領域と実際の解答がずれて見えます。 枚数が少なければ気にならない程度のずれでも、 何百枚もの答案を処理するときには積み重なって不便になります。
特にOMR(マークシート認識)では、 バブルの位置がピクセル単位で重要になるため、 画像のズレは認識精度に直接影響します。
類似変換とは
画像のズレを直すために使うのが、類似変換(similarity transformation)という数学的な手法です。
類似変換は、次の3つの操作を組み合わせたものです。
| 操作 | 説明 | スキャンでの例 |
|---|---|---|
| 回転 | 画像全体を回す | 用紙が斜めに送られた |
| 平行移動 | 画像全体を上下左右にずらす | 用紙が左右にずれて送られた |
| 拡大・縮小 | 画像全体を均等に大きく/小さくする | スキャナーのDPI設定やローラーの摩耗 |
類似変換の重要な性質は、形が変わらないことです。 回転・移動・拡大縮小はしますが、 四角い解答欄が台形に歪んだりすることはありません。 スキャナーで生じるズレのほとんどは、 この3つの操作で十分に補正できます。
補正の仕組み
補正の手順は、大きく3つのステップに分かれます。
ステップ1:基準点の用意
まず、「正しい位置」を知る必要があります。 解答用紙作成で解答用紙を設計したとき、 コーナーマーカーの座標はデータとして記録されています。 これが「本来あるべき位置」、つまり基準点です。
最初にアップロードされた答案(マスター画像)から コーナーマーカーを検出し、その座標をキャッシュしておきます。 以降の答案では、このマスターマーカーとの差分から補正量を計算します。
ステップ2:補正パラメータの算出
スキャンした答案画像からもコーナーマーカーを検出し、 マスター画像のマーカー位置と比較します。 4つのマーカーの位置のずれから、最小二乗法を使って 最適な回転角度・移動量・拡大率を計算します。
4つのマーカーすべてを完璧に一致させる変換は、 必ずしも存在しません。 マーカー検出自体にもわずかな誤差があるためです。 最小二乗法は「すべてのマーカーの位置ずれの合計が できるだけ小さくなる」変換を求めます。 どれか1つのマーカーだけに合わせるのではなく、 全体的にバランスの良い補正ができます。
ステップ3:画像の変換
算出された補正パラメータを使って、 画像処理ライブラリ(sharp)のアフィン変換機能で 画像を補正します。 補正された画像は元の画像と置き換えて保存されます。
補正の流れまとめ
- マスター画像のコーナーマーカーを検出・記録
- 各答案画像のコーナーマーカーを検出
- マスターとのずれから最小二乗法で変換パラメータを算出
- sharpのアフィン変換で画像を補正
- 補正された画像を保存
補正が失敗しても安心
画像補正は便利な機能ですが、 すべての答案で完璧に動く保証はありません。 コーナーマーカーが汚れや折れで隠れていたり、 スキャンの品質が極端に低かったりすると、 マーカーを正しく検出できない場合があります。
そのため、補正処理にはフォールバックの仕組みが組み込まれています。 マーカーの検出に失敗したり、補正結果が異常だったりした場合は、 元の画像がそのまま保存されます。 補正に失敗したからといって画像が壊れたり消えたりすることはありません。
使い方
画像補正機能は、答案のアップロード画面にある トグルボタンでON/OFFを切り替えられます。
- ONにした場合 — 答案をアップロードするたびに、自動でマーカー補正が実行される
- OFFにした場合 — 元の画像がそのまま保存される(従来と同じ動作)
解答用紙作成でコーナーマーカー(OMRマーカー)を配置した 解答用紙を使っている場合に効果を発揮します。 マーカーのない解答用紙では、マーカーが検出できないため 補正は行われません。
フラットベッドスキャナー(ガラス面に用紙を置くタイプ)を お使いの場合は、用紙の位置ずれが小さいため、 補正なしでも十分な精度が得られることが多いです。 ドキュメントスキャナー(自動給紙タイプ)を お使いの場合は、補正をONにすることをおすすめします。
答案画像の自動補正は、コーナーマーカーの位置から 類似変換のパラメータを計算し、 スキャン時のズレ・傾き・拡大縮小を自動で修正する機能です。 補正に失敗しても元の画像が保持されるため、 安心して利用できます。
何百枚もの答案を処理するとき、 1枚ずつ手動で位置を合わせる手間がなくなります。 OMRと組み合わせることで、 マークシートの認識精度もさらに向上します。
関連記事
- v0.7.0 — 2026春の大型アップデート - v0.7.0の全体的な変更点
- OMRとは — マークシート自動認識の仕組み - コーナーマーカーを活用するOMR機能
- 解答用紙作成の使い方 — 問題構成からPDF出力まで - コーナーマーカーを配置する解答用紙作成機能