Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pytesseract | |
| from PIL import Image | |
| import cv2 | |
| import numpy as np | |
| import os | |
| from paddleocr import PaddleOCR, draw_ocr | |
| from PIL import Image | |
| import gradio as gr | |
| import torch | |
| def ocr_image(image): | |
| """Perform OCR on an image and classify logo.""" | |
| # Convert image to grayscale | |
| # gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
| # # Perform OCR on the grayscale image | |
| # text = pytesseract.image_to_string(gray) | |
| # # Classify logo based on presence of space in 'amazonbasics' | |
| ocr = PaddleOCR(use_angle_cls=True, lang=lang,use_gpu=False) | |
| result = ocr.ocr(image, cls=True)[0] | |
| # image = Image.open(img_path).convert('RGB') | |
| boxes = [line[0] for line in result] | |
| txts = [line[1][0] for line in result] | |
| text = '\n'.join(txts) | |
| if 'amazon basics' in text.lower(): | |
| return 'New Logo' | |
| elif 'amazonbasics' in text.lower(): | |
| return 'Old Logo' | |
| else: | |
| return "NA" | |
| # Streamlit interface | |
| st.title('Logo Classifier') | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption='Uploaded Image.', use_column_width=True) | |
| st.write("") | |
| st.write("Classifying...") | |
| # Convert the image to an OpenCV array (numpy array) | |
| open_cv_image = np.array(image) | |
| # Convert RGB to BGR | |
| open_cv_image = open_cv_image[:, :, ::-1].copy() | |
| # Perform OCR and classify logo | |
| logo_type = ocr_image(open_cv_image) | |
| # Display classification result | |
| st.write(f"Logo Type: {logo_type}") |