Nano Hash - криптовалюты, майнинг, программирование

Пример проекта Vuforia iOS не может отображать модель AR после замены целевого изображения .dat и .xml

У меня есть официальный пример проекта Vuforia и чей-то проект Vuforia Swift. Мне нужно выполнить много настроек, чтобы оба проекта завершили компиляцию. (что-то вроде vuforiaLicenseKey и vuforiaDataSetFile) После этого я обнаружил, что модель AR не отображается на целевом демонстрационном изображении после замены демонстрационной базы данных моей базой данных.

Я обновил исходный код, чтобы сделать это. Когда я отлаживаю, я вижу, что моя цель изображения была обнаружена. И, как официальный пример, так и чужой пример начинают отрисовывать OpenGL 3D модель или отрисовывать узел набора сцен. Проблема в том, что я не вижу их на экране. Но если я снова настрою пример базы данных, я увижу, что представление AR работает.

Приведенный ниже код представляет собой пример проекта Swift из yshrkt/VuforiaSampleSwift. Это работает, и условие trackerableName == "coaster" верно. Это означает, что приложение обнаружило изображение подставки.

 func vuforiaManager(_ manager: VuforiaManager!, didUpdateWith state: VuforiaState!) {
    for index in 0 ..< state.numberOfTrackableResults {
        let result = state.trackableResult(at: index)
        let trackerableName = result?.trackable.name
        //print("\(trackerableName)")

        if trackerableName == "coaster" {
            boxMaterial.diffuse.contents = UIColor.yellow

            if lastSceneName != "coaster" {
                manager.eaglView.setNeedsChangeSceneWithUserInfo(["scene" : "coaster"])
                lastSceneName = "coaster "
            }
        } else {
            print("\(trackerableName?.description)")
            boxMaterial.diffuse.contents = UIColor.blue

            if lastSceneName != "chips" {
                manager.eaglView.setNeedsChangeSceneWithUserInfo(["scene" : "chips"])
                lastSceneName = "chips"
            }
        }

    }
}

И это вызвало нижеприведенное веселье. Все выглядит правильно.

(void)setNeedsChangeSceneWithUserInfo: (NSDictionary*)userInfo {
    SCNScene* scene = [self.sceneSource sceneForEAGLView:self userInfo:userInfo];
    if (scene == nil) {
        return;
    }

    SCNCamera* camera = [SCNCamera camera];
    _cameraNode = [SCNNode node];
    _cameraNode.camera = camera;
    _cameraNode.camera.projectionTransform = _projectionTransform;
   [scene.rootNode addChildNode:_cameraNode];

    _renderer.scene = scene;
   _renderer.pointOfView = _cameraNode;
}

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

20.01.2018

Ответы:


1

Это можно объяснить двумя возможными вещами: если у вас неправильный размер цели или что-то не так в сцене с горками. Сначала вы должны попробовать использовать сцену «горки» с целью «фишки». Если вы можете видеть сцену, проблема, вероятно, в вашем целевом размере. Если это не сработает, попробуйте использовать новую цель со сценой «фишки». Это должно помочь вам изолировать проблему и, возможно, привести здесь более подробную информацию.

21.01.2018
  • Да, ты прав! Мы думали, что размер — это разрешение в пикселях. На самом деле, это метр!!!!!!!!!! МЕТР!!!!! МЕТР!!!!! Vuforia должна выделять световую единицу в метре, а не просто начинать ее мелким шрифтом. 22.01.2018
  • То, что вы говорите, неверно, но я согласен, что это немного сбивает с толку. Вы можете бегло просмотреть здесь: library.vuforia.com/articles/Solution/Targets. html в разделе Что представляет целевой размер? раздел. Но в любом случае, я рад, что вы смогли решить проблему. 22.01.2018
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..