Spaces:
Sleeping
Sleeping
File size: 2,086 Bytes
29b5e9d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import gradio as gr
import pytesseract
from PIL import Image
# OCR λ° νκ° ν¨μ μ μ
def evaluate_solution(image):
"""
μκΈμ¨ μ΄λ―Έμ§λ₯Ό λ°μ OCRλ‘ ν
μ€νΈλ₯Ό μΆμΆνκ³ ,
μ±μ·¨κΈ°μ€μ λ°λΌ νκ° λ° νΌλλ°±μ μ 곡νλ ν¨μ.
"""
# OCRλ‘ μ΄λ―Έμ§μμ ν
μ€νΈ μΆμΆ
extracted_text = pytesseract.image_to_string(image, lang="kor")
# μ΄κΈ° μ μ λ° νΌλλ°± μ€μ
score = 0
feedback = []
# νκ° κΈ°μ€ μμ (6νλ
μν μ±μ·¨κΈ°μ€ κΈ°λ°)
if "νΌν© κ³μ°" in extracted_text:
feedback.append("νΌν© κ³μ° νμ΄κ° ν¬ν¨λμμ΅λλ€.")
score += 30
else:
feedback.append("νΌν© κ³μ° νμ΄κ° λλ½λμμ΅λλ€.")
if "μ½μμ λ°°μ" in extracted_text:
feedback.append("μ½μμ λ°°μ κ΄λ ¨ νμ΄κ° ν¬ν¨λμμ΅λλ€.")
score += 30
else:
feedback.append("μ½μμ λ°°μ κ΄λ ¨ νμ΄κ° λλ½λμμ΅λλ€.")
if "λΆμμ λ§μ
κ³Ό λΊμ
" in extracted_text or "μμμ κ³±μ
κ³Ό λλμ
" in extracted_text:
feedback.append("λΆμ λλ μμ μ°μ°μ΄ ν¬ν¨λμμ΅λλ€.")
score += 40
else:
feedback.append("λΆμ λλ μμ μ°μ°μ΄ λλ½λμμ΅λλ€.")
# κ²°κ³Ό λ°ν
return {
"μΆμΆλ ν
μ€νΈ": extracted_text,
"μ μ": score,
"νΌλλ°±": "\n".join(feedback)
}
# Gradio μΈν°νμ΄μ€ ꡬμ±
with gr.Blocks() as demo:
gr.Markdown("# μ΄λ±νκ΅ 6νλ
μν λ¬Έμ νμ΄ νκ° μμ€ν
")
with gr.Row():
image_input = gr.Image(label="μκΈμ¨ μ΄λ―Έμ§ μ
λ‘λ", type="pil")
output_text = gr.Textbox(label="μΆμΆλ ν
μ€νΈ")
output_score = gr.Number(label="μ μ")
output_feedback = gr.Textbox(label="νΌλλ°±")
submit_button = gr.Button("νκ°νκΈ°")
submit_button.click(
evaluate_solution,
inputs=image_input,
outputs=[output_text, output_score, output_feedback]
)
# μ€ν
demo.launch()
|