Эх сурвалжийг харах

Merge pull request #474 from syyxsxx/fix_rasp

Fix rasp
Jason 4 жил өмнө
parent
commit
cb182aece0

+ 0 - 1
deploy/openvino/CMakeLists.txt

@@ -96,7 +96,6 @@ if(WIN32)
     set(DEPS ${DEPS} ${OPENVINO_DIR}/lib/intel64/Release/inference_engine_legacy${CMAKE_STATIC_LIBRARY_SUFFIX})
 else()
     if (${ARCH} STREQUAL "armv7")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a")
         if(WITH_STATIC_LIB)
             set(DEPS ${OPENVINO_DIR}/lib/armv7l/libinference_engine${CMAKE_STATIC_LIBRARY_SUFFIX})
             set(DEPS ${DEPS} ${OPENVINO_DIR}/lib/armv7l/libinference_engine_legacy${CMAKE_STATIC_LIBRARY_SUFFIX})

+ 18 - 7
deploy/openvino/scripts/build.sh

@@ -20,10 +20,21 @@ sh $(pwd)/scripts/install_third-party.sh
 rm -rf build
 mkdir -p build
 cd build
-cmake .. \
-    -DOPENCV_DIR=${OPENCV_DIR} \
-    -DGFLAGS_DIR=${GFLAGS_DIR} \
-    -DOPENVINO_DIR=${OPENVINO_DIR} \
-    -DNGRAPH_LIB=${NGRAPH_LIB} \
-    -DARCH=${ARCH}
-make
+if [ ${ARCH} = "x86" ];then
+  cmake .. \
+      -DOPENCV_DIR=${OPENCV_DIR} \
+      -DGFLAGS_DIR=${GFLAGS_DIR} \
+      -DOPENVINO_DIR=${OPENVINO_DIR} \
+      -DNGRAPH_LIB=${NGRAPH_LIB} \
+      -DARCH=${ARCH}
+  make
+else
+  cmake ..\
+      -DOPENCV_DIR=${OPENCV_DIR} \
+      -DGFLAGS_DIR=${GFLAGS_DIR} \
+      -DOPENVINO_DIR=${OPENVINO_DIR} \
+      -DNGRAPH_LIB=${NGRAPH_LIB} \
+      -DARCH=${ARCH} \
+      -DCMAKE_CXX_FLAGS="-march=armv7-a"
+  make
+fi

+ 1 - 1
deploy/openvino/src/paddlex.cpp

@@ -44,7 +44,7 @@ void Model::create_predictor(const std::string& model_dir,
     }
     if (device == "MYRIAD") {
       std::map<std::string, std::string> networkConfig;
-      networkConfig["VPU_HW_STAGES_OPTIMIZATION"] = "ON";
+      networkConfig["VPU_HW_STAGES_OPTIMIZATION"] = "NO";
       executable_network_ = ie.LoadNetwork(network_, device, networkConfig);
     } else {
       executable_network_ = ie.LoadNetwork(network_, device);

+ 11 - 31
deploy/raspberry/CMakeLists.txt

@@ -17,16 +17,6 @@ link_directories("${CMAKE_CURRENT_BINARY_DIR}")
 include_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/src/ext-yaml-cpp/include")
 link_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/lib")
 
-macro(safe_set_static_flag)
-    foreach(flag_var
-        CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
-        CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
-      if(${flag_var} MATCHES "/MD")
-        string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
-      endif(${flag_var} MATCHES "/MD")
-    endforeach(flag_var)
-endmacro()
-
 if (NOT DEFINED LITE_DIR OR ${LITE_DIR} STREQUAL "")
 	message(FATAL_ERROR "please set LITE_DIR with -LITE_DIR=/path/influence_engine")
 endif()
@@ -40,7 +30,7 @@ if (NOT DEFINED GFLAGS_DIR OR ${GFLAGS_DIR} STREQUAL "")
 endif()
 
 if (NOT DEFINED ARCH OR ${ARCH} STREQUAL "")
-    message(FATAL_ERROR "please set ARCH with ARCH=armv7 or ARCH=armv8")
+    message(FATAL_ERROR "please set ARCH with ARCH=armv7-a or ARCH=armv8-a")
 endif()
 
 if (NOT DEFINED LITE OR ${LITE} STREQUAL "")
@@ -60,40 +50,30 @@ include_directories("${GFLAGS_DIR}/include")
 find_package(OpenCV REQUIRED PATHS ${OPENCV_DIR}/share/OpenCV NO_DEFAULT_PATH)
 include_directories(${OpenCV_INCLUDE_DIRS})
 
-if (${ARCH} STREQUAL "armv7")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 -g -o2 -fopenmp -std=c++11")
+if (${ARCH} STREQUAL "armv7-a")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -mfloat-abi=hard -mfpu=neon-vfpv4 -g -o2 -fopenmp -std=c++11")
     set(CMAKE_STATIC_LIBRARY_PREFIX "")
-elseif(${ARC}H STREQUAL "armv8")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -march=armb8-a -g -o2 -fopenmp -std=c++11")
+elseif(${ARC}H STREQUAL "armv8-a")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -g -o2 -fopenmp -std=c++11")
     set(CMAKE_STATIC_LIBRARY_PREFIX "")
 else()
     message(FATAL_ERROR "Unknown arch abi ${ARCH}, only support armv8 and armv7")
 endif()
 
 
-if(WITH_STATIC_LIB)
-    if(${LITE} STREQUAL "full")
-	set(DEPS ${LITE_DIR}/lib/libpaddle_full_api_shared${CMAKE_STATIC_LIBRARY_SUFFIX})
-    elseif(${LITE} STREQUAL "light")
-	set(DEPS ${LITE_DIR}/lib/libpaddle_light_api_shared${CMAKE_STATIC_LIBRARY_SUFFIX})
-    else()
-	message(FATAL_ERROR "Unkown LITE release ${LITE}, only support light and full")
-    endif()
+if(${LITE} STREQUAL "full")
+    set(DEPS ${LITE_DIR}/lib/libpaddle_full_api_shared${CMAKE_SHARED_LIBRARY_SUFFIX})
+elseif(${LITE} STREQUAL "light")
+    set(DEPS ${LITE_DIR}/lib/libpaddle_light_api_shared${CMAKE_SHARED_LIBRARY_SUFFIX})
 else()
-    if(${LITE} STREQUAL "full")
-	set(DEPS ${LITE_DIR}/lib/libpaddle_full_api_shared${CMAKE_SHARED_LIBRARY_SUFFIX})
-    elseif(${LITE} STREQUAL "light")
-        set(DEPS ${LITE_DIR}/lib/libpaddle_light_api_shared${CMAKE_SHARED_LIBRARY_SUFFIX})
-    else()
-	message(FATAL_ERROR "Unkown LITE release ${LITE}, only support light and full")
-    endif()
+    message(FATAL_ERROR "Unkown LITE release ${LITE}, only support light and full")
 endif()
 
 set(DEPS ${DEPS} gflags yaml-cpp)
 set(EXTERNAL_LIB "-ldl -lrt -lgomp -lz -lm -lpthread")
 set(DEPS ${DEPS} ${EXTERNAL_LIB})
-
 set(DEPS ${DEPS} ${OpenCV_LIBS})
+
 add_executable(classifier demo/classifier.cpp src/transforms.cpp src/paddlex.cpp)
 ADD_DEPENDENCIES(classifier ext-yaml-cpp)
 target_link_libraries(classifier ${DEPS})

+ 4 - 3
deploy/raspberry/scripts/build.sh

@@ -7,8 +7,8 @@ GFLAGS_DIR=$(pwd)/deps/gflags
 # opencv预编译库的路径, 如果使用自带预编译版本可不修改
 OPENCV_DIR=$(pwd)/deps/opencv
 
-# arm处理器架构,默认为armv7若CPU为armv8请修改为ARCH=armv8
-ARCH=armv7
+# arm处理器架构,默认为armv7下ARCH=armv7-a,若CPU为armv8请修改为ARCH=armv8-a
+ARCH=armv7-a
 
 # 采用lite的版本,可选为full 与 light,默认为full版
 LITE=full
@@ -24,5 +24,6 @@ cmake .. \
     -DGFLAGS_DIR=${GFLAGS_DIR} \
     -DLITE_DIR=${LITE_DIR} \
     -DARCH=${ARCH} \
-    -DLITE=${LITE}
+    -DLITE=${LITE} \
+    -DCMAKE_CXX_FLAGS="-march=${ARCH}"
 make -j4

+ 2 - 2
docs/deploy/raspberry/Raspberry.md

@@ -76,8 +76,8 @@ LITE_DIR=/path/to/Paddle-Lite/inference/lib
 GFLAGS_DIR=$(pwd)/deps/gflags
 # opencv预编译库的路径,若自行编译请指定到对应路径
 OPENCV_DIR=$(pwd)/deps/opencv/
-# arm处理器架构 armv7或者armv8
-ARCH=armv7
+# arm处理器架构 armv7-a或者armv8-a
+ARCH=armv7-a
 # Lite预测库版本 light或者full
 LITE=full
 ```