Image processing
163 subscribers
13 photos
3 videos
25 links
Некоторые мысли об обработке изображений и computer vision

По вопросам сотрудничества / tech talk / статей / выступлений - обращаться к

https://t.iss.one/pavelkatunin
Download Telegram
🛢 Barrel distortion

Еще одной бедой линз являются distortions - то есть искажения изображения.
На этих снимках конца блошиной ноги можно увидеть разницу в изображении этой самой ноги в центре линзы и по краям.
Изображение как будто натянули на шар.

🤖Такие искажения можно лечить стандартными средствами OpenCV,
Если вы знаете параметры вашей системы - то вы указываете 4 параметра,
fx, fy, cx, cy - фокальное расстояние и центр изображения.

И скармливаете вот такую матрицу в OpenCV:
[fx 0 cx]
[0 fy cy]
[0 0 1 ]

🏁 Если не знаете, то конкретно для вашей камеры и линзы вы можете сгенерировать эти параметры если покажете OpenCV несколько изображений шахматной доски. И либа подберет параметры.

https://www.youtube.com/watch?v=ViPN810E0SU

#opencv #computervision #imageprocessing
👁 И вот такие же свертки с ядрами используются и в сверточных нейронных сетях.
Действительно - вот такие 3 * 3 матрицы можно представить в виде 9 весов какой-то мелкой нейроночки (только потом, после свертки, в нейроночку надо добавить нелинейность, какой-нибудь обычной функцией активации, а то иначе не будет иметь смысла делать несколько сверток, ибо композиция линейных функций есть линейная функция).

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

В чем профит?
⁃ Используются локальные признаки изображения. Действительно, намного чаще необходимо сначала сделать выделение каких-то мелких признаков с помощью свертки. (Типа вот тут вот у нас контур, а вот тут у нас уголочек, а вот тут у нас еще что-то) и потом компоновать из них более абстрактные признаки. Нейробиологи говорят, что так и работает зрительная кора. То есть вообще если алгоритм обучения на каком-то этапе решит что нам полезно выделить границы, он может и сам сделать вот такой вот оператор Собеля на каком-то слое.
⁃ Вместо одного большого изображения мы получаем гораздо больше данных на которых тренировать маленькую нейроночку
⁃ Мы можем уменьшить размерность следующего слоя нейронки

#sobel #convolution #edgedetection #computervision