soil-align

Introduction

soil-align is an application for registration of 3D images of porous media. It's based on computing affine transform and gamma correction invariant feature points (using the SIFT algorithm modified for 3D), matching them on two images (one of which called "source" and another "reference") and finding a transform which "maps" the source image to the reference.

An example: 2D slices ([100, :, :] and [700, :, :]) from the reference and the source images (both having dimensions \(1000 \times 1000 \times 1000\)) are shown, as well as the resulting image (standalone and overlayed with the reference).

Source code and binary packages

There is two options for obtaining the source code:
  • Download a release from GitHub. There is also an experimental binary package for Ubuntu LTS.
  • Clone git repository: git clone https://github.com/fatimp/soil-align.
Changelog is here.

Dependencies

  • SIFT3D version 2.0+
  • faiss (принадлежит компании Meta, признанной в РФ экстремистской организацией)
  • SBCL (Another implementation of Common Lisp will not do)
  • OpenBLAS
  • libtiff
  • LMDB
  • Qlot and SBCL for building

Installation

  1. Launch a shell and cd to the root directory of this project.
  2. Execute qlot install && qlot exec sbcl --dynamic-space-size 100gb
  3. In the opened shell execute (asdf:make :soil-align).
  4. Your executable file is src/soil-align.

Literature

  • B. Rister, M. A. Horowitz and D. L. Rubin, "Volumetric Image Registration From Invariant Keypoints," in IEEE Transactions on Image Processing, vol. 26, no. 10, pp. 4900-4910, Oct. 2017. doi: 10.1109/TIP.2017.2722689
  • Dong, Wei, Charikar Moses, and Kai Li. "Efficient k-nearest neighbor graph construction for generic similarity measures." Proceedings of the 20th international conference on World wide web. ACM, 2011.
  • CLAHE
  • RANSAC