Skip to content

Releases: plstcharles/litiv

Update v1.6.1; samples, utilities, cleanup

11 Jul 23:33
Compare
Choose a tag to compare

This minor update brings some more optimizations, bugfixes, one sample (for the newly published dataset), and new utilities to the public framework.

Detailed changes:

  • added binary median blur utilities to imgproc module
  • fixed floating point issues in unit tests via new toggle
  • fixed build issues for arm/arm64 platforms
  • fixed build issues for newer gcc toolchains (6.3+)
  • added intel fast random number generator to math utilities
  • updated various imgproc utilities to use proper rand engine
  • fixed warnings related to imwarp usage with msvc toolchain
  • fixed bug in binary classification metric display utilities
  • cleaned glsl dataset module consumer interface
  • added cudev + cuda vec traits to utils module for cuda impls
  • added divup/ispow2 utilities to cuda device/host functions
  • fixed bgs algo LUT initialization by invalidating bad refs
  • added block size checks to various already-used reduce impls
  • updated changedet app to allow testing gmm sync/async impls
  • updated ocv utilities to rely on external seed for rand ops
  • updated all bgsubs to use new ocv utilities rand signatures
  • added gprof-based profiling support via cmake
  • added cmake check for neon instructions and toggle via defs
  • added inverted unroll func to cxx utilities
  • added integral image implementation with neon optimization
  • added compiler flag check for partial cxx14 support
  • added query functions to cxx utilities for user interaction
  • cleaned up litiv2018 dataset interface (hardcoded stuff)
  • added sample demonstrating litiv 2018 dataset parsing
  • added missing external includes to cmake config generator

Update v1.6.0; Mutual Video Segmentation

28 Feb 21:45
Compare
Choose a tag to compare

This update brings the final chunks of work done in 2017 into the public branch of the repo. The extension of our mutual foreground segmentation method (described here) to image sequences is thus complete; the associated paper should be published later this year. The implementation of this method is located in the imgproc module.

Besides, here is a list of noteworthy features also added in this version:

  • added a 2d image warping algorithm to imgproc module
  • added eigen3 header-only library to 3rdparty module
  • added lz4 compression library to 3rdparty module
  • added OF-DIS (optical flow) algo to 3rdparty module
  • cleaned up sospd library for header-only usage
  • cleaned up video capture app for new dataset
  • added a manual annotation creation app (handannot)
  • cleaned up handregistr app for usage w/ new dataset
  • added cmake support for clang tidy checks
  • added header analysis tool (cinclude2dot)
  • added more cuda implementations of imgproc utilities
  • added new litiv2018 dataset implementation interface
  • added more unit tests & optimizations for older code

Update v1.5.0; Cosegmentation

26 Aug 21:17
Compare
Choose a tag to compare

This update brings the cosegmentation work done in 2016-2017 into the public branch of the repo, and with them, tons of fixes, optimizations, and new utilities.

Some of the noteworthy new features:

  • 3rdparty module for sospd optimization methods
  • new dataset parser interfaces for stereo/multimodal datasets
  • full dataset eval support for stereo disparity/segmentation
  • shape context feature implementation w/ cuda optimization
  • new pkgconfig file generated on unix install via cmake
  • new framework utilities for easy cuda project linking
  • new vptz sample application w/ comments
  • tons of new unit tests for high-level module components
  • gmm learning/fitting impl for images in improc module
  • opengm library utilities for graph building/debugging
  • new console logging utilities w/ global verbosity control
  • aligned/default memory allocators and autobuffer impl
  • lookup table impl with runtime-fill support
  • several algorithms have been optimized using openmp
  • new functions in math utils (emd/cemd/rootsift)
  • new ocv matrix debug/printing/subrange utilities

Update v1.4.0; SLIC, LSS, MI

01 Feb 22:11
Compare
Choose a tag to compare

This update brings proper framework configuration for CUDA usage in algorithms, along with several new method implementations: SLIC, a superpixel segmentation algortihm, LSS, a feature descriptor, and a matcher interface for Mutual Information (MI) scoring.

More specific changelist below:

  • docker fixups for pull request testing & tagged image pushing
  • add framework utils to auto-compile cuda sources in modules
  • add global test module to hold common test utilities/data
  • cleanup defines & headers used by default in utils module
  • add LSS feature descriptor impl to features2d module
  • cleanup DASC feature descriptor impl & add new interf funcs
  • cleanup LBSP feature descriptor impl & add new interf funcs
  • add MI helper interface to compute match scores in features2d
  • add unit tests for features2d implementations & util functions
  • add new cuda utils to utils module (param handler + test kernel)
  • cleanup string manip utils in cxx utils (now using cpp impl file)
  • add new for_each/unpack utils for cxx arrays/tuples
  • remove all std namespace extensions (all now part of lv)
  • cleanup all multiline defines to use do-while(0) wrap macro
  • move all kinect-related utils to new kinect.hpp header
  • add isAligned, TypeInfo & other generic mat utils to ocv.hpp
  • add matrix print helper function to opencv.hpp
  • add isEqual/isNearlyEqual helper funcs to opencv.hpp
  • add HSL & packed YCbCr conversion utils to opencv.hpp
  • add unique color map generator to opencv.hpp
  • add pixel shift function to opencv.hpp
  • add missing cv::Mat_ constr to opencv.hpp for ocv <3.2
  • add tons of new tests & fixes for older impls
  • add new features sample to show usage of DASC/LSS/MI
  • add new slic sample to show usage of SLIC spx segmentation
  • fixup matlab read_lvmat script for multi-dim permutations

... and more quality-of-life fixes & formatting cleanups.

Update v1.3.4; Automated testing

15 Dec 22:07
Compare
Choose a tag to compare

This update brings automated building and testing via Travis-CI, Docker, CTest, Google Test, and Google Benchmark. Baseline tests for the 'utils' modules uncovered bugs which were also fixed in this release. More specific changelist below:

  • added cmake utils to download/add external projects to build tree;
  • added google test framework to 3rdparty as in-tree module;
  • added google benchmark framework to 3rdparty as in-tree module;
  • added docker files for full (non-gpu) litiv framework build & testing;
  • added travis CI config for automatic docker build & test on push;
  • cleaned up dependencies toggling options in top-level cmakelist;
  • added LTO option (with default on) to release builds on all toolchains;
  • added build-and-test-all target to top-level cmakelist;
  • rewrote framework utils to handle all modules in a common macro;
  • added tldr section to apache license file;
  • added license, language, build, and release shields to top readme;
  • updated top readme with fixups related to dependencies/features;
  • added cmake utility script to generate build-tree package information;
  • added basic regression tests to most 'utils' module classes & functions;
  • added performance tests to some math utils functions;
  • restructured utils module headers (distances->math, parallel->algo);
  • fixed possible (rare) deadlock issues where std convar were used;
  • fixed wrong return value in digit_count for NaN's;
  • fixed template issue for non-container types in has_const_iterator;
  • fixed unused variable issue in tuple/array for_each impl function;
  • fixed safety bin scaling issues in LUT implementation;
  • fixed unlock_guard destructor call for non-C++17 std::lock usage;
  • fixed template formatting in all distance/math utils functions;
  • fixed type issues for i/o vars in all distance/math util functions;
  • fixed simd hmax_8ui util function (offset was platform-dep);
  • added get_bigger_integer cxx util function;
  • added array/tuple unpack-and-call cxx util function;
  • added ispow2, extend_bits, is_big_endian integer math util functions;
  • added fast abs, inv, sqrt, and invsqrt float math util functions;
  • added static checks & asserts to opencv coord lookup util functions;

... and more quality-of-life fixes & formatting cleanups.

Update v1.3.3; CMake packaging

29 Nov 19:45
Compare
Choose a tag to compare
  • Rewrote module macros to simplify internal CMakeLists
  • Added CMake config/version package scripts for export
  • Added tons of new CMake configurations checks for edge cases
  • Rewrote world module to allow globbing of all source files
  • Fixed many CMake config bugs related to dependencies
  • Added option to toggle static/shared libs build
  • Added msvc option to add version tag/debug suffix to libs
  • Added module export & dependency checker in CMake packs
  • Added distinct CMake packs for build & install exports
  • Added internal lists for targets, include dirs, & dependencies
  • Added uninstall target for all platforms based on install manifest
  • Cleanup platforms utils function signatures
  • Cleanup DASC/LBSP descriptor extractor interfaces
  • Removed cyclical dependency between imgproc/feature2d
  • Updated utils module to be free of ocv deps (if needed)
  • Added documentation for all cxx utilities/functions
  • Rewrote defines.hpp for clarity & to add more def guards
  • Rewrote stl aligned alloc to offer default-init support
  • Removed vptz utils-def header and replaced by defines copy
  • Removed vptz exception (now using lv exception copy)
  • Rewrote world module interface (headers, config, info API)

Update v1.3.2; DASC descriptors

17 Nov 01:16
Compare
Choose a tag to compare
  • Fixed dshow device connection bug for capture app
  • Cleaned + documented dshow/opencv compat layer
  • Fixed all leftover warnings/issues for compilation w/ Clang
  • Fixed aligned allocation issue for platforms missing aligned_alloc
  • Removed cpack support (might be cleaned+reintroduced later)
  • Cleaned capture app & added 'nice' display for demo purposes
  • Removed bad FindOpenCV.cmake script (no need anyway)
  • Fix inconsistent missing calib3d header bug in datasets module
  • Add DASC descriptor w/ recursive & guided filtering (TPAMI2016)
  • Cleaned up LBSP descriptor interface (now up-to-date w/ ocv3.1)
  • Add cv funcs to read/write matrices to disk (w/ binary support)
  • Fixed some CMake options ordering issues when used in *.hpp.in

Update v1.3.1; more fixes!

28 Oct 16:34
Compare
Choose a tag to compare

In short:

  • Fixed VPTZ bugs when modifying camera FoV and window size
  • Updated vap to support data undistort + hardcoded corrections
  • Refactored datasets classes to share group interfaces
  • Fixed several MSVC compil errors related to math defines + templates
  • Rewrote/cleaned opencv display helper
  • Added manual video registration app
  • Fix array data loaders default grayscale handling issues
  • Rewrote most cmake projects to now rely on target properties

Update v1.3.0; refactoring for array-based datasets

04 Oct 03:06
Compare
Choose a tag to compare

Largely rewrote datasets module interface classes to support array-based packets processing (e.g. for cosegmentation and registration), & added new utility/helper functions to the module.

Besides:

  • DataPrecacher now relies on an atomic flag to avoid re-requests for almost-ready packets.
  • Added VAP trimodal (2016) dataset implementation specialization header.
  • Fixed compilation error for GCC 6.2 in BSDS500 dataset implementation.

Update v1.2.2; global cleanups & WiP for OpenGM

06 Sep 21:34
Compare
Choose a tag to compare

This release adds major cleanups for:

  • Cxx/platform functions in 'utils' module (better distinction between function types)
  • LITIV asserts (now using custom asserts, often with accompanying error messages)
  • Namespaces (now simply using 'lv' for everything litiv-related)
  • Enumerations (new naming convention to avoid clashes between vars and list names)
  • CMake modules (now using common structure for all packages, and better warnings)
  • Doxygen comments (now using default style instead of qt style)

It also adds README files throughout the project, support for OpenGM package dep usage, and some bugfixes.