Форум программистов, компьютерный форум, киберфорум
jvf
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

28.05.27 Тренажёр интеллекта для кошки на основе нейронных сетей

Запись от jvf размещена 27.05.2018 в 21:26
Показов 2745 Комментарии 2

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

Но я придумал сегодня следующую вещь: использовать эту штуку как тренажер интеллекта для кошки.

Работает это следующим образом. У меня есть натренированная свёрточная нейронная сеть, и если кошка попадает в веб-камеру, то программа издаёт звук. Я поворачиваю голову, и если вижу животное, то кидаю лакомство.

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

Поэтому я усложнил задачу. Даю лакомство, если вероятность распознавания нейронной сети увеличится.

Иными словами, в первый раз я готов дать лакомство, если кошка просто попадёт в камеру (свёрточная нейронная сеть видит кошку с вероятностью в 50 процентов или более). В следующий раз я даю лакомство, если вероятность того, что кошка попала в кадре больше или равна 51 проценту. В следующий раз -- больше или равна 52 процентам. И так далее.

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

То есть каждый раз животному будет сложнее и сложнее получать лакомство. Получается настоящий тренажёр интеллекта. Сначала всё просто, но потом сложнее и сложнее, и сложнее.

В итоге я использовал простейшие факты из нейронных сетей, которые сегодня знает каждый школьник, но получил полезную штуку. Не просто распознавание, а интересный и полезный досуг для кошки.

Животным обычно скучно лежать на диване. Они спят от скуки, и я помогаю коту с помощью нейронной сети делать её жизнь более интересной.

Мы побуждаем животное чаще двигаться, больше двигаться, думать, то есть повышаем качество жизни.

Реализовал я это следующим образом:

Параметр сложности задания. Чем выше numb_press, тем сложнее животному получать лакомство. Сначала сложность на нуле.
Python
1
numb_press = 0
mpred2 -- это результат предсказания свёрточной нейронной сети. Если вероятность более 50 процентов, то мы считаем, что это кошка. Если меньше, то считаем, что мы видим не кошку.

Found -- видим ли мы кошку или нет.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        mpred2 = machine.give_prediction_file_2(frame[new_y1:new_y2, new_x1:new_x2])
        #give_prediction_file_2
 
        #print("mpred1=", mpred1[0]  ``)
        #print("mpred2=", mpred2)
 
        Found = False
            
        if mpred2 > 50:
            mpath = myDirs.AI_THINK_CAT
            print("Кошка ", mpred1, " ", mpred2 )
            #myDirs.play_sound()
            Found = True
 
        else:
            print("Кошки нет ", mpred1, " ", mpred2)
            mpath = myDirs.AI_THINK_NOT_CAT
 
        if Found == True:
            if mpred2 > (numb_press+50):
                print("Кошка заслужила лакомство")
                myDirs.play_sound()
Всё реализовано элементарно, но результат получился довольной интересный.

Для проигрывания звуков используем pygame.

Python
1
2
3
4
5
6
7
8
9
10
11
from pygame import mixer
 
    def play_sound(self):
 
        #song = pyglet.media.load('test.wav')
        #song.play()
        #pyglet.app.run()
 
        mixer.init()
        mixer.music.load('test.wav')
        mixer.music.play()
Если слышим звук и мы убеждаемся, что это кошка, то нажимает на клавишу "c" (не забываем дать лакомство ) и увеличиваем сложность немного.

Python
1
2
3
4
5
6
7
8
 
   key = cv2.waitKey(33) & 0xFF
    if key == ord("q"):
        break
  
    if key == ord("c"):
        numb_press += 1
        print("нажали на c=", numb_press)
Это пример показывает, как на основе самые элементарных значений можно что-то интересное, что даёт практическую пользу.

У нас по сути получилась настоящая игра для кошки. Мы сделали не просто распознаватель изображения "кошка или не кошка", а мы создали на основе простейших фактов из свёрточных нейронных сетей настоящую интеллектуальную игру для животного.

В итоге животное будет вынуждено не валяться на диване от скуки, а будет как-то включить свои мозги.

Мы ещё раз видим мощь нейронных сетей в плане практической пользы. Даже игрушечные примеры способны приводить к интересным результатам.

2. Интересное видео о нейронных сетях

Рекуррентные нейронные сети | Глубокие нейронные сети на Python

https://www.youtube.com/watch?v=38iGggnbbsQ



1. Свёрточные нейронные сети хороши для определённых задач: для анализа изображений, видео, звука и т.п. Но они не хороши для других задач: для автоматического распознавания речи, автоматического перевода, для обработки естественных языков.

2. Например, мы хотим предсказать следующее слово:
Столица России...
Поэт Александр Сергеевич...

3. Для решения таких задач часто используются рекуррентные нейронные сети. Нейроны в такой сети могут часть информации передавать себе на вход. За счёт этого запоминать события, которые произошли некоторое время назад. В итоге рекуррентная нейронная сеть хорошо работает для предсказания последовательностей.

4. Сейчас используются рекуррентные нейронные сети под названием "Сети долго-краткосрочной памяти (Long short-term memory, LSTM)

5. LSTM сети способны запоминать события, которые произошли сотни или тысяч единиц времени назад.
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для Avazart
    Видео неправильно вставил:

    https://www.youtube.com/watch?v=38iGggnbbsQ

    Правильно так:
    [YOU TUBE]38iGggnbbsQ[/YOU TUBE] (без пробелов)
    Запись от Avazart размещена 28.05.2018 в 13:31 Avazart вне форума
  2. Старый комментарий
    Спасибо
    Запись от jvf размещена 28.05.2018 в 20:27 jvf вне форума
 
Новые блоги и статьи
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru