This project is a web-based prototype that demonstrates Optical Character Recognition (OCR) functionality. The application allows users to upload images containing both Hindi and English text, extracts the text using the General OCR Theory (GOT) model, and provides a basic keyword search feature.
Due to the GOT model's requirement for GPU support, the application must be run in an environment with a GPU, such as Kaggle notebooks, where a P100 GPU is used.
To run this project locally or in a notebook environment, you will need:
git clone https://github.com/yourusername/ocr-webapp.git
cd ocr-webapp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Upload the project files to a Kaggle notebook. Ensure that GPU is enabled in the notebook settings. Execute the notebook cells to start the backend OCR processing. If running locally, make sure that your system has a compatible GPU and the required CUDA libraries are installed.
streamlit run app.py
Project Structure
├── app.py # Streamlit app for the frontend
├── backend.py # Handles the backend OCR processing
├── notebook.ipynb # The notebook used in a GPU environment
├── requirements.txt # Required dependencies
├── README.md # Project documentation
app.py: The frontend of the web application using Streamlit.
backend.py: Contains all the OCR model integration and text extraction logic.
requirements.txt: Lists all the required Python packages and dependencies.
Deployment Notes Important: The GOT OCR model only works with GPU support. As a result, the application may not function correctly on a Streamlit deployment that does not provide GPU support. For a working demonstration, please refer to the Kaggle Notebook.
The Streamlit version of the app is accessible at the following URL, but it may not work fully due to the lack of GPU: Live Demo.
To test the functionality with GPU, please use the Kaggle notebook link, which has been configured with GPU support.
Implement fallback logic for non-GPU environments. Explore other OCR models that support CPU inference. Add support for additional languages and more complex search functionalities.
This project is licensed under the MIT License. See the LICENSE file for more details.
A demo on the working of the application can be viewed here
For any questions or issues, feel free to raise an issue or contact me via email at [email protected].
This project is a web-based prototype that demonstrates Optical Character Recognition (OCR) functionality. The application allows users to upload images containing both Hindi and English text, extracts the text using the General OCR Theory (GOT) model, and provides a basic keyword search feature.
Due to the GOT model's requirement for GPU support, the application must be run in an environment with a GPU, such as Kaggle notebooks, where a P100 GPU is used.
To run this project locally or in a notebook environment, you will need:
git clone https://github.com/yourusername/ocr-webapp.git
cd ocr-webapp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Upload the project files to a Kaggle notebook. Ensure that GPU is enabled in the notebook settings. Execute the notebook cells to start the backend OCR processing. If running locally, make sure that your system has a compatible GPU and the required CUDA libraries are installed.
streamlit run app.py
Project Structure
├── app.py # Streamlit app for the frontend
├── backend.py # Handles the backend OCR processing
├── notebook.ipynb # The notebook used in a GPU environment
├── requirements.txt # Required dependencies
├── README.md # Project documentation
app.py: The frontend of the web application using Streamlit.
backend.py: Contains all the OCR model integration and text extraction logic.
requirements.txt: Lists all the required Python packages and dependencies.
Deployment Notes Important: The GOT OCR model only works with GPU support. As a result, the application may not function correctly on a Streamlit deployment that does not provide GPU support. For a working demonstration, please refer to the Kaggle Notebook.
The Streamlit version of the app is accessible at the following URL, but it may not work fully due to the lack of GPU: Live Demo.
To test the functionality with GPU, please use the Kaggle notebook link, which has been configured with GPU support.
Implement fallback logic for non-GPU environments. Explore other OCR models that support CPU inference. Add support for additional languages and more complex search functionalities.
This project is licensed under the MIT License. See the LICENSE file for more details.
A demo on the working of the application can be viewed here
For any questions or issues, feel free to raise an issue or contact me via email at [email protected].