SlideShare a Scribd company logo
1 of 20
Download to read offline
Ruby && OpenCV
Computer Vision Intro
(интерпретация изображений, калибровка камеры по эталону, устранение оптических искажений, определение
сходства, анализ перемещения объекта, определение формы объекта и слежение за объектом, 3D-реконструкция,
сегментация объекта, распознавание жестов )
Лена Седерберг 1972
Использование
1. Google
Google Glass
Google Mobile
2. Робототехника и Arduino
3. Промышленное производство
Сложно или интересно?
1) Big Data? (Google Car 1 Гб/с , человеческий мозг ~ 45
Мб - 3Гб)
2) Алгоритмы? (тензоры, фильтрация)
3) DeepLearning , MachineLearning
Из чего состоит ядро?
CXCORE
* содержит базовые структуры данных и алгоритмы:
— базовые операции над многомерными числовыми массивами
— матричная алгебра, математические ф-ции, генераторы случайных чисел
— Запись/восстановление структур данных в/из XML
— базовые функции 2D графики
CV
модуль обработки изображений и компьютерного зрения
— базовые операции над изображениями (фильтрация,
геометрические преобразования, преобразование цветовых
пространств и т. д.)
— анализ изображений (выбор отличительных признаков,
морфология, поиск контуров, гистограммы)
— анализ движения, слежение за объектами
— обнаружение объектов, в частности лиц
— калибровка камер, элементы восстановления пространственной
структуры
CVCAM CVAUX HIGHGUI
Highgui — модуль для ввода/вывода изображений и видео, создания пользовательского интерфейса
— захват видео с камер и из видео файлов, чтение/запись статических изображений.
— функции для организации простого UI (все демо приложения используют HighGUI)
Cvaux — экспериментальные и устаревшие функции
— пространств. зрение: стерео калибрация, само калибрация
— поиск стерео-соответствия, клики в графах
— нахождение и описание черт лица
Примеры патентов или стартапов?
1) Виртуальная примерочная(17%
продаж за 2015 г)
http://zugara.com/virtual-dressing-
room-technology
2) Распознавание автомобильных
номеров (алгоритмы или нейронная
сеть?)
Нейронные сети (механизмы обучения)
1) TensorFlow (Google)
2) Theano, PyLearn2 && EcoSystem
3) Torch
4) Caffe
http://deeplearning4j.org/compare-dl4j-torch7-pylearn.html
Трудности построения системы
1) Soft vs Железо
2) Алгоритм vs Нейронная Сеть
Tesseract OCR
Это открытое программное обеспечение, выполняющее автоматическое распознавание как единичной буквы, так и сразу текста. Tesseract удобен тем, что есть для любых ОС,
стабильно работает и легко обучаем. Но он очень плохо работает с замыленным, битым, грязным и деформированным текстом.
K-nearest
Очень простой для понимания метод распознавания символов, который, несмотря на свою примитивность, часто может побеждать не самые удачные реализации SVM или нейросетевых методов.
Работает он следующим образом:
1) предварительно записываем приличное количество изображений реальных символов уже корректно разбитые на классы своими глазами и руками
2) вводим меру расстояния между символами (если изображение бинаризованно, то операция XOR будет оптимальна)
3) затем, когда мы пытаемся распознать символ, поочередно рассчитываем дистанцию между ним и всеми символами в базе. Среди k ближайших соседей, возможно, будут представители различных классов.
Естественно, представителей какого класса больше среди соседей, к тому классу стоит отнести распознаваемый символ.
Типы данных
CvPoint — точка — (структура из двух переменных (x,y))
CvSize — размер — (структура из двух переменных (width,height))
CvRect — прямоугольник — (структура из 4 переменных (x,y,width,height))
CvScalar — скаляр — (4 числа типа double)
CvArr — массив — его можно считать «абстрактным базовым классом» для CvMat и далее IplImage (CvArr->CvMat-
>IplImage)
CvMat — матрица
IplImage — изображение
Загрузка картинки
cvLoadImage( filename, int iscolor=CV_LOAD_IMAGE_COLOR )
// окно для отображения картинки
filename — имя файла
iscolor — определяет как представить картинку
iscolor > 0 — цветная картинка с 3-мя каналами
iscolor == 0 — картинка будет загружена в формате GRAYSCALE (градации серого)
iscolor < 0 — картинка будет загружена как есть
cvNamedWindow("original",CV_WINDOW_AUTOSIZE);
// показываем картинку
cvShowImage("original",image);
Информация, доступная после загрузки
image->nChannels // число каналов картинки (RGB, хотя в OpenCV - BGR ) (1-4)
image->depth // глубина в битах
image->width // ширина картинки в пикселях
image->height // высота картинки в пикселях
image->imageSize // память занимаемая картинкой (==image->height*image->widthStep)
image->widthStep // расстояние между соседними по вертикали точками изображения (число байт
в одной строчке картинки)
- может потребоваться для самостоятельного обхода всех пикселей изображения)
Метод Виолы Джонса
Величина каждого признака вычисляется как сумма пикселей в белых
прямоугольниках, из которой вычитается сумма пикселей в черных
областях. Прямоугольные признаки более примитивны чем steerable filter,
и, несмотря на то, что они чувствительны к вертикальным и
горизонтальным особенностям изображений, результат их поиска более
груб.
Свертка
— это операция, показывающая «схожесть» одной функции с отражённой и сдвинутой копией другой.
cvFilter2D( src, dst, kernel, CvPoint anchor CV_DEFAULT(cvPoint(-1,-1)))
Нейронные сети
— классические 2-3х-слойные нейросети, обучающиеся градиентными методами с обратным распространением
ошибок (3х-слойная нейросеть изображена на рисунке);
— так называемые deep-learning нейросети и сверточные сети.
Детектор границ Canny
Края(границы) — это такие кривые на изображении, вдоль которых происходит резкое
изменение яркости или других видов неоднородностей.
Проще говоря, край — это резкий переход/изменение яркости.
Причины возникновения краёв:
* изменение освещенности
* изменение цвета
* изменение глубины сцены (ориентации поверхности)
Реализация )))
cvCanny( image, edges, threshold1,
threshold2, CV_DEFAULT(3) );
image — одноканальное изображение для обработки (градации серого)
edges — одноканальное изображение для хранения границ, найденных функцией
threshold1 — порог минимума
threshold2 — порог максимума
aperture_size — размер для оператора Собеля
Шаги детектора
— Убрать шум и лишние детали из изображения
— Рассчитать градиент изображения
— Сделать края тонкими (edge thinning)
— Связать края в контура (edge linking)

More Related Content

Viewers also liked

newmarketingplan_04-14-WEB
newmarketingplan_04-14-WEBnewmarketingplan_04-14-WEB
newmarketingplan_04-14-WEB
Susan Horak
 
Renaissance Quarterly Review of Brusanus
Renaissance Quarterly Review of BrusanusRenaissance Quarterly Review of Brusanus
Renaissance Quarterly Review of Brusanus
Joseph Khoury
 
Tareq Al Khawam Portfolio 2015-2011
Tareq Al Khawam Portfolio 2015-2011Tareq Al Khawam Portfolio 2015-2011
Tareq Al Khawam Portfolio 2015-2011
Tareq Alkh
 
Buyer'sGuideIssuu
Buyer'sGuideIssuuBuyer'sGuideIssuu
Buyer'sGuideIssuu
Susan Horak
 
Medcrave Never Featured in Predatory List
Medcrave Never Featured in Predatory ListMedcrave Never Featured in Predatory List
Medcrave Never Featured in Predatory List
medcravepublisher
 
CVTemplate_en_GB europass zugravu
CVTemplate_en_GB europass zugravuCVTemplate_en_GB europass zugravu
CVTemplate_en_GB europass zugravu
zugravu adrian
 
Financial Sector Performance and Conceptual Framework
Financial Sector Performance and Conceptual FrameworkFinancial Sector Performance and Conceptual Framework
Financial Sector Performance and Conceptual Framework
Atif Ahmed
 
González valentin annex_competic2
González valentin annex_competic2González valentin annex_competic2
González valentin annex_competic2
antonigau
 
Impact of Risk Free and Risky Asset on Portfolio Return
Impact of Risk Free and  Risky Asset on Portfolio ReturnImpact of Risk Free and  Risky Asset on Portfolio Return
Impact of Risk Free and Risky Asset on Portfolio Return
Atif Ahmed
 

Viewers also liked (20)

Solución del modelo de examen
Solución del modelo de examenSolución del modelo de examen
Solución del modelo de examen
 
Aplikasi Gallery Pengetahuan
Aplikasi Gallery PengetahuanAplikasi Gallery Pengetahuan
Aplikasi Gallery Pengetahuan
 
newmarketingplan_04-14-WEB
newmarketingplan_04-14-WEBnewmarketingplan_04-14-WEB
newmarketingplan_04-14-WEB
 
Renaissance Quarterly Review of Brusanus
Renaissance Quarterly Review of BrusanusRenaissance Quarterly Review of Brusanus
Renaissance Quarterly Review of Brusanus
 
Tareq Al Khawam Portfolio 2015-2011
Tareq Al Khawam Portfolio 2015-2011Tareq Al Khawam Portfolio 2015-2011
Tareq Al Khawam Portfolio 2015-2011
 
Buyer'sGuideIssuu
Buyer'sGuideIssuuBuyer'sGuideIssuu
Buyer'sGuideIssuu
 
My Invoice Finance
My Invoice FinanceMy Invoice Finance
My Invoice Finance
 
Encryption ppt
Encryption pptEncryption ppt
Encryption ppt
 
Medcrave Never Featured in Predatory List
Medcrave Never Featured in Predatory ListMedcrave Never Featured in Predatory List
Medcrave Never Featured in Predatory List
 
CVTemplate_en_GB europass zugravu
CVTemplate_en_GB europass zugravuCVTemplate_en_GB europass zugravu
CVTemplate_en_GB europass zugravu
 
Financial Sector Performance and Conceptual Framework
Financial Sector Performance and Conceptual FrameworkFinancial Sector Performance and Conceptual Framework
Financial Sector Performance and Conceptual Framework
 
Carta
CartaCarta
Carta
 
González valentin annex_competic2
González valentin annex_competic2González valentin annex_competic2
González valentin annex_competic2
 
White Paper Organizational Design
White Paper Organizational DesignWhite Paper Organizational Design
White Paper Organizational Design
 
¿Cómo es tu día activo?
¿Cómo es tu día activo?¿Cómo es tu día activo?
¿Cómo es tu día activo?
 
Applications of Doppler in Biomedical
Applications of Doppler in BiomedicalApplications of Doppler in Biomedical
Applications of Doppler in Biomedical
 
Sneak Peak into the Gaming Community
Sneak Peak into the Gaming CommunitySneak Peak into the Gaming Community
Sneak Peak into the Gaming Community
 
resume 2015
resume 2015resume 2015
resume 2015
 
Impact of Risk Free and Risky Asset on Portfolio Return
Impact of Risk Free and  Risky Asset on Portfolio ReturnImpact of Risk Free and  Risky Asset on Portfolio Return
Impact of Risk Free and Risky Asset on Portfolio Return
 
12 najpiękniejszych planerów wg Przedsiebiorcza.com
12 najpiękniejszych planerów wg Przedsiebiorcza.com12 najpiękniejszych planerów wg Przedsiebiorcza.com
12 najpiękniejszych planerów wg Przedsiebiorcza.com
 

Similar to “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)

20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
Computer Science Club
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
Anton Gorokhov
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
Khryashchev
 
Дополненная реальность через веб камеру
Дополненная реальность через веб камеруДополненная реальность через веб камеру
Дополненная реальность через веб камеру
Михаил Кокорев
 
Сегментация
СегментацияСегментация
Сегментация
LiloSEA
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
Computer Science Club
 
распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»
seik0ixtem
 

Similar to “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt) (20)

Denis Perevalov -- Computer Vision with OpenCV 2
Denis Perevalov -- Computer Vision with OpenCV 2Denis Perevalov -- Computer Vision with OpenCV 2
Denis Perevalov -- Computer Vision with OpenCV 2
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
Kirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of ModelingKirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of Modeling
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Metod
MetodMetod
Metod
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
D
DD
D
 
Denis Perevalov -- Computer vision with OpenCV 1
Denis Perevalov -- Computer vision with OpenCV 1Denis Perevalov -- Computer vision with OpenCV 1
Denis Perevalov -- Computer vision with OpenCV 1
 
л.1
л.1л.1
л.1
 
Дополненная реальность через веб камеру
Дополненная реальность через веб камеруДополненная реальность через веб камеру
Дополненная реальность через веб камеру
 
Дополненная реальность через веб камеру
Дополненная реальность через веб камеруДополненная реальность через веб камеру
Дополненная реальность через веб камеру
 
Дополненная реальность через веб камеру
Дополненная реальность через веб камеруДополненная реальность через веб камеру
Дополненная реальность через веб камеру
 
Сегментация
СегментацияСегментация
Сегментация
 
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
 
Artisto App, Highload 2016
Artisto App, Highload 2016Artisto App, Highload 2016
Artisto App, Highload 2016
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»
 

More from Alina Vilk

Alexander Pavlenko, Senior Java Developer, "Cassandra into"
Alexander Pavlenko, Senior Java Developer, "Cassandra into"Alexander Pavlenko, Senior Java Developer, "Cassandra into"
Alexander Pavlenko, Senior Java Developer, "Cassandra into"
Alina Vilk
 
Tatyana Matvienko,Senior Java Developer, Big data storages
 Tatyana Matvienko,Senior Java Developer, Big data storages Tatyana Matvienko,Senior Java Developer, Big data storages
Tatyana Matvienko,Senior Java Developer, Big data storages
Alina Vilk
 
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Alina Vilk
 

More from Alina Vilk (10)

"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
 
Alexander Pavlenko, Senior Java Developer, "Cassandra into"
Alexander Pavlenko, Senior Java Developer, "Cassandra into"Alexander Pavlenko, Senior Java Developer, "Cassandra into"
Alexander Pavlenko, Senior Java Developer, "Cassandra into"
 
Tatyana Matvienko,Senior Java Developer, Big data storages
 Tatyana Matvienko,Senior Java Developer, Big data storages Tatyana Matvienko,Senior Java Developer, Big data storages
Tatyana Matvienko,Senior Java Developer, Big data storages
 
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
 
Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.
 
Студия ГрафПром
Студия ГрафПромСтудия ГрафПром
Студия ГрафПром
 
Andrey Chebotarev, Head of UX Design в AltexSoft
Andrey Chebotarev, Head of UX Design в AltexSoftAndrey Chebotarev, Head of UX Design в AltexSoft
Andrey Chebotarev, Head of UX Design в AltexSoft
 
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
 
Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...
Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...
Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...
 
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
 

“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)

  • 1. Ruby && OpenCV Computer Vision Intro (интерпретация изображений, калибровка камеры по эталону, устранение оптических искажений, определение сходства, анализ перемещения объекта, определение формы объекта и слежение за объектом, 3D-реконструкция, сегментация объекта, распознавание жестов )
  • 3. Использование 1. Google Google Glass Google Mobile 2. Робототехника и Arduino 3. Промышленное производство
  • 4. Сложно или интересно? 1) Big Data? (Google Car 1 Гб/с , человеческий мозг ~ 45 Мб - 3Гб) 2) Алгоритмы? (тензоры, фильтрация) 3) DeepLearning , MachineLearning
  • 6. CXCORE * содержит базовые структуры данных и алгоритмы: — базовые операции над многомерными числовыми массивами — матричная алгебра, математические ф-ции, генераторы случайных чисел — Запись/восстановление структур данных в/из XML — базовые функции 2D графики
  • 7. CV модуль обработки изображений и компьютерного зрения — базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.) — анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы) — анализ движения, слежение за объектами — обнаружение объектов, в частности лиц — калибровка камер, элементы восстановления пространственной структуры
  • 8. CVCAM CVAUX HIGHGUI Highgui — модуль для ввода/вывода изображений и видео, создания пользовательского интерфейса — захват видео с камер и из видео файлов, чтение/запись статических изображений. — функции для организации простого UI (все демо приложения используют HighGUI) Cvaux — экспериментальные и устаревшие функции — пространств. зрение: стерео калибрация, само калибрация — поиск стерео-соответствия, клики в графах — нахождение и описание черт лица
  • 9. Примеры патентов или стартапов? 1) Виртуальная примерочная(17% продаж за 2015 г) http://zugara.com/virtual-dressing- room-technology 2) Распознавание автомобильных номеров (алгоритмы или нейронная сеть?)
  • 10. Нейронные сети (механизмы обучения) 1) TensorFlow (Google) 2) Theano, PyLearn2 && EcoSystem 3) Torch 4) Caffe http://deeplearning4j.org/compare-dl4j-torch7-pylearn.html
  • 11. Трудности построения системы 1) Soft vs Железо 2) Алгоритм vs Нейронная Сеть Tesseract OCR Это открытое программное обеспечение, выполняющее автоматическое распознавание как единичной буквы, так и сразу текста. Tesseract удобен тем, что есть для любых ОС, стабильно работает и легко обучаем. Но он очень плохо работает с замыленным, битым, грязным и деформированным текстом. K-nearest Очень простой для понимания метод распознавания символов, который, несмотря на свою примитивность, часто может побеждать не самые удачные реализации SVM или нейросетевых методов. Работает он следующим образом: 1) предварительно записываем приличное количество изображений реальных символов уже корректно разбитые на классы своими глазами и руками 2) вводим меру расстояния между символами (если изображение бинаризованно, то операция XOR будет оптимальна) 3) затем, когда мы пытаемся распознать символ, поочередно рассчитываем дистанцию между ним и всеми символами в базе. Среди k ближайших соседей, возможно, будут представители различных классов. Естественно, представителей какого класса больше среди соседей, к тому классу стоит отнести распознаваемый символ.
  • 12. Типы данных CvPoint — точка — (структура из двух переменных (x,y)) CvSize — размер — (структура из двух переменных (width,height)) CvRect — прямоугольник — (структура из 4 переменных (x,y,width,height)) CvScalar — скаляр — (4 числа типа double) CvArr — массив — его можно считать «абстрактным базовым классом» для CvMat и далее IplImage (CvArr->CvMat- >IplImage) CvMat — матрица IplImage — изображение
  • 13. Загрузка картинки cvLoadImage( filename, int iscolor=CV_LOAD_IMAGE_COLOR ) // окно для отображения картинки filename — имя файла iscolor — определяет как представить картинку iscolor > 0 — цветная картинка с 3-мя каналами iscolor == 0 — картинка будет загружена в формате GRAYSCALE (градации серого) iscolor < 0 — картинка будет загружена как есть cvNamedWindow("original",CV_WINDOW_AUTOSIZE); // показываем картинку cvShowImage("original",image);
  • 14. Информация, доступная после загрузки image->nChannels // число каналов картинки (RGB, хотя в OpenCV - BGR ) (1-4) image->depth // глубина в битах image->width // ширина картинки в пикселях image->height // высота картинки в пикселях image->imageSize // память занимаемая картинкой (==image->height*image->widthStep) image->widthStep // расстояние между соседними по вертикали точками изображения (число байт в одной строчке картинки) - может потребоваться для самостоятельного обхода всех пикселей изображения)
  • 15. Метод Виолы Джонса Величина каждого признака вычисляется как сумма пикселей в белых прямоугольниках, из которой вычитается сумма пикселей в черных областях. Прямоугольные признаки более примитивны чем steerable filter, и, несмотря на то, что они чувствительны к вертикальным и горизонтальным особенностям изображений, результат их поиска более груб.
  • 16. Свертка — это операция, показывающая «схожесть» одной функции с отражённой и сдвинутой копией другой. cvFilter2D( src, dst, kernel, CvPoint anchor CV_DEFAULT(cvPoint(-1,-1)))
  • 17. Нейронные сети — классические 2-3х-слойные нейросети, обучающиеся градиентными методами с обратным распространением ошибок (3х-слойная нейросеть изображена на рисунке); — так называемые deep-learning нейросети и сверточные сети.
  • 18. Детектор границ Canny Края(границы) — это такие кривые на изображении, вдоль которых происходит резкое изменение яркости или других видов неоднородностей. Проще говоря, край — это резкий переход/изменение яркости. Причины возникновения краёв: * изменение освещенности * изменение цвета * изменение глубины сцены (ориентации поверхности)
  • 19. Реализация ))) cvCanny( image, edges, threshold1, threshold2, CV_DEFAULT(3) ); image — одноканальное изображение для обработки (градации серого) edges — одноканальное изображение для хранения границ, найденных функцией threshold1 — порог минимума threshold2 — порог максимума aperture_size — размер для оператора Собеля
  • 20. Шаги детектора — Убрать шум и лишние детали из изображения — Рассчитать градиент изображения — Сделать края тонкими (edge thinning) — Связать края в контура (edge linking)