🛢 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
Еще одной бедой линз являются 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
YouTube
Camera calibration With OpenCV - Chessboard or asymmetrical circle pattern.
This is a demonstration video for the tutorial you can find here: https://opencv.itseez.com/trunk/doc/tutorials/calib3d/table_of_content_calib3d/table_of_content_calib3d.html
For more information make sure you check out the tutorial.
For more information make sure you check out the tutorial.
👁 И вот такие же свертки с ядрами используются и в сверточных нейронных сетях.
Действительно - вот такие 3 * 3 матрицы можно представить в виде 9 весов какой-то мелкой нейроночки (только потом, после свертки, в нейроночку надо добавить нелинейность, какой-нибудь обычной функцией активации, а то иначе не будет иметь смысла делать несколько сверток, ибо композиция линейных функций есть линейная функция).
Вот только веса мы не подбираем сами, а используем для этого стандартные алгоритмы обучения. Но главное, что в одном слое используются одни и те же веса свертки для всего изображения.
В чем профит?
⁃ Используются локальные признаки изображения. Действительно, намного чаще необходимо сначала сделать выделение каких-то мелких признаков с помощью свертки. (Типа вот тут вот у нас контур, а вот тут у нас уголочек, а вот тут у нас еще что-то) и потом компоновать из них более абстрактные признаки. Нейробиологи говорят, что так и работает зрительная кора. То есть вообще если алгоритм обучения на каком-то этапе решит что нам полезно выделить границы, он может и сам сделать вот такой вот оператор Собеля на каком-то слое.
⁃ Вместо одного большого изображения мы получаем гораздо больше данных на которых тренировать маленькую нейроночку
⁃ Мы можем уменьшить размерность следующего слоя нейронки
#sobel #convolution #edgedetection #computervision
Действительно - вот такие 3 * 3 матрицы можно представить в виде 9 весов какой-то мелкой нейроночки (только потом, после свертки, в нейроночку надо добавить нелинейность, какой-нибудь обычной функцией активации, а то иначе не будет иметь смысла делать несколько сверток, ибо композиция линейных функций есть линейная функция).
Вот только веса мы не подбираем сами, а используем для этого стандартные алгоритмы обучения. Но главное, что в одном слое используются одни и те же веса свертки для всего изображения.
В чем профит?
⁃ Используются локальные признаки изображения. Действительно, намного чаще необходимо сначала сделать выделение каких-то мелких признаков с помощью свертки. (Типа вот тут вот у нас контур, а вот тут у нас уголочек, а вот тут у нас еще что-то) и потом компоновать из них более абстрактные признаки. Нейробиологи говорят, что так и работает зрительная кора. То есть вообще если алгоритм обучения на каком-то этапе решит что нам полезно выделить границы, он может и сам сделать вот такой вот оператор Собеля на каком-то слое.
⁃ Вместо одного большого изображения мы получаем гораздо больше данных на которых тренировать маленькую нейроночку
⁃ Мы можем уменьшить размерность следующего слоя нейронки
#sobel #convolution #edgedetection #computervision