HexAct — это веб-приложение на базе OpenCV.js, предназначенное для автоматического контроля качества крепёжных изделий в реальном времени с использованием веб-камеры. Система способна различать болты и гайки, определять их тип головки (шестигранник, Phillips и др.) и выявлять брак или несоответствия по форме.
Название:
- Hex — от hexagon (шестигранник), основной стандарт формы головок крепежа.
- Act — действие, подчёркивающее оперативность и автоматизацию процесса контроля.
Обеспечить доступный, быстрый и объективный способ контроля качества болтов и гаек без использования дорогостоящего оборудования. HexAct может использоваться как на производстве, так и в складских или ремонтных условиях для предотвращения использования некачественного или несоответствующего крепежа.
- 📸 Работа в реальном времени через веб-камеру.
- 🔍 Автоматическое распознавание:
- Болты: шестигранные (
hex), крестообразные (Phillips). - Гайки: только шестигранные (
hex) — всё остальное считается браком.
- Болты: шестигранные (
⚠️ Классификация по качеству:- ✅ Правильные — соответствуют ожидаемому типу.
⚠️ Предупреждения — неизвестная форма, но не явный брак.- ❌ Брак — пяти-/семи-/восьмиугольники, незавершённые шестиугольники, круги без креста и др.
- 📊 Статистика в реальном времени:
- Общее количество деталей.
- Процент корректных, бракованных и сомнительных изделий.
- 📈 Графики и история:
- Линейный график точности по последним 10 сессиям.
- Возможность сохранения, просмотра и экспорта логов.
- 📥 Экспорт данных:
- В формате CSV.
- Печать отчёта с визуализацией статистики.
- 🌙 Тёмная/светлая тема с сохранением в
localStorage. - 🖥️ Полноэкранный режим для удобства работы.
| Тип | Подтип | Статус | Примечание |
|---|---|---|---|
| Болт | Шестигранник (hex) |
✅ Корректный | Стандарт |
| Болт | Phillips (phillips) |
✅ Корректный | Стандарт |
| Болт | Пяти-/семи-/восьмиугольник | ❌ Брак | Не по ГОСТ |
| Болт | Незавершённый шестиугольник | ❌ Брак | Дефект |
| Болт | Круг без креста | ❌ Брак | Не болт |
| Гайка | Шестигранник (hex) |
✅ Корректный | Стандарт |
| Гайка | Любой другой тип | ❌ Брак | Не гайка |
❗ Важно: При переключении вкладки ("Болты" / "Гайки") система ожидает именно соответствующий тип изделия.
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Компьютерное зрение: OpenCV.js
- Алгоритмы:
- Контурный анализ (
findContours,approxPolyDP) - Распознавание окружностей (
HoughCircles) - Детекция линий (
HoughLinesP) для крестообразных головок - Фоновое вычитание (
absdiff) для улучшения детекции
- Контурный анализ (
- Хранение данных:
localStorage(логи сессий) - Адаптивный дизайн: поддержка светлой/тёмной темы, печати, полноэкранного режима
-
Склонируйте репозиторий:
git clone https://github.com/StepanKislin/hexact.git cd hexact -
Откройте
index.htmlв браузере:- Рекомендуется использовать Chrome или Edge (лучшая поддержка
getUserMediaиOpenCV.js). - Для локального запуска лучше использовать локальный сервер (например,
Live Serverв VS Code), чтобы избежать CORS-ограничений.
- Рекомендуется использовать Chrome или Edge (лучшая поддержка
-
Разрешите доступ к камере при первом запуске.
-
Настройте параметры (по желанию):
- Порог уверенности (50–95%)
- Мин./макс. размер объекта (в пикселях)
- Запомните фон для улучшения контраста
-
Начните детекцию:
- Положите болт или гайку в поле зрения камеры.
- Переключайте вкладки в зависимости от типа изделия.
hexact/
├── index.html # Основная HTML-страница
├── package.json # Метаданные и зависимости проекта (даже если их нет)
├── package-lock.json # Фиксация версий зависимостей (автогенерируется)
├── assets/
│ ├── script/
│ │ └── index.js # Логика приложения (OpenCV.js + детекция)
│ └── style/
│ └── index.css # Стили интерфейса
├── LICENSE.md # Лицензия проекта
└── README.md # Документация проекта
- Производство: контроль качества на конвейере.
- Склад: верификация партий крепежа при приёмке.
- Ремонтные мастерские: быстрая проверка перед использованием.
- Образование: демонстрация возможностей компьютерного зрения в браузере.
- Все данные обрабатываются локально в браузере.
- Изображения не отправляются на сервер.
- Логи хранятся только в
localStorageустройства пользователя и могут быть удалены в любой момент.
🔧 HexAct — точность в каждом винте.
Потому что даже маленький болт может удержать целую конструкцию.
