Проект хакатона Nuclear IT Hack (school) — кейс: "ИИ для лазерной обработки"
Система компьютерного зрения для высокоточного позиционирования прямоугольных заготовок в задачах лазерной маркировки и микрообработки. На вход подаётся изображение с камеры, установленной под углом к рабочему полю. На выходе — координаты центра заготовки, угол её поворота и сегментация ключевых элементов.
-
Определение маски:
- рабочей платформы
- объекта (заготовки)
- верхней грани объекта
-
Вычисление координат центра заготовки (X, Y в мм)
-
Оценка угла поворота объекта (θ в градусах)
Система полностью автоматизирована: пользователь загружает изображение — получает результат в формате .txt
.
- 📷 Чёрно-белое изображение заготовки
- 🔄 Возможны различные размеры и углы поворота
- 📐 Снято с наклонной камеры, реальные условия производства
- ✅ Маска (платформа, объект, верхняя грань)
- 📍 Координаты центра:
X
,Y
(мм) - 🔁 Угол поворота:
θ
(градусы)
git clone https://github.com/itbert/Sys4Micromachining.git
cd Sys4Micromachining
💡 Рекомендуется использовать виртуальное окружение:
# Linux/macOS
python -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
venv\Scripts\activate.bat
# Установка зависимостей
pip install -r requirements.txt
python app.py
После запуска вы увидите визуализацию данных и получите .txt
с ними.
Вы можете расширить возможности системы, добавив дополнительные данные для обучения и тестирования. Просто поместите новые изображения и разметку в том же формате, что и исходные данные хакатона, и запустите все предоставленные ноутбуки из папки notebooks/
для подготовки данных и yolo/
для обучения новых весов модели.
app.py
— основной серверный скрипт на Flask, реализует веб-интерфейс, обработку изображений, запуск модели и выдачу результатов.requirements.txt
— список всех необходимых Python-библиотек для работы проекта.README.md
— описание проекта, инструкция по запуску и использованию.static/
— статические файлы для веб-интерфейса (например, изображения, загруженные пользователем, логотип).uploads/
— папка для загруженных пользователем изображений.logo.jpg
— логотип проекта.
templates/
— HTML-шаблоны для страниц веб-приложения (index.html
,about.html
,result.html
).yolo/
— всё, что связано с обучением и использованием нейросетевой модели YOLO.yolo.ipynb
— ноутбук для работы с моделью YOLO.yolo11n.pt
,yolov8s-seg.pt
— предобученные веса моделей.runs/train/laser_seg_model/weights/
— лучшие и последние веса вашей обученной модели.
notebooks/
— Jupyter-ноутбуки для предобработки и анализа данных.preprocessing.ipynb
,processing.ipynb
— этапы подготовки и обработки данных.
data/
— директории с обучающими и тестовыми данными.train/
,test/
— изображения и разметка для обучения и тестирования.
presentation.pptx
— презентация проекта.venv/
— виртуальное окружение Python (создаётся автоматически, не трогать).