Spaces:
Running
Running
Commit History
-
Upload 33 files Running
Verified signaturea801bc2 -
Upload 33 files
Verified signatured4b4554 -
Upload 27 files
Verified signature4596576
-
Update app.py
Verified signature0977554 -
Upload 13 files
Verified signature511f7f8
-
Upload template.jpg
Verified signaturee97977b -
Delete template.jpg
Verified signature942cfab -
Update README.md
Verified signaturebf7dd26 -
Update app.py
Verified signature126c5e2 -
Update requirements.txt
Verified signature7f20859 -
Update README.md
Verified signaturef93acc3 -
Update README.md
Verified signature11d4c61 -
Update app.py
Verified signature54ad522 -
Update packages.txt
Verified signatureed03f96 -
Update README.md
Verified signature19705be -
Update requirements.txt
Verified signaturea59f2f7
-
Delete template (8).jpg
Verified signature22ed45a -
Upload template.jpg
Verified signature486ad38
-
Upload template (8).jpg
Verified signatured11ed62 -
Delete template.jpg
Verified signature94433d1 -
Update app.py
Verified signaturec0829cd -
Update app.py
Verified signature0af0b16 -
Update app.py
Verified signature圖片快取分流: 程式在執行第一輪掃描時,會主動把「去完拍照陰影的白底圖(cache_r1_prep)」和「第一輪剛畫上對齊紅圈的圖(cache_r1_checked)」備份下來。最後根據你在網頁下拉選單的選擇,將對應的圖片推送到前端 gr.Image 視窗中展示。 API 零受限保護: 由於 Python 函數定義中使用了 enable_jitter=True 作為預設引數,當第三方程式透過 API 發送請求且只傳入 image_file 和 template_content 時,微調印刷功能會自動保持「強制開啟」狀態,網頁上的勾選按鈕只會改變網頁點擊時的行為,兩者完美並存!01a91b1 -
💡 這次改動為你解決了什麼? 智能光照均勻化(remove_photo_shadows_and_glare): 新代碼在圖片送進 OMRChecker 前,會先利用 OpenCV 計算出整張照片的「環境光亮度地圖」。然後用原圖去除以這張亮度地圖。這樣一來,不管你的照片是上方亮下方暗、還是中間有手機倒影,紙張的底色都會被強制算成純白色,只有真正的鉛筆劃記才會保持黑色。這能直接解決因為陰影導致的「空白題變全選」! 深域核心探測(Deep Shrinkage): 我們把 shrink_w 提高到了 22 像素,shrink_h 提高到 12 像素。這相當於把原本 60x30 的氣泡感應格,大幅縮小成只有方框正中央的一小塊區域。就算手機拍照有點斜、或者對齊稍微歪了一點,探測點也絕對不會碰到 DSE 答題卡原本印刷的 [ A ] 外框黑線,從源頭切斷了外框溢入導致的錯誤。 優化多數決安全機制(Smart Voting): 在最後的決策投票中,系統會檢查多輪掃描的狀態。如果某一題在大部分的極端模式下都是空白,只有在某一輪被判定有答案,系統會聰明地識別出那是「雜訊干擾」,自動將其恢復為真正的「空白(—)」。
Verified signature68cb021 -
Upload template.jpg
Verified signature8b2be8b -
Delete template.png
Verified signature141313c -
Upload template.png
Verified signature356d32c -
Delete template.jpg
Verified signaturef251024
-
Update app.py
Verified signature為了解決因印刷偏差導致答題卡區塊發生整體上下左右輕微偏移(Jitter/Translation Misalignment)的問題,最優雅且強健的解法是直接利用你現有的「多重採樣與投票融合 (Ensemble Voting)」機制!我們可以將偏移量($dx, dy$)封裝進採樣策略(sensitivity_profiles)中。在每一輪掃描時,自動對 template.json 裡的 fieldBlocks 座標起點(origin)進行微幅的像素級別平移。再讓多數決投票演算法排除因偏離而識別失敗的雜訊,融合成最正確的答案。同時,我幫你修正了原程式碼中的一個隱藏 Bug:原來的程式碼將題數死守在 range(1, 37)(共 36 題),但你的香港 DSE 答題卡範本(template.json)實際上包含了 100 題。efc3463
-
Update app.py
Verified signature72d338b -
這裡為您將動態 OpenAPI 容錯補丁、多重採樣與多數決決策融合(Ensemble Voting) 的核心閱卷邏輯,以及支援 API 呼叫的 Gradio 規格(允許傳入 Template JSON) 完美融合。 此版本的設計重點: 介面與功能保持一致:保留了您最核心的 3 輪不同靈敏度(Level 1~3)交叉掃描、分歧偵測、多數決投票與 4 欄式 Markdown 答案摘要輸出。 完美相容 API 呼叫:將 template_content 作為第二個輸入參數,讓 Google Apps Script (GAS) 呼叫時能動態帶入 DSE 考卷的 JSON 結構;若手動在網頁端操作時忘記填寫,程式會自動降級(Fallback)自動撈取當前目錄下的 template*.json 檔案,確保網頁端不用手動貼上 JSON 也能一鍵閱卷! 融合 OpenAPI 容錯補丁:保留了頂部的 Gradio 布林值解析崩潰補丁,確保 API 管道暢通無阻。
Verified signatureb02525f -
根本原因: 當 Hugging Face 雲端環境或 OMRChecker 的依賴項自動更新了 FastAPI 或 Pydantic 時,新版的 OpenAPI 標準會將 JSON Schema 中的 additionalProperties 欄位輸出為布林值(True 或 False)。 然而,目前該版本的 Gradio 內部解析器硬性假設 additionalProperties 一定是一個「字典(Dict)」,並直接執行了 "const" in schema 檢查。當它讀到布林值時,就會直接拋出 TypeError 導致整個 Web 服務在初始化時 500 崩潰。 🛠️ 解決方案:套用「猴子補丁 (Monkey Patch)」 由於我們無法直接修改 Hugging Face 伺服器內建的 gradio_client 套件原始碼,最完美、最優雅的解法就是在您的 app.py 頂部加入一段動態攔截補丁。當 Gradio 試圖解析布林值的 Schema 時,由補丁提前攔截並安全回傳,防止其崩潰。
Verified signatureaa904f2 -
Update app.py
Verified signature949ad8f
-
Update app.py
Verified signatured09add2 -
Update app.py
Verified signature4bbe0e3 -
Upload template.json
Verified signature4e69ff9 -
Update app.py
Verified signaturece0e348 -
Upload template.jpg
Verified signature042d6cb -
Update app.py
Verified signaturefbc5fca
-
Update app.py
Verified signature89f8e2e -
Update app.py
Verified signature967fa6c -
Update app.py
Verified signature41de365 -
Update app.py
Verified signaturee771198 -
Update app.py
Verified signature854041f -
Update app.py
Verified signaturebb1f474 -
Delete template.json
Verified signaturee186f80 -
Delete config.json
Verified signaturedc4ff5c -
Update app.py
Verified signaturebb5a8cf -
Update app.py
Verified signature5213eea -
Update app.py
Verified signature8a2b1e8