{"id":38655604,"url":"https://github.com/conservationtechlab/heatseek","last_synced_at":"2026-01-17T09:26:34.488Z","repository":{"id":296034816,"uuid":"978227945","full_name":"conservationtechlab/heatseek","owner":"conservationtechlab","description":"Thermal imagery detetion and tracking","archived":false,"fork":false,"pushed_at":"2025-11-12T22:27:44.000Z","size":1000,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-13T00:18:37.193Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/conservationtechlab.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-05T17:01:54.000Z","updated_at":"2025-05-28T18:52:19.000Z","dependencies_parsed_at":"2025-05-28T17:51:26.496Z","dependency_job_id":"de06a0cf-eed8-4ad1-927e-32f6a0d7899c","html_url":"https://github.com/conservationtechlab/heatseek","commit_stats":null,"previous_names":["conservationtechlab/heatseek"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/conservationtechlab/heatseek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conservationtechlab%2Fheatseek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conservationtechlab%2Fheatseek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conservationtechlab%2Fheatseek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conservationtechlab%2Fheatseek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/conservationtechlab","download_url":"https://codeload.github.com/conservationtechlab/heatseek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conservationtechlab%2Fheatseek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"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":[],"created_at":"2026-01-17T09:26:29.955Z","updated_at":"2026-01-17T09:26:34.454Z","avatar_url":"https://github.com/conservationtechlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HeatSeek\n\n**HeatSeek** is a command-line tool for downloading thermal datasets, preprocessing video, training YOLO models, and tracking objects in thermal imagery. The current focus of the package is on thermal imagery of bats.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/OpticalFlow_Example.png\" alt=\"Optical Flow\" width=\"400\"/\u003e\n  \u003cimg src=\"images/PB_Example.png\" alt=\"PB Example\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## Installation\n\nFirst, clone the repository:\n\n```bash\ngit clone ...\ncd heatseek\n```\nIt is recommended to build a conda environment for correct dependencies:\n\n```bash\nconda env create -f environment.yml\n```\nThen install the package:\n\n```bash\npip install . --no-build-isolation\n```\n\nAlternatively, for development:\n\n```bash\npip install -e . --no-build-isolation\n```\n\n---\n\n## Usage\n\n### Download Weights if Necassary\n\n```bash\nheatseek train \\\n  --data-yaml path/to/data.yaml \\\n  --weights yolov8s.pt \\\n  --epochs 400 \\\n  --batch 16 \\\n  --imgsz 640\n```\n### Download dataset from RoboFlow\n\n```bash\nheatseek  download   --api-key API_KEY   --workspace WORKSPACE  --project PROJECT_NAME   --version VERSION_NUM   --nc CLASS_NUM   --names CLASS_NAME\n```\n\n### Train YOLO Model\n\n```bash\nheatseek train \\\n  --data-yaml path/to/data.yaml \\\n  --weights yolov11s.pt \\\n  --epochs 400 \\\n  --batch 16 \\\n  --imgsz 640\n```\n\n---\n\n### Preprocess Thermal Video\n\n```bash\nheatseek preprocess \\\n  --input raw_video.mp4 \\\n  --output bg_reduced.mp4 \n```\n\nRemoves background using thermal contrast thresholding.\n\n---\n\n### Track Objects\n\n```bash\nheatseek track \\\n  --input video.mp4 \\\n  --output tracks.json \\\n  --weights yolov8.pt\n```\n\nRuns YOLO-based detection and object tracking.\n\n---\n\n### Preprocess + Track in One Step\n\n```bash\nheatseek pretrack \\\n  --input raw.mp4 \\\n  --preprocessed bg_reduced.mp4 \\\n  --output tracks.mp4 \\\n  --weights yolov8.pt \n```\n\nRuns background reduction then tracking in one go.\n\n---\n\n---\n\n### Density Annotator\n\n```bash\nheatseek annotate \\\n  --input raw.mp4 /path/to/data/folder\\\n```\n\nClick to annotate points for density data. Press 's' to save and 'n' to skip\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/densityAnnotator.png\" alt=\"Density Annotator\"/\u003e\n\u003c/p\u003e\n\n\nCreates annotations of density data to train density count estimator models. \n\n---\n\n\n## Dependencies\n\nEnsure you have the following installed via:\n\n\n```bash\npip install -r requirements.txt\n```\n---\n\n## Project Structure\n\n```\nheatseek/\n├── cli.py           # Entry point\n├── data_utils.py    # Dataset download and YAML writing\n├── train.py         # Training logic\n├── preprocess.py    # Background reduction\n├── detect_track.py  # Detection and tracking\n```\n\n---\n## Acknowledgements\n\nExample images and datasets:\nhttps://universe.roboflow.com/goingbatty/\n\n---\n## License\n\nMIT License\n\nCopyright (c) 2025 SDZWA\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconservationtechlab%2Fheatseek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconservationtechlab%2Fheatseek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconservationtechlab%2Fheatseek/lists"}