Система «Каскад» для игры в онлайн рулетку — обсуждение

3 лучших онлайн казино на русском языке за 2020 год:
  • JOY Казино
    JOY Казино

    1 место по бонусам и скорости выплат!

  • Казино Х
    Казино Х

    Большие бонусы и высокая отдача со слотов!

  • SOL Казино
    SOL Казино

    Надежное казино с моментальным выводом денег!

Обучение OpenCV каскада Хаара

На хабре уже есть несколько статей и про то, что такое каскад Хаара (раз, два, три). Есть даже одна, где затронут процесс обучения, но в отношении описанной задачи. На тему обучения есть пара неплохих статей на английском (первая, вторая, третья), но, на мой взгляд, они путанные: либо рассказывают очень мало, либо слишком много и обо всём — выделить нужную мысль сложно.

В этой статье я попробую показать, как обучить каскад с нуля за несколько часов, натренировав на поиск простого предмета в видеопотоке (примером будет очаровательная сова с фотографии). Все обучающие выборки и программы будут приложены.
Зачем всё это нужно? Каскад Хаара это один из простейших способов распознавания классов объектов с большой скоростью работы. К ним относятся лица и руки людей, номера автомобилей, пешеходы. Детектором Хаара просто находить животных в кадре (кстати, удивительно, что я не видел ещё ни одной автоматической кормушки для синиц на raspberry pi). К тому же, готовые реализации OpenCV есть под большинство существующих систем (даже для blackfin’a встречал). Всё это делает Хаара одним из самых удобных методов, позволяющих решать задачи видеообработки даже людям, которые никогда не работали с обработкой видео.

Процесс

Весь процесс обучения выборки не требует навыков программирования. Для этого имеются уже готовые консольные программы, присутствующие в основной сборке OpenCV. Использование каскада требует минимального навыка программирования, достаточно изменить пару строк уже в готовом примере, которые есть под С, С++, С#, Java, Python и.т.д.

Что нам будет нужно?
Где достать примеры и контрпримеры?

Есть несколько способов:

  • Наснимать фотоаппаратом самому.
  • Использовать готовую базу, если она есть в интернете. Для лиц, номеров, глаз, эмоций, людей и.т.д. таких баз много.
  • Включить видеокамеру и сделать набор снимков из видеопотока.
  • Использовать софтину, приложенную к OpenCV и сгенерировать новые выборки из имеющихся 2-3 изображений. Этот вариант подробно описан тут, я не буду на нём останавливаться. Работает он плохо, для серьёзных целей не годится.

Для вариантов 1-3 есть несколько программ упрощающих жизнь. В первую очередь это программы, позволяющие разметить фотографии. В статьях на английском используется самописная программа » imageclipper». Мне она не понравилась, так как некорректно работает с большими фотографиями. Для себя я написал программу, с которой было удобно работать мне. Исходники и код приложены в разделе «Загрузки» этой статьи (программа PictureCropper).

Сколько нужно фотографий?

Для стабильно работающего детектора лиц это 3000-4000 положительных примеров и столько же отрицательных. Из 500 положительных и 1000 отрицательных я делал стабильный детектор номеров. Для детектора, который показан в этой статье, я взял 250 положительных и 500 негативных фотографий.
Чем больше и разнообразнее выборка, тем стабильнее работает и тем дольше обучается.

Приступаем к работе.

Для того, чтобы начать обучение, нам нужно иметь 2 папки с примерами. «Good» — папка с позитивными изображениями, «Bad» — с отрицательными. ВАЖНО! По крайней мере, в одной из прошлых версий программы обучения она плохо реагировала на наличие пробелов и точек в названии файлов. Русский не воспринимает никакая версия. Старайтесь называть изображения «0.bmp», «1. bmp » и.т.д. Форматы » bmp » и «jpg» работают стабильно, с остальными не проверял.
Для каждой папки нужно иметь текстовый файл, в котором описаны используемые изображения. Назовём их «Good.dat» и «Bad.dat». ВАЖНО! Этот файл должен лежать на том же уровне файловой системы, на котором лежит папка.

Файлы описания для отрицательных и положительных объектов имеют разную структуру. Для файла отрицательных примеров это просто список относительных путей к изображениям:

Рейтинг надежности онлайн казино с лицензией:
  • JOY Казино
    JOY Казино

    1 место по бонусам и скорости выплат!

  • Казино Х
    Казино Х

    Большие бонусы и высокая отдача со слотов!

  • SOL Казино
    SOL Казино

    Надежное казино с моментальным выводом денег!

Для файлов с положительными примерами запись чуть хитрее. Кроме пути должно быть указанно положение рассматриваемого объекта и его размер. В принципе, каждое положительное изображение может содержать несколько примеров объектов. Но я так не советую. Лучше всего: один кадр — один объект.

» Good \0.bmp » — адрес объекта относительно файла описания. «1» — количество положительных объектов на изображении. «0 0 414 148» — координаты прямоугольника на изображении в котором находится объект. Если объектов несколько, то запись приобретает вид: «Good \0.bmp 2 100 200 50 50 300 300 25 25».
Повторюсь, что удобнее всего, когда каждый объект представляет собой отдельный кадр, при этом координаты объекта равны размеру кадра.

Пример снимков положительной выборки:

Пример снимков отрицательной выборки:

Начинаем обучать!

Само обучение происходит в два этапа. Первый этап — все положительные изображения приводятся к общему формату. Делать это нужно расположенной в папке OpenCV программой. Возьмите ту, что соответствует вашей системе. У меня это » opencv\build\x64\vc10\bin «. Программа называется opencv_createsamples.exe.
Для создания пачки приведённых положительных изображений запустим opencv_createsamples через консоль:

-info E:\BAZAS\Sova\Good.dat – файл описания положительных изображений. Указывается либо полный адрес, либо относительно программы opencv_createsamples.exe.
-vec samples.vec – файл, в который будет сохранена приведённая к общему формату база положительных изображений. Адрес должен быть указан относительно программы opencv_createsamples.exe (допустим полный путь в системе).
-w 20 -h 20 — размер шаблона. Должен приблизительно отражать пропорции искомого объекта. Например, для лиц или для совы наиболее подходящая пропорция высоты к ширине 1*1. Для номеров это 3*1. А для поиска карандаша логично поставить что-то вроде 8*1. Размер шаблона должен быть достаточно маленьким. Идеально ставить его таким, чтобы человек сам мог отличить изображённый объект, но не больше того. Чем больше шаблон, тем дольше обучение.
Результатом работы программы является файл samples.vec, в котором будут лежать все ваши положительные изображения в формате, близком к bmp и с размером w*h.

Создаём итоговый каскад

Для подсчёта итогового каскада используется программа «opencv_traincascade.exe», лежащая в той же папке, что и opencv_createsamples.exe. Работает долго. Даже очень долго. Обучение каскада на 500-1000 объектов займёт почти целый день. Пример обучался часа 2. При вызове:

-data haarcascade — адрес папки, куда класть полученные результаты. Отсчитывается от корневой папки программы. Нужно создать заранее, а то всё вылетит.
-vec samples.vec — адрес посчитанного в прошлом пункте файла с положительными примерами
-bg E:\BAZAS\Sova\Bad.dat — адрес файла-описания отрицательных примеров
-numStages 16 — количество уровней каскада, которые программа будет обучать. Чем больше уровней, тем точнее, но тем дольше. Нормальное их количество от 16 до 25.
-minhitrate 0.999 — коэффициент, определяющий качество обучения. По сути, это процент “правильных” обнаружений. Если установлено .999, то есть по исходной выборке будет не более, чем 1- 0.999 =0.1% пропусков целей. Чем выше коэффициент, тем выше уровень ложных тревог. В принципе, если выборка хорошая, можно ставить 0.99-0.999. Если плохая ( объектов мало, они смешиваются с фоном) — то следует опускать.
-maxFalseAlarmRate 0.4 — уровень ложной тревоги. AdaBoost — такой алгоритм, который может любой уровень ложной тревоги по выборке натянуть. Но лучше что-то разумное сделать. По умолчанию все ставят 0.5. Но, возможно, будет иметь смысл поиграться. В случае, если выборка очень хорошая, то уровень требуемой тревоги будет быстро достигнут, и обучение будет остановлено.
-numPos 200 — количество позитивных примеров. ВАЖНО! Казалось бы, тут должно стоять число файлов, которые у вас были. Но это не так (в большинстве руководств это не отмечено). Чем ниже коэффициент «minhitrate », тем больше ваших файлов будет считаться непригодными. В большинстве случаев достаточно поставить numPos 80% от имеющихся у вас положительных файлов. Лучше перестраховаться, чтобы через день работы программа не вылетела с ошибкой:)
-numNeg 500 — количество имеющихся у вас негативных примеров. Что есть — то и пишем.
-w 20 -h 20 — размер примитива из прошлого пункта.
-mode ALL — использовать или нет полный комплект Хаар-признаков. От этого зависит скорость работы и точность алгоритма. Но есть ситуации, когда полного комплекта признаков не нужно (например, если ваш объект не меняет ориентацию).
-precalcValBufSize 1024 -precalcIdxBufSize 1024 — выделяемая под процесс память. Вроде, в последней версии OpenCV, сколько я заявил, примерно столько программа и съела, но чуть более ранние версии ели где-то в 2 раза больше. Если во время обучения вы планируете пользоваться компьютером, то ставьте столько памяти, чтобы вам хватило на дальнейшую работу.

Известные баги

Нужно сказать, что обучение не страдает юзабельностью. Есть много багов. Но потихоньку OpenCV исправляется. В последнем OpenCV достаточно подробно объясняются большинство причин, по которым вылетает программа. Как правило, это нехватка положительных или отрицательных примеров, недостижимые характеристики, криво написанные адреса. Правда, был какой-то глюк с подвисанием обучения, когда я обучал выборку по сове. Cудя по всему, было слишком мало тестовых примеров (я тогда использовал 150 сов и 200 контр-примеров).

Результаты

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

Каскад

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

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

Особый вклад в качество игры делает забавное звуковое сопровождение игры, которое полностью соответствует ее настроению. Проходить уровни было бы скучно, если бы все происходило без звука.

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

Помимо одиночной игры здесь присутствует возможность сражаться против других игроков со всего мира. Игра полностью на русском языке.

Скачать Каскад на андроид v.2.2.4

Каскад – это увлекательная головоломка для детишек и их родителей, которая является очень красочной и интересной.

Почему стоит скачать Каскад на андроид?

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

Скачать Каскад на андроид бесплатно в игре имеется возможность соревноваться с вашими друзьями, или даже с другими игроками по всему миру. Причем круто то, что самые лучшие игроки смогут получать большое количество призов. Кстати, если вам трудно будет проходить уровни в дальнейшем, то можно будет использовать бонусы, которые весьма помогут в прохождении заданий. Тут превосходно почти все. Даже графическая часть на довольно-таки высоком уровне, да и общая оптимизация на высоте. А вот в минусы надо отнести большое количество различной рекламы, которая все портит в данном игровом приложении для смартфонов и планшетов.

Интересные особенности игры:

  1. Крутой и интересный геймплей по типу «Три в ряд», который так все любят;
  2. Возможность сражаться против ваших друзей и других игроков со всего мира;
  3. Большое количество уровней, которые до жути интересные из-за игровой составляющей;
  4. Имеется поддержка русского языка.

Источник: Плей Апк.

ТОП Онлайн Казино по бонусам и Джекпотам:
  • JOY Казино
    JOY Казино

    1 место по бонусам и скорости выплат!

  • Казино Х
    Казино Х

    Большие бонусы и высокая отдача со слотов!

  • SOL Казино
    SOL Казино

    Надежное казино с моментальным выводом денег!

Добавить комментарий