{"id":15902277,"url":"https://github.com/rom1504/tensorflow_captcha_solver","last_synced_at":"2026-05-17T15:39:52.116Z","repository":{"id":151586725,"uuid":"152910961","full_name":"rom1504/tensorflow_captcha_solver","owner":"rom1504","description":"Captcha solver based on https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710","archived":false,"fork":false,"pushed_at":"2018-11-09T23:08:25.000Z","size":11485,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T10:33:27.410Z","etag":null,"topics":["captcha-solving","deep-learning","preprocessing","tensorflow","vision"],"latest_commit_sha":null,"homepage":"","language":"Python","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/rom1504.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}},"created_at":"2018-10-13T20:18:49.000Z","updated_at":"2022-02-26T21:25:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd3c391c-4f87-446e-a9bc-ea58e1c11101","html_url":"https://github.com/rom1504/tensorflow_captcha_solver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom1504%2Ftensorflow_captcha_solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom1504%2Ftensorflow_captcha_solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom1504%2Ftensorflow_captcha_solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom1504%2Ftensorflow_captcha_solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rom1504","download_url":"https://codeload.github.com/rom1504/tensorflow_captcha_solver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246884769,"owners_count":20849554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["captcha-solving","deep-learning","preprocessing","tensorflow","vision"],"created_at":"2024-10-06T11:23:30.637Z","updated_at":"2025-10-05T18:15:48.477Z","avatar_url":"https://github.com/rom1504.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Before you get started\n\ncode based on https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710\n\n### New work compared to article\n\nThis has been changed to train on fully synthetic data generated with all fonts present on the system.\n\nIt generalize to new data not seen in the training set.\nFor example it fully works on the data of the initial article without having been trained \nat all on the data generated by the captcha system on the article.\n\n### Installation\nTo run these scripts, you need the following installed:\n\n1. Python 3\n2. The python libraries listed in requirements.txt\n - virtualenv --python=/usr/bin/python3 venv\n - source venv/bin/activate\n - pip3 install -r requirements.txt\n \nyou may regenerate the acceptable font by running python3 generate_acceptable_fontlist.py\n\ninstalling `msttcorefonts` provide more fonts hence better results\n(that was useful in my case to distinguish O and 0)\n\nRun pipeline.sh or :\n \n### Step 0: Generate images\n\npython3 generate_image.py\n\n### Step 1: Extract single letters from CAPTCHA images\n\nRun:\n\npython3 extract_single_letters_from_captchas.py\n\nThe results will be stored in the \"extracted_letter_images\" folder.\n\n\n### Step 2: Train the neural network to recognize single letters\n\nRun:\n\npython3 train_model.py\n\nThis will write out \"captcha_model.hdf5\" and \"model_labels.dat\"\n\n\n### Step 3: Use the model to solve CAPTCHAs!\n\nRun: \n\npython3 solve_captchas_with_model.py\n\n### Step 4: use the flask endpoint\n\npython3 flask_endpoint.py\n\nthen go to `http://127.0.0.1:5000/?url=http://somecaptcha.url/`\nor `http://127.0.0.1:5000/?url=http://somecaptcha.url/\u0026show_image=1` to see the image too\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2From1504%2Ftensorflow_captcha_solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2From1504%2Ftensorflow_captcha_solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2From1504%2Ftensorflow_captcha_solver/lists"}