Jump to content
Compvision.ru

Pavia00

Пользователи
  • Content count

    108
  • Joined

  • Last visited

  • Days Won

    15

Pavia00 last won the day on September 12 2019

Pavia00 had the most liked content!

Community Reputation

31 Эксперт

About Pavia00

  • Rank
    Эксперт
  1. 7 Изменить размер гораздопроще чем Вы думаете. Чип сенсора как стоял в плоскости физического фокуса так и стоит. Просто отключаются не используются пиксели с края сенсора. Это сделать просто изменив приделы счётчика который перебирает пиксели камеры во время чтения. Когда как масштабирование требует заблюрить соседние пиксели и произвести децимацию оставив к примеру через один каждый второй пиксель. Вот только обычно масштабирование идёт не кратно 2 а через дробные значения к 3/2. Что требует уже усложнения чипов камеры. Так вот при изменении используемой области камеры меняется угол обзора. В математической модели это приводит к изменению математического фокуса. Известно что бочкообразые и подушкообразные искажения определяются параметрами линзы k1, k3 (внутренние параметры камеры) а они в свою очередь зависят от математического фокуса камеры, то они тоже уплывут.
  2. А вот ничего подобного. Там два случая. Изменени плотности и изменение размера матрицы. Как правило задействуется последний что вносит геометрические искажения. В зависимости от формы линзы(рыбий глаз) мы ещё и зум можем поиметь(полу цифровой зум)
  3. У них на канале много интересного. Вот http://pullenti.ru SDK для работы с текстом. Извлечения текста из doc, rtf, pdf и тд. А так же сильный инструмент для обработки текста. Особенно понравилась демо пример.
  4. Можно сделать проще. Выделить линией где человек и считать количество раз сколько он её пересек. К примеру по поясу. Встал есть пересечение сел нету. Насколько слышал именно так и делают.
  5. Нейронку натренировать и все дела. На джитхабе куча примеров https://github.com/beacandler/R2CNN https://github.com/yuxng/PoseCNN https://github.com/runa91/FRCNN_git https://arxiv.org/pdf/1711.09405.pdf
  6. Возможно человеку нужно вычислить оптический поток и поворот камеры относительно предыдущих снимков по z? Выделить особые точки на соседних снимках и применить cv2.estimateRigidTransform(src, dst, fullAffine)
  7. Это меняет задачу. В 3 строчки не сделать. Но прежде хочу сказать, следующее вам нужны именно Безье. Кривая Безье - это система из 2-х кубических полиномов. В противном случае будете иметь вот такие вот проблемы https://forum.sources.ru/index.php?showtopic=416325&st=0&#entry3815075 Что касается вашей задачи. Набор данных надо сгладить и вычислить производную найти участок с не более 2-мя изменениями знака производной. Остальные выкинуть. Использовать метод вернее эвристику максимального правдоподобия для улучшения МНК.
  8. Да и самому не трудно написать. // МНК для полинома B[0]+B[1]*x+B[2]*x^2+...+B[p]*x^p=y // p -степень полинома // Входные параметры: // - точки в виде масивов их координат x,y // - степень желаемого полинома p // Выходные параметры: // - коэффициенты полинома B procedure PolyFit(y,x:TArrayReal; p:Integer; var B:TArrayReal); var a,at,temp:TMatrixNM; Temp2:TMatrixNN; i,j,N:Integer; c:Real; begin if (Length(y)<>Length(x)) or (p<0) then exit; N:=Length(Y); // Минимизация коэффициентов полинома методом наименьших квадратов. // Строим матрицу Вандерморда SetLength(A,N,p+1); for i:=0 to N-1 do begin c:=1; for j:=0 to P do begin a[i,j]:=c; c:=c*x[i]; end; end; // Применяем метод Moore–Penrose at:=Transpose(A); Temp2:=MatrixMulMatrix(At,A); Temp:=Invert(Temp2); B:=MatrixMulVector(MatrixMulMatrix(Temp,At),Y); end;
  9. Нету, так как такая операция для кривовй уже на 5-7 степени упирается в точность Single. По этмоу лучше использовать сплайны и кривые Безье. Что есть в OpenCV? Строим контур цепным кодом из него, получаем полигон путем оптимизации approxpolydp https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#approxpolydp Тут лучше староннее что-то использовать к примеру https://www.alglib.net/translator/man/manual.cpp.html#sub_spline1dfitpenalizedw И для полиномов там тоже есть https://www.alglib.net/translator/man/manual.cpp.html#sub_polynomialfit
  10. cvAdaptiveThreshold(src, dst2, 250, CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 7, 1); Если шумы останутся увеличь сигму.
  11. По моему бинаризации неплохо работает.
  12. Фильтрация облака точек

    Я бы вот эти методы попробовал бы. http://ceur-ws.org/Vol-2391/paper23.pdf Медианы она когда у вас много кадров. А тут явно по 1 снимку восстанавливают. Нужно отсеявать по аналогии с мат.морфологий,- если точка имеет более 2-х соседний на расстоянии L то оставляем. Если соседний менее или вовсе, нет то удаляем. Можно ещё как тут. При еденичных и малом числе фото. https://vision.in.tum.de/data/datasets/intrinsic3d Нейронные сети https://vision.in.tum.de/research/image-based_3d_reconstruction/singleviewreconstruction
  13. Если у вас фотошоп то используйте кисть восстановления на номере. А так да обрабатывать его отдельно от машины. Вернее я бы его вовсе нетрогал. Выбрать по порогу яркие кляксы(blobs) заполнить внутренние пустоты матморфологией close. Смешать по маске исходное и фильтрованное. source and mask + filtered and (not mask) Лучше конечно маску размыть(blur) и в качестве альфы использовать в блендинге.
  14. Вот что мне тут гугл подбросил. Там ссылки на несколько десятков проектов. https://github.com/timzhang642/3D-Machine-Learning Я бы использовал угловой детектор и обучил бы классификатор так, что-бы каждый объект со своими углами поворота являлся отдельным классом.
  15. Есть метод BRISK - https://www.robots.ox.ac.uk/~vgg/rg/papers/brisk.pdf Сам не пробовал.
×