파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!)

admin | | 조회 5


[주요 목차]

라이브러리 불러오기와 OCR 기본 설정

이미지 텍스트 추출·번역 함수 만들기

Streamlit 웹앱 UI와 실행까지


안녕하세요, 후배님들! 파이썬으로 나만의 이미지 식별 웹앱을 만들고 싶으신가요? 설치 없이 바로 실행되는 스트림릿(Streamlit) 기반 OCR 웹앱을 처음부터 끝까지 따라 해보려는 분들이 많으실 거예요. 이번 글에서는 영상에서 다룬 코드를 그대로 따라 치는 게 아니라, 왜 이런 구조로 짜는지, 실무에서 자주 만나는 문제와 해결 팁까지 함께 담았어요. 파이썬 이미지 식별 웹앱을 만들면서 OCR부터 번역까지 한 번에 처리하는 방법을 차근차근 알아볼게요. 읽고 나면 여러분도 바로 로컬에서 실행할 수 있을 거예요.


파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) - 주요 포인트 1 - 파이썬파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) · 주요 포인트 1

라이브러리 불러오기와 OCR 기본 설정

영상 초반에 가장 먼저 하는 작업이 라이브러리 임포트예요. EasyOCR, Pillow, googletrans, Streamlit을 한 번에 불러오고, 폰트 경로와 OCR 언어를 미리 지정해 두는 부분이죠.

이때 중요한 건 절대경로를 os.path로 안전하게 처리하는 거예요. C드라이브 안에 autcode 폴더를 만들고, 그 안에 malgun.ttf 같은 한글 폰트를 넣어두면 나중에 에러가 줄어요.

EasyOCR 객체를 만들 때는 gpu=False로 시작하는 걸 추천해요. 노트북이라면 GPU가 없거나 CUDA가 제대로 설치되지 않은 경우가 많아서, 처음엔 CPU 모드로 테스트하는 게 안전합니다.

언어는 ko+en으로 지정하면 한글과 영문을 동시에 인식할 수 있어요. 이렇게 기본 설정을 마치면 다음 함수를 정의할 때 훨씬 깔끔해집니다.

파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) - 실전 화면 2 - 파이썬파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) · 실전 화면 2

이미지 텍스트 추출·번역 함수 만들기

두 번째로 중요한 부분이 read_text와 translate_text 함수예요. read_text 함수는 EasyOCR reader로 이미지를 읽고, 인식된 글자를 문자열로 반환합니다.

여기서 try-except를 넣으면 인식 실패 시 빈 문자열이라도 반환해서 프로그램이 멈추지 않아요.

translate_text 함수에서는 googletrans Translator 객체를 만들고, for문으로 각 텍스트를 순회하면서 destination='ko'로 번역합니다.

번역에 실패하면 원본 텍스트를 그대로 쓰도록 except 구문을 넣는 게 실전 팁이에요. 결과는 리스트에 (번역된 텍스트) 형태로 저장하면 나중에 Streamlit에서 출력하기 편합니다.

이 두 함수만 잘 만들면 이미지 속 글자를 자동으로 한글로 바꾸는 핵심 로직이 완성돼요.

파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) - 실전 화면 3 - 파이썬파이썬으로 자동 이미지 식별 웹앱 만들기 (완전 기초부터!) · 실전 화면 3

Streamlit 웹앱 UI와 실행까지

마지막 단계는 메인 함수에서 Streamlit UI를 구성하는 거예요. st.title로 제목을 넣고, st.file_uploader로 사용자가 이미지를 올릴 수 있게 합니다.

파일이 업로드되면 임시 폴더를 os.makedirs(exist_ok=True)로 만들고, 업로드된 파일을 그 경로에 저장해요.

그다음 st.columns(2)로 화면을 좌우로 나누고, 왼쪽에는 원본 이미지, 오른쪽에는 번역 결과를 보여줍니다.

st.spinner로 “문자를 인식하고 번역 결과를 불러오고 있습니다” 메시지를 띄우면 사용자 경험이 훨씬 좋아져요.

마지막으로 if name == "main": main()으로 실행하면 터미널에서 streamlit run autcode_ocr.py 명령어로 웹앱이 열립니다.

에러가 날 때는 주로 리스트·튜플 구조가 맞지 않거나 폰트 경로 문제인 경우가 많아요. 한 단계씩 print로 확인하면서 디버깅하면 금방 해결됩니다.


[자주 묻는 질문]

OCR 결과가 제대로 안 나올 때는 어떻게 해야 하나요?

가장 흔한 원인은 이미지 해상도가 낮거나, 한글 폰트 경로가 잘못 지정된 경우예요. 이미지 해상도를 300dpi 이상으로 올리고, malgun.ttf 같은 시스템 폰트의 정확한 절대경로를 확인해 보세요. 또한 EasyOCR reader를 만들 때 gpu=False로 시작하면 CPU 환경에서도 안정적으로 동작합니다.

구글 트랜스 번역이 자꾸 에러가 나요.?

googletrans 라이브러리는 공식 지원이 중단된 상태라 가끔 429 에러가 발생해요. 이때는 try-except로 원본 텍스트를 반환하게 처리하거나, google-cloud-translate API로 교체하는 걸 추천합니다. 간단한 테스트라면 time.sleep(1)을 넣어 요청 간격을 주는 것도 도움이 됩니다.

Streamlit 웹앱을 배포하려면 어떤 방법이 좋을까요?

로컬 테스트가 끝났다면 Streamlit Community Cloud나 Hugging Face Spaces에 올리는 게 가장 쉽습니다. requirements.txt에 streamlit, easyocr, pillow, googletrans==4.0.0rc1을 적고, GitHub에 올리면 1~2분 만에 공개 URL이 생성돼요. GPU가 필요한 경우는 Railway나 Render 유료 플랜을 고려해 보세요.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0

jpg/png/gif/webp/zip · 최대 100MB · 10개

리뷰

0
0건의 리뷰
5★
0
4★
0
3★
0
2★
0
1★
0
0/5000
아직 작성된 리뷰가 없습니다. 첫 리뷰를 남겨주세요!