{"id":21071199,"url":"https://github.com/andrewdarnall/srm-benchmark","last_synced_at":"2025-04-30T15:40:33.844Z","repository":{"id":261325612,"uuid":"883301488","full_name":"AndrewDarnall/SRM-Benchmark","owner":"AndrewDarnall","description":"A benchmark work between the C++, Rust and Python implementations of the SRM algorithm","archived":false,"fork":false,"pushed_at":"2025-01-07T17:54:59.000Z","size":3031,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T21:57:53.608Z","etag":null,"topics":["computer-vision","cpp","image-processing","python","rust","statistical-region-merging"],"latest_commit_sha":null,"homepage":"","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/AndrewDarnall.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":"2024-11-04T18:15:25.000Z","updated_at":"2025-01-07T17:55:02.000Z","dependencies_parsed_at":"2024-11-06T00:17:30.482Z","dependency_job_id":"df310b86-3fc4-4866-8154-b5e09a9f4741","html_url":"https://github.com/AndrewDarnall/SRM-Benchmark","commit_stats":null,"previous_names":["andrewdarnall/srm-benchmark"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewDarnall%2FSRM-Benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewDarnall%2FSRM-Benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewDarnall%2FSRM-Benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewDarnall%2FSRM-Benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewDarnall","download_url":"https://codeload.github.com/AndrewDarnall/SRM-Benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243514124,"owners_count":20303072,"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":["computer-vision","cpp","image-processing","python","rust","statistical-region-merging"],"created_at":"2024-11-19T18:50:43.997Z","updated_at":"2025-03-14T02:43:21.107Z","avatar_url":"https://github.com/AndrewDarnall.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Statistical Region Merging Benchmark\n\n![Version](https://img.shields.io/badge/version-1.0.0-blue)\n![Build Release Status](https://github.com/AndrewDarnall/SRM-Benchmark/actions/workflows/srm-benchmark-ci.yml/badge.svg)\n\n---\n\nThe following reposiroty contains a benchmark which compares different implementations of the [Statistical Region Merging](https://ieeexplore.ieee.org/document/1335450) algorithm.\n\n\u003cbr\u003e\n\u003cbr\u003e\nGiven that many image processing and computer vision algorithms are frequently utilized in their 'Pythonic' form, which introduces a notable performance overhead, implementing the algorithm in a highly efficient and fast programming language like `C++` was an obvious choice. However, considering the well-known challenges associated with memory management in `C++`, implementing the algorithm in the `Rust` programming language presents a compelling alternative, as it offers both high performance and strong memory safety guarantees.\n\u003cbr\u003e\n\u003cbr\u003e\nThe implementations are benchmarked against the [Berkely Image Segmentation Dataset 500 (BSDS500)](https://www.kaggle.com/datasets/balraj98/berkeley-segmentation-dataset-500-bsds500), a widely used dataset for image segmentation (even if for Deep Learning and Computer Vision models),\nand then I measure the resource consumption of each implementation.\n\n---\n\n## Requirements\n\n| Component | Version    |\n|-----------|------------|\n| OpenCV    | `4.5.1`    |\n| C++       | `10.2.1`   |\n| Clang     | `14.0.6`   |\n| Clang-Dev | `14.0-55.7`|\n| Rust      | `1.81.0`   |\n| Python    | `3.12.4`   |\n| pip       | `24.2`     |\n| CMake     | `3.18.4`   |\n| Make      | `4.3`      |\n\n---\n\n#### Disclaimer\n\nThis repo is meant to contain a `benchmark`, each `directory` however contains a standalone implementation.\n\n---\n\n## Project Structure\n\n```bash\nSRM-Benchmark\n├── assets\n├── BSDS500-Benchmark\n├── libsrm_cpp\n├── libsrm_py\n└── libsrm_rust\n```\n\nEvery `directory` aside from the `assets` one, contains a specific implementation wich detailed `README.md` regarding the benchmark, and the `BSDS500-Benchmark` contains the benchmark on the `BSDS500` dataset.\n\n\nThe `BSDS500` dataset can be found [here](https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/BSR/).\n\n---\n\n## System Specifications\n\nThe `hardware` specs of the machine on which the benchmark was run are:\n\n```bash\nModel name:                           Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz\nCPU MHz:                              3998.428\n```\n\nThe `software` specs are:\n\n```bash\nOperating System Information:\nDescription:    Debian GNU/Linux 11 (bullseye)\nRelease:        11\n```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewdarnall%2Fsrm-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewdarnall%2Fsrm-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewdarnall%2Fsrm-benchmark/lists"}