#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 /… который выглядел как синтаксический анализатор. Я не хочу тратить ваше время впустую, так как я не уверен, что нахожусь здесь на нужной странице.