Ответы пользователя по тегу Распознавание образов
  • Существует ли Шазам для вещей?

    @rPman
    Только крупные компании, типа гугл, Майкрософт bing, или Яндекс внедряют поиск в интернете по похожему изображению
    Никто из них не представил удобного api что бы делать поиск по своим базам или хотя бы тематическим.

    Свое сделать можно, но адекватное качество будет дано высокими затратами.
    Ответ написан
  • Как выбрать ии?

    @rPman
    так как вопрос задан в общем то и ответ будет общим

    фаза 0 - выбираешь, что именно будет отдано на откуп ии а что на opencv
    фаза 1 - собираешь обучающие данные
    фаза 3 - создаешь нейронную сеть (выбор алгоритма/архитектуры, выбор гиперпараметров типа количества слоев)
    фаза 4 - обучение (подготовка данных в нужном формате, деление выборки на обучающую и тестовую, обучение, периодическое сравнение метрик качества на основной и обучающей для выявления переобучения)
    фаза 5 - создание алгоритма для проверки эффективности результата

    все это заворачиваешь в цикл от фазы 0 до 5 до тех пор пока метрики эффективности для тебя не станут достаточными.

    p.s. советую для начала остаться на opencv и понять, где именно у тебя тормоза, займись для начала профилированием, какой именно алгоритм у тебя занимает большее время, и попробуй его заменить на что то по проще.

    очень часто, вместо сравнения изображений, может хватить сравнение их частей или каких то быстро вычисляемых характеристик... возможно тебе достаточно будет сравнить несколько точек?
    Ответ написан
    Комментировать
  • Как распознать белый объект на белом фоне opencv?

    @rPman
    как объяснить программе, что на снимке снег, а что облака
    если простыми способами по цвету или по соотношению интенсивности цветов на интервале (в общем аналитически) не получится, то собирай обучающую выборку (не весь кадр а небольшой участок, на котором ты как человек все еще можешь понять снег это или облако) и обучай нейронную сеть.

    Примеров подбирай по больше, тысячами. Старайся чтобы количество с облаками, со снегом и без них было примерно одного количества. Яркость изображений нормализуй, сохраняй пометку об исходном уровне света (по текущей долготе и времени съемки можно понять день, вечер, ночь, утро...), кстати от времени года и высоте над уровнем моря наверное тоже можно понять, имеет ли смысл искать тут снег или нет. Затем увеличивай обучающую выборку вращением исходных примеров и запускай на обучение.

    Вся работа тут - формирование обучающей выборки и подбор гиперараметров нейронной сети.
    Ответ написан
    Комментировать
  • Какой одноплатник и видеокамеру выбрать сейчас в 2021 году для мобильной системы распознавания образов\текстов?

    @rPman
    Не е*и себе мозги, пожалей себя
    Год назад я бы сказал - возьми любую x86 железку со встроенным процом, к примеру интелевские j-серии неплохие по мощности (особенно 19+ годов выпуска), с потреблением до 15ват, с использованием opencl встроенная видяха даст кое какое ускорение (если найдешь готовые библиотеки нейронок под это, они есть но на порядок меньше чем под nvidia), и при необходимости добавишь видеокарту, любую...

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

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

    еще намек - распознование образов в реальном времени не тянут даже стационарные компы с дорогой видеокартой с киловат/час энергопотребления
    Ответ написан
  • Как определить угол наклона изображения?

    @rPman
    Что есть угол наклона?
    Чтобы ответить на этот вопрос, нужно понимать где верх/низ а где сбоку, а это как понимаешь зависит от того что именно изображено.

    Если изображения именно такие как в вопросе, значит нулевое положение определить можно по длине (протяженности) объекта. Ищем контур findContours и находим две точки контура, расстояние между которыми максимальное, этот отрезок можешь считать линией, угол которой и считай.

    Еще можно считать линейную регрессию всех точек объекта (не нужно считать ее контур) до линии, и уже ее угол считать.
    Ответ написан
    Комментировать
  • Как сделать удержание объекта, чтобы нейронка его не теряла?

    @rPman
    Если нейронка потеряла объект, значит не смогла распознать, а значит и координаты определить тоже не сможет.

    Недообученная сеть?

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

    хуже всего, если камера тоже может двигаться/поворачиваться, либо ненужный фон может двигаться, тогда нужен алгоритм не разницу кадров, а тот что используется для определения дрожания камеры (для точек на экране будет дан вектор движения, те что были у объекта с прошлых кадров дадут поправку на старые координаты).
    Ответ написан
    Комментировать
  • Как мне получать данные с экрана?

    @rPman
    экран получать с помощью к примеру mss
    анализировать с помощью opencv или даже нейронных сетей
    Ответ написан
    Комментировать
  • Как распознать картинку с камеры на javascript и найти её в базе?

    @rPman
    Потому что задача не такая простая как хотелось бы, да, перцептивное хеширование и opencl верное направление, но ваша проблема именно в том что вы работаете с камерой а не типличными условиям и готовыми картинками.

    Камера - это повороты и перспективные искажения, проблемы с неравномерной яркостью и мерцанием освещения, инертностью матрицы и глюки алгоритмов пост обработки в смартфонах.

    Вы зависните глубоко и на долго тупо на определении границ вашего изображения, и хорошо, если бы оно было бы геометрически простым, типа прямоугольник
    Ответ написан
    Комментировать
  • Система определения объекта на фото?

    @rPman
    было такое приложение google goggles, даже работало
    почему прекрыли, хз.

    Попробуйте штатный поиск гугла по картинкам, иногда он неплохие перлы выдает, но пользоваться их результатами можно только людям, не машиночитаемо.
    Ответ написан
    Комментировать
  • Какой OCR можно использовать для обучения распознавания картинок в зависимости от узора(не текста)?

    @rPman
    opencv там очень много всего.

    Если велосипед сделать, то: если нет проблем с эффективностью алгоритма, у вас все просто - найти все белые области (пороговое значение, строим монохромное, ставя цвет там где на изображении белый), вычисляем их размер, и начинаем поворачивать с шагом 1-3 градуса, после каждого поворота масштабируем до размера, в котором у вас хранятся шаблоны (лучше сделать поменьше размеры для ускорения, само собой у шаблонов логичнее выровнять размеры по одной стороне) и считаем количество совпадений (плюс к оценке) и несвопадений (минус к оценке), например делая xor (шаблоны и сравнение делать в монохромных версиях) и минимизируя количество (площадь) темных областей.

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

    Это не очень эффективный алгоритм но зато очень простой.
    Ответ написан
    2 комментария
  • Есть ли программные продукты для определения действий человека по видео?

    @rPman
    Готового софта даже в общем случае для определения что делает человек - не существует, но именно последнее десятилетие, благодаря мощностям железных кластеров gpu и нейронным сетям возможно создание такого софта в узких областях, конкретно в вашем случае - отслеживание действий бармена.

    Но для этого вам необходимо уже собранное приличное количество видео, охватывающее все виды деятельности бармена (кстати разных людей) причем по многу раз и желательно с нескольких ракурсов. Затем вы должны сесть сами или нанять команду девочек-операторов, которые разметят каждый кадр! снятых видео что на них происходит (скорее всего вам не надо выявлять объекты на видео, только сам факт наличия действия). Вполне возможно что предварительно вам придется нанять программиста, который подчистит видео от лишней информации (например вырежет часть изображения, на которую попадают клиенты), и возможно отследит положение бармена (технически библиотеки для этого есть). Этот же программист подберет софт и запустит построение нейронной сети на собранных данных на вашем gpu кластере (или если речь идет об облачных услугах то немного дешевле на гугловских TPU)

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

    В общем работы у вас непочатый край и по деньгам это будет очень и очень дорого.

    p.s. если не боитесь большого количества фальшивых срабатываний, можно просто определять положение бармена (несколько камер и простое приложение на opencv), а там, если он рядом с кофеваркой дольше порогового значения времени - варит кофе, если у кассы - принимает оплату и т.п.
    Ответ написан