Fransua

Пользователи
  • Количество публикаций

    13
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Fransua

  • Звание
    Бывалый
  1. Ясно, спасибо! Видео увы посмотреть не могу, телефон чего то глючит, браузер не дает его воспроизвести, зависает... Но гляну обязательно когда будет такая возможность... В принципе думаю идею алгоритма я понял, хочется подытожить. 1. Есть фото на котором нужно обнаружить объект 2. Для того что бы объект можно было обнаружить, надо обучить систему 3. Система состоит из каскада классификаторов где эти классификаторы учатся на опыте друг друга, при этом составляют основу всего каскада(сам агрегатор классификаторов является главным классификатором, который в итоге и выдает решение есть лицо на фото или нет. Делает он это исходя из ответов на входящие данные от слабых классификаторов. Более подробно буду читать в пдф документе который есть в теме из вашего первого поста) 4. На основе сканируемого изображения создается матрица - интегральное представление сканируемого изображения 5. На это изображение накладываются признаки которые являются матрицами. Они накладываются в каждое сканирующее окно. Это окно с каждым приходом по всему изображению увеличивается 6. Затем для каждого признака в окне сканирования суммируются цифры белых и черных сторон, и эти суммы вычитаются друг из друга и получившийся результат(число) характирезует сканируемую область 7. Это число отдается классификатору и он уже смотрит если у него есть класс приблизительно равный входящему числу (определяется порогом), значит на изображении есть лицо 8. Так как размер искомого объекта может быть разным, признаки нужно масштабировать 9. У каждого классификатора есть свой набор признаков 10. Ввиду того что общая форма лица одинаковая - это позволяет идентифицировать его 11. Перед началом работы нужно перевести изображение в grayscale Скажите пожалуйста, я верно представляю себе алгоритм? Может чего то упустил?
  2. Спасибо за объяснения! Еще один вопрос меня волнует, касается он принципа распознания объектов, в данном случае лиц. Буду рад если поможете довести до ума. Верно ли я понимаю что даже несмотря на то, что лицо людей у всех разное, тем не менее форма одинаковая(ну у кого то уши длиннее чем у другого и т.п) но тем не менее на изображениях там где есть лицо классификаторы в участке лица выдают приблизительно одинаковое число(+/- небольшая разница из за того что черты лица не идентичны) - это и дает возможность определить, есть ли на картинке лицо, верно? Число это естественно сравнивается с порогом
  3. Smorodov, Понятно, спасибо. В итоге все эти данные упаковываются в число, но тем не менее насколько я понимаю те характеристики которые вы описали в программе никак не извлекаются из данного числа, работа ведь идет с единым числом. поэтому возникло недопонимание с моей стороны.
  4. Smorodov, Согласен насчет абстракций. Просто меня путает и вводит в ступор следующее: Вы говорите глаза темнее щек. Окей, допустим это так(хотя в реальности сильно зависит от цвета кожи и глаз). Но о результате работы признака вы говорите как о паре - глаза и щеки, где глаза как вы сказали темнее щек, верно? Но результат признака ведь не пара вроде "одно темнее другого), а одно число. В этом смысле я рассматриваю полученное число как абстракцию. Поправьте, если ошибаюсь
  5. Большое спасибо! Теперь понял мысль в целом. Но вот недопонимаю когда говорят "какая часть светлее а какая темнее" - это чтоб обьяснить на пальцах так выражаются? В реализации программы насколько я понимаю нет понятия светлее или темнее, нам просто нужно число, характеризующие значение признака в определенной области картинки. Я верно понимаю?
  6. То что стороны признаков складываются - здесь вопросов нет мне интересно почему от белой стороны отнимается темная сторона признака и почему именно отнимается а например не прибавляется
  7. Подскажите пожалуйста Не могу понять, почему сумма пикселей светлой части признака именно отнимается от суммы пикселей темной стороны признака? Нам же нужно просто какое то число на которое можно опереться при построении шаблонов распознавания и в принципе значение этого числа по идее может быть любым. Почему тогда например суммы пикселей сторон признака не суммируются, или не умножаются друг на друга, а именно вычитаются? И почему именно от белой части признака вычитается темная часть, а не темная от белой? Не получается придумать этому логическое объяснение
  8. А черно-белые не гордятся? Или в таком случае вероятны искажения? Большое вам спасибо! Вы очень сильно помогли! Я почитаю ссылки, надеюсь разберусь!
  9. По поводу каскада хочу узнать, Если классификатор с сильными признаками проверяется первым и может определить, есть ли смысл применять более слабые классификаторы в этом окне, то зачем нужны слабые классификаторы?) Или все дело в том, что один классификатор не может без помощи других понять, есть ли лицо в окне? Читал что такой каскад нужен для того что бы одни классификаторы учились на ошибках других. Как я понимаю в итоге когда система полностью обучена, до слабых классификаторов дело почти не доходит, они в большинстве случаев используются программой на первых стадиях обучения, что бы сделать некоторые классификаторы сильными. По поводу +/- тут как я понимаю не важно какое получится число? То есть можно отнимать как от черной части признака белую, так и наоборот. Главное что бы было какое то опорное число?
  10. Благодаря вам уже начал понимать) То есть перед тем как начать обработку - нужно конвертировать изображения в серые тона. А чем это объясняется? Почему требуется такое преобразование? Что бы например исключить проблему с цветом кожи лица, и сосредоточиться исключительно на понятии "черты лица"? По поводу признаков кажется начал понимать. То есть картинки признаков - на самом деле не являются картинками в контексте программы, просто их рисуют чтоб было понятен смысл. Где то в программе хранятся данные о разделении на части признака, т.е на темную и белую, и опираясь на данные уже можно делать вычисления в интегральном представлении изображения. Вы писали, Признаки - это всего лишь правило суммирования пикселей (если пиксель под белой областью + , если под черной - ). Немного не понятно, плюс к чему, и минус от чего?) По поводу тренировок программы, скажите пожалуйста, верно ли я понимаю идею: Допустим на вход подается 5000 обучающих картинок где есть только лицо и больше ничего. В ходе обучения определяются веса классификаторов и формируется некий порог. Теперь уже на реальных данных где кроме лица есть еще и другие объекты мы просто ищем такие прямоугольники, данные которых будут не менее чем порог. И когда найден прямоугольник который больше всех перешел порог - значит это тот прямоугольник сканирования, который содержит лицо целиком. Я верно все понимаю?
  11. Большое спасибо что откликнулись! Пишу с мобильного телефона, поэтому извиняюсь что не получается нормально цитировать ваши сообщения. Вы писали, Скажите пожалуйста, как такое количество признаков умещаются в таком маленьком пространстве? Там используются признаки размером в 2 пикселя(один белый, другой черный) и их различные комбинации следующие друг за другом? А потом признаки масштабируются? То есть уже на белую часть признака приходится 2 пикселя, и на черную 2? Так же интересно, каким образом представить изображение в виде вектора, например картинку в формате JPEG. Даже не знаю что загуглить, что бы найти подходящий для данной задачи способ конвертации и представления изображения в виде вектора( я представляю себе это как вектор структур, а структура в свою очередь содержит три поля, r g b которые имеют соответствующие значения конкретного пикселя в матрице. И немного недопонимаю чем признак является сам по себе. В примерах как правило используются черно-белые признаки, но мы ведь работаем в большинстве случаев с цветным изображением? Вот нарисовал я допустим признак похожий на нос в прямоугольной форме. А что дальше делать? Конвертировать его тоже в матрицу? В целом я представляю себе процесс обучения так: 1. На вход программе подается набор эталонов лица 2. Каждый прямоугольник сканирования вручную помечется как правильный ответ и корректируются веса классификаторов (Но немного сомневаюсь потому что читал в процессе обучения ручная работа отсутствует за исключением подготовки материала для обучения) Так же интересно, раз уж все сводится к корректировки весов классификаторов, то зачем нужны признаки, похожие на черты лица? Например прямоугольный нос... Можно же подать на вход в качестве обучающих данных например слона, и корректировать веса до тех пор пока система не будет ассоциировать слона с человеческим носом. В таком случае у меня так же не складывается логика, зачем от светлой части признака отнимать темную, если это просто числа которые нужны просто для "подгонки" весов классификаторов. Буду очень рад если поможете, а то уже 4 дня как застыл на этих вопросах, не могу продвинуться дальше
  12. В общем насколько я понимаю в алгоритме Виолы-Джонса эти признаки накладываются на сканирующее окно что бы определить есть ли определенные черты лица в данном окне. Но мне не понятно как это работает. Насколько я знаю признаки Хаара это набор прямоугольных картинок которые накладываются на исходное изображение, но как? Предполагаю что нужно конвертировать исходное изображение в матричный вид где в каждой ячейке матрицы будет значение каждого пикселя, и в такой же формат перевести картинки признаков. Если я прав, то подскажите пожалуйста что нужно прочитать что бы правильно сделать подобную конвертацию? Так же не понятно следующее: читал что после того как признак наложен на исходное изображение нужно отнять сумму пикселей белой стороны от черной стороны признака, но что это дает? Ну отнял, получилось допустим 500. И что дальше? Читал на эту тему, и насколько я понял по этому числу можно определить насколько светлым или темным является исследуемый признаком участок и далее исходить из понятий типа глаза темнее чем нос, и если например есть совпадение вроде такого: темная область, светлая область и снова темная, значит это глаза-нос-глаза. Но насколько темная? Как сканировать темнокожие лица в таком случае? А если встретится на картинке другой объект который тоже подходит под описание темный-светлый-темный, то как его НЕ спутать с глаз-нос-глаз? Очень надеюсь на вашу помощь