採点枠自動検出の高速化 — Web Workerによる並列処理
一括採点には、答案画像から採点する領域を自動で見つける「採点枠の自動検出」という機能があります。 今回のアップデートでは、この処理をWeb Workerという仕組みで裏側に移すことで、大幅な高速化を実現しました。 本記事では、技術的な背景と先生にとってのメリットをわかりやすく紹介します。
採点枠の自動検出とは
一括採点では、スキャンした答案画像を取り込んだあと、 「どの部分が設問1の解答欄で、どの部分が設問2の解答欄か」を特定する必要があります。 この領域のことを「採点枠」と呼んでいます。
採点枠の自動検出は、答案画像の中から罫線や枠線のパターンを分析して、 採点すべき領域を自動的に見つけ出す機能です。 先生が1つずつ手作業で枠を指定する手間を省き、取り込みの時間を大幅に短縮します。
たとえば、10問のテストであれば10個の採点枠を設定する必要があります。 自動検出を使えば、答案をスキャンして取り込むだけで、 ソフトウェアが解答欄の位置を自動的に認識します。
これまでの課題:画面がフリーズする問題
採点枠の自動検出は画像を詳細に分析する処理であり、 パソコンにとっては負荷の大きい作業です。 とくに答案の枚数が多い場合、処理に時間がかかります。
従来の仕組みでは、この重い処理をアプリの「メインスレッド」で実行していました。 メインスレッドとは、画面の表示やボタンの操作など、 先生が直接触れる部分を担当している処理の流れです。
メインスレッドが採点枠の検出に手を取られると、 画面の更新やクリックへの反応が止まってしまいます。 40人分の答案を処理しているあいだ、 画面が固まったように見えてしまうことがありました。
- 大量の答案を処理すると画面がフリーズする
- 処理中にほかの操作(スクロール、ボタン操作など)ができない
- 処理が終わるまで、進捗状況もわからない
Web Workerとは — 裏方スタッフに任せる仕組み
この問題を解決するために導入したのが「Web Worker」という技術です。 少し難しい言葉ですが、考え方はシンプルです。
たとえば、学校の事務室を想像してみてください。 窓口の担当者が1人しかいない場合、書類の整理を始めると窓口対応ができなくなります。 しかし、裏方にもう1人スタッフがいれば、窓口は開けたまま、裏で書類を処理できます。
Web Workerはまさにこの「裏方スタッフ」にあたります。 重い計算処理を別のスタッフ(スレッド)に任せることで、 窓口(メインスレッド)は先生の操作にいつでも応答できる状態を保てます。
従来(1人で全部やる)
窓口担当「書類を処理中...お待ちください」
→ 先生「画面が動かない...」
改善後(裏方スタッフに任せる)
窓口担当「ご用件をどうぞ」
裏方スタッフ「書類はこちらで処理しています」
→ 先生「操作しながら待てる」
並列処理で効率アップ
さらに、Web Workerは複数の裏方スタッフを同時に配置できます。 1枚ずつ順番に処理するのではなく、複数の答案を同時に分析することで、 処理全体の時間も短くなります。
これは、事務作業を複数の人に分担して任せるのと同じ考え方です。 40人分の答案を1人で処理すると時間がかかりますが、 4人で分担すれば単純計算で4分の1の時間で終わります。
高速化の効果
Web Workerの導入により、採点枠の自動検出には2つの大きな改善がありました。
画面がフリーズしなくなった
もっとも大きな変化は、処理中に画面が固まらなくなったことです。 採点枠の検出が裏側で進んでいるあいだも、 先生は画面をスクロールしたり、ほかの設定を確認したりできます。
処理時間の短縮
並列処理により、大量の答案を処理する場合の所要時間が短くなりました。 とくに答案枚数が多いテストほど効果が大きく、 数十人規模のクラスでも快適に一括採点の準備を進められます。
| 項目 | 従来 | 改善後 |
|---|---|---|
| 処理中の画面操作 | フリーズして操作不可 | 通常どおり操作可能 |
| 処理方式 | 1枚ずつ順番に処理 | 複数枚を同時に処理 |
| 大量の答案 | 枚数に比例して待ち時間増加 | 並列処理で待ち時間を短縮 |
先生にとってのメリット
今回の改善は、先生の日常的な操作に直接関わる部分です。 具体的には、以下のようなメリットがあります。
- 操作が途切れない:採点枠の検出中でも、画面の操作を続けられます。 「処理が終わるまで何もできない」という状態がなくなりました。
- 待ち時間が短くなる:複数の答案を同時に処理するため、 クラス全員分の答案を取り込む際の待ち時間が短縮されます。
- 特別な設定は不要:Web Workerの仕組みはソフトウェア内部で自動的に動作します。 先生が何か設定を変える必要はありません。 一括採点をアップデートするだけで、自動的に高速化の恩恵を受けられます。
Web Workerはパソコンの性能に応じて並列数を調整します。 高性能なパソコンではより多くの答案を同時に処理し、 古いパソコンでも無理のない範囲で並列処理を行います。 どのパソコンでも、従来より快適にお使いいただけます。
まとめ
採点枠の自動検出をWeb Workerに移行することで、 処理中の画面フリーズを解消し、並列処理による高速化を実現しました。 重い処理を「裏方スタッフ」に任せる仕組みにより、 先生は画面操作を中断することなく一括採点の準備を進められます。
今後も、先生の作業をできるだけ快適にするための改善を続けてまいります。
関連記事
- 採点枠自動検出の仕組みと課題 — テキストと罫線を見分ける難しさ - アルゴリズムの仕組みと対処法(前編)
- PDF出力の高速化 - 並列処理による高速化の別の例
- OMRとは — マークシート自動認識の仕組み - 画像処理の技術
- 答案画像の傾き補正 — 類似変換の考え方 - 答案画像の前処理