Pavia00
-
Количество публикаций
108 -
Зарегистрирован
-
Посещение
-
Days Won
15
Сообщения, опубликованные пользователем Pavia00
-
-
В 22.03.2021 at 22:34, Smorodov сказал:Ну, оптика тут остается та же
А вот ничего подобного. Там два случая. Изменени плотности и изменение размера матрицы. Как правило задействуется последний что вносит геометрические искажения. В зависимости от формы линзы(рыбий глаз) мы ещё и зум можем поиметь(полу цифровой зум)
- 1
-
У них на канале много интересного.
Вот http://pullenti.ru SDK для работы с текстом. Извлечения текста из doc, rtf, pdf и тд. А так же сильный инструмент для обработки текста. Особенно понравилась демо пример.
- 1
-
Можно сделать проще. Выделить линией где человек и считать количество раз сколько он её пересек. К примеру по поясу. Встал есть пересечение сел нету.
В 10.11.2020 at 20:58, svoyak сказал:Но чесно говоря.. это нужно разбить движение на фазы.. для каждой фазы нужна своя выборка и т.д. Чот смахивает на неоптимальность.
Насколько слышал именно так и делают.
-
Нейронку натренировать и все дела.
На джитхабе куча примеров
https://github.com/beacandler/R2CNNhttps://github.com/yuxng/PoseCNN
- 1
-
В 04.05.2020 at 20:57, Smorodov сказал:Если что то вроде оптической мышки получается, то есть изображения с приличным перекрытием, то попробуйте
В 04.05.2020 at 15:45, OmgZomg сказал:А если с помощью координат центрального пикселя и фокусного расстояния?
Возможно человеку нужно вычислить оптический поток и поворот камеры относительно предыдущих снимков по z?
Выделить особые точки на соседних снимках и применить
cv2.
estimateRigidTransform
(src, dst, fullAffine)- 1
-
2 часа назад, Nuzhny сказал:Сплайны и Безье - это не то, что мне надо. Я бы хотел из траектории движения объекта за несколько секунд (скажем, 100 кадров) получить уравнение движения. Логично получить кубическое, чтобы ускорение тоже было не константным.
Это меняет задачу. В 3 строчки не сделать. Но прежде хочу сказать, следующее вам нужны именно Безье. Кривая Безье - это система из 2-х кубических полиномов. В противном случае будете иметь вот такие вот проблемы
https://forum.sources.ru/index.php?showtopic=416325&st=0&#entry3815075
Что касается вашей задачи. Набор данных надо сгладить и вычислить производную найти участок с не более 2-мя изменениями знака производной. Остальные выкинуть. Использовать метод вернее эвристику максимального правдоподобия для улучшения МНК.
-
Да и самому не трудно написать.
// МНК для полинома 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;
-
Нету, так как такая операция для кривовй уже на 5-7 степени упирается в точность Single.
По этмоу лучше использовать сплайны и кривые Безье.
Что есть в OpenCV?
Строим контур цепным кодом из него, получаем полигон путем оптимизации approxpolydp
Тут лучше староннее что-то использовать к примеру
https://www.alglib.net/translator/man/manual.cpp.html#sub_spline1dfitpenalizedw
И для полиномов там тоже есть
https://www.alglib.net/translator/man/manual.cpp.html#sub_polynomialfit
-
cvAdaptiveThreshold(src, dst2, 250, CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 7, 1);
Если шумы останутся увеличь сигму.
-
По моему бинаризации неплохо работает.
-
Я бы вот эти методы попробовал бы.
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
- 1
-
Если у вас фотошоп то используйте кисть восстановления на номере. А так да обрабатывать его отдельно от машины. Вернее я бы его вовсе нетрогал.
Выбрать по порогу яркие кляксы(blobs) заполнить внутренние пустоты матморфологией close. Смешать по маске исходное и фильтрованное.
source and mask + filtered and (not mask)
Лучше конечно маску размыть(blur) и в качестве альфы использовать в блендинге.
-
Вот что мне тут гугл подбросил. Там ссылки на несколько десятков проектов.
https://github.com/timzhang642/3D-Machine-Learning
Я бы использовал угловой детектор и обучил бы классификатор так, что-бы каждый объект со своими углами поворота являлся отдельным классом.
-
-
На рисунке слипшиеся объекты. Классическим методом для разделения являются НС. Ещё можно через мат. морфологию оператор открытия - open .
Ещё можно искать углы и восстанавливать четвёртый по трём другим. Через детектор особых точек(ищем углы). А далее школьная классика перебор точек через 3-и цикла и поиск прямоугольных треугольников.
-
MIPI CSI-2 это стандарт шины. Тот который идёт от кристалла матрицы и он выдаёт 500 МБит/с не больше.
В 14.08.2018 at 12:58, iskees сказал:отсутствие артефактов от сжатия.
2592 px x 1944 px х8 бит= 40 Мбит
500/40=12٫5 кадров. Что бы обеспечить заявленные 60 камера выполняет сжатие. Просто оно минимальное по сравнению с остальными.
GigE - это IP камера? Скорее нет чем да.
-
idrua, "человек" - там отлично виден. Чётко видны: глаза, нос, рот - но это обычные jpeg артефакты. Взять траву или песок и там найдётся куча таких же литц.
Конечно тут видны руки и шея.
Но самом деле это известная фотография, одной фирмы по OCR, с демонстрацией бликов. - человек тут отсутствует.
Мы не видим водителя значит и пассажира видеть не должны, следовательно это блик.
-
-
Я бы классификатор на тренировал.
-
Одназначно надо. Дисторсия она всегда большая. Да и углы тоже уплывут из-за афинных преобразований. Не говоря про перспективу.
В opencv заложенно решение только для шахмотной доски.
- 1
-
Железо.
orange pi pc - оптимизированы для снежения энергопотребления. Поэтому скорости от них ждать не стоит.
Что касается 64-битных процессоров то при одинаковой частоте они в 2 раза медленее по умножению. В среднеем по остальным командам на 30-50% медлее чем 32 бита.
Вот если бы вы использовали криптографию тогда выигрышь возможен.
Fpga сравнимый с pi вам обойдётся в 10 раз дорожи 150-300$.
Dsp - как правило заточены под радио и звук. В таких платах просто нехватает памяти и производительности.
Нужны специальные видеопроцессоры. А они как правило очень дорогие.
Есть ещё процессоры для видеорегистраторов. 4 раз быстрее чем CPU - pi. Одна беда close hardware. Через несколько лет возможно появятся как открытые.
Так что после pi берём дешовый комп i3 за 250-300 баксов. И если надо то видеокарту.
Или б/у ноутбук, комп можно сэкономить.
Код. Вам однозначно надо оптимизировать. Расчёт углов это медленная операция.
А вот прр GPU - отпишитесь как удалось завести его или нет?
- 1
-
Почитайте как правильно задавать вопросы.
http://www.rsdn.org/Info/howtoask.xml
Так как из вашего описания непонятно, что вы хотите? Какую задачу хотите решить? Поэтому и непонятно что отвечать.
Вместо описания того, что вы делали вы должны были сказать, что вы хотите получить.
Что касается разделения. То есть такая вещь как кляксы Blobs и контуры Conturs.
Есть структуры, вернее классы которые их описывают. К примеру контуры описывают цепным кодом. А для клякс обычно матрица закрашенная номером кляксы.
Вот используя такие алгоритмы, которые по вашим данным построят эти структуры и по ним вы можете определить моменты и/или координаты своих объектов.
А когда найдёте координаты своих объектов далее уже определяйте к какому классу фигур(объектов, изображений) они относятся.
Распознавание решается перебором и только перебором. Другое дело что есть ряд оптимизаций: пропуск белых пикселей, пирамида изображений с переходом на более высокий уровень, работа только там где есть особые точки (углы, контуры и др). ещё есть каскады и куча других методов для ускорения перебора.
-
FPGA это не паноцея. 66 умножителей конечно много, но частота маленькая. Да и задействовать их непросто.
По сравнению с DSP процессорами. При тойже цене, FPGA раза в 4 быстрее. Но сейчас взять что-то подороже непроблема.
-
Обратное преобразование к проекции не имеет однозначного отображения. А если зафиксировать Z. То мы получим аффинное(матричное) преобразование.
Как отмаштабировать матрицу внутренних параметров камеры при смене рзрешения?
в OpenCV
Опубликовано · Report reply
7
Изменить размер гораздопроще чем Вы думаете. Чип сенсора как стоял в плоскости физического фокуса так и стоит. Просто отключаются не используются пиксели с края сенсора. Это сделать просто изменив приделы счётчика который перебирает пиксели камеры во время чтения. Когда как масштабирование требует заблюрить соседние пиксели и произвести децимацию оставив к примеру через один каждый второй пиксель. Вот только обычно масштабирование идёт не кратно 2 а через дробные значения к 3/2. Что требует уже усложнения чипов камеры.
Так вот при изменении используемой области камеры меняется угол обзора. В математической модели это приводит к изменению математического фокуса.
Известно что бочкообразые и подушкообразные искажения определяются параметрами линзы k1, k3 (внутренние параметры камеры) а они в свою очередь зависят от математического фокуса камеры, то они тоже уплывут.