{"id":16393310,"url":"https://github.com/olucaslopes/draw2text","last_synced_at":"2026-04-13T19:31:21.471Z","repository":{"id":156538092,"uuid":"620288494","full_name":"olucaslopes/Draw2Text","owner":"olucaslopes","description":"AI-powered drawing recognition app that uses advanced machine learning algorithms to detect numbers in drawing sketches","archived":false,"fork":false,"pushed_at":"2023-05-03T12:12:14.000Z","size":10573,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T19:19:51.836Z","etag":null,"topics":["cloudinary","computer-vision","deep-learning","digit-recognition","drawing-recognition","handwriting-recognition","image-classification","image-processing","image-segmentation","keras","keras-tensorflow","machine-learning","mnist","neural-networks","numpy","opencv","pandas","python","streamlit","tensorflow"],"latest_commit_sha":null,"homepage":"https://draw2text.streamlit.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olucaslopes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-28T11:51:25.000Z","updated_at":"2025-01-20T17:13:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"8544b829-5dc3-4298-9e93-68d354ab66f4","html_url":"https://github.com/olucaslopes/Draw2Text","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/olucaslopes/Draw2Text","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FDraw2Text","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FDraw2Text/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FDraw2Text/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FDraw2Text/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olucaslopes","download_url":"https://codeload.github.com/olucaslopes/Draw2Text/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FDraw2Text/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudinary","computer-vision","deep-learning","digit-recognition","drawing-recognition","handwriting-recognition","image-classification","image-processing","image-segmentation","keras","keras-tensorflow","machine-learning","mnist","neural-networks","numpy","opencv","pandas","python","streamlit","tensorflow"],"created_at":"2024-10-11T04:52:54.366Z","updated_at":"2026-04-13T19:31:21.464Z","avatar_url":"https://github.com/olucaslopes.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 👁 Draw2Text: AI-powered digit recognition app\n\n[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://draw2text.streamlit.app/)\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://draw2text.streamlit.app/\"\u003e\u003cimg src=\"img/Draw2Text-Demo.gif\" width=\"50%\" align=\"center\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nDraw2Text is an innovative web application that recognizes numbers and letters drawn by users in the canvas. It uses advanced machine learning algorithms, including computer vision and deep learning, to segment the drawn image, predict the digit/letter label, and display the result to the user. The app also enables users to provide feedback, which can be used to fine-tune the model for better accuracy in future predictions.\n\n## How it works\n\n1. The user draws a digit or letter on the provided canvas\n2. The app uses OpenCV, an open-source computer vision library, to segment the canvas in digits images\n3. The segmented image is then passed to a neural network created with Keras, which uses deep learning techniques to predict the digit label.\n4. The predicted label is then displayed to the user.\n5. The user can provide feedback to improve the model's accuracy in future predictions.\n\n```mermaid\n\ngraph TD\n    A[\"User Drawn Digit\"] --\u003e B[\"OpenCV Segmentation\"]\n    B --\u003e C[\"Keras Model\"]\n    C --\u003e D[\"Digit Label Prediction\"]\n    D --\u003e E[\"Display Predictions\"]\n    E --\u003e F[\"User Feedback for Future Tuning\"]\n    F --\u003e C\n```\n\n## Getting Started\n\nTo run the app locally, please follow these steps:\n\n1. Clone the repository\n\n```\ngit clone https://github.com/olucaslopes/Draw2Text.git\n```\n\n2. Install the required packages\n\n```\npip install -r requirements.txt\n```\n\n3. Run the app\n\n```\nstreamlit run app.py\n```\n\n## Technologies used\n- Cloudinary to Cloud Storage the drawn digits and user true labels feedback for future tuning\n- Streamlit for the front end\n- TensorFlow Keras for model development\n- Image Hashing to avoid duplicated images\n- OpenCV to image segmentation through contours\n- Pandas and Numpy for data manipulation\n\n## Model\nThe app uses a TensorFlow Keras Multi Layer Perceptron (MLP) model to predict the digits drawn.\n\n## Contact\n\nYou can find out more about me [on my Linkedin](https://www.linkedin.com/in/o-lucas-lopes)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folucaslopes%2Fdraw2text","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folucaslopes%2Fdraw2text","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folucaslopes%2Fdraw2text/lists"}