Александр Кривошлык
← Все кейсы

Система анализа изображений керна

Поиск похожих слоёв через embeddings

Интегрировал модель получения embeddings с Java backend, реализовал поиск в PostgreSQL/pgvector и обновление векторов после редактирования контура.

Задача

Эксперту нужны ранее размеченные похожие области текущего проекта как подсказка при назначении литотипа.

Моя ответственность

Спроектировал и реализовал Java backend, преобразование геометрии, хранение и поиск векторов, API и тесты. AI-команда отвечала за модель и качество сходства.

Результат

Внедрён поиск похожих слоёв на PostgreSQL/pgvector с обновлением устаревших embeddings после изменения контура.

Рекомендации рядом с разметкой

ML-команда подготовила модель, которая преобразует RGB-изображение и контур слоя в embedding. Моя задача — встроить эту модель в продукт: подготовить данные, сохранить вектор и вернуть похожие слои через API.

Панорама керна с выделенным слоем и списком рекомендованных похожих литотипов
Выделенный слой на панораме и рекомендации похожих ранее размеченных областей. Модель и качество сходства — ответственность AI-команды.

Путь от изображения до рекомендации

Сравнил варианты хранения и сопоставления векторов по времени выполнения и выбрал pgvector. Согласовал контракт с AI-командой и предложил изменения API модели.

RGB + контурBackend подготавливает изображение и геометрию
ML-модельEmbedding · модель AI-команды
PostgreSQL / pgvectorХранение и cosine similarity
Похожие слоиВ пределах текущего проекта, без исходного слоя
Интеграционный контур. Рекомендации — самостоятельная функция: они не зависят от классификации по группам геометрических, визуальных и спектральных признаков.

Геометрия и актуальность данных

Соответствие изображения и контура. Перевёл контур из физических координат в координаты изображения модели, согласовав глубину, панораму, уменьшенную копию и размер входа. Результат ограничивается границами изображения.

Обновление вектора. Изменение контура инвалидирует embedding. Перед следующим поиском устаревший вектор обновляется, актуальный — используется повторно.

Граничные сценарии. При недостаточном количестве слоёв API возвращает пустой список. Вызовы хранилища и ML-сервиса отделены от длительных транзакций БД.

Проверка и результат

Эксперт заказчика проверил рекомендации на ограниченном наборе данных. Автоматические тесты покрывают геометрию, повторное использование векторов, недостаточные и ошибочные данные, интеграцию с PostgreSQL/pgvector.

Первоначальные численные замеры не сохранились. Конкретное ускорение и численная метрика качества рекомендаций не заявляются.

Стек: Java, Spring Boot, PostgreSQL, pgvector, JPA/Hibernate, native SQL, REST/multipart, JUnit, Mockito, Testcontainers.