Анализ сайта computervisionblog.com
Основное Готовность: 95%
Домен
computervisionblog.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Домен второго уровня идеален для продвижения.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Цепочка редиректов:
http://computervisionblog.com
302 Found
https://www.computervisionblog.com/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 12.01.2027 2:59:59.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~1,36сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 1,36сек превышает 1 секунду. Желательно улучшить работу сайта!
Объем документа
210Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 210Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 6
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 6 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | text/css | https://www.blogger.com/static/v1/widgets/2872013778-css_bundle_v2.css |
| stylesheet | https://www.blogger.com/dyn-css/authorization.css?targetBlogID=15418143&zx=5136e5e4-289e-4cc6-8510-0dd66d03c618 | |
| stylesheet | https://www.blogger.com/dyn-css/authorization.css?targetBlogID=15418143&zx=5136e5e4-289e-4cc6-8510-0dd66d03c618 | |
| js | /feeds/posts/default?orderby=published&alt=json-in-script&callback=showlatestposts | |
| js | text/javascript | //www.statcounter.com/counter/counter_xhtml.js |
| js | text/javascript | https://www.blogger.com/static/v1/widgets/4290755334-widgets.js |
Серверные заголовки
Кол-во: 7
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 7шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Sat, 22 Aug 2026 05:37:13 GMT |
| Cache-Control | max-age=0, private |
| X-Content-Type-Options | nosniff |
| X-XSS-Protection | 1; mode=block |
| Server | GSE |
| Accept-Ranges | none |
| Vary | Accept-Encoding |
CMS
blogger
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
В мета-теге generator указано: blogger.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Google Frontend.
Мета-теги Готовность: 48%
Title
Tombone's Computer Vision Blog
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение: 30, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо увеличить число символов в description (текущее значение: 119, оптимально: от 120 до 130)
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
https://www.computervisionblog.com/
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=1100
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением width задаёт фиксированную ширину области просмотра.
Разметка OpenGraph
Кол-во: 3
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:url | https://www.computervisionblog.com/ |
| og:title | Tombone's Computer Vision Blog |
| og:description | A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence. |
Все мета-теги
Кол-во: 8
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 8шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=1100 |
| name | generator | blogger |
| name | description | A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence. |
| name | google-adsense-platform-account | ca-host-pub-1556223355139109 |
| name | google-adsense-platform-domain | blogspot.com |
| property | og:url | https://www.computervisionblog.com/ |
| property | og:title | Tombone's Computer Vision Blog |
| property | og:description | A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence. |
Оптимизация Готовность: 77%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют по одному на документ).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Абзацев с текстом 1 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Слова из title 4 встречаются в тексте достаточно.
Среднее число слов в абзаце 15 достаточно.
Кол-во знаков контента 45576 на странице оптимально.
Кол-во слов 7125 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 11. Это хорошо.
На странице присутствуют заголовки <h3> 8.
Тошнота
10,05
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 5. Измените текст страницы!
Академич. тошнота
26,25%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| learning | 101 | 1,42% |
| computer | 47 | 0,66% |
| vision | 44 | 0,62% |
| visual | 38 | 0,53% |
| dropout | 38 | 0,53% |
| research | 33 | 0,46% |
| systems | 27 | 0,38% |
| network | 24 | 0,34% |
| andrew | 24 | 0,34% |
| agents | 23 | 0,32% |
| training | 22 | 0,31% |
| uncertainty | 19 | 0,27% |
| neural | 18 | 0,25% |
| machine | 18 | 0,25% |
| bayesian | 16 | 0,22% |
| networks | 15 | 0,21% |
| system | 14 | 0,20% |
| november | 12 | 0,17% |
| recognition | 12 | 0,17% |
| better | 11 | 0,15% |
Индексация Готовность: 0%
Индексирование
Есть ошибки
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 437 слишком много. Проведите ревизию и оптимизацию ссылок сайта.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 215872 байт. Загружен за: 1сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://computervisionblog.com/robots.txt
302 Found
https://www.computervisionblog.com/
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html class='v2' dir='ltr' lang='en'>
<head>
<link href='https://www.blogger.com/static/v1/widgets/2872013778-css_bundle_v2.css' rel='stylesheet' type='text/css'/>
<meta content='width=1100' name='viewport'/>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<meta content='blogger' name='generator'/>
<link href='https://www.computervisionblog.com/favicon.ico' rel='icon' type='image/x-icon'/>
<link href='https://www.computervisionblog.com/' rel='canonical'/>
<link rel="alternate" type="application/atom+xml" title="Tombone's Computer Vision Blog - Atom" href="https://www.computervisionblog.com/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Tombone's Computer Vision Blog - RSS" href="https://www.computervisionblog.com/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="Tombone's Computer Vision Blog - Atom" href="https://www.blogger.com/feeds/15418143/posts/default" />
<link rel="me" href="https://www.blogger.com/profile/17507234774392358321" />
<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
<meta content='A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.' name='description'/>
<meta content='https://www.computervisionblog.com/' property='og:url'/>
<meta content='Tombone's Computer Vision Blog' property='og:title'/>
<meta content='A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.' property='og:description'/>
<title>Tombone's Computer Vision Blog</title>
<style type='text/css'>@font-face{font-family:'Vollkorn';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/vollkorn/v30/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2MHGeHmmZ.ttf)format('truetype');}@font-face{font-family:'Vollkorn';font-style:normal;font-weight:700;font-display:swap;src:url(//fonts.gstatic.com/s/vollkorn/v30/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df213aeHmmZ.ttf)format('truetype');}</style>
<style id='page-skin-1' type='text/css'><!--
/*
-----------------------------------------------
Blogger Template Style
Name: Awesome Inc.
Designer: Tina Chen
URL: tinachen.org
----------------------------------------------- */
/* Content
----------------------------------------------- */
body {
font: normal normal 14px Vollkorn;
color: #444444;
background: #ffffff none repeat scroll top left;
}
html body .content-outer {
min-width: 0;
max-width: 100%;
width: 100%;
}
a:link {
text-decoration: none;
color: #3778cd;
}
a:visited {
text-decoration: none;
color: #4d469c;
}
a:hover {
text-decoration: underline;
color: #3778cd;
}
.body-fauxcolumn-outer .cap-top {
position: absolute;
z-index: 1;
height: 276px;
width: 100%;
background: transparent none repeat-x scroll top left;
_background-image: none;
}
/* Columns
----------------------------------------------- */
.content-inner {
padding: 0;
}
.header-inner .section {
margin: 0 16px;
}
.tabs-inner .section {
margin: 0 16px;
}
.main-inner {
padding-top: 30px;
}
.main-inner .column-center-inner,
.main-inner .column-left-inner,
.main-inner .column-right-inner {
padding: 0 5px;
}
*+html body .main-inner .column-center-inner {
margin-top: -30px;
}
#layout .main-inner .column-center-inner {
margin-top: 0;
}
/* Header
----------------------------------------------- */
.header-outer {
margin: 0 0 0 0;
background: transparent none repeat scroll 0 0;
}
.Header h1 {
font: normal bold 30px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #444444;
text-shadow: 0 0 -1px #000000;
}
.Header h1 a {
color: #444444;
}
.Header .description {
font: normal normal 14px Vollkorn;
color: #444444;
}
.header-inner .Header .titlewrapper,
.header-inner .Header .descriptionwrapper {
padding-left: 0;
padding-right: 0;
margin-bottom: 0;
}
.header-inner .Header .titlewrapper {
padding-top: 22px;
}
/* Tabs
----------------------------------------------- */
.tabs-outer {
overflow: hidden;
position: relative;
background: #eeeeee url(https://www.blogblog.com/1kt/awesomeinc/tabs_gradient_light.png) repeat scroll 0 0;
}
#layout .tabs-outer {
overflow: visible;
}
.tabs-cap-top, .tabs-cap-bottom {
position: absolute;
width: 100%;
border-top: 1px solid #999999;
}
.tabs-cap-bottom {
bottom: 0;
}
.tabs-inner .widget li a {
display: inline-block;
margin: 0;
padding: .6em 1.5em;
font: normal bold 14px Vollkorn;
color: #444444;
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
border-left: 1px solid #999999;
height: 16px;
line-height: 16px;
}
.tabs-inner .widget li:last-child a {
border-right: 1px solid #999999;
}
.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {
background: #666666 url(https://www.blogblog.com/1kt/awesomeinc/tabs_gradient_light.png) repeat-x scroll 0 -100px;
color: #ffffff;
}
/* Headings
----------------------------------------------- */
h2 {
font: normal bold 14px Vollkorn;
color: #444444;
}
/* Widgets
----------------------------------------------- */
.main-inner .section {
margin: 0 27px;
padding: 0;
}
.main-inner .column-left-outer,
.main-inner .column-right-outer {
margin-top: 0;
}
#layout .main-inner .column-left-outer,
#layout .main-inner .column-right-outer {
margin-top: 0;
}
.main-inner .column-left-inner,
.main-inner .column-right-inner {
background: transparent none repeat 0 0;
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2);
-goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .2);
box-shadow: 0 0 0 rgba(0, 0, 0, .2);
-moz-border-radius: 0;
-webkit-border-radius: 0;
-goog-ms-border-radius: 0;
border-radius: 0;
}
#layout .main-inner .column-left-inner,
#layout .main-inner .column-right-inner {
margin-top: 0;
}
.sidebar .widget {
font: normal normal 14px Vollkorn;
color: #444444;
}
.sidebar .widget a:link {
color: #3778cd;
}
.sidebar .widget a:visited {
color: #4d469c;
}
.sidebar .widget a:hover {
color: #3778cd;
}
.sidebar .widget h2 {
text-shadow: 0 0 -1px #000000;
}
.main-inner .widget {
background-color: #ffffff;
border: 1px solid #eeeeee;
padding: 0 15px 15px;
margin: 20px -16px;
-moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-goog-ms-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-moz-border-radius: 0;
-webkit-border-radius: 0;
-goog-ms-border-radius: 0;
border-radius: 0;
}
.main-inner .widget h2 {
margin: 0 -15px;
padding: .6em 15px .5em;
border-bottom: 1px solid transparent;
}
.footer-inner .widget h2 {
padding: 0 0 .4em;
border-bottom: 1px solid transparent;
}
.main-inner .widget h2 + div, .footer-inner .widget h2 + div {
border-top: 1px solid #eeeeee;
padding-top: 8px;
}
.main-inner .widget .widget-content {
margin: 0 -15px;
padding: 7px 15px 0;
}
.main-inner .widget ul, .main-inner .widget #ArchiveList ul.flat {
margin: -8px -15px 0;
padding: 0;
list-style: none;
}
.main-inner .widget #ArchiveList {
margin: -8px 0 0;
}
.main-inner .widget ul li, .main-inner .widget #ArchiveList ul.flat li {
padding: .5em 15px;
text-indent: 0;
color: #666666;
border-top: 1px solid #eeeeee;
border-bottom: 1px solid transparent;
}
.main-inner .widget #ArchiveList ul li {
padding-top: .25em;
padding-bottom: .25em;
}
.main-inner .widget ul li:first-child, .main-inner .widget #ArchiveList ul.flat li:first-child {
border-top: none;
}
.main-inner .widget ul li:last-child, .main-inner .widget #ArchiveList ul.flat li:last-child {
border-bottom: none;
}
.post-body {
position: relative;
}
.main-inner .widget .post-body ul {
padding: 0 2.5em;
margin: .5em 0;
list-style: disc;
}
.main-inner .widget .post-body ul li {
padding: 0.25em 0;
margin-bottom: .25em;
color: #444444;
border: none;
}
.footer-inner .widget ul {
padding: 0;
list-style: none;
}
.widget .zippy {
color: #666666;
}
/* Posts
----------------------------------------------- */
body .main-inner .Blog {
padding: 0;
margin-bottom: 1em;
background-color: transparent;
border: none;
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
-goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
.main-inner .section:last-child .Blog:last-child {
padding: 0;
margin-bottom: 1em;
}
.main-inner .widget h2.date-header {
margin: 0 -15px 1px;
padding: 0 0 0 0;
font: normal normal 14px Vollkorn;
color: #444444;
background: transparent none no-repeat scroll top left;
border-top: 0 solid #eeeeee;
border-bottom: 1px solid transparent;
-moz-border-radius-topleft: 0;
-moz-border-radius-topright: 0;
-webkit-border-top-left-radius: 0;
-webkit-border-top-right-radius: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
position: static;
bottom: 100%;
right: 15px;
text-shadow: 0 0 -1px #000000;
}
.main-inner .widget h2.date-header span {
font: normal normal 14px Vollkorn;
display: block;
padding: .5em 15px;
border-left: 0 solid #eeeeee;
border-right: 0 solid #eeeeee;
}
.date-outer {
position: relative;
margin: 30px 0 20px;
padding: 0 15px;
background-color: #ffffff;
border: 1px solid #eeeeee;
-moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-goog-ms-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-moz-border-radius: 0;
-webkit-border-radius: 0;
-goog-ms-border-radius: 0;
border-radius: 0;
}
.date-outer:first-child {
margin-top: 0;
}
.date-outer:last-child {
margin-bottom: 20px;
-moz-border-radius-bottomleft: 0;
-moz-border-radius-bottomright: 0;
-webkit-border-bottom-left-radius: 0;
-webkit-border-bottom-right-radius: 0;
-goog-ms-border-bottom-left-radius: 0;
-goog-ms-border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.date-posts {
margin: 0 -15px;
padding: 0 15px;
clear: both;
}
.post-outer, .inline-ad {
border-top: 1px solid #eeeeee;
margin: 0 -15px;
padding: 15px 15px;
}
.post-outer {
padding-bottom: 10px;
}
.post-outer:first-child {
padding-top: 0;
border-top: none;
}
.post-outer:last-child, .inline-ad:last-child {
border-bottom: none;
}
.post-body {
position: relative;
}
.post-body img {
padding: 8px;
background: transparent;
border: 1px solid transparent;
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .2);
box-shadow: 0 0 0 rgba(0, 0, 0, .2);
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
}
h3.post-title, h4 {
font: normal bold 22px Vollkorn;
color: #444444;
}
h3.post-title a {
font: normal bold 22px Vollkorn;
color: #444444;
}
h3.post-title a:hover {
color: #3778cd;
text-decoration: underline;
}
.post-header {
margin: 0 0 1em;
}
.post-body {
line-height: 1.4;
}
.post-outer h2 {
color: #444444;
}
.post-footer {
margin: 1.5em 0 0;
}
#blog-pager {
padding: 15px;
font-size: 120%;
background-color: #ffffff;
border: 1px solid #eeeeee;
-moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-goog-ms-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-moz-border-radius: 0;
-webkit-border-radius: 0;
-goog-ms-border-radius: 0;
border-radius: 0;
-moz-border-radius-topleft: 0;
-moz-border-radius-topright: 0;
-webkit-border-top-left-radius: 0;
-webkit-border-top-right-radius: 0;
-goog-ms-border-top-left-radius: 0;
-goog-ms-border-top-right-radius: 0;
border-top-left-radius: 0;
border-top-right-radius-topright: 0;
margin-top: 1em;
}
.blog-feeds, .post-feeds {
margin: 1em 0;
text-align: center;
color: #444444;
}
.blog-feeds a, .post-feeds a {
color: #3778cd;
}
.blog-feeds a:visited, .post-feeds a:visited {
color: #4d469c;
}
.blog-feeds a:hover, .post-feeds a:hover {
color: #3778cd;
}
.post-outer .comments {
margin-top: 2em;
}
/* Comments
----------------------------------------------- */
.comments .comments-content .icon.blog-author {
background-repeat: no-repeat;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
}
.comments .comments-content .loadmore a {
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
}
.comments .continue {
border-top: 2px solid #999999;
}
/* Footer
----------------------------------------------- */
.footer-outer {
margin: -20px 0 -1px;
padding: 20px 0 0;
color: #444444;
overflow: hidden;
}
.footer-fauxborder-left {
border-top: 1px solid #eeeeee;
background: #ffffff none repeat scroll 0 0;
-moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
-goog-ms-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
box-shadow: 0 0 20px rgba(0, 0, 0, .2);
margin: 0 -20px;
}
/* Mobile
----------------------------------------------- */
body.mobile {
background-size: auto;
}
.mobile .body-fauxcolumn-outer {
background: transparent none repeat scroll top left;
}
*+html body.mobile .main-inner .column-center-inner {
margin-top: 0;
}
.mobile .main-inner .widget {
padding: 0 0 15px;
}
.mobile .main-inner .widget h2 + div,
.mobile .footer-inner .widget h2 + div {
border-top: none;
padding-top: 0;
}
.mobile .footer-inner .widget h2 {
padding: 0.5em 0;
border-bottom: none;
}
.mobile .main-inner .widget .widget-content {
margin: 0;
padding: 7px 0 0;
}
.mobile .main-inner .widget ul,
.mobile .main-inner .widget #ArchiveList ul.flat {
margin: 0 -15px 0;
}
.mobile .main-inner .widget h2.date-header {
right: 0;
}
.mobile .date-header span {
padding: 0.4em 0;
}
.mobile .date-outer:first-child {
margin-bottom: 0;
border: 1px solid #eeeeee;
-moz-border-radius-topleft: 0;
-moz-border-radius-topright: 0;
-webkit-border-top-left-radius: 0;
-webkit-border-top-right-radius: 0;
-goog-ms-border-top-left-radius: 0;
-goog-ms-border-top-right-radius: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.mobile .date-outer {
border-color: #eeeeee;
border-width: 0 1px 1px;
}
.mobile .date-outer:last-child {
margin-bottom: 0;
}
.mobile .main-inner {
padding: 0;
}
.mobile .header-inner .section {
margin: 0;
}
.mobile .post-outer, .mobile .inline-ad {
padding: 5px 0;
}
.mobile .tabs-inner .section {
margin: 0 10px;
}
.mobile .main-inner .widget h2 {
margin: 0;
padding: 0;
}
.mobile .main-inner .widget h2.date-header span {
padding: 0;
}
.mobile .main-inner .widget .widget-content {
margin: 0;
padding: 7px 0 0;
}
.mobile #blog-pager {
border: 1px solid transparent;
background: #ffffff none repeat scroll 0 0;
}
.mobile .main-inner .column-left-inner,
.mobile .main-inner .column-right-inner {
background: transparent none repeat 0 0;
-moz-box-shadow: none;
-webkit-box-shadow: none;
-goog-ms-box-shadow: none;
box-shadow: none;
}
.mobile .date-posts {
margin: 0;
padding: 0;
}
.mobile .footer-fauxborder-left {
margin: 0;
border-top: inherit;
}
.mobile .main-inner .section:last-child .Blog:last-child {
margin-bottom: 0;
}
.mobile-index-contents {
color: #444444;
}
.mobile .mobile-link-button {
background: #3778cd url(https://www.blogblog.com/1kt/awesomeinc/tabs_gradient_light.png) repeat scroll 0 0;
}
.mobile-link-button a:link, .mobile-link-button a:visited {
color: #ffffff;
}
.mobile .tabs-inner .PageList .widget-content {
background: transparent;
border-top: 1px solid;
border-color: #999999;
color: #444444;
}
.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {
border-left: 1px solid #999999;
}
--></style>
<style id='template-skin-1' type='text/css'><!--
body {
min-width: 860px;
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: 860px;
max-width: 860px;
_width: 860px;
}
.main-inner .columns {
padding-left: 0px;
padding-right: 260px;
}
.main-inner .fauxcolumn-center-outer {
left: 0px;
right: 260px;
/* IE6 does not respect left and right together */
_width: expression(this.parentNode.offsetWidth -
parseInt("0px") -
parseInt("260px") + 'px');
}
.main-inner .fauxcolumn-left-outer {
width: 0px;
}
.main-inner .fauxcolumn-right-outer {
width: 260px;
}
.main-inner .column-left-outer {
width: 0px;
right: 100%;
margin-left: -0px;
}
.main-inner .column-right-outer {
width: 260px;
margin-right: -260px;
}
#layout {
min-width: 0;
}
#layout .content-outer {
min-width: 0;
width: 800px;
}
#layout .region-inner {
min-width: 0;
width: auto;
}
body#layout div.add_widget {
padding: 8px;
}
body#layout div.add_widget a {
margin-left: 32px;
}
--></style>
<script type='text/javascript'>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-78737443-1', 'auto', 'blogger');
ga('blogger.send', 'pageview');
</script>
<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=15418143&zx=5136e5e4-289e-4cc6-8510-0dd66d03c618' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=15418143&zx=5136e5e4-289e-4cc6-8510-0dd66d03c618' rel='stylesheet'/></noscript>
<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
<meta name='google-adsense-platform-domain' content='blogspot.com'/>
<!-- data-ad-client=ca-pub-3483541207757083 -->
</head>
<body class='loading variant-light'>
<div class='navbar no-items section' id='navbar' name='Navbar'>
</div>
<div itemscope='itemscope' itemtype='http://schema.org/Blog' style='display: none;'>
<meta content='Tombone's Computer Vision Blog' itemprop='name'/>
<meta content='A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.' itemprop='description'/>
</div>
<div class='body-fauxcolumns'>
<div class='fauxcolumn-outer body-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content'>
<div class='content-fauxcolumns'>
<div class='fauxcolumn-outer content-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content-outer'>
<div class='content-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left content-fauxborder-left'>
<div class='fauxborder-right content-fauxborder-right'></div>
<div class='content-inner'>
<header>
<div class='header-outer'>
<div class='header-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left header-fauxborder-left'>
<div class='fauxborder-right header-fauxborder-right'></div>
<div class='region-inner header-inner'>
<div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'>
<div id='header-inner'>
<div class='titlewrapper'>
<h1 class='title'>
Tombone's Computer Vision Blog
</h1>
</div>
<div class='descriptionwrapper'>
<p class='description'><span>Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.</span></p>
</div>
</div>
</div></div>
</div>
</div>
<div class='header-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</header>
<div class='tabs-outer'>
<div class='tabs-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left tabs-fauxborder-left'>
<div class='fauxborder-right tabs-fauxborder-right'></div>
<div class='region-inner tabs-inner'>
<div class='tabs no-items section' id='crosscol' name='Cross-Column'></div>
<div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div>
</div>
</div>
<div class='tabs-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='main-outer'>
<div class='main-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left main-fauxborder-left'>
<div class='fauxborder-right main-fauxborder-right'></div>
<div class='region-inner main-inner'>
<div class='columns fauxcolumns'>
<div class='fauxcolumn-outer fauxcolumn-center-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-left-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-right-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<!-- corrects IE6 width calculation -->
<div class='columns-inner'>
<div class='column-center-outer'>
<div class='column-center-inner'>
<div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'>
<div class='blog-posts hfeed'>
<div class="date-outer">
<h2 class='date-header'><span>Tuesday, November 19, 2019</span></h2>
<div class="date-posts">
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHsjOJuBZ-q-iU82VByVHXyfPN0VQvEjtREakvqzKNJVR0dC5x-gHoeWovCRo_TIov2neaE06aizme45AfqxsU-wZW3BVdtp6fm0dbsVd9HzTUIquWTYgSWx7tPUALOmVpEwV2Q/s400/computer-vision-vs-ai-agents-cover.png' itemprop='image_url'/>
<meta content='15418143' itemprop='blogId'/>
<meta content='2934467168970752428' itemprop='postId'/>
<a name='2934467168970752428'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='https://www.computervisionblog.com/2019/11/computer-vision-and-visual-slam-vs-ai.html'>Computer Vision and Visual SLAM vs. AI Agents</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-2934467168970752428' itemprop='articleBody'>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">With all the recent advancements in end-to-end deep learning, it is now possible to train AI agents to perform many different tasks (some in simulation and some in the real-world). End-to-end learning allows one to replace a multi-component, hand-engineered system with a single learning network that can process raw sensor data and output actions for the AI to take in the physical world. I will discuss the implications of these ideas while highlighting some new research trends regarding Deep Learning for Visual SLAM and conclude with some predictions regarding the kinds of spatial reasoning algorithms that we will need in the future. </span><br />
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHsjOJuBZ-q-iU82VByVHXyfPN0VQvEjtREakvqzKNJVR0dC5x-gHoeWovCRo_TIov2neaE06aizme45AfqxsU-wZW3BVdtp6fm0dbsVd9HzTUIquWTYgSWx7tPUALOmVpEwV2Q/s1600/computer-vision-vs-ai-agents-cover.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHsjOJuBZ-q-iU82VByVHXyfPN0VQvEjtREakvqzKNJVR0dC5x-gHoeWovCRo_TIov2neaE06aizme45AfqxsU-wZW3BVdtp6fm0dbsVd9HzTUIquWTYgSWx7tPUALOmVpEwV2Q/s400/computer-vision-vs-ai-agents-cover.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">In today's article, we will go over three ideas:</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> I.) Does Computer Vision Matter for Action?</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> II.) Visual SLAM for AI agents</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> III.) Quō vādis Visual SLAM? Trends and research forecast</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: large;">I. Does Computer Vision Matter for Action?</span></strong></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">At last month's International Conference of Computer Vision (ICCV 2019), I heard the following thought-provoking question,</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<blockquote class="tr_bq">
<em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">"What do Artificial Intelligence Agents need (if anything) from the field of Computer Vision?"</em></blockquote>
</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">The question was posed by <a href="http://vladlen.info/">Vladlen Koltun</a> (from Intel Research) during his talk at the Deep Learning for Visual SLAM Workshop at ICCV 2019 in Seoul. He spoke about building AI agents with and without the aid of computer vision to guide representation learning. While Koltun has worked on classical Visual SLAM (see his <a href="http://vladlen.info/publications/direct-sparse-odometry/">Direct Sparse Odometry (DSO) system</a> [2]), at this workshop, he decided to not speak about his older work on geometry, alignment, or 3D point cloud processing. His talk included numerous ideas spanning several of his team's research papers, some humor (see video), and plenty of Koltun's philosophical views towards general artificial intelligence. </span><br />
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Recent techniques show that it is possible to learn actions (the output quantities that we really want) from pixels (raw inputs) directly without any intermediate computer vision processing like object recognition, depth estimation, and segmentation. But just because it is possible to solve some AI tasks without intermediate representations (i.e., the computer vision stuff), does that mean that we should abandon computer vision research and let end-to-end learning take care of everything? </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Probably not.</em></strong></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">From a very practical standpoint, let's ask the following question: </span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<blockquote class="tr_bq">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">"Is an agent who is aware of computer vision stuff more robust than an agent trained without intermediate representations?" </span></blockquote>
</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Recent research from Koltun's lab [3] indicates that the answer is </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">yes</em></strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">: training with intermediate representations, as done by supervision from per-frame computer vision tasks, gives rise to more robust agents that learn faster and are more robust in a variety of performance tasks! The next natural question is: which computer vision tasks matter most for agent robustness? Koltun's research suggests that depth estimation is one particular task that works well as an auxiliary task when training agents that have to move through space (i.e., most video games). A depth estimation network should help an AI agent navigate an unknown environment as depth estimation is one key component in many of today's RGBD Visual SLAM systems. The best way to learn about Koltun's paper, titled <a href="http://vladlen.info/publications/computer-vision-matter-action/">Does Computer Vision Matter for Action?</a>, is to see the video on YouTube.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/4MfWa2yZ0Jc" width="560"></iframe>
</div>
<div style="text-align: center;">
<b>Video describing Koltun's Does Computer Vision Matter for Action? [3]</b></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Let's imagine that you want to deploy a robot into the world sometimes from now until 2025 based on your large-scale AI agent training, and you're debating whether you should avoid intermediate representations or not. </span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Intermediate representations facilitate explainability, debuggability, and testing. Explainability is a key to success when systems require spatial reasoning capabilities in the real-world. If your agents are misbehaving, take a look at their intermediate representations. If you want to improve your AI, you can analyze the computer vision systems to prioritize better your data collection effort. Visualization should be a first-order citizen in your deep learning toolbox.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">But today's computer vision ecosystem offers more than algorithms that process individual images. Visual SLAM systems rapidly process images while updating the camera's trajectory and updating the 3D map of the world. Visual SLAM, or VSLAM, algorithms are the real-time variants of Structure-from-Motion (SfM), which has been around for a while. SfM uses bundle adjustment -- a minimization of reprojection error, usually solved with Levenberg Marquardt. If there any kind of robot you see moving around today (2019), it is likely that it is running some variant of SLAM (localization and mapping) and not an end-to-end trained network -- at least not today. So what does Visual SLAM mean for AI agents? </span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: large;">II. Visual SLAM for AI Agents</span></strong></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">While no single per-frame computer vision algorithm is close to sufficient to enable robust action in an environment, there is a class of real-time computer vision systems like Visual SLAM that can be used to guide agents through space. The <a href="http://visualslam.ai/">Workshop on Deep Learning for Visual SLAM at ICCV 2019</a> showcased a variety of different Visual SLAM approaches and included a discussion panel. The workshop featured talks on Visual SLAM on mobile platforms (<a href="http://www.robots.ox.ac.uk/~victor/">Victor Prisacariu</a> from <a href="http://6d.ai/">6d.ai</a>), autonomous cars (<a href="https://vision.in.tum.de/members/cremers">Daniel Cremers</a> from TUM and <a href="http://artisense.ai/">ArtiSense.ai</a>), high-detail indoor modeling (<a href="https://angeladai.github.io/">Angela Dai </a>from TUM), AI Agents (<a href="http://vladlen.info/">Vladlen Koltun</a> from Intel Research) and mixed-reality (<a href="http://tom.ai/">Tomasz Malisiewicz</a> from Magic Leap). </span><br />
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQIbdY0bta1vMpFPwvl8HikavoTmbM6ruWo3RPS5YgqSDXDqp3Erz0TmCJBd6Dz1Slherje2VOOk344_5Q6uU7uMsAQBiWF6gKjhDe6krvzZjO1A9O2vbSmXwa8VWosFDy1KeF5A/s1600/2nd_workshop_on_visual_slam_iccv_2019.png" style="margin-left: auto; margin-right: auto;"><img alt="2nd Workshop on Deep Learning for Visual SLAM" border="0" data-original-height="523" data-original-width="1141" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQIbdY0bta1vMpFPwvl8HikavoTmbM6ruWo3RPS5YgqSDXDqp3Erz0TmCJBd6Dz1Slherje2VOOk344_5Q6uU7uMsAQBiWF6gKjhDe6krvzZjO1A9O2vbSmXwa8VWosFDy1KeF5A/s400/2nd_workshop_on_visual_slam_iccv_2019.png" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Teaser Image for the 2nd Workshop on Deep Learning for Visual SLAM from <a href="http://www.ronnieclark.co.uk/">Ronnie Clark</a>.<br />See info at <a href="http://visualslam.ai/">http://visualslam.ai</a></b></td></tr>
</tbody></table>
</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">When it comes to spatial perception capabilities, Koltun's talk made it clear that we, as computer vision researchers, could think bolder. There is a spectrum of spatial perception capabilities that AI agents need that only somewhat overlaps with traditional Visual SLAM (whether deep learning-based or not).</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Koltun's work is in favor of using intermediate representations based on computer vision to produce more robust AI agents. However, Koltun is not convinced that 6dof Visual SLAM, as is currently defined, needs to be solved for AI agents. Let's consider ordinary human tasks like walking, washing your hands, and flossing your teeth -- each one requires a different amount of spatial reasoning abilities. It is reasonable to assume that AI agents would need varying degrees of spatial localization and mapping capabilities to perform such tasks.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Visual SLAM techniques, like the ones used inside Augmented Reality systems, build metric 3D maps of the environment for the task of high-precision placement of digital content -- but such high-precision systems might never be used directly inside AI agents. When the camera is hand-held (augmented reality) or head-mounted (mixed reality), a human decides where to move. AI agents have to make their own movement decisions, and this requires more than feature correspondences and bundle adjustment -- more than what is inside the scope of computer vision.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Inside a head-mounted display, you might look at digital content 30 feet away from you, and for everything to look correct geometrically, you must have a decent 3D map of the world (spanning at least 30 feet) and a reasonable estimate of your pose. But for many tasks that AI agents need to perform, metric-level representations of far-away geometry are un-necessary. It is as if proper action requires local, high-quality metric maps and something coarser like topological maps for large-range maps. Visual SLAM systems (stereo-based and depth-sensor based) are likely to find numerous applications in industry such as mixed reality and some branches of robotics, where millimeter precision matters. </span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">More general end-to-end learning for AI agents will show us new kinds of spatial intelligence, automatically learned from data. There is a lot of exciting research to be done to answer questions like the following: What kind of tasks can we train Visual AI Agents for such that map-building and localization capabilities arise? Or What type of core spatial reasoning capabilities can we pre-build to enable further self-supervised learning from the 3D world?</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: large;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">III.</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Quō vādis Visual SLAM? Trends and research forecast</strong></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">At the Deep Learning Workshop for Visual SLAM, an interesting question that came up in the panel focused on the convergence of methods in Visual SLAM. Or alternatively,</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<blockquote class="tr_bq">
<em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">"Will a single Visual SLAM framework rule them all?"</em></blockquote>
</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">The world of applied research is moving towards more deep learning -- by 2019, many of the critical tasks inside computer vision exist as some form of a (convolutional/graph) neural network. I don't believe that we will see a single SLAM framework/paradigm dominate all others -- I think we will see a plurality of Visual SLAM systems based on inter-changeable deep learning components. This new generation of deep learning-based components will allow more creative applications of end-to-end learning and be typically useful as modules within other real-world systems. We should create tools that will enable others to make better tools. </span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">PyTorch is making it easy to build multiple-view geometry tools like <a href="https://kornia.github.io/">Kornia</a> -- such that the right parts of computer vision are brought directly into today's deep learning ecosystem as first-order citizens. And PyTorch is winning over the world of research. A dramatic increase in usage happened from 2017 to 2019, with PyTorch now the recommended framework amongst most of my fellow researchers.</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">To take a look at what the end goal in terms of end-to-end deep learning for visual SLAM might look like, take a look at <a href="http://montrealrobotics.ca/gradSLAM/">gradSLAM</a> from <a href="https://krrish94.github.io/">Krishna </a></span><a href="https://krrish94.github.io/">Murthy</a>, a Ph.D. student in MILA, and collaborators at CMU. Their paper offers a new way of thinking of SLAM as made up of differentiable blocks. From the article, "This amalgamation of dense SLAM with computational graphs enables us to backprop from 3D maps to 2D pixels, opening up new possibilities in gradient-based learning for SLAM."<br />
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbr7BXWTvIuuJ5_Vtc2glipOkJRSW4R2wL7bvCwUzN73QH2Yj5vJB-cmlUpnYt0zlNvS0m8kSpaX4EuckCboZdOT7X2r64Hi_W78bIMwKeQ3ixFG-bw3xKzTKivWNg4bmN2qMPDQ/s1600/gradslam.png" style="margin-left: auto; margin-right: auto;"><img alt="Key Figure from the gradSLAM paper on end-to-end learning for SLAM." border="0" data-original-height="494" data-original-width="1600" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbr7BXWTvIuuJ5_Vtc2glipOkJRSW4R2wL7bvCwUzN73QH2Yj5vJB-cmlUpnYt0zlNvS0m8kSpaX4EuckCboZdOT7X2r64Hi_W78bIMwKeQ3ixFG-bw3xKzTKivWNg4bmN2qMPDQ/s400/gradslam.png" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Key Figure from the <a href="http://montrealrobotics.ca/gradSLAM/">gradSLAM</a> paper on end-to-end learning for SLAM. [5]</b></td></tr>
</tbody></table>
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
Another key trend that seems to be on the rise inside the context of Deep Visual SLAM is self-supervised learning. We are seeing more and more practical successes of self-supervised learning for multi-view problems where geometry enables us to get away from strong supervision. Even the ConvNet-based point detector <a href="https://arxiv.org/abs/1712.07629">SuperPoint</a> [7], which my team and I developed at Magic Leap, uses self-supervision to train more robust interest point detectors. In our case, it was impossible to get ground truth interest points on images, and self-labeling was the only way out. One of my favorite researchers working on self-supervised techniques is <a href="https://twitter.com/adnothing">Adrien Gaidon</a> from TRI, who studies how such methods can be used to make smarter cars. Adrien gave some great talks at other ICCV 2019 Workshops related to autonomous vehicles, and his work is closely related to Visual SLAM and useful for anybody working on similar problems.<br />
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/SLEK2vAgjOI" width="560"></iframe>
</div>
<div style="text-align: center;">
<b>Adrien Gaidon's talk from October 11th, 2019 on Self-Supervised Learning in the context of Autonomous Cars</b></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Another excellent presentation about this topic from <a href="https://people.eecs.berkeley.edu/~efros/">Alyosha Efros</a>. He does a great job convincing you why you should love self-supervision.</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/_V-WpE8cmpc" width="560"></iframe>
</div>
<div style="text-align: center;">
<b>A presentation about self-supervision from Alyosha Efros on May 25th, 2018</b></div>
<br />
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: large;">Conclusion</span></strong><br />
<strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: large;"><br /></span></strong></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">As more and more spatial reasoning skills get baked into deep networks, we must face two opposing forces. On the one hand, specifying internal representations makes it difficult to scale to new tasks -- it is easier to trick the deep nets into doing all the hard work for you. On the other hand, we want interpretability and some amount of safety when we deploy AI agents into the real world, so some intermediate tasks like object recognition are likely to be involved in today's spatial perception recipe. Lots of exciting work is happening with <a href="https://openai.com/blog/emergent-tool-use/">multi-agents from OpenAI</a> [6], but full end-to-end learning will not give real-world robots such as autonomous cars anytime soon.</span><br />
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
<br />
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/kopoLzvh5jY" width="560"></iframe>
</div>
<div style="text-align: center;">
<b>Video from OpenAI showing Multi-Agent Hide and Seek. </b>[6] </div>
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">More practical Visual SLAM research will focus on differentiable high-level blocks. As more deep learning happens in Visual SLAM, it will create a renaissance in Visual SLAM as sharing entire SLAM systems will be as easy as sharing CNNs today. I cannot wait until the following is possible:</span><br />
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><br /></span>
<br />
<blockquote class="tr_bq">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"><b>pip install DeepSLAM</b></span></blockquote>
</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">I hope you enjoyed learning about the different approaches to Visual SLAM, and that you have found my blog post insightful and educational. Until next time!</span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">References:</strong></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[1].</span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Vladlen Koltun.</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Chief Scientist for Intelligent Systems at Intel. </span><a class="_e75a791d-denali-editor-page-rtfLink" href="http://vladlen.info/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank"><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/</span></a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[2]. </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Direct Sparse Odometry.</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Jakob Engel, Vladlen Koltun, and Daniel Cremers. IEEE Transactions on Pattern Analysis and Machine Intelligence, 40(3), 2018. </span><a class="_e75a791d-denali-editor-page-rtfLink" href="http://vladlen.info/publications/direct-sparse-odometry/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank"><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/publications/direct-sparse-odometry/</span></a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[3]. </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Does Computer Vision Matter for Action?</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Brady Zhou, Philipp Krähenbühl, and Vladlen Koltun. Science Robotics, 4(30), 2019. </span><a class="_e75a791d-denali-editor-page-rtfLink" href="http://vladlen.info/publications/computer-vision-matter-action/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank"><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/publications/computer-vision-matter-action/</span></a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[4]. </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Kornia: an Open Source Differentiable Computer Vision Library for PyTorch</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">. Edgar Riba, Dmytro Mishkin, Daniel Ponsa, Ethan Rublee, and Gary Bradski. Winter Conference on Applications of Computer Vision, 2019. </span><a class="_e75a791d-denali-editor-page-rtfLink" href="https://kornia.github.io/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank"><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">https://kornia.github.io/</span></a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[5]. </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">gradSLAM: Dense SLAM meets Automatic Differentiation.</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Krishna Murthy J., Ganesh </span>Iyer,<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> and </span>Liam <span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Paull. In </span><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">arXiv</em><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">, 2019. </span><a class="_e75a791d-denali-editor-page-rtfLink" href="http://montrealrobotics.ca/gradSLAM/" style="color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank"><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://montrealrobotics.ca/gradSLAM/</span></a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">[6] </span><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">Emergent tool use from multi-agent autocurricula.</strong><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;"> Bowen Baker, Ingmar Kanitscheider, Todor Markov, Yi Wu, Glenn Powell, Bob McGrew, and Igor Mordatch. In </span><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">arXiv </em><span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">2019. </span><span data-preserver-spaces="true" style="color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;"><a class="_e75a791d-denali-editor-page-rtfLink" href="https://openai.com/blog/emergent-tool-use/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #4a6ee0; margin-bottom: 0pt; margin-top: 0pt;" target="_blank">https://openai.com/blog/emergent-tool-use/</a></span><br />
[7] <b>SuperPoint: Self-supervised interest point detection and description.</b> Daniel DeTone, Tomasz Malisiewicz, and Andrew Rabinovich. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2018. <a href="https://arxiv.org/abs/1712.07629">https://arxiv.org/abs/1712.07629</a></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<br />
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<br />
<div style="background: transparent; color: #1c1e29; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/17507234774392358321' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/17507234774392358321' rel='author' title='author profile'>
<span itemprop='name'>Tomasz Malisiewicz</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='https://www.computervisionblog.com/2019/11/computer-vision-and-visual-slam-vs-ai.html' itemprop='url'/>
<a class='timestamp-link' href='https://www.computervisionblog.com/2019/11/computer-vision-and-visual-slam-vs-ai.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2019-11-19T05:18:00-05:00'>Tuesday, November 19, 2019</abbr></a>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='https://www.computervisionblog.com/2019/11/computer-vision-and-visual-slam-vs-ai.html#comment-form' onclick=''>
2 comments:
</a>
</span>
<span class='post-icons'>
<span class='item-action'>
<a href='https://www.blogger.com/email-post/15418143/2934467168970752428' title='Email Post'>
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/>
</a>
</span>
<span class='item-control blog-admin pid-1676956900'>
<a href='https://www.blogger.com/post-edit.g?blogID=15418143&postID=2934467168970752428&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=2934467168970752428&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=2934467168970752428&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=2934467168970752428&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=2934467168970752428&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=2934467168970752428&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
Labels:
<a href='https://www.computervisionblog.com/search/label/action' rel='tag'>action</a>,
<a href='https://www.computervisionblog.com/search/label/adrien%20gaidon' rel='tag'>adrien gaidon</a>,
<a href='https://www.computervisionblog.com/search/label/AI%20agents' rel='tag'>AI agents</a>,
<a href='https://www.computervisionblog.com/search/label/angela%20dai' rel='tag'>angela dai</a>,
<a href='https://www.computervisionblog.com/search/label/autonomous%20cars' rel='tag'>autonomous cars</a>,
<a href='https://www.computervisionblog.com/search/label/computer%20vision' rel='tag'>computer vision</a>,
<a href='https://www.computervisionblog.com/search/label/conference' rel='tag'>conference</a>,
<a href='https://www.computervisionblog.com/search/label/daniel%20cremers' rel='tag'>daniel cremers</a>,
<a href='https://www.computervisionblog.com/search/label/deep%20learning' rel='tag'>deep learning</a>,
<a href='https://www.computervisionblog.com/search/label/gradslam' rel='tag'>gradslam</a>,
<a href='https://www.computervisionblog.com/search/label/iccv%202019' rel='tag'>iccv 2019</a>,
<a href='https://www.computervisionblog.com/search/label/kornia' rel='tag'>kornia</a>,
<a href='https://www.computervisionblog.com/search/label/panel' rel='tag'>panel</a>,
<a href='https://www.computervisionblog.com/search/label/research' rel='tag'>research</a>,
<a href='https://www.computervisionblog.com/search/label/victor%20prisacariu' rel='tag'>victor prisacariu</a>,
<a href='https://www.computervisionblog.com/search/label/visual%20slam' rel='tag'>visual slam</a>,
<a href='https://www.computervisionblog.com/search/label/vladlen%20koltun' rel='tag'>vladlen koltun</a>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>
</div></div>
<div class="date-outer">
<h2 class='date-header'><span>Wednesday, May 16, 2018</span></h2>
<div class="date-posts">
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2L8WI02nvvxZO2atDfbdwaGGhKWWSxBXNfrkO3hxrIDX27l_diajknihnDsGb7s34_H7FwGEwl58YMQDQs8zlAGIvvSCkp4O8DSSEL8BGiBWGHJfoe95sVCDGRm7i2_S_4QVrw/s400/mind.png' itemprop='image_url'/>
<meta content='15418143' itemprop='blogId'/>
<meta content='7872786804655838317' itemprop='postId'/>
<a name='7872786804655838317'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='https://www.computervisionblog.com/2018/05/deepfakes-ai-powered-deception-machines.html'>DeepFakes: AI-powered deception machines</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-7872786804655838317' itemprop='articleBody'>
Driven by computer vision and deep learning techniques, a new wave of imaging attacks has recently emerged which allows anyone to easily create highly realistic "fake" videos. These false videos are known as <b>Deep Fakes. </b>While highly entertaining at times, DeepFakes can be used to perturb society and some would argue that the pre-shock has already begun. A rogue DeepFake which goes viral can spread misinformation across the internet like wildfire.<br />
<br />
<blockquote class="tr_bq">
"<i>The ability to effortlessly create visually plausible editing of faces in videos
has the potential to severely undermine trust in any form of digital communication. </i>"</blockquote>
<blockquote class="tr_bq" style="text-align: right;">
--Rössler et al. FaceForensics [3]</blockquote>
<br />
Because DeepFakes contain a unique combination of realism and novelty, they are more difficult to detect on social networks as compared to traditional "bad" content like pornography and copyrighted movies. Video hashing might work for finding duplicates or copyright-infringing content, but not good enough for DeepFakes. To fight face-manipulating DeepFake AI, one needs an even stronger AI.<br />
<br />
As today's DeepFakes are based on Deep Learning, and Deep Learning tools like TensorFlow and PyTorch are accessible to anybody with a modern GPU, such face manipulation tools are particularly disruptive. The democratization of Artificial Intelligence has brought us near infinite use-cases. <b>From the DeepDream phenomenon of 2015 to the Deep Style Transfer Art apps of 2016, 2018 is the year of the DeepFake. </b>Today's computer vision technology allows a hobbyist to create a Deep Fake video of just about any person they want performing any action they want, in a matter of hours, using commodity computer hardware.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2L8WI02nvvxZO2atDfbdwaGGhKWWSxBXNfrkO3hxrIDX27l_diajknihnDsGb7s34_H7FwGEwl58YMQDQs8zlAGIvvSCkp4O8DSSEL8BGiBWGHJfoe95sVCDGRm7i2_S_4QVrw/s1600/mind.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="350" data-original-width="730" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2L8WI02nvvxZO2atDfbdwaGGhKWWSxBXNfrkO3hxrIDX27l_diajknihnDsGb7s34_H7FwGEwl58YMQDQs8zlAGIvvSCkp4O8DSSEL8BGiBWGHJfoe95sVCDGRm7i2_S_4QVrw/s400/mind.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small;">Fig 1. DeepFakes generate "false impressions" which are attacks on the human mind.</span></td></tr>
</tbody></table>
<b><br />What is a Deep Fake?</b><br />
A deep fake is a video generated from a modern computer vision puppeteering face-swap algorithm which can be used to generate a video of target person X performing target action A, usually given a video of another person Y performing action A. The underlying system learns two face models, one of target person X, and of for person Y, the person in the original video. It then learns a mapping between the two faces, which can be used to create the resulting "fake" video. Techniques for facial reenactment have been pioneered by movie studios for driving character animations from real actors' faces, but these techniques are now emerging as deep learning-based software packages, letting the deep convolutional neural networks do most of the work during model training.<br />
<br />
Consider the following collage of faces. Can you guess which ones are real and which ones are DeepFakes?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDuotZ3u2NWXbyKRCfuPdjWdJIU-seMOa3K1xm_n4qaUqvnl0d-6ShSLtL4dl9XKE7kc1aznKkUCewdiAVTowD-jWgLGCBZiDAf6EArUMnN9N2E-VJw1CILZlSUfcFzeYbkvQnA/s1600/faceforensics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="1600" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDuotZ3u2NWXbyKRCfuPdjWdJIU-seMOa3K1xm_n4qaUqvnl0d-6ShSLtL4dl9XKE7kc1aznKkUCewdiAVTowD-jWgLGCBZiDAf6EArUMnN9N2E-VJw1CILZlSUfcFzeYbkvQnA/s400/faceforensics.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Fig 2. Can you tell which faces are real and which ones are fake? </div>
<div class="separator" style="clear: both; text-align: center;">
Figure from Face Forensics[3]</div>
<br />
It is not so easy to tell which image is modified and which one is unadulterated. And if you do a little bit of searching for DeepFakes (warning, unless you are careful, you will encounter lots of pornographic content) you notice that the faces in those videos look very realistic.<br />
<br />
<b>How are Deep Fakes made?</b><br />
While there are conceptually many different ways to make Deep Fakes, today we'll focus on two key underlying techniques: face detection from videos, and deep learning for creating frame alignments between source face X and target face Y.<br />
<br />
<div style="text-align: left;">
A lot of this research started with the Face2face work [1] presented at CVPR 2016. This paper was a modernization of the group's earlier SIGGRAPH paper and focused a lot more on the computer vision details. At this time the tools were good enough to create SIGGRAPH-quality videos, but it took a lot of work to put together a facial reenactment rig. In addition, the underlying algorithms did not use any deep learning, so a lot of domain-knowledge (i.e., face modeling expertise) went into making these algorithms work robustly. <span style="text-align: center;">The TUM/Stanford guys filed their Real-time facial reenactment patent in 2016 [4], and have more recently worked on FaceForensics[3] to detect such manipulated imagery.</span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: center;">
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/ohmajJTcpNk" width="460"></iframe>
</div>
<div style="text-align: center;">
Fig3. <b>Face2Face technique from 2016</b>. It is 2018 now, so just imagine how much better this works now!</div>
<b><br /></b> In addition to the Face2face guys (who have now a handful of similarly themed papers), it is interesting to note that a lot of key early ideas in face puppeteering were pioneered by <a href="https://homes.cs.washington.edu/~kemelmi/">Ira Kemelmacher-Shlizerman</a> who is now a computer vision and graphics assistant professor at University of Washington. She worked on early face puppeteering technology for the 2010 paper Being John Malkovich, continued with the Photobios work, and later founded Dreambit (based on a SIGGRAPH 2016 paper), which was acquired by Facebook. :-)<br />
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsABaxwd5EGAYwXse02kSlw0vW4qSxrrw59Sl2MdM4_T6XAOJ755uCtmRPJ5CTXcVQyw-DCxtJLslGKUetFl1AvNP7hf_Z_HfVdn8nIut_GOTdsawuvwDn1HgjyKnZKTiSfwu0rA/s1600/ira_early_deep_fake.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="475" data-original-width="1600" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsABaxwd5EGAYwXse02kSlw0vW4qSxrrw59Sl2MdM4_T6XAOJ755uCtmRPJ5CTXcVQyw-DCxtJLslGKUetFl1AvNP7hf_Z_HfVdn8nIut_GOTdsawuvwDn1HgjyKnZKTiSfwu0rA/s400/ira_early_deep_fake.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Fig 4. <b>Ira's early work on face swapping in 2010.</b> See the Being John Malkovich paper[2].</div>
<b><br /></b>Take a look at Ira's Dreambit video, which shows some high-quality "entertainment" value out of rapidly produced non-malicious DeepFakes!<br />
<br />
<div style="text-align: center;">
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/mILLFK1Rwhk" width="460"></iframe>
</div>
<div style="text-align: center;">
Fig 5. <b>Ira's Dreambit system</b>. Lets her imagine herself in different eras, with different hairstyles, etc.</div>
<div style="font-weight: bold;">
<b><br /></b></div>
The origin of Ira's Dreambit system is the Transfiguring Portraits SIGGRAPH 2016 paper[6]. What's important to note is that this is 2016 and we're starting to see some use of Deep Learning. The transfiguring portraits work used a big mix of features, using some CNN features computed from early Caffe networks. It is not an entirely easy-to-use system at this point, but good enough to make SIGGRAPH videos, take a one minute to generate other cool outputs, and definitely cool enough for Facebook to acquire.<br />
<div class="separator" style="clear: both; font-weight: bold; text-align: center;">
<br /></div>
<div style="font-weight: bold;">
<br /></div>
<div class="separator" style="clear: both; font-weight: bold; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqPNlH2tQSRqIQ4cdRQND65bR-rdQsvyYc9aivYGe5D1gg1s_L1Bd3JGpIz1s6XmtgHIgV_zbUJYhNQ0IRFlbqThX1cJREtS0VFazB60faxeR9fPF3ZakZv-wEC0yUpLXXCxsFCQ/s1600/transfiguring_portraits_deepfake.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1384" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqPNlH2tQSRqIQ4cdRQND65bR-rdQsvyYc9aivYGe5D1gg1s_L1Bd3JGpIz1s6XmtgHIgV_zbUJYhNQ0IRFlbqThX1cJREtS0VFazB60faxeR9fPF3ZakZv-wEC0yUpLXXCxsFCQ/s400/transfiguring_portraits_deepfake.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Fig 6. <b>Transfiguring Portraits</b>. The system used lots of features, but Deep Learning-based CNN features are starting to show up.</div>
<div style="font-weight: bold;">
<b><br /></b></div>
<b>Fighting against DeepFakes</b><br />
There are now published algorithms which try to battle DeepFakes by determining if faces/videos are fake or not. FaceForensics[3] introduces a large DeepFake dataset based on their earlier Face2face work. This dataset contains both real and "fake" Face2face output videos. More importantly, the new dataset is big enough to train a deep learning system to determine if an image is counterfeit. In addition, they are able to both 1.) determine which pixels have likely been manipulated, and 2.) perform a deep cleanup stage to make even better DeepFakes.<br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBBP1-Dh7HNihH0JiC8fjTUbMHI_hfNmGxSJCk49TBwZN4WZWnAJgAQOI6d7s3E14S-z6M9Hvb0BxgXnYXR5WhVGynre74aE4LtSPF-OQ50krX1sicqm4z1uRqwwJRTGMpxjq57g/s1600/deepmask_deepfake_detection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1387" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBBP1-Dh7HNihH0JiC8fjTUbMHI_hfNmGxSJCk49TBwZN4WZWnAJgAQOI6d7s3E14S-z6M9Hvb0BxgXnYXR5WhVGynre74aE4LtSPF-OQ50krX1sicqm4z1uRqwwJRTGMpxjq57g/s400/deepmask_deepfake_detection.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Fig 7. <b>The "fakeness" masks in FaceForensics[3] are based on XceptionNet</b></div>
<br /></div>
<div>
Another fake detection approach, this time from a Berkeley AI Research group called Image Splice Detection, focuses on detecting where an image was spliced to create a fake composite image. This allows them to determine which part of the image was likely "photoshopped" and the technique is not specific to faces. And because this is a 2018 paper, it should not be a surprise that this kind of work is all based on deep learning techniques.<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCqbvQIthgG4mODyaSXNoeR-7LK7nLRpgqpbwRGSQv6iFSHTDqg-S1Le9v01D8NJnPwmurEMsI20H0S72SZ13CKueczEncWSczR2HXEHeqYqPNf8SrVijOHMww_H9Bo9xey7BYnw/s1600/efros_fake_news.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="649" data-original-width="1388" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCqbvQIthgG4mODyaSXNoeR-7LK7nLRpgqpbwRGSQv6iFSHTDqg-S1Le9v01D8NJnPwmurEMsI20H0S72SZ13CKueczEncWSczR2HXEHeqYqPNf8SrVijOHMww_H9Bo9xey7BYnw/s400/efros_fake_news.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Fig 8. <b>Fighting Fake News: Image Splice Detection</b>[5]<b>. </b>Response maps are aggregated to determine the combined probability mask.[5]</div>
<br />
From the Fighting Fake News paper,<br />
<blockquote class="tr_bq">
"<i>As new advances in computer vision and image-editing emerge, there is an increasingly urgent need for effective visual forensics methods. We see our approach, which successfully detects manipulations without seeing examples of manipulated images, as being an initial step toward building general-purpose forensics tools</i>."</blockquote>
<br />
<b>Concluding Remarks</b><br />
The early DeepFake tools were pioneered in the early 2010s and were producing SIGGRAPH-quality results by 2015. It was only a matter of years until DeepFake generators became publicly available. 2018's DeepFake generators, being written on top of open-source Deep Learning libraries, are much easier to use than the researchy systems from only a few years back. Today, just about any hobbyist with minimal computer programming knowledge and a GPU can build their own DeepFakes.<br />
<br />
Just as Deep Fakes are getting better, Generative Adversarial Networks are showing more promise for photorealistic image generation. It is likely that we will soon see lots of exciting new work on both the generative side (deep fake generation) and the discriminative side (deep fake detection and image forensics) which incorporate more and more ideas from the machine learning community.<br />
<b><br /></b> <b><br /></b> <b>References</b><br />
<br />
[1] Justus Thies, Michael Zollhöfer, Marc Stamminger, Christian Theobalt, and Matthias Nießner. "<a href="https://web.stanford.edu/~zollhoef/papers/CVPR2016_Face2Face/paper.pdf">Face2face: Real-time face capture and reenactment of rgb videos</a>." In Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on, pp. 2387-2395. IEEE, 2016.<br />
<br />
[2] Ira Kemelmacher-Shlizerman, Aditya Sankar, Eli Shechtman, and Steven M. Seitz. "<a href="http://grail.cs.washington.edu/projects/malkovich/">Being john malkovich</a>." In European Conference on Computer Vision, pp. 341-353. Springer, 2010.<br />
<br />
[3] Andreas Rössler, Davide Cozzolino, Luisa Verdoliva, Christian Riess, Justus Thies, and Matthias Nießner. "<a href="https://arxiv.org/abs/1803.09179">FaceForensics: A Large-scale Video Dataset for Forgery Detection in Human Faces</a>." arXiv preprint arXiv:1803.09179, 2018.<br />
<br />
[4] Christian Theobalt, Michael Zollhöfer, Marc Stamminger, Justus Thies, Matthias Nießner. Real-time Expression Transfer for Facial Reenactment Invention. 2018/3/8. Application Number 15256710<br />
<br />
[5] Minyoung Huh, Andrew Liu, Andrew Owens, Alexei A. Efros, "<a href="https://arxiv.org/abs/1805.04096">Fighting Fake News: Image Splice Detection via Learned Self-Consistency.</a>" arXiv preprint arXiv:1805.04096, 2018<br />
<br />
[6] Ira Kemelmacher-Shlizerman, "<a href="https://homes.cs.washington.edu/~kemelmi/Transfiguring_Portraits_Kemelmacher_SIGGRAPH2016.pdf">Transfiguring portraits</a>." ACM Transactions on Graphics (TOG), 35(4), p.94. 2016<br />
<br />
<br />
<br />
<br /></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/17507234774392358321' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/17507234774392358321' rel='author' title='author profile'>
<span itemprop='name'>Tomasz Malisiewicz</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='https://www.computervisionblog.com/2018/05/deepfakes-ai-powered-deception-machines.html' itemprop='url'/>
<a class='timestamp-link' href='https://www.computervisionblog.com/2018/05/deepfakes-ai-powered-deception-machines.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-05-16T14:22:00-05:00'>Wednesday, May 16, 2018</abbr></a>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='https://www.computervisionblog.com/2018/05/deepfakes-ai-powered-deception-machines.html#comment-form' onclick=''>
No comments:
</a>
</span>
<span class='post-icons'>
<span class='item-action'>
<a href='https://www.blogger.com/email-post/15418143/7872786804655838317' title='Email Post'>
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/>
</a>
</span>
<span class='item-control blog-admin pid-1676956900'>
<a href='https://www.blogger.com/post-edit.g?blogID=15418143&postID=7872786804655838317&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=7872786804655838317&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=7872786804655838317&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=7872786804655838317&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=7872786804655838317&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=7872786804655838317&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
Labels:
<a href='https://www.computervisionblog.com/search/label/alyosha%20efros' rel='tag'>alyosha efros</a>,
<a href='https://www.computervisionblog.com/search/label/cvpr' rel='tag'>cvpr</a>,
<a href='https://www.computervisionblog.com/search/label/deepfake' rel='tag'>deepfake</a>,
<a href='https://www.computervisionblog.com/search/label/descartes' rel='tag'>descartes</a>,
<a href='https://www.computervisionblog.com/search/label/face%20detection' rel='tag'>face detection</a>,
<a href='https://www.computervisionblog.com/search/label/face%20transfer' rel='tag'>face transfer</a>,
<a href='https://www.computervisionblog.com/search/label/face2face' rel='tag'>face2face</a>,
<a href='https://www.computervisionblog.com/search/label/fake%20news' rel='tag'>fake news</a>,
<a href='https://www.computervisionblog.com/search/label/GANs' rel='tag'>GANs</a>,
<a href='https://www.computervisionblog.com/search/label/Ira%20Kemelmacher-Shlizerman' rel='tag'>Ira Kemelmacher-Shlizerman</a>,
<a href='https://www.computervisionblog.com/search/label/justus%20thies' rel='tag'>justus thies</a>,
<a href='https://www.computervisionblog.com/search/label/matthias%20niessner' rel='tag'>matthias niessner</a>,
<a href='https://www.computervisionblog.com/search/label/realism' rel='tag'>realism</a>,
<a href='https://www.computervisionblog.com/search/label/siggraph' rel='tag'>siggraph</a>,
<a href='https://www.computervisionblog.com/search/label/snapchat' rel='tag'>snapchat</a>,
<a href='https://www.computervisionblog.com/search/label/truth' rel='tag'>truth</a>,
<a href='https://www.computervisionblog.com/search/label/visual%20forgery' rel='tag'>visual forgery</a>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>
</div></div>
<div class="date-outer">
<h2 class='date-header'><span>Friday, December 16, 2016</span></h2>
<div class="date-posts">
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKypjuveaSaLIDV9mG7pELHEuz4JtUI9Y9Fr8NwNaCexzQ8twToG0WMfFUU3Gnw3c3gJQ8Sh1tGyp78cRMqExoya3MgEhmU6kdYueHOfYMozOe6ERztddjzRlcMSBQKygzYzTB6Q/s400/nuts_and_bolts_andrew_ng.png' itemprop='image_url'/>
<meta content='15418143' itemprop='blogId'/>
<meta content='6547994887448818346' itemprop='postId'/>
<a name='6547994887448818346'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='https://www.computervisionblog.com/2016/12/nuts-and-bolts-of-building-deep.html'>Nuts and Bolts of Building Deep Learning Applications: Ng @ NIPS2016</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-6547994887448818346' itemprop='articleBody'>
You might go to a cutting-edge machine learning research conference like NIPS hoping to find some mathematical insight that will help you take your deep learning system's performance to the next level. Unfortunately, as Andrew Ng reiterated to a live crowd of 1,000+ attendees this past Monday, there is no secret AI equation that will let you escape your machine learning woes. All you need is some <b><i>rigor</i></b>, and much of what Ng covered is his remarkable NIPS 2016 presentation titled "<i>The Nuts and Bolts of Building Applications using Deep Learning</i>" is not rocket science. Today we'll dissect the lecture and Ng's key takeaways. Let's begin.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKypjuveaSaLIDV9mG7pELHEuz4JtUI9Y9Fr8NwNaCexzQ8twToG0WMfFUU3Gnw3c3gJQ8Sh1tGyp78cRMqExoya3MgEhmU6kdYueHOfYMozOe6ERztddjzRlcMSBQKygzYzTB6Q/s1600/nuts_and_bolts_andrew_ng.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKypjuveaSaLIDV9mG7pELHEuz4JtUI9Y9Fr8NwNaCexzQ8twToG0WMfFUU3Gnw3c3gJQ8Sh1tGyp78cRMqExoya3MgEhmU6kdYueHOfYMozOe6ERztddjzRlcMSBQKygzYzTB6Q/s400/nuts_and_bolts_andrew_ng.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Figure 1.</b> Andrew Ng delivers a powerful message at NIPS 2016.</div>
<div>
<br /></div>
<div>
<b><br /></b></div>
<div>
<b>Andrew Ng and the Lecture</b></div>
<div>
Andrew Ng's lecture at NIPS 2016 in Barcelona was phenomenal -- truly one of the best presentations I have seen in a long time. In a juxtaposition of two influential presentation styles, the <i>CEO-style</i> and the <i>Professor-style</i>, Andrew Ng mesmerized the audience for two hours. Andrew Ng's wisdom from managing large scale AI projects at Baidu, Google, and Stanford really shows. In his talk, Ng spoke to the audience and discussed one of they key challenges facing most of the NIPS audience -- <i>how do you make your deep learning systems better</i>? Rather than showing off new research findings from his cutting-edge projects, Andrew Ng presented a simple recipe for analyzing and debugging today's large scale systems. With no need for equations, a handful of diagrams, and several checklists, Andrew Ng delivered a two-whiteboards-in-front-of-a-video-camera lecture, something you would expect at a group research meeting. However, Ng made sure to not delve into Research-y areas, likely to make your brain fire on all cylinders, but making you and your company very little dollars in the foreseeable future.</div>
<div>
<br /></div>
<div>
<div>
<b>Money-making deep learning vs Idea-generating deep learning</b></div>
<div>
Andrew Ng highlighted the fact that while NIPS is a research conference, many of the newly generated ideas are simply ideas, not yet battle-tested vehicles for converting mathematical acumen into dollars. The bread and butter of money-making deep learning is supervised learning with recurrent neural networks such as LSTMs in second place. Research areas such as Generative Adversarial Networks (GANs), Deep Reinforcement Learning (Deep RL), and just about anything branding itself as unsupervised learning, are simply Research, with a capital R. These ideas are likely to influence the next 10 years of Deep Learning research, so it is wise to focus on publishing and tinkering if you really love such open-ended Research endeavours. Applied deep learning research is much more about taming your problem (understanding the inputs and outputs), casting the problem as a supervised learning problem, and hammering it with ample data and ample experiments.</div>
</div>
<div>
<b><br /></b></div>
<div>
<blockquote class="tr_bq">
<b>"It takes surprisingly long time to grok bias and variance deeply, but people that understand bias and variance deeply are often able to drive very rapid progress." </b></blockquote>
<blockquote class="tr_bq">
<i>--Andrew Ng </i></blockquote>
</div>
<div>
<br /></div>
<div>
<b><br /></b></div>
<div>
<b>The 5-step method of building better systems</b></div>
<div>
Most issues in applied deep learning come from a training-data / testing-data mismatch. In some scenarios this issue just doesn't come up, but you'd be surprised how often applied machine learning projects use training data (which is easy to collect and annotate) that is different from the target application. Andrew Ng's discussion is centered around the basic idea of bias-variance tradeoff. You want a classifier with a good ability to fit the data (low bias is good) that also generalizes to unseen examples (low variance is good). Too often, applied machine learning projects running as scale forget this critical dichotomy. Here are the four numbers you should always report:</div>
<div>
<ul>
<li>Training set error</li>
<li>Testing set error</li>
<li>Dev (aka Validation) set error</li>
<li>Train-Dev (aka Train-Val) set error</li>
</ul>
<div>
<br /></div>
</div>
<div>
Andrew Ng suggests following the following recipe:</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9TcJuzN8AdB7Ur2u0-fR2Q-auB6FN4xqHW1YeULgAYKhaE7QjMpmn45dHH9LzbwJUo1ywXydvMmaJzcDS2XJ_mrnaCwodu8EpafRMcDJK-BNJspqRgssScWrqb6RjRnyzjiafg/s1600/nuts-and-bolts-checklist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9TcJuzN8AdB7Ur2u0-fR2Q-auB6FN4xqHW1YeULgAYKhaE7QjMpmn45dHH9LzbwJUo1ywXydvMmaJzcDS2XJ_mrnaCwodu8EpafRMcDJK-BNJspqRgssScWrqb6RjRnyzjiafg/s400/nuts-and-bolts-checklist.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Figure 2. </b>Andrew Ng's "Applied Bias-Variance for Deep Learning Flowchart"</div>
<div class="separator" style="clear: both; text-align: center;">
for building better deep learning systems.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Take all of your data, split it into 60% for training and 40% for testing. Use half of the test set for evaluation purposes only, and the other half for development (aka validation). Now take the training set, leave out a little chunk, and call it the training-dev data. This 4-way split isn't always necessary, but consider the worse case where you start with two separate sets of data, and not just one: a large set of training data and a smaller set of test data. You'll still want to split the testing into validation and testing, but also consider leaving out a small chunk of the training data for the training-validation. By reporting the data on the training set vs the training-validation set, you measure the "variance."<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxij4qZ2sdjBTIP_gYBFGow7st_EF5OcN7lRcSK4eMBCCKJiikA10dJ28-b41hGxNrFgaz9T8w-pIMSw3BvUB3kOMfPN1zGjnareH-jtf95zaViXb42AL66zUhWBs8anYAfX7TDA/s1600/bias-variance-andrew-ng.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxij4qZ2sdjBTIP_gYBFGow7st_EF5OcN7lRcSK4eMBCCKJiikA10dJ28-b41hGxNrFgaz9T8w-pIMSw3BvUB3kOMfPN1zGjnareH-jtf95zaViXb42AL66zUhWBs8anYAfX7TDA/s400/bias-variance-andrew-ng.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Figure 3. </b>Human-level vs Training vs Training-dev vs Dev vs Test. </div>
<div class="separator" style="clear: both; text-align: center;">
Taken from Andrew Ng's 2016 talk.</div>
<br /></div>
<div>
<br /></div>
<div>
In addition to these four accuracies, you might want to report the human-level accuracy, for a total of 5 quantities to report. The difference between human-level and training set performance is the Bias. The difference between the training set and the training-dev set is the Variance. The difference between the training-dev and dev sets is the train-test mismatch, which is much more common in real-world applications that you'd think. And finally, the difference between the dev and test sets measures how overfitting.<br />
<br />
Nowhere in Andrew Ng's presentation does he mention how to use unsupervised learning, but he does include a brief discussion about "Synthesis." Such synthesis ideas are all about blending pre-existing data or using a rendering engine to augment your training set.<br />
<br />
<b>Conclusion</b><br />
If you want to lose weight, gain muscle, and improve your overall physical appearance, there is no magical protein shake and no magical bicep-building exercise. The fundamentals such as reduced caloric intake, getting adequate sleep, cardiovascular exercise, and core strength exercises like squats and bench presses will get you there. In this sense, fitness is just like machine learning -- there is no secret sauce. I guess that makes <i>Andrew Ng the Arnold Schwarzenegger of Machine Learning</i>.<br />
<br />
What you are most likely missing in your life is the rigor of reporting a handful of useful numbers such as performance on the 4 main data splits (see Figure 3). Analyzing these numbers will let you know if you need more data or better models, and will ultimately let you hone in your expertise on the conceptual bottleneck in your system (see Figure 2).<br />
<br />
With a prolific research track record that never ceases to amaze, we all know Andrew Ng as one hell of an applied machine learning researcher. But the new Andrew Ng is not just another data-nerd. His personality is bigger than ever -- more confident, more entertaining, and his experience with a large number of academic and industrial projects makes him much wiser. With enlightening lectures as "The Nuts and Bolts of Building Applications with Deep Learning" Andrew Ng is likely to be an individual whose future keynotes you might not want to miss.</div>
<div>
<br />
<b>Appendix</b><br />
You can watch a September 27th, 2016 version of the <a href="https://www.youtube.com/watch?v=F1ka6a13S9I">Andrew Ng Nuts and Bolts of Applying Deep Learning Lecture on YouTube</a>, which he delivered at the Deep Learning School. If you are working on machine learning problems in a startup, then definitely give the video a watch. I will update the video link once/if the newer NIPS 2016 version shows up online.<br />
<br />
You can also check out <a href="https://kevinzakka.github.io/2016/09/26/applying-deep-learning/">Kevin Zakka's blog post</a> for ample illustrations and writeup corresponding to Andrew Ng's entire talk.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
</div>
</div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/17507234774392358321' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/17507234774392358321' rel='author' title='author profile'>
<span itemprop='name'>Tomasz Malisiewicz</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='https://www.computervisionblog.com/2016/12/nuts-and-bolts-of-building-deep.html' itemprop='url'/>
<a class='timestamp-link' href='https://www.computervisionblog.com/2016/12/nuts-and-bolts-of-building-deep.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2016-12-16T00:13:00-05:00'>Friday, December 16, 2016</abbr></a>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='https://www.computervisionblog.com/2016/12/nuts-and-bolts-of-building-deep.html#comment-form' onclick=''>
No comments:
</a>
</span>
<span class='post-icons'>
<span class='item-action'>
<a href='https://www.blogger.com/email-post/15418143/6547994887448818346' title='Email Post'>
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/>
</a>
</span>
<span class='item-control blog-admin pid-1676956900'>
<a href='https://www.blogger.com/post-edit.g?blogID=15418143&postID=6547994887448818346&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=6547994887448818346&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=6547994887448818346&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=6547994887448818346&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=6547994887448818346&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=6547994887448818346&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
Labels:
<a href='https://www.computervisionblog.com/search/label/advice' rel='tag'>advice</a>,
<a href='https://www.computervisionblog.com/search/label/andrew%20ng' rel='tag'>andrew ng</a>,
<a href='https://www.computervisionblog.com/search/label/bias-variance' rel='tag'>bias-variance</a>,
<a href='https://www.computervisionblog.com/search/label/deep%20learning' rel='tag'>deep learning</a>,
<a href='https://www.computervisionblog.com/search/label/google' rel='tag'>google</a>,
<a href='https://www.computervisionblog.com/search/label/machine%20learning' rel='tag'>machine learning</a>,
<a href='https://www.computervisionblog.com/search/label/nips%202016' rel='tag'>nips 2016</a>,
<a href='https://www.computervisionblog.com/search/label/research' rel='tag'>research</a>,
<a href='https://www.computervisionblog.com/search/label/supervised%20learning' rel='tag'>supervised learning</a>,
<a href='https://www.computervisionblog.com/search/label/synthesis' rel='tag'>synthesis</a>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>
</div></div>
<div class="date-outer">
<h2 class='date-header'><span>Friday, June 17, 2016</span></h2>
<div class="date-posts">
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRajgS9sTeoGmhNYR8AFroVG4R-ItHpYtMjuRaA0vD3-oycpmwy3ynJzL4DHXxy-vtOPWW4p2FeGzIHDLpRS4yVtr5KqiwtRikp6m5r9KO8qf037QOQniQOUSapuB1XNSgdC2daQ/s400/interpretable_vs_deep_neural_networks.png' itemprop='image_url'/>
<meta content='15418143' itemprop='blogId'/>
<meta content='8839595873640006183' itemprop='postId'/>
<a name='8839595873640006183'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='https://www.computervisionblog.com/2016/06/making-deep-networks-probabilistic-via.html'>Making Deep Networks Probabilistic via Test-time Dropout</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-8839595873640006183' itemprop='articleBody'>
In Quantum Mechanics, Heisenberg's Uncertainty Principle states that there is a fundamental limit to how well one can measure a particle's <b>position</b> and <b>momentum</b>. In the context of machine learning systems, a similar principle has emerged, but relating <b>interpretability</b> and <b>performance</b>. By using a manually wired or shallow machine learning model, you'll have no problem understanding the moving pieces, but you will seldom be happy with the results. Or you can use a black-box deep neural network and enjoy the model's exceptional performance. Today we'll see one simple and effective trick to make our deep black boxes a bit more intelligible. The trick allows us to convert neural network outputs into probabilities, with no cost to performance, and minimal computational overhead.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 12.8px;"></td></tr>
<tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRajgS9sTeoGmhNYR8AFroVG4R-ItHpYtMjuRaA0vD3-oycpmwy3ynJzL4DHXxy-vtOPWW4p2FeGzIHDLpRS4yVtr5KqiwtRikp6m5r9KO8qf037QOQniQOUSapuB1XNSgdC2daQ/s1600/interpretable_vs_deep_neural_networks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRajgS9sTeoGmhNYR8AFroVG4R-ItHpYtMjuRaA0vD3-oycpmwy3ynJzL4DHXxy-vtOPWW4p2FeGzIHDLpRS4yVtr5KqiwtRikp6m5r9KO8qf037QOQniQOUSapuB1XNSgdC2daQ/s400/interpretable_vs_deep_neural_networks.png" width="400" /></a></div>
</td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;"><b>Interpretability vs Performance: </b>Deep Neural Networks perform well on most computer vision tasks, yet they are notoriously difficult to interpret.</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The desire to understand deep neural networks has triggered a flurry of research into Neural Network Visualization, but in practice we are often forced to treat deep learning systems as black-boxes. (See my recent <a href="http://www.computervisionblog.com/2016/06/deep-learning-trends-iclr-2016.html">Deep Learning Trends @ ICLR 2016</a> post for an overview of recent neural network visualization techniques.) But just because we can't grok the inner-workings of our favorite deep models, it doesn't mean we can't ask more out of our deep learning systems.<br />
<br />
<blockquote class="tr_bq">
<span style="font-size: large;">There exists a simple trick for upgrading black-box neural network outputs into probability distributions.</span> </blockquote>
<br />
The probabilistic approach provides confidences, or "uncertainty" measures, alongside predictions and can make almost any deep learning systems into a smarter one. For robotic applications or any kind of software that must make decisions based on the output of a deep learning system, being able to provide meaningful uncertainties is a true game-changer.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: right;"><tbody>
<tr><td style="text-align: center;"><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiisZRvnUQYI8rdDHC01TGOgv1AgGehZ8hbrP6QaMr2HwIwEyk0RgPNpb6-JMwLXIt5cAlwYEWkTbA31SbeqZFaTkh5ntbn7p0DW8WM6eCQRRNiG14NvjJL2WTJhKMrJP53CacOCw/s1600/brain_zap_neural_network_dropout.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiisZRvnUQYI8rdDHC01TGOgv1AgGehZ8hbrP6QaMr2HwIwEyk0RgPNpb6-JMwLXIt5cAlwYEWkTbA31SbeqZFaTkh5ntbn7p0DW8WM6eCQRRNiG14NvjJL2WTJhKMrJP53CacOCw/s320/brain_zap_neural_network_dropout.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px; text-align: center;">Applying<b> Dropout</b> to your Deep Neural Network is like occasionally zapping your brain</td></tr>
</tbody></table>
<span style="background-color: white;">The key ingredient is <b>dropout</b>, an anti-overfitting deep learning trick handed down from Hinton himself (Krizhevsky's pioneering 2012 paper). Dropout sets some of the weights to zero during training, reducing feature co-adaptation, thus improving generalization.</span><br />
<blockquote class="tr_bq">
<span style="font-size: large;">Without dropout, it is too easy to make a moderately deep network attain 100% accuracy on the training set. </span></blockquote>
The accepted knowledge is that an un-regularized network (one without dropout) is too good at memorizing the training set. For a great introductory machine learning video lecture on dropout, I highly recommend you watch Hugo Larochelle's lecture on Dropout for Deep learning.<br />
<br />
<center>
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/UcKPdAM8cnI" width="420"></iframe> </center>
<br />
<span style="background-color: white;">Geoff Hinton's dropout lecture, also a great introduction, focuses on interpreting dropout as an ensemble method. If you're looking for new research ideas in the dropout space, a thorough understanding of Hinton's interpretation is a must.</span><br />
<br />
<center>
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/G3KUvHx9GDY" width="420"></iframe> </center>
<br />
<span style="background-color: white;">But while dropout is typically used at </span>training-time<span style="background-color: white;">, today we'll highlight the keen observation that </span><b style="background-color: white;">dropout used at test-time is one of the simplest ways to turn raw neural network outputs into probability distributions</b><span data-mce-style="font-family: Times; font-size: medium; line-height: normal;" style="background-color: white;">. Not only does this probabilistic "free upgrade" often improve classification results, it provides a meaningful notion of uncertainty, something typically <span data-mce-style="font-family: Times; font-size: medium; line-height: normal;">missing</span> in Deep Learning systems.</span><br />
<blockquote class="tr_bq">
<span style="font-size: large;">The idea is quite simple: t</span><span style="text-align: center;"><span style="font-size: large;">o estimate the predictive mean and predictive uncertainty, simply collect the results of stochastic forward passes through the model using dropout.</span> </span></blockquote>
<h3>
<b>How to use dropout: 2016 edition</b></h3>
<ol>
<li>Start with a moderately sized network</li>
<li>Increase your network size with dropout turned off until you perfectly fit your data</li>
<li>Then, train with dropout turned on</li>
<li>At test-time, turn on dropout and run the network T times to get T samples</li>
<li>The mean of the samples is your output and the variance is your measure of uncertainty</li>
</ol>
<a href="https://arxiv.org/abs/1506.02142"></a><br />
<div>
Remember that drawing more samples will increase computation time during testing unless you're clever about re-using partial computations in the network. Please note that if you're only using dropout near the end of your network, you can reuse most of the computations. If you're not happy with the uncertainty estimates, consider adding more layers of dropout at test-time. Since you'll already have a pre-trained network, experimenting with test-time dropout layers is easy.<br />
<br /></div>
<h3>
<b>Bayesian Convolutional Neural Networks</b></h3>
To be truly Bayesian about a deep network's parameters, we wouldn't learn a single set of parameters <b>w</b>, we would infer a distribution over weights given the data, p(<b>w</b>|<b>X</b>,<b>Y</b>). Training is already quite expensive, requiring large datasets and expensive GPUs.<br />
<blockquote class="tr_bq">
<span style="font-size: large;">Bayesian learning algorithms can in theory provide much better parameter estimates for ConvNets and I'm sure some of our friends at Google are working on this already. </span></blockquote>
But today we aren't going to talk about such full Bayesian Deep Learning systems, only systems that "upgrade" the model prediction <b>y</b> to p(<b>y</b>|<b>x</b>,<b>w</b>). In other words, only the network outputs gain a probabilistic interpretation.<br />
<br />
An excellent deep learning computer vision system which uses test-time dropout comes from a recent University of Cambridge technique called SegNet. The SegNet approach introduced an Encoder-Decoder framework for dense semantic segmentation. More recently, SegNet includes a Bayesian extension that uses dropout at test-time for providing uncertainty estimates. Because the system provides a dense per-pixel labeling, the confidences can be visualized as per-pixel heatmaps. Segmentation system is not performing well? Just look at the confidence heatmaps!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiHnNmv089iXX4whgxHXbCdTWJEDOcePF4350d-nY_ADw2L1SiQqWLJ2IwcSjnpCyLbhw8pJrH3bt-wrypbjiuurzpiRb-oOjdSAqIJVAgGV546QKngYn_4ZkHCNglig9MFKhmPg/s1600/bayesian_segnet_uncertainty_dropout.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiHnNmv089iXX4whgxHXbCdTWJEDOcePF4350d-nY_ADw2L1SiQqWLJ2IwcSjnpCyLbhw8pJrH3bt-wrypbjiuurzpiRb-oOjdSAqIJVAgGV546QKngYn_4ZkHCNglig9MFKhmPg/s400/bayesian_segnet_uncertainty_dropout.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;"><div style="font-size: 12.8px;">
<b>Bayesian SegNet.</b> A fully convolutional neural network architecture which provides </div>
<div style="font-size: 12.8px;">
per-pixel class uncertainty estimates using dropout.</div>
<div>
<br /></div>
</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
The Bayesian SegNet authors tested different strategies for dropout placement and determined that a handful of dropout layers near the encoder-decoder bottleneck is better than simply using dropout near the output layer. Interestingly, Bayesian SegNet improves the accuracy over vanilla SegNet. Their confidence maps shown high uncertainty near object boundaries, but different test-time dropout schemes could provide a more diverse set of uncertainty estimates.<br />
<br />
<a href="https://arxiv.org/abs/1511.02680">Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding</a> Alex Kendall, Vijay Badrinarayanan, Roberto Cipolla, in arXiv:1511.02680, November 2015. [<a href="http://mi.eng.cam.ac.uk/projects/segnet/">project page with videos</a>]<br />
<div>
<span style="font-size: x-small;"><br /></span></div>
<br />
Confidences are quite useful for evaluation purposes, because instead of providing a single average result across all pixels in all images, we can sort the pixels and/or images by the overall confidence in prediction. When evaluation the top 10% most confident pixels, we should expect significantly higher performance. For example, the Bayesian SegNet approach achieves 75.4% global accuracy on the SUN RGBD dataset, and an astonishing 97.6% on most confident 10% of the test-set [personal communication with Bayesian SegNet authors]. This kind of sort-by-confidence evaluation was popularized by the PASCAL VOC Object Detection Challenge, where precision/recall curves were the norm. Unfortunately, as the research community moved towards large-scale classification, the notion of confidence was pushed aside. Until now.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody></tbody></table>
<h3>
<b>Theoretical Bayesian Deep Learning</b></h3>
<span style="background-color: white;">Deep networks that model uncertainty are truly meaningful machine learning systems. It ends up that we don't really have to understand how a deep network's neurons process image features </span><span data-mce-style="font-family: Times; font-size: medium; line-height: normal;" style="background-color: white;">to</span><span style="background-color: white;"> trust the system to make decisions. As long as the model provides uncertainty estimates, we'll know when the model is struggling. This is particularly important when your network is given </span><span data-mce-style="font-family: Times; font-size: medium; line-height: normal;" style="background-color: white;"><span data-mce-style="font-family: Times; font-size: medium; line-height: normal;"><span data-mce-style="font-family: Times; font-size: medium; line-height: normal;">inputs</span></span></span><span style="background-color: white;"> that are far from the training data.</span><br />
<br />
<h3>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxuhKzw9DRB2h0MTFmCgtdmuqEyl0pO3JNgXwWlnUM9eq43IktIkp8KPT8DPXoHCRgpGZ22ugauJOuq7ZNfkUJRcYRNxJ5TrY2fWFoLK3c14taWcQ77clr9Bye3bklielFv7oGw/s1600/gaussian_process_confidence_values.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxuhKzw9DRB2h0MTFmCgtdmuqEyl0pO3JNgXwWlnUM9eq43IktIkp8KPT8DPXoHCRgpGZ22ugauJOuq7ZNfkUJRcYRNxJ5TrY2fWFoLK3c14taWcQ77clr9Bye3bklielFv7oGw/s400/gaussian_process_confidence_values.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;"><b>The Gaussian Process:</b> A machine learning approach with built-in uncertainty modeling<br />
<div>
<br /></div>
</td></tr>
</tbody></table>
</h3>
In a recent ICML 2016 paper, <a href="http://mlg.eng.cam.ac.uk/yarin/">Yarin Gal</a> and <a href="http://mlg.eng.cam.ac.uk/zoubin/">Zoubin Ghahramani</a> develop <span style="background-color: white;">a new theoretical framework casting dropout training in deep neural networks as approximate Bayesian inference in deep Gaussian processes. Gal's paper gives a complete theoretical treatment of the link between Gaussian processes and dropout, and develops the tools necessary to represent uncertainty in deep learning. They show that a neural network with arbitrary depth and non-linearities, with dropout applied before every weight layer, is mathematically equivalent to an approximation to the probabilistic deep Gaussian process. I have yet to see researchers use dropout between every layer, so the discrepancy between theory and practice suggests that more research is necessary.</span><br />
<br />
<a href="https://arxiv.org/abs/1506.02142">Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning</a> Yarin Gal, Zoubin Ghahramani, in ICML. June 2016. [<a href="https://arxiv.org/abs/1506.02157">Appendix</a> with relationship to Gaussian Processes]<br />
<a href="https://arxiv.org/abs/1512.05287">A Theoretically Grounded Application of Dropout in Recurrent Neural Networks</a> Yarin Gal, in arXiv:1512.05287. May 2016.<br />
<div>
<a href="http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html">What My Deep Model Doesn't Know</a>. Yarin Gal. Blog Post. July 2015 </div>
<div>
<a href="https://github.com/yaringal/HeteroscedasticDropoutUncertainty">Homoscedastic and Heteroscedastic Regression with Dropout Uncertainty</a>. Yarin Gal. Blog Post. February 2016.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMelLjDrnaPj2uYLCY-2egYIgpTL2jNA2knc7ZrRN1mwcoLhNGrb0GOwvkdVrLz0vJvV2QZo4yPGzExHqW926uCzOJYCxJg49UriP6Wg-o57O_2BjOfrG2lmWmhBzdqLRH8rxT4w/s1600/black_box.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMelLjDrnaPj2uYLCY-2egYIgpTL2jNA2knc7ZrRN1mwcoLhNGrb0GOwvkdVrLz0vJvV2QZo4yPGzExHqW926uCzOJYCxJg49UriP6Wg-o57O_2BjOfrG2lmWmhBzdqLRH8rxT4w/s400/black_box.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Test-time dropout is used to provide uncertainty estimates for deep learning systems.</td></tr>
</tbody></table>
<br />
In conclusion, maybe we can never get both interpretability and performance when it comes to deep learning systems. But, we can all agree that providing confidences, or uncertainty estimates, alongside predictions is <i>always</i> a good idea. Dropout, the very single regularization trick used to battle overfitting in deep models, shows up, yet again. Sometimes all you need is to add some random variations to your input, and average the results over many trials. Dropout lets you not only wiggle the network inputs but the entire architecture.<br />
<br />
I do wonder what Yann LeCun thinks about Bayesian ConvNets... Last I heard, he was allergic to sampling.<br />
<br />
<b>Related Posts </b><br />
<a href="http://www.computervisionblog.com/2015/04/deep-learning-vs-probabilistic.html">Deep Learning vs Probabilistic Graphical Models vs Logic</a> April 2015<br />
<a href="http://www.computervisionblog.com/2016/06/deep-learning-trends-iclr-2016.html">Deep Learning Trends @ ICLR 2016</a> June 2016<br />
<br />
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/17507234774392358321' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/17507234774392358321' rel='author' title='author profile'>
<span itemprop='name'>Tomasz Malisiewicz</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='https://www.computervisionblog.com/2016/06/making-deep-networks-probabilistic-via.html' itemprop='url'/>
<a class='timestamp-link' href='https://www.computervisionblog.com/2016/06/making-deep-networks-probabilistic-via.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2016-06-17T06:24:00-05:00'>Friday, June 17, 2016</abbr></a>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='https://www.computervisionblog.com/2016/06/making-deep-networks-probabilistic-via.html#comment-form' onclick=''>
No comments:
</a>
</span>
<span class='post-icons'>
<span class='item-action'>
<a href='https://www.blogger.com/email-post/15418143/8839595873640006183' title='Email Post'>
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/>
</a>
</span>
<span class='item-control blog-admin pid-1676956900'>
<a href='https://www.blogger.com/post-edit.g?blogID=15418143&postID=8839595873640006183&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=8839595873640006183&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=8839595873640006183&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=8839595873640006183&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=8839595873640006183&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=15418143&postID=8839595873640006183&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
Labels:
<a href='https://www.computervisionblog.com/search/label/arxiv' rel='tag'>arxiv</a>,
<a href='https://www.computervisionblog.com/search/label/bayesian' rel='tag'>bayesian</a>,
<a href='https://www.computervisionblog.com/search/label/confidence' rel='tag'>confidence</a>,
<a href='https://www.computervisionblog.com/search/label/deep%20learning' rel='tag'>deep learning</a>,
<a href='https://www.computervisionblog.com/search/label/dropout' rel='tag'>dropout</a>,
<a href='https://www.computervisionblog.com/search/label/geoff%20hinton' rel='tag'>geoff hinton</a>,
<a href='https://www.computervisionblog.com/search/label/hugo%20larochelle' rel='tag'>hugo larochelle</a>,
<a href='https://www.computervisionblog.com/search/label/ICML' rel='tag'>ICML</a>,
<a href='https://www.computervisionblog.com/search/label/papers' rel='tag'>papers</a>,
<a href='https://www.computervisionblog.com/search/label/segnet' rel='tag'>segnet</a>,
<a href='https://www.computervisionblog.com/search/label/uncertainty' rel='tag'>uncertainty</a>,
<a href='https://www.computervisionblog.com/search/label/yarin%20gal' rel='tag'>yarin gal</a>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>
</div></div>
</div>
<div class='blog-pager' id='blog-pager'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' href='https://www.computervisionblog.com/search?updated-max=2016-06-17T06:24:00-05:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a>
</span>
<a class='home-link' href='https://www.computervisionblog.com/'>Home</a>
</div>
<div class='clear'></div>
<div class='blog-feeds'>
<div class='feed-links'>
Subscribe to:
<a class='feed-link' href='https://www.computervisionblog.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Posts (Atom)</a>
</div>
</div>
</div></div>
</div>
</div>
<div class='column-left-outer'>
<div class='column-left-inner'>
<aside>
</aside>
</div>
</div>
<div class='column-right-outer'>
<div class='column-right-inner'>
<aside>
<div class='sidebar section' id='sidebar-right-1'><div class='widget PopularPosts' data-version='1' id='PopularPosts2'>
<h2>Popular Posts</h2>
<div class='widget-content popular-posts'>
<ul>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2015/03/deep-learning-vs-machine-learning-vs.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4tCXZk_eiDdpA9cYSnyTSoBEdqjwmcLc24wtz3U7F5BLXlmcsTCr9CfmblcCGWEJrZUvfF7RMSWmIT0tIaKSecm1hKP6YB0v7k6bSt4Ghsvc3P6kdpfzf-yXEE1uNMLCyiuPPzw/w72-h72-p-k-no-nu/unknown.jpeg'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2015/03/deep-learning-vs-machine-learning-vs.html'>Deep Learning vs Machine Learning vs Pattern Recognition</a></div>
<div class='item-snippet'> Lets take a close look at three related terms (Deep Learning vs Machine Learning vs Pattern Recognition), and see how they relate to some o...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2016/01/why-slam-matters-future-of-real-time.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho4_kq2vlmGhaQme8PpHOGVZ-_A-vThaqa4OEg5hoTYYBCX6xBHP4jkQNNmRVgm7okhLQHs9mQEe7UHXvyOK0o11cpakpo8Gwc_tnrX3oapje6zySduPrKfyUIc3j6yJDCXJx4Dg/w72-h72-p-k-no-nu/slammies2.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2016/01/why-slam-matters-future-of-real-time.html'>The Future of Real-Time SLAM and Deep Learning vs SLAM</a></div>
<div class='item-snippet'> Last month's International Conference of Computer Vision (ICCV) was full of Deep Learning  techniques, but before we declare an all-out...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2015/01/from-feature-descriptors-to-deep.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6keFD3eBZBqtWStykos5pZimIdojq2hIfJJEdOIneS7ssXf2YyNvlkMuVcXK-SE7gCp2VO1Aqj3-eGme-Z1lN_FW9KqT3mS-29c0PbEqbEBY5OonC089GRDemZfn92-W6Mm_OSg/w72-h72-p-k-no-nu/sift_pic.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2015/01/from-feature-descriptors-to-deep.html'>From feature descriptors to deep learning: 20 years of computer vision</a></div>
<div class='item-snippet'> We all know that deep convolutional neural networks have produced some stellar results on object detection and recognition benchmarks in th...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2016/06/deep-learning-trends-iclr-2016.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje9BXj5ZAytvg25H6V5HtIipffle2y4lapwhbxlaa8mfawA9-5cs8Sqcklsqf15np5cWphF8mCqSjXPpBgUVkqE7mLGV3yi9NEwhWGpTPJvV6A2gL91meg-NKL74YSbQgWyutHDQ/w72-h72-p-k-no-nu/deep_learning_machine_learning_conference_iclr_2016.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2016/06/deep-learning-trends-iclr-2016.html'>Deep Learning Trends @ ICLR 2016</a></div>
<div class='item-snippet'>Started by the youngest members of the Deep Learning Mafia [1], namely  Yann LeCun and Yoshua Bengio , the ICLR conference is quickly becom...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2015/12/iccv-2015-twenty-one-hottest-research.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_5fsNesOsl1lGUo-B5oidKGxFPH5q2wZMudipvXWy4T3c5PgrhiWMlfws8ONYRE9Hc7A5VlB8dOBuI1aF7CW1-Pj_SRIdww8KPaIgCghEO22Z0f78R9tzUwaLai3EK9xZ3pJ-kw/w72-h72-p-k-no-nu/onfire-01.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2015/12/iccv-2015-twenty-one-hottest-research.html'>ICCV 2015: Twenty one hottest research papers</a></div>
<div class='item-snippet'> "Geometry vs Recognition" becomes ConvNet-for-X Computer Vision used to be cleanly separated into two schools: geometry and rec...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2015/04/deep-learning-vs-probabilistic.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizD2bSzR-kNDATnB0BJo80PVKFDdhti88fjemlbDFdhpKEm3IldewC7PwL9VV61Y-TRecf14ru61cDI4UvNHql0vtVJ3uSN2hcxg1go2gysOTJHFnDDp1jj5EvusMIhdMtoRca9g/w72-h72-p-k-no-nu/probgraphmods.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2015/04/deep-learning-vs-probabilistic.html'>Deep Learning vs Probabilistic Graphical Models vs Logic</a></div>
<div class='item-snippet'>Today, let's take a look at three paradigms   that have shaped the field of Artificial Intelligence in the last 50 years: Logic , Probab...</div>
</div>
<div style='clear: both;'></div>
</li>
<li>
<div class='item-content'>
<div class='item-thumbnail'>
<a href='https://www.computervisionblog.com/2014/01/can-person-specific-face-recognition.html' target='_blank'>
<img alt='' border='0' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDGjzP92jgxRsKhN0OWFw7wxicyDq6c-RCKfPDCKEpyAj398qa1ReDsXwCsoXWIap8cbcTGOWwKcjgDzzIPXmZREunN_HdnU60BUZ7_HIr3E2ALvdrsYM3FPCuBqLtSgMQpbUwNw/w72-h72-p-k-no-nu/tomasz_top_detection.png'/>
</a>
</div>
<div class='item-title'><a href='https://www.computervisionblog.com/2014/01/can-person-specific-face-recognition.html'>Can a person-specific face recognition algorithm be used to determine a person's race?</a></div>
<div class='item-snippet'>It's a valid question: can a person-specific face recognition algorithm be used to determine a person's race? I trained two separa...</div>
</div>
<div style='clear: both;'></div>
</li>
</ul>
<div class='clear'></div>
</div>
</div><div class='widget HTML' data-version='1' id='HTML2'>
<h2 class='title'>Recent Posts</h2>
<div class='widget-content'>
<div class="recentpoststyle">
<script type="text/javascript">
function showlatestposts(e){for(var t=0;t<posts_no;t++){var r,s=e.feed.entry[t],n=s.title.$t;if(t==e.feed.entry.length)break;for(var a=0;a<s.link.length;a++)if("alternate"==s.link[a].rel){r=s.link[a].href;break}n=n.link(r);var i="... read more";i=i.link(r);var l=s.published.$t,o=l.substring(0,4),u=l.substring(5,7),c=l.substring(8,10),m=new Array;if(m[1]="Jan",m[2]="Feb",m[3]="Mar",m[4]="Apr",m[5]="May",m[6]="Jun",m[7]="Jul",m[8]="Aug",m[9]="Sep",m[10]="Oct",m[11]="Nov",m[12]="Dec","content"in s)var d=s.content.$t;else if("summary"in s)var d=s.summary.$t;else var d="";var v=/<\S[^>]*>/g;if(d=d.replace(v,""),document.write('<li class="recent-post-title">'),document.write(n),document.write('</li><div class="recent-post-summ">'),1==post_summary)if(d.length<summary_chars)document.write(d);else{d=d.substring(0,summary_chars);var f=d.lastIndexOf(" ");d=d.substring(0,f),document.write(d+" "+i)}document.write("</div>"),1==posts_date&&document.write('<div class="post-date">'+m[parseInt(u,10)]+" "+c+" "+o+"</div>")}}
</script>
<script type="text/javascript">
var posts_no = 5;var posts_date = true;var post_summary = true;var summary_chars = 80;</script>
<script src="/feeds/posts/default?orderby=published&alt=json-in-script&callback=showlatestposts">
</script><a style="font-size: 9px; color: #CECECE;margin-top:10px;" href="http://helplogger.blogspot.com/2014/11/5-cool-recent-post-widgets-for-blogger.html" rel="nofollow">Recent Posts Widget</a>
<noscript>Your browser does not support JavaScript!</noscript>
<style type="text/css">
.recentpoststyle {counter-reset: countposts;list-style-type: none;}
.recentpoststyle a {text-decoration: none;color: #49A8D1;}
.recentpoststyle a:hover {color: #000;}
.recentpoststyle li:before {content: counter(countposts,decimal);counter-increment: countposts;float: left;z-index: 1;position:relative;font-size: 15px;font-weight: bold;color:#fff;background:#69B7E2; margin:13px 5px 0px -6px;line-height:30px;width:30px;height:30px;text-align:center;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;}li.recent-post-title{margin-bottom: 5px;padding: 0;}
.recent-post-title a {color: #444;text-decoration: none;font: bold 13px "Avant Garde",Avantgarde,"Century Gothic",CenturyGothic,AppleGothic,sans-serif;}
.post-date {font-size: 11px;color: #999;margin:5px 0px 15px 32px;}
.recent-post-summ {border-left:1px solid #69B7E2; color: #777; padding: 0px 5px 0px 20px; margin-left: 10px; font: 15px Garamond,Baskerville,"Baskerville Old Face","Hoefler Text","Times New Roman",serif;}
</style></div>
</div>
<div class='clear'></div>
</div><div class='widget Profile' data-version='1' id='Profile1'>
<h2>About Me</h2>
<div class='widget-content'>
<dl class='profile-datablock'>
<dt class='profile-data'>
<a class='profile-name-link g-profile' href='https://www.blogger.com/profile/17507234774392358321' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'>
Tomasz Malisiewicz
</a>
</dt>
</dl>
<a class='profile-link' href='https://www.blogger.com/profile/17507234774392358321' rel='author'>View my complete profile</a>
<div class='clear'></div>
</div>
</div><div class='widget LinkList' data-version='1' id='LinkList1'>
<h2>Links</h2>
<div class='widget-content'>
<ul>
<li><a href='https://tom.ai'>Tomasz @ MIT Research Homepage</a></li>
<li><a href='http://scholar.google.com/citations?user=RCTeTV0AAAAJ&hl=en'>Tomasz @ Google Scholar Citations</a></li>
<li><a href='https://github.com/quantombone'>Tomasz @ Github Open-Source Code</a></li>
</ul>
<div class='clear'></div>
</div>
</div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'>
<h2>Blog Archive</h2>
<div class='widget-content'>
<div id='ArchiveList'>
<div id='BlogArchive1_ArchiveList'>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>
▼ 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2019/'>
2019
</a>
<span class='post-count' dir='ltr'>(1)</span>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>
▼ 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2019/11/'>
November
</a>
<span class='post-count' dir='ltr'>(1)</span>
<ul class='posts'>
<li><a href='https://www.computervisionblog.com/2019/11/computer-vision-and-visual-slam-vs-ai.html'>Computer Vision and Visual SLAM vs. AI Agents</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2018/'>
2018
</a>
<span class='post-count' dir='ltr'>(1)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2018/05/'>
May
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2016/'>
2016
</a>
<span class='post-count' dir='ltr'>(4)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2016/12/'>
December
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2016/06/'>
June
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2016/01/'>
January
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/'>
2015
</a>
<span class='post-count' dir='ltr'>(12)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/12/'>
December
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/11/'>
November
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/06/'>
June
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/05/'>
May
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/04/'>
April
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/03/'>
March
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2015/01/'>
January
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2014/'>
2014
</a>
<span class='post-count' dir='ltr'>(8)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2014/11/'>
November
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2014/10/'>
October
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2014/01/'>
January
</a>
<span class='post-count' dir='ltr'>(6)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/'>
2013
</a>
<span class='post-count' dir='ltr'>(13)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/12/'>
December
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/10/'>
October
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/09/'>
September
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/07/'>
July
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/06/'>
June
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2013/04/'>
April
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/'>
2012
</a>
<span class='post-count' dir='ltr'>(11)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/07/'>
July
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/06/'>
June
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/05/'>
May
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/04/'>
April
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/03/'>
March
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2012/01/'>
January
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/'>
2011
</a>
<span class='post-count' dir='ltr'>(31)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/12/'>
December
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/11/'>
November
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/10/'>
October
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/09/'>
September
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/08/'>
August
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/07/'>
July
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/06/'>
June
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/04/'>
April
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/03/'>
March
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2011/01/'>
January
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/'>
2010
</a>
<span class='post-count' dir='ltr'>(24)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/12/'>
December
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/11/'>
November
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/08/'>
August
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/06/'>
June
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/05/'>
May
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/04/'>
April
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/03/'>
March
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/02/'>
February
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2010/01/'>
January
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/'>
2009
</a>
<span class='post-count' dir='ltr'>(29)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/12/'>
December
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/11/'>
November
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/10/'>
October
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/09/'>
September
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/08/'>
August
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/07/'>
July
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/06/'>
June
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/03/'>
March
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/02/'>
February
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2009/01/'>
January
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/'>
2008
</a>
<span class='post-count' dir='ltr'>(23)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/12/'>
December
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/11/'>
November
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/10/'>
October
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/09/'>
September
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/08/'>
August
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/07/'>
July
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/06/'>
June
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/05/'>
May
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/04/'>
April
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/03/'>
March
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2008/02/'>
February
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/'>
2007
</a>
<span class='post-count' dir='ltr'>(11)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/09/'>
September
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/08/'>
August
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/07/'>
July
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/06/'>
June
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/04/'>
April
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/03/'>
March
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/02/'>
February
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2007/01/'>
January
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/'>
2006
</a>
<span class='post-count' dir='ltr'>(58)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/12/'>
December
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/11/'>
November
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/10/'>
October
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/09/'>
September
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/08/'>
August
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/07/'>
July
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/06/'>
June
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/05/'>
May
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/04/'>
April
</a>
<span class='post-count' dir='ltr'>(7)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/03/'>
March
</a>
<span class='post-count' dir='ltr'>(8)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/02/'>
February
</a>
<span class='post-count' dir='ltr'>(8)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2006/01/'>
January
</a>
<span class='post-count' dir='ltr'>(13)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/'>
2005
</a>
<span class='post-count' dir='ltr'>(62)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/12/'>
December
</a>
<span class='post-count' dir='ltr'>(12)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/11/'>
November
</a>
<span class='post-count' dir='ltr'>(12)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/10/'>
October
</a>
<span class='post-count' dir='ltr'>(10)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/09/'>
September
</a>
<span class='post-count' dir='ltr'>(15)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
► 
</span>
</a>
<a class='post-count-link' href='https://www.computervisionblog.com/2005/08/'>
August
</a>
<span class='post-count' dir='ltr'>(13)</span>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class='clear'></div>
</div>
</div><div class='widget Label' data-version='1' id='Label2'>
<h2>Labels</h2>
<div class='widget-content list-label-widget-content'>
<ul>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/3d%20recognition'>3d recognition</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/MATLAB'>MATLAB</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/MIT'>MIT</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/VMX'>VMX</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/abhinav%20gupta'>abhinav gupta</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/antonio%20torralba'>antonio torralba</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/artificial%20intelligence'>artificial intelligence</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/cognitive%20science'>cognitive science</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/computer%20vision'>computer vision</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/cvpr'>cvpr</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/deep%20learning'>deep learning</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/entrepreneurship'>entrepreneurship</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/future%20directions'>future directions</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/graphical%20models'>graphical models</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/iccv'>iccv</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/image%20understanding'>image understanding</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/nips'>nips</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/object%20recognition'>object recognition</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/philosophy'>philosophy</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/programming'>programming</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/psychology'>psychology</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/scene%20understanding'>scene understanding</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/segmentation'>segmentation</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/startups'>startups</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/svm'>svm</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/training'>training</a>
</li>
<li>
<a dir='ltr' href='https://www.computervisionblog.com/search/label/visual%20memex'>visual memex</a>
</li>
</ul>
<div class='clear'></div>
</div>
</div></div>
</aside>
</div>
</div>
</div>
<div style='clear: both'></div>
<!-- columns -->
</div>
<!-- main -->
</div>
</div>
<div class='main-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<footer>
<div class='footer-outer'>
<div class='footer-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left footer-fauxborder-left'>
<div class='fauxborder-right footer-fauxborder-right'></div>
<div class='region-inner footer-inner'>
<div class='foot section' id='footer-1'><div class='widget HTML' data-version='1' id='HTML1'>
<div class='widget-content'>
<!-- Start of StatCounter Code -->
<script type="text/javascript">
sc_project=996895;
sc_invisible=1;
sc_partition=9;
sc_security="67268eb8";
</script>
<!-- INSERTED HERE -->
<script src="//www.statcounter.com/counter/counter_xhtml.js" type="text/javascript"></script><noscript><div class="statcounter"><a href="http://www.statcounter.com/" target="_blank"><img alt="page hit counter" src="https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uZUWrcohdz5GG7fDAh2cpVttFHDlK3kHIs56H_7mb5vTaDcJrSG6nqn2e_S3hHQE-iGjDZZpWtiQ76j8CC_WBM7K64MwF9rnzd2OlILXfYapUx=s0-d" class="statcounter"></a></div></noscript>
<!-- End of StatCounter Code -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-78737443-1', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', ['quantombone.blogspot.com'] );
ga('send', 'pageview');
</script>
</div>
<div class='clear'></div>
</div></div>
<table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'>
<tbody>
<tr>
<td class='first columns-cell'>
<div class='foot no-items section' id='footer-2-1'></div>
</td>
<td class='columns-cell'>
<div class='foot section' id='footer-2-2'><div class='widget Subscribe' data-version='1' id='Subscribe1'>
<div style='white-space:nowrap'>
<h2 class='title'>Subscribe To</h2>
<div class='widget-content'>
<div class='subscribe-wrapper subscribe-type-POST'>
<div class='subscribe expanded subscribe-type-POST' id='SW_READER_LIST_Subscribe1POST' style='display:none;'>
<div class='top'>
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Posts
</span>
<div class='feed-reader-links'>
<a class='feed-reader-link' href='https://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fwww.computervisionblog.com%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
</a>
<a class='feed-reader-link' href='https://add.my.yahoo.com/content?url=https%3A%2F%2Fwww.computervisionblog.com%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
</a>
<a class='feed-reader-link' href='https://www.computervisionblog.com/feeds/posts/default' target='_blank'>
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Atom
</a>
</div>
</div>
<div class='bottom'></div>
</div>
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1POST' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<div class='top'>
<span class='inner'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Posts
</span>
</span>
</div>
<div class='bottom'></div>
</div>
</div>
<div class='subscribe-wrapper subscribe-type-COMMENT'>
<div class='subscribe expanded subscribe-type-COMMENT' id='SW_READER_LIST_Subscribe1COMMENT' style='display:none;'>
<div class='top'>
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1COMMENT"));'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
All Comments
</span>
<div class='feed-reader-links'>
<a class='feed-reader-link' href='https://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fwww.computervisionblog.com%2Ffeeds%2Fcomments%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
</a>
<a class='feed-reader-link' href='https://add.my.yahoo.com/content?url=https%3A%2F%2Fwww.computervisionblog.com%2Ffeeds%2Fcomments%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
</a>
<a class='feed-reader-link' href='https://www.computervisionblog.com/feeds/comments/default' target='_blank'>
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Atom
</a>
</div>
</div>
<div class='bottom'></div>
</div>
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1COMMENT' onclick='return(_SW_toggleReaderList(event, "Subscribe1COMMENT"));'>
<div class='top'>
<span class='inner'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1COMMENT"));'>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
All Comments
</span>
</span>
</div>
<div class='bottom'></div>
</div>
</div>
<div style='clear:both'></div>
</div>
</div>
<div class='clear'></div>
</div></div>
</td>
</tr>
</tbody>
</table>
<!-- outside of the include in order to lock Attribution widget -->
<div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'>
<div class='widget-content' style='text-align: center;'>
Awesome Inc. theme. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>.
</div>
<div class='clear'></div>
</div></div>
</div>
</div>
<div class='footer-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</footer>
<!-- content -->
</div>
</div>
<div class='content-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<script type='text/javascript'>
window.setTimeout(function() {
document.body.className = document.body.className.replace('loading', '');
}, 10);
</script>
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/4290755334-widgets.js"></script>
<script type='text/javascript'>
window['__wavt'] = 'ACvIOeCqqA73VQPRbc8WMy9_dmxl:1787329105557';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d15418143','//www.computervisionblog.com/','15418143');
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '15418143', 'title': 'Tombone\x27s Computer Vision Blog', 'url': 'https://www.computervisionblog.com/', 'canonicalUrl': 'https://www.computervisionblog.com/', 'homepageUrl': 'https://www.computervisionblog.com/', 'searchUrl': 'https://www.computervisionblog.com/search', 'canonicalHomepageUrl': 'https://www.computervisionblog.com/', 'blogspotFaviconUrl': 'https://www.computervisionblog.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-78737443-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Tombone\x26#39;s Computer Vision Blog - Atom\x22 href\x3d\x22https://www.computervisionblog.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Tombone\x26#39;s Computer Vision Blog - RSS\x22 href\x3d\x22https://www.computervisionblog.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Tombone\x26#39;s Computer Vision Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/15418143/posts/default\x22 /\x3e\n', 'meTag': '\x3clink rel\x3d\x22me\x22 href\x3d\x22https://www.blogger.com/profile/17507234774392358321\x22 /\x3e\n', 'adsenseClientId': 'ca-pub-3483541207757083', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/24810df02073da6c', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'pageName': '', 'pageTitle': 'Tombone\x27s Computer Vision Blog', 'metaDescription': 'A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Awesome Inc.', 'localizedName': 'Awesome Inc.', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'light', 'variantId': 'light'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Tombone\x27s Computer Vision Blog', 'description': 'A Blog about Deep Learning, Computer Vision, and the algorithms that are shaping the future of Artificial Intelligence.', 'url': 'https://www.computervisionblog.com/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': true, 'isArchive': false, 'isLabelSearch': false}}]);
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/54888553-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts2', 'sidebar-right-1', document.getElementById('PopularPosts2'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar-right-1', document.getElementById('HTML2'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_LinkListView', new _WidgetInfo('LinkList1', 'sidebar-right-1', document.getElementById('LinkList1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label2', 'sidebar-right-1', document.getElementById('Label2'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'footer-1', document.getElementById('HTML1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_SubscribeView', new _WidgetInfo('Subscribe1', 'footer-2-2', document.getElementById('Subscribe1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull'));
</script>
</body>
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 211
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 211 слишком много. Проведите оптимизацию сайта!
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 9.
Показать первые 100 внутренних ссылок
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /2019/11/computer-vision-and-visual-slam-vs-ai.html |
Computer Vision and Visual SLAM vs. AI Agents
|
|
Анализировать url |
| /2019/11/computer-vision-and-visual-slam-vs-ai.html |
<abbr class='published' itemprop='datePublished' title='2019-11-19T05:18:00-05:00'>Tuesday, November 19, 2019</abbr>
|
|
Анализировать url |
| /search/label/action |
action
|
|
Анализировать url |
| /search/label/adrien%20gaidon |
adrien gaidon
|
|
Анализировать url |
| /search/label/AI%20agents |
AI agents
|
|
Анализировать url |
| /search/label/angela%20dai |
angela dai
|
|
Анализировать url |
| /search/label/autonomous%20cars |
autonomous cars
|
|
Анализировать url |
| /search/label/computer%20vision |
computer vision
|
|
Анализировать url |
| /search/label/conference |
conference
|
|
Анализировать url |
| /search/label/daniel%20cremers |
daniel cremers
|
|
Анализировать url |
| /search/label/deep%20learning |
deep learning
|
|
Анализировать url |
| /search/label/gradslam |
gradslam
|
|
Анализировать url |
| /search/label/iccv%202019 |
iccv 2019
|
|
Анализировать url |
| /search/label/kornia |
kornia
|
|
Анализировать url |
| /search/label/panel |
panel
|
|
Анализировать url |
| /search/label/research |
research
|
|
Анализировать url |
| /search/label/victor%20prisacariu |
victor prisacariu
|
|
Анализировать url |
| /search/label/visual%20slam |
visual slam
|
|
Анализировать url |
| /search/label/vladlen%20koltun |
vladlen koltun
|
|
Анализировать url |
| /2018/05/deepfakes-ai-powered-deception-machines.html |
DeepFakes: AI-powered deception machines
|
|
Анализировать url |
| /2018/05/deepfakes-ai-powered-deception-machines.html |
<abbr class='published' itemprop='datePublished' title='2018-05-16T14:22:00-05:00'>Wednesday, May 16, 2018</abbr>
|
|
Анализировать url |
| /search/label/alyosha%20efros |
alyosha efros
|
|
Анализировать url |
| /search/label/cvpr |
cvpr
|
|
Анализировать url |
| /search/label/deepfake |
deepfake
|
|
Анализировать url |
| /search/label/descartes |
descartes
|
|
Анализировать url |
| /search/label/face%20detection |
face detection
|
|
Анализировать url |
| /search/label/face%20transfer |
face transfer
|
|
Анализировать url |
| /search/label/face2face |
face2face
|
|
Анализировать url |
| /search/label/fake%20news |
fake news
|
|
Анализировать url |
| /search/label/GANs |
GANs
|
|
Анализировать url |
| /search/label/Ira%20Kemelmacher-Shlizerman |
Ira Kemelmacher-Shlizerman
|
|
Анализировать url |
| /search/label/justus%20thies |
justus thies
|
|
Анализировать url |
| /search/label/matthias%20niessner |
matthias niessner
|
|
Анализировать url |
| /search/label/realism |
realism
|
|
Анализировать url |
| /search/label/siggraph |
siggraph
|
|
Анализировать url |
| /search/label/snapchat |
snapchat
|
|
Анализировать url |
| /search/label/truth |
truth
|
|
Анализировать url |
| /search/label/visual%20forgery |
visual forgery
|
|
Анализировать url |
| /2016/12/nuts-and-bolts-of-building-deep.html |
Nuts and Bolts of Building Deep Learning Applications: Ng @ NIPS2016
|
|
Анализировать url |
| /2016/12/nuts-and-bolts-of-building-deep.html |
<abbr class='published' itemprop='datePublished' title='2016-12-16T00:13:00-05:00'>Friday, December 16, 2016</abbr>
|
|
Анализировать url |
| /search/label/advice |
advice
|
|
Анализировать url |
| /search/label/andrew%20ng |
andrew ng
|
|
Анализировать url |
| /search/label/bias-variance |
bias-variance
|
|
Анализировать url |
| /search/label/deep%20learning |
deep learning
|
|
Анализировать url |
| /search/label/google |
google
|
|
Анализировать url |
| /search/label/machine%20learning |
machine learning
|
|
Анализировать url |
| /search/label/nips%202016 |
nips 2016
|
|
Анализировать url |
| /search/label/research |
research
|
|
Анализировать url |
| /search/label/supervised%20learning |
supervised learning
|
|
Анализировать url |
| /search/label/synthesis |
synthesis
|
|
Анализировать url |
| /2016/06/making-deep-networks-probabilistic-via.html |
Making Deep Networks Probabilistic via Test-time Dropout
|
|
Анализировать url |
| /2016/06/deep-learning-trends-iclr-2016.html |
Deep Learning Trends @ ICLR 2016
|
|
Анализировать url |
| /2015/04/deep-learning-vs-probabilistic.html |
Deep Learning vs Probabilistic Graphical Models vs Logic
|
|
Анализировать url |
| /2016/06/deep-learning-trends-iclr-2016.html |
Deep Learning Trends @ ICLR 2016
|
|
Анализировать url |
| /2016/06/making-deep-networks-probabilistic-via.html |
<abbr class='published' itemprop='datePublished' title='2016-06-17T06:24:00-05:00'>Friday, June 17, 2016</abbr>
|
|
Анализировать url |
| /search/label/arxiv |
arxiv
|
|
Анализировать url |
| /search/label/bayesian |
bayesian
|
|
Анализировать url |
| /search/label/confidence |
confidence
|
|
Анализировать url |
| /search/label/deep%20learning |
deep learning
|
|
Анализировать url |
| /search/label/dropout |
dropout
|
|
Анализировать url |
| /search/label/geoff%20hinton |
geoff hinton
|
|
Анализировать url |
| /search/label/hugo%20larochelle |
hugo larochelle
|
|
Анализировать url |
| /search/label/ICML |
ICML
|
|
Анализировать url |
| /search/label/papers |
papers
|
|
Анализировать url |
| /search/label/segnet |
segnet
|
|
Анализировать url |
| /search/label/uncertainty |
uncertainty
|
|
Анализировать url |
| /search/label/yarin%20gal |
yarin gal
|
|
Анализировать url |
| /search?updated-max=2016-06-17T06:24:00-05:00&max-results=7 |
Older Posts
|
|
Анализировать url |
| / |
Home
|
|
Анализировать url |
| /feeds/posts/default |
Posts (Atom)
|
|
Анализировать url |
| /2015/03/deep-learning-vs-machine-learning-vs.html |
Deep Learning vs Machine Learning vs Pattern Recognition
|
|
Анализировать url |
| /2016/01/why-slam-matters-future-of-real-time.html |
The Future of Real-Time SLAM and Deep Learning vs SLAM
|
|
Анализировать url |
| /2015/01/from-feature-descriptors-to-deep.html |
From feature descriptors to deep learning: 20 years of computer vision
|
|
Анализировать url |
| /2016/06/deep-learning-trends-iclr-2016.html |
Deep Learning Trends @ ICLR 2016
|
|
Анализировать url |
| /2015/12/iccv-2015-twenty-one-hottest-research.html |
ICCV 2015: Twenty one hottest research papers
|
|
Анализировать url |
| /2015/04/deep-learning-vs-probabilistic.html |
Deep Learning vs Probabilistic Graphical Models vs Logic
|
|
Анализировать url |
| /2014/01/can-person-specific-face-recognition.html |
Can a person-specific face recognition algorithm be used to determine a person's race?
|
|
Анализировать url |
| /2019/ |
2019
|
|
Анализировать url |
| /2019/11/ |
November
|
|
Анализировать url |
| /2019/11/computer-vision-and-visual-slam-vs-ai.html |
Computer Vision and Visual SLAM vs. AI Agents
|
|
Анализировать url |
| /2018/ |
2018
|
|
Анализировать url |
| /2018/05/ |
May
|
|
Анализировать url |
| /2016/ |
2016
|
|
Анализировать url |
| /2016/12/ |
December
|
|
Анализировать url |
| /2016/06/ |
June
|
|
Анализировать url |
| /2016/01/ |
January
|
|
Анализировать url |
| /2015/ |
2015
|
|
Анализировать url |
| /2015/12/ |
December
|
|
Анализировать url |
| /2015/11/ |
November
|
|
Анализировать url |
| /2015/06/ |
June
|
|
Анализировать url |
| /2015/05/ |
May
|
|
Анализировать url |
| /2015/04/ |
April
|
|
Анализировать url |
| /2015/03/ |
March
|
|
Анализировать url |
| /2015/01/ |
January
|
|
Анализировать url |
| /2014/ |
2014
|
|
Анализировать url |
| /2014/11/ |
November
|
|
Анализировать url |
| /2014/10/ |
October
|
|
Анализировать url |
| /2014/01/ |
January
|
|
Анализировать url |
| /2013/ |
2013
|
|
Анализировать url |
| /2013/12/ |
December
|
|
Анализировать url |
Внешние ссылки
Кол-во: 96
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 96 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице присутствуют внешние ссылки с пустым анкором: 1!
На странице ссылки с атрибутом rel='nofollow' 1.
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| blogger.googleusercontent.com |
<img border="0" data-original-height="450" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHsjOJuBZ-q-iU82VByVHXyfPN0VQvEjtREakvqzKNJVR0dC5x-gHoeWovCRo_TIov2neaE06aizme45AfqxsU-wZW3BVdtp6fm0dbsVd9HzTUIquWTYgSWx7tPUALOmVpEwV2Q/s400/computer-vision-vs-ai-agents-cover.png" width="400">
|
Анализировать url |
| vladlen.info |
Vladlen Koltun
|
Анализировать url |
| vladlen.info |
Direct Sparse Odometry (DSO) system
|
Анализировать url |
| vladlen.info |
Does Computer Vision Matter for Action?
|
Анализировать url |
| visualslam.ai |
Workshop on Deep Learning for Visual SLAM at ICCV 2019
|
Анализировать url |
| robots.ox.ac.uk |
Victor Prisacariu
|
Анализировать url |
| 6d.ai |
6d.ai
|
Анализировать url |
| vision.in.tum.de |
Daniel Cremers
|
Анализировать url |
| artisense.ai |
ArtiSense.ai
|
Анализировать url |
| angeladai.github.io |
Angela Dai
|
Анализировать url |
| vladlen.info |
Vladlen Koltun
|
Анализировать url |
| tom.ai |
Tomasz Malisiewicz
|
Анализировать url |
| blogger.googleusercontent.com |
<img alt="2nd Workshop on Deep Learning for Visual SLAM" border="0" data-original-height="523" data-original-width="1141" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQIbdY0bta1vMpFPwvl8HikavoTmbM6ruWo3RPS5YgqSDXDqp3Erz0TmCJBd6Dz1Slherje2VOOk344_5Q6uU7uMsAQBiWF6gKjhDe6krvzZjO1A9O2vbSmXwa8VWosFDy1KeF5A/s400/2nd_workshop_on_visual_slam_iccv_2019.png" title="" width="400">
|
Анализировать url |
| ronnieclark.co.uk |
Ronnie Clark
|
Анализировать url |
| visualslam.ai |
http://visualslam.ai
|
Анализировать url |
| kornia.github.io |
Kornia
|
Анализировать url |
| montrealrobotics.ca |
gradSLAM
|
Анализировать url |
| krrish94.github.io |
Krishna
|
Анализировать url |
| krrish94.github.io |
Murthy
|
Анализировать url |
| blogger.googleusercontent.com |
<img alt="Key Figure from the gradSLAM paper on end-to-end learning for SLAM." border="0" data-original-height="494" data-original-width="1600" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbr7BXWTvIuuJ5_Vtc2glipOkJRSW4R2wL7bvCwUzN73QH2Yj5vJB-cmlUpnYt0zlNvS0m8kSpaX4EuckCboZdOT7X2r64Hi_W78bIMwKeQ3ixFG-bw3xKzTKivWNg4bmN2qMPDQ/s400/gradslam.png" title="" width="400">
|
Анализировать url |
| montrealrobotics.ca |
gradSLAM
|
Анализировать url |
| arxiv.org |
SuperPoint
|
Анализировать url |
| twitter.com |
Adrien Gaidon
|
|
| people.eecs.berkeley.edu |
Alyosha Efros
|
Анализировать url |
| openai.com |
multi-agents from OpenAI
|
Анализировать url |
| vladlen.info |
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/</span>
|
Анализировать url |
| vladlen.info |
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/publications/direct-sparse-odometry/</span>
|
Анализировать url |
| vladlen.info |
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://vladlen.info/publications/computer-vision-matter-action/</span>
|
Анализировать url |
| kornia.github.io |
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">https://kornia.github.io/</span>
|
Анализировать url |
| montrealrobotics.ca |
<span data-preserver-spaces="true" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0pt; margin-top: 0pt;">http://montrealrobotics.ca/gradSLAM/</span>
|
Анализировать url |
| openai.com |
https://openai.com/blog/emergent-tool-use/
|
Анализировать url |
| arxiv.org |
https://arxiv.org/abs/1712.07629
|
Анализировать url |
| blogger.com |
<span itemprop='name'>Tomasz Malisiewicz</span>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Email This</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to X</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to Pinterest</span>
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="350" data-original-width="730" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2L8WI02nvvxZO2atDfbdwaGGhKWWSxBXNfrkO3hxrIDX27l_diajknihnDsGb7s34_H7FwGEwl58YMQDQs8zlAGIvvSCkp4O8DSSEL8BGiBWGHJfoe95sVCDGRm7i2_S_4QVrw/s400/mind.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="652" data-original-width="1600" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDuotZ3u2NWXbyKRCfuPdjWdJIU-seMOa3K1xm_n4qaUqvnl0d-6ShSLtL4dl9XKE7kc1aznKkUCewdiAVTowD-jWgLGCBZiDAf6EArUMnN9N2E-VJw1CILZlSUfcFzeYbkvQnA/s400/faceforensics.png" width="400">
|
Анализировать url |
| homes.cs.washington.edu |
Ira Kemelmacher-Shlizerman
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="475" data-original-width="1600" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsABaxwd5EGAYwXse02kSlw0vW4qSxrrw59Sl2MdM4_T6XAOJ755uCtmRPJ5CTXcVQyw-DCxtJLslGKUetFl1AvNP7hf_Z_HfVdn8nIut_GOTdsawuvwDn1HgjyKnZKTiSfwu0rA/s400/ira_early_deep_fake.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="514" data-original-width="1384" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqPNlH2tQSRqIQ4cdRQND65bR-rdQsvyYc9aivYGe5D1gg1s_L1Bd3JGpIz1s6XmtgHIgV_zbUJYhNQ0IRFlbqThX1cJREtS0VFazB60faxeR9fPF3ZakZv-wEC0yUpLXXCxsFCQ/s400/transfiguring_portraits_deepfake.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="613" data-original-width="1387" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBBP1-Dh7HNihH0JiC8fjTUbMHI_hfNmGxSJCk49TBwZN4WZWnAJgAQOI6d7s3E14S-z6M9Hvb0BxgXnYXR5WhVGynre74aE4LtSPF-OQ50krX1sicqm4z1uRqwwJRTGMpxjq57g/s400/deepmask_deepfake_detection.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" data-original-height="649" data-original-width="1388" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCqbvQIthgG4mODyaSXNoeR-7LK7nLRpgqpbwRGSQv6iFSHTDqg-S1Le9v01D8NJnPwmurEMsI20H0S72SZ13CKueczEncWSczR2HXEHeqYqPNf8SrVijOHMww_H9Bo9xey7BYnw/s400/efros_fake_news.png" width="400">
|
Анализировать url |
| web.stanford.edu |
Face2face: Real-time face capture and reenactment of rgb videos
|
Анализировать url |
| grail.cs.washington.edu |
Being john malkovich
|
Анализировать url |
| arxiv.org |
FaceForensics: A Large-scale Video Dataset for Forgery Detection in Human Faces
|
Анализировать url |
| arxiv.org |
Fighting Fake News: Image Splice Detection via Learned Self-Consistency.
|
Анализировать url |
| homes.cs.washington.edu |
Transfiguring portraits
|
Анализировать url |
| blogger.com |
<span itemprop='name'>Tomasz Malisiewicz</span>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Email This</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to X</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to Pinterest</span>
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKypjuveaSaLIDV9mG7pELHEuz4JtUI9Y9Fr8NwNaCexzQ8twToG0WMfFUU3Gnw3c3gJQ8Sh1tGyp78cRMqExoya3MgEhmU6kdYueHOfYMozOe6ERztddjzRlcMSBQKygzYzTB6Q/s400/nuts_and_bolts_andrew_ng.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9TcJuzN8AdB7Ur2u0-fR2Q-auB6FN4xqHW1YeULgAYKhaE7QjMpmn45dHH9LzbwJUo1ywXydvMmaJzcDS2XJ_mrnaCwodu8EpafRMcDJK-BNJspqRgssScWrqb6RjRnyzjiafg/s400/nuts-and-bolts-checklist.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxij4qZ2sdjBTIP_gYBFGow7st_EF5OcN7lRcSK4eMBCCKJiikA10dJ28-b41hGxNrFgaz9T8w-pIMSw3BvUB3kOMfPN1zGjnareH-jtf95zaViXb42AL66zUhWBs8anYAfX7TDA/s400/bias-variance-andrew-ng.png" width="400">
|
Анализировать url |
| youtube.com |
Andrew Ng Nuts and Bolts of Applying Deep Learning Lecture on YouTube
|
Анализировать url |
| kevinzakka.github.io |
Kevin Zakka's blog post
|
Анализировать url |
| blogger.com |
<span itemprop='name'>Tomasz Malisiewicz</span>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Email This</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to X</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to Pinterest</span>
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRajgS9sTeoGmhNYR8AFroVG4R-ItHpYtMjuRaA0vD3-oycpmwy3ynJzL4DHXxy-vtOPWW4p2FeGzIHDLpRS4yVtr5KqiwtRikp6m5r9KO8qf037QOQniQOUSapuB1XNSgdC2daQ/s400/interpretable_vs_deep_neural_networks.png" width="400">
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiisZRvnUQYI8rdDHC01TGOgv1AgGehZ8hbrP6QaMr2HwIwEyk0RgPNpb6-JMwLXIt5cAlwYEWkTbA31SbeqZFaTkh5ntbn7p0DW8WM6eCQRRNiG14NvjJL2WTJhKMrJP53CacOCw/s320/brain_zap_neural_network_dropout.jpg" width="320">
|
Анализировать url |
| arxiv.org |
Пустой анкор
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiHnNmv089iXX4whgxHXbCdTWJEDOcePF4350d-nY_ADw2L1SiQqWLJ2IwcSjnpCyLbhw8pJrH3bt-wrypbjiuurzpiRb-oOjdSAqIJVAgGV546QKngYn_4ZkHCNglig9MFKhmPg/s400/bayesian_segnet_uncertainty_dropout.png" width="400">
|
Анализировать url |
| arxiv.org |
Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding
|
Анализировать url |
| mi.eng.cam.ac.uk |
project page with videos
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxuhKzw9DRB2h0MTFmCgtdmuqEyl0pO3JNgXwWlnUM9eq43IktIkp8KPT8DPXoHCRgpGZ22ugauJOuq7ZNfkUJRcYRNxJ5TrY2fWFoLK3c14taWcQ77clr9Bye3bklielFv7oGw/s400/gaussian_process_confidence_values.png" width="400">
|
Анализировать url |
| mlg.eng.cam.ac.uk |
Yarin Gal
|
Анализировать url |
| mlg.eng.cam.ac.uk |
Zoubin Ghahramani
|
Анализировать url |
| arxiv.org |
Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning
|
Анализировать url |
| arxiv.org |
Appendix
|
Анализировать url |
| arxiv.org |
A Theoretically Grounded Application of Dropout in Recurrent Neural Networks
|
Анализировать url |
| mlg.eng.cam.ac.uk |
What My Deep Model Doesn't Know
|
Анализировать url |
| github.com |
Homoscedastic and Heteroscedastic Regression with Dropout Uncertainty
|
Анализировать url |
| blogger.googleusercontent.com |
<img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMelLjDrnaPj2uYLCY-2egYIgpTL2jNA2knc7ZrRN1mwcoLhNGrb0GOwvkdVrLz0vJvV2QZo4yPGzExHqW926uCzOJYCxJg49UriP6Wg-o57O_2BjOfrG2lmWmhBzdqLRH8rxT4w/s400/black_box.png" width="400">
|
Анализировать url |
| blogger.com |
<span itemprop='name'>Tomasz Malisiewicz</span>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'>
|
Анализировать url |
| blogger.com |
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Email This</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to X</span>
|
Анализировать url |
| blogger.com |
<span class='share-button-link-text'>Share to Pinterest</span>
|
Анализировать url |
| helplogger.blogspot.com |
Recent Posts Widget
|
Анализировать url |
| blogger.com |
Tomasz Malisiewicz
|
Анализировать url |
| blogger.com |
View my complete profile
|
Анализировать url |
| tom.ai |
Tomasz @ MIT Research Homepage
|
Анализировать url |
| scholar.google.com |
Tomasz @ Google Scholar Citations
|
Анализировать url |
| github.com |
Tomasz @ Github Open-Source Code
|
Анализировать url |
| statcounter.com |
<img alt="page hit counter" src="https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uZUWrcohdz5GG7fDAh2cpVttFHDlK3kHIs56H_7mb5vTaDcJrSG6nqn2e_S3hHQE-iGjDZZpWtiQ76j8CC_WBM7K64MwF9rnzd2OlILXfYapUx=s0-d" class="statcounter">
|
Анализировать url |
| blogger.com |
Blogger
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Анализ сайта computervisionblog.com, слабо оптимизирован на 55%. Для хорошей оптимизации и выхода на первые места в поиске требуется:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: