更新履歴¶
v4.5.1(2026年2月)— 安定化・性能改善・レポート整合性修正¶
v4.5.0 の K-means 認識とマークチェック機能を運用しながら見つかった、 GUI 安定性・表示性能・レポート整合性の課題を重点的に改善しました。
重要修正¶
- K-means HTMLレポートのクラスタ整合性修正: 画像ごとに独立実行される K-means のラベル差異(0/1 の反転)を、レポート集約時に正規化してから描画するように修正。
filled_ratioヒストグラムと PCA 散布図の「Marked / Empty」対応が実データと一致するよう改善 - マークチェック高速化(白さキャッシュ): OMR 実行時に設問単位の白さを計算し、
01_Results/whiteness_cache.jsonとして保存。マークチェック起動時は JSON を優先読み込みし、白さ順ソートの待ち時間を大幅短縮 - 選択肢カテゴリのレビューUI刷新: 「選択肢 n」カテゴリでは通常ページャーの代わりに 薄い解答 / 濃い解答 タブを表示。疑義が出やすい上下端サンプル(原則各100件)を即時レビュー可能に変更
GUI / UX 改善¶
- グリッド描画の安定化: 固定ページ(100件)+ 一括再接続描画の方針を継続し、大量データ時のメモリピークと描画揺れを抑制
- カテゴリ連動動作の明確化: ノーマーク一括ボタンはノーマーク選択時のみ表示、選択肢カテゴリではタブモードへ自動移行
- 操作ラベル改善: マークチェックの更新ボタンを「
xlsxに反映」から「データの更新(再読み込み)」へ変更し、実際の挙動(反映 + 再読み込み)と文言を一致
テスト¶
- GUI 契約テストを拡張し、以下を検証対象に追加
- 選択肢カテゴリタブの表示切替
- タブ初期状態(薄い解答)
- 更新ボタン文言
- 白さ JSON ローダーの読み込み整合性
- ローカル統合実行(2026-02)
tests/test_v45_gui_contract.py: 全件 pass- 主要 GUI/採点系の回帰テスト: pass
- フル実行では環境依存の Tcl/Tk 初期化失敗(
init.tcl不在)を 1 件確認(アプリロジック起因ではなく実行環境要因)
v4.5.0(2026年2月)— K-means マーク認識・グリッドビュー¶
マーク認識アルゴリズムに K-means クラスタリングを導入し、認識精度と安定性を向上させました。 マークチェック画面にはグリッド表示モードを追加し、大量のエラー修正を効率化しました。
新機能¶
- K-means マーク認識: 全マーク領域から4次元特徴量(filled_ratio, mean_inv_brightness, dark_pixel_ratio, std_inv_brightness)を抽出し、KMeans(K=2) クラスタリングで「マーク済み / 空白」を自動分類。従来の固定閾値方式に比べ、画像ごとの濃淡差に強い安定した認識を実現
- 認識モード選択: GUI に「認識方式」コンボボックスを追加。K-means(デフォルト)と従来の閾値方式をワンクリックで切り替え可能
- K-means レポート: K-means 認識完了後、filled_ratio ヒストグラムと PCA 散布図を含むインタラクティブな HTML レポートを自動生成。認識結果の妥当性を視覚的に確認可能
- マークチェック グリッド表示: マークチェック画面に「グリッド表示」トグルボタンを追加。エラー項目をサムネイルカード一覧で表示し、エラー種別でフィルタリング可能
- 一括 -1 設定: グリッド表示モードで、未チェックの NoMark 項目をまとめて -1(無回答)に設定するバッチ操作機能を追加
内部改善¶
- バージョン文字列の一元管理:
constants.APP_VERSIONに集約し、GUI・ダイアログ・docstring で参照 - 閾値方式フォールバック: K-means モードでもサンプル数が50未満の場合は自動的に従来の閾値方式にフォールバック(後方互換性を維持)
- テスト追加: K-means エンジンの単体テスト17件を追加(特徴量抽出、クラスタリング精度、レポート生成、後方互換性)
v4.4.1(2026年2月)— マークチェックバグ修正¶
v4.4 のマークチェック機能で発見されたバグを修正しました。
バグ修正¶
- 正答枠が二重表示される問題: 先読み済み画像に既に描画された正答枠が、表示時に再度描画されて二重になる問題を修正
- 正答枠が表示されない場合がある問題: 二重
fit_image_to_displayによる座標ずれで描画が画像外になる問題を修正 - キーボードショートカットのエラー: 修飾キー(Shift, Ctrl 等)押下時に
ValueErrorが発生する問題を修正
v4.4(2026年2月)— 視認性改善・マークチェック効率化¶
記述式採点のプレビュー画質と、マークチェック画面の操作効率を改善しました。
新機能¶
- 記述式採点 クリーンプレビュー: 記述式採点画面のプレビューに、マーク認識枠(BOXED)が描画されていないクリーンな画像を表示するようにしました。手書き文字の視認性が向上します
- マークチェック 正答枠表示: マークチェック画面で、正答(Answer Key)に該当する選択肢の位置に赤色の点線枠を表示するようにしました。どの選択肢が正しいのかが一目で分かり、修正作業が効率的になります
UX改善¶
- Answer Key ダイアログの統合: OMR認識完了後に表示されていた2つのダイアログ(Answer Key入力案内 + 処理完了通知)を1つのダイアログに統合。操作フローがシンプルになりました
- 再実行時のダイアログ抑制: 正答データが入力済みの状態で閾値変更などにより再実行した場合、Answer Key入力案内ダイアログが不要に表示される問題を修正
- エキスパート向けフロー: Answer Key入力案内で「後で入力する」を選択した場合、正答データパスの自動設定を行わないようにしました(手動で管理するユーザー向け)
v4.3(2026年2月)— 安定性・ユーザビリティ向上¶
配布版(EXE)の安定性と、採点フローのユーザビリティを改善しました。
バグ修正¶
- EXE実行時の多重起動問題:
multiprocessing.freeze_support()の追加により、バックグラウンド処理実行時に誤ってアプリが多重起動し、大量のホーム画面が表示される問題を修正 - ログ機能の安定化: GUIモード(コンソールなし)で実行した際に
sys.stdoutがNoneとなり発生していたAttributeErrorを修正 - バックグラウンド処理の改善: 枠描画処理時の出力処理を見直し、EXE環境での安定性を向上
機能改善¶
- Answer Key 入力ガイド: マーク認識完了時、
answer_key.xlsxが新規作成(未入力)状態の場合にカスタムダイアログを表示し、正答・配点の入力手順をステップバイステップで案内。保存フォルダを直接開くボタンも搭載
v4.2(2026年2月)— ドキュメント整備・配布準備¶
ドキュメントの全面改訂と配布(exe)準備を行ったリリースです。
ドキュメント¶
- MkDocs によるドキュメントサイトの構築・公開
- ユーザー向けマニュアルの全面刷新(ステップバイステップ化)
- 開発者ガイドの追加
- スクリーンショットの再生成
システム¶
- GitHub Actions による自動ビルド・リリース
- ダウンロード数の日次自動集計
v4.1(2026年2月)— 初回公開リリース¶
採点侍の最初の公開バージョンです。
採点モード¶
- マーク採点モード: Mark2 形式のマークシートを OMR で自動読み取り・採点
- 記述式採点モード: スキャン画像から採点領域を指定し、○×△で手動採点
- マーク+記述 混合モード: マーク式と記述式を 1 つのワークフローで統合処理
OMR(光学マーク認識)¶
- コーナーマーカー検出 + 射影変換による自動傾き補正
- 二値化 + 面積比率によるマーク有無判定
- K-means + 大津の二値化法による閾値キャリブレーション
- 閾値の手動微調整 GUI
マークチェック¶
- 未マーク・ダブルマーク自動検出
- GUI での 1 件ずつの確認・修正
記述式採点¶
- マウスドラッグによる採点領域設定
- ○×ボタンによる判定 + 数字キーで部分点入力
- 背景色フィードバック(正解: 緑 / 不正解: 赤)
- 1 枚ずつ表示モード / グリッド一覧モード
- 未採点フィルタ
出力・レポート¶
- 採点済み答案画像(○×マーク・得点描画)
- 生徒別成績サマリー Excel
- 試験統計 Excel
- CTT 分析 PDF(α係数, P値, D値, I-T相関)
- R エクスポート(exametrika 用)
システム¶
- PDF 入出力対応(PyMuPDF)
- セッション保存・復元
- パス修復ダイアログ
- 氏名トリミング
- クラッシュログ記録
- 描画設定カスタマイズ
- Windows 11 対応
- 単体 exe 配布(インストール不要)