Edit page History

2016-01-29 - KNIME Image Processing hackathon

    From Monday, January 11, 2016 through Friday, January 22, 2016, Christian Dietz of the University of Konstanz hosted ~30 developers at the KNIME Konstanz Regional Office for a hackathon to develop the KNIME Image Processing extensions along with the underlying ImageJ Ops library, as well as other supporting technologies such as ImgLib2 and ClearVolume.


    The following chart illustrates when everyone was present:

    Preset = TimeHorizontal\_AutoPlaceBars\_UnitYear ImageSize = width:600 Colors = ` id:c01 value:blue` ` id:c02 value:red` ` id:c03 value:green` ` id:c04 value:black` ` id:c05 value:magenta` ` id:c06 value:teal` ` id:c07 value:yelloworange` ` id:c08 value:skyblue` ` id:c09 value:claret` ` id:c10 value:oceanblue` ` id:c11 value:purple` ` id:c12 value:powderblue` ` id:c13 value:coral` ` id:c14 value:redorange` ` id:c15 value:kelleygreen` ` id:c16 value:orange` ` id:c17 value:lightpurple` ` id:c18 value:tan2` ` id:c19 value:gray(0.3)` ` id:c20 value:blue` ` id:c21 value:red` ` id:c22 value:green` ` id:c23 value:black` ` id:c24 value:magenta` ` id:c25 value:teal` ` id:c26 value:yelloworange` ` id:c27 value:skyblue` ` id:c28 value:claret` ` id:c29 value:oceanblue` ` id:gridLine value:gray(0.5)` ` id:gridCanvas value:gray(0.8)` BackgroundColors = canvas:gridCanvas Period = from:11 till:23 ScaleMajor = unit:year increment:1 start:11 grid:white LineData = ` at:11 color:gridLine layer:back width:0.5` ` at:12 color:gridLine layer:back width:0.5` ` at:13 color:gridLine layer:back width:0.5` ` at:14 color:gridLine layer:back width:0.5` ` at:15 color:gridLine layer:back width:0.5` ` at:16 color:gridLine layer:back width:0.5` ` at:17 color:gridLine layer:back width:0.5` ` at:18 color:gridLine layer:back width:0.5` ` at:19 color:gridLine layer:back width:0.5` ` at:20 color:gridLine layer:back width:0.5` ` at:21 color:gridLine layer:back width:0.5` ` at:22 color:gridLine layer:back width:0.5` ` at:23 color:gridLine layer:back width:0.5` BarData= ` barset:Hackers` PlotData= ` width:15 ` ` fontsize:M` ` textcolor:white` ` align:left ` ` anchor:from ` ` shift:(4,-4) ` ` color:black` ` barSet:Hackers` ` color:c01 from:18 till:21 text:"Ulrik Günther (MPI-CBG)"` ` color:c02 from:18 till:20 text:"Tobias Kötter (KNIME)"` ` color:c03 from:18 till:20 text:"Björn Lohmann (KNIME)"` ` color:c04 from:16 till:22 text:"Eike Heinz (UniKN)"` ` color:c05 from:14 till:22 text:"Kevin Mader (ETH/4Quant)"` ` color:c06 from:14 till:21 text:"Thomas J. Re (UniSpitalBasel)"` ` color:c07 from:14 till:18 text:"Julianus Pfeuffer (EKUT)"` ` color:c08 from:13 till:21 text:"Robert Haase (MPI-CBG)"` ` color:c09 from:13 till:21 text:"Florian Jug (MPI-CBG)"` ` color:c10 from:13 till:21 text:"Tobias Pietzsch (MPI-CBG)"` ` color:c11 from:13 till:21 text:"Loic Royer (MPI-CBG)"` ` color:c12 from:13 till:17 text:"Tim-Oliver Buchholz (UniKN)"` ` color:c13 from:13 till:17 text:"Temesgen H. Dadi (FU Berlin)"` ` color:c14 from:12 till:22 text:"Christian Dietz (UniKN)"` ` color:c15 from:12 till:22 text:"Alexander Fillbrunn (UniKN)"` ` color:c16 from:12 till:22 text:"Jonathan Hale (KNIME)"` ` color:c17 from:12 till:22 text:"Stefan Helfrich (UniKN)"` ` color:c18 from:12 till:22 text:"Mark Hiner (UniWisc)"` ` color:c19 from:12 till:22 text:"Martin Horn (UniKN)"` ` color:c20 from:12 till:22 text:"David Kolb (UniKN)"` ` color:c21 from:12 till:22 text:"Ole Ostergaard (UniKN)"` ` color:c22 from:12 till:22 text:"Curtis Rueden (UniWisc)"` ` color:c23 from:12 till:22 text:"Patrick Winter (UniKN)"` ` color:c24 from:12 till:21 text:"Nico Hoffmann (TUD)"` ` color:c25 from:12 till:19 text:"Jon Fuller (KNIME)"` ` color:c26 from:12 till:19 text:"Kyle Harrington (HMS)"` ` color:c27 from:12 till:17 text:"Timo Sachsenberg (EKUT)"` ` color:c28 from:12 till:15 text:"Luis de la Garza (EKUT)"` ` color:c29 from:12 till:15 text:"Jan Eglinger (FMI Basel)"`

    Hackathon progress

    Mark Hiner

    Curtis Rueden

    • Improvements
      • Added ops to convert images between types (using map) (convert-images )
      • Improved inplace and hybrid op interfaces (binary-inplace , special-lookups )
      • Improved the help op to support filtering by more criteria (special-help )
      • Improved ImageJ tutorials to facilitate community members learning ImageJ2 ([https://github.com/imagej/tutorials/compare/88c124b504f3f1e603fe106bbb34ff5423012f47%5E…54de6c20a6db7b69514cd7279c98683e850ce657 1])
      • Improved structure of Script Editor Templates menu, thanks to discussions with kephale (templates-menu )
      • Marked ImageJ Legacy as optional, thanks to feedback from kmader and others (imagej/imagej@e8fbfeee )
      • Added a main class to Fiji, for easier launching from an IDE, thanks to a discussion with fjug ([https://github.com/fiji/fiji/compare/bc128e3d7ab8c9e1269d88b7e534f7025e6f41cd%5E…f45204e32105873f4cddb132740d17deeda49879 1])
      • Added a View marker interface to ImgLib2, to facilitate “lightweight” ops (view-marker )
      • Helped clean up tibuch ‘s Ops Views PR (views )
      • Helped hinerm a bit with the Renjin script language ([https://github.com/scijava/scripting-renjin/compare/8c65d9ae8ca30ffe3c6b3e70e1dd88222e07a52c%5E…f6fffb4117bed4c37811fa64a114145ce0b5c938 1])
      • Helped fjug and tpietzsch establish Jenkins jobs for MPI-CBG projects
    • Research
      • Investigated improvements to Ops generic parameter matching. The problem is complex, but a solution is in the works.
      • Explored possible Ops matching performance improvements (fast-op-index )
      • Improved Jenkins jobs to build SNAPSHOT javadoc for all core SciJava components (scijava, scifio, imglib2 and imagej). as requested by stelfrich (1 , 2 , 3 )
    • Reviewed and merged PRs (1, 2, 3, 4, 5, 6, 7, 8, 9)

    Robert Haase

    • Implemented continuous (Hyper-)Ellipsoids, Rectangles and Binary operators for imglib2-roi.
    • Developed prototype for “Data Explorer” window for ImageJ/Fiji
      • holding various data structures like images, labelings, measurements (tables) and plots. The structure is persistent, so closing windows does not delete the items from the tree. They can be reopened.
      • 2D/3D/nD? data is handled equally, so selecting/deleting labels for/from further analysis according to their properties is possible more or less independent from the labels dimensionality.
      • Measurements on labels is based on imagej ops()

    Patrick Winter

    • org.knime.cluster the abstract implementation of the cluster integration in KNIME is now open source, enabling the community to easily implement their own cluster connector
    • Wrapped metanodes (aka subnodes) can now be executed in the cluster and also support split input data (which was not the case with the previous implementation of metanodes)
    • Implementation of cluster connectors got simpler since we removed the differentiation of single jobs and chunked jobs with a size of 1
    • Many bugfixes in the old implementation, as well as fixes in org.knime.core (mostly concerning subnodes)

    Ulrik Günther

    • discussed future directions and extensions for ClearVolume with Loic Royer , fjug and tpietzsch .
    • moved scenegraph implementation for ClearVolume to own project for re-usability.
    • moved ClearGL back to pure Java
    • discussed possilibities for additional renderers (e.g. software renderer) with kephale .
    • discussed implementation with Loic Royer and wrote first tests.

    Tobias Pietzsch

    • reviewed, augmented and merged tinevez YAML serialization for ui-behaviour .
    • moved ui-behaviour to the scijava org and set up jenkins jobs with ctrueden , and released 1.0.0.
    • fixed memory leak in BigDataViewer (1).
    • worked on factor graph library for tracking/segmentation formulations with fjug .
    • reviewed and merged imglib2 PRs 2, 3, 4, 5, 6, 7, 8.
    • unified naming of “source” and “target” in imglib2 Views and RealViews 9.
    • investigated imglib2 PlanarImg bug with dietzc and kephale .

    Stefan Helfrich

    Technical discussions

    Future directions