Skip to content

OkamiNoKo/ransac-template

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RANSAC

Необходимо реализовать генерацию зашумленных данных и поиск на них прямой с использованием алгоритма RANSAC

Для выполнения нужно реализовать 4 функции:

  1. generate_data -- генерация зашумленных данных
  2. compute_ransac_threshold -- вычисление порогового значения для оценки соответствия отдельной точки посчитанной модели
  3. compute_ransac_iter_count -- вычисление необходимого для сходимости количества итераций
  4. compute_line_ransac -- подбор параметров модели с использованием алгоритма RANSAC

generate_data

def generate_data(
        img_size: tuple, line_params: tuple,
        n_points: int, sigma: float, inlier_ratio: float
) -> np.ndarray

Требуется:

Построить набор из n_points точек в области img_size, таких, что:

  • inlier_ratio из них соответствовали бы модели line_params, но были бы зашумлены нормальным шумом с дисперсией sigma и нулевым матожиданием
  • (1 - inlier_ratio) были бы равномерно распределены на области img_size (не соответствовали бы модели)

Параметры:

  • img_size (WxH) -- размер прямоугольной области, в которой расположены все данные
  • line_params (a, b, c) -- параметры прямой ax+by+c=0, которой должны соответстовать сгенерированные данные
  • n_points -- требуемое количество точек
  • sigma -- дисперсия нормального распределения шума для точек, соответствующих модели
  • inlier_ratio -- доля точек (из всех), соответствующих модели
  • data [out] -- зашумленный набор точек, соответствующих модели прямой

compute_ransac_threshold

def compute_ransac_threshold(
        alpha: float, sigma: float
) -> float

Требуется: Определить пороговое значение расстояния, по которому определяется, соответствует ли точка некоторой модели или нет

Параметры:

  • alpha -- требуемая вероятность рассмотрения точки как соответствующей модели, если она действительно соответствует модели
  • sigma -- дисперсия нормального распределения шума для точек, соответствующих модели
  • threshold [out] -- пороговое значение для определения соответствия точки и модели

compute_ransac_iter_count

def compute_ransac_iter_count(
        conv_prob: float, inlier_ratio: float
) -> int

Требуется: Определить количество итераций, необходимых RANSAC, чтобы сойтись с вероятностью conv_prob

Параметры:

  • conv_prob -- вероятность, с которой алгоритм сойдется к модели, по которой построены данные
  • inlier_ratio -- доля точек (из всех), соответствующих модели
  • iter_count [out] -- необходимое количество итераций

compute_line_ransac

def compute_line_ransac(
        data: np.ndarray, threshold: float, iter_count: int
) -> tuple

Требуется: Реализовать алгоритм RANSAC для поиска модели прямой на полученных зашумленных данных

Параметры:

  • data -- зашумленный набор точек, соответствующих модели прямой
  • threshold -- пороговое значение для определения соответствия точки и модели
  • iter_count -- необходимое количество итераций
  • line [out] -- оценка параметров модели прямой

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%