Zennoposter + Нейросети. Система распознавания изображений.

Так что выбираем

  • Обучение с нуля

    Голосов: 62 86,1%
  • Дообучение существующей системы

    Голосов: 4 5,6%
  • Не нужно. Дай виртуалку - сами разберемся.

    Голосов: 6 8,3%

  • Всего проголосовало
    72

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Доброе время суток, форумчане. Часто встречаю на форуме темы о том как найти степень схожести фотографий, как обойти капчу по признаку "Выбери собаку" и т.д. Данная тема обхватывает все аспекты приведенных проблем.

Сегодня я продемонстрирую как не обладая большими знаниями заиметь себе систему которая будет узнавать - что находится на картинке - человек, животное, транспорт. Использовать мы будем библиотеку tensorflow от google.
Tensorflow - это библиотека машинного обучения от Google. Для многих из вас нейросети это темный лес. Все говорят о них, некоторые используют,другим они не нужны. Не суть. Нам необязательно вникать в суть работы нейросети. Мы будем использовать всю мощность данной системы в своих целях.


Вся система крутится на виртуальной машине. Настроен и запущен Ruby on Rails проект, который слушает входящие соединения. На вход мы отправляем изображение в формате base64 от Зеннопостера. На выходе получаем 5 вариантов ответов того что находится на изображении(количество на выходе вы можете настроить сами). Думаю лучше один раз увидеть нежели зря глагольствовать тут.


Рассмотрим результаты работы системы на нескольких фотографиях.
Заяц-фото.jpg


Вот результат. Данные идут по убыванию вероятности. Hare - это заяц. Дальше идут тоже возможные варианты - лесной кролик и т.д.
[
upload_2017-5-20_3-1-2.png


Куда же без медведя. Проверяем
медведи-любят-мёд-2.jpg

upload_2017-5-20_3-5-19.png

Bear он и в африке bear)


Иногда выдает интересные результаты
Darth-Vader_6bda9114.jpeg

upload_2017-5-20_3-10-17.png

Газовая маская, плащ...))

Разработчики из гугл большую часть работы взяли на себя и натренировали систему на базе изображений количеством ~1.2 миллионов, а само обучение шло 2 недели!!!
1.2 млн фотографий это не так уж и много. Невозможно обхватить все живое и неживое. Все отрасли нашей жизни. Поэтому мы сделаем свою базу. Но 80 процентов идентификации он выполняет отлично.


Как я говорил выше вся система у нас на образе Virtualbox.

Систему я поставил Xubuntu чтобы не было особо проблем с настройками.

Все данные и настройки хранятся в папке zenno на рабочем столе /home/user/Рабочий стол/zenno/

Два самых важных файла. Позже мы поймем для чего они нужны. Без них невозможно распознавание образов.

upload_2017-5-20_3-37-45.png


Смотрим дальше. recognises_controller принимает данные от зеннки(в принципе он принимает любой post-запрос). Главное чтобы в post-запросе был параметр image со значением base64 картинки. Код я закоментировал. Ничего сложного.

Запуск сервера осуществляется командной rails s -b 0.0.0.0 -p 8080, где 8080 это порт на котором будет запускаться сервер.


ЭПИЛОГ
Образ виртуалки я скину после того как мы обговорим и выполним следующий пункт. В принципе я его могу скинуть и сейчас, все работает, только пользы не много будет. На ваше усмотрение.

У нас остался еще один важный момент - это обучение или дообучение системы. Мы можем либо создать свою систему допустим из 5-6 наименований. Например, сделать систему которая будет различать розу,подсолнух, ромашку и т.д друг от друга, либо же добавить в существующую базу гугла Дарта Вейдера.

Если администрация не будет против - завтра будет реализован один из двух пунктов. Спасибо за внимание.




PS. Сделаю видео, в котором все покажу и расскажу



 

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
за что отвечает число рядом с вариантами ответа?
 

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63
за что отвечает число рядом с вариантами ответа?
я полагаю, что если умножить на 100, то получатся проценты на сколько машина уверена в своем выборе.
 
  • Спасибо
Реакции: doc

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
  • Спасибо
Реакции: doc

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28
К примеру капча нас просит выбрать всех животных, а нейросеть будет отдавать нам ответы вида hare, bear, как понять, что эти слова относятся к животным?
 

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63
Спасибо. Позновательно.
Но получается достаточно громоздкая система и малое количество обучения на фото. Поэтому мне интересно для каких целей это можно использовать? Не проще ли использовать https://images.google.ru/ который даст значительно больше правильных ответов и не придется так заморачиваться.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
я тоже думал об этом.
я полагаю, что если умножить на 100, то получатся проценты на сколько машина уверена в своем выборе.
Но, во-первых, там есть число больше пяти.
Похоже на показатель степени вероятности
Во-вторых, если это степень, почему не идти от наиболее вероятного по убыванию, зачем выдавать варианты в разнобой?
 

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
Во-вторых, если это степень, почему не идти от наиболее вероятного по убыванию
Именно так оно и идет.
Присмотрись к самому числу по внимательней.
2017-05-20_05-37-31.png
 
  • Спасибо
Реакции: doc

emel

Client
Регистрация
21.02.2015
Сообщения
86
Благодарностей
18
Баллы
8
Перспективная тема, ещё бы видео, как всем этим пользоваться. С нуля конечно было бы интереснее.
 
  • Спасибо
Реакции: ogurchiki и Radzhab

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
Хорошая статья
Что-то последнее время нейросети стали очень популярны :-)
 
Последнее редактирование модератором:
  • Спасибо
Реакции: LevSolnyshkin и Radzhab

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
У нас остался еще один важный момент - это обучение или дообучение системы. Мы можем либо создать свою систему допустим из 5-6 наименований. Например, сделать систему которая будет различать розу,подсолнух, ромашку и т.д друг от друга, либо же добавить в существующую базу гугла Дарта Вейдера.
Гугле создаёт систему распознавания, которая нас же будет... еб... дрючить, а мы будем им помогать в этом? И, чтобы не получилось "себе же хуже сделали", надо это дело масштабировать настолько, чтобы получилось как в известном анекдоте,- "нэхай подавятся". Один изщ моментов, использовать для распознавания их же каптч, но есть и другие.

Что-то последнее время нейросети стали очень популярны
Всё идёт к тому, чтобы превратить даже человека в ячейку нейросети. Чипы, карточки и прочее уже делают своё дело.

Присмотрись к самому числу по внимательней.
Скорее всего, тут, помимо степени правильности распознавания (как машина может понять, что она права, не знаю?), это код, который записывается в базу, и по которому будет выдан или скорректирован следующий ответ. Далее идёт простая аналитика, статистика (всё, на что им ума хватает). Вообще 95% западных технологий основаны на аналитике статистики. Особенно то, что касается торговли и прочих мендежментов. тут то же самое

Гугле схитрожопил раньше, когда заставлял миллионы пользователей распознавать тексты, а также номера домов, сейчас перешли на картинки. тупой метод, вместо того, чтобы думать головой, лучше заставить рабов выполнить за себя работу. Но, при наличии огромного трафика, действует. тупо, но действует.
 
  • Спасибо
Реакции: Radzhab

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 448
Баллы
113
Раджаб, а без всяких виртуалок и серваков твоя телега не работает? Если можно обойтись без этого, то пожалуйста напиши что для этого необходимо.
 
  • Спасибо
Реакции: AZANIR и Radzhab

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Сделаю видео, в котором все покажу и расскажу
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
прикольно конечно, но было бы вообще офигенно, если бы был предложен вариант создания совместной библиотеки для нейросети и обучать её сразу с 15000 зенок, во дело было!!!))) - п.с. на заметку будущих ТС
 
  • Спасибо
Реакции: Valiksim и Radzhab

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
Тема очень интересная, хайп вокруг нейросетей действительно высок:bq: но на практике просятся два момента.

Обучение сетей.
Доступны сервисы, которые по умолчанию знают об изображении намного больше, чем мы:
  1. IMB Bluemix
  2. Computer Vision Microsoft
  3. Amazon Rekognition
У каждого есть свои лимиты, но мы же знаем, что их можно обойти :bm:

Практическое применение.
Нах*я?

Приходит на ум, в плане практики, это более или менее осмысленные комментария под фотографиями в социальных сетях.



P.S. @Radzhab благодарочка за статью, как всегда ОК (оригинальный контент) голос за вас:bf:
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Раджаб, а без всяких виртуалок и серваков твоя телега не работает? Если можно обойтись без этого, то пожалуйста напиши что для этого необходимо.
Тоже интересует этот вариант. Я рельсы не знаю, но вот сделать на php/python такой же биндинг - не проблема.

И к слову, быть может вообще имеет смысл облегчить жизнь всем (в том числе и ТС)? Если TF можно поставить на винду (и будет работать также хорошо), то ведь можно было бы биндинг (аки сервер-слушатель) на C# сделать и тогда не нужно было бы тратить ресурсы на виртуалку.
 
Последнее редактирование:
  • Спасибо
Реакции: Radzhab, Sz5 и samsonnn

ogurchiki

Новичок
Регистрация
11.05.2017
Сообщения
16
Благодарностей
3
Баллы
3
ждем видео)
 
  • Спасибо
Реакции: Radzhab

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Сделаю без виртуалки. МБ даже подниму легкий http-сервер в один exe
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
  • Спасибо
Реакции: Radzhab

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
а можно заточить нейросеть под другие нужды ? не картинки ?
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
179
Баллы
43
а можно заточить нейросеть под другие нужды ? не картинки ?
Я думаю да, можно под любую аналитическую, сложно вычислительную задачу можно заточить ИНС.
Но здесь есть НО...

Нейросеть использует узлы слои, нейроны, синапсы в своей структуре и значит на вход нейронам, нужно подавать правильные данные или их корректировать с помощью длинных сложных математических функции.

Вот пример Mean Squared Error (далее MSE) алгоритм который выявляет ошибочное принятие решение самим ИНС


Что бы обучение было максимально продуктивным. Просто так запустить одной командой, и на вход подать файлик TXT с готовыми данными мало что получится нормального.
Надо все равно понимать как работает эта вещица.
Как обучать с учителем и без него.
Что такое сети прямого действия
Что такое рекуррентные
Что такое радиально базисные функций

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

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
  • Спасибо
Реакции: Radzhab

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113

emel

Client
Регистрация
21.02.2015
Сообщения
86
Благодарностей
18
Баллы
8
Да, все правильно. Суть использования виртуалки с линуксом - это использование его в рельсовом проекте. Моя прихоть
По идее на линуксе должно быстрее все работать. И по ресурсам выгоднее.
 
  • Спасибо
Реакции: Radzhab

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
По идее на линуксе должно быстрее все работать. И по ресурсам выгоднее.
Если не эмулировать железо в виртуалке...) (для несведущих - это я про работу НС с GPU)

@z@jivalo всё верно описал. Если нет фундаментальных знаний - хрен что выйдет) Мы с товарищем тут 2 месяца одну нейронную сеть обучали генерировать осмысленные тексты, я вначале сервера по 24 и более CPU арендовал для обучения, потом арендовал сервера с GPU, а потом друг купил видео-карточку за 50к, обучение пошло в разы быстрее. Консультировались со специалистом в этой области, вроде более-менее приноровились и разобрались к концу второго месяца. Потом какое-то время тестировали и... оказалось что это всё говно и нахрен не нужно)

Так вот, за эти два увлекательных месяца, потраченных в никуда, стало ясно, что если бы мы обладали всеми нужными знаниям, то за неделю бы всё затестировали и не пришлось бы обучать более 100 моделей. И уже через пару недель поняли бы, что толку ноль - и отступились, а не тратили столько времени)
 
  • Спасибо
Реакции: Astraport и z@jivalo

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
179
Баллы
43
Так вот, за эти два увлекательных месяца, потраченных в никуда, стало ясно, что если бы мы обладали всеми нужными знаниям, то за неделю бы всё затестировали и не пришлось бы обучать более 100 моделей. И уже через пару недель поняли бы, что толку ноль - и отступились, а не тратили столько времени)
вот вот мне эта инициатива очень знакома, только я пока не вкладывался в это дело.
Я считаю так есть кодеры Зенщинки, а есть спецы в области обучений нейросетей, так вот надо с ними дружить
:D:D:D.
А что бы быть грамотным профи в этих направления сразу, ну не знаю сколько надо времени потратить.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
А что бы быть грамотным профи в этих направления сразу, ну не знаю сколько надо времени потратить.
Боюсь, что не одну жизнь)

есть спецы в области обучений нейросетей, так вот надо с ними дружить
К сожалению, все встреченные мной - слишком ушлые ребята, из-за того, что считают, что знают слишком много. И знания у них эти оправданы, правда, делиться они ими крайне не хотят.
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
179
Баллы
43
К сожалению, все встреченные мной - слишком ушлые ребята, из-за того, что считают, что знают слишком много. И знания у них эти оправданы, правда, делиться они ими крайне не хотят.
Оно то и понятно это вещь на сегодня очень крутая, хорошо обучения Сетка такая может сделать нереально много чего.

Даже человека-подобных ботов которые будут на 99,5% идентичны по поведения с пользователем.
А тут и кликеры рекламы, и посещалки по сайту раздору полно для реализации.

На хабре полно инфы но она с трудом читается, не то что бы понять как это работает
 

emel

Client
Регистрация
21.02.2015
Сообщения
86
Благодарностей
18
Баллы
8
Если не эмулировать железо в виртуалке...) (для несведущих - это я про работу НС с GPU)
Так то сейчас практически все сервера на виртуалках, с виндой и без винды. Хоть и с гипервизором. Для несведуших)
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Так то сейчас практически все сервера на виртуалках, с виндой и без винды. Хоть и с гипервизором. Для несведуших)
Ога, только стоит учесть тот факт, что прокинуть видюху через виртуалку прям нативно-нативно - не выйдет хорошо. Или куда замудит, или по производительности будет плохо работать.
Проходили, знаем)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)