Skip to content

Release 3.3.0 (2025/08/18)

Latest
Compare
Choose a tag to compare
@fabiencastan fabiencastan released this 19 Aug 08:52
· 107 commits to develop since this release
928bac2

Highlights

New Pipelines

  • Color Calibration: Automated color correction from color charts
  • Raw to EXR conversion: Professional image format processing
  • Object Reconstruction: Targeted reconstruction with automatic object segmentation
  • Turntable Object Reconstruction: Streamlined workflow for rotating object capture
  • 360° Object Reconstruction: Reconstruction of complete dual-sided scanning
  • LiDAR Processing: Native E57 file import with integrated mesh generation
  • Multi-View Photometric Stereo: Advanced surface detail reconstruction with multiple light sources for each viewpoint.

Pipelines Improvements

  • Camera Tracking pipeline: improved stability and reliability
  • Introduced experimental fine-grained pipelines for increased modularity and workflow flexibility

Core Enhancements

  • Python Bindings Integration: Enhanced AliceVision accessibility with native Python support for streamlined Machine Learning workflows

Major Features

  • Add initial Python binding with SWIG PR
  • First Lidar Meshing Application PR
  • Multiple shots: Align and merge multiple SfM from feature matches PR
  • [meshroom] Add color calibration pipeline PR
  • [pipeline] New photogrammetry of the two sides of an object PR
  • [pipeline] New pipeline for object reconstruction from a turntable PR
  • [pipeline] New pipeline for the photogrammetry of an object using AI semantic segmentation PR
  • Add E57 importer PR
  • Add rawImageConversion pipeline PR
  • [meshroom] Add new "Lidar Meshing" template PR

Features

  • ApplyCalibration: Lens Calibration is done on Open Gate plates, but camera tracking could be done on cropped plates PR
  • [software] new MeshRemoveUnseenFaces software PR
  • [core] Separate Camera and Distortion Types in Model Naming PR
  • PLY loader to SfMData landmarks PR
  • Lidar decimation and merging PR
  • Add New Undistortion Models PR
  • Undistortion Calibration PR
  • [Photometric Stereo] MultiView fusion in Texturing PR
  • Colorizing node PR
  • [sfm] New sfmFilter software: split sfm based on filenames regex PR
  • [export] Add export of animated distortion in Nuke PR
  • Use lidar as constraints in sfm PR
  • Enable merging of multiple sfms PR
  • [build] SwigBinding: Add support for the Python binding with SWIG on Windows PR
  • New tool to import external Alembic files with an animated camera PR
  • Add masks to export images PR
  • features detector checks for mask in a region PR
  • Add numpy to python bindings PR
  • Add module image to python bindings PR
  • RelativePoseEstimating accepts an image pairs list to reduce complexity PR
  • SwigBinding: Add Python binding for matchingImageCollection IO functions PR
  • [sfm] Add new parameters to the SfM process PR
  • [doc] README.md: Add DeepWiki link, the AI documentation you can talk to PR

Other Improvements

  • Start Development 3.3.0 PR
  • Add estimator states to sfmdata PR
  • Update Color Space Extraction from image Metadata PR
  • ImageSegmentation: add an option to choose between cpu and gpu PR
  • Fix validity check on distortion object PR
  • Enhance controllability and readability by ensuring non direct access to data members PR
  • Export lens grid undistorted PR
  • Pixel Aspect Ratio application PR
  • Add Bundle Adjustment unit tests PR
  • Remove specifics required by Eigen prior to C++17 PR
  • Remove Boost-Filesystem and replace it with the std::filesystem PR
  • Clean-up .clang-tidy and apply camelBack case on functions and variables for some modules PR
  • Add option to keep input filename in imageSegmentation PR
  • [software] Disable clang-format around program options PR
  • [software] Apply clang-formatting on all the executables PR
  • FeatureExtraction: Add analytical fisheye mask PR
  • [sfmData] Rename functions and files to respect case rules PR
  • Remove all remaining references to Boost-Filesystem PR
  • Add aarch64 support (adjust PR1616) PR
  • Add camera color spaces PR
  • Rename Python aliceVision module into pyalicevision PR
  • E57 importer is now generating multiple sfmData PR
  • Clean and rework meshing code PR
  • [sfm] Handle specific alignment case for pure translations PR
  • [sfm] Sequential: Update default value for Ransac's max iterations PR
  • [keyframe] Set default values for some uninitialized variables PR
  • [aliceVision] Minor bugfixes across the project PR
  • SwigBinding: Extend the binding of camera and add initial binding for other modules PR
  • Option to Remove absolute paths to linked libraries PR
  • [software] New SelectConnectedViews software PR
  • [software] KeyframeSelection: Update default minimum number of keyframes PR
  • [mesh] visibility from mesh itself: check point is in camera frustum PR
  • Catch error codes thrown by std::filesystem::exists PR
  • Add missing standard header include PR
  • Export radial3 distortion to nuke PR
  • [pipeline] FeatureMatching: Update default value for Ransac's maximum number of iterations PR
  • [Cmake] split sfm library PR
  • [sfm] update tracks PR
  • Solve a set of bugs on cameraInit PR
  • anisotropic bounds for sfm PR
  • Add SfM Expanding application PR
  • ApplyCalibration: Add option to use a Lens calibration file from 3dequalizer in json PR
  • Use focal length from json and fix typos in parameters PR
  • Add locks for intrinsics PR
  • sfmTransform: Add option to lineup camera motion with object/lidar given an external camera pose PR
  • Distortion export for pipelines without lens grids PR
  • [hdr] Upgrade on HDR brackets estimation PR
  • Clean up focal length and change anamorphic model PR
  • [sfmData] ImageInfo: Add support for ARRI- and DJI-specific focal length metadata PR
  • Depth/normal maps rendering from Mesh PR
  • Remove imageCache code from alicevision PR
  • [utils] Pose injection from JSON file PR
  • Merge symbolic and automatic SfM PR
  • Add global rotation estimation app PR
  • Add SWIG binding of camera shared pointers PR
  • Adding logs to sfmExpanding PR
  • [docker] Fix export of ALICEVISION_* environment variables PR
  • Build OpenCV with FFmpeg on Linux PR
  • [docker] Update CUDA minor version to 12.1.1 PR
  • Clarify check-cpu.sh documentation PR
  • Update sfmBootstraping parameters PR
  • Add Equirectangular camera support for SFM PR
  • sfmMerge can merge Intrinsics PR
  • Mask processing app PR
  • Fix typos in README and PR template PR
  • Output second sfm for visualisation PR
  • Fix typos in src/aliceVision PR
  • Reduce intrication of distortion with intrinsics PR
  • Adding logs to export USD PR
  • Fix typos in src/software PR
  • Fix source typo in software/pipeline/main_lightingCalibration.cpp PR
  • Fix various remaining typos PR
  • fix sfmMerge PR
  • Versatile image exporting PR
  • Fix error on generated depthmap EXR PR
  • Upgrade compilation options and CI for C++20 support PR
  • Multiple lineup at different frames PR
  • Fix some remaining typos PR
  • Remove unused "ci" folder PR
  • [sfmDataIO] Fix Alembic dependency requirement for unit test PR
  • Survey Injection PR
  • [meshroom] Add AliceVision nodes and templates for Meshroom PR
  • Reduce compilation warnings and clean-up files PR
  • [meshroom] ExtractMetadata: Move pyalicevision import into the processChunk method PR
  • [docker] Copy meshroom folder to be able to install nodes and templates PR
  • Color checker detection and correction update PR
  • Fix division zero at Texturing PR
  • Add TracksMerging node and partially add the tracks module to the Python binding PR
  • Deep merging of multiple tracks sets without using original matches PR
  • [utils] Image Processing: Add simultaneous support for regex and input folders PR
  • Add application to generate virtual tracks PR
  • Upgrade experimental pipelines for better integration in Meshroom PR
  • [docker] Ubuntu: Use CMake from standard repo instead of Kitware's PR
  • [meshroom] CamTrack: Provide PrepareDenseScene with segmentation masks PR
  • [sfmData] Add focal length naming convention PR
  • Global binding PR
  • [utils] Optimize exportImages application when only undistort is needed PR
  • [meshroom] SketchfabUpload: Import requests at the function-level PR
  • Update image module of Python binding PR
  • SwigBinding: Add binding for the feature and matching modules PR
  • [meshroom] Use CamelCase for all attribute labels PR
  • Update python test with oiio metadata writing PR
  • Add more logging to new pipeline PR
  • Output modified sfmData in exportImages PR
  • Force Pixel Aspect Ratio in Distortion Calibration PR
  • Improve SWIG Module Type Sharing for Enhanced Interoperability PR
  • [blender] Fix .obj import for blender 4 PR
  • Improving python bindings for image and feature modules PR
  • SwigBinding: Add support of Landmarks PR
  • SwigBinding: Expose ProgressDisplay PR
  • Add parallelization tool to optimize chunk computation distribution PR
  • [meshroom] Fix missing connection in "CameraTracking without calibration experimental" pipeline PR
  • [meshroom] ImportAlembic: Add missing period in file extensions PR
  • [meshroom] ScenePreview: Hide backfaces in 3D render PR
  • [meshroom] MultiViewPhotometricStereo: Add missing Publish node PR
  • [nodes] Blender: Rescale rendered images based on their pixel aspect ratio PR
  • [nodes] ExportDistortion: Option to export lens grid undistorted PR
  • [nodes] ImageProcessing: New option to apply the Pixel Aspect Ratio PR
  • [pipelines] Enable Keep Filename for all ImageSegmentation nodes in templates PR
  • [pipelines] Panorama: Enable "Minimal 2D Motion" for FeatureMatching PR
  • [pipelines] PanoramaFisheyeHdr: Run FeatureExtraction after PanoramaInit PR
  • [pipelines] PhotogAndCamTrack: Update matching mode to "Exhaustive" PR
  • [nodes] ImageSegmentation: Support loading masks in 2D Viewer if they are named after the input images PR
  • [nodes] CameraInit: check allowedCameraModels validity PR
  • [nodes] Use utilitary constants for common ChoiceParams lists of values PR
  • [nodes] ExportAnimatedCameras: rename as ST maps (instead of UV) PR
  • [pipelines] NodalTracking: Apply masks in ScenePreview PR
  • [nodes] New node MeshRemoveUnseenFaces PR
  • [nodes] StructureFromMotion: Update default value for the maximum number of Ransac iterations PR
  • [nodes] CameraInit: Separate Camera and Distortion Types in Model Naming PR
  • [nodes] Update the ressources needs for the SFM node PR
  • [nodes] New SelectConnectedViews node PR
  • [nodes] KeyframeSelection: Update default minimum number of keyframes PR
  • [nodes] ExportanimatedCamera: change default value for the principal point correction PR
  • [nodes] FeatureMatching: Update default value for the maximum number of Ransac iterations PR
  • [nodes] ImageProcessing : use keepImageFilename attribute PR
  • [nodes] Fix outputImages if no export in ExportAnimatedCamera PR
  • [nodes] Blender scripts: Add missing __init__.py PR
  • [nodes] SphereDetection: Increase max value for sphereRadius PR
  • [nodes] Use principal point in scenePreview PR
  • [nodes] ApplyCalibration: Add option to use a Lens calibration file from 3dequalizer in json PR
  • [pipelines] Add distortion export for templates without calibration PR
  • [nodes] Use bindings for HDR brackets estimation PR
  • [nodes] LightingCalibration: Exclude visualization output from command line PR
  • [nodes] LdrToHdr: Move import of pyalicevision within functions PR
  • [nodes] Add new SfMChecking node PR
  • [pipelines] PhotogCamTrack: Invert masks for segmentation PR
  • [nodes] Add Global Rotation Estimating node PR
  • [nodes] ExportDistortion: Add animated distortion option PR
  • [nodes] Fixed spelling mistake in FeatureExtraction.py PR
  • [pipelines] Experimental: Align and set colors for all nodes PR
  • [nodes] Add nodes for versatile image exporting PR
  • [nodes] Replace desc.Node.internalFolder with {nodeCacheFolder} PR
  • [pipelines] Nodal Camera Tracking: Add a new template with the calibration of the distortion PR
  • [nodes] Add new SfMPoseInjecting node PR
  • [meshroom] Fix ambient typo on MVPS template PR

Bugfixes

  • [image] io: Rely on OIIO to determine if an image file exists or not PR
  • Fix typo in bundle adjustment unit test PR
  • [docker] Fix the build of Docker images for Ubuntu PR
  • EXR STMaps use floating point precision PR
  • Add fstream include to import e57 PR
  • [release] fix script to check dependencies PR
  • ExportAnimatedCamera export alembic with complete cameras information PR
  • [sfmData] fix relative to absolute path conversion for features/matches folders PR
  • fix camera pose lock I/O PR
  • Fix pipeline when LdrToHdrMerge is used on single brackets PR
  • Fix crash on convert distortion PR
  • Minor checks and log PR
  • [image] Fix erroneous color space detection for images that contain "raw" in their filepath PR
  • Fix SfM when using undistortions PR
  • Add missing fstream include in ApplyCalibration PR
  • [software] PanoramaSeams: Check that the input is not empty PR
  • Inverted flag check in intrinsics PR
  • fix alembic I/O PR
  • [utils] Fix applyCalibration logic for isDesqueezed PR
  • [pipeline] sfmBootstraping: Fix inversion between min and max PR
  • [FuseCut] Fix: Check cam vertex validity in meshing PR
  • Add standard include for fstream PR
  • [segmentation] Image segmentation CPU bugfix and ONNX output update PR
  • fixed bug in sfmExpanding PR
  • SfmBootstrapping: Fix bug when parallax angles are less than 1 degree PR
  • Update minimal required CMake version to 3.5 for all modules PR
  • [src] Fix dependencies depending on build options PR
  • [track] Use std::map instead of std::unordered_map to represent Tracks PR
  • Update SWIG code to remove errors PR
  • [docker] Dependencies: Add a symlink to python3 to make python callable PR
  • [image] Remove static keyword from isSupported and getSupportedExtensions PR
  • [fix] Remove invalid default value in ldr2hdrCalibration PR
  • [Dependencies] Adapt code to new Eigen PR
  • Fix bug in sfmMerge PR
  • [mesh] Fix mesh appearing whitened in 3D viewer PR
  • [MVS] meshPostProcessing: bugfix in the cleanup of removed free points PR
  • [sfm] statistics: fix statistics to avoid troubles in particular cases PR
  • Update experimental pipelines PR
  • Remove hack with Custom camera model PR
  • [pipeline] Adding missing link in photogrammetry pipeline PR
  • [Fix] Initialize resectionid depending on previous sfm PR
  • Update json utility functions PR
  • Remove error or warning for some compilers PR
  • Fix nodal pipeline including scenePreview crash PR
  • Update the solver's parameters for more robust unit tests PR
  • [meshroom] PhotogrammetryObjectTwoSides: Remove hard-coded paths to models PR

CI, Build and Documentation

  • [doc] Fix RTD build + other fixes/improvement of the doc PR
  • [cmake] AllInOne: update to suitesparse-7.3, ceres-2.2 PR
  • [ci] Update link to the VCPKG archive for the Windows CI PR
  • [docker] Fix the build of Docker images for Ubuntu PR
  • [cmake] Dependencies: Update zlib version to 1.3.1 PR
  • [build] Add libe57format as an internal dependency PR
  • [build] Add libe57format as an internal dependency PR
  • [build] Update the list of installed features for OpenImageIO with VCPKG PR
  • [build] Update Geogram to 1.8.8 PR
  • Fix coverage in cmake PR
  • Update boost and oiio dependencies PR
  • Remove OpenMesh from internal dependencies PR
  • Add condition to check dependency MeshSDFilter folder PR
  • libE57Format in Copying.md PR
  • Externalize nanoflann PR
  • MeshSDFilter: Remove submodule PR
  • [ci] Windows: Add appropriate flags to compile with CUDA < 12.1 PR
  • [build] Fix some C++17 incompabilities PR
  • [build] Update SWIG version to 4.3.0 PR
  • CI: Move from CentOS to Ubuntu for Linux PR
  • [docker] Add Dockerfiles for Rocky 9 PR
  • [cmake] Update download link for Boost 1.84.0 PR
  • [src] Comply with nanoflann >= 1.6.0 changes PR
  • [ci] Windows: Only install necessary components from the CUDA Toolkit PR
  • [ci] Windows: Update vcpkg archive with latest dependencies versions PR
  • [ci] Windows: Update vcpkg archive with SWIG support PR
  • [ci] Update the path to the segmentation nodes for Meshroom in the CI PR
  • Update minimal required CMake version to 3.5 for all modules PR
  • [src] Fix dependencies depending on build options PR
  • [track] Use std::map instead of std::unordered_map to represent Tracks PR
  • Update SWIG code to remove errors PR
  • [docker] Dependencies: Add a symlink to python3 to make python callable PR
  • Dependencies update PR
  • [src] Update DLL discovery in __init__.py for the binding on Windows PR
  • Update Dockerfiles PR
  • [docker] rocky: update gxx and enable cctag PR
  • [ci] Windows: Update vcpkg archive with 2025.07.08 tag PR
  • [build] Enable the build of OpenCV's and OpenImageIO's Python bindings PR
  • [doc] Update INSTALL.md PR
  • [doc] README.md: Add DeepWiki link, the AI documentation you can talk to PR
  • [cmake] Dependencies: Update OpenCV to 4.12.0 PR

Updates to the Sensor Database

  • Add ASUS_I01WD (Asus ZenFone 6) to sensorDB PR
  • Adding Google Pixel 6a to cameraSensors.db PR
  • Update cameraSensors.db PR
  • Update cameraSensors.db PR
  • Update cameraSensors.db PR
  • Update Fairphone cameraSensor PR
  • Fairphone 5 cameraSensors.db fix PR
  • [cameraSensors] OMNIVISION uctronics and gophotonics PR
  • [cameraSensors] fix Samsung SM-G998B PR
  • [cameraSensors] Add DJI Mini 2 SE PR
  • Added insta360 x3 sensor to db PR
  • [sensordb] Fix typo of 'OnePlus' devices PR
  • [sensordb] OnePlus 8 Pro PR
  • Fix Sonx RX0 II camera model PR
  • Update cameraSensors.db Sony ILCE-6700 PR
  • Update cameraSensors.db PR
  • Update cameraSensors.db DJI Mini3Pro PR
  • Update cameraSensors.db with Pixel 8 and Pixel 8 Pro PR
  • Update cameraSensors.db PR

Contributors

ahdistefano, albertoporri, Alxiice, AncoraIo36, andrewgreen5610, apirek, Armado001, balloonalpha, c-ewing, Cal-Bur, cbentejac, CedricThebault, demoulinv, Erol444, EternalUnderperformer, fabiencastan, heyvian, ICIbrahim, JackBoosY, jmelou, luzpaz, maggo1404, male4a, mh0g, natowi, NicholasFlamy, paweller, predat, servantftransperfect, simogasp, theremygit, woutkolkman