{"id":15988452,"url":"https://github.com/insertish/yolov8-auto-trainer","last_synced_at":"2025-10-26T20:45:36.191Z","repository":{"id":192041943,"uuid":"684498151","full_name":"insertish/yolov8-auto-trainer","owner":"insertish","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-20T10:12:50.000Z","size":492,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-01T22:41:03.706Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/insertish.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":"2023-08-29T08:54:05.000Z","updated_at":"2023-09-01T10:06:47.000Z","dependencies_parsed_at":"2024-11-08T19:33:15.912Z","dependency_job_id":"35786aaa-c985-48d5-96e1-c155abc21301","html_url":"https://github.com/insertish/yolov8-auto-trainer","commit_stats":{"total_commits":15,"total_committers":1,"mean_commits":15.0,"dds":0.0,"last_synced_commit":"905d4dbeb931ee9e7f527d8f4d991ee5f1ead7ef"},"previous_names":["insertish/yolov8-auto-trainer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insertish%2Fyolov8-auto-trainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insertish%2Fyolov8-auto-trainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insertish%2Fyolov8-auto-trainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insertish%2Fyolov8-auto-trainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/insertish","download_url":"https://codeload.github.com/insertish/yolov8-auto-trainer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240054482,"owners_count":19740829,"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":[],"created_at":"2024-10-08T04:04:02.253Z","updated_at":"2025-10-26T20:45:36.090Z","avatar_url":"https://github.com/insertish.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YOLOv8 Auto Trainer\n\n## Prerequisites\n\nNixOS:\n\n```bash\nnix-shell\n```\n\nOther systems:\n\n```bash\npython3 -m venv venv # must have Python 3.9+ installed\nsource venv/bin/activate\npip install -r requirements-no-nix.txt\n```\n\nBASICALLY:\n\n- gather videos of spinning objects / or otherwise a camera moving around an object and put them in 'data/input'\n\n  \u003e they should be mp4 because im lazy\n\n  the filenames should be `id,class.mp4`, e.g.\n\n  ```\n  0,izzy.mp4\n  1,pen.mp4\n  2,screwdriver.mp4\n  3,screwdriver.mp4\n  .. etc\n  ```\n\n  the id is for internal use by the program, the class is for training\n\n  \u003e NOTE: you can also just gather images of the object, to bypass this step, simply do:\n  \u003e\n  \u003e touch data/input/154,my_class.mp4\n  \u003e mkdir data/image-seq/154\n  \u003e\n  \u003e now add images to data/image-seq!\n\n  \u003e when it comes to training on specific objcets, you want to include adjacent objects in your dataset\n  \u003e\n  \u003e e.g. you may want to also train on people, example datasets: https://github.com/VikramShenoy97/Human-Segmentation-Dataset https://www.kaggle.com/datasets/tapakah68/supervisely-filtered-segmentation-person-dataset\n  \u003e\n  \u003e you may want to add similar looking objects, or just other objects that may appear in your scene that you don't want to mis categorise as something you're looking for, e.g. phones, etc\n\n  \u003e you may want to also just download images from the internet\n  \u003e\n  \u003e this is pretty simple\n  \u003e\n  \u003e pip install bing_image_downloader\n\n```\nfrom bing_image_downloader import downloader\n\ndownloader.download(\n    \"Costa Coffee\",\n    limit=128,\n    output_dir=\"bing_images\",\n    adult_filter_off=True,\n    force_replace=False,\n    timeout=60,\n    verbose=True,\n)\n```\n\n- also download background images, i just use https://unsample.net/ and download like 100-200 1024x images to put into `data/backgrounds`\n\n- ensure your environment is ready to go\n\n  `./0-validate-env`\n\n  you want CUDA for the segmentation task otherwise it will be tedious\n\n- prepare your inputs\n\n  `./1-prepare-input`\n\n  this splits any unsplit videos into N frames at a given frame rate\n\n  then creates the label and dataset information\n\n- segment your data\n\n  `./2-segment`\n\n  use mouse to create bounding box\n  press q to confirm segmentation mask\n\n  you can re-create bounding box at any point\n\n  simplescreenrecorder-2023-08-31_18.11.29.mkv\n\n- generate images and train\n\n  `./3-generate-cutouts`\n  `./4-generate-composites`\n  `./5-train`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsertish%2Fyolov8-auto-trainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finsertish%2Fyolov8-auto-trainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsertish%2Fyolov8-auto-trainer/lists"}