IMHO, свёрточные сети выстрелили, когда появился достаточный набор данных - ImageNet1K, так то они были давно известны, ими ещё Лекун баловался в конце 90х для распознавания цифр и подписей.
А сама проекция идет в IMAGE_TOKEN - выделенный токен под картинку, в него мы пихаем всю информацию
А какого размера токен что в него помещается вся информация с картинки? Та картинка со сканом Driver license была помещена в один токен и из него потом нейронка смогла вытащить весь текст, правильно?
Отличная статья! Использовать номерной знак как линейку - оригинальная идея.
Несколько замечаний:
Для расширения тренировочной базы применена аугментация
Это необязательно было делать. В самом train скрипте YoLOv5 уже есть подбор аугментаций.
Важно учитывать, что не все варианты аугментации одинаково полезны. Например в нашей задаче поворот изображения на случайный угол собьет координаты рамки относительно контура бревна и ухудшит точность определения размеров
Сопоставимый/несопоставимый — тут точного критерия нет. Разброс ошибки между разными архитектурами CNN больше, чем между BagNet-33 и ResNet-50. У AlexNet ошибка 19% была, у, GoogLeNet — 13%, а у SENet — 5%.
Я под сопоставимостью имел ввиду то, что сеть успешно распознала не 20% примеров, не 40%, а 86% — что лет пять назад считалось успехом и для CNN. Учитывая что в BagNet уменьшено количество параметров и сильно ограничен receptive field.
И такая ограниченная сеть по прежнему будет способна получить на ImageNet результат сопоставимый с полноценной CNN. Проблема не в сетях, а в ImageNet — он слишком простой для решения. Собственно об этом статья.
«серо-бурое образование в крапинку с контрастными границами» — вот вы только что описали одну из недавних задач :-) — классификацию H&E stained гистологических снимков. На текущий момент нейронные сети неплохо справляются с такими задачами, наверное, потому так и популярны. А так да, в академической среде идёт вялотекущий поиск решения приблизить сети к человеческому зрению, и это радует.
P.S. Грубо говоря, если нам надо классифицировать двухголовых котят и обычных (извиняюсь за всю криповость) и у нас есть предобученная сеть, то сеть, оверфитнутая на текстуры, не справится так хорошо, как сеть умеющая выделять признаки более высого уровня.
Но это всё imho, на практике ещё не проверял.
Зависит от задачи. Если картинки далеки от картинок с котиками, то да, сеть оверфитнутая на текстуры, может лучше справиться с ними, особенно, если не важна пространственная информация. И даже заметить то, что ускользает от нашего взгляда.
Но вот если у нас что-то близкое к натуральным картинкам и, допустим, мы заморозили все веса и обучаем только финальные слои — то в этом случае мы никак не сможем добиться от сети, чтобы она выучивала форму объектов.
Поэтому, собственно, лучше и иметь предобученные на Stylized ImageNet сети, чтобы всегда можно было сравнить.
Само по себе это и не хорошо и не плохо. Тут главное не делать вольных допущений о том, что сеть выучила. Основной посыл статей: сети могут принимать решения вовсе и не так, как мы от них ожидаем, руководствуясь нашим common sense.
А на Orange PI на NPU пробовали запускать?
IMHO, свёрточные сети выстрелили, когда появился достаточный набор данных - ImageNet1K, так то они были давно известны, ими ещё Лекун баловался в конце 90х для распознавания цифр и подписей.
А пытались ли совместить это всё с NeRF?
Для тех кто интересуется распознаванием языка жестов рекомендую посмотреть подходы в соревнованиях на Каггле: https://www.kaggle.com/competitions/asl-signs и https://www.kaggle.com/c/asl-fingerspelling и почитать серию статей от Сбердевайсов про жестовый язык и их датасет Slovo тут на Хабре https://habr.com/ru/companies/sberdevices/articles/737018/
А какого размера токен что в него помещается вся информация с картинки? Та картинка со сканом Driver license была помещена в один токен и из него потом нейронка смогла вытащить весь текст, правильно?
Отличная статья!
Использовать номерной знак как линейку - оригинальная идея.
Несколько замечаний:
Это необязательно было делать. В самом train скрипте YoLOv5 уже есть подбор аугментаций.
Albumentations умеет корректно работать с рамками при поворотах.
А не смотрели через GradCAM или аналоги на то по каким именно деталям квартира классифицируется как "бабушкина"?
Вы ещё учитывайте что взгляд у человека не статичен, человек может менять направление взляда, а общая картинка сложится уже в других отделах мозга.
Я под сопоставимостью имел ввиду то, что сеть успешно распознала не 20% примеров, не 40%, а 86% — что лет пять назад считалось успехом и для CNN. Учитывая что в BagNet уменьшено количество параметров и сильно ограничен receptive field.
33px: top-5 accuracy просела с 86.4% до 53.0%
17px: 80.3 -> 32.0
9px: 70.0 -> 10.9
habrastorage.org/webt/rm/bm/k7/rmbmk7uvvm9gigwy5xkh6fvfghm.png
Во второй статье авторы тренировали BagNet на датасете без текстур — точность BagNet сильно просела. Вверху таблица есть.
Но это всё imho, на практике ещё не проверял.
Но вот если у нас что-то близкое к натуральным картинкам и, допустим, мы заморозили все веса и обучаем только финальные слои — то в этом случае мы никак не сможем добиться от сети, чтобы она выучивала форму объектов.
Поэтому, собственно, лучше и иметь предобученные на Stylized ImageNet сети, чтобы всегда можно было сравнить.