EN
Все работы

MedTech · 3D-сервис

BiteCheck

Веб-сервис, который автоматически сопоставляет два независимых STL-скана челюстей, проверяет качество смыкания и формирует единый 3D-файл.

Моя рольАрхитектура, алгоритмы, backend, frontend и деплой
ФорматВеб-сервис обработки 3D-сканов
Готовый проектОткрыть сайт
BiteCheck — экран проекта 1
BiteCheck — экран проекта 2
BiteCheck — экран проекта 3

Что сделано

Два независимых 3D-скана превращаются в проверяемый результат — или в честный сигнал, что данных недостаточно.

  • Загрузка верхней и нижней челюсти в STL
  • Опциональный bite scan или эталон положения
  • Fast-path с обработкой за 2–15 секунд
  • Multistart, 6-DOF оптимизация и rescue-режим
  • Анатомические зоны контакта вдоль зубной дуги
  • Защита корректного положения и двустороннего контакта
  • Статусы confirmed, manual review и not confirmed
  • Асинхронные задачи, polling и выгрузка combined.stl
  • 69+ автотестов и регрессия на клинических кейсах

Задача

Верхняя и нижняя челюсти сканируются отдельно и часто оказываются в несвязанных системах координат. Нужно было автоматически найти клинически правдоподобное смыкание, не принять красивую геометрическую догадку за достоверный результат и корректно обработать случаи, где двух STL объективно недостаточно.

Решение

Я построила многоступенчатый пайплайн: fast-path для уже близких положений, multistart из восьми и более гипотез, анатомические зоны вдоль U-образной зубной дуги, 6-DOF оптимизацию, bilateral smart release и rescue-режим для сильно рассогласованных координат. Protected input не позволяет оптимизатору разрушить уже хороший контакт, а метрики определяют один из трёх честных статусов результата.

Результат

Система доведена до продакшена. Большинство тестовых и реальных случаев обрабатывается автоматически: быстрые — за 2–15 секунд, сложные — за 1–7 минут, с точностью до долей миллиметра относительно врачебного эталона. Регрессия включает 32 синтетических сценария, реальные клинические случаи и 69+ автотестов; при недостатке данных сервис возвращает manual review или not confirmed вместо потенциально неверного файла.

Инструменты и интеграции

PythonFastAPINumPySciPyOpen3DtrimeshYandex CloudNginxsystemdpytestMeshLab

Есть похожая задача?

Обсудить проект