Перейти к содержимому
Compvision.ru

Pavia00

Пользователи
  • Количество публикаций

    108
  • Зарегистрирован

  • Посещение

  • Days Won

    15

Сообщения, опубликованные пользователем Pavia00


  1. 7

    8 часов назад, Smorodov сказал:

    Интересно, я имел ввиду чисто цифровое масштабирование драйвером камеры. Ведь мы используем одну и ту же камеру. Как меняется размер сенсора? Ну я могу представить, что можно извратиться, и сфокусировать его на меньший участок сенсора, тогда да, но не думал что так делают ... 

    Изменить размер гораздопроще чем Вы думаете. Чип сенсора как стоял в плоскости  физического фокуса так и стоит. Просто отключаются не используются пиксели с края сенсора. Это сделать просто изменив приделы счётчика который перебирает пиксели камеры во время чтения. Когда как масштабирование требует заблюрить соседние пиксели и произвести децимацию оставив к примеру через один каждый второй пиксель. Вот только обычно масштабирование идёт не кратно 2 а через дробные значения к  3/2. Что требует уже усложнения чипов камеры.

     

    Так вот при изменении используемой области камеры меняется угол обзора. В математической модели это приводит к изменению математического фокуса. 

    Известно что бочкообразые и подушкообразные искажения определяются параметрами линзы  k1, k3 (внутренние параметры камеры) а они в свою очередь зависят от математического фокуса камеры, то они тоже уплывут. 

    • Like 1
    • Thanks 1

  2. В 22.03.2021 at 22:34, Smorodov сказал:

    Ну, оптика тут остается та же

    А вот ничего подобного. Там два случая. Изменени плотности и изменение размера матрицы.  Как правило задействуется последний что вносит геометрические искажения.  В зависимости от формы линзы(рыбий глаз) мы ещё и зум можем поиметь(полу цифровой зум)

    • Like 1

  3. У них на канале много интересного.

    Вот http://pullenti.ru SDK для работы с текстом. Извлечения текста из doc, rtf, pdf и тд. А так же сильный инструмент для обработки текста. Особенно понравилась демо пример.

    • Like 1

  4. Можно сделать проще. Выделить линией где человек и считать количество раз сколько он её пересек. К примеру по поясу. Встал есть пересечение сел нету.

     

    В 10.11.2020 at 20:58, svoyak сказал:

    Но чесно говоря.. это нужно разбить движение на фазы.. для каждой фазы нужна своя выборка и т.д. Чот смахивает на неоптимальность.

    Насколько слышал именно так и делают.

     


  5. В 04.05.2020 at 20:57, Smorodov сказал:

    Если что то вроде оптической мышки получается, то есть изображения с приличным перекрытием, то попробуйте

     

    В 04.05.2020 at 15:45, OmgZomg сказал:

    А если с помощью координат центрального пикселя и фокусного расстояния?

    Возможно человеку нужно вычислить оптический поток и поворот камеры относительно предыдущих снимков по z?

    Выделить особые точки на соседних снимках и применить

    cv2.estimateRigidTransform(src, dst, fullAffine)

     

    • Thanks 1

  6. 2 часа назад, Nuzhny сказал:

    Сплайны и Безье - это не то, что мне надо. Я бы хотел из траектории движения объекта за несколько секунд (скажем, 100 кадров) получить уравнение движения. Логично получить кубическое, чтобы ускорение тоже было не константным.

    Это меняет задачу.  В 3 строчки не сделать. Но прежде хочу сказать, следующее вам нужны именно Безье. Кривая Безье - это система из 2-х кубических полиномов. В противном случае будете иметь вот такие вот проблемы

    https://forum.sources.ru/index.php?showtopic=416325&st=0&#entry3815075

    Что касается вашей задачи. Набор данных надо сгладить  и вычислить производную найти участок с не более  2-мя изменениями знака производной.  Остальные выкинуть.  Использовать метод вернее эвристику максимального правдоподобия для улучшения МНК. 


  7. Да и самому не трудно написать.
     

    // МНК для полинома 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;

     


  8. Нету, так как такая операция для кривовй уже на 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


  9. Я бы вот эти методы попробовал бы.

    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

    • Like 1

  10. Если у вас фотошоп то используйте кисть восстановления на номере. А так да обрабатывать его отдельно от машины.  Вернее я бы его вовсе нетрогал. 

     

    Выбрать по порогу яркие кляксы(blobs) заполнить внутренние пустоты матморфологией close. Смешать по маске исходное и фильтрованное.

    source and mask + filtered and (not mask)

    Лучше конечно маску размыть(blur) и в качестве альфы использовать в блендинге.  

     


  11. Вот что мне тут гугл подбросил. Там ссылки на несколько десятков проектов. 

    https://github.com/timzhang642/3D-Machine-Learning

    Я бы использовал угловой детектор и обучил бы классификатор так, что-бы каждый объект со своими углами поворота являлся отдельным классом.

    687474703a2f2f7669732d7777772e63732e756d


  12. На рисунке слипшиеся объекты. Классическим методом для разделения являются НС. Ещё можно через мат. морфологию оператор открытия - open .

    Ещё можно искать углы и восстанавливать четвёртый по трём другим.  Через детектор особых точек(ищем углы). А далее школьная классика перебор точек через 3-и цикла и поиск прямоугольных треугольников.  


  13.  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 камера? Скорее нет чем да.


  14. idrua"человек" - там отлично виден. Чётко видны: глаза, нос, рот - но это обычные jpeg артефакты. Взять траву или песок и там найдётся куча таких же литц.

    Конечно тут видны руки и шея. 

    Но самом деле это известная фотография, одной фирмы по OCR, с демонстрацией бликов.  - человек тут отсутствует.

    Мы не видим водителя значит и пассажира видеть не должны, следовательно это блик. 


  15. Одназначно надо.  Дисторсия она всегда большая.   Да и углы тоже уплывут из-за афинных преобразований. Не говоря про перспективу. 

    В opencv заложенно решение только для шахмотной доски. 

    • Like 1

  16. Железо. 

    orange pi pc - оптимизированы для снежения энергопотребления. Поэтому скорости от них ждать не стоит.  

    Что касается 64-битных процессоров то при одинаковой частоте они в 2 раза медленее по умножению.  В среднеем по остальным командам на 30-50% медлее чем 32 бита.

    Вот если бы вы использовали криптографию тогда выигрышь возможен. 

    Fpga сравнимый с pi вам обойдётся в 10 раз дорожи 150-300$. 

    Dsp - как правило заточены под радио и звук. В таких платах просто нехватает памяти и производительности.

    Нужны специальные видеопроцессоры. А они как правило очень дорогие. 

    Есть ещё процессоры для видеорегистраторов. 4 раз быстрее чем CPU - pi. Одна беда close hardware. Через несколько лет возможно появятся как открытые. 

     Так что после pi берём дешовый комп i3 за 250-300 баксов. И если надо то видеокарту.

    Или б/у ноутбук, комп можно сэкономить.

     

    Код. Вам однозначно надо оптимизировать. Расчёт углов это медленная операция. 

    А вот прр GPU - отпишитесь как удалось завести его или нет? 

     

    • Thanks 1

  17. Почитайте как правильно задавать вопросы.

    http://www.rsdn.org/Info/howtoask.xml

    Так как из вашего описания непонятно, что вы хотите? Какую задачу хотите решить? Поэтому и непонятно что отвечать.

    Вместо описания того, что вы делали вы должны были сказать, что вы хотите получить.

    Что касается разделения. То есть такая вещь как кляксы  Blobs и контуры Conturs.

    Есть структуры, вернее классы которые их описывают. К примеру контуры описывают цепным кодом. А для клякс обычно матрица закрашенная номером кляксы.

    Вот используя такие алгоритмы, которые по вашим данным построят эти структуры и по ним вы можете определить моменты и/или координаты своих объектов.

    А когда найдёте координаты своих объектов далее уже определяйте к какому классу фигур(объектов, изображений) они относятся.

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





     


  18. FPGA это не паноцея. 66   умножителей конечно много, но частота маленькая. Да и задействовать их непросто. 

    По сравнению с  DSP  процессорами. При тойже цене, FPGA раза в 4 быстрее. Но сейчас взять что-то подороже непроблема.

×