PropantCheckChallenge
Finding proppant granules count and sizes distribution by photo - rosneft competition
Install / Use
/learn @RedMoon32/PropantCheckChallengeREADME
Propant Check Challenge Solution
Данный репозиторий является решением для сорвенования RosneftPropantCheckChallenge (https://boosters.pro/championship/RPCC/overview) Команды Ne_Beite (7 место из 160 команд). Условие задачи: по фотографиям рассыпанных на листке гранул пропанта классифицировать их фракцию и количество.
Содержание
Ne_Beite
├── data
│ ├── labels
│ │ └── train.csv
│ └── train
├── models
│ ├── regr_tree.model
├── README
├── train_distributions.py
├── preprocess.py
├── hough.py
├── requirements.txt
└── run.py
Описание решения <a name="overview"></a>
С помощью методов из OpenCV мы вырезаем из фотографии внутренний прямоугольник с гранулами проппанта и запускаем cv2.HoughCircles() для поиска окружностей на картинке. Далее высчитываем средний радиус и делим количество пикселей на переднем плане на фото на площадь круга с средним радиусом. Это и будет количеством гранул в ответе. Для подсчёта распределения гранул по ситам строим распределения радиусов найденных окружностей и по ним обучаем DecisionTreeRegressor, который затем будет сконвертирован в нейронку Torch для предсказания распределения бинов.
Презентация решения: https://docs.google.com/presentation/d/1wQ5OYPsjdsp4QQN5kUn7LCuuPR50J25oFWSBCFwrIgE/edit?usp=sharing
Описание файлов
- preprocess.py - предобработка фотографий (вырезка прямоугольников, настройка перспективы и яркости)
- hough.py - методы для подсчета гранул и распределения радиусов
- train_distributions.py - обучение распределений радиусов в размеры гранул
Запуск обучения <a name="training"></a>
- Для установки виртуального окружения и зависимостей:
$ python -m venv env
$ source env/bin/activateon Linux,$ env\Scripts\activateon Windows
$ pip install -r requirements.txt - Загрузите фотографии в папку data/train
- Для запуска процесса обучения и создания модели:
(env) $ python run.py
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
