{"id":28322499,"url":"https://github.com/mareksubocz/tracknet","last_synced_at":"2025-07-03T08:36:55.695Z","repository":{"id":68253820,"uuid":"561752902","full_name":"mareksubocz/TrackNet","owner":"mareksubocz","description":":flashlight: Pytorch implementation of TrackNet","archived":true,"fork":false,"pushed_at":"2023-03-27T22:03:50.000Z","size":109552,"stargazers_count":28,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-13T12:07:46.925Z","etag":null,"topics":["apple-silicon-support","deep-learning","machine-learning","ml","pytorch","single-object-tracking","sot","tensorboard","tracking","tracknet","wandb"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mareksubocz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-11-04T12:15:16.000Z","updated_at":"2025-05-23T10:28:09.000Z","dependencies_parsed_at":"2025-06-13T12:18:22.763Z","dependency_job_id":null,"html_url":"https://github.com/mareksubocz/TrackNet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mareksubocz/TrackNet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mareksubocz%2FTrackNet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mareksubocz%2FTrackNet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mareksubocz%2FTrackNet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mareksubocz%2FTrackNet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mareksubocz","download_url":"https://codeload.github.com/mareksubocz/TrackNet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mareksubocz%2FTrackNet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263291491,"owners_count":23443771,"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":["apple-silicon-support","deep-learning","machine-learning","ml","pytorch","single-object-tracking","sot","tensorboard","tracking","tracknet","wandb"],"created_at":"2025-05-25T14:10:07.375Z","updated_at":"2025-07-03T08:36:55.678Z","avatar_url":"https://github.com/mareksubocz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrackNet\nPytorch implementation based on [TrackNetv2](https://nol.cs.nctu.edu.tw:234/open-source/TrackNetv2).\n\n\u003cbr\u003e\n\u003csup\u003eSupported logging options:\u003c/sup\u003e\n\n\u003ca href=\"https://wandb.ai\"\u003e\u003cimg align=center src=\"img/wandb_logo.png\" width=\"150\" height=\"auto\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.tensorflow.org/tensorboard\"\u003e\u003cimg align=center src=\"img/tensorboard-logo.png\" width=\"150\" height=\"auto\" /\u003e \u003c/a\u003e\n\n## Installation\n```\ngit clone https://github.com/mareksubocz/TrackNet\ncd /TrackNet\npip install -r requirements.txt\n```\n\n## Training\n```\npython train.py --dataset PATH_TO_DATASET --device cuda\n```\n\n## Prediction\n```\npython predict.py PATH_TO_VIDEO --weights PATH_TO_TRAINED_WEIGHTS --device cuda\n```\n\n## Dataset Labelling\n\nKeybindings:\n- \u003ckbd\u003el\u003c/kbd\u003e / \u003ckbd\u003e→\u003c/kbd\u003e  : next frame\n- \u003ckbd\u003eh\u003c/kbd\u003e / \u003ckbd\u003e←\u003c/kbd\u003e  : previous frame\n- \u003ckbd\u003ev\u003c/kbd\u003e    : annotate well-visible ball\n- \u003ckbd\u003eo\u003c/kbd\u003e    : annotate occluded ball\n- \u003ckbd\u003em\u003c/kbd\u003e    : annotate ball in motion (blurred)\n- \u003ckbd\u003ef\u003c/kbd\u003e    : fast-forward/pause video\n- \u003ckbd\u003en\u003c/kbd\u003e    : go to next annotated frame\n- \u003ckbd\u003ex\u003c/kbd\u003e    : remove annotation\n- \u003ckbd\u003e=\u003c/kbd\u003e / \u003ckbd\u003e+\u003c/kbd\u003e  : enlarge the annotation mark size\n- \u003ckbd\u003e-\u003c/kbd\u003e    : reduce the annotation mark size\n- \u003ckbd\u003eq\u003c/kbd\u003e    : finish annotating and save results\n\n```\npython labellingTool.py video.mp4\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/labelling_tool_demo.gif\" alt=\"animated\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eLabelling tool in use. Fast-forward function is distorted due to gif compression.\u003c/em\u003e\n\u003c/p\u003e\n\n## train.py Parameters cheatsheet\n| Argument name      | Type  | Default value | Description |\n|--------------------|-------|---------------|-------------|\n|weights                |str    |None           |Path to initial weights the model should be loaded with. If not specified, the model will be initialized with random weights.|\n|checkpoint             |str    |None           |Path to a checkpoint, chekpoint differs from weights by to including information about current loss, epoch and optimizer state.|\n|batch_size             |int    |2              |Batch size of the training dataset.|\n|val_batch_size         |int    |1              |Batch size of the validation dataset.|\n|shuffle                |bool   |True           |Should the dataset be shuffled before training?|\n|epochs                 |int    |10             |Number of epochs.|\n|train_size             |float  |0.8            |Training dataset size.|\n|lr                     |float  |0.01           |Learning rate.|\n|momentum               |float  |0.9            |Momentum.|\n|dropout                |float  |0.0            |Dropout rate. If equals to 0.0, no dropout is used.|\n|dataset                |str    |'dataset/'     |Path to dataset.|\n|device                 |str    |'cpu'          |Device to use (cpu, cuda, mps).|\n|type                   |str    |'auto'         |Type of dataset to create (auto, image, video). If auto, the dataset type will be inferred from the dataset directory, defaulting to image.|\n|save_period            |int    |10             |Save checkpoint every x epochs (disabled if \u003c1).|\n|save_weights_only      |bool   |False          |Save only weights, not the whole checkpoint|\n|save_path              |str    |'weights/'     |Path to save checkpoints at.|\n|no_shuffle             | -     | -             |Don't shuffle the training dataset.|\n|tensorboard            | -     | -             |Use tensorboard to log training progress.')|\n|one_output_frame       | -     | -             |Demand only one output frame instead of three.')|\n|no_save_output_examples| -     | -             |Don't save output examples to results folder.|\n|grayscale              | -     | -             |Use grayscale images instead of RGB.')|\n|single_batch_overfit   | -     | -             |Overfit the model on a single batch.')|\n\nArguments without type or default value are used without an additional value, e.x.\n``` bash\npython train.py --dataset dataset/ --grayscale --one_output_frame\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmareksubocz%2Ftracknet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmareksubocz%2Ftracknet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmareksubocz%2Ftracknet/lists"}