Задача зрения: понять, что находится на изображении Тест Тьюринга для компьютерного зрения: Ответить на любой вопрос



Скачать 116.07 Kb.
Pdf просмотр
Дата14.02.2017
Размер116.07 Kb.
Просмотров234
Скачиваний0
ТипЗадача

Компьютерное зрение
Антон Конушин
Заведующий лабораторий компьютерной графики и мультимедиа ВМК МГУ
Лаборатория компьютерной графики и мультимедиа
ВМК МГУ имени М.В. Ломоносова

Что такое компьютерное зрение?
Задача зрения: понять, что находится на изображении
Тест Тьюринга для компьютерного зрения:
Ответить на любой вопрос про изображении, на который может ответить человек.
Source: S. Narasimhan
Компьютерное зрение – часть области искусственного интеллекта (АI)

Что и где находится на изображении?
Здание
Лицо
Текст
Лицо
Текст
Человек
Человек
Необходимо определить, есть ли на изображении объекты заданного типа и если да, то определить их положение
Выделение объектов

Что за сцена и откуда?
• вне помещения
• город
• Пекин, Китай
• Пл. Тяньаньмэнь
Общая характеристика изображения
Классификация изображений

Какой?
Наклонная
Анфас
Мао
Профиль
Голубое
Ветер слабый
Характеристики (атрибуты) отдельных объектов

Какой формы?
Стерео-зрение
Измерения расстояний по снимкам
NASA Mars Rover
Pollefeys et al.
3D моделирование по снимкам
Goesele et al.
Slide: Svetlana Lazebnik
Измерение расстояний и формы объектов

Почему зрение – это сложно?

Michelangelo 1475-1564
slide credit: Fei-Fei, Fergus & Torralba
Точка обзора
image credit: J. Koenderink
Освещение

Изменчивость объектов
Slide credit: Fei-Fei, Fergus & Torralba

Зрение – это сложно
Image source: F. Durand
• Одно 2D изображение допускает разные 3D
интерпретации
• Нужны априорные знания о структуре и свойствах мира

Зрение человека
• Интерпретация подсказок, с учётом наших знаний о мире

25% мозга занято этим

История и достижения компьютерного зрения

Камера-обскура
Первое устройство для получения изображений
Принцип был известен еще Аристотелю (384-
322 до Н.Э.)

Живопись Ренессанса
Яна Ван Эйк «Портрет Четы Арнольфини» 1434г

Секреты мастеров
BBC David Hockney’s «Secret Knowledge»

Камера-обскура с линзой (1500-1600е)
http://www.adme.ru/hudozhniki-i-art-proekty/sekretnoe-znanie-543505/
Возможность проецировать изображение на большой холст. Побочный результат
– много левшей на картинах

Камера-люцида (1807)
Camera Lucida —
устройство, которое представляет собой конструкцию с призмой, которая крепится, например, на стойке к планшету.
Художник, глядя на свой рисунок одним глазом, видит реальное изображение, а другим — собственно рисунок и свою руку. Получается оптическая иллюзия, позволяющая точно переносить пропорции реальные на бумагу.

Первая фотография
Самая первая фотография
1825 год
Требовала 8 часов проявки

Видео
1878 – первая скоростная съемка, Eadweard Muybridge
1888 – первое кино на плёнке,
Louis Le Prince

Whirlwind, MIT (1951)
• Первый компьютер, отображающий текст и графику в реальном времени на мониторе
• Точками карту, значком самолёт.
• «Световое перо» для взаимодействия с экраном
(запрос информации об объекте)

Зарождение компьютерного зрения (1960)
L. G. Roberts, Machine Perception of Three Dimensional Solids,
Ph.D. thesis, MIT Department of
Electrical Engineering, 1960 1963.

Детектор лиц Viola-Jones (2001)
Алгоритм Viola-Jones – первый быстрый и надежный алгоритм поиска лиц. Демонстрация силы машинного обучения.
Source: S. Seitz

Распознавание по лицу
• Одна из самых популярных компьютерных технологий в кино («умные машины»)
• Системы автоматического паспортного контроля
• Распознавание лиц на фотографиях пользователей в соц.сетях

Распознавание текста
FineReader, ABBYY, Россия http://www.abbyy.ru/finereader/
Cognitive Technologies, Россия http://cognitiveforms.ru/products/c ognitive-forms/
Распознавание текста в произвольных изображениях пока работает не так хорошо!

Спортивные соревнования http://www.hawkeyeinnovations.co.uk
Отслеживание скоростного теннисного мячика для определения нарушения правил

L.A. Noire, Team Bondi/Rockstar, 2011 3D модели и захват движения
Построение трёхмерных моделей людей и захват движений для кино и видеоигр

Microsoft Kinect (2010)
Первая потребительская система взаимодействия с компьютером с помощью жестов. При создании использовались суперкомпьютеры

Поиск изображений по содержанию
Поиск картинок, содержащих похожие сцены и объекты

Мобильные приложения www.kooaba.com
Дополненная реальность

Карты
Изображение из Microsoft’s
Virtual Earth
(аналогичные
Google Earth
)
Source: S. Seitz

Построение карт по аэрофотосъёмке

Определение положения на местности

Пример модели по фотографиям

Определение места съёмки

История по фотографиям

Робототехника
Зрение автомобилей от
Mobileye
Source: S. Seitz
Перспектива!

Как реализовать зрение на компьютере?

Простая задача
Ложки и сахар

С чем мы работаем?
Изображение оптическое – картина, получаемая в результате прохождения через оптическую систему лучей, распространяющихся от объекта, и воспроизводящая его контуры и детали.
(Физический энциклопедический словарь.)
Оптические системы могут быть очень разными!

Камера-обскура
• Основная модель оптической системы получения изображений
• Математическая модель - перспективная проекция
• Пучок лучей проходит через одну точку («центр проекции»)

Цифровая камера - дискретизация
По пространству
По яркости
Цифровое изображение – функция яркости, заданная на прямоугольной сетке

Человеческий глаз как камера
• Хрусталик – «линза», меняющая форму под действием мышц
• Зрачок - отверстие (апертура), диаметр управляется радужкой
• Сетчатка – «матрица» фоторецепторов двух типов – палочки и колбочки (красные, зелёные, синие)

Цветное цифровое изображение
Source: Steve Seitz
Демозаикинг (оценка пропущенных значений цвета)
Байеровский шаблон
Модель RGB
(Красный, Зелёный, Синий)

Наш пример
• Сегментация - это способ разделения сцены на
«куски», с которыми проще работать
• Как мы будем записывать результат сегментации?
• Сделаем карту разметки – изображение, в каждом пикселе которого номер сегмента, которому принадлежит этот пиксель
• Визуализировать удобно каждый сегмент своим цветом

Пороговая фильтрация
Будем делать так:

Пиксели, которых выше/ниже некоторого порога, заданного
«извне», помечаются 1

Ниже порога помечаются 0

Бинарное изображение – пиксели которого могут принимать только значения 0 и 1

Бинаризация - построение бинарного изображения по полутоновому / цветному

Получили бинарное изображение
Нужна карта разметки
Что дальше?

Выделение связных областей
Определение связной области:
Множество пикселей, у каждого пикселя которого есть хотя бы один сосед, принадлежащий данному множеству.
Соседи пикселей:
4-связность
8-связность

Разметка связных областей
1 1 2 2 2 1 1 2 2 2
3 4 4 5
4 4 4
6 6 6 6 6 7
Бинарное изображение
Размеченное изображение

Рекурсивный алгоритм
Labeling(img[], labels[])
{
// labels должна быть обнулена
L = 1;
for(y = 0; y < H; y++)
for(x = 0; x < W; x++)
{
Fill(img, labels, x, y, L++);
}
}
Fill(img[], labels[], x, y, L)
{
if( (labels[x][y] = = 0) && (img[x][y] = = 1) )
{
labels[x][y] = L;
if( x > 0 )
Fill(img, labels, x – 1, y, L);
if( x < W - 1 )
Fill(img, labels, x + 1, y, L);
if( y > 0 )
Fill(img, labels, x, y - 1, L);
if( y < H - 1 )
Fill(img, labels, x, y + 1, L);
}
}

Выделенные связанные компоненты

Анализ выделенных областей
Для анализа требуется вычислить некоторые числовые характеристики (признаки) областей:

геометрические признаки
(формы)

фотометрические признаки
(цвет)
На основе этих характеристик можно классифицировать получаемые области

Мы воспользуемся
• Площадь – количество пикселей в области;




m x
n y
y x
I
A
0 0
)
,
(
A
E 
A
B
B
• Удлинённость (эксцентриситет) – отношение длины объекта к его ширине

Графический анализ

Построим график распределения удлинённости и площади для имеющихся у нас примеров

По этим примерам мы можем подобрать пороги
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
0 200 0 400 0 600 0 800 0
Э
к с
ц е
н тр и
с и
те т
Площадь
Шум
Ложки
Сахар

Задача решена!

Гораздо более сложная задача!
Распознавание человека по лицу

Классификация
Объект X
Что на картинке?
• Человек (y=1)
• Животное (y=2)
• Яблоко (y=3)
• Ягоды (y=4)
• Cобака (y=5)
• ….
Задача классификации – определить для объекта X его
«класс» Y из заданного конечного набора классов
Модель (или классификатор) f(x) = y – функция, предсказывающая по x соответствующий класс

Примеры для лиц
Один и тот же человек (y=1), или разные (y=0)?
(бинарная классификация)
«Верификация»
Кто из списка?
«Идентификация»

• «Скользящее окно» – сканирование окном изображения
• Каждый фрагмент отдельно от других классифицируем
«объект» / «не объект»
Выделение объектов на изображении
Разделили изображение на фрагменты, которые классифицируем независимо друг от друга
Задача поиска объектов сводится к классификации

Что такое «лицо»?
Лица
Не лица
• Соберём много примеров «лиц» и «не лиц»

Построение классификатора
• Есть выборка данных X для которых известны Y
• Каждый объект из X c номером j можно описать вектором признаков x j
(набором характеристик)
• Всё множество известных наблюдений (конечное) можно записать в следующем виде (обучающая выборка):
Нужно построить функцию f(x) = y

Эвристический подход
Обычно слишком много признаков, которые по отдельности невозможно интерпретировать

Как должно быть в идеале
Данные
Алгоритм обучения
Обученная машина
Ответ
Вопрос
Машинное обучение

Машинное обучение
Развитие методов компьютерного зрения неразрывно связано с развитием методов машинного обучения
• Нейронные сети - Перспептрон (Розенблатт, 1958), когнитрон (Фукушима, 1975)
• Нейронные сети - обратное распространение ошибки (1980е)
• Метод опорных векторов (1990е)
• Бустинг (конец 1990х)
• Рандомизированный решающий лес (начало 2000х)
• Нейронные сети - «глубинное обучение» (2006 и далее)

Прежде чем решать задачу…
• Нужно определиться с критериями решения
• Как определить, насколько хорошо мы научились решать задачу?

Labeled Faces in the Wild

Соберём большую коллекцию изображений из интернета, разметив её вручную

5749 человек, 12К изображений, 1680 человек по
2 и более фотографии, остальные – по одной

Фотографии разрешения 250*250, JPEG

Неконтролируемые условия, очень разные фоны, позы, разное время съёмки

Выберем некоторое количество пар одинаковых и разных людей. Доля правильно определённых будет показателем качества

На этой коллекции до текущего времени проводились сравнения алгоритмов распознавания лиц
Gary B. Huang, Manu Ramesh, Tamara Berg, and Erik Learned-Miller.
Labeled Faces in the Wild: A Database for Studying Face
Recognition in Unconstrained Environments. University of
Massachusetts, Amherst, Technical Report 07-49, 2007.

Верификация человеком на LFW
Original
99.20%
Cropped
97.53%
Inverse
Cropped
94.27%

Структура мозга человека
Нейросеть
Отдельный нейрон

Математическая модель нейрона

Нейрон = линейный классификатор

Нейрон задает линейную поверхность (гиперплоскость) разбивающую пространство признаков на две области

«Обучение» нейрона = настройка весов

Есть несколько методов
0
:
0
:
0 0






w ные отрицатель w
ные положитель i
i i
i w
x x
w x
x

Многослойная нейросеть

С помощью многослойных сетей можно реализовать любую непрерывную функцию.

Y = f n
( f n-1
…. (f
1
(x))…)

Обратное распространение ошибки
Нейросеть вычисляет дифференцируемую функцию от своих входов

«Метод стохастического градиентного спуска»

Подадим на вход пример, посчитаем его, и вычислим ошибку

Рассчитаем, как нужно изменить веса каждого нейрона
(«градиент») чтобы ошибку уменьшить

Изменим (уточним) веса

Подадим новый пример….

История
Метод обратного распространения ошибки оказался очень эффективным, но неустойчивым
• Требовалось изрядное умение, чтобы заставить нейросеть обучаться
• В 2000е поэтому нейросети стали реже использовать в пользу других методов машинного обучения

«Интернет-бум» + «Закон Мура»
Lena
Одна картинка
1972 10 0
10 5
10 10 10 20
Число картинок
10 15
Human Click Limit
(все человечество делает по картинке в секунду в течение 100 лет)
Время
1996 40.000
COREL
2007 2 миллиарда
2020?
Slide by Antonio Torralba
http://www.image-net.org
14М изображений
Будет 1000 на каждую категорию
Конкурс Large- scale visual recognition (LSVR)
– 1000 классов,
1200 изображений на класс

Изображения в среднем

Победитель – нейросеть «SuperVision»
• 650,000 нейронов
• 60,000,000 параметров
• 630,000,000 связей
• 1 компьютер, 2 GPU по 2Gb, 5GB Ram, 27Gb HDD,
1 неделя на обучение
Krizhevsky A., Sutskever I., Hinton, G. E. ImageNet Classification with Deep Convolutional Neural Networks
// NIPS 2012: Neural Information Processing Systems. Lake Tahoe, Nevada.

Примеры работы

1998 - 2012 1998 2012 2 свёрточных слоя
120 + 84 нейрона
5 свёрточных слоёв
4096 + 4096 нейрона

Что ещё поменялось?
• Из 256x256 случайно выбираем фрагменты
224x224 и их отражения
• Ряд небольших улучшений алгоритмов, позволивших учить быстрее и бороться с переобучением
• Например, размножение данных (data augmentation):

DeepFace (Facebook)

Обучаем классификатор для 4000 человек – многослойную нейросеть

4М изображений – 4000 человек по 1000 изображений

Последний слой используется как признаки для описания человека

Точность 97.35% (У человека на обрезанных – 97.53%)

DeepID (Chinese University of Hong-Kong)
Yi Sun, Xiaogang Wang, and Xiaoou Tang. Deep Learning Face
Representation from Predicting 10,000 Classes. CVPR , 2014.

Точность комитета сетей 99.15% (У человека на обрезанных –
97.53%, на полных 99.2%)

FaceNet от Google (2015)

FaceNet от Google (2015)
• 220 млн. изображений 8 млн. разных людей
• От 6 до 140 млн. параметров в модели
• 99.63% точности

«Бабушкины нейроны»
Можно выделить нейроны, которые обычно срабатывают на изображениях одной категории, и не срабатывают на других (т.е. «признаки»)

Высокоуровневые признаки
• Получается, что каждый слой нейронной сети извлекает какую-то полезную информацию из изображения
• Выход одного слоя можно использовать как признаки изображения и обучать на них классификатор
• Можно обучить сеть на одних данных (ImageNet) и применять на других для вычисления признаков
Donahue et. al.DeCAF: A Deep Convolutional Activation Feature for Generic
Visual Recognition, 2013

Классификация близких объектов
Ali Sharif Razavian Hossein Azizpour Josephine Sullivan Stefan Carlsson
CNN Features off-the-shelf: an Astounding Baseline for Recognition. 2014
• Определение видов птиц
• Возьмём нейросеть, обученную для классификации ImageNet
• Применим её для получения вектор-признаков изображений
Обучаем классификатор поверх этих признаков
• Profit!

Рост качества по методам
K. Chatfield et. Al. Return of the Devil in the Details: Delving Deep into Convolutional Nets, BMVC 2014

Решена ли задача?
• Коллекция LFW устарела, на ней показывают почти совершенный результат.
• При применении на других данных результаты хорошие, но пока далеки от идеальных
• Создаются новые коллекции, на которых будут оценивать качество работы методов


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал