обнаружение объектов во flash с использованием функции, подобной haar

#actionscript-3 #recursion #opencv #binary-tree #e4x

#actionscript-3 #рекурсия #opencv #двоичное дерево #e4x

Вопрос:

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

К счастью, я нашел проект с именем Marilena, он успешно перенес обучающую часть OpenCV, использующую haar, в actionscript, и в этой статье оптимизация распознавания лиц на основе flash оптимизировала Marilena, он превратил XML-файл в сам класс actionscript, чтобы ускорить вычисления. Однако, поскольку данные Haar жестко закодированы в классе, теперь он не сможет использовать для отслеживания чего-либо еще, кроме лиц. Я пытаюсь прочитать исходный код для получения подробной информации и обработать свой собственный XML-файл в файл класса actionscript по-своему, но, наконец, нахожу что-то другое.

XML-файл для распознавания лиц выглядит так :

введите описание изображения здесь

Каждое дерево имеет только один узел «корневой узел», но в моем XML-файле некоторые деревья имеют два узла, а «left_val» выше иногда меняется на «left_node», я не знаю, как обрабатывать эти узлы. Я думаю, мне следует перейти к исходным файлам OpenCV C для получения подробной информации, чтобы узнать, как правильно обрабатывать файл функций xml, но с чего начать, какие советы?

Ответ №1:

Я бы посоветовал прочитать о E4X в Actionscript и бинарных деревьях для целей алгоритма.

Итак, если вы можете различать left_val и left_nodes, которые выглядят как ветви (узлы в ваших случаях) и листья, когда вы анализируете свои XML-данные, вы на правильном пути. Как вы можете догадаться, когда лист является узлом, он будет разветвляться на большее количество листьев, так что в основном все является листьями, но может иметь особое значение, например, удерживать / предоставлять доступ к большему количеству листьев. Я уверен, что статья будет иметь больше смысла, но я просто хотел ее обобщить.

Возможно, вы также захотите взглянуть на рекурсивные функции, потому что вам может понадобиться функция самоциклирования для выполнения по листьям. Вот вики -страница для этого: http://en.wikipedia.org/wiki/Recursion_ (computer_science) Числа Фибоначчи — хороший пример этого, и вы также можете найти двоичный поиск в той же статье, которая, надеюсь, будет всем, что вам нужно.

Получайте удовольствие.

Комментарии:

1. Спасибо, @kubarium, но дело не в этом. Я знаю принцип двоичного дерева и рекурсивной функции, и я могу успешно обработать свой XML-файл, что мне действительно нужно знать, так это то, как детектор типа haar использует XML-файл для обнаружения объекта, я хочу знать, какие файлы в opencv я должен просмотреть.

2. Прошу прощения. Когда вы сказали, что не знаете, как обрабатывать эти узлы, я подумал, что это скорее проблема программирования и алгоритма. Итак, перефразируя ваш комментарий, было бы правильно сказать: вы не уверены, какой узел означает то, что в этой структуре (пример xml) вы предоставили? В этом случае у меня нет информации по этой теме, но, просмотрев файлы проекта Marilena, я обнаружил: libspark.org/browser/as3/Marilena/trunk/src/jp/maaash /… который выглядел как синтаксический анализатор. Я не хочу тратить ваше время впустую, так как я не уверен, что нахожусь здесь на нужной странице.