Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"default": true,
"MD013": false,
"MD024": false,
"MD033": false,
"MD041": false
}
65 changes: 46 additions & 19 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,61 +15,88 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Removed

## [1.0.0] - YYYY-MM-DD
## [0.10]

## 2025
### Added

- Support for device selection and multiple GPUs [PR](https://github.com/alicevision/popsift/pull/121)
- Support for CUDA versions through 12.1 [PR](https://github.com/alicevision/popsift/pull/146)
- GitHub Actions for CI [PR](https://github.com/alicevision/popsift/pull/149)
- Missing thrust include [PR](https://github.com/alicevision/popsift/pull/135)
- Required thrust include for `s_filtergrid.cu` [PR](https://github.com/alicevision/popsift/pull/144)
- Added vlFeat's descriptor extraction method as an option [PR](https://github.com/alicevision/popsift/pull/167)
- Added CI for windows on Github Actions and refactoring [PR](https://github.com/alicevision/popsift/pull/172)

### Changed

- CMake: CUDA as first-order language, different CC selection [PR](https://github.com/alicevision/popsift/pull/156)
- CMake: SM 86 only for CUDA >= 11.1 [PR](https://github.com/alicevision/popsift/pull/116)
- CMake: Suppress deprecated CUDA SM warnings [PR](https://github.com/alicevision/popsift/pull/124)
- Replace exit() calls with thrown exceptions [PR](https://github.com/alicevision/popsift/pull/141)

### Fixed

- Errors with large images [PR](https://github.com/alicevision/popsift/pull/145)
- CMake: Explicit CC list for Jetson and Tegra platforms [PR](https://github.com/alicevision/popsift/pull/163)
- Remove broken and unused code path from L2 normalization [PR](https://github.com/alicevision/popsift/pull/166)
- Do not use NVTX [PR](https://github.com/alicevision/popsift/pull/162)
- Documentation: Biblio build [PR](https://github.com/alicevision/popsift/pull/132)
- Fixed include for CUDA 13 [PR](https://github.com/alicevision/popsift/pull/169)

### Documentation

## 2024
- Update with vcpkg package [PR](https://github.com/alicevision/popsift/pull/129)

- CMake: CUDA as first-order language, different CC selection
## [0.9] - 2021-02-13

### Added

- Support for CUDA 11 [PR](https://github.com/alicevision/popsift/pull/103)
- Improved checks for CUDA textures [PR](https://github.com/alicevision/popsift/pull/89)
- CMake: Improved support for all Cuda CC [PR](https://github.com/alicevision/popsift/pull/75)
- CMake: support for cuda 11 [PR](https://github.com/alicevision/popsift/pull/103)
- Support for Cuda CC 7 cards (RTX 2080) [PR](https://github.com/alicevision/popsift/pull/67)
- Support for Boost 1.70 [PR](https://github.com/alicevision/popsift/pull/65)
- Support for device selection and multiple GPUs [PR](https://github.com/alicevision/popsift/pull/121)
- Documentation: ReadTheDocs integration [PR](https://github.com/alicevision/popsift/pull/100)
- CMake: Support for SM86 compute capability [PR](https://github.com/alicevision/popsift/pull/113)

### Changed

- Docker: Updated CMake and split Docker in 2 parts [PR](https://github.com/alicevision/popsift/pull/87)
- Code cleanup and improvements [PR](https://github.com/alicevision/popsift/pull/95)

### Fixed
- CMake: fixes to allow building on Windows using vcpkg [PR](https://github.com/alicevision/popsift/pull/92)
- Fix race condition [PR](https://github.com/alicevision/popsift/pull/82)

### Changed
- Improved resource releasing [PR](https://github.com/alicevision/popsift/pull/71)
- Race conditions identified by racecheck [PR](https://github.com/alicevision/popsift/pull/82)
- CMake: Windows build fixes [PR](https://github.com/alicevision/popsift/pull/92)
- Memory management: pair `malloc` with `free`, not `delete` [PR](https://github.com/alicevision/popsift/pull/108)
- CUDA: Pass correct shared memory size to orientation kernel [PR](https://github.com/alicevision/popsift/pull/109)
- Testing paths fixes [PR](https://github.com/alicevision/popsift/pull/104)
- Remove stale undefined function [PR](https://github.com/alicevision/popsift/pull/90)

### Removed
- Remove boost dependency from the main library [PR](https://github.com/alicevision/popsift/pull/81)

- Remove boost dependency from core popsift library [PR](https://github.com/alicevision/popsift/pull/81)

## 2019

- Bugfix: Support for images with different resolutions [PR](https://github.com/alicevision/popsift/pull/58)


## 2018

- CMake: Auto-build export symbols for shared libs on Windows [PR](https://github.com/alicevision/popsift/pull/54)
- Bugfix: freeing page-aligned memory on Win32 [PR](https://github.com/alicevision/popsift/pull/53)
- Paper published @MMSys18 (https://dl.acm.org/doi/10.1145/3204949.3208136)
- Paper published @MMSys18 (<https://dl.acm.org/doi/10.1145/3204949.3208136>)
- Docker support [PR](https://github.com/alicevision/popsift/pull/46)
- Appveyor CI windows [PR](https://github.com/alicevision/popsift/pull/41)
- Support for Cuda 9 [PR](https://github.com/alicevision/popsift/pull/38)
- Thrust with Cuda 7 [PR](https://github.com/alicevision/popsift/pull/35)


## 2017

- Grid filtering [PR](https://github.com/alicevision/popsift/pull/30)
- Improved Gauss filtering [PR](https://github.com/alicevision/popsift/pull/24)
- Support asynchronous SIFT extraction [PR](https://github.com/alicevision/popsift/pull/22)
- Windows port [PR](https://github.com/alicevision/popsift/pull/18)


## 2016

- Switch to modern CMake [PR](https://github.com/alicevision/popsift/pull/14)
- Travis CI Linux [PR](https://github.com/alicevision/popsift/pull/8)
- First open-source release
- First open-source release
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ else()
STRING "Which CUDA CCs to support: native, all, all-major or an explicit list delimited by semicolons")
endif()

project(PopSift VERSION 1.0.0 LANGUAGES CXX CUDA)
project(PopSift VERSION 0.10.0 LANGUAGES CXX CUDA)

# Policy to support CUDA as a first-order language for CMake.
# Since CMake 3.18. See https://cmake.org/cmake/help/latest/policy/CMP0104.html
Expand Down
35 changes: 17 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# PopSift

[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3728/badge)](https://bestpractices.coreinfrastructure.org/projects/3728)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3728/badge)](https://bestpractices.coreinfrastructure.org/projects/3728)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/64f9192b53df46b483e7cf5be7e2dddd)](https://app.codacy.com/gh/alicevision/popsift/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)

PopSift is an open-source implementation of the SIFT algorithm in CUDA.
Expand Down Expand Up @@ -33,7 +33,7 @@ Optionally, for the provided applications:

To build the library, you can run:

```
```shell
mkdir build && cd build
cmake ..
make
Expand Down Expand Up @@ -101,7 +101,7 @@ PopSift can be configured at runtime to use constants that affect its behaviours
In particular, users can choose to generate results very similar to VLFeat or results that are closer (but not as close) to the SIFT implementation of the OpenCV extras.
We acknowledge that there is at least one SIFT implementation that is vastly faster, but it makes considerable sacrifices in terms of accuracy and compatibility.

## Continuous integration:
## Continuous integration

* ![Continuous Integration](https://github.com/alicevision/popsift/workflows/Continuous%20Integration/badge.svg?branch=master) master branch (Linux and Windows).

Expand All @@ -113,29 +113,28 @@ PopSift is licensed under [MPL v2 license](COPYING.md).
SIFT was patented in the United States from 1999-03-08 to 2020-03-28. See the [patent link](https://patents.google.com/patent/US6711293B1/en) for more information.
PopSift license only concerns the PopSift source code and does not release users of this code from any requirements that may arise from patents.


## Cite Us

If you use PopSift for your publication, please cite us as:

```bibtex
@inproceedings{Griwodz2018Popsift,
author = {Griwodz, Carsten and Calvet, Lilian and Halvorsen, P{\aa}l},
title = {Popsift: A Faithful SIFT Implementation for Real-time Applications},
booktitle = {Proceedings of the 9th {ACM} Multimedia Systems Conference},
series = {MMSys '18},
year = {2018},
isbn = {978-1-4503-5192-8},
location = {Amsterdam, Netherlands},
pages = {415--420},
numpages = {6},
doi = {10.1145/3204949.3208136},
acmid = {3208136},
publisher = {ACM},
address = {New York, NY, USA},
author = {Griwodz, Carsten and Calvet, Lilian and Halvorsen, P{\aa}l},
title = {Popsift: A Faithful SIFT Implementation for Real-time Applications},
booktitle = {Proceedings of the 9th {ACM} Multimedia Systems Conference},
series = {MMSys '18},
year = {2018},
isbn = {978-1-4503-5192-8},
location = {Amsterdam, Netherlands},
pages = {415--420},
numpages = {6},
doi = {10.1145/3204949.3208136},
acmid = {3208136},
publisher = {ACM},
address = {New York, NY, USA},
}
```


## Acknowledgements

PopSift was developed within the project [POPART](https://alicevision.org/popart), which has been funded by the [European Commission in the Horizon 2020](https://cordis.europa.eu/project/id/644874) framework.
Expand Down
Loading