Skip to content

Computer vision problem: "Determination of the ability to transfer an object through a doorway"

Notifications You must be signed in to change notification settings

Nikitagritsaenko/Door-and-chair-problem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Door-and-chair-problem

Задача компьютерного зрения: определение возможности перенести объект через проём.

Постановка задачи

Пользователь на вход алгоритма даёт фотографию, на которой есть только стул и дверной проём.

Алгоритм должен уметь определять по фотографии, можно ли стул поступательным движением пронести через дверной проём (т.е дать ответ "да" / "нет").

Запуск

  1. Склонировать ветку iteration-3
  2. Запустить project.ipynb

Требования к входным данным

Входные изображения пользователя должны соответствовать следующим требованиям:

  • Формат *.jpg.
  • На фотографиях есть только стул и дверной проём. Наличие других предметов крайне нежелательно.
  • Стул и дверь должны целиком влезать в кадр.
  • Фотографии должны быть сделаны при хорошем освещении.
  • Дверь должна занимать по высоте не менее 70% от кадра (то есть фотографии издалека не подойдут).
  • Наличие большого числа теней нежелательно.
  • Очень желательно, чтобы фон на фотографии был однотонным.

Итоговый алгоритм

  1. Детектирование стула с помощью ORB-детектора. При этом применяется подбор "наилучшего" шаблона для стула
  2. По данным п.1 определение ширины фигуры стула
  3. Детектирование двери с помощью преобразования Хафа для прямых
  4. По данным п.3 определение ширины проёма
  5. Сравнение ширины стула и проёма, выдача вердикта "да"/"нет"

Реализация

(в файле project.ipynb, см. pull request)

Отчёт

Итерация 1

Что было сделано

  • Был создан датасет. Все фотографии отвечали требованиям к входным данным.
  • Датасет был размечен с помощью папок yes и no
  • Были добавлены фотографии стула на белом фоне (шаблоны)
  • Попробовал применить фильтр Канни для поиска границ. Результат неудовлетворительный
  • Попробовал применить бинаризацию + Канни. Результат неудовлетворительный.
  • Попробовал применить морфологические операции. Границы стали более чёткими, но результат всё ещё неудовлетворительный.
  • Первая попытка применить ORB-детектор. Рисовал прямоугольник вокруг стула - получалось неправильно.

Итог итерации

Попробовал много методов, но существенных результатов не получил.

Итерация 2

Что было сделано

  • Попробовал ORB-детектор с большим числом особых точек. Вместо прямоугольника вокруг стула стал рисовать соответствия между особыми точками стула на шаблоне и стула на фотографии. Результат приемлемый.
  • Сделал так, что для ORB-детектора подбирается наиболее подходящий шаблон (максимизирую число "хороших" совпадений).
  • Попробовал алгоритм Хафа для поиска двери. Результат очень удачный - ширина двери находится с хорошей точностью.
  • Протестировал алгоритм на входных данных.

Итог итерации

Получено разумное решение задачи. Метрика accuracy = 77%.

Итерация 3

Что было сделано

  • Учтены замечания ревьюеров по коду
  • Добавлено больше шаблонов стула
  • Размер датасета увеличен до 50 фотографий

Итог итерации

Учтены все замечания и советы ревьюеров. Наблюдается прирост accuracy (77% -> 80%).

About

Computer vision problem: "Determination of the ability to transfer an object through a doorway"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published