Skip to main content
Have a personal or library account? Click to login
Bubble Evolution Detector B.E.D. – A Neural Network-Based Approach to Accurately Detect, Classify, and Evaluate Gas Bubbles Captured by A High-Speed Camera on Textured Surfaces Cover

Bubble Evolution Detector B.E.D. – A Neural Network-Based Approach to Accurately Detect, Classify, and Evaluate Gas Bubbles Captured by A High-Speed Camera on Textured Surfaces

Open Access
|Mar 2025

Figures & Tables

Figure 1

Sample image of gas bubbles on rough surface after detection.

Figure 2

Left: Qualitative Result. The red circles show manually annotated gas bubbles. The yellow circles are the detections. Right: false positive detected gas bubbles highligthed in green bounding boxes.

Table 1

Output of B.E.D. in tracking_results.fthr.

NR.PARAMETERUNITDESCRIPTION
1Consecutive number
2frame_idNumber of the processed image. The same number appears several times in the table, as several bubbles appear within each image
3confConfidence score. How confident the detector was in recognizing the bubble. Value between 0 and 1 (very certain).
4xµmX Position of the bubble center point
5yµmY Position of the bubble center point
6wµmWidth of Bubble
7hµmHeight of Bubble
8maxWHµmSize of Bubble
9idNumber of the bubble. Attention: This is not the tracking ID, but a consecutive number of all bubbles recognized in the video sequence, i.e. the same bubble has different IDs in different images.
10tsTrackingState. Internal Parameter for Tracking
11prePredecessor (predecessor). Tracking attempts to assign the bubbles of an image t to the bubbles of a previous image t-1. Pre-specifies the number (ID) of the assigned bubble from the previous image for each bubble. –1 means that the bubble has no predecessor.
12tidTrack ID. This is the unique identification number assigned to each bubble by means of tracking. This means that the same bubble has the same tid number in different images. (This does not apply to the value of id).
13tlTracklength. Number of images in which the bubble could be tracked up to this point.
14xeµmEstimated position of the bubble in the next image (x)
15yeµmEstimated position of the bubble in the next image (y)
16growaAbrupt growth with merges (merging of bubbles). Dimensionless. Growa is the ratio of bubble size (after the merge)/bubble size (before the merge)
17merge_idIf two bubbles are merged, merge_id specifies the number (ID) of the bubble with which the bubble is merged.
18growsµm/msContinuous growth rate. Defined as change in size per unit of time: ds/dt. Changes in bubble size due to merges are compensated for, i.e. factored out.
Note: If the bubble has only just been detected, dt (time difference since initial detection) is very small. Fluctuations in the determination of the bubble size can therefore lead to outliers for the value of grows. The longer the bubble can be observed, the more precise the value for grows becomes (see also parameter grows2).
19vxµm/msVelocity of the bubble in x direction. Defined as dx/dt. Attention: If the bubble has just been detected, dt (time difference since the first detection) is very small. Fluctuations in the determination of the bubble position can therefore lead to outliers for the value of vx.
The longer the bubble can be observed, the more precise the value for vx becomes.
20vyµm/msVelocity of the bubble in x direction. Defined as dy/dt. See notes for vx
21timemsCurrent time. Calculated as frame number (frame_id)/fps *1000
22vµm/msInstantaneous velocity of the bubble. Calculated as sqrt(vx² + vy²)
23vsµm/msSmoothed instantaneous velocity. Smoothed using a moving average (window width N = 20). Smoothing robustly removes the outliers at the beginning of the bubble detection.
24grows2µm/msContinuous growth rate (alternative calculation using regression). In order to compensate for the outliers in grows, a second calculation method for continuous growth was implemented. For this purpose, the bubble size is approximated linearly (regression line). grows2 is the increase in this line.
Changes in size due to merges are compensated for in advance. For longer observation periods, the value of grows approaches that of grows2. It is recommended to use grows2 instead of grows as the value for the continuous growth rate.
25size_correctedµmSize of the bubble, corrected for changes that occur due to bubble mergers. Basis for the calculation of grows2.
26size_approxµmLinear approximation of the bubble size. size_approx = m * t + n
The parameters of the linear equation are determined using least squares: m,n = argmin (size_approx – size_corrected)². The slope of the straight line is the continuous growth rate, grows2 = m
Table 2

Needed Python libraries with used version and licensess.

LIBRARYVERSIONLICENSE
pyarrow4.0.1Apache License, Version 2.0
numpy1.20.1BSD
matplotlib3.3.4PSF
pandas1.2.3BSD
scikit-learn0.24BSD (new)
scipy1.6.2BSD
opencv-python4.5.1MIT
DOI: https://doi.org/10.5334/jors.505 | Journal eISSN: 2049-9647
Language: English
Submitted on: Feb 2, 2024
Accepted on: Mar 20, 2025
Published on: Mar 28, 2025
Published by: Ubiquity Press
In partnership with: Paradigm Publishing Services
Publication frequency: 1 issue per year

© 2025 Lukas Lentz, Dorian Hüne, Sebastian Handrich, Christoph Niems, Thomas Gimpel, published by Ubiquity Press
This work is licensed under the Creative Commons Attribution 4.0 License.