Skip to content

Commit

Permalink
完善文档有关安装的内容
Browse files Browse the repository at this point in the history
  • Loading branch information
zhaoxi-scut committed Mar 19, 2024
1 parent 4687a61 commit 847773e
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 41 deletions.
2 changes: 2 additions & 0 deletions cmake/FindOrt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ find_library(
NO_DEFAULT_PATH
)

mark_as_advanced(Ort_INCLUDE_DIRS Ort_LIBS)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(
Expand Down
34 changes: 18 additions & 16 deletions cmake/RMVLGenPara.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,16 @@ function(_type_correct value_type out_value_type)
string(REGEX REPLACE "Point" "cv::Point" retval "${retval}")
string(REGEX REPLACE "Vec" "cv::Vec" retval "${retval}")
string(REGEX REPLACE "Mat" "cv::Mat" retval "${retval}")
string(REGEX REPLACE "51f" "<float, 5, 1>" retval "${retval}")
string(REGEX REPLACE "51d" "<double, 5, 1>" retval "${retval}")
string(REGEX REPLACE "15f" "<float, 1, 5>" retval "${retval}")
string(REGEX REPLACE "15d" "<double, 1, 5>" retval "${retval}")
string(REGEX REPLACE "61f" "<float, 6, 1>" retval "${retval}")
string(REGEX REPLACE "61d" "<double, 6, 1>" retval "${retval}")
string(REGEX REPLACE "16f" "<float, 1, 6>" retval "${retval}")
string(REGEX REPLACE "16d" "<double, 1, 6>" retval "${retval}")
string(REGEX REPLACE "([^\\.])51f" "\\1<float, 5, 1>" retval "${retval}")
string(REGEX REPLACE "([^\\.])51d" "\\1<double, 5, 1>" retval "${retval}")
string(REGEX REPLACE "([^\\.])15f" "\\1<float, 1, 5>" retval "${retval}")
string(REGEX REPLACE "([^\\.])15d" "\\1<double, 1, 5>" retval "${retval}")
string(REGEX REPLACE "([^\\.])61f" "\\1<float, 6, 1>" retval "${retval}")
string(REGEX REPLACE "([^\\.])61d" "\\1<double, 6, 1>" retval "${retval}")
string(REGEX REPLACE "([^\\.])16f" "\\1<float, 1, 6>" retval "${retval}")
string(REGEX REPLACE "([^\\.])16d" "\\1<double, 1, 6>" retval "${retval}")
set(${out_value_type} ${retval} PARENT_SCOPE)
endfunction(_type_correct value_type out_value_type)
endfunction()

# ----------------------------------------------------------------------------
# 将指定的 *.para 参数规范文件解析成 C++ 风格的内容
Expand All @@ -84,10 +84,10 @@ endfunction(_type_correct value_type out_value_type)
# )
# 示例:
# _para_parser(
# armor.para # 名为 armor.para 的参数规范文件
# armor_header_details # 对应 .h/.hpp 文件的细节
# armor_source_details # 对应 .cpp 文件的实现细节
# status # 返回值: 解析是否成功,成功返回 TRUE,失败返回 FALSE
# core.para # 名为 core.para 的参数规范文件
# core_header_details # 对应 .h/.hpp 文件的细节
# core_source_details # 对应 .cpp 文件的实现细节
# status # 返回值: 解析是否成功,成功返回 TRUE,失败返回 FALSE
# )
# ----------------------------------------------------------------------------
function(_para_parser file_name header_details source_details status)
Expand Down Expand Up @@ -115,7 +115,7 @@ function(_para_parser file_name header_details source_details status)
if(l GREATER 1)
# get value type symbol
list(GET line_str 0 type_sym)
if(type_sym MATCHES "#")
if(type_sym MATCHES "^#")
continue()
endif()
# correct the value type
Expand All @@ -136,8 +136,10 @@ function(_para_parser file_name header_details source_details status)
string(SUBSTRING "${default_cmt}" ${cmt_idx} -1 comment_sym)
endif()
# correct default_sym
_type_correct("${default_sym}" default_sym)
string(REGEX REPLACE "," ", " default_sym "${default_sym}")
if(NOT type_sym STREQUAL "std::string")
_type_correct("${default_sym}" default_sym)
string(REGEX REPLACE "," ", " default_sym "${default_sym}")
endif()
else()
continue()
endif()
Expand Down
10 changes: 6 additions & 4 deletions doc/tutorials/introduction/linux/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,17 @@ sudo apt install libopencv-dev
**安装 OpenCV 依赖**

```shell
sudo apt install build-essential
sudo apt install libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev pkg-config
# 建议安装的依赖
sudo apt install build-essential libgtk2.0-dev pkg-config
# 可选安装的依赖
sudo apt install libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
```

**下载并解压缩 OpenCV**

```shell
wget https://codeload.github.com/opencv/opencv/tar.gz/refs/tags/4.7.0
tar -xvf 4.7.0
tar -xf 4.7.0
```

**构建 OpenCV**
Expand Down Expand Up @@ -136,7 +138,7 @@ onnxruntime 库是目前数字识别所依赖的第三方库,如果有需要
```
- 解压
```shell
tar -xvf onnxruntime-linux-x64-1.12.0.tgz
tar -xf onnxruntime-linux-x64-1.12.0.tgz
```
- 安装(复制头文件与库文件)
```shell
Expand Down
84 changes: 63 additions & 21 deletions doc/tutorials/introduction/other/arm.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,66 @@

* ![img](https://img.shields.io/badge/OpenCV_for_ARM-4.2.0+-red) [点击此处下载最新发行版](https://github.com/opencv/opencv/releases/latest)

* ARM 的交叉编译工具:gcc,libstdc++.so 等内容,根据目标平台的不同,您需要选择 `gneabi``gneabihf` 工具。`gneabi` 安装命令如下
```shell
sudo apt install gcc-arm-linux-gneabi
```
`gneabihf` 安装命令如下
```shell
sudo apt install gcc-arm-linux-gneabihf
```

### 构建 RMVL

1. 在 RMVL 目录下创建 `build` 文件夹,运行以下命令
```shell
cd build
cmake [<some optional parameters>] -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ..
```

2. 运行构建 `make`
```shell
make -j4
```
* ARM 的交叉编译工具:gcc,libstdc++.so 等内容,根据目标平台的不同,您需要选择 `gneabi``gneabihf` 工具。

`gneabi` 安装命令如下

```bash
sudo apt install gcc-arm-linux-gneabi
```

`gneabihf` 安装命令如下

```bash
sudo apt install gcc-arm-linux-gneabihf
```

### 使用提供的工具链构建 RMVL

在 RMVL 目录下创建 `build` 文件夹,运行以下命令

```bash
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ..
```

上文代码中的 CMake 配置也可使用 `cmake-gui` 或者 `ccmake` 工具,例如使用 `ccmake` 则需要改写为

```bash
ccmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ..
```

运行构建 `make`

```bash
make -j4
```

### 自定义工具链构建 RMVL

如果交叉编译器是通过编译内核源码获取到的,在使用这类指定的交叉编译器进行编译时,自定义工具链是个有效的方法。

工具链文件的一般写法如下

```cmake
# toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_C_COMPILER "/path/to/xxx-gcc")
set(CMAKE_CXX_COMPILER "/path/to/xxx-g++")
set(CMAKE_FIND_ROOT_PATH "/path/to/")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
```

然后进入 RMVL 项目根目录,在终端中输入

```bash
cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake ..
```

同样,CMake 配置也可使用 `cmake-gui` 或者 `ccmake` 工具。

0 comments on commit 847773e

Please sign in to comment.