Comments 39
Спасибо.
Хочу вам предложить попробовать собрать мою сетку (сам ее на Raspberry не собирал). Только предобученной модели нет, поэтому… ну так ради интереса хоть.
Про котов и китов (без политики):
— Сволочь он, — с ненавистью продолжал Турбин, — ведь он же сам не говорит на этом языке! А? Я позавчера спрашиваю этого каналью, доктора Курицького, он, извольте ли видеть, разучился говорить по-русски с ноября прошлого года. Был Курицкий, а стал Курицький… Так вот спрашиваю: как по-украински «кот»? Он отвечает «кит». Спрашиваю: «А как кит?» А он остановился, вытаращил глаза и молчит. И теперь не кланяется.
Николка с треском захохотал и сказал:
— Слова «кит» у них не может быть, потому что на Украине не водятся киты, а в России всего много. В Белом море киты есть…

(с) Булгаков М.А
отрывок из «Белой Гвардии»
Когда он сказал что съел лук, я долго думал из чего он теперь будет стрелять…

Омонимы (от греч. homos — одинаковый и onyma — имя) — разные по значению, но одинаково звучащие и/или пишущиеся единицы языка (слова, морфемы и др.). омонимы — одно и то же слово может иметь разные значения.
Помилуйте, при чём же здесь омонимы? Рус. «кот» — укр. «кіт», рус. «кит» — укр. «кит». Ни разу не омонимы ни в русском, ни в украинском.
UPD: Упс, был не прав. Не знал, что ложные друзья переводчика также называются межъязыковыми омонимами.
А можно провести обучение нейросети на ваших кошках и как в этом случае плднимится достоверность?
Хотя в ИК свете скорее всего она еще упадет
Если обучить нейросеть на фото кошек, которые использованы в посте, то она их отлично определит с вероятностью, близкой к 100%. Но если эти же весовые коэффициенты использовать для распознавания кошек в ИК свете, то оно будет близким к нулю. Вы совершенно правильно заметили, что сети, обученные по полноцветным фотографиям, крайне плохо определяют объекты по фото с ИК подстветкой.
Не могу лайк поставить, но вы напишите по теме еще, интересно, особенно если проблему с ИК-распознованием решите. Я бы себе на дачу собрал такую штуковину, если решение не сложное будет
Проблема с распознаванием в ИК решается довольно просто: при обучении сетки необходимо «простимулировать» ее привязываться к топологии снимка подкидывая изображения с проведенным любым нелинейным преобразованием. Таким образом в характеристике снимка меняются все параметры кроме топологии. Итог: корректное распознавание в ик спектре.
Да, правильно. Если подвергнуть преобразованию все снимки из обучающей выборки, это должно сработать. Единственное, считаться на обычном стационарном компе будет очень долго. Поэтому я начал экспериментировать с готовыми моделями.
По первому фото:

1. label: Siamese cat, probability: 0.81215
2. label: tabby, probability: 0.13405
3. label: tiger cat, probability: 0.024787
4. label: Egyptian cat, probability: 0.015808
5. label: Persian cat, probability: 0.0094098

По второму:

1. label: Siamese cat, probability: 0.49292
2. label: tabby, probability: 0.29549
3. label: Boston bull, probability: 0.098386
4. label: Egyptian cat, probability: 0.036759
5. label: tiger cat, probability: 0.024712
спасибо большое. хотя я ожидал что-то типа: Mainecoon cat, probability: from 0.4 to 0.6
Тут не стоит ожидать многого от этой конкретной реализации SqueezeNet. Она оптимизирована на слишком широкий набор классов. Я считал бы хорошим результатом, если бы эта нейросеть определяла кошку как кошку любой породы. Скорее всего есть сетки специально под корректное определение пород кошек по фото хорошего качества. Я, правда, пока на такие не натыкался. Но с другой стороны, специально и не искал )
Но ведь изначально задача то была на распознавание котеек. А при использовании не специализированной кошконейросети выходит что реализация так себе )
Да, я тоже думал, что кошек она определяет с большей точностью. Тут подвело, похоже, именно большое количество классов. Собственно на кошек пришлось не особо большое число обучающих фотографий. Потому кошек в различных позах эта нейросеть распознает не особо хорошо.
Да, верно. Это кошка. Но в данном контексте (Кот=Кит) речь идет о видах )
Можно использовать акселератор для нейросетей от Intel — Movidius и получить realtime. Он должен работать с RPi, однако цена немного негуманной может показаться — $70.
Спасибо за позитивную статью! Думаю проблема распознавания кошки в её окрасе. Контрастный окрас в купе с недостаточным количеством в обучающей выборке вылился в подобные результаты. Надо завести себе тоже «футбольный мяч»)
А где распознавание китов, тоже заявленное в статье?
Нужно научит нейросеть распознавать китов, а затем подкинуть это:
image
Добрый день!
В статье тестировались только коты и в одном случае кот определился как кит (точнее, killer whale). Рассматриваемая нейросеть умеет распознавать китов. Но картинку с котом, сидящем в рыбьем хвосте, она пределила как ковбойский сапог )
1. label: cowboy boot, probability: 0.43052
2. label: triceratops, probability: 0.16665
3. label: running shoe, probability: 0.14077
4. label: jigsaw puzzle, probability: 0.037335
5. label: Egyptian cat, probability: 0.0277
Всё это потому что нейросети тренируют на статичных фото, а нужно тренировать на динамических видео. Потому что кот — это не набор неподвижных цветных пятен на плоскости, а динамический 3D-объект.
image
Насколько я знаю, пока все популярные сетки обучаются именно на статичных картинках. Они сильно разного качества и аннотируются добровольцами. И при достаточных вычислительных ресурсах довольно неплохо работают на видео (видеоряд при этом анализируется покадрово). В принципе, возможна и обратная операция — разложить видео на кадры и по ним тренировать нейросеть. Наверное, такой подход будет полезен если стоит задача определить стиль бега кота или положение его тела )
В идеале для обучения хорошо бы видео, где кот постоянно меняет свои свои позы, а так же видео, где кота облетает вокруг камера — как в Матрице.
Ну и это все при меняющемся внешнем освещении ). Оно тоже сильно влияет.

На последней фото, с мышкой, нейросеть решила немного потролить. Вариант space heater, да и всё остальное — прекрасно.

Да, поскольку логика такого выбора непонятна, остается только списать на троллинг )
Спасибо за веселую статью!
Очень прошу не делать никаких «прагматичных выводов».
Если говорить о вариантах решений, то это различные FPGA, нейрочипы вроде movidius или более мощные SOC (желательно с более производительным мобильным GPU). Также есть серия nvidia jetson — но вероятно, он не впишется в ваш бюджет.
Мы пробовали запускать различные сети на смартфонах — у них часто неплохой GPU, особенно у флагманов. Есть различных модели, например у TF есть открытое решение с APK и предобученной моделью, которое на телефонах со snapdragon 6xx и 8xx серии выдает 5-20 fps

Спасибо за комментарий, полностью согласен с ним. Для работы нейросети для классификации изображений нужен нейропроцессор. На raspberry можно достичь 1...2 fps.

А как технически выглядит обучение нейронки? Показали фото и сказали тут кит, а тут кот?

Примерно так и есть. Для обучения нейросети используется набор аннотированных фотографий. В статье описана нейросеть, обученная на наборе изображений ImageNet. Это 1000 классов изображений, аннотированных добровольцами. Примерно по 1000 изображений на один класс. Этот набор широко используется для обучения разных типов сверхточных сетей, чтобы сравнить их эффективность.

Only those users with full accounts are able to leave comments. Log in, please.