https://github.com/nofate/froth_bot
π· Nornickel Hackathon Submission
https://github.com/nofate/froth_bot
flotation froth froth-flotation knn python sift telegram-bot
Last synced: about 1 month ago
JSON representation
π· Nornickel Hackathon Submission
- Host: GitHub
- URL: https://github.com/nofate/froth_bot
- Owner: nofate
- Created: 2021-04-17T13:57:50.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-18T17:11:39.000Z (about 5 years ago)
- Last Synced: 2025-04-07T11:45:36.623Z (about 1 year ago)
- Topics: flotation, froth, froth-flotation, knn, python, sift, telegram-bot
- Language: Jupyter Notebook
- Homepage:
- Size: 25.1 MB
- Stars: 2
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Please scroll the page down if you don't understand Russian and yet want to know what's going on here :)
# ΠΡΠ΄Π° Ρ ΠΏΠΎΠΏΠ°Π»?
Π ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Ρ [Ρ
Π°ΠΊΠ°ΡΠΎΠ½Π° ΠΠΎΡΠ½ΠΈΠΊΠ΅Π»Ρ](nnhackathon.ru) (ΡΡΠ΅ΠΊ "ΠΠ΅Π½Π½Π°Ρ Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΠ°"), ΠΊΠΎΠΌΠ°Π½Π΄Π° "Π‘Π²ΠΈΠ΄Π΅ΡΠ΅Π»ΠΈ ΡΠ΅Π΄ΠΊΠΈΡ
ΠΏΡΠΈΡΠΎΠ΄Π½ΡΡ
ΡΠ²Π»Π΅Π½ΠΈΠΉ".
## ΠΡ
ΠΎΠ΄
56 ΠΊΠΎΡΠΎΡΠΊΠΈΡ
Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΌΠ΅ΡΠ°Π»Π»ΡΡΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°, Ρ ΡΡΠ°ΠΏΠ° ΡΠ»ΠΎΡΠ°ΡΠΈΠΈ [1].
## ΠΡΡ
ΠΎΠ΄
### 1) Π‘ΡΠ°ΡΠΈΠΊΠ°: ΠΏΡΠ·ΡΡΠΈ ΠΈ ΠΈΡ
Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ½Π°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ Π½Π°ΡΠ»ΠΈ Π±Π»ΠΈΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠ·ΡΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°ΡΡ ΡΡΠ΄ Π²Π΅Π»ΠΈΡΠΈΠ½, Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠ·ΡΡΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΌΠ΅ΡΠΈ Π² Π±ΠΎΡΠΊΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°:

### 2) ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ°: ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠ·ΡΡΡΠΊΠΎΠ² ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ SIFT-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠΎΡΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΌΠ°ΡΡΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΡΡΠ΅ΠΉΠΌΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π»ΠΎΠΆΠ½ΠΎΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠ°ΡΡΠΈΠ½Π³Π°), ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΄Π²ΠΈΠ³ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ ΡΠΎΡΠ΅ΠΊ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ ΠΈΡ
ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠ·ΡΡΠ΅ΠΉ Π² ΠΏΠ΅Π½Π΅.
ΠΡΠ΅ ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ·ΡΡΠ΅ΠΉ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½ΠΈΠΆΠ΅:

Π¦Π²Π΅ΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΏΠ°Ρ ΠΎΡΠΎΠ±ΡΡ
ΡΠΎΡΠ΅ΠΊ SIFT, ΡΠ²Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΏΡΠ·ΡΡΡ (Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π±ΡΠ°Π»ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ Ρ ΡΠ°Π³ΠΎΠΌ 45 Π³ΡΠ°Π΄ΡΡΠΎΠ²).
# Where am I? What is this?
Here you can find our team solution for [Nornickel's hackathon](nnhackathon.ru) 2nd task. The goal was to augment froth flotation process, to make it more controllable.
## Input
As an input we had 56 1-minute recordings with froth flotation. No annotation was provided.
## Output
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.
### 1) Static
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).
### 2) Dynamic
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".
# References
[1]: https://ru.wikipedia.org/wiki/%D0%A4%D0%BB%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F
[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