2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Определение принадлежности точки внутренности эллипса
Сообщение16.04.2017, 22:11 
Аватара пользователя


06/01/12
376
California, USA
Доброго времени суток, уважаемые форумчане! Появилась такая вот интересная задача.

Есть изображения пузырей. Задача состоит в том, чтобы определить лежит ли точка (на рисунке - это красные квадраты) во внутренней области эллипса, который можно вписать в образ пузыря, - или не лежит. Примеры когда точки вне пузырей:
Изображение
Изображение
И внутри:
Изображение
Изображение
Изображение

Текущий вариант решения: выделим квадрат заданного размера (скажем, 80x80 пикселей) с центром в рассматриваемой точке.
Бинаризуем изображение внутри квадрата, тогда - получаем двоичный квадратный массив фиксированного размера, как на изображении ниже.
Изображение

  • Я попытался первым делом использовать алгоритм поиска связанных областей (если область нашлась, закрашиваем её и просто проверяем - есть ли внутри неё центральная точка). Однако этот алгоритм весьма и весьма не просто расширить до возможности использования с неполными периметрами эллипсов (точнее я не придумал пока как).. В общем, - такой подход работает, но далеко не всегда (пузыри редко имеют полностью прочерченный обод).
  • Также попробовал преобразование Хафа, чтобы подогнать эллипс и определить его размер. Работает - значительно медленнее, но чуть более успешно (для него также непрочерченный обод большая проблема)

Может у кого есть идеи как это сделать лучше и/или быстрее?
Заранее большое спасибо за Ваши комментарии и советы!

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение16.04.2017, 23:52 
Аватара пользователя


31/10/08
952
Постройте выпуклую или частично выпуклую оболочку
http://docs.opencv.org/2.4/doc/tutorial ... /hull.html

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 07:15 
Аватара пользователя


06/01/12
376
California, USA
Pavia в сообщении #1210042 писал(а):
Постройте выпуклую или частично выпуклую оболочку
http://docs.opencv.org/2.4/doc/tutorial ... /hull.html

Идея хорошая, спасибо!

Но как же быть если у меня есть что-то подобное?
Изображение

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 15:11 
Заслуженный участник
Аватара пользователя


30/01/06
66776
Забить. Ваша задача - это задача распознавания образов. Или вы всерьёз занимаетесь ИИ, или бросаете это дело.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 15:38 
Заслуженный участник
Аватара пользователя


16/07/14
2607
Москва
Omega в сообщении #1210101 писал(а):
Но как же быть если у меня есть что-то подобное?
Можно попробовать использовать более продвинутый способ бинаризации.
Если есть возможность получить достаточно много обучающих примеров - то не страдать фигней, а сразу учить сверточную нейросеть.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 17:22 
Аватара пользователя


06/01/12
376
California, USA
mihaild в сообщении #1210167 писал(а):
Omega в сообщении #1210101 писал(а):
Но как же быть если у меня есть что-то подобное?
...сразу учить сверточную нейросеть.


Это и есть результаты её работы :)
Дело в том, что особенность обучающих данных такова, что появляются такие вот ошибки - и их крайне сложно искоренить..

Munin в сообщении #1210161 писал(а):
Забить. Ваша задача - это задача распознавания образов. Или вы всерьёз занимаетесь ИИ, или бросаете это дело.


Это не наш метод! Нужно завершить начатое.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 17:28 
Заслуженный участник
Аватара пользователя


16/07/14
2607
Москва
Omega в сообщении #1210206 писал(а):
Это и есть результаты её работы :)
В смысле она вот такие картинки рисует?
А почему не хотите учить ее сразу определять, попадает точка внутрь или нет?

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 17:32 
Аватара пользователя


06/01/12
376
California, USA
Нет, она расставляет центры тяжести ГМТ эллипсов, которые вписываются в образы пузырей.
Проблема в том, что уж больно разнообразны ситуации в реальных данных - и их сложно синтетически повторить, поэтому есть много ошибок.
Там на самом деле несколько НС... Они обучаются на синтетических данных - на них всё отлично.

-- 17.04.2017, 22:38 --

Pavia в сообщении #1210042 писал(а):
Постройте выпуклую или частично выпуклую оболочку
http://docs.opencv.org/2.4/doc/tutorial ... /hull.html

Частично улучшило ситуацию - но часть случаев всё равно плохо обрабатывается.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 19:08 
Заслуженный участник
Аватара пользователя


04/09/14
3556
ФТИ им. Иоффе СПб
Omega в сообщении #1209985 писал(а):
Задача состоит в том, чтобы определить лежит ли точка во внутренней области эллипса
Я бы попробовал что-нибудь такое. Поставим на эллипсе некоторое количество точек, стараясь, что бы среди них была точка, находящаяся на минимальном расстоянии от изучаемой. После этого сосчитаем сумму углов, образованных отрезками, соединяющими изучаемую точку с точками на эллипсе при обходе точек на эллипсе, например, против часовой стрелки с учетом знака угла. Если сумма $2\pi,$ то точка внутри, если ноль - то снаружи.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение17.04.2017, 19:55 
Аватара пользователя


06/01/12
376
California, USA
Спасибо, попробую. А что на счёт идеи собрать из каждого кругового сектора по градусов 15 точки в определённом диапазоне расстояний, как здесь например:
Изображение
Выбрать из них некоторое число случайных троек точек - и вписывать в каждую по окружности. Затем собрать статистику по полученным центрам этих окружностей, и, если максимум пика где-то в центре кадра - то ответ даём положительный. Иначе - отрицательный.
Это словно поиск колец из следов электронов в детекторе)

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение21.04.2017, 16:14 
Аватара пользователя


06/01/12
376
California, USA
Всем спасибо! Проблема решена правильной настройкой параметров тренировочных данных для НС.
А самым эффективным методом удаления точек стал способ предложенный amon.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение26.04.2017, 03:37 
Аватара пользователя


07/02/12
1210
Питер
Напишите функцию ошибки для заданного эллипса.
Вроде не так много переменных и не такое сложное пр-во, что б влоб не уйти в правильный минимум по градиенту.

 Профиль  
                  
 
 Re: Определение принадлежности точки внутренности эллипса
Сообщение26.04.2017, 08:54 
Аватара пользователя


07/02/12
1210
Питер
Функцию ошибки определите попиксельно, например, как сумму квадратов разностей реального изображения и эталонного (помимо стандартных эллиптических параметров будет еще толщина, если она бывает разной). Если есть шум, перед поиском задавите его медианным фильтром.

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

А уж когда эллипс распознан и превращен в несколько цифр, параметрически определить принадлежность точки его области - задача примитивная.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, PAV, Toucan, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group