Skip to content

Commit

Permalink
πŸš€ Update to version v0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jejon committed Nov 4, 2024
1 parent 50a60b6 commit c83a740
Show file tree
Hide file tree
Showing 53 changed files with 6,547 additions and 23,214 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
# run a code a code scan at the beginning of every work week
- cron: '00 00 * * 1'

jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: 'ubuntu-latest'
timeout-minutes: 360
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
17 changes: 16 additions & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
Expand All @@ -18,7 +33,7 @@ jobs:
- name: Install Dependencies
run: |
pip install -U .
pdm sync -d --only-keep -G doc
pdm sync -d
- name: Sphinx build
run: pdm run doc
- name: Deploy to GitHub Pages
Expand Down
30 changes: 24 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Tests

on:
push:
branches: [main]
branches: '**'
pull_request:
branches: '**'

jobs:
build:
Expand All @@ -14,16 +15,33 @@ jobs:

steps:
- uses: actions/checkout@v3
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Set up Python ${{ matrix.python-version }}
uses: pdm-project/setup-pdm@v3
with:
python-version: ${{ matrix.python-version }}
cache: true
- name: Install dependencies
run: |
python -m pip install --upgrade tox .
- name: Test with tox
apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
pip install -U .
pdm sync -d
- name: Test with pytest
run: |
tox --version
pyversion="${{ matrix.python-version }}"
tox -e py${pyversion/./}
pdm run test --junitxml=junit/test-results-${{ matrix.python-version }}.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ test_notebooks
.idea
.vscode
tags
junit

# Unittest and coverage
htmlcov/*
.coverage
.coverage*
.tox
junit.xml
coverage.xml
Expand All @@ -47,4 +48,12 @@ wheel/*
docs/_build/*
cover/*
MANIFEST
.pdm-python
.pdm-python

# example files
examples/configs/*
examples/datasets/*
examples/lightning_logs/*
examples/lightning_models/*
examples/main.py
*model_checkpoints/*
31 changes: 5 additions & 26 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,30 +1,9 @@
IMEC license
MIT License

Copyright (c) Jef Jonkers
2023 Ghent University and IMEC vzw with offices at Technologiepark 15, 9052 Ghent, Belgium - Email: [email protected].
Belgium - Contact info: http://predict.idlab.ugent.be
Copyright (c) 2024 Jef Jonkers

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software for non-commercial educational and research use, including without
limitation the rights to use, copy, modify, merge, publish, distribute and/or
sublicense copies of the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the β€œSoftware”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

1. The above copyright notice and this permission notice shall be included in
all copies of the Software.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

2. Permission is restricted to non-commercial educational and research use:
the use of the Software is allowed for teaching purposes and academic
research. Usage by non-academic parties is allowed in a strict research
environment only. The use of the results of the research for commercial
purposes or inclusion in commercial activities requires the permission of
Ghent University and IMEC vzw.

3. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED β€œAS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 changes: 14 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
<p align="center">
<a href="https://predict-idlab.github.io/landmarker">
<img alt="landmarker" src="/docs/_static/images/logo.svg" width="66%">
<img alt="landmarker" src="https://raw.githubusercontent.com/predict-idlab/landmarker/main/docs/_static/images/logo.svg" width="66%">
</a>
</p>

[![PyPI Latest Release](https://img.shields.io/pypi/v/landmarker.svg)](https://pypi.org/project/landmarker/)
[![support-version](https://img.shields.io/badge/python-3.10%20%7C%203.11-blue)](https://pypi.org/project/landmarker/)
[![codecov](https://img.shields.io/codecov/c/github/predict-idlab/landmarker?logo=codecov)](https://codecov.io/gh/predict-idlab/landmarker)
[![CodeQL](https://github.com/predict-idlab/landmarker/actions/workflows/codeql.yml/badge.svg)](https://github.com/predict-idlab/landmarker/actions/workflows/codeql.yml)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?)](http://makeapullrequest.com)
[![Documentation](https://github.com/predict-idlab/landmarker/actions/workflows/documentation.yml/badge.svg)](https://predict-idlab.github.io/landmarker/)
[![Testing](https://github.com/predict-idlab/landmarker/actions/workflows/tests.yml/badge.svg)](https://github.com/predict-idlab/landmarker/actions/workflows/tests.yml)

Landmarker is a [PyTorch](https://pytorch.org/)-based toolkit for (anatomical) landmark detection in images. It is designed to be easy to use and to provide a flexible framework for state-of-the-art landmark detection algorithms for small and large datasets. Landmarker was developed for landmark detection in medical images. However, it can be used for any type of landmark detection problem.

Landmarker is a [PyTorch](https://pytorch.org/)-based toolkit for (anatomical) landmark localization in 2D/3D images. It is designed to be easy to use and to provide a flexible framework for state-of-the-art landmark localization algorithms for small and large datasets. Landmarker was developed for landmark detection in medical images. However, it can be used for any type of landmark localization problem.

## πŸ› οΈ Installation

Expand All @@ -20,13 +28,11 @@ Technical documentation is available at [documentation](https://predict-idlab.gi
Examples and tutorials are available at [examples](https://predict-idlab.github.io/landmarker/examples/index.html)

## ✨ Features
- **Modular**: Landmarker is designed to be modular. It is easy to add new models, datasets, and loss functions.
- **Flexible**: Landmarker provides a flexible framework for landmark detection. It is easy to customize the training and evaluation process.
- **Easy to use**: Landmarker is easy to use. It provides a simple API for training and evaluation.
- **Modular**: Landmarker is designed to be modular. Almost all components can be used independently.
- **Flexible**: Landmarker provides a flexible framework for landmark detection, allowing you to easily customize your model, loss function, and data loaders.
- **State-of-the-art**: Landmarker provides state-of-the-art landmark detection models and loss functions.

## πŸ“ˆ Future Work
- Extension to 3D landmark detection.
- Extension to landmark detection in videos.
- Add uncertainty estimation.
- ...
Expand All @@ -41,10 +47,10 @@ If you use Landmarker in your research, please cite the following paper:
SCIENTIFIC PAPER UNDER REVIEW

## πŸ“ License
Landmark is licensed under the IMEC [license](LICENSE).
Landmark is licensed under the MIT [license](LICENSE).

---

<p align="center">
πŸ‘€ <i>Jef Jonkers</i>
</p>
</p>
4 changes: 0 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,6 @@ reference/visualize

# Landmarker

:::::{caution}
🚧 Still under construction. 🚧
:::::

**Version**: {{ version }}

**Useful links**:
Expand Down
Loading

0 comments on commit c83a740

Please sign in to comment.