paddlepaddle / paddle-lite-demo Goto Github PK
View Code? Open in Web Editor NEWlib, demo, model, data
License: Apache License 2.0
lib, demo, model, data
License: Apache License 2.0
如何增加一个告知FPS的函数,实时显示再输出视频图像上用于查看帧率
pi@raspberrypi:~/Documents/Paddle-Lite-Demo-master/PaddleLite-armlinux-demo/image_classification_demo $ sudo ./run.sh
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/arm-linux-gnueabihf-gcc
-- Check for working C compiler: /usr/bin/arm-linux-gnueabihf-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++
-- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- TARGET ARCH ABI: armv7hf
-- PADDLE LITE DIR: ../Paddle-Lite
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Found OpenMP 4.5
-- OpenMP C flags: -fopenmp
-- OpenMP CXX flags: -fopenmp
-- OpenMP OpenMP_CXX_LIB_NAMES: gomp;pthread
-- OpenMP OpenMP_CXX_LIBRARIES: /usr/lib/gcc/arm-linux-gnueabihf/8/libgomp.so;/usr/lib/arm-linux-gnueabihf/libpthread.so
CMake Error at CMakeLists.txt:42 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
See also "/home/pi/Documents/Paddle-Lite-Demo-master/PaddleLite-armlinux-demo/image_classification_demo/build/CMakeFiles/CMakeOutput.log".
make: *** 没有指明目标并且找不到 makefile。 停止。
./run.sh:行19: ./image_classification_demo: 没有那个文件或目录
采用的是已经编译好的
opencv_contrib_python-4.1.0.25-cp37-cp37m-linux_armv7l.whl
opencv_python-4.4.0.46-cp37-cp37m-linux_armv7l.whl
+
python3.7.3,直接在树莓派上pip install 的
已经可以在python3.7中 Import cv2
是一定要在树莓派本机自行编译opencv+opencv_contrib么?并且在本机自行尝试cmake的时候提示
cmake fatal error: OpenCL_INCLUDE_DIR-NOTFOUND/CL/cl.h
请问如何解决???
....
[100%] Linking CXX executable image_classification_demo
/usr/bin/ld: //usr/lib/arm-linux-gnueabihf/libavcodec.so.58: undefined reference to `bcm_host_is_fkms_active'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/image_classification_demo.dir/build.make:136:image_classification_demo] 错误 1
make[1]: *** [CMakeFiles/Makefile2:68:CMakeFiles/image_classification_demo.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2
./run.sh:行19: ./image_classification_demo: 没有那个文件或目录
这个怎么办,树莓派环境
pi@raspberrypi:~/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo $ sh run.sh
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:16 (project):
The CMAKE_C_COMPILER:
aarch64-linux-gnu-gcc
is not a full path and was not found in the PATH.
Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
CMake Error at CMakeLists.txt:16 (project):
The CMAKE_CXX_COMPILER:
aarch64-linux-gnu-g++
is not a full path and was not found in the PATH.
Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "/home/pi/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/build/CMakeFiles/CMakeOutput.log".
See also "/home/pi/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/build/CMakeFiles/CMakeError.log".
make: *** 没有指明目标并且找不到 makefile。 停止。
run.sh: 19: run.sh: ./object_detection_demo: not found
pi@raspberrypi:~/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo $ sh run.sh
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:16 (project):
The CMAKE_C_COMPILER:
aarch64-linux-gnu-gcc
is not a full path and was not found in the PATH.
Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
CMake Error at CMakeLists.txt:16 (project):
The CMAKE_CXX_COMPILER:
aarch64-linux-gnu-g++
is not a full path and was not found in the PATH.
Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "/home/pi/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/build/CMakeFiles/CMakeOutput.log".
See also "/home/pi/cmake-3.10.3/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/build/CMakeFiles/CMakeError.log".
make: *** 没有指明目标并且找不到 makefile。 停止。
环境:树莓派4 (已源码编译Paddle-Lite)
运行:
$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo
$ ./run.sh armv7hf
有如下报错:
[ 50%] Building CXX object CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o
/home/pi/Documents/paddle/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc:15:10: fatal error: paddle_api.h: 没有那个文件或目录
#include "paddle_api.h"
^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/image_classification_demo.dir/build.make:63:CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:68:CMakeFiles/image_classification_demo.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2
./run.sh:行19: ./image_classification_demo: 没有那个文件或目录
在android stduio上试图运行ssd_detection_demo, 却出现了下面的错误
A problem occurred configuring project ':app'.
我在服务器上用ssdlite_mobilenetv3_large训练了自己的数据集,然后在服务器上的评估,预测都是正常的。之后利用opt(2.3.0)工具将所得__model__和__params__文件转换成nb文件(全程未报错)。
之后想利用官方的pplite_demo中的目标检测部分来测试。更改了object_detection_demo.cc中的INPUT_SHAPE = {1, 3, 320, 320}; INPUT_MEAN= {0.485, 0.456, 0.406};INPUT_STD={0.229, 0.224, 0.225}。
然后执行run.sh,就出现Segmentation fault (core dumped)这个错误。
我看了之前的issue,里面有用yolov3部署的时候出现同样问题,说是yolov3要有两个输入。是否mobiletv3+ssdlite也是同样的问题?
又或者是我还需要对object_detection_demo.cc中调用的api进行更改?
手机是华为荣耀6
配置信息
型号H60-L02
RAM 3GB
android版本4.4.2 API19
打开APP正常,点击 image classification按钮时产生奔溃现象
logcat信息:
08-28 21:28:01.205 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.getAutoSizeMaxTextSize, referenced from method android.support.v7.widget.AppCompatButton.getAutoSizeMaxTextSize
08-28 21:28:01.205 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14718: Landroid/widget/Button;.getAutoSizeMaxTextSize ()I
08-28 21:28:01.205 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.getAutoSizeMinTextSize, referenced from method android.support.v7.widget.AppCompatButton.getAutoSizeMinTextSize
08-28 21:28:01.205 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14719: Landroid/widget/Button;.getAutoSizeMinTextSize ()I
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.getAutoSizeStepGranularity, referenced from method android.support.v7.widget.AppCompatButton.getAutoSizeStepGranularity
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14720: Landroid/widget/Button;.getAutoSizeStepGranularity ()I
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.getAutoSizeTextAvailableSizes, referenced from method android.support.v7.widget.AppCompatButton.getAutoSizeTextAvailableSizes
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14721: Landroid/widget/Button;.getAutoSizeTextAvailableSizes ()[I
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.getAutoSizeTextType, referenced from method android.support.v7.widget.AppCompatButton.getAutoSizeTextType
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14722: Landroid/widget/Button;.getAutoSizeTextType ()I
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.setAutoSizeTextTypeUniformWithConfiguration, referenced from method android.support.v7.widget.AppCompatButton.setAutoSizeTextTypeUniformWithConfiguration
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14728: Landroid/widget/Button;.setAutoSizeTextTypeUniformWithConfiguration (IIII)V
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.setAutoSizeTextTypeUniformWithPresetSizes, referenced from method android.support.v7.widget.AppCompatButton.setAutoSizeTextTypeUniformWithPresetSizes
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14729: Landroid/widget/Button;.setAutoSizeTextTypeUniformWithPresetSizes ([II)V
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.Button.setAutoSizeTextTypeWithDefaults, referenced from method android.support.v7.widget.AppCompatButton.setAutoSizeTextTypeWithDefaults
08-28 21:28:01.210 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14730: Landroid/widget/Button;.setAutoSizeTextTypeWithDefaults (I)V
08-28 21:28:01.220 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.Color.getModel, referenced from method android.support.v4.graphics.ColorUtils.compositeColors
08-28 21:28:01.220 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1026: Landroid/graphics/Color;.getModel ()Landroid/graphics/ColorSpace$Model;
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.applyTheme, referenced from method android.support.v4.graphics.drawable.DrawableCompat.applyTheme
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1199: Landroid/graphics/drawable/Drawable;.applyTheme (Landroid/content/res/Resources$Theme;)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.canApplyTheme, referenced from method android.support.v4.graphics.drawable.DrawableCompat.canApplyTheme
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1200: Landroid/graphics/drawable/Drawable;.canApplyTheme ()Z
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.getColorFilter, referenced from method android.support.v4.graphics.drawable.DrawableCompat.getColorFilter
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1211: Landroid/graphics/drawable/Drawable;.getColorFilter ()Landroid/graphics/ColorFilter;
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.inflate, referenced from method android.support.v4.graphics.drawable.DrawableCompat.inflate
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1228: Landroid/graphics/drawable/Drawable;.inflate (Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setHotspot, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setHotspot
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1249: Landroid/graphics/drawable/Drawable;.setHotspot (FF)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setHotspotBounds, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setHotspotBounds
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1250: Landroid/graphics/drawable/Drawable;.setHotspotBounds (IIII)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setLayoutDirection, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setLayoutDirection
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1251: Landroid/graphics/drawable/Drawable;.setLayoutDirection (I)Z
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setTint, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setTint
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1254: Landroid/graphics/drawable/Drawable;.setTint (I)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setTintList, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setTintList
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1255: Landroid/graphics/drawable/Drawable;.setTintList (Landroid/content/res/ColorStateList;)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.graphics.drawable.Drawable.setTintMode, referenced from method android.support.v4.graphics.drawable.DrawableCompat.setTintMode
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 1256: Landroid/graphics/drawable/Drawable;.setTintMode (Landroid/graphics/PorterDuff$Mode;)V
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.CompoundButton.getButtonDrawable, referenced from method android.support.v4.widget.CompoundButtonCompat.getButtonDrawable
08-28 21:28:01.255 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14755: Landroid/widget/CompoundButton;.getButtonDrawable ()Landroid/graphics/drawable/Drawable;
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.CompoundButton.getButtonTintList, referenced from method android.support.v4.widget.CompoundButtonCompat.getButtonTintList
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14756: Landroid/widget/CompoundButton;.getButtonTintList ()Landroid/content/res/ColorStateList;
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.CompoundButton.getButtonTintMode, referenced from method android.support.v4.widget.CompoundButtonCompat.getButtonTintMode
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14757: Landroid/widget/CompoundButton;.getButtonTintMode ()Landroid/graphics/PorterDuff$Mode;
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.CompoundButton.setButtonTintList, referenced from method android.support.v4.widget.CompoundButtonCompat.setButtonTintList
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14773: Landroid/widget/CompoundButton;.setButtonTintList (Landroid/content/res/ColorStateList;)V
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo I/dalvikvm: Could not find method android.widget.CompoundButton.setButtonTintMode, referenced from method android.support.v4.widget.CompoundButtonCompat.setButtonTintMode
08-28 21:28:01.260 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: VFY: unable to resolve virtual method 14774: Landroid/widget/CompoundButton;.setButtonTintMode (Landroid/graphics/PorterDuff$Mode;)V
08-28 21:28:02.450 29289-29289/com.baidu.paddle.lite.demo E/dalvikvm: dlopen("/data/app-lib/com.baidu.paddle.lite.demo-1/libpaddle_lite_jni.so") failed: dlopen failed: could not load library "libhiai.so" needed by "libpaddle_lite_jni.so"; caused by cannot locate symbol "__register_atfork" referenced by "libhiai.so"...
08-28 21:28:02.450 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/baidu/paddle/lite/PaddlePredictor;
08-28 21:28:02.450 29289-29289/com.baidu.paddle.lite.demo W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4159bc50)
在该Demo中,我一直找不到传入Bitmap的入口,和获取预测结果的方法,请问如何得到这个。
使用PaddleX\deploy\lite\android\demo的例子
这个例子直接可以跑起来,但是使用飞桨GUI的视盘分割例子
模型选择 DeepLabV3+ MobileNetV2_x2.0 IMAGENET 512*512
1、生成模型后,导出到移动端
替换model.nb,model.yml,和图片到demo中执行,窗口闪一下就退出
2、如果使用opt模式导出model.nb,model.yml,窗口能打开,但是点击预测按钮退出
使用--print_model_ops=true检测
./opt --model_file=./inference_model/model --param_file=./inference_model/params --valid_targets=arm --optimize_out_type=naive_buffer --optimize_out=tttt --print_model_ops=true
OPs in the input model include:
OP_name Host X86 CUDA ARM OpenCL FPGA NPU XPU RKNPU APU Any Unk
arg_max Y
batch_norm Y Y
bilinear_interp Y Y Y
concat Y Y Y Y
conv2d Y Y Y Y Y
depthwise_conv2d Y Y Y Y Y
dropout Y Y Y Y Y
elementwise_add Y Y Y Y Y
feed Y Y Y
fetch Y Y
reduce_mean Y
relu Y Y Y Y
relu6 Y Y
scale Y Y Y Y Y
shape Y Y
sigmoid Y Y
slice Y Y Y
transpose2 Y Y Y Y
unsqueeze2 Y
Paddle-Lite supports this model!
模型转换,用cxx运行正常,安卓demo预测过程报错
paddle-lite版本 :HEAD detached at origin/release/v2.0.0-beta1
编译指令为:
./lite/tools/build.sh \
> --arm_os=android \
> --arm_abi=armv8 \
> --arm_lang=gcc \
> --android_stl=c++_static \
> tiny_publish
手机型号:小米8 MIUI10.3.6
现象:apk编译安装完成后,打开直接闪退,
报错的log显示如下,这可能是什么原因引起的?
2020-05-22 10:24:45.477 2706-2734/? E/cv::error(): OpenCV(4.2.0) Error: Assertion failed (!ssize.empty()) in resize, file /build/master_pack-android/opencv/modules/imgproc/src/resize.cpp, line 4045
2020-05-22 10:24:45.477 2706-2734/? A/libc: /usr/local/google/buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/abort_message.cpp:72: abort_message: assertion "terminating with uncaught exception of type cv::Exception: OpenCV(4.2.0) /build/master_pack-android/opencv/modules/imgproc/src/resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'resize'
" failed
2020-05-22 10:24:45.477 2706-2734/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 2734 (GLThread 175)
2020-05-22 10:24:45.543 2775-2775/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-05-22 10:24:45.543 2775-2775/? A/DEBUG: Build fingerprint: 'Android/rk3288/rk3288:7.1.2/NHG47K/lb09161645:userdebug/test-keys'
2020-05-22 10:24:45.543 2775-2775/? A/DEBUG: Revision: '0'
2020-05-22 10:24:45.543 2775-2775/? A/DEBUG: ABI: 'arm'
2020-05-22 10:24:45.543 2775-2775/? A/DEBUG: pid: 2706, tid: 2734, name: GLThread 175 >>> com.baidu.paddle.lite.demo.mask_detection <<<
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: Abort message: '/usr/local/google/buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/abort_message.cpp:72: abort_message: assertion "terminating with uncaught exception of type cv::Exception: OpenCV(4.2.0) /build/master_pack-android/opencv/modules/imgproc/src/resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'resize'
" failed'
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: r0 00000000 r1 00000aae r2 00000006 r3 00000008
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: r4 9007f978 r5 00000006 r6 9007f920 r7 0000010c
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: r8 90476d55 r9 ffffff29 sl 00000000 fp 9007e9ec
2020-05-22 10:24:45.544 2775-2775/? A/DEBUG: ip 00000000 sp 9007ce18 lr abb93857 pc abb960c0 cpsr 600f0010
2020-05-22 10:24:45.552 2775-2775/? A/DEBUG: backtrace:
2020-05-22 10:24:45.552 2775-2775/? A/DEBUG: #00 pc 0004a0c0 /system/lib/libc.so (tgkill+12)
2020-05-22 10:24:45.552 2775-2775/? A/DEBUG: #1 pc 00047853 /system/lib/libc.so (pthread_kill+34)
2020-05-22 10:24:45.552 2775-2775/? A/DEBUG: #2 pc 0001d8b5 /system/lib/libc.so (raise+10)
2020-05-22 10:24:45.552 2775-2775/? A/DEBUG: #3 pc 00019401 /system/lib/libc.so (__libc_android_abort+34)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #4 pc 00017048 /system/lib/libc.so (abort+4)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #5 pc 0001b8b3 /system/lib/libc.so (__libc_fatal+22)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #6 pc 000195fb /system/lib/libc.so (__assert2+18)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #7 pc 000645cb /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libc++_shared.so
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #8 pc 00064745 /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libc++_shared.so
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #9 pc 0006bdf9 /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libc++_shared.so
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #10 pc 0006b6a7 /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libc++_shared.so
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #11 pc 0006b66f /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libc++_shared.so (__cxa_throw+74)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #12 pc 000878a1 /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libNative.so (_ZN2cv5errorERKNS_9ExceptionE+264)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #13 pc 0008745f /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libNative.so (_ZN2cv5errorEiRKNSt6__ndk112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKcSA_i+86)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #14 pc 00141daf /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libNative.so (_ZN2cv6resizeERKNS_11_InputArrayERKNS_12_OutputArrayENS_5Size_IiEEddi+634)
2020-05-22 10:24:45.553 2775-2775/? A/DEBUG: #15 pc 0004b223 /data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libNative.so
运行lite安卓yolo detection demo
成功在手机端安装上app,但是闪退,以下是安卓studio build的信息,未报错。
感觉应该是这里的问题,但是才接触astudio,不知道什么意思
ABIs [arm64-v8a,armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'ARMEABI, ARMEABI_V7A' not targeted by this project.
ABIs [arm64-v8a,armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'ARMEABI, ARMEABI_V7A' not targeted by this project.
build output 如下:
Executing tasks: [:app:assembleDebug] in project /home/hjs/Paddle-Lite-Demo/PaddleLite-android-demo/yolo_detection_demo
Configure project :app
ABIs [arm64-v8a,armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'ARMEABI, ARMEABI_V7A' not targeted by this project.
ABIs [arm64-v8a,armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'ARMEABI, ARMEABI_V7A' not targeted by this project.
Task :app:downloadAndExtractArchives
Downloading and extracting archives including libs and models
Task :app:preBuild
Task :app:preDebugBuild UP-TO-DATE
Task :app:compileDebugAidl NO-SOURCE
Task :app:compileDebugRenderscript NO-SOURCE
Task :app:checkDebugManifest UP-TO-DATE
Task :app:generateDebugBuildConfig UP-TO-DATE
Task :app:prepareLintJar UP-TO-DATE
Task :app:generateDebugSources UP-TO-DATE
Task :app:javaPreCompileDebug UP-TO-DATE
Task :app:mainApkListPersistenceDebug UP-TO-DATE
Task :app:generateDebugResValues UP-TO-DATE
Task :app:generateDebugResources UP-TO-DATE
Task :app:mergeDebugResources UP-TO-DATE
Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
Task :app:processDebugManifest UP-TO-DATE
Task :app:processDebugResources UP-TO-DATE
Task :app:compileDebugJavaWithJavac UP-TO-DATE
Task :app:generateJsonModelDebug UP-TO-DATE
Task :app:externalNativeBuildDebug
Build Native arm64-v8a
ninja: no work to do.
Task :app:compileDebugSources
Task :app:mergeDebugShaders UP-TO-DATE
Task :app:compileDebugShaders UP-TO-DATE
Task :app:generateDebugAssets UP-TO-DATE
Task :app:mergeDebugAssets UP-TO-DATE
Task :app:checkDebugDuplicateClasses UP-TO-DATE
Task :app:mergeExtDexDebug UP-TO-DATE
Task :app:transformClassesWithDexBuilderForDebug UP-TO-DATE
Task :app:mergeDexDebug UP-TO-DATE
Task :app:validateSigningDebug UP-TO-DATE
Task :app:signingConfigWriterDebug UP-TO-DATE
Task :app:mergeDebugJniLibFolders UP-TO-DATE
Task :app:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
Task :app:transformNativeLibsWithStripDebugSymbolForDebug UP-TO-DATE
Task :app:processDebugJavaRes NO-SOURCE
Task :app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
Task :app:packageDebug UP-TO-DATE
Task :app:assembleDebug
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 0s
29 actionable tasks: 2 executed, 27 up-to-date
Build Analyzer results available
你好 我用paddlehub迁移模型mobilenet后再用opt工具转成naive_buffer格式,将转后的best_model.nb和对应的标签文件替换到paddlelite image_classification_demo apk,安装到手机预测结果错误。。 请大神指导一下
我的步骤:
1.cd PaddleHub/demo/image_classification
2../run_classifier.sh --module=mobilenet --checkpoint_dir=./checkpoint --use_gpu=0
3./run_predict.sh --module=mobilenet --checkpoint_dir=./checkpoint --use_gpu=0,预测自下载玫瑰图片为玫瑰,正常。
4../../../Paddle-Lite/opt --model_dir=./checkpoint/best_model
--valid_targets=arm
--optimize_out_type=naive_buffer
--optimize_out=/share/models/best_model
lable:~/.paddlehub/dataset/flower_photos/label_list.txt
5.替换paddlelite image_classification_demo的model.nb和标签文件,生成apk.
6.apk安装在arm8手机,预测自下载玫瑰图片为蒲公英,apk安装在arm7板,预测自下载玫瑰图片为郁金香。 异常。预测结果不对并且同一个apk同一图片在不同机型预测结果不一致!
前言
本仓库中的android demo已成功下载并且在手机上正常运行。
手机型号 - 小米MIX2S
安卓系统 - Lineage os Android 9
问题
目前接到需求,在android工程里集成口罩识别业务。将Paddle-Lite-Demo仓库中的android工程下载后,成功在android studio中编译运行在手机上。而后观察项目结构:
推测
观察原face_detection_demo工程的assets目录,如下图所示:
修改后的mask_detection_demo工程的assets目录,如下图所示:
可以看到区别,口罩的工程里,model文件夹里面有两个目录,Paddle-Lite的开发人员告诉我说,口罩识别模型由两个模型组成,即人脸识别+口罩分类,而仓库中的demo都只有一个独立模型,所以个人推测,直接进行修改,因为目录结构的问题会导致异常产生崩溃。
麻烦开发小哥看一下是不是我推测这样。
Android目标检测时图片大小只有300*300,返回的图片变形,变小,设置shape大小后程序崩溃或者框框不准确,怎么可以返回原图
什么时候出armlinux的python demo?
在Predictor.java中loadModel函数里的
MobileConfig config = new MobileConfig();
config.setModelDir(realPath);
后加上开启多线程预测
config.setThreads(4);
使用opt工具转换了人像分割模型,替换demo中的model.nb之后无法启动,会闪退,机型小米8和一加6都试过
错误信息为
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 23429 (Predictor Worke), pid 23399 (an_segmentation)
opt 版本2.3.0和2.6.0都试过
(模型地址:https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite_inference.zip)
CMake Error at E:\code\AI\Paddle-Lite-Demo\PaddleLite-android-demo\yolo_detection_demo\app\src\main\cpp\CMakeLists.txt:17 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.
demo文件如下(修改了resize和set_float_data):
from future import absolute_import
from future import division
from future import print_function
import argparse
from paddlelite.lite import *
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_dir", default="", type=str, help="Non-combined Model dir path")
def RunModel(args):
# 1. Set config information
config = MobileConfig()
config.set_model_from_file(args.model_dir)
# 2. Create paddle predictor
predictor = create_paddle_predictor(config)
# 3. Set input data
input_tensor = predictor.get_input(0)
input_tensor.resize([1, 3, 608, 608])
input_tensor.set_float_data([1.] * 3 * 608 * 608)
# 4. Run model
predictor.run()
# 5. Get output data
output_tensor = predictor.get_output(0)
print(output_tensor.shape())
print(output_tensor.float_data()[:10])
if name == 'main':
args = parser.parse_args()
RunModel(args)
调用命令:
python mobilenetv1_light_api.py --model_dir='/home/firefly/Paddle-Lite-Demo-master/PaddleLite-armlinux-demo/object_detection_demo/models/pedestrian_yolov3_darknet/pedestrian_yolov3_darknet_opt.nb'
结果:
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1064 Setup] ARM multiprocessors name:
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1065 Setup] ARM multiprocessors number: 6
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 0, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 1, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 2, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 3, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 4, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A72
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1067 Setup] ARM multiprocessors ID: 5, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A72
[I 7/24 16:32:42.922 ...fly/Paddle-Lite/lite/core/device_info.cc:1073 Setup] L1 DataCache size is:
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1075 Setup] 32 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1077 Setup] L2 Cache size is:
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1079 Setup] 512 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1081 Setup] L3 Cache size is:
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1083 Setup] 0 KB
[I 7/24 16:32:42.923 ...fly/Paddle-Lite/lite/core/device_info.cc:1085 Setup] Total memory: 3937208KB
[W 7/24 16:32:42.924 ...e-Lite/lite/model_parser/model_parser.cc:811 LoadModelNaiveFromFile] warning: the version of opt that transformed this model is not consistent with current Paddle-Lite version.
version of opt:v2.6.1
version of current Paddle-Lite:00bd7f44
Segmentation fault (core dumped)
是从inference_model和model_with_code中的文件转换得到的吗?
Paddle-Lite-Demo-master\PaddleLite-android-demo\mask_detection_demo在android5.1.1系统运行失败,并报错:
08-17 15:46:00.825 2166-2166/? E/art: dlopen("/data/app/com.baidu.paddle.lite.demo.mask_detection-1/lib/arm/libNative.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "__register_atfork" referenced by "libhiai_ir.so"...
08-17 15:46:00.826 2166-2166/? D/AndroidRuntime: Shutting down VM
08-17 15:46:00.827 2166-2166/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.baidu.paddle.lite.demo.mask_detection, PID: 2166
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__register_atfork" referenced by "libhiai_ir.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:988)
at com.baidu.paddle.lite.demo.mask_detection.Native.(Native.java:7)
at com.baidu.paddle.lite.demo.mask_detection.MainActivity.(MainActivity.java:40)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1606)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2242)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2407)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5280)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
软硬件环境:
rk3288,android5.1.1,ndk-r21.
但是,完全同样的demo运行在android8.1上没有上述错误。
有的目标检测场景对时间要求稍微宽松,此时FasterRCNN预测效果比YoloV3好很多,目前还没有FasterRCNN的demo示例,如果要部署需要怎么做?
在nano pc t4上用mobilenetv3_yolov3进行目标检测,在预测的时候会出现内存不足的情况,但是后台却显示内存没有用起来。
代码是参照给的安卓demo写的用于arm的代码。
所用的mobilenetv3_yolov3的模型在PC上可以进行检测,之后用opt转换成nb格式,使用自己所写代码就会遇到下面的问题:
[W 12/ 1 10:47:50.325 ...e-Lite/lite/model_parser/model_parser.cc:811 LoadModelNaiveFromFile] warning: the version of opt that transformed this model is not consistent with current Paddle-Lite version. version of opt:v2.6.1 version of current Paddle-Lite:0d53f5af [F 12/ 1 10:47:50.970 ...odel_parser/naive_buffer/naive_buffer.cc:30 Consume] Check failed: bytes <= free_size(): 18874368!<=16687912 No free memory of 18874368, should Require the memory first ./run.sh: line 16: 29699 Aborted (core dumped)
命令:./run.sh armv8
错误:
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- TARGET ARCH ABI: armv8
-- PADDLE LITE DIR: ../Paddle-Lite
-- Found OpenMP_C: -fopenmp (found version "4.0")
-- Found OpenMP_CXX: -fopenmp (found version "4.0")
-- Found OpenMP: TRUE (found version "4.0")
-- Found OpenMP 4.0
-- OpenMP C flags: -fopenmp
-- OpenMP CXX flags: -fopenmp
-- OpenMP OpenMP_CXX_LIB_NAMES: gomp;pthread
-- OpenMP OpenMP_CXX_LIBRARIES: /usr/lib/gcc-cross/aarch64-linux-gnu/5/libgomp.so;/usr/aarch64-linux-gnu/lib/libpthread.so
-- Found OpenCV: /usr/local (found version "3.4.1")
-- OpenCV library status:
-- version: 3.4.1
-- libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab;opencv_viz
-- include path: /usr/local/include;/usr/local/include/opencv
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/build
Scanning dependencies of target image_classification_demo
[ 50%] Building CXX object CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o
[100%] Linking CXX executable image_classification_demo
/usr/local/lib/libopencv_dnn.so.3.4.1: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
CMakeFiles/image_classification_demo.dir/build.make:101: recipe for target 'image_classification_demo' failed
make[2]: *** [image_classification_demo] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/image_classification_demo.dir/all' failed
make[1]: *** [CMakeFiles/image_classification_demo.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
./run.sh: line 19: ./image_classification_demo: No such file or directory
似乎是与OpenCV有关系,我分别试了OpenCV3.4.1和OpenCV4.3.0,但是都报一样的错误,大神请帮忙看看是什么原因,十分感激。
参考的是给出的https://github.com/PaddlePaddle/Paddle-Lite-Demo/tree/master/PaddleLite-android-demo/object_detection_demo这个目标检测的例子。按照C++ demo中说的方法对模型进行转换,口罩检测的两个模型转换均没有报错,如图
。用pyramidbox_lite_opt.nb模型替换原来目标检测demo中的模型,运行app发现输出结果
麻烦问一下为什么输出为空,是否和预处理有关,谢谢!
2021-03-01 20:53:28.357 17938-17938/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.baidu.paddle.lite.demo.yolo_detection, PID: 17938
java.lang.UnsatisfiedLinkError: dlopen failed: library "libhcl.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1657)
at com.baidu.paddle.lite.demo.yolo_detection.Native.(Native.java:7)
at com.baidu.paddle.lite.demo.yolo_detection.MainActivity.(MainActivity.java:42)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1180)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2907)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3103)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1804)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6913)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
Downloading ios-classification_demo/classification_demo/opencv2.framework/Versions/A/opencv2 (145 MB)
Error downloading object: ios-classification_demo/classification_demo/opencv2.framework/Versions/A/opencv2 (cce4b43): Smudge error: Error downloading ios-classification_demo/classification_demo/opencv2.framework/Versions/A/opencv2 (cce4b4336d6136ef4029e9ab9b627212a5520e6393429247fd7c10c491ac6ff7): batch response: This repository is over its data quota. Purchase more data packs to restore access.
Errors logged to /Users/xinnian/workspace/Paddle-Lite-Demo/.git/lfs/logs/20191006T205605.103015.log
Use git lfs logs last
to view the log.
error: 外部过滤器 'git-lfs filter-process' 失败
fatal: ios-classification_demo/classification_demo/opencv2.framework/Versions/A/opencv2:smudge 过滤器 lfs 失败
opt优化的模型是2.6.0的,但是PaddleLite-armlinux-demo是2.7版的,模型不能使用,想要PaddleLite-armlinux-demo的2.6.0版本
Solved
PaddleLite-armlinux-demo只有检测和分类,我想在rk3399上进行分割任务,不知道如何下手,我已经完成训练-模型导出-模型转换,现在卡在lite部署,希望能给一定的建议;我见贵方在Android端有分割示例,不知道arm_linux端有类似示例吗
root@huangarm:/home/huang/P-test/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo# ./run.sh
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- TARGET ARCH ABI: armv8
-- PADDLE LITE DIR: ../Paddle-Lite
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Found OpenMP 4.5
-- OpenMP C flags: -fopenmp
-- OpenMP CXX flags: -fopenmp
-- OpenMP OpenMP_CXX_LIB_NAMES: gomp;pthread
-- OpenMP OpenMP_CXX_LIBRARIES: /usr/lib/gcc/aarch64-linux-gnu/9/libgomp.so;/usr/lib/aarch64-linux-gnu/libpthread.so
-- Found OpenCV: /usr (found version "4.2.0")
-- OpenCV library status:
-- version: 4.2.0
-- libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio;opencv_aruco;opencv_bgsegm;opencv_bioinspired;opencv_ccalib;opencv_datasets;opencv_dnn_objdetect;opencv_dnn_superres;opencv_dpm;opencv_face;opencv_freetype;opencv_fuzzy;opencv_hdf;opencv_hfs;opencv_img_hash;opencv_line_descriptor;opencv_optflow;opencv_phase_unwrapping;opencv_plot;opencv_quality;opencv_reg;opencv_rgbd;opencv_saliency;opencv_shape;opencv_stereo;opencv_structured_light;opencv_superres;opencv_surface_matching;opencv_text;opencv_tracking;opencv_videostab;opencv_viz;opencv_ximgproc;opencv_xobjdetect;opencv_xphoto
-- include path: /usr/include/opencv4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/huang/P-test/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/build
Scanning dependencies of target object_detection_demo
[ 50%] Building CXX object CMakeFiles/object_detection_demo.dir/object_detection_demo.cc.o
[100%] Linking CXX executable object_detection_demo
[100%] Built target object_detection_demo
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1065 Setup] ARM multiprocessors name: HARDWARE : SUN50IW1P1
HARDWARE : SUN50IW1P1
HARDWARE : SUN50IW1P1
HARDWARE : SUN50IW1P1
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1066 Setup] ARM multiprocessors number: 4
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1068 Setup] ARM multiprocessors ID: 0, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A53
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1068 Setup] ARM multiprocessors ID: 1, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A53
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1068 Setup] ARM multiprocessors ID: 2, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A53
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1068 Setup] ARM multiprocessors ID: 3, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A53
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1074 Setup] L1 DataCache size is:
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1076 Setup] 32 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1076 Setup] 32 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1076 Setup] 32 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1076 Setup] 32 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1078 Setup] L2 Cache size is:
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1080 Setup] 512 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1080 Setup] 512 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1080 Setup] 512 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1080 Setup] 512 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1082 Setup] L3 Cache size is:
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1084 Setup] 0 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1084 Setup] 0 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1084 Setup] 0 KB
[I 2/19 16:29: 2.778 ...ang/Paddle-Lite/lite/core/device_info.cc:1084 Setup] 0 KB
[I 2/19 16:29: 2.779 ...ang/Paddle-Lite/lite/core/device_info.cc:1086 Setup] Total memory: 1008684KB
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1758) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Device '/dev/video0' is not a capture device.
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (888) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:0] global ../modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
root@huangarm:/home/huang/P-test/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo#
环境:Ubuntu16.04
命令:./run.sh armv8
错误信息如下:
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- TARGET ARCH ABI: armv8
-- PADDLE LITE DIR: ../Paddle-Lite
-- Found OpenMP_C: -fopenmp (found version "4.0")
-- Found OpenMP_CXX: -fopenmp (found version "4.0")
-- Found OpenMP: TRUE (found version "4.0")
-- Found OpenMP 4.0
-- OpenMP C flags: -fopenmp
-- OpenMP CXX flags: -fopenmp
-- OpenMP OpenMP_CXX_LIB_NAMES: gomp;pthread
-- OpenMP OpenMP_CXX_LIBRARIES: /usr/lib/gcc-cross/aarch64-linux-gnu/5/libgomp.so;/usr/aarch64-linux-gnu/lib/libpthread.so
-- Found OpenCV: /usr/local (found version "4.3.0")
-- OpenCV library status:
-- version: 4.3.0
-- libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio
-- include path: /usr/local/include/opencv4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/build
Scanning dependencies of target image_classification_demo
[ 50%] Building CXX object CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc: In function ‘void preprocess(cv::Mat&, const std::vector&, const std::vector&, int, int, float*)’:
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc:70:46: error: ‘CV_BGRA2RGB’ was not declared in this scope
cv::cvtColor(resize_image, resize_image, CV_BGRA2RGB);
^
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc: In function ‘cv::Mat process(cv::Mat&, std::vector<std::__cxx11::basic_string >&, std::shared_ptrpaddle::lite_api::PaddlePredictor&)’:
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc:211:41: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector::size_type {aka long unsigned int}’ [-Wformat=]
printf("results: %d\n", results.size());
^
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc: In function ‘int main(int, char**)’:
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc:259:13: error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
^
/home/user/Desktop/face/Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo/image_classification_demo.cc:260:13: error: ‘CV_CAP_PROP_FRAME_HEIGHT’ was not declared in this scope
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
^
CMakeFiles/image_classification_demo.dir/build.make:62: recipe for target 'CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o' failed
make[2]: *** [CMakeFiles/image_classification_demo.dir/image_classification_demo.cc.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/image_classification_demo.dir/all' failed
make[1]: *** [CMakeFiles/image_classification_demo.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
./run.sh: line 19: ./image_classification_demo: No such file or directory
请帮忙看看是什么原因导致的错误,谢谢。
如题,我在执行PaddleLite-armlinux-demo/object_detection_demo的./run.sh armv8这一步出现问题,如下:
/home/nvidia/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc: In function ‘std::vector<std::__cxx11::basic_string > load_labels(const string&)’:
/home/nvidia/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc:52:17: error: aggregate ‘std::ifstream file’ has incomplete type and cannot be defined
std::ifstream file;
^~~~
/home/nvidia/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc: In function ‘cv::Mat process(cv::Mat&, std::vector<std::__cxx11::basic_string >&, std::shared_ptrpaddle::lite_api::PaddlePredictor&)’:
/home/nvidia/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc:220:41: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector::size_type {aka long unsigned int}’ [-Wformat=]
printf("results: %d\n", results.size());
~~~~~~~~~~~~~~^
CMakeFiles/object_detection_demo.dir/build.make:62: recipe for target 'CMakeFiles/object_detection_demo.dir/object_detection_demo.cc.o' failed
make[2]: *** [CMakeFiles/object_detection_demo.dir/object_detection_demo.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/object_detection_demo.dir/all' failed
make[1]: *** [CMakeFiles/object_detection_demo.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
./run.sh: line 19: ./object_detection_demo: No such file or directory
When I run face_detection_demo, it appears as follows:
Transform output file E:\Androidproject\face\Paddle-Lite-Demo-master\PaddleLite-android-demo\face_detection_demo\app\libs\PaddlePredictor.jar does not exist.
Is this file automatically generated??
Hi,all
之前我把这个issue 调到了另外的地方,请帮忙定位下问题
设备信息: rk3399 AIO-33399J
OS: android 7
paddle lite 2.7.0
具体请查看下面的链接
PaddlePaddle/Paddle-Lite#5559 (comment)
目的:使用ocr_attention训练出来的预测模型在android手机上运行
操作步骤:
1,将预测模型放在/assets/image_classification/models/test_model_ocr 目录下
2,将测试图片放在/assets/image_classification/images/000.jpg
3,修改strings.xml
` xml
<string name="ICS_MODEL_PATH_DEFAULT">image_classification/labels/test_model_ocr</string>
<string name="ICS_LABEL_PATH_DEFAULT">image_classification/labels/synset_words.txt</string>
<string name="ICS_IMAGE_PATH_DEFAULT">image_classification/images/000.jpg</string>
<string name="ICS_INPUT_SHAPE_DEFAULT">1,3,100,380</string>
`
4,修改了ImgClassifyPredictor的输出读取。
然后debug的时候会报错,错误节点发生在Predictor.java的runModel()方法中
public boolean runModel() { ... paddlePredictors.get(whichDevice).run(); // 报错 ... }
如题
按键,实时视频,bounding box都能正确显示,但result的detection结果无法正常显示
From the demo Paddle-Lite-Demo , I found that mobilenet_v1_for_cpu and mobilenet_v1_for_npu have different size, so I suppose that they are not the same model.
However, from the description for model_optimize_tool, I did not get the related information, thus I am not sure whether the optimized model generated by mode_optimize_tool is for CPU or NPU.
More concretely, I am interested in the method to generate the model for running on NPU. Could you provide a solution to this need? Thanks in advance.
线程:1
性能模式:LITE_POWER_HIGH
时间:800ms -> 3400ms
荣耀20手机 型号YAL-AL00 android 10 Magic UI 3.0.0
android studio 3.4.1
04/06 12:30:46: Launching app
$ adb install-multiple -r -t /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_8.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_2.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_3.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_1.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/dep/dependencies.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_0.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_5.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_4.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/resources/instant-run/debug/resources-debug.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_9.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_6.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/split-apk/debug/slices/slice_7.apk /home/zhangshilin/Paddle-Lite-Demo-master/PaddleLite-android-demo/mask_detection_demo/app/build/intermediates/instant-run-apk/debug/app-debug.apk
Split APKs installed in 10 s 897 ms
$ adb shell am start -n "com.baidu.paddle.lite.demo.mask_detection/com.baidu.paddle.lite.demo.mask_detection.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Connected to process 16975 on device huawei-yal_al00-STSDU19529011335
Application terminated.
app run后
手机上mask detection小图标,点击打开,闪退(打不开)??怎么解?
按照“PaddleLite树莓派从0到1:安全帽检测小车部署(一)修改了run.sh最后一段的内容
#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/ssd_mobilenet_v1_pascalvoc_for_cpu/ssd_mobilenet_v1_voc.nb ../labels/helmet_label,想要在TX2上调用USB摄像头。
”运行object_detection_demo的run.sh报错如下:
[F 1/20 13:44:22.854 ...engyang/Paddle-Lite/lite/core/program.cc:174 RuntimeProgram] Check failed: block_idx >= 0 && block_idx < block_size: Invalid block index, expected [0,18446744073709551615] but got 0
[F 1/20 13:44:22.854 ...engyang/Paddle-Lite/lite/core/program.cc:174 RuntimeProgram] Check failed: block_idx >= 0 && block_idx < block_size: Invalid block index, expected [0,18446744073709551615] but got 0
[F 1/20 13:44:22.854 ...model_parser/flatbuffers/program_desc.cc:31 GetBlockpaddle::lite::fbs::BlockDescView] Check failed: (idx < static_cast<int32_t>(BlocksSize())): 0!<0 idx >= blocks.size()
[F 1/20 13:44:22.854 ...model_parser/flatbuffers/program_desc.cc:31 GetBlockpaddle::lite::fbs::BlockDescView] Check failed: (idx < static_cast<int32_t>(BlocksSize())): 0!<0 idx >= blocks.size()
./run.sh: line 19: 19493 Segmentation fault (core dumped) LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/ssd_mobilenet_v1_pascalvoc_for_cpu/ssd_mobilenet_v1_voc.nb ../labels/helmet_label
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.