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

    @dmshar
    В любой задаче МL и в задачах распознавании визуальных образов в разных интерпретациях, при отсутствии размеченных данных теоретически существует два пути:
    1. Самостоятельно, вручную разметить данные. Наверняка вам известно, что ручная разметка данных - сегодня это целое направления бизнеса. И многие фирмы (особенно преуспели в этом китайцы) зарабатывают на этом миллионы. Т.е. вы им ваш набор данных, они вам - его разметку. Погуглите, найдете куда обращаться.
    2. Использовать методы кластеризации, результаты которой вам дадут перечень классов объектов (в вашем случае - уникальных участников) и разнесут ваш датасет по этим классам. Вот только сами эти алгоритмы кластеризации могут оказаться сложнее той задачи классификации, которую вы перед собой ставите. В случае объектов-лиц - на порядок сложнее. Причем качество такой кластеризации - достаточно низкое, на много ниже, чем качество ручной разметки. Что в свою очередь еще более снизит качество решения вашей основной задачи классификации объектов. Но зато - без китайцев :)
    Вот как-то так.
    А вариант решения - выбирать вам.
    Ответ написан
    Комментировать
  • Каков механизм распознавания объектов через графы?

    @dmshar
    Во-первых, наверное все таки не "распознавание объектов графам", а скорее всего "распознавание объектов, которые представлены графами".
    Во-вторых, на "уровне языков программирования" - такое, на сколько я знаю, не реализовано нигде. В любом случае, вам надо средствами выбранного языка смоделировать объект типа "граф". Сегодня это позволяют сделать любой язык программирования (ну кроме совсем специализированных). А дальше делайте с этим представлением что хотите - хоть кратчайший путь ищите, хоть поиск в ширину-глубину организовывайте, хоть сравнивайте два графа между собой, хоть задачу коммивояжера решайте, хоть распознавайте в графах некоторые паттерны, хоть описывайте свои объекты (например - лица) в виде графовой модели и ищите "подобные". Для всех таких задач есть соответствующие алгоритмы, а часто - и не один, которые изучаются в таком разделе математики, который называется "теория графов". Эти алгоритмы реализуются либо в ручную, самим программистом, но в некоторых языках программирования есть библиотеки, которые решают некоторые задачи из перечисленных. Например для Python есть библиотека NetworkX, которая сильно упрощает работу с сетевыми (графовыми) структурами.
    Если вас интересует вопрос на ответ "как" выполняется распознавание с помощью графов - то тут имеется достаточно много источников, правда большинство из них не для "легкого внеклассового чтения" и требуют достаточно серьезного углубления в математику. Ну вот например,:
    https://www.litres.ru/a-a-dunaev/ispolzovanie-teor...
    https://cyberleninka.ru/article/n/primenenie-teori...
    https://scask.ru/p_book_gpr.php?id=95
    https://cyberleninka.ru/article/n/metod-gibkogo-sr...
    Последний вопрос про "предпочтения языка программирования с точки зрения мощности сервера для данной задачи "- вообще непонятен. Выбор сервера будет сильно отличаться не столько языком реализации вашей системы, сколько самой задачей - например, сегодня распознавание лица при фотографии есть в любом фотоаппарате или смартфоне, а вот если вам надо выявлять преступника на видеопотоке из метро - там совсем другие сервера придется задействовать. Хотя алгоритмы лежащие в основе и язык программирования вполне может быть одним и тем-же.
    Ответ написан
    3 комментария
  • Как распознать объект по его геометрии?

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

    @dmshar
    Вопрос первый. А вы свою сеть обучали только на "хорошо освещенных" изображениях или на всех, в том числе и на "темных"?

    Вопрос второй. А что вас собственно удивляет?
    Вы никогда не обращали внимание на то, что даже люди слабо освещенные объекты распознают хуже, чем хорошо освещенные? Тем более перепутать лицо человека в темноте - это запросто.
    Было бы очень странно, если бы системы работали не так. Все что вы можете сделать - немного "подправить" изображение, поигравшись с их яркостью, насыщенностью и пр. А уж потом натравливать на них вашу нейросеть. Только не забудьте перед этим нейросетку обучить именно на предварительно обработанных фото.
    Совсем "безумная" идея - попробовать работать с фото, предварительно переведенными Grayscale.
    Указанные процедуры (кажется) можно сделать средствами OpenCV.
    Ответ написан
    Комментировать
  • Как узнать есть ли лицо на фото?

    @dmshar
    Ответ написан
    Комментировать
  • Как работает генерация признаков Хаара?

    @dmshar
    Ответ написан
    Комментировать
  • Как написать приложение для распознавания предметов?

    @dmshar
    Ну, если сама и с нуля - то это просто.
    1. Сначала разбираемся, что такое нейросети. Для этого неплохо заранее изучить и понять алгоритмы машинного обучения, а они предполагают владение линейной алгеброй, статистикой, оптимизацией (в том числе численной).
    По дороге разбираемся, что такое "обучение модели" и что такое "применение".
    2. После этого изучаем как получить изображение и работать с ним - как оцифровать изображение, как его препарировать для дальнейшей работы.
    3. После этого приступаем к изучению работы нейросетей, заточенных под работу с визуальными образами - ну тут можно ограничиться сверточными сетями. Правда предварительно надо разобраться с другими типами, но надеюсь, с этим справитесь легко.
    4. Не забываем параллельно на достаточном уровне освоить инструменты программирования - но если вы собрались писать "с нуля" и на java, то с java придется разбираться глубоко, тем более, что образцов на этом языке для подражания в выбранной вами области не так и много. На английском - встречал, но это для вас, надеюсь, не препятствие.
    Обучать модель написанную на одном языке, а потом ее перепрограммированить на другой - тот еще челендж. Но забавно, прибавляет сложностей к работе, повышает общий уровень профессиональных навыков и умений. Так что учить или нет Руthon дополнительно - решать вам самостоятельно.
    5. Ну а после этого - все просто. Собираем все перечисленное выше "до купы" - и ву-аля! - нейросеть для распознавания предметов готова. Правда, ее после этого придется обучить - ну, для этого у вас уже-ж заготовлено пару (десятков) тысяч размеченных изображений разных предметов, так что тут затруднений у вас не будет.

    Вот примерно как-то так. Впрочем, может какие шаги по дороге я пропустил - так что может список и немного расшириться. Тем более интересно, именно для этого и пишут нейросети в одиночку "с нуля" для развития себя как специалиста (правда, тут важно, что бы задел, который надо развивать уже был, и желательно - не элементарный).

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

    @dmshar
    Зачем браться за задачи, по которой вы не в состоянии нагуглить информации, при условии, что информации этой в сети - выше крыши. Ну вот прямо с сегодняшней ленты Хабра - что бы не далеко ходить:
    Обнаружение объектов с помощью YOLOv3 на Tensorflow 2.0
    И такой информации в день по три статьи! А у вас все гораздо проще, чем распознавание произвольных объектов. Берете - ИЗ ЭТОЙ СТАТЬИ ИЛИ ИЗ СОТНИ ПОДОБНЫХ - , настраиваете (вернее - упрощаете до вашего простейшего объекта - круговой диаграммы), обучаете на собранном вами датасете - и получаете то, что вам надо.
    Обучить его тому "из какого сервиса сделан скрин" - это следующая задача. Принцип остаётся тем-же, только вот настройку придется проводить более тонкую, да обучающий датасет немного другой собирать.
    Мой совет - начинайте с простого. Разберетесь - и вторую задачу решите легче.
    Ответ написан
    Комментировать
  • Как сделать поиск похожего лица среди фото?

    @dmshar
    Ну, я так понял, с подчерком вы уже справились.
    Как сравнить почерк?
    Теперь - переходим к поиску похожих лиц.
    Странно правда то, что в предыдущем вашем вопросе я вам посоветовал смотреть в именно в сторону "распознавания лиц", " сторону сетей для классификации" и CNN. "Смотреть" - разумеется имелось ввиду разбираться, как они устроены, как с ними работать, где и как использовать и пр. Вы же, вместо того, что-бы с этим знакомиться, пришли сюда спрашивать об этом-же. Ну дадут вам какой совет сейчас - дальше что, опять вместо изучения придете сюда спрашивать "а это что, а это как"? И так всю жизнь?
    Ответ написан
    Комментировать
  • Как сделать распознавание маски на лице на Ubuntu?

    @dmshar
    Вообще-то такие алгоритмы - это know-how:
    https://www.gq.ru/society/masks-surveillance-systems
    https://felenasoft.com/xeoma/ru/articles/mask-detector/
    https://habr.com/ru/company/globalsign/blog/489928/
    https://securityrussia.com/blog/raspoznavanie-v-ma...
    https://www.forbes.ru/newsroom/biznes/395425-v-kit...
    https://rb.ru/story/identity-crisis/
    Можете обратится по ссылочкам к разработчикам. Они вам с удовольствием скинут. За денюжку разумеется и немалую.
    Только когда будете с ними говорить - "распознавание на Ubuntu 20.04" выкиньте из оборота. Уж больно по дилетантски звучит. И явно выдает уровень (не)понимания проблемы. Впрочем, как и просьба поделиться исходниками за "спасибо".
    Ответ написан
    Комментировать
  • Как правильно настроить нейросеть для выделения харктерных точек?

    @dmshar
    В каком виде лучше подавать изображения на CNN (черно-белое, в градациях серого, уменьшенное, в исходном размере?)

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

    и что дать CNN в качестве обучающих выходных данных: изображения с отмеченными точками или массив с координатами каждой точки (их около 70)
    Вариант 2 - "массив с координатами точек". Разумеется, если ваша цель - "находить ключевые точки на лицах".
    Ответ написан
  • Распознавание пожара на спутниковом снимке?

    @dmshar
    Возможно все. Вопрос - хватит ли у вас знаний, если вы не можете самостоятельно найти ответ на базовый вопрос.
    Таких примеров по сети гуляет много. На kaggle были соответствующие соревнования:
    https://www.kaggle.com/elikplim/forest-fires-data-set
    Один из примеров решения задач с помощью нейросетей и OpenCV.
    https://towardsdatascience.com/early-fire-detectio...
    Вот еще пару вариантов:
    https://link.springer.com/chapter/10.1007/978-3-03...
    https://journals.sagepub.com/doi/full/10.1177/1748...
    https://github.com/Skar0/fire-detection
    https://www.mdpi.com/2072-4292/11/14/1702/htm
    Вот - без нейронки:
    https://www.hindawi.com/journals/mpe/2018/7612487/
    Ну и далее - по ccылкам самостоятельно. Будут конкретные вопросы - задавайте.
    Ответ написан
    Комментировать
  • Как написать программу, которая распознает глаза и лица на фото?

    @dmshar
    Как написать программу, которая распознает глаза и лица на фото? - какие чудесные, содержательные вопросы пошли на форуме. Ну вот "как написать программу"?
    Да элементарно написать такую программу, так-же, как пишутся любые другие программы.
    1. Изучаем подходящий язык программирования. Подойдет любой - Python,С++,С#, Julia, Go.... на худой конец сойдет и Java.
    2. Изучаем методы или ХОТЯ-БЫ инструменты для решения вашей проблемы(в данном случае - распознавания изображения по фото-видео) созданные кем то другим и любезно предоставленные для широкого пользования. Именно изучаем - т.е. смотрим, сравниваем, какой нам подойдет, а какой нет, каким удобнее пользоваться именно в нашем конкретном случае и исходя из нашего опыта, какой дешевле купить, легче установить, проще интегрировать и т.д.
    3. Думаем, как встроить/использовать изученные вами и инструменты в программу, которую вы напишете на изученном вами языке.
    4. Обучаем построенную систему - как это сделать отличается для каждого из инструментов и (вот неожиданность!) описывается в документации к нему. Кроме того, на сегодня в интернете для каждого из инструментов существует по несколько десятков примеров их использования в аналогичных проектах - ищем, изучаем, применяем.
    5.После этого легко и непринужденно применяем нашу программу там и так, как посчитаем нужным. Хоть для распознавания лиц и глаз, хоть ушей и хвостов, хоть колес и руля.
    Все, как вы видите совершенно так-же как и при решении любой задачи - ИЗУЧАЕМ, ДУМАЕМ, ПРИМЕНЯЕМ. А вы думали, что эта задача решается как-то по другому, и ее можно в трех строчках описать в виде ответа на форуме. Или что какой-то из этих этапов можно пропустить?
    Ответ написан
    2 комментария
  • Как организовать систему подсчёта посетителей с помощью камеры и Python?

    @dmshar
    Вот тут описано решение вашей задачи как частный случай более общей, и библиотеки, которые могут при этом пригодиться
    https://habr.com/ru/company/recognitor/blog/505694/
    Ответ написан
    Комментировать
  • Приложение для андроид распознавание лиц, с чего начать?

    @dmshar
    А программировать-то вы умеете? Тем более для Андроид? А что такое "распознавание образов" знаете? Если нет , то совет первый - начните с этого.
    "Какие сложности могут возникнуть" - самая главная сложность - это некомпетенция участника проекта. Для проверки того, достаточна-ли ваша компетенция попробуйте дать ответ на вопрос - а для чего при примерке парика или очков использовать распрознавание лиц?
    Ответ написан
    1 комментарий
  • Распознавание образов с окна игры?

    @dmshar
    1. Если современные средства ИИ позволяют не то что монстров отслеживать, а куриц, перебегающих дорогу перед автомобилем объезжать, то ответ на вопрос "можно или нет отслеживать и манипулировать мышкой" - понятен и однозначен. Можно.
    2. Возможно реализовать на чем угодно, и на С# и на Python, и на Java и на GO и на Julia.

    Вот только рассчитывать на то, что вы это сделаете дома на коленке - что на Python, что на С - явно не стоит.
    Ответ написан
  • Возможно ли автоматизировать заполнение таблицы значениями из графика (картинка)?

    @dmshar
    На самом деле все с точностью до наоборот. Картинки, подобные вашей, это результат отображения некоторой известной функции. Использовались в "докомпьютерную" эру, когда вычисление по функции было дело достаточно сложным (по крайней мере для тех, кто этой формулой должен был пользоваться). Поэтому, что-бы освободить их от необходимости ручного счета, один раз просчитывали функцию, рисовали такие вот графики и их тиражировали.
    Сегодня ситуация в корне отличная. Проще найти ту функцию (функции), которая лежит в основе графика, и написать простенькое приложение. Идти обратным путем - как минимум несколько странновато.
    Ну, или если совсем не вмоготу, то используя факт логарифмической зависимости данных на графике, строите формулу прямой по двум точкам, а потом применяете обратное логарифмическое преобразование. Вот как-то так.
    Ответ написан
    1 комментарий
  • Начинать ли Machine Learning с классиков Теории распознавания образов?

    @dmshar
    А зачем? Вы что, не можете более новых книг найти? Или это просто дело принципа?
    Классиков читать полезно, но исходя из того, что кое что может за это время устареть, а что-то появиться новое, я бы советовал ориентироваться книги не более как последнего десятилетия, а по нейронным сетям - и того меньше.
    Ответ написан
    1 комментарий
  • Как получить цвет пикселя?

    @dmshar
    https://www.youtube.com/watch?v=58ktco1LGm4
    А дальше - самостоятельно!
    Ответ написан
    Комментировать