The following technologies will be used for the development of the LangLens web-app
LangLens' object detection mode will be powered by YOLOv5's family of machine learning algorithms specifically designed for object detection in real-time. It is based in Python which is highly compatible with our backend framework and is also free to use which follows the environment constrain imposed by our client.
LangLens' text recognition mode will be powered by the python wrapped version of Google's Tesseract OCR engine, pyTesseract, that utilizes deep learning models pretrained on language-specific data for text recognition and extraction.
Django, a free web development framework based in Python and HTML, will be used for the backend of the LangLens application which includes the processes for optical character recognition and object detection, as well as the storage and retrieval of the result images to be displayed to the user with clickable bounding boxes linked to the Learning Page (CollinsDictionary.com)
Bootstrap, a highly responsive, mobile-first, web application framework, will be used for LangLens' frontend development which includes the UIs for Text Mode, Object Mode, and the Homepage. Bootstrap uses HTML, CSS, and JavaScript and is highly recommend to use with Django for mobile web-app development.
GoogleTrans API is free programmatic interface based in Python that provides dynamic translations of arbitrary strings into a wide variety of available languages. We will be using this specfically within the Text Mode backend to translate the OCRed text into the user's selected target language of Spanish, French, English, Korean, or Simplified Chinese.
Python will be used as the main programming language for the LangLens application. A multitude of Python's most popular libraries will also be used throughout the application to support the functions of the detection engines. These libraries include but are not limited to: Pytorch, PILLOW, and Numpy.
OpenCV is free library of real-time optimized computer vision tools based in Python. It is used within our application for all image preprocessing steps for both detection engine image input to obtain the highest achievable accuracy for detection results.