Проект хакатона 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.txtpython 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 (создаётся автоматически, не трогать).