ORB - обектът трябва да е много близо до камерата

Имам програма, която взема видео поток от RSTP и проверява за обект. Единственият проблем е, че обектът трябва да е на около 6" от камерата, но когато използвам кабелна уеб камера, обектът може да е на няколко крачки. И двете камери предават с еднаква разделителна способност, на какво се дължи този проблем?

Спецификации за предаване на камерата:

    Resolution: 640 * 480 
    FPS: 20 
    Bitrate: 500000
    Focal Length: 2.8mm

РЕДАКТИРАНЕ: Алгоритъмът, който използвам, е алгоритъмът OpenCV ORB, но също съм виждал това поведение, когато преди това използвах метода на класификатора на Haar в OpenCV.

По-долу е ограничението, при което уеб камерата вече не може да открие обекта. (прибл. 66 пиксела) Ограничение на изображението на уеб камера

По-долу е ограничението, при което Glass вече не може да открие обекта. (прибл. 68 пиксела) Ограничение за стъклено изображение

Гледайки изображението, изглежда, че разстоянието е подобно, но разстоянието е поне два пъти по-голямо от това в изображението на уеб камерата, което ми изглежда като свойство на камерата, което причинява този проблем? ако е така, коя част от камерата би била отговорна за това?


person Colin747    schedule 04.03.2015    source източник
comment
шум? настройки за яркост? свойства на камера/обектив? вероятно някои хитри/прагови/други неща не работят за една от двете настройки. невъзможно е да се познае, без да се познават алгоритъма или камерите! Може би дайте 2 примерни изображения, по едно от всяка камера с обхват, който просто не работи.   -  person Micka    schedule 04.03.2015
comment
Ще взема примерните изображения утре, когато съм в офиса, алгоритъма в OpenCV ORB алгоритъма. Сцената/обектът и околната светлина са еднакви и за двата теста.   -  person Colin747    schedule 04.03.2015
comment
Добавих допълнителна информация и изображения към оригиналната публикация.   -  person Colin747    schedule 05.03.2015
comment
това оптична измама ли е или размерът на листа хартия, измерен в пиксели, е почти еднакъв и в двете изображения?? така че е напълно разумно те да се провалят за същия размер на пикселите??!?   -  person Micka    schedule 05.03.2015
comment
Това имах предвид в последния си блок от текст под изображенията, но не съм сигурен какво е за спецификацията на камерата. това означава, че изображението е със същия размер на пиксела, въпреки че разстоянието е по-голямо.   -  person Colin747    schedule 05.03.2015
comment
фокусно разстояние (или обектив на обектива) в комбинация с размера на сензора. вижте bobatkins.com/photography/tutorials/cropped_sensor_view/   -  person Micka    schedule 05.03.2015
comment
Благодаря ви, промяна в алгоритъма би ли повлияла изобщо на това? Или увеличаването на размера на обекта, който трябва да бъде открит, ще увеличи разстоянието?   -  person Colin747    schedule 05.03.2015
comment
често алгоритмите за откриване имат минимален размер на пиксела в зависимост от данните за обучение. Увеличаването на размера на изображението МОЖЕ да работи (наистина зависи от използвания метод за откриване). Но увеличаването на размера на изображението обикновено увеличава и изчислителните разходи!   -  person Micka    schedule 05.03.2015
comment
може би, ако имате достъп до присъщите параметри на камерата и данните за неизкривяване, можете да изчислите съотношението за преоразмеряване на изображението, за да отговаря на същите условия (и да изрежете второто изображение, за да не увеличавате общия размер на изображението).   -  person Micka    schedule 05.03.2015
comment
Добре, много благодаря за помощта. Имате ли някакви ресурси за изчисляване на съотношението за преоразмеряване на изображението? Ако искате да обедините всичките си коментари в отговор, ще се радвам да приема.   -  person Colin747    schedule 05.03.2015


Отговори (1)


Както сами разпознахте, размерите на обектите са много сходни и в двете изображения, така че алгоритъмът изглежда спира за определена разделителна способност на обекта.

Разликата в разстоянието между двете камери (за един и същи размер на обекта) идва от присъщите параметри на камерата като фокусно разстояние (идва от обектива на обектива) и размера на сензорния чип.

В зависимост от метода, който сте използвали за откриване на обекта, можете да преоразмерите (мащабирате) второто изображение, освен ако това не доведе до твърде много артефакти на интерполация (които може да не се справят с вашия метод за откриване).

Повишаването на мащаба на изображението е добре за много детектори, които имат някакъв минимален размер на обекта, идващ директно от данните за обучение или размера на прозореца за обучение. Увеличаването на мащаба може да доведе до допълнително (драстично) увеличение на производителността на скоростта.

Ако присъщите параметри на двете камери са известни и изображенията вече не са изкривени, можете да изчислите мащабния фактор между двете изображения, който е:

ratioX = fx1/fx2
ratioY = fy1/fy2

ако искате да увеличите мащаба на второто изображение и fx1,fy1 са стойностите на фокусното разстояние на първото изображение. След това можете да изрежете увеличеното изображение, центрирано около основната точка. След това и двете области на изображението трябва да съвпадат доста добре.

Надявам се това да помогне и успех.

редактиране: можете да използвате функцията cv::undistort, за да позволите на изображението да изглежда така, сякаш има друга матрица на камерата, за тестване.

person Micka    schedule 05.03.2015