使用Windows 10。 我正在尝试运行自己的对象检测器模型,该模型使用dlib库进行了训练,并且可以完美地在python上运行。
`detector = dlib.simple_object_detector("mobiledatasetv2/detector.dat")
image = cv2.imread("test.jpg")
image = imutils.resize(image, width=500)
rects = detector(image)
for k, d in enumerate(rects):
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(k,
d.left(), d.top(), d.right(), d.bottom()))`
之后,我尝试在android上运行,因此我从此处“ https://github.com/tzutalin/dlib-android-app”下载示例项目,以检查如何在android上运行dlib。似乎android使用共享对象“ .so”文件,因此我尝试构建模型的共享对象文件。我从这里“ https://github.com/tzutalin/dlib-android”获得帮助来构建它。
我使用此命令来构建“ .so”文件
python build.py --jobs 1 --android_project
C:\Users\dell\AppData\Local\Android\Sdk\ndk\sources\third_party\vulkan\src\build-android\jniLibs --debug
解决NDK,工具链和路径问题后
我坚持这个问题
C:/ Users / dell / AppData / Local / Android / Sdk / ndk-bundle / build //../ sources / cxx-stl / llvm-libc ++ / Android.mk:c++_static: LOCAL_MODULE_FILENAME不得包含文件扩展名 C:/ Users / dell / AppData / Local / Android / Sdk / ndk-bundle / build //../ build / core / build-static-library.mk:26: *** Android NDK:正在中止。停止。构建错误
我调试并发现LOCAL_MODULE_FILENAME文件为:libc ++ _ static.a,该文件存在于
AppData \ Local \ Android \ Sdk \ ndk-bundle \ sources \ cxx-stl \ llvm-libc ++ \ libs \ armeabi v7a此文件夹。
如果我删除libc ++ _ static.a文件扩展名,并且仅使其类似于libc ++ _ static,那么它将给出此错误
C:/ Users / dell / AppData / Local / Android / Sdk / ndk-bundle / build //../ build / core / prebuilt-library.mk:25: *** Android NDK:断言失败:LOCAL_PREBUILT_SUFFIX未定义。停止。生成错误
如果我明确设定 LOCAL_PREBUILT_SUFFIX:= .a 然后错误来了
错误:C:/ Users / dell / AppData / Local / Android / Sdk / ndk-bundle / build //../ sources / cxx-stl / llvm-libc ++ / Android.mk:c++_static: LOCAL_SRC_FILES应该指向以“ .a”结尾的Android NDK文件: 不支持以下文件:libs / armeabi-v7a / libc ++ _ static C:/ Users / dell / AppData / Local / Android / Sdk / ndk-bundle / build //../ build / core / prebuilt-library.mk:41: *** Android NDK:正在中止。停止。构建错误