Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADMIS Captcha OCR Extension

這是一個用在 國家衛生研究院-行政作業資訊整合系統 的 Chrome / Edge Manifest V3 擴充功能。版本 1.2.2 會在 https://admis.nhri.edu.tw/ 登入頁辨識 5 位數字驗證碼,切割正常且辨識出五個數字時會自動填入。每字信心均達 95% 顯示綠色,低於 95% 也會填入並維持黃色確認提示。

1.2.2 改為低於 95% 也填入候選答案,並保留黃色提示供您核對。95% 是提示顏色的門檻;切割異常時仍須人工填寫。下方 1.2.0 的評估數據使用當時的 99% 門檻。

1.1.1 保留與主筆畫左右對齊、上下接近的斷開筆畫,再從上、下兩端找裁切邊界,修正開頭被裁到的 2 遺失底部問題;不會補畫不存在的像素。22329 的首字信心由 45.57% 提升至 99.72%。

1.2.0 使用新增低信心樣本微調後的模型。原有測試組維持 20/20 正確;新增困難測試組由 18/20 提升為 20/20,17 張達自動填入門檻。新收集的 100 張有 82 張可自動填入(此數包含訓練資料)。仍維持逐字 99% 門檻。更新後須在擴充功能管理頁重新載入,並重新整理登入頁。

使用畫面

ADMIS Captcha OCR 使用畫面

專案用途

  • 減少登入 國家衛生研究院-行政作業資訊整合系統 時手動輸入驗證碼的時間。
  • 將 OCR 模型直接打包在擴充功能內,不需要連線到外部辨識服務。
  • 只針對 admis.nhri.edu.tw 網域啟用,避免在其他網站執行。
  • 在驗證碼下方顯示辨識狀態、結果與信心分數,方便確認是否需要手動修正。
  • 在登入頁按下 Enter 時,可直接觸發登入按鈕。

注意:此工具是輔助輸入用途。若辨識結果信心偏低,請以畫面上的驗證碼為準並手動確認。

1.1.0 修正右側雜訊造成中間兩字合併的問題,並保留使用者手動输入。圖片更換或相同 URL 重新載入時,舊推論不會填入。狀態列百分比是最低字元信心,並非實測正確率。

功能特色

  • 自動偵測 ADMIS 登入頁的 captcha 圖片。
  • 圖片更新或重新產生驗證碼時會自動重新辨識。
  • 透過 Canvas 前處理、數字切割與內建 dense neural network 模型進行辨識。
  • 辨識成功後會觸發 inputchangeblur 事件,讓頁面原本的 Knockout binding 可以同步取得欄位值。
  • 模型檔案本地載入,不上傳 captcha 圖片或登入資料。

專案結構

admis-captcha-extension/
  manifest.json
  popup.html
  docs/
    development.md
    images/
      admis-captcha-ocr-usage.png
  model/
    model.json
    group1-shard1of1.bin
    labels.json
    preprocessing.json
  src/
    content.js
    content.css
    fill-policy.js
    model-runner.js
    page-login-bridge.js
    preprocess.js

安裝方式

  1. 開啟瀏覽器擴充功能管理頁:
    • Chrome:chrome://extensions/
    • Edge:edge://extensions/
  2. 啟用「開發人員模式」。
  3. 點選「載入未封裝項目」。
  4. 選擇本專案資料夾:
admis-captcha-extension/
  1. 前往 https://admis.nhri.edu.tw/ 登入頁。
  2. 頁面載入驗證碼後,切割正常的五位數候選答案會自動填入;低於 95% 時顯示黃色提示,請核對原圖。

更新模型

請在相鄰 captcha-ocr-tfjs 專案執行 npm run evaluate -- --promotenpm run sync:extension,一起更新模型與共用前處理。不要只複製新模型而遺漏切割流程。

模型檔位於:

admis-captcha-extension/model/

需要包含下列檔案:

model.json
group1-shard1of1.bin
labels.json
preprocessing.json

更新後請回到瀏覽器擴充功能管理頁,按下 Reload / 重新載入,讓瀏覽器使用新的模型檔。

運作流程

  1. src/content.js 在 ADMIS 登入頁尋找 captcha 圖片與輸入欄位。
  2. src/preprocess.js 將 captcha 圖片轉為灰階、二值化、去除相對尺寸過小的雜訊,並檢查是否能合理切成 5 字。
  3. 每個數字會被正規化為 32x32 的模型輸入。
  4. src/model-runner.js 直接讀取 TensorFlow.js 匯出的權重檔,並以純 JavaScript 執行 dense network 推論。
  5. src/fill-policy.js 檢查圖片是否仍相同、手動輸入是否變動、切割品質,並以每字 95% 決定是否顯示黃色提示。
  6. 達門檻且輸入欄空白時自動填入;其餘顯示候選答案與人工填寫提示。原有輸入會保留。

開發與除錯

更多技術細節可參考 docs/development.md

若需要除錯,請在 https://admis.nhri.edu.tw/ 頁面開啟 DevTools,查看 Console 中以 [ADMIS Captcha OCR] 開頭的訊息。

限制

  • 目前模型標籤為 19,適用於 ADMIS 目前的 5 位數字 captcha 格式。
  • 若 ADMIS 頁面 DOM、captcha 圖片格式或驗證碼規則改變,可能需要調整 selector、前處理參數或重新訓練模型。
  • OCR 結果並非百分之百準確,登入前仍建議確認畫面上的辨識結果。

隱私說明

本擴充功能只在 https://admis.nhri.edu.tw/ 執行,captcha 圖片由瀏覽器本地讀取與辨識,不會傳送到外部伺服器。擴充功能不收集、不儲存、不上傳帳號、密碼或其他登入資料。

About

ADMIS captcha OCR Chrome/Edge extension

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages