Please scroll the page down if you don't understand Russian and yet want to know what's going on here :)
Π ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Ρ Ρ Π°ΠΊΠ°ΡΠΎΠ½Π° ΠΠΎΡΠ½ΠΈΠΊΠ΅Π»Ρ (ΡΡΠ΅ΠΊ "ΠΠ΅Π½Π½Π°Ρ Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΠ°"), ΠΊΠΎΠΌΠ°Π½Π΄Π° "Π‘Π²ΠΈΠ΄Π΅ΡΠ΅Π»ΠΈ ΡΠ΅Π΄ΠΊΠΈΡ ΠΏΡΠΈΡΠΎΠ΄Π½ΡΡ ΡΠ²Π»Π΅Π½ΠΈΠΉ".
56 ΠΊΠΎΡΠΎΡΠΊΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΌΠ΅ΡΠ°Π»Π»ΡΡΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°, Ρ ΡΡΠ°ΠΏΠ° ΡΠ»ΠΎΡΠ°ΡΠΈΠΈ 1.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ½Π°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ Π½Π°ΡΠ»ΠΈ Π±Π»ΠΈΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠ·ΡΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°ΡΡ ΡΡΠ΄ Π²Π΅Π»ΠΈΡΠΈΠ½, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠ·ΡΡΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΌΠ΅ΡΠΈ Π² Π±ΠΎΡΠΊΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°:
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ SIFT-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠΎΡΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΌΠ°ΡΡΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π»ΠΎΠΆΠ½ΠΎΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠ°ΡΡΠΈΠ½Π³Π°), ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΄Π²ΠΈΠ³ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ ΡΠΎΡΠ΅ΠΊ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠ·ΡΡΠ΅ΠΉ Π² ΠΏΠ΅Π½Π΅. ΠΡΠ΅ ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ·ΡΡΠ΅ΠΉ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½ΠΈΠΆΠ΅:
Π¦Π²Π΅ΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠ°Ρ ΠΎΡΠΎΠ±ΡΡ ΡΠΎΡΠ΅ΠΊ SIFT, ΡΠ²Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΏΡΠ·ΡΡΡ (Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π±ΡΠ°Π»ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ Ρ ΡΠ°Π³ΠΎΠΌ 45 Π³ΡΠ°Π΄ΡΡΠΎΠ²).
Here you can find our team solution for Nornickel's hackathon 2nd task. The goal was to augment froth flotation process, to make it more controllable.
As an input we had 56 1-minute recordings with froth flotation. No annotation was provided.
We've used bunch of classical CV methods: from constant thresholding to SIFT descriptors, from import cv2
to home-made algorithms to suppress false-positives.
To measure properties of bubbles in froth, we've used combination of constant thresholding and Sobel filter, after that we've implemented custom algorithm to find circumscribing ellipse for the bubble (if it is possible).
To extract speed we've implemented simplified version of algorithm which was given at [2]. We've extracted SIFT keypoints and descriptors, after that we've matched keypoints at each pair of video frames and used this to compute keypoints "pseudo-speeds".
[2]: Jinping LIU, Weihua GUI, Zhaohui TANG: Flow velocity measurement and analysis based on froth image SIFT features and Kalman filter for froth flotation. Turk J Elec Eng & Comp Sci, (2013) 21: 2378 β 2396. doi:10.3906/elk-1204-91