Спасибо за ваши ответы. Они позволили мне глубже понять задачу, и я должен честно и открыто сообщить, что новая информация кардинально меняет проект. Из предсказуемой инженерной задачи он превращается в сложный R&D-проект с высокими рисками провала.
Ниже я аргументирую, почему в текущем виде эта задача имеет все шансы закончиться неудачей, и какой бюджет требуется на попытку ее реализации.
Ключевые факторы, ведущие к провалу проекта
1. Проблема №1: Критическая ненадежность автоматического определения стыков.
Это главный камень преткновения. Требование "вычислить точки стыковки" без файла с данными означает, что мы должны научить программу "видеть" патрубки на картинках.
Аргументация: Технологии компьютерного зрения (CV) — это не магия. Они работают на поиске паттернов, но крайне чувствительны к малейшим отклонениям: изменению освещения, толщины линий, разрешения, наличию бликов или теней. Для успешной сборки нам нужна пиксельная точность. Ошибка алгоритма даже в 2-3 пикселя приведет к визуально "сломанной" сборке с зазорами и нестыковками.
Вероятность провала: Очень высокая. Мы можем потратить десятки часов на создание алгоритма, который будет работать в 90% случаев. Но те 10% сбоев, когда установка соберется криво, сделают весь инструмент бесполезным и непригодным для бизнеса. Вы не сможете доверять результату, а значит, цель автоматизации не будет достигнута.
2. Проблема №2: Отсутствие четких правил сборки ("Разберитесь по примеру").
Ваш ответ "по фото примеру вам станет ясно" и описание логики "двух линий" — это второй по значимости фактор риска.
Аргументация: Программирование — это формализация правил. Если четких правил нет, разработчику придется их "угадывать". Мы можем потратить недели на создание сложной логики, которая, как нам покажется, соответствует примеру. Но с высокой вероятностью она не будет работать для других, не виденных нами сборок, потому что мы угадали правила неверно.
Вероятность провала: Высокая. Это прямой путь к результату, который не соответствует вашим ожиданиям. Проект превратится в бесконечный цикл "переделайте, здесь должно быть не так", что приведет к полному исчерпанию бюджета еще до получения работающего инструмента.
3. Проблема №3: Нестабильность из-за исходных данных.
Вы упомянули, что масштаб "немного отличается" и блоки иногда нужно поворачивать.
Аргументация: Алгоритм компьютерного зрения, который мы пытаемся создать в п.1, напрямую зависит от постоянства входных данных. Если сегодня он научился находить патрубок размером 20 пикселей, а завтра вы добавите новый блок, где из-за другого масштаба он будет 22 пикселя, — алгоритм может сломаться. Система будет требовать постоянной доработки и поддержки при добавлении новых типов блоков, что обесценивает первоначальные вложения.
Как итог мы получим ценник /\ , да и то качество данного продукта может быть под вопросом.
PS
Можно конечно попробовать подключить AI, но я не знаю модели которые заточены под данные операции.