Додайте свій проект безкоштовно і почніть отримувати пропозиції від фрілансерів-виконавців вже через хвилини після публікації!
5500 ₽

Оптическое распознавание юнитов на изображении

проект не виконано


Есть такая популярная игра на мобильных платформах - Clash Royale. В ней есть около 77 различных юнитов, как карты в колоде (часть из них, правда, не юниты, а "заклинания", которые видоизменяют игровое поле). 

И есть около 12 разных игровых полей, отличающихся цветами обстановки, на которых происходит бойня, отличающихся цветами обстановки.

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

У всех юнитов есть анимация, то есть они шагают, машут руками, крыльями и т.п.

Реализовать алгоритм, в принципе, можно на чем угодно, если будет возможность потом встроить это в проект на C#.


imageimage

Відгук замовника про фрилансера Александре Н.

Якість
Професіоналізм
Вартість
Контактність
Терміни

Человек подал заявку на выполнение проекта, пообещал сделать за 4 дня и пропал. В личных сообщениях не отвечает, прождал месяц, больше нет смысла ожидать, полагаю.

Геннадий Г. Геннадий Гончаров | Сейф Сейф



  1. 4 дні5500 ₽Переможець
    Александр Новожилов
     192   2   1

    Сделаю на C#/Delphi/Java за три-четыре дня, алгоритм будет работать за 77*(n*m)^2, т.е. для FullHd экрана, где n и m кол-во пикселей на экране, он сможет обработать около 10-25 кадров в секунду. 5500 - по сложности проекта. Я уже начал разработку.

    Росія Рибінськ | 7 листопада о 13:49 |
  • Александр Ли
    Поскаржитися | 5 листопада о 07:42 |

    Нужно определить какие именно юниты есть на карте или их месторасположение тоже необходимо?

  • Геннадий Гончаров — замовник проекту
    Поскаржитися | 5 листопада о 09:36 |

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

  • Алексей Белоус
    Поскаржитися | 5 листопада о 16:34 |

    А зачем вам распознавание образов? Получить точные данные юнитов можно другим более простым путём. 

  • Геннадий Гончаров — замовник проекту
    Поскаржитися | 5 листопада о 20:16 |

    Это интересно! Как именно? Приложение игры запускается в Bluestacks на компьютере, получать данные нужно в приложении на C#. Если есть другой способ получать данные - тоже сгодится (без модификации игрового приложения), но там ведь скорее всего шифр, который может меняться со временем?

  • Алексей Белоус
    Поскаржитися | 5 листопада о 22:06 |

    Данные между клиентом и сервером шифруются наверняка. А вот клиент шифровать не будут - себе дороже. 

    Модифицировать клиент собственно и не нужно. Клиент передаёт и получает данные в том числе кол., положение и действия с игровыми объектами. В случае шифровки канала ещё дополнительно выполняеться шифрование/ дешифрование данных. "Перехватить" данные можно во время отправки, получения, перед шифрованием или после дешифровки. Можно "вычленить" логику обработчика и найти блок с данными объектов. Возможно это не менее трудозатратно чем обучить нейросеть, но программа будет намного легче. К стати, не что подобное делает арт моней. 

  • Алексей Белоус
    Поскаржитися | 5 листопада о 22:18 |

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

  • тут не надо ml

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

  • Александр Ли
    Поскаржитися | 7 листопада о 11:09 |

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

  • Александр Ли
    Поскаржитися | 7 листопада о 11:15 |

    А что по варианту визуального обнаружения... То нейросетка тут врядли нужна.
    Нужно писать детектор движения и в зоне сдвига проверять с читать пиксели определенных цветов. Может хеш юнита составить.
    Но код будет тяжелый.

  • Додати

Замовник
Геннадий Гончаров
Росія Саратов  1   0
Проект опублікований
4 листопада о 21:31
71 перегляд
Поділитися