Abstract
Measuring the mass of powder, including falling particles, is a common task in industrial applications. While scales are effective for static measurements, many applications require contactless sensing, where existing solutions are often costly, application-specific, and technically complex. In this work, we investigate computer vision as a practical alternative for contactless mass estimation. As an accessible real-world case study, we focus on coffee grinding and introduce Doppio, a novel video dataset capturing video of falling ground coffee, paired with precise, per-frame ground-truth weight measurements. To demonstrate contactless measuring, we evaluate deep learning-based approaches ranging from purely spatial feed-forward networks to recurrent spatio-temporal models. These models are analyzed with respect to their predictive accuracy and computational trade-offs. We demonstrate that deep learning-based computer vision models accurately estimate the cumulative weight of falling particles, establishing a solid foundation for future vision-based contactless measurement solutions.
Dataset
Example weight sequence. Visualization of the raw and smoothed weights of one exemplary sequence of our Doppio dataset. Additionally, the start , mid , and end sections are highlighted.
Metrics visualization. MAE
(gray shaded area ) is calculated between the
prediction and ground truth for each frame. MAE
(red dashed line) is computed at
the end of the sequence and measures the final discrepancy between the predicted and
ground truth weight, while normalizing to the discrepancy per doppio (i.e., 16 g).
Results
Results on Doppio. We report results of our models on Doppio test, using
MAE
and MAE
(both ↓) for different sections and for the full sequences. Best results
are highlighted for our FFNs, GRUs, and TCNs individually in orange and the overall
best results over all of our models in red .
BibTeX
@inproceedings{Kiefhaber2026Doppio,
title={Doppio: A Dataset for Contactless Weight Estimation of Falling Particles},
author={Kiefhaber, Simon and Steitz, Jan-Martin O. and Grabinski, Julia and Reich, Christoph and Wagner, Paul and Zimmermann, Max and Schaub-Meyer, Simone and Roth, Stefan},
booktitle={Proceedings of the 48th German Conference on Pattern Recognition},
year={2026},
url={https://visinf.github.io/doppio}
}
Metric Symbols (LaTeX)
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{xspace}
\pgfdeclareshape{coffeebean}{
\inheritsavedanchors[from=circle]
\inheritanchorborder[from=circle]
\inheritanchor[from=circle]{center}
\inheritanchor[from=circle]{north}
\inheritanchor[from=circle]{south}
\inheritanchor[from=circle]{east}
\inheritanchor[from=circle]{west}
\inheritanchor[from=circle]{north west}
\inheritanchor[from=circle]{north east}
\inheritanchor[from=circle]{south west}
\inheritanchor[from=circle]{south east}
% Background path: defines the clipping outline
\backgroundpath{
% CORRECTED: \radius is a saved macro (length), not a coordinate
\pgfmathsetlengthmacro{\r}{\radius}
\pgf@process{\centerpoint}
\pgfmathsetlengthmacro{\cx}{\pgf@x}
\pgfmathsetlengthmacro{\cy}{\pgf@y}
% Draw an asymmetric oval (the bean shell)
\pgfpathmoveto{\pgfpoint{\cx}{\cy + \r}}
\pgfpathcurveto
{\pgfpoint{\cx + 0.7*\r}{\cy + \r}}
{\pgfpoint{\cx + 0.9*\r}{\cy - \r}}
{\pgfpoint{\cx}{\cy - \r}}
\pgfpathcurveto
{\pgfpoint{\cx - 0.9*\r}{\cy - \r}}
{\pgfpoint{\cx - 0.7*\r}{\cy + \r}}
{\pgfpoint{\cx}{\cy + \r}}
\pgfpathclose
}
% Foreground path: drawn over the zoomed image (the crease)
\foregroundpath{
% CORRECTED HERE AS WELL
\pgfmathsetlengthmacro{\r}{\radius}
\pgf@process{\centerpoint}
\pgfmathsetlengthmacro{\cx}{\pgf@x}
\pgfmathsetlengthmacro{\cy}{\pgf@y}
% Draw the 'S' shaped crease down the center
\pgfpathmoveto{\pgfpoint{\cx}{\cy + 0.9*\r}}
\pgfpathcurveto
{\pgfpoint{\cx - 0.25*\r}{\cy + 0.3*\r}}
{\pgfpoint{\cx + 0.25*\r}{\cy - 0.3*\r}}
{\pgfpoint{\cx}{\cy - 0.9*\r}}
}
}
\DeclareRobustCommand{\coffeebsmall}{%
\scalebox{0.5}{\tikz[baseline=-0.6ex]{%
% \node[inner sep=0pt, outer sep=0pt, text opacity=0] {o};
\node[coffeebean, draw=black, thick, minimum size=1em, inner sep=0pt] {};
}}%
}
\newcommand{\MAED}{MAE\textsubscript{\coffeebsmall}\@\xspace}
\newcommand{\MAEA}{MAE\textsubscript{$\square$}\@\xspace}
Acknowledgements
SK has been funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy – EXC-3057. J-MS has been funded by the State of Hesse through LOEWE emergenCITY (Grant no. LOEWE/1/12/519/03/05.001(0016)/72). JG has been funded by the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No. 866008). CR is supported by the Konrad Zuse School of Excellence in Learning and Intelligent Systems (ELIZA) through the DAAD programme Konrad Zuse Schools of Excellence in Artificial Intelligence, sponsored by the German Federal Ministry of Education and Research. We also acknowledge the support of the European Laboratory for Learning and Intelligent Systems (ELLIS) and Munich Center for Machine Learning (MCML). SSM and PW have been funded by the DFG – project No. 529680848. Finally, we thank L. Kammeyer, J. Milkovits, and F. Wichert for their help with recording this dataset.