Recent Releases

Kitware Maps Development of Toolkit for Image and Video Analysis

Kitware released version 1.1 of the Kitware Image and Video Exploitation and Retrieval (KWIVER) open-source toolkit before the 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Members of the computer vision team at Kitware appeared at the CVPR industry exposition to accent this technology and others. They also presented research, recruited for employment opportunities and served as conference chairs. Senior Director of Computer Vision Anthony Hoogs served as a general chair, and Director of Computer Vision Matt Turek served as a corporate relations chair.

Hoogs co-authored “A C3D-based Convolutional Neural Network for Frame Dropping Detection in a Single Video Shot,” which Senior R&D Engineer Chengjiang Long presented at the CVPR Workshop on Media Forensics. In the highly selective main conference program, Long presented “Correlational Gaussian Processes for Cross-Domain Visual Recognition.”

Kitware posted links to these papers on the company blog, as well as entries on KWIVER. Kitware made the introductory release of KWIVER this year in January. KWIVER is a repository of open-source software for image and video analysis that includes tools for video stabilization, object detection and tracking, bundle adjustment, camera calibration, three-dimensional data reconstruction, super-resolution imaging and content-based image retrieval.

The TeleSculptor application in the Motion-imagery Aerial Photogrammetry Toolkit extracts depth from aerial video. MAP-Tk is part of KWIVER.

The release of version 1.1 enhanced KWIVER for use cases in conducting video surveillance and processing underwater images, among others; matured the build process; revised documentation; and better coordinated how various pieces of the toolkit work together. The Motion-imagery Aerial Photogrammetry Toolkit (MAP-Tk) is one such piece. When Kitware first presented MAP-Tk at CVPR two years ago, it contained libraries of algorithms and structure-from-motion tools for video analysis. As MAP-Tk grew, its framework and core algorithms suited broader applications. To make them easier to reach, Kitware relocated these components inside KWIVER.

Kitware simultaneously turned the development of MAP-Tk toward specialized end-user tools. The primary tool, which the company now calls TeleSculptor, provides a graphical application for photogrammetry. In MAP-Tk 0.10, Kitware garnished TeleSculptor with support for carrying out a full structure-from-motion pipeline without receiving aid from command-line tools. Kitware released MAP-Tk 0.10 alongside KWIVER 1.1.

ParaView 5.4 Premieres in Advance of ISC High Performance

After previewing ParaView 5.4 in a series of blog posts, Kitware pushed the final version. Together, thirty developers added over 430 commits to the software.

“We revised the color legend with significant improvements in the choice and placement of graduations and annotations,” said Utkarsh Ayachit, a distinguished engineer and the lead developer of ParaView at Kitware.

Kitware team members called attention to ParaView 5.4 in a workshop at ISC High Performance 2017. The company timed the development cycle to acquaint conference registrants with release milestones:

  • The Multi-block Inspector panel, through which users review and modify properties for blocks in hierarchical multi-block datasets, received a redesign with performance and usability in mind.
  • The approach for loading state files in ParaView changed. The approach now allows ParaView to “Search files under specified directory.” This ability lets users share state files along with the datasets that these files need.
  • Reformatted dialog boxes for saving screenshots and animations improved access to options that affect saved results, including color palette, background transparency and spacing between views.
  • Axes Grid, a mechanism for annotating coordinate axes in three-dimensional views, extended to annotate each individual dataset.
  • The CFD General Notation System (CGNS) file reader gained support for boundary condition patches for curvilinear grids and support for block selection according to family names.
  • The number of supported VTK-m filters increased. Individually, these filters offer accelerated cell and point averaging, clipping, unused points removal and general surface extraction. In addition, the VTK-m contour filter acquired the ability to specify multiple isocontour values.
  • Support improved for High Dots Per Inch (HiDPI) displays such as Retina.

“In the next release, ParaView 5.5, users can expect usability to continue to advance,” Ayachit said. “Specifically, the release will incorporate OSPRay path tracing for realistic lighting.”

Version 8.0 of the Visualization Toolkit Assigns New Code Standard

Kitware passed another turning point for the Visualization Toolkit (VTK) with the release of version 8.0. The release became the first to benefit from C++11 compliant compilers. VTK now officially supports different aspects of C++11 such as default constructors, static assertion, non-static data members and enumeration declaration.

“The new features in C++11 allow developers to be more productive and eliminate common sources of bugs,” said Dave DeMarle, a principal engineer at Kitware and a developer of VTK.

“Now that VTK enforces the availability of a C++11 compiler, developers can rely on capabilities without maintaining awkward workarounds.”

For high-performance computing, the 8.0 release annexed the VTK-m framework of tools. These tools include new filters that process data. Kitware uploaded the filters to the Accelerators/Vtkm folder in the VTK repository.

Outside of VTK-m, the release merged algorithms that process points and geometries. One algorithm (vtkLagrangianParticleTracker) visualizes particles as they move through simulations, and another algorithm (vtkCookieCutter) precisely cuts a two-dimensional (2D) geometric surface with a separate 2D surface that acts as a stencil. Additional algorithms (vtkDensifyPointCloudFilter and vtkUnsignedDistance) operate on point clouds. The release also augmented existing algorithms in VTK. The algorithm for dual depth peeling, for example, developed the ability to render volumes.

In addition, the release added the QVTKOpenGLWidget class, which provides a robust integration of VTK and Qt 5. The release also improved the OpenVR module, which pairs data with Oculus Rift and HTC Vive.

“The transitions to Qt 5, C++11 and Python 3 give users, developers and packagers a great deal of capability and flexibility in VTK-enabled applications,” DeMarle said.

VTK is an open-source software platform that manipulates and displays two-, three- and four-dimensional data. The VTK download page contains files for version 8.0. For more points of the release, please read the Kitware blog. For assistance with VTK, please contact kitware(at)kitware(dot)com.

This technology was supported by the National Institute Of Biomedical Imaging And Bioengineering of the National Institutes of Health under Award Number R01EB014955. The content is solely the responsibility of the authors and does not necessarily represent the official views of the National Institutes of Health.

This material is based upon work supported by the U.S. Department of Energy, Office of Science, under Award Number DE-SC0012387. This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

This material was also supported by Sandia National Laboratories. Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia LLC, a wholly owned subsidiary of Honeywell International Inc. for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525.

Version 4.12 of the Insight Segmentation and Registration Toolkit Centers on Python Packages

Kitware issued links to the 4.12 release of the Insight Segmentation and Registration Toolkit (ITK) on the ITK website. Python wheel packages served as a pillar of the release. With Python bindings, developers can use all ITK functions in Python.

“Accessible computational methods enable researchers to reproduce advanced algorithms and apply them to novel domains,” said Matthew McCormick, a principal engineer at Kitware and a developer of ITK. “Wheel packages can be quickly installed, and the Python programming language can be picked up without formal computer science training.”

Filters formed another cornerstone of the release. They furnished ITK with algorithms that improve the robustness and accuracy of image segmentation. The MorphologicalWatershed filter, for example, uses concepts from geophysics to section images. Two other filters calculate strain tensors on tissue. In May, McCormick wrote an article on these filters in the Insight Journal.

“Advanced, high-performance, N-dimensional algorithms are hallmarks of ITK,” McCormick said. “New filters for segmentation and registration complement the existing library well.”

Filter maintenance allowed ITK to display histograms of measurements more rapidly and to model shapes through principal component analysis with less memory consumption. In addition, the 4.12 release established more support for Microsoft Visual Studio, Clang and the GNU Compiler Collection. Code coverage also climbed to surpass the record that version 4.11 set. Kitware summarized code coverage and other aspects of the 4.12 release on its blog.

While the material discussed here is part of a community effort, at Kitware, this material is based upon work funded, in whole, by a $241,323 award from the National Library of Medicine.

Kitware Powers Project Builds with CMake 3.9

Kitware officially completed the release cycle for CMake 3.9, which developers can now download. CMake consumed more than 900 commits from around 80 members of the development community since the last release happened in April 2017.

Numerous commits sought to relax constraints that affect parallel compilation with the Ninja generator. The relaxed constraints improve build times. Other commits targeted object libraries, which CMake can now install, import and export. These commits signaled the first steps of an iterative process that strives to make object libraries first-class citizens in CMake.

The release of version 3.8 previously made the CUDA programming language a first-class citizen in CMake. For the release of version 3.9, the CUDA_PTX_COMPILATION target property qualified CUDA to support PTX files in CMake and ship them as part of an application or a developer package. With this property, developers can perform just-in-time compilations of CUDA projects. Also for CUDA, the Visual Studio generator deepened support. Kitware elaborated on these and other particulars of CMake 3.9 on its blog.

Questions or comments are always welcome!