标签: arcore

没有平面的ARCore对象跟踪

我是这个ARCore的新手,我一直在关注SDK中提供的HelloAR Java Android Studio项目.

Everthing工作正常并且非常酷,但是,即使没有检测到飞机,我也想在触摸屏幕时放置/放下物体.让我解释一下......

据我所知,它将检测水平平面,并且只在那些水平平面上,我可以放置3D物体进行运动跟踪.

有没有办法(可能使用PointCloud信息)能够在场景中放置一个对象,即使没有检测到水平面?有点像这些例子吗? https://experiments.withgoogle.com/ar/flight-paths https://experiments.withgoogle.com/ar/arcore-drawing

我知道他们正在使用Unity和openFrameworks,但这可以用Java完成吗?

另外,我看过 如何将物体放在空中? 以及 如何在ARCore中检查与对象的光线交集

但我不认为我理解Ancor的概念(我设法将对象放在场景中,但它要么立即消失,要么只是一个普通的OpenGL对象,不了解现实世界.

我想要了解的是: - 如何以及是否可以创建自定义/用户定义的平面,即ARCore不会自动检测到的平面? - 我怎样才能创建一个Ancor(我想这个样本在PlaneAttachment类中完成),它没有链接到任何连接到某个PointCloud点的平面OR? - 如何绘制对象并将其放置在先前创建的Ancor中?

我认为这个问题太多了,但是查看API文档根本没有帮助我

谢谢!

编辑:

这是我添加到HelloArActivity.java的代码(除了//*****之后和之前的行之外,Everything与原始文件相同...

@Override
public void onDrawFrame(GL10 gl) {
...
        MotionEvent tap = mQueuedSingleTaps.poll();

        // I added this to use screenPointToWorldRay function in the second link I posted... I am probably using this wrong
        float[] worldXY = new float[6];
...
        if (tap != null && frame.getTrackingState() == TrackingState.TRACKING) {

            // ***** I added this to use …
Run Code Online (Sandbox Code Playgroud)

java arcore

7
推荐指数
1
解决办法
2206
查看次数

ARCore + Unity3D:如何将场景定向到北方?

我一直在玩Unity中的ARCore.

我想要实现的是根据输入的GPS坐标和当前的GPS位置产生对象(例如,对象应该以x.xxxxx,y.yyyyy坐标产生,转换为Unity中的世界坐标).

我发现为了正确放置物体,我需要以某种方式保持北方向.

如何用ARCore实现这一目标?在ARKit中,创建场景,使其中一个轴向北(根据场景创建时刻的罗盘读数).这与ARCore不同.

是否有针对ARCore的解决方法?

gps android unity-game-engine arcore

7
推荐指数
1
解决办法
1369
查看次数

有没有办法用ARCore相机设置自动对焦?

我正在开发一个应用程序,我需要使用ARCore放置对象.然后我需要将帧保存为图像.那么有没有办法用ARCore相机设置自动对焦?

augmented-reality autofocus android-camera arcore

7
推荐指数
1
解决办法
3608
查看次数

Augmented Faces API - 如何生成面部地标?

我是一名IT学生,想了解(了解)有关ARCore中Augmented Faces API的更多信息.

我刚刚看到了ARCore V1.7版本和新的Augmented Faces API.我获得了这个API的巨大潜力.但我没有看到关于这个问题的任何问题或文章.所以我在质疑自己,这里有一些关于这个版本的假设/问题.

假设

  • ARCore团队正在使用(喜欢Instagram和Snapchat)机器学习,全面生成地标.可能是HOG人脸检测 ..

问题

  • ARCore如何在智能手机上的用户脸上产生468分?即使在源代码中,也无法找到任何响应.
  • 他们如何从简单的智能手机相机获得深度?
  • 如何拒绝人脸检测/跟踪,自定义对象或身体的其他部位如手?

因此,如果您对此主题有任何建议或评论,请分享!

java face-detection augmented-reality kotlin arcore

7
推荐指数
1
解决办法
1211
查看次数

Android Gradle插件(警告)API'variant.getMergeResources()'已过时,并已替换为'variant.getMergeResourcesProvider()'

我试图构建和运行此存储库增强图像 ,但遇到了此错误。

引起原因:java.lang.RuntimeException:创建sfa时出错。

向下钻取此警告警告!API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'

从构建日志分析中获得的更多信息,我看到以下错误错误:无法导入“ sampledata / airplane / Airplane.obj”

我试图找到这个地方

variant.getMergeResources()
Run Code Online (Sandbox Code Playgroud)

用于替换它,但是没有运气。

请协助,也许我需要更新插件。我怀疑应该采取哪些步骤才能解决。

plugins android variant gradle arcore

7
推荐指数
1
解决办法
1943
查看次数

如何解决 android\build.gradle 文件的 project.evaluationDependsOn(':app') 行中的错误

这是我的 android\build.gradle 文件

 buildscript {
    ext.kotlin_version = '1.2.41'
    repositories {
        google()
        mavenCentral()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.ar.sceneform:plugin:1.13.0'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

这是我的 app\build.gradle 文件

package example.android.app

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = …
Run Code Online (Sandbox Code Playgroud)

android-studio build.gradle flutter arcore

7
推荐指数
0
解决办法
2035
查看次数

统一与 Sceneform 功能/用例中的 ARCore?

我的理解是有几种环境支持 ARCore,Unity 和 Sceneform SDK 是其中一些选项。

我想知道除了一个在 Java 中,另一个在 C# 中之外,它们之间有什么不同?除了语言偏好之外,为什么有人会选择一种而不是另一种?

谢谢

unity-game-engine augmented-reality android-augmented-reality arcore sceneform

6
推荐指数
1
解决办法
2748
查看次数

如何将 AR 中的 3D 模型放置在屏幕中心,并将其相对于轴上的相机角度移动近或远?

下面是我尝试过的代码。它给了我想要的结果,但它没有像 camToPlan 或 MagicPlan 应用程序那样进行优化。在 CamToPlan 应用程序中,中心节点根据相机移动非常有效地移动。如果相机倾斜,锚节点距离会发生变化。如何在下面的代码中实现相同的效果?

Camera camera = arSceneView.getScene().getCamera();
            Vector3 distance = Vector3.subtract(camera.getWorldPosition(), vector3CirclePosition);
            float abs = Math.abs(distance.y);
            float newAngleInRadian = (float) (Math.toRadians(90f) - (float) camera.getLocalRotation().x);
            float zCoordinate = (float) (abs / Math.cos(newAngleInRadian));
            Log.i("1", "zCoordinate::" + zCoordinate + "::" + abs);
            Vector3 cameraPos = arFragment.getArSceneView().getScene().getCamera().getWorldPosition();
            Vector3 cameraForward = arFragment.getArSceneView().getScene().getCamera().getForward();
            Vector3 position = Vector3.add(cameraPos, cameraForward.scaled(zCoordinate));
            redNodeCenter.setWorldPosition(position);
Run Code Online (Sandbox Code Playgroud)

android arcore sceneform

6
推荐指数
1
解决办法
2092
查看次数

ARKit 或 ARCore 使用什么算法来检测平面?

我正在致力于创建简单的 AR 应用程序,并且使用了 ARCore 和 ARKit。我对现实世界中虚拟物体定位的准确性印象深刻,因为我玩的手机没有深度传感器,也没有多个摄像头,所以我想知道:这些 SDK 实现平面检测的算法是什么?

augmented-reality arkit arcore

6
推荐指数
1
解决办法
2556
查看次数

如何提高 ARCore 中的预览相机质量

我在我的 Android 项目中使用 ARCore。它有一项活动 MainActivity.java 和一项 CustomArFragment.java。

问题是相机质量非常低。如何提高相机预览分辨率。将来,我需要使用相机识别文本,并且质量如此低,很难识别。我无法在谷歌上找到解决方案。尝试了很多事情但没有成功。请任何人告诉如何提高相机质量。我在 AR 和 android 领域是全新的。

谢谢 :)

MainActivity.java:

public class MainActivity extends AppCompatActivity {

private CustomArFragment arFragment;
private TextView textView;
private AugmentedImageDatabase aid;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

arFragment = (CustomArFragment) getSupportFragmentManager().findFragmentById(R.id.arFragment);
textView = findViewById(R.id.textView);

arFragment.getArSceneView().getScene().addOnUpdateListener(this::onUpdate);

findViewById(R.id.registeredBtn).setOnClickListener(v -> {
    if(ActivityCompat.checkSelfPermission(this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
        return;
    }
    registeredImage();
});


}


private void registeredImage() {
File file = new File(getExternalFilesDir(null) + "/db.imgdb");
try {

    FileOutputStream outputStream = new FileOutputStream(file);
    Bitmap …
Run Code Online (Sandbox Code Playgroud)

java android augmented-reality android-camera arcore

6
推荐指数
1
解决办法
1380
查看次数