{"id":32178419,"url":"https://github.com/menpo/menpo","last_synced_at":"2025-10-21T20:55:26.579Z","repository":{"id":916776,"uuid":"9731325","full_name":"menpo/menpo","owner":"menpo","description":"A statistical modelling toolkit, providing all the tools required to build, fit, visualize, and test deformable models.","archived":false,"fork":false,"pushed_at":"2024-05-06T17:13:11.000Z","size":38879,"stargazers_count":328,"open_issues_count":42,"forks_count":84,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-10-21T20:55:16.139Z","etag":null,"topics":["computer-vision","image-processing","machine-learning","menpo","python"],"latest_commit_sha":null,"homepage":"http://www.menpo.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/menpo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-28T14:52:38.000Z","updated_at":"2025-09-25T23:47:15.000Z","dependencies_parsed_at":"2022-07-20T05:47:41.473Z","dependency_job_id":null,"html_url":"https://github.com/menpo/menpo","commit_stats":null,"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"purl":"pkg:github/menpo/menpo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menpo%2Fmenpo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menpo%2Fmenpo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menpo%2Fmenpo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menpo%2Fmenpo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/menpo","download_url":"https://codeload.github.com/menpo/menpo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menpo%2Fmenpo/sbom","scorecard":{"id":636584,"data":{"date":"2025-08-11","repo":{"name":"github.com/menpo/menpo","commit":"bf08b913bb84ba5f5323e9b7d372a8349b9d1fa8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/20 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T09:21:16.477Z","repository_id":916776,"created_at":"2025-08-21T09:21:16.477Z","updated_at":"2025-08-21T09:21:16.477Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280333499,"owners_count":26312845,"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","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["computer-vision","image-processing","machine-learning","menpo","python"],"created_at":"2025-10-21T20:55:25.590Z","updated_at":"2025-10-21T20:55:26.572Z","avatar_url":"https://github.com/menpo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"menpo-logo.png\" alt=\"menpo\" width=\"30%\"\u003e\u003c/center\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://pypi.python.org/pypi/menpo\"\u003e\u003cimg src=\"http://img.shields.io/pypi/v/menpo.svg?style=flat\" alt=\"PyPI Release\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/menpo/menpo/blob/master/LICENSE.txt\"\u003e\u003cimg src=\"http://img.shields.io/badge/License-BSD-green.svg\" alt=\"BSD License\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.6-green.svg\" alt=\"Python 3.6 Support\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.7-green.svg\" alt=\"Python 3.7 Support\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.8-green.svg\" alt=\"Python 3.8 Support\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.9-green.svg\" alt=\"Python 3.9 Support\"/\u003e\n\u003c/p\u003e\n\n\nMenpo. The Menpo Project Python package for handling annotated data.\n====================================================================\nWhat is Menpo?\n--------------\nMenpo is a [Menpo Project](http://www.menpo.org/) package designed from\nthe ground up to make importing, manipulating and\nvisualizing image and mesh data as simple as possible. In particular,\nwe focus on **annotated** data which is common within the fields of Machine\nLearning and Computer Vision. All core types are `Landmarkable` and\nvisualizing these landmarks is very simple. Since landmarks are first class\ncitizens within Menpo, it makes tasks like masking images, cropping images\ninside landmarks and aligning images very simple.\n\n\u003e Menpo were facial armours which covered all or part of the face and provided\n\u003e a way to secure the top-heavy kabuto (helmet). The Shinobi-no-o (chin cord)\n\u003e of the kabuto would be tied under the chin of the menpo. There were small\n\u003e hooks called ori-kugi or posts called odome located on various places to\n\u003e help secure the kabuto's chin cord.\n\u003e\n\u003e --- Wikipedia, Menpo\n\nInstallation\n------------\nHere in the Menpo Team, we are firm believers in making installation as simple\nas possible. Unfortunately, we are a complex project that relies on satisfying\na number of complex 3rd party library dependencies. The default Python packing\nenvironment does not make this an easy task. Therefore, we evangelise the use\nof the conda ecosystem, provided by\n[Anaconda](https://store.continuum.io/cshop/anaconda/). In order to make things\nas simple as possible, we suggest that you use conda too! To try and persuade\nyou, go to the [Menpo website](http://www.menpo.io/installation/) to find\ninstallation instructions for all major platforms.\n\nIf you feel strongly about using Menpo with the most commonly used Python\npackage management system, `pip`, then you should be able to install\nMenpo as follows:\n\n```\n\u003e pip install menpo\n```\n\nWe strongly advocate the use of [conda](http://conda.pydata.org/docs/) which does\nnot require compilation for installing Menpo or it's dependencies such as Numpy, \nSciPy or Matplotlib. Installation via `conda` is as simple as\n\n```\n\u003e conda install -c conda-forge menpo\n```\n\n#### Build Status\nAnd has the added benefit of installing a number of commonly used scientific\npackages such as SciPy and Numpy as Menpo also makes use of these packages.\n\n|  CI Host |        OS        |                      Build Status                                     |\n|:--------:|:----------------:|:---------------------------------------------------------------------:|\n| CircleCI | linux/amd64      | [![menpo](https://circleci.com/gh/menpo/menpo.svg?style=svg)](\u003cLINK\u003e) |\n\nUsage\n-----\nMenpo makes extensive use of Jupyter Notebooks to explain functionality of the\npackage. These Notebooks are hosted in the\n[menpo/menpo-notebooks](https://github.com/menpo/menpo-notebooks) repository.\nWe strongly suggest that after installation you:\n\n  1. Download the [latest version of the notebooks][notebooks_gh]\n  2. Conda install Jupyter notebook and IPython: `conda install jupyter ipython notebook`\n  3. Run `jupyter notebook`\n  4. Play around with the notebooks.\n\n[notebooks_gh]: https://github.com/menpo/menpo-notebooks/releases\n\nWant to get a feel for Menpo without installing anything? You can browse the\nnotebooks straight from the [menpo website](http://www.menpo.io/notebooks.html).\n\nOther Menpo projects\n--------------------\nMenpo is designed to be a core library for implementing algorithms within\nthe Machine Learning and Computer Vision fields. For example, we have developed\na number of more specific libraries that rely on the core components of Menpo:\n\n  - [menpofit][mf_gh]: Implementations of state-of-the-art deformable modelling\n    algorithms including Active Appearance Models, Constrained Local Models\n    and the Supervised Descent Method.\n  - [menpo3d][m3d_gh]: Useful tools for handling 3D mesh data including\n    visualization and an OpenGL rasterizer. The requirements of this package\n    are complex and really benefit from the use of conda!\n  - [menpodetect][md_gh]: A package that wraps existing sources of object\n    detection. The core project is under a BSD license, but since other projects\n    are wrapped, they may not be compatible with this BSD license. Therefore,\n    we urge caution be taken when interacting with this library for\n    non-academic purposes.\n\n[mf_gh]: https://github.com/menpo/menpofit\n[m3d_gh]: https://github.com/menpo/menpo3d\n[md_gh]: https://github.com/menpo/menpodetect\n\nDocumentation\n-------------\nSee our documentation on [ReadTheDocs](http://menpo.readthedocs.org)\n\nTesting\n-------\nWe use [pytest](http://pytest.org/en/latest/) for unit tests.\n\nAfter installing `pytest`, `mock` and `pytest-mock`, running\n\n    \u003e\u003e pytest .\n\nfrom the top of the repository will run all of the unit tests.\n\nSome small parts of Menpo are only available if the user has some optional\ndependency installed. These are:\n\n- 3D viewing methods, only available if `menpo3d` is installed\n- `menpo.feature.dsift` only available if `cyvlfeat` is installed\n- Some warping unit tests are only available if `opencv` is installed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenpo%2Fmenpo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenpo%2Fmenpo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenpo%2Fmenpo/lists"}