Hanjie's Blog

一只有理想的羊驼

在计算机视觉系统中, 物体定位跟踪是其中一种重要功能,普遍应用于增强现实,虚拟现实等应用中。用户给定一个或多个待跟踪的模版图,系统会通过摄像头获取当前的环境图像作为目标图,然后在目标图中找到出现的模版,并输出模版的空间位置。传统的定位方法中,会使用基于特征点的图像匹配算法,虽然这类算法无需先验知识,但是运算量大,定位精度,成功率低。而KLT光流法,ESM高效二阶最小化方法等连续跟踪方法,定位精度高,但是需要一个初始的搜索位置,如果初始值与真值相隔太远,则算法无法收敛,导致定位失败。

我们设计了一个Image Tracker平面物体定位系统,利结合了以上两种方法,使用基于特征点匹配的图像定位方法进行粗定位,然后执行ESM高效二阶最小化方法进行精细定位。在精细定位前,还会使用运动预测法,KLT光流法对物体位置进行预测,为ESM算法提供一个更加接近真值的初始搜索位置。而且在本系统中,会将计算量大的基于特征点匹配的图像定位方法异步运行,从而保证了系统的实时性。

增强现实(Augmented Reality,简称 AR),是一种实时定位并加上相应 图像的技术,是一种将真实世界信息和虚拟世界信息集成的新技术,这种技术的目标是在屏幕上把虚拟世界叠加现实世界中并进行互动。

AR 眼镜是以眼镜的形态作为一种个人移动计算平台。它拥有一个半透明的光学屏幕,它一方面像普通眼镜一样可以透过外部的环境光,使用户可以看到 眼前的真实世界,同时可以显示计算机生成的虚拟图像。人眼透过光学屏幕,能够看到虚拟影像和现实世界两者重叠。AR 眼镜还拥有一些传感器,如双目摄像头,TOF摄像头,激光雷达等用来实现眼镜的姿态估计,环境感知和物体跟踪等功能。

AR 系统中存在虚拟影像空间和现实世界空间两个空间。在实际使用中,我们希望虚拟物体与实际物体能够正确地叠加在一起。这需要我们对 AR 眼镜进行 虚实结合标定,获得传感器与光学屏幕,人眼之间的几何关系。

1
2
3
4
5
6
7
8
9
10
git clone --recursive --depth=1 --branch v1.18.0 https://github.com/microsoft/onnxruntime.git   
cd onnxruntime

conda create --name onnx python=3.10
conda activate onnx

# 如果系统中已经存在protobuf,nlohmann_json,会在编译时与onnxruntime内部使用的版本发生冲突,为了避免这种情况,在编译前先暂时删除掉
# brew remove protobuf nlohmann-json

./build.sh --config Release --use_coreml --build_shared_lib --parallel --compile_no_warning_as_error --skip_submodule_sync --cmake_extra_defines CMAKE_OSX_ARCHITECTURES=arm64

Please note that these instructions build the debug build, which may have performance tradeoffs. The “–config” parameter has four valid values: Debug, Release, RelWithDebInfo and MinSizeRel. Compared to “Release”, “RelWithDebInfo” not only has debug info, it also disables some inlines to make the binary easier to debug. Thus RelWithDebInfo is slower than Release.

Cross Android Compiling

1
./build.sh --parallel --config Release --android --build_shared_lib --android_sdk_path /Users/luohanjie/Library/Android/sdk --android_ndk_path /Users/luohanjie/Library/Android/sdk/ndk/27.0.12077973 --android_abi arm64-v8a --android_api 29 

Please use NDK 26 as it has a version of clang that handles the bfloat16 type.

0%