月別アーカイブ: 2026年4月

MS_Reader V3 の使い方(マークシート&手書き併用型試験編)

この Blog で先にご紹介した完全無料でお使いいただける、「手書き答案のデジタル採点機能付き」マークシートリーダー MS_Reader V3 の使い方のご案内です。今回は、マークシート&手書き併用型試験の採点方法です。

プログラムの簡単な説明とダウンロードは、当 Blog の次の記事をご参照ください。

マークシートを利用した試験の実施と採点方法は、次の記事をご参照ください。

MS_Reader V3 の付属の機能を利用した、手書き答案のデジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

【もくじ】

1.併用型試験を選択
2.併用型試験の成績処理方法
3.まとめ
4.お願いとお断り

1.併用型試験を選択

マークシートと手書き答案を併用した試験を実施する場合、最初にマークシートの採点を実施してください。採点準備手続きの冒頭で「併用型試験を選択」すること以外、マークシートの読み取りとマークシート採点の各手順は、マークシートと手書きの併用型試験でも同じです。

マークシートの読み取りと採点の詳細なご案内は当 Blog の「 MS_Reader V3 の使い方(マークシートリーダー編)」の記事をご参照ください。

手書き答案の採点の詳細なご案内は当 Blog の「 MS_Reader V3 の使い方(手書き答案の採点編)」の記事をご参照ください。

併用型試験を実施する上で、ただ1点、ご注意いただきたい点が「併用型試験を選択」する点です。ですので、ここでは「併用型試験を選択する部分のみ」解説します。

マークシートの読み取り準備設定作業の冒頭で、特徴点 ■■■ の検出閾値の自動設定が行われた後、次のメッセージが表示されます。

必ず「はい」を選択(クリック)してください。

続けて「併用型試験の実施の有無」を問うメッセージが表示されます。

マークと手書き併用型試験を実施する場合は、
必ず「はい」を選択(クリック)してください。

これで exe と同じ位置にある settings.ini に手書き答案併用フラグが True で書き込まれ、マークシートと手書きを併用した試験の実施が可能となります。

この後、最初にマークシート方式部分の、マーク読み取りと採点処理を実行し、次に手書き答案の採点処理を実行してください。

2.併用型試験の成績処理方法

ここでは両方の採点処理が終了した後の「併用型試験としての成績処理」を行う手順を解説します。

まず最初にマークと手書き併用型試験の成績処理は、マーク部分の採点を先に、手書き部分の採点を次に、それぞれ行っていただいた後、プログラムをいったん終了し、再起動した状態で行っていただきたく、心からお願い申し上げます次第です。理由は様々にありますが、最も不具合が発生する可能性が低い方法がプログラムを再起動して併用型試験の成績処理を行う方法です。

(1)MS_Reader V3 の再起動

マークシート採点と、手書き答案の採点をそれぞれ行った後、プログラムをいったん終了し、再起動してください。

併用型試験の答案画像を入れたフォルダを選択後、画面は次の状態になります。

「実行」をクリックして選択状態にしてください。

マークシートの読み取りと採点が可能な状態になります(ここでは既にマークシートの採点処理は終了しているという前提です)。

次に「配点」チェックボックスをチェックします。すると次のメッセージが表示されます。

OK をクリックしてください。

案内を表示するモードでは、次のメッセージも表示されますが、配点や観点別評価の区分は既に入力済みなので OK をクリックしてメッセージを消去してください。

併用型試験方式の指定がある場合、これでマークシートと手書き、両方の採点データが読み込まれ、最終的な成績処理の準備が完了した状態になります。

※ 採点データが読み込まれていないまま、返却用答案を作成すると合計点等の表示が0点になります。ご注意ください。

(2)成績一覧表及び正答率一覧表の作成と印刷

・「配点」チェックボックスをチェックしたままの状態で、マークシートのみの成績一覧表や正答率一覧表の作成・印刷がそのまま実行できます。

・マークシートと手書き両方の成績一覧表や正答率一覧表の作成と印刷は、手書き答案採点側で実行可能です。

(3)返却用答案の作成と印刷

「配点」チェックボックスのチェックを外し、返却用答案の作成ボタンをクリックしてください。

ヒントは案内を表示する設定が ON の場合に表示されます。

合計点の表示位置等の設定が調整済みであれば、次のように返却用答案が作成されます。ちなみに返却用答案の印刷手続きはマークシートのみの場合の印刷手続きと全く同じです。

必要に応じて、合計点等の表示位置や、フォントサイズの調整を行ってください。

設定の保存も忘れずに実行してください。

3.まとめ

(1)試験の形式は併用型を必ず指定する。
(2)採点は、マークシート → 手書き答案採点の順に実行する。
(3)MS_Reader V3 はいったん終了し、再起動する。
(4)配点チェックボックスをチェックすると採点データが準備される。
(5)併用型の成績一覧表等は手書き採点モード側で作成&印刷する。
(6)併用型の返却用答案はマークシート採点モード側で作成&印刷する。

4.お願いとお断り

このサイトの内容を利用される場合は、自己責任でお願いします。記載した内容(プログラムを含む)を利用した結果、利用者および第三者に損害が発生したとしても、このサイトの管理者は一切責任を負えません。予め、ご了承ください。

MS_Reader V3 の使い方(手書き答案の採点編)

この Blog で先にご紹介した完全無料でお使いいただける、「手書き答案のデジタル採点機能付き」マークシートリーダー MS_Reader V3 の使い方のご案内です。今回は、手書き答案の採点方法です。

マークシートを利用した試験の実施と採点方法は、次の記事をご参照ください。

MS_Reader V3 の付属の機能を利用した、マークシートと手書き答案の併用型デジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

【もくじ】

1.解答用紙の準備
2.解答用紙読み取り前の確認
3.解答用紙をスキャナーでJpeg画像化
4.スキャンした解答用紙画像の保存先
5.解答用紙読み取りと採点のための準備
6.処理に必要なメモリー容量の確認
7.採点対象の読取専用画像が入ったフォルダを選択
8.特徴点を検出
9.解答用紙情報の設定
10.配点及び観点別評価の区分を設定
11.採点
12.成績一覧表及び正答率一覧表の作成と印刷
13.返却用答案の作成と印刷
14.手書き答案採点設定の保存
15.まとめ
16.お願いとお断り

1.解答用紙の準備

採点する手書き答案の解答用紙を準備(印刷)します。MS_Reader V3 で使用する解答用紙には特徴点が必要です。解答用紙の左上隅の任意の位置に ■■■(ドットを3つ)ご用意ください。

プログラム自体は、特徴点がなくても、スキャンした画像の左上を座標原点 (0, 0) として動作するように組んでありますが、動作テスト時に一部データの読み込みに問題が発生することがありました。ですので、誤動作を極力防止するためにも特徴点は必ずご用意いただけますよう、お願い申し上げます。

【ご注意願います】

特徴点をご用意いただいた場合でも、MS_Reader V3 が常に意図した通り、完全に動作することは保証できません。MS_Reader V3 を使用される方の完全自己責任の下、十分な動作テストを行っていただいた上で、解答用紙画像の読み込み性能に納得していただける場合のみ、MS_Reader V3 はお使いいただけます。悪しからず、ご了承ください。

MS_Reader V3 で手書き答案の採点に使用する解答用紙ですが、次の解答欄作成例ようにお作りいただけますと採点の準備が手間をかけずに行えると思います。

国語で使用する縦書き答案も同様です。

文字数の指定(制限)がある解答欄については、解答欄矩形の内部には点線を使って解答欄を作成していただけると採点準備がよりスムースに進行すると思います。

解答欄矩形を認識・取得する際、点線部分は検出されません。

点線の間隔は、スキャナーでスキャンした画像において、明瞭に点線であると判別できる間隔としてください。

上の良い例では、点線部分の上にさらに図形の四角形を置き、その内部の塗りつぶしと枠線を「白」に指定しています。このひと手間が確実に効きます。

サンプルの解答欄は Word で作成しています。

解答欄を識別するための記号・番号の直後も点線でなければいけません。ご注意ください。

また、当初から「複数の解答を抱き合わせて採点」する予定の場合も、抱き合わせて採点する範囲を自動認識できるよう、予め次の例のように解答欄矩形を作成してください。

ア、イ、ウ の解答を抱き合わせて一括採点する場合の解答欄設定(点線はなくてもよい)
(配点が1点以上であれば、部分点も設定できます)

読み取りを想定した解答欄群の形式は次の3種類です。

(1)縦方向に解答欄群(ブロック)数は1以上

上の(1)ような形式の場合、プログラムは解答欄矩形の座標をブロック1の行方向については左から右へ、列方向については上から下へ、それぞれ検出します。ブロック1内の解答欄矩形を検出したらブロック2内の解答欄矩形の座標をブロック1の場合と同様に検出、以降同じ操作をブロック数分繰り返し実行します。

(2)横方向の解答欄群(ブロック)数は2つまでを想定

ブロック数が3以上の解答用紙は想定も、読み込み実験も行っておりません。

上の(2)ような形式の場合、プログラムは解答欄矩形の座標をまず左側のブロック1から検出します。ブロック1の行方向については左から右へ、列方向については上から下へ、それぞれ検出します。ブロック1内の解答欄矩形を検出したらブロック2内の解答欄矩形の座標をブロック1の場合と同様に検出、以降同じ操作をブロック数分繰り返し実行します。

ブロック1及びブロック2は、(1)のように縦方向にさらに複数のブロックに分かれていても問題ありません。その場合は(1)で説明した通りの順番で解答欄矩形が検出されます。

(3)国語で使用される縦書き答案の場合

国語の試験で使用される縦書き解答用紙の場合、プログラムは解答用紙の右側から、まず縦方向上から下へ(青色い矢印方向)、次に横方向は右から左へ(オレンジ色の矢印方向)、解答欄矩形を検出します。縦書き解答用紙は上の図で示したように解答欄群が横方向に1以上存在する場合のみを想定しており、解答欄が縦方向(上下方向)に2段になっているような形式は想定外です。

上記(1)、(2)、(3)以外の形式の解答用紙につきましては、想定しておりませんし、従って動作確認等も一切行っておりません。現在のところ、今後、上記(1)、(2)、(3)以外の形式の解答用紙への対応を行う予定はありません。

マークシートの場合と異なり、手書き形式試験の解答用紙の印刷は、インクジェットプリンター以外の方法(例:輪転機による印刷)で行っていただいて構いませんが、試験実施後、スキャナーで解答用紙を読み取って画像化する都合上、印刷後、解答用紙の変形が生じるような印刷方法(熱が加わるような印刷方法)は避けていただいた方が賢明です。

< 戻る >

2.解答用紙読み取り前の確認

スキャナーで解答用紙を読み取る前に、次の事項について確認し、必要な作業を行ってください。

(1)欠席者の位置に白紙の解答用紙を挿入

(2)解答用紙に付着した消しゴムの屑を除去

塵も積もれば・・・ナントカで、消しゴムの屑が付いたままの解答用紙をスキャナーで何百枚も処理すると、スキャナーの光学読取装置部分が大変なコトになります。ですので、解答用紙に付着した消しゴムの屑は出来る限り除去してからスキャン作業を行ってください。

(3)解答用紙が出席番号番号「昇順」に並んでいることを確認

解答用紙が出席番号(もしくは受験番号)の昇順(=スキャナーで読み込む順)に並んでいることを最低2回は確認してください。また、その際、上下の逆転がないことも入念にご確認ください。

< 戻る >

3.解答用紙をスキャナーでJpeg画像化

解答用紙は解像度 200 dpi、カラー、Jpeg 画像を指定してスキャンしてください。

必要以上に解像度を高くしても良いことは1つもありません。200 dpi で十分な精度が得られます。また、必ずカラー画像としてスキャンしてください(スキャナー側では二値化処理しないでください)。

一般的に使用されている複合機のスキャナーでスキャンした PDF ファイルは、Jpeg 画像のコンテナのような形式で作成されていることが多いと聞き、MS_Reader V3 には、そのような PDF ファイルであった場合、Jpeg 画像を抽出する機能も搭載しましたが、様々なスキャナーで作成されたPDF ファイルを入手し、必要十分な動作テストを行うことは私の環境では不可能でありますので、この PDF ファイルから Jpeg 画像を抽出しての処理は、その可否をご確認の上、可の場合でも必要十分な動作テストを実施後にご利用ください。

なお、筆者の職場にあります E 社製複合機のスキャナーで解像度 200 dpi、カラー、PDF を指定して読み込んだデータを用いた動作検証を行い、プログラムが意図した通りに動作することを確認しましたことを申し添えます。

< 戻る >

4.スキャンした解答用紙画像の保存先

キャンした画像は、MS_Reader_V3.exe と同じフォルダにある ScanData フォルダ内に任意の名称のフォルダを作成し、そこへ保存してください。各 Jpeg 画像ファイルの名称は、この後の読み取り処理専用画像作成の際に一括して変更しますので、どのような名称でもかまいませんが、ファイルの並びが出席番号(=受験番号)順となるような名称である必要があります。

Jpeg 画像を保存するフォルダの名称は、実際には「年度・考査名・教科科目名・クラス名」を組み合わせて作成すると良いと思います。

例:R8_考査①_公共_2A

【重要】フォルダ名には「 – 」や「 ー 」を用いないでください。

フォルダ名に「 – 」や「 ー 」が含まれていた場合、読み取り専用画像を保存するフォルダ名は、スキャナーで読み取った画像を保存したフォルダ名中の「 – 」や「 ー 」を自動的に「 _ 」に変換した名称で作成されます(文字列処理の中で「 – 」を分割に利用しているためです)。この点につきましては、どうか十分にご注意願います。

また、スキャナーで読み取った画像を入れるフォルダの配置については、次の例をご参照ください。

< 戻る >

5.解答用紙の読み取りと採点のための準備

MS_Reader V3 を起動し、解答用紙の読み取りと採点のための準備を行います。

MS_Reader_V3 フォルダ内にある上のアイコンをダブルクリックして起動します。

ダウンロード直後の初回起動時に、次のような Windows Defender SmartScreen による警告画面が表示されると思います。「詳細情報」をクリックし、次に表示される画面の「実行」をクリックしてプログラムを起動してください。

ダウンロードされたファイルに「 Zone.Identifier 」という「ゾーン識別子」が付加されていると、Windows はこの識別子を見て「インターネット経由で取得されたファイル」と判断し、SmartScreen が警告を表示します。

MS_Reader V3 が起動したら、まず、読み取り専用画像を作成します。次の図に示す「矢印がフォルダ内へ入っている」アイコンをクリックしてください。

?マークをクリックすると操作ガイド PDF が表示されます。

「選択」をクリックして、スキャナーで読み取った Jpeg 画像を保存したフォルダを選択します。

「選択」をクリック
Jpeg 画像を保存した「フォルダ」を選択し、Ok をクリックしてください。

次の図に示すように①→②→③の順で操作してください。

①で、必要があれば回転方向を指定します。
②で、画像のリサイズ指定が可能です(A4の解答用紙であれば「なし」か「自動」を指定)
③をクリックすると読取専用画像を保存するフォルダを指定するダイアログが表示されます。

【ご注意】

②でリサイズする際、サイズを指定した場合は必ずその数値をメモしてください。他のクラスも同じ設定で読み取りと採点を行うためには、全クラス同じサイズで画像を変換する必要があります。

ProcData フォルダ内に読取専用画像を保存するフォルダが自動作成されますので、このフォルダをクリックして指定し、その後 Ok をクリックしてください。

「変換実行」をクリックしてください。

「マークシート」と「手書き答案の採点」を併用する場合は「はい」、併用しない場合は「いいえ」をクリックしてください。

確認メッセージが表示された場合は、Ok をクリックしてください。

他のクラスも連続して処理する場合は「画面の初期化」を、読取専用画像の作成作業を終了する場合は「終了」をクリックしてください。

< 戻る >

6.処理に必要なメモリー容量の確認

図の「矢印がフォルダから出ている」アイコンをクリックしてください。

次の案内が表示されます。

上記案内に表示している画像1枚あたりのサイズは、「メモリ上に展開されたOpenCV IplImageの生ピクセルデータサイズ」で計算しています。こちらのメモリ検証を参考に、お使いの PC で快適に作業できる答案枚数をご確認ください。

プログラムは、画像をメモリ上に展開しなくても動作するように作成してありますが、都度画像を読み込んで処理する場合、動作速度(=ユーザー体験)は大変遅くなります。全画像をメモリー上に展開できる作業環境で MS_Reader V3 をお使いいただけますよう、伏してお願い申し上げます。

プログラム作成の流れで言うと、非メモリー展開モードが当初作成した「都度画像を読み込み、採点結果を都度書込みという(流れの)オリジナル」で、それではどうしても動作速度的に満足できないと(新規に手書き答案採点プログラムを書き直した意味がない・旧版の AC_Reader に比較して明らかに良くなっている・進化していることが自分自身の中での絶対的評価基準でした)、このユーザー体験の改善は「やるか・やらないか」の二択ですから「それはやるしかないだろ」ってコトで、もう一度イチから出直して新たに追加したのが「全画像をメモリ上に展開し、読み込みはそこから行い、採点結果は画像に書き込まず JSON ファイルに保存、それが必要な時は JSON ファイルから読み出して画像上に描画する」というメモリー展開モード(=自分的には、新しく採用したアルゴリズム:現実世界では、これが業界標準のようですが・・・)です。

上記の理由から、MS_Reader V3 のプログラムは、状況に応じて2つのモードを使い分けて動作するように出来ています。・・・ 出来ているはずなのですが、メモリー展開モードを追加してからは、ほとんど、この環境でしか動作テストを行っておりませんので、もしかしたら、非メモリー展開モードでの実行時に何らかの予期しない不具合が発生するかもしれません。

ただし、非メモリー展開モードは、私ではない善意の第三者が、高校現場において、定期考査の採点に実際に使用し、致命的な問題がないことをリアル採点現場で確認済みです(この際、判明した問題点はすべて修正・改良しました)。

< 戻る >

7.採点対象の読取専用画像が入ったフォルダを選択

解答用紙のサイズを選択し、受験者数を入力してメモリー展開モードでの作業の可否を確認後、Ok をクリックすると「フォルダーの選択」ダイアログが表示されます。

採点対象の読取専用画像が入ったフォルダを選択

ここではファイルではなく、「フォルダー」を選択することに注意してください。上の例で言えば「 03_HandWriting_Port 」フォルダをクリックして選択 ⇨ 「フォルダーの選択」ボタンをクリックという流れになります。

案内が表示された場合は、Ok をクリックします。

< 戻る >

8.特徴点を検出

今回の冒頭でお示ししたように、MS_Reader V3 では、解答用紙の解答欄を個別に切り出す際の座標原点として、解答用紙の左上隅に印刷した ■■■ を特徴点として利用します。これがなくても動作するように設計しましたが、特徴点があることをあくまでも大前提としておりますので、MS_Reader V3 で処理する解答用紙の左上隅には必ず ■■■ を設置していただけますようお願い申し上げます。

解答用紙は通常ワープロソフトで作成されることが多いと思いますが、10.5~14ポイントくらいの大きさで ■■■ を入力していただければよろしいかと思います。

前作と異なり、MS_Reader V3 では、特徴点を自動認識するよう、アルゴリズムを改善しました。以下、特徴点検出方法です。

画面右上の操作案内の表示(✅Info )がチェックされている場合

■■■ の下に Thresh とある表示の右側の閾値表示用 ComboBox が「空欄」の状態で、その閾値表示用 ComboBox の右にある特徴点自動検出ボタンをクリックしてください。

特徴点検出手続きが実行され、プログラムは画像の左上付近に捜索範囲を限定して ■■■ を探します。プログラムは検出閾値を次々に変え、最も安定して利用できると思われる最適な値を見い出します。最適な値が見つかったら場合、その値付近でさらに数回試行し、安定動作(検出)出来た場合は検出動作を停止して特徴点を赤枠で囲み、ユーザーに確認を求めます。

特徴点検出作業中、画面左下に進捗状況が表示されます。

【特徴点が検出された場合】

「はい」をクリックしてください。
(背景のマークシート画像がぼやけているのは検出手続き中でガウスぼかしを利用しているためです)

【特徴点が検出されなかった場合】

特徴点が検出されなかった場合は、次のメッセージが表示されます。

Ok をクリックしてください。

上記いずれの場合でも次の確認メッセージが表示されます。マークシートのみの採点作業及びマークシートと手書き併用型の採点作業を行う場合は「はい」を、手書き答案の採点作業のみを行う場合は「いいえ」をクリックしてください。

手書き答案の採点を行いますので「いいえ」をクリックします。
横書き形式の答案であれば「はい」をクリックします。
国語で使用される縦書きの場合は「いいえ」をクリックしてください。
OK をクリックしてください。

手書き答案の解答欄の形式を指定します。

< 戻る >

9.解答用紙情報の設定

続けて解答用紙の情報を取得・設定します。選んだ解答用紙の形式により、アクティブになるボタンは異なります。

横書き形式を選択した場合にアクティブになるボタン
縦書き形式を選択した場合にアクティブになるボタン

ここでは横書き形式を選んだ場合の操作方法を説明しますが、縦書きの場合も操作内容は同じです。

横書き形式の手書き答案の解答欄座標を自動取得して表示。

ボタンをクリックすると次のような別 Window が開き、そこに取得出来た解答欄矩形の座標の一覧が表示されます。

横書き形式の解答用紙の場合(その理由はよくわかりませんが)、一般的な横書き形式の解答用紙の採点方式はほぼ 100% 左から右へ、上から下へだと思いますので、そのような人の採点時の習性に合わせて解答欄矩形の座標を取得して表示できるよう、試行錯誤を繰り返し、解答用紙画像が、多少、傾いていても採点する順番に座標を取得するアルゴリズムとしました。

座標取得直後の解答用紙の画像です。
第7設問の解答欄矩形の座標が取得できていません。

プログラムは OpenCV の矩形検出で検出できた解答欄矩形を、明るい緑色の枠で囲んで表示します。青い枠で囲まれている解答欄が、一覧表示の中で現在カーソルがある解答欄(=TMemo のアクティブな行)です。

私が以前に書いた解答欄矩形の座標検出アルゴリズムでは、幅の狭い矩形も全て取得して表示してしまい、必要な矩形座標と、そうでないものを判別する必要がありました。今回書き直したプログラムでは、ある程度の幅がないと検出対象から外すようにしましたので、上の例で第7設問の解答欄矩形が検出されていないのは、その副作用であると思われます。基本的に点線部分は矩形として認識しないように設定しましたが、このあたりの線引きは非常に難しく、あまり厳しくしすぎるとほんのわずかに線の一部が欠けていても必要な座標が検出できなくなったりしますので、微妙な調整に試行錯誤を繰り返しました。同時に、ユーザー体験の向上のため、矩形検出に使用する閾値も、プログラムが自動的に決定するように旧プログラムを改良し、自分的にはこれがベストと思われる仕様で公開した次第です。今後、実際の試験で運用し、この辺りの微調整が必要と判断された場合は、マイナーバージョンアップで矩形検出アルゴリズムを修正したいと考えています。

別 Window の ▶ ボタンをクリックすると、解答欄矩形の座標が右の TMemo へ移動します。次の図はその作業の様子です。

上下の矢印キーを押し下げすることで、アクティブな矩形座標を変更できます。

作業の手順として、検出出来なかった解答欄があっても、とりあえず、それは無視して検出できた解答欄矩形の座標を右側の TMemo へ移してください。

検出できた矩形の座標から、解答欄矩形の座標のみを選ぶ作業が完了した状態の例

次に、自動検出できなかった解答欄の座標があれば手動取得します。第7設問の解答欄矩形の座標を手動取得する例でその方法を説明します。

別 Window の中央上部にある「編集」チェックボックスをチェックしてください。

いちばん最初の解答欄矩形がアクティブな状態になります。

下向きの矢印キーを何回か押し下げして、第6設問の解答欄をアクティブにしてください。

右向きの矢印キーを複数回押し下げて、マウスのカーソルを第6設問の解答欄矩形の座標データの末尾へ移動します。

カーソル位置を座標データの末尾へ移動させたところ
拡大図

Enter キーを1回押し下げて空行を入れてください。

別 Window の ▶ ボタンの下にある「新規」ボタンをクリックします。

第7設問の解答欄の左上隅から右下隅へ向かってマウスをドラッグしてください。青い枠がドラッグした範囲に描画されます。微調整が必要な場合はラバーバンド上のグラブハンドルをドラッグして調整してください(矢印キー押し下げによる微調整は出来ません!)。

第7設問の解答欄をラバーバンドで囲んだら「取得」ボタンをクリックして、その座標を取得してください。

他にも検出出来なかった解答欄がある場合は、この作業を繰り返して、必要な解答欄矩形の座標をすべて取得してください。

作業の最後に、解答欄矩形の座標がすべて取得出来た事を、実際に採点する順番に確認してください。

上向きの矢印キーを何回か押し下げするか、TMemo をスクロールして最も上にある座標をクリックするかして、最初の解答欄矩形の座標をアクティブにし、次に下向きの矢印キーを押し下げながら、座標の取得状況を確認してください。

下向きの矢印キーを1回押し下げます。

下向きの矢印キーを1回押し下げます。

同じ操作を最後の解答欄まで繰り返し、座標の取得状況を確認してください。

最後の解答欄まで座標の取得状況の確認が出来たら「保存」ボタンをクリックしてください。確認メッセージが表示された場合は、OK をクリックしてください。

終了ボタンがアクティブになりますので、クリックして座標の取得 Window を閉じます。

「終了」ボタンをクリックしてください。

10.配点及び観点別評価の区分を設定

解答欄矩形の座標の取得作業を終了すると、その直後に次のメッセージが表示されますので、「はい」をクリックしてください。

各設問の配点や、観点別評価の区分が未入力の場合は、次のメッセージが表示されます。

OK をクリックすると、各設問の配点及び観点別評価の区分を入力するグリッドコントロールが表示されます。

全設問に設定する配点を入力してください。後から設問毎に再設定できますので、最も多くの設問に設定する配点を選択して入力してください。ここでは5点で設定したものとして説明します。

「5」を入力して OK をクリックします。
(半角数字で入力してください)

全設問の配点に「5」、観点別評価の区分に「1」が自動設定され、合計点が計算されます。

設問毎の配点を修正する必要があれば、それに該当する設問の配点を修正してください。また、観点別評価の区分も必要箇所を「2」に変更してください。

合計点は入力された値に基づき、自動計算されます。

入力後、配点と観点別評価の区分の設定値が本当に正しいことを必ず確認してください。確認後、設定を保存します。次のアイコンをクリックしてください。

配点設定等の保存は上のアイコンをクリック

次の注意が表示されます。

既に採点されたデータがある場合、正解(○)と採点したデータの配点は自動的に最新の配点設定値に更新されますが、部分点あり(△)と採点したデータの採点は変更作業の対象外となります。採点後に配点を変更した場合は、どうか、ご注意ください。

続けて、次のメッセージが表示されます。

「はい」をクリックして、配点及び観点別評価の区分の入力を終了します。

画面は、次の状態になります。

これで採点する準備ができました!

< 戻る >

11.採点

採点は数字キーを押し下げして行います。

・正解の場合:半角数字の 1 を入力

解答には、採点記号と配点、観点別評価の区分が赤で描画され、
グリッドコントロールには、配点設定に基づいた得点がセットされ、
フォーカスは自動的に次の生徒の解答へ移動します。

【全員を正解とする場合】

上のアイコンをクリックすると全員正解で採点できます。

・不正解の場合:半角数字の 2 を入力

解答には、採点記号と観点別評価の区分が青で描画され、
グリッドコントロールには、0(ゼロ)がセットされ、
フォーカスは自動的に次の生徒の解答へ移動します。

【全員を不正解とする場合】

上のアイコンをクリックすると全員不正解で採点できます。

・部分点がある場合:半角数字の 3 を入力

部分点を入力するインプットクエリーが表示されますので、部分点を半角数字で入力してください。

入力後、OK をクリックしてください。
解答には、採点記号と与えた部分点及び観点別評価の区分がオレンジ色で描画され、
グリッドコントロールには、部分点が「負の値」としてセットされ、
フォーカスは自動的に次の生徒の解答へ移動します。

グリッドコントロールには、部分点が「負の値」としてセットされますが、マイナス記号は「部分点あり」のフラグとして利用しています(プログラムのバグではありませんのでご注意ください)。得点合計は絶対値で計算していますので、表示がマイナス記号付きであっても問題ありません。

・採点を取り消す場合:半角数字の 4 を入力

出席番号1番の生徒の採点を取り消したところ

消去チェックボックスをチェックすると、まとめて採点を取り消すことができるようになります。

・1行分(=1設問分)をまとめて取り消し

1設問分の採点を受験者全員について取り消します。

・全採点の取り消し

全設問の採点結果を取り消します。

採点結果をまとめて取り消した場合、元に戻すことは出来ません。

・フォーカスの移動

フォーカスは左右の矢印キーで移動させることもできます。上下の矢印キーは採点対象の設問を変更することになりますので、押し間違えないよう、十分にご注意ください。

・採点結果の保存

入力した内容はフォーカスが移動する時、自動保存のチェックボックスにチェックが入っていれば自動保存されます。ですので、特別の理由がない限り、自動保存のチェックは外さないでください。

手動で保存する場合は、次のアイコンをクリックしてください。

クリックすると、現在アクティブな行(採点中の設問)の採点データが一括して保存されます。

全てのデータを手動で保存する場合は、次のアイコンをクリックしてください。

メモリー上に全画像データを読み出して処理している場合は、JSONファイルに採点結果を書き込むだけなので、保存は一瞬で完了しますが、採点結果を直接画像に書き込む低速モードで運用している場合には、全画像のすべての採点結果を書き直すことになりますので、処理の実行が完了するまでに相当の時間が必要となります。設問数と受験者数により必要な時間は異なってきますが、設問数50問前後、受験者数40名前後の場合、数十分程度必要です。低速モードで運用される場合、全画像の再生成処理の実行はやむを得ない事情で、その処理が必要になった場合のみ、時間に余裕を持って実行してください。

< 戻る >

12.成績一覧表及び正答率一覧表の作成と印刷

採点が完了したら、まず、成績一覧表及び正答率一覧表を作成してください。この作業を行わないと返却用答案が作成できません。

【成績の計算が未実行の場合に表示されるメッセージ】

成績一覧表を作成するには、まず、配点チェックボックスをチェックします。

配点チェックボックスをチェックしたところ(グレーアウトします)

グリッドコントロールは配点及び観点別評価の区分の入力画面に変わります。この状態で、次のアイコンをクリックしてください。

・成績一覧表の作成

クリックすると成績一覧表を作成・表示します。

成績一覧表が表示されます。

既存の採点データがある場合、上書き確認のメッセージが表示されます。

・正答率一覧表の作成

クリックすると正答率一覧表を作成・表示します。

正答率一覧表が表示されます。

・2枚目がある場合

出力サイズはデフォルトA4・縦を設定してあります。なので、受験者数が多い場合は2枚以上になります。▶ アイコンをクリックすれば次ページを、◀ アイコンをクリックすれば前のページをそれぞれ表示できます。

・成績一覧表及び正答率一覧表の印刷

成績一覧表及び正答率一覧表を印刷するには、次のアイコンをクリックしてください。

クリックすると、成績一覧表 or 正答率一覧表を印刷できます。

出力は「A4・縦」がデフォルト設定です。

出力先のプリンタを選んで、OKをクリックしてください。

PDF24は「PDFのあらゆる作業を無料で簡単にできるツール」です。オンライン版(PDF24 Tools)と、PCにインストールして使うオフライン版(PDF24 Creator)の2種類があり、私はオフライン版をインストールしています。プリンタのドライバの不具合で直接印刷できない場合、PDF化したデータをPDF24の印刷機能を利用して印刷すると、MS_Reader V3 から印刷できなかったプリンタにも出力できました。

・採点モードに戻るには?

配点等の入力画面が表示されている場合、配点チェックボックスはグレーアウトしてクリックできない設定としてあります(事故を防止するためのプログラムの仕様でバグではありません)。

採点モードに戻るには、次のアイコンをクリックして配点設定を上書き保存してください。

クリックすると「配点と観点別評価の区分を保存して終了」するアイコン

クリックすると上書き確認のメッセージが表示されます。

「はい」をクリックしてください。

さらに確認のメッセージが表示されます。

採点モードに戻ります。

「はい」をクリックしてください。

< 戻る >

13.返却用答案の作成と印刷

成績一覧表の作成を実行すると、返却用答案の作成が可能になります。

まず、調整チェックボックスをチェックして、合計点表示用のフォントサイズを指定してください。

合計点等のフォントサイズを指定してください。

フォントサイズを変更した場合、次のメッセージが表示されます。

「はい」をクリックしてください。

× ボタンをクリックして設定 Window を閉じてください。

「閉じる」ボタンは Window 右下にあります。

「返却用答案の表示」ボタンをクリックしてください。

「返却用答案の表示」ボタン
OK をクリックしてください。

画像上の任意の位置をクリックしてください。合計点等の表示サンプルラベルが描画されます。

ラベル上をクリックしてドラッグすれば表示位置を微調整できます。
よろしければラベルの右横にある「この位置に決定」ボタンをクリックしてください。
「はい」をクリックしてください。

印刷プレビューが表示されます。

次のアイコンをクリックすると返却用答案を印刷できます。

「返却用答案の印刷」ボタン

確認のメッセージが表示されます。

適切なボタンを選択してクリックしてください。

プリンタの設定ダイアログが表示されます。出力先等を選択して OK をクリックしてください。

用紙サイズは、解答用紙サイズにかかわらず A4 がデフォルト設定です。

印刷(枚数)の確認メッセージが表示されます。

印刷内容を選び、適切なボタンをクリックしてください。

「はい」をクリックした場合、全員分の返却用答案が出力先に送られます。出力完了時に次のメッセージが表示されます。

「印刷設定の保存」確認メッセージが表示されます。

「はい」をクリックすると現在の印刷設定が保存されます。

さらに確認メッセージが表示されます。

OK をクリックしてください。

印刷(枚数)の確認メッセージで「いいえ」をクリックすれば、番号を指定して個別に返却用答案を出力できます。

個別に出力する場合は「いいえ」をクリックしてください。

出力したい返却用答案の出席番号を指定します。

この解説では「マークシート採点」を併用する方法は紹介しておりません。
マークシートと手書きを併用する試験の実施方法は次回の記事で解説します。

出力が完了すると、次のメッセージが表示されます。

OK をクリックしてください。

この後、全員分を印刷する場合と同様に、現在の印刷設定を保存するか・どうか、確認するメッセージが表示されます。

< 戻る >

14.手書き答案採点設定の保存

次のアイコンをクリックすると、現在、採点処理を行っている手書き答案の採点設定を保存できます。

「手書き答案の採点設定を保存」します。

設定の保存完了の確認メッセージが表示されます。

OK をクリックしてください。

< 戻る >

15.まとめ

今回の記事では、マークシートリーダー MS_Reader V3 に付属の「手書き答案のデジタル採点機能」について解説しました。

以下、MS_Reader V3 に付属の「手書き答案のデジタル採点機能」でできることのまとめです。

(1)横書き・縦書きいずれの形式の解答用紙のデジタル採点が可能
(2)成績一覧表及び正答率一覧表の作成・印刷が可能
(3)返却用答案の作成・印刷が可能

< 戻る >

16.お願いとお断り

このサイトの内容を利用される場合は、自己責任でお願いします。記載した内容(プログラムを含む)を利用した結果、利用者および第三者に損害が発生したとしても、このサイトの管理者は一切責任を負えません。予め、ご了承ください。

< 戻る >

MS_Reader V3 の使い方(マークシートリーダー編)

この Blog で先にご紹介した完全無料でお使いいただける、「手書き答案のデジタル採点機能付き」マークシートリーダー MS_Reader V3 の使い方のご案内です。

MS_Reader V3 の付属の機能を利用した、手書き答案のデジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

MS_Reader V3 の付属の機能を利用した、マークシートと手書き答案の併用型デジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

【もくじ】

1.マークシートの準備
2.マークシートの印刷
3.マークシート読み取り前の確認
4.マークシートをスキャナーでJpeg画像化
5.スキャンしたマークシート画像の保存先
6.マークシート読み取りと採点のための準備
7.処理に必要なメモリー容量の確認
8.採点対象の読取専用画像が入ったフォルダを選択
9.特徴点の検出
10.マークシート情報の設定
11.マークシート設定の複写
12.マーク読み取りの実行と確認
13.音声読み上げ
14.正解・配点・観点別評価の区分の入力と保存
15.成績一覧表、正答率一覧表の作成と印刷
16.採点結果通知シートの作成と印刷
17.まとめ
18.お願いとお断り

1.マークシートの準備

試験で使用するマークシートを準備します。MS_Reader V3 で使用するマークシートには特徴点が必要です。マークシートの左上隅の任意の位置に ■■■(ドットを3つ)ご用意ください。

プログラム自体は、特徴点がなくても、スキャンした画像の左上を座標原点 (0, 0) として動作するように組んでありますが、動作テスト時に一部データの読み込みに問題が発生することがありました。ですので、誤動作を極力防止するためにも特徴点は必ずご用意いただけますよう、お願い申し上げます。

【ご注意願います】

特徴点をご用意いただいた場合でも、MS_Reader V3 が常に意図した通り、完全に動作することは保証できません。MS_Reader V3 を使用される方の完全自己責任の下、十分な動作テストを行っていただいた上で、マークシートの読み込み性能に納得していただける場合のみ、MS_Reader V3 はお使いいただけます。悪しからず、ご了承ください。

上図のような位置に、上図のような大きさで ■■■ をご用意ください。

MS_Reader V3 に同梱した Mark Sheet Maker をご使用いただければ、上図のようなマークシートをどなたでも簡単に作成できる(?)と思います。(もし、難しかったらごめんなさい)

< 戻る >

2.マークシートの印刷

マークシートの印刷には、輪転機ではなく、必ずインクジェットプリンターを使用してください。

高性能化が進む輪転機ですが、マークがどうしても濃く印刷されてしまい、マーク読み取りの際に問題が発生することがあります。タイトル及び特徴点以外の、マーク・罫線部分の印刷の濃さは、「実際の運用でご使用になるスキャナーで読み取ったマークシート画像のマーク内の数字がモニター画面上で読み取れ、かつ、その画像を実際にご使用になるプリンタで印刷した場合に、マーク内の数字が何であるか、ある程度判別可能な濃さ」としてください。

< 戻る >

3.マークシート読み取り前の確認

スキャナーでマークシートを読み取る前に、次の事項について確認し、必要な作業を行ってください。

(1)欠席者の位置に白紙のマークシートを挿入

(2)マークシートに付着した消しゴムの屑を除去

塵も積もれば・・・ナントカで、消しゴムの屑が付いたままのマークシートをスキャナーで何百枚も処理すると、スキャナーの光学読取装置部分が大変なコトになります。ですので、マークシートに付着した消しゴムの屑は出来る限り除去してからスキャン作業を行ってください。

(3)マークシートが出席番号番号「昇順」に並んでいることを確認

マークシートが出席番号(もしくは受験番号)の昇順(=スキャナーで読み込む順)に並んでいることを最低2回は確認してください。また、その際、上下の逆転がないことも入念にご確認ください。

< 戻る >

4.マークシートをスキャナーでJpeg画像化

マークシートは解像度 200 dpi、カラー、Jpeg 画像を指定してスキャンしてください。

必要以上に解像度を高くしても良いことは1つもありません。200 dpi で十分な精度が得られます。また、必ずカラー画像としてスキャンしてください(スキャナー側では二値化処理しないでください)。

一般的に使用されている複合機のスキャナーでスキャンした PDF ファイルは、Jpeg 画像のコンテナのような形式で作成されていることが多いと聞き、MS_Reader V3 には、そのような PDF ファイルであった場合、Jpeg 画像を抽出する機能も搭載しましたが、様々なスキャナーで作成されたPDF ファイルを入手し、必要十分な動作テストを行うことは私の環境では不可能でありますので、この PDF ファイルから Jpeg 画像を抽出しての処理は、その可否をご確認の上、可の場合でも必要十分な動作テストを実施後にご利用ください。

なお、筆者の職場にあります E 社製複合機のスキャナーで解像度 200 dpi、カラー、PDF を指定して読み込んだデータを用いた動作検証を行い、プログラムが意図した通りに動作することを確認しましたことを申し添えます。

< 戻る >

5.スキャンしたマークシート画像の保存先

スキャンした画像は、MS_Reader_V3.exe と同じフォルダにある ScanData フォルダ内に任意の名称のフォルダを作成し、そこへ保存してください。各 Jpeg 画像ファイルの名称は、この後の読み取り処理専用画像作成の際に一括して変更しますので、どのような名称でもかまいませんが、ファイルの並びが出席番号(=受験番号)順となるような名称である必要があります。

Jpeg 画像を保存するフォルダの名称は、実際には「年度・考査名・教科科目名・クラス名」を組み合わせて作成すると良いと思います。

例:R8_考査①_物理基礎_2A

【重要】フォルダ名には「 – 」や「 ー 」を用いないでください。

フォルダ名に「 – 」や「 ー 」が含まれていた場合、読み取り専用画像を保存するフォルダ名は、スキャナーで読み取った画像を保存したフォルダ名中の「 – 」や「 ー 」を自動的に「 _ 」に変換した名称で作成されます(文字列処理の中で「 – 」を分割に利用しているためです)。この点につきましては、どうか十分にご注意願います。

また、スキャナーで読み取った画像を入れるフォルダの配置については、次の例をご参照ください。

< 戻る >

6.マークシート読み取りと採点のための準備

MS_Reader V3 を起動し、マークシート読み取りと採点のための準備を行います。

MS_Reader_V3 フォルダ内にある上のアイコンをダブルクリックして起動します。

ダウンロード直後の初回起動時に、次のような Windows Defender SmartScreen による警告画面が表示されると思います。「詳細情報」をクリックし、次に表示される画面の「実行」をクリックしてプログラムを起動してください。

ダウンロードされたファイルに「 Zone.Identifier 」という「ゾーン識別子」が付加されていると、Windows はこの識別子を見て「インターネット経由で取得されたファイル」と判断し、SmartScreen が警告を表示します。

MS_Reader V3 が起動したら、まず、読み取り専用画像を作成します。次の図に示す「矢印がフォルダ内へ入っている」アイコンをクリックしてください。

?マークをクリックすると操作ガイド PDF が表示されます。

「選択」をクリックして、スキャナーで読み取った Jpeg 画像を保存したフォルダを選択します。

「選択」をクリック
Jpeg 画像を保存した「フォルダ」を選択し、Ok をクリックしてください。

次の図に示すように①→②→③の順で操作してください。

①で、必要があれば回転方向を指定します。
②で、画像のリサイズ指定が可能です(A4のマークシートであれば「なし」か「自動」を指定)
③をクリックすると読取専用画像を保存するフォルダを指定するダイアログが表示されます。

【ご注意】

②でリサイズする際、サイズを指定した場合は必ずその数値をメモしてください。他のクラスも同じ設定で読み取りと採点を行うためには、全クラス同じサイズで画像を変換する必要があります。

ProcData フォルダ内に読取専用画像を保存するフォルダが自動作成されますので、このフォルダをクリックして指定し、その後 Ok をクリックしてください。

「変換実行」をクリックしてください。

「マークシート」と「手書き答案の採点」を併用する場合は「はい」、併用しない場合は「いいえ」をクリックしてください。

確認メッセージが表示された場合は、Ok をクリックしてください。

他のクラスも連続して処理する場合は「画面の初期化」を、読取専用画像の作成作業を終了する場合は「終了」をクリックしてください。

< 戻る >

7.処理に必要なメモリー容量の確認

図の「矢印がフォルダから出ている」アイコンをクリックしてください。

次の案内が表示されます。

上記案内に表示している画像1枚あたりのサイズは、「メモリ上に展開されたOpenCV IplImageの生ピクセルデータサイズ」で計算しています。こちらのメモリ検証を参考に、お使いの PC で快適に作業できる答案枚数をご確認ください。

プログラムは、画像をメモリ上に展開しなくても動作するように作成してありますが、都度画像を読み込んで処理する場合、動作速度(=ユーザー体験)は大変遅くなります。全画像をメモリー上に展開できる作業環境で MS_Reader V3 をお使いいただけますよう、伏してお願い申し上げます。

プログラム作成の流れで言うと、非メモリー展開モードが当初作成した「都度画像を読み込み、採点結果を都度書込みという(流れの)オリジナル」で、それではどうしても動作速度的に満足できないと(新規に手書き答案採点プログラムを書き直した意味がない・旧版の AC_Reader に比較して明らかに良くなっている・進化していることが自分自身の中での絶対的評価基準でした)、このユーザー体験の改善は「やるか・やらないか」の二択ですから「それはやるしかないだろ」ってコトで、もう一度イチから出直して新たに追加したのが「全画像をメモリ上に展開し、読み込みはそこから行い、採点結果は画像に書き込まず JSON ファイルに保存、それが必要な時は JSON ファイルから読み出して画像上に描画する」というメモリー展開モード(=自分的には、新しく採用したアルゴリズム:現実世界では、これが業界標準のようですが・・・)です。

上記の理由から、MS_Reader V3 のプログラムは、状況に応じて2つのモードを使い分けて動作するように出来ています。・・・ 出来ているはずなのですが、メモリー展開モードを追加してからは、ほとんど、この環境でしか動作テストを行っておりませんので、もしかしたら、非メモリー展開モードでの実行時に何らかの予期しない不具合が発生するかもしれません。

ただし、非メモリー展開モードは、私ではない善意の第三者が、高校現場において、定期考査の採点に実際に使用し、致命的な問題がないことをリアル採点現場で確認済みです(この際、判明した問題点はすべて修正・改良しました)。

< 戻る >

8.採点対象の読取専用画像が入ったフォルダを選択

解答用紙のサイズを選択し、受験者数を入力してメモリー展開モードでの作業の可否を確認後、Ok をクリックすると「フォルダーの選択」ダイアログが表示されます。

採点対象の読取専用画像が入ったフォルダを選択

ここではファイルではなく、「フォルダー」を選択することに注意してください。上の例で言えば「 01_MarkSheet 」フォルダをクリックして選択 ⇨ 「フォルダーの選択」ボタンをクリックという流れになります。

案内が表示された場合は、Ok をクリックします。

< 戻る >

9.特徴点を検出

今回の冒頭でお示ししたように、MS_Reader V3 では、マークシートのマークを個別に切り出す際の座標原点として、マークシート(解答用紙)の左上隅に印刷した ■■■ を特徴点として利用します。これがなくても動作するように設計しましたが、マークシートだけでなく、手書き答案の採点プログラムでもこれがあることをあくまでも大前提としておりますので、MS_Reader V3 で処理する解答用紙の左上隅には必ず ■■■ を設置していただけますようお願い申し上げます。

解答用紙は通常ワープロソフトで作成されることが多いと思いますが、10.5~14ポイントくらいの大きさで ■■■ を入力していただければよろしいかと思います。

前作と異なり、MS_Reader V3 では、特徴点を自動認識するよう、アルゴリズムを改善しました。以下、特徴点検出方法です。

画面右上の操作案内の表示(✅Info )がチェックされている場合

■■■ の下に Thresh とある表示の右側の閾値表示用 ComboBox が「空欄」の状態で、その閾値表示用 ComboBox の右にある特徴点自動検出ボタンをクリックしてください。

特徴点検出手続きが実行され、プログラムは画像の左上付近に捜索範囲を限定して ■■■ を探します。プログラムは検出閾値を次々に変え、最も安定して利用できると思われる最適な値を見い出します。最適な値が見つかったら場合、その値付近でさらに数回試行し、安定動作(検出)出来た場合は検出動作を停止して特徴点を赤枠で囲み、ユーザーに確認を求めます。

特徴点検出作業中、画面左下に進捗状況が表示されます。

【特徴点が検出された場合】

「はい」をクリックしてください。
(背景のマークシート画像がぼやけているのは検出手続き中でガウスぼかしを利用しているためです)

【特徴点が検出されなかった場合】

特徴点が検出されなかった場合は、次のメッセージが表示されます。

Ok をクリックしてください。

上記いずれの場合でも次の確認メッセージが表示されます。マークシートのみの採点作業及びマークシートと手書き併用型の採点作業を行う場合は「はい」を、手書き答案の採点作業のみを行う場合は「いいえ」をクリックしてください。

続けて、手書き答案の採点作業を行うかどうかの確認メッセージが表示されます。

適切な方のボタンをクリックしてください。

< 戻る >

10.マークシート情報の設定

特徴点が検出できたら、次にマークシートの情報をイニシャライズファイルに登録します。

各ブロックの 幅と高さは同じ でなければなりません。
また、設問番号部分はブロックに入れません

MS_Reader V3 では、上の図のようにマークシートのマーク欄を群(ブロック)に分け、さらにその群(ブロック)を行と列に分割してマーク単体を切り出し、その部分の濃度を計測してマークの有無を判定しています。前作までのマークシートリーダーでは白黒二値化後の塗り面積計算でマークの有無を判定していましたが、これを濃度を計測しての判定に変更することで、次のような点で判定精度を向上させることが出来たのではないかと考えます(比較実験は行っておりません)。

(1)薄いマークや濃淡のあるマークの検出精度の向上
(2)スキャナーの機種の違いに強くなる(採点現場では統一されていないことの方が多い)
(3)「消え残り」と「真のマーク」を区別しやすくなる
(4)紙の汚れ・印刷のムラに強くなる(マーク領域全体の平均をとることで、局所的なノイズの影響が統計的に薄まる)
(5)パラメータ調整が容易になる(白黒二値化では、閾値を1動かしただけで検出結果が逆転することがあり、感覚的に調整しにくい)

高校における実際の定期試験の採点現場では、スキャン環境も受験者の筆記具も統一されていないのが当然で、白黒二値化から濃度計測への判定アルゴリズムの変更は、判定精度と運用安定性の両面で大きな改善につながったと思います。

まず、群(ブロック)数を入力します。

次のメッセージが表示されます。

自動検出は「おまけ・お遊び」程度にお考えください。

スキャナーで読み込んだ画像の罫線の状態は粗めになっていることが多く、余程良好な状態でないと群(ブロック)ごとの罫線枠の自動検出は成功しないと思われます。

【参考:罫線枠の自動検出に成功した場合】

罫線の状態が良ければ、罫線枠の自動検出に成功します。

ちなみに上の場合のパラメータ設定は「10」です。こちらを先に設定してから左隣の「マーク欄の自動検出」ボタンをクリックしてください。群(ブロック)数設定時の操作ミスを防止する観点から、敢えてコントロールの位置を自動検出ボタンの「右」側にしてあります。

閾値は「10」程度でお試しください。

自動検出に成功した場合は、次のように操作してください。まず、検出できた座標を保存します。

▯1 ボタンをクリックしてください。

2つ目に自動検出された罫線枠が自動的に選択されます。2つ目に検出できた座標を保存します。

▯2 ボタンをクリックしてください。

設定した群(ブロック)数回、同様に操作します。これ以降の設定方法は自動検出機能を利用しなかった場合と同じです。

なお、罫線枠(マーク欄)の自動検出には「適応的二値化」を用いています。これにより紙の折り目跡などによる画像の濃淡の違いに強くなり、より安定して検出できるようにはなっていると思うのですが、私の行った試行では誠に残念ながら上手く検出できることの方が少なかったです(検出精度を数値的に評価するような実験は行っておりません)。・・・ですので、ここでは罫線枠(マーク欄)の自動検出機能は利用せず、手動でマーク欄の情報を設定する方法を説明致します。

罫線枠(マーク欄)の自動検出機能を使用しない場合は「いいえ」をクリックします。

次のメッセージが表示された場合は、よく読んでから Ok をクリック。

マウスのカーソルが大きな「+」になります。範囲の設定は必ず読み取りブロックと表現している罫線枠(マーク欄)の左上から右下へドラッグするかたちで行ってください。まず、+になったカーソルを読み取り範囲の左上位置にポイントします。

ポイントしたらカーソルを動かさずに、そこでクリックして右下方向へドラッグします。画面はマウスの動きに追従して自動的にスクロールするはずです。

実際には、右下隅でぴったり罫線枠に合わせるのは、なかなか難しいと思います。そこで、少し大きく範囲指定して微調整できるようにアルゴリズムを改善しました。

幅・高さともやや大きめに範囲指定したところ。この後、微調整します。

微調整は Shift キーを押したまま、上下左右の矢印キーを押し下げして行います。

上の状態を例に説明すると、

Shift + 左向きの矢印キー押し下げで、幅が左へ小さくなります。
Shift + 上向きの矢印キー押し下げで、高さが上へ小さくなります。

また、MS_Reader V3 では、赤い点線で範囲指定した枠そのものも移動できるようにしました。

上下左右の矢印キーを押し下げすると、1回押し下げにつき1ピクセルずつ、赤い点線で範囲指定した枠そのものが押し下げた矢印キーの方向へ移動します。

1つめの範囲を指定出来たら、その座標を保存します。

▯1 ボタンをクリックしてください。

次に2つ目の読み取り範囲の罫線枠(マーク欄)を指定しますが、ここにも改良を加えました。MS_Reader V3 で使用するマークシートにおいて各マーク欄ブロックの幅と高さは全て同じという大前提ですので、2つ目以降のブロックは特徴点からの距離が変化するのみで、その大きさは変わりません。そこで、1つ目で指定した範囲をそのまま2つ目のブロックへドラッグ&ドロップ出来るようにしました。作業内容は、次のようなイメージです。

選択した範囲の内部をクリックし、そのまま図の矢印方向へドラッグします。
選択範囲を2つ目のブロック位置へ移動します。

マウスはなるべく水平方向へ移動するよう操作してください。上や下方向へマウスを動かすと画面がスクロールしてしまいます。ご注意ください。

ドロップ位置での微調整は、上で説明した通りの方法で行うことができます。

2つ目の罫線枠(マーク欄)の座標を保存します。

▯2 ボタンをクリックしてください。

同じ操作を、ブロックの数だけ繰り返し、すべてのブロックの座標を取得・保存します。

次に1ブロックあたりの行数、1解答欄(=設問)あたりの選択肢数他を指定します。

1ブロックあたりの行数を設定します。
ComboBox の選択肢から適切な値を選択してください。

次に1解答欄(=設問)あたりの選択肢数を指定します。

選択肢数は8
ComboBox の選択肢から適切な値を選択してください。

用紙のサイズと向きも ComboBox の選択肢から選んで指定します。最後の項目は縮小率(%)です。

画像のリサイズが「なし」or「自動」の場合は縮小率は「100」を指定し、任意のサイズを指定した場合は指定したサイズ(%)の数値を指定します。(下の図を参照してください)

次に設問数を設定します。100設問設定可能なマークシートであっても実際に使用しているのが 74 設問分であれば設問数には 74 を設定してください。

設問数を設定

次に選択肢の始まりの番号を指定します(多くの場合、それは「1」だと思いますが、高等学校の教科「情報」のように選択肢の始まりの番号が「0(ゼロ)」である場合があります。ご注意ください)。

選択肢の始まりの番号が1なら1を指定

次に複数マークの扱いを指定します。

【チェックなしの場合】

複数マークがあった場合は「99」と表示します。
(99 は複数マークであることを示すフラグです)

【チェックありの場合】

複数マークがあった場合、そのまま読み取ってカンマ区切りで表示します。

【ご注意ください】

複数マークを許可した場合は、読み取り結果を CSV ファイルに出力して、採点等はこの CSV ファイルを利用した別アプリケーションで行っていただく必要があります。MS_Reader V3 付属の採点システムでは複数マークを許可した場合の採点を想定しておりません。ですので、複数マークを許可した場合の MS_Reader V3 の機能は、マークの読み取り& CSV 出力までとなります。

最後に、マークシート情報が正しく設定されていることを目視して確認します。

目視チェックの実行ボタンをクリックするとマークの切り出し枠が赤い線で描画されます。
画面をスクロールしてマークシート情報が正しく設定されているかどうか、確認してください。

最後に設定内容をイニシャライズファイルに保存します。

「マークシート設定の保存」ボタンをクリックしてください。

< 戻る >

11.マークシート設定の複写

複数クラスに同じマークシート設定を適用する場合は、作成したマークシート設定を複写できます。

複写する必要がなければ「いいえ」をクリックします。

【「はい」を選んだ場合】

例:1A のマークシート設定を 1B, 1C に複写する場合、Ctrl キーを押しながら選択します。

「フォルダの選択」ボタンをクリックすると、既存のマークシート設定が複写先のクラスのフォルダへコピーされます。

既存のファイルがある場合、上書き確認のメッセージが表示されます。

< 戻る >

12.マーク読み取りの実行と読み取り結果の確認

これでマークシートを読み取る準備が出来ました。たくさん準備を行ってきましたが、読み取りはあっけないくらい 走召 高速です。初めて実行した時、機械が壊れているんじゃないかと思ったくらいです。

「実行」ラジオボタンをチェックして、「マーク読み取りを実行」ボタンをクリックするだけです。

私の環境では、1設問あたり8選択肢、100 設問、40 Sheet分、すなわち 32000 マークを

1.011 秒で読んでいます。もちろん、読み取りミスはありません。

マークの有無の判定アルゴリズムは3種類用意してあります。

・Area:面積法
・Intensity:濃度法
・Hybrid:上記2つの方法の組合せ

何度も試行して確認しましたが、濃度法一択でよろしいのではないかと思われます。

続いて、読み取り結果の確認です。

例えば 50 設問用のマークシートを使用し、実際の設問数は 46 であった場合、47, 48, 49, 50 は間違えてマークした生徒を除き、受験者全員が空欄になっています。このような空欄は最初からチェックの対象としないように設定できます。また、0を指定すると、そのブロック内のすべての回答欄がチェック対象となります。

第2ブロックは、これ以降の設問をチェックから除外します。

チェックの設定は保存しておき、同じ試験を実施した他のクラスにも適用できます。

チェックを実行すると「空欄:999」と判定したマークと、「複数マーク:99」と判定したマーク位置でチェックが停止します。目視して該当マーク部分の読み取り判定結果をチェックしてください。

【空欄と判定した場合】※ 空欄のフラグは 999

【複数マークありと判定した場合】※ 複数マークのフラグは 99

複数マークを許可した場合は、1, 2 と表示され、チェック対象ではなくなります。

塗りつぶしが薄すぎて空欄判定になっていたり、消したマークの消し方が不十分で複数マークありの判定になっている場合は、読み取り結果を採点者の判断で正しく修正してください。

すべてのマークをチェックしたら、保存ボタンをクリックして、読み取り結果を保存します。

既存のファイルがある場合、上書き確認のメッセージが表示されます。

採点の「確定」を確認するメッセージです。採点結果を確定しないと合計点や採点結果通知シートの作成は行えません。また、採点結果を確定した場合は、次回当該クラスのフォルダを指定して開いた際、採点処理をしなくても合計点他の計算や各種資料の印刷が可能になります。

事故防止の観点から、どんな場合でも、処理は必ず「合計点を計算」⇨「採点結果通知シートの作成・印刷」の順で実行しなければならないように設定してあります。それが MS_Reader V3 の仕様であると御理解いただけますよう、お願い申し上げます。

< 戻る >

13.音声読み上げ

グリッドコントロールの任意の箇所をクリックしてアクティブにした位置から音声による読み取り結果の読み上げが可能です。マークシートの実際のマークと読み取り結果の照合や、入力した正解が正しいかどうか等の確認にご使用ください。読み上げ速度も設定可能です。

< 戻る >

14.正解・配点・観点別評価の区分の入力と保存

採点を実行する前に、採点に必要な情報を入力し、保存します。

「配点」をチェックすると入力が可能になります。

(マークシート用採点情報の入力実行時は)「編集」をチェックしないと値を入力できません(デフォルト設定で「チェックあり」になっています)。

合計点等は自動計算され、表の上に表示されます。

必要なすべての値を入力したら採点に必要な情報を保存します。上の図にある保存ボタンをクリックします(既存のファイルがある場合、上書き確認のメッセージが表示されます)。

【採点情報の複写方法】

マークシートの設定同様、採点情報も同一の試験を行った他のクラスに複写して利用できます。

複数クラスに複写する場合は、Ctrl キーを押しながらフォルダをクリックしてください。

1A の採点情報を 1B, 1C に複写する場合の例です。

< 戻る >

15.成績一覧表、正答率一覧表の作成と印刷

旧版では別プログラムだった成績一覧表の作成を MS_Reader 内できるようにしました。また、併せて旧版では出来なかった正答率一覧表の作成や印刷も可能としました。さらに、旧版と比較した場合、いずれの処理も高速に実行できます。

成績一覧表のサンプルです(成績はデタラメです)。

正答率一覧表のサンプルです(こちらも適当です)。

< 戻る >

16.採点結果通知シートの作成と印刷

受験者に配布する個別採点結果通知シートの作成と印刷が可能です。マークシート画像上に採点結果、配点、観点別評価の区分、正答・正解を描画し、さらに任意の位置に合計点他を描画、採点結果通知シートとして印刷できます。

「調整」をチェックして作業を開始します。

赤い枠内にチェックを入れるとよろしいのではないか?思います。

【印刷プレビューの表示】

印刷プレビュー

【印刷の実行】

○:正答・正解 △:部分点有り ×:誤答・不正解 K1, K2:観点別評価の区分

【合計点表示例】

合計点他は任意の位置に

【採点結果通知シートのサンプル】

不正解であった場合は、正解マークの上に正解の選択肢番号を描画

< 戻る >

17.まとめ

・名称:MS_Reader V3(完全無料のマークシートリーダー)
・超高速読取り:My PC では 約 32000 マーク/秒
・極軽量:本体わずか4MB
・手書き答案のデジタル採点機能付き(横書き&縦書き両形式答案に対応)
・観点別評価に対応
・成績及び正答率一覧表、採点・配点・正解マーク&得点合計&順位付き採点結果通知の作成&印刷
・CSV出力
・音声読み上げ
・答案画像の傾き補正
・マークシート作成ソフトも同梱
・動作保証一切なし、サポートなし、バグあるかも?
・完全自己責任のもとでのみ使用可能です。

< 戻る >

18.お願いとお断り

このサイトの内容を利用される場合は、自己責任でお願いします。記載した内容(プログラムを含む)を利用した結果、利用者および第三者に損害が発生したとしても、このサイトの管理者は一切責任を負えません。予め、ご了承ください。

< 戻る >

MS_Reader V3(完全無料のマークシートリーダー・超高速読取り・極軽量本体わずか4MB・手書き答案のデジタル採点機能付き=横書き&縦書き両形式答案に対応・観点別評価対応・成績一覧表、正答率一覧表、採点・配点・正解マーク&得点合計&順位付き返却用答案の作成と印刷・CSV出力・音声読み上げ・答案画像の傾き補正・マークシート作成ソフトも同梱・動作保証一切なし・サポートなし・バグあるかも?・完全自己責任のもとでのみご使用いただけます)

1クラス分のマークシート読み取りに5分を要したバージョン1、Python 用の OpenCV を使用してやや高速化できた反面、容量が激増、WindowsのDLLチェックのため起動が遅く、動作が重かったバージョン2、このままでは死んでも死にきれないと 2025 年秋から Windows 用 OpenCV を利用したバージョン3の制作に着手。世に誰一人その完成を待ってくださる方もいらっしゃいませんが、2026年、春、ついに出来ました☆ 僕の夢のカタチ MS_Reader V3 です。

【もくじ】

1.推奨動作環境
2.サンプル画面
3.プログラムのダウンロード
4.お願いとお断り

1.推奨動作環境

長すぎるタイトルに書けなかったこともご承知おきください。以下、推奨動作環境です。

OS:開発したのは Windows11 25H2 です(Windows11以外では動作検証しておりません)。
CPU:はやければ、はやいほどイイです!
GPU:深層学習とか、興味ありますし、したいけど、出来ません!!!・・・ので不要です。
搭載メモリ:16GB以上を推奨(8GBの場合、B4サイズ以上の答案100枚対応が困難な見込み)
画面解像度:1366×768を推奨(アイコンが小さいので超高解像度のディスプレイには不向きです)
マウス:必須です。画面をタッチして使うことを一切想定しておりません。
特徴点:このプログラムで扱うマークシート・答案は、左上隅に特徴点 ■■■ が必要です。

2.サンプル画面

マークシートリーダー実行時の画面
手書き(横書き)答案採点時の画面
手書き(縦書き)答案採点実行時の画面

3.プログラムのダウンロード

今回の記事でご紹介した マークシートリーダー(マークシートメーカーも同梱)のプログラム一式を以下からダウンロードできます。なお、ダウンロードとご使用にあたっては、免責事項及び使用条件への同意が必要です。免責事項及び使用条件の詳細は付属の Readme.txt をご覧ください。なお、本ソフトウェアは OpenCV 2.4.13 (3-clause BSD License)及び Delphi-OpenCV を使用しています。OpenCV 2.4.13 のライセンスの詳細については、マークシートリーダーのフォルダに同梱した LICENSE 文書をお読みください。また、Delphi-OpenCV のライセンスの詳細については、こちらもマークシートリーダーのフォルダに同梱した MPL-1.1.txt をお読みください。

アプリケーション起動時に『このアプリケーションを実行するには、「Visual C++ v14 Redistributable (x86)」が必要です。Microsoft の公式サイトから最新版をインストールしてください。』というメッセージが表示され、アプリケーションを起動できない場合、アプリケーションが利用しているDLLファイルがお使いのシステムにインストールされていません。下記URLより、Microsoft公式の再頒布パッケージ(vcredist_x86.exe)の最新版をダウンロードし、お使いのシステムにインストールしてください。なお、マークシートリーダーの操作方法の詳細については、付属のご案内をご参照ください。

https://www.microsoft.com/ja-jp/download/details.aspx?id=53587

追記(20260405)

Windows の OpenCV は Visual C++ でビルドされており、そのビルドに使われた特定バージョンのVisual C++ ランタイム DLL がシステムフォルダに存在しない場合、OpenCV が起動できないため、vcredist でその DLL を所定の場所にインストールする必要があります。

MS_Reader V3 のダウンロードは、以下のリンク先から行ってください。

MS_Reader V3 のマークシート読み取り&デジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

MS_Reader V3 の付属の機能を利用した、手書き答案のデジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

MS_Reader V3 の付属の機能を利用した、マークシートと手書き答案の併用型デジタル採点の実施方法は、当 Blog 次の記事をご参照ください。

同梱のマークシートメーカーは PDF ファイルの出力に Skia を使用しています。Skia のライセンスは MIT ライセンスです。このライセンスの詳細につきましては、マークシートメーカーのフォルダに同梱した Skia4Delphi_and_Skia_LICENSE.txt をご覧ください。マークシートメーカーの使い方の詳細については、当 Blog の過去記事をご参照ください。

4.お願いとお断り

このサイトの内容を利用される場合は、自己責任でお願いします。記載した内容(プログラムを含む)を利用した結果、利用者および第三者に損害が発生したとしても、このサイトの管理者は一切責任を負えません。予め、ご了承ください。