From 272d5a2107be27ea327b7a8e848825305acaaf4e Mon Sep 17 00:00:00 2001 From: zhongluping <278527840@qq.com> Date: Tue, 19 Jul 2022 10:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=81=9C=E8=BD=A6=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E4=BE=9D=E8=B5=96=E4=B8=89=E6=96=B9=E5=BA=93=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhongluping <278527840@qq.com> --- .../README.md | 295 +++++++++++++++--- 1 file changed, 254 insertions(+), 41 deletions(-) diff --git a/docs/GreyWolf_ImageRecognition_LocalAI/README.md b/docs/GreyWolf_ImageRecognition_LocalAI/README.md index 9218331..15f0e5c 100644 --- a/docs/GreyWolf_ImageRecognition_LocalAI/README.md +++ b/docs/GreyWolf_ImageRecognition_LocalAI/README.md @@ -8,84 +8,286 @@ ## 快速上手 -### 硬件准备 +### 准备硬件环境 润和HiSpark Taurus AI Camera(Hi3516d)开发板套件; 准备8GSD卡插入Hi3516DV300插槽; -### 下载源码 +### 准备开发环境 -#### 准备 - -获取源码及Ubuntu编译环境准备 +#### 安装必备软件 开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。 -[操作文档](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md#/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-overview.md) +##### 安装和配置Python + +- 打开Linux终端。 + +- 输入如下命令,查看python版本号,需要使用python3.7以上版本,否则参考 [系统基础环境搭建](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/搭建系统基础环境.md)。 + + ``` + python3 --version + ``` + +- 安装并升级Python包管理工具(pip3)。 + + ``` + sudo apt-get install python3-setuptools python3-pip -y + sudo pip3 install --upgrade pip + ``` + +##### 安装hb + +- 运行如下命令安装hb + + ``` + python3 -m pip install --user ohos-build + ``` + +- 将hb加入系统环境变量 + + ``` + vim ~/.bashrc + ``` -Hi3516开发环境准备 + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 -在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3516平台特有的开发环境。 + ``` + export PATH=~/.local/bin:$PATH + ``` -[操作文档](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516.md) + 执行如下命令更新环境变量。 -#### 下载OpenHarmony源码 + ``` + source ~/.bashrc + ``` -##### 码云工具下载 +- 测试hb安装结果 执行"hb -h",有打印以下信息即表示安装成功. + + ``` + usage: hb + OHOS build system + positional arguments: + {build,set,env,clean} + build Build source code + set OHOS build settings + env Show OHOS build env + clean Clean output + optional arguments: + -h, --help show this help message and exit + ``` + +- hb版本替换 + + 本样例hb版本为0.2.0,如果当前hb版本不是0.2.0,需要替换hb版本,步骤如下(该步骤必须在openharmony的工程根目录下执行): + + ``` + pip3 uninstall ohos_build + pip3 install build/lite + ``` + +#### 安装交叉编译环境 + +在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3518平台特有的开发环境。 + +##### 将Linux shell改为bash + +查看shell是否为bash,在终端运行如下命令 ``` -cd ~/ -curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo -sudo cp repo /usr/local/bin/repo -chmod a+x /usr/local/bin/repo -pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests +ls -l /bin/sh +``` + +如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改: + +``` +sudo rm -rf /bin/sh +sudo ln -s /bin/bash /bin/sh +``` + +##### 安装编译依赖基础软件 + +``` +sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev +``` + +##### 安装文件打包工具 + +- 安装dosfstools + + ``` + sudo apt-get install dosfstools + ``` + +- 安装mtools + + ``` + sudo apt-get install mtools + ``` + +- 安装mtd-utils + + ``` + sudo apt-get install mtd-utils + ``` + +##### 安装hc-gen + +- 下载hc-gen工具:[下载地址](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fcompiler%2Fhc-gen%2F0.65%2Flinux%2Fhc-gen-0.65-linux.tar)。 + +- 解压hc-gen安装包到Linux服务器~/hc-gen路径下。 + + ``` + tar -xvf hc-gen-0.65-linux.tar -C ~/ + ``` + +- 设置环境变量。 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + ``` + export PATH=~/hc-gen:$PATH + ``` + +- 使环境变量生效。 + + ``` + source ~/.bashrc + ``` + +##### 安装LLVM + +**openharmony3.1及之后的版本不需要手动安装LLVM,可跳过此步骤。** + +- 下载指定的LLVM工具:[下载地址](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fcompiler%2Fclang%2F9.0.0-36191%2Flinux%2Fllvm-linux-9.0.0-36191.tar)。 + +- 解压LLVM安装包至~/llvm路径下。 + + ``` + tar -zxvf llvm.tar -C ~/ + ``` + +- 设置环境变量。 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + ``` + export PATH=~/llvm/bin:$PATH + ``` + +- 使环境变量生效。 + + ``` + source ~/.bashrc + ``` + +#### 准备工程 + +本用例采用repo的方式从码云官仓下载系统系统源码以及开发板适配代码,使用git从gitee的sig仓库拉取设备应用代码。 + +##### 配置git + +- 提前注册准备码云gitee账号。 +- git工具下载安装 + +``` +sudo apt install git +sudo apt install git-lfs ``` -##### 代码下载 +- 生成/添加SSH密钥:生成密钥 使用gitee账号绑定的邮箱生成密钥对 -[本地车牌识别demo](../../dev/team_x/GreyWolf_ImageRecognition_LocalAI)适配OpenHarmony 3.1 Release版本。 +``` +ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com" +``` -新建文件夹 +- 查看生成的密钥 ``` -mkdir ~/OpenHarmony -cd ~/OpenHarmony +cat ~/.ssh/id_ed25519.pub ``` -OpenHarmony-3.1-Release下载: +- 复制生成后的 ssh key,返回gitee个人主页,通过主页 「个人设置」->「安全设置」->「SSH 公钥」 ,将生成的“SSH密钥”添加到仓库中。 +- 配置git用户信息 ``` -repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verify +git config --global user.name "yourname" +git config --global user.email "your-email-address" +git config --global credential.helper store +``` + +##### 准备repo + +``` +curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo ## 如果没有权限可以,可先将repo下载到当前目录在拷贝 +chmod a+x /usr/local/bin/repo +pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests +``` + +##### 准备系统源码 + +本样例是基于OpenHarmony3.2 Beta版本开发的,所以需要下载OpenHarmony3.2 Beta版。 + +``` +mkdir ~/OpenHarmony3.2 +cd ~/OpenHarmony3.2 +repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Beta1 --no-repo-verify repo sync -c repo forall -c 'git lfs pull' ``` -下载GreyWolf_ImageRecognition_LocalAI代码 +##### 准备开发板适配代码 具体仓库地址: [knowledge_demo_travel](https://gitee.com/openharmony-sig/knowledge_demo_travel) -通过git命令下载(方便后期代码上传管理,建议先将仓库fork到自己账号目录,然后再下载): +通过git命令下载并拷贝道:OpenHarmony对应目录 ``` -git clone git@gitee.com:xxxxxxx/knowledge_demo_travel.git -其中xxxxxxx为fork后相关账号名字。 +cd ~ +git clone https://gitee.com/openharmony-sig/knowledge_demo_travel.git --depth=1 +cp -raf knowledge_demo_travel/dev/teamx/GreyWolf_ImageRecognition_LocalAI/ImageRecognition_LocalAI ~/OpenHarmony3.2/applications/sample/camera/ ``` -#### 代码拷贝 +##### 准备三方库zxing-cpp代码 -二维码扫码识别、语音播放参考文档[openharmony hi3518开发板实现扫码](https://gitee.com/link?target=https%3A%2F%2Fost.51cto.com%2Fposts%2F8653) [openharmony hi3518开发板实现扫码后添加声音](https://gitee.com/link?target=https%3A%2F%2Fost.51cto.com%2Fposts%2F8662)下载 zxing三方库放到third_party下。 +``` +cd ~ +git clone git@gitee.com:zhong-luping/ohos_zxing_cpp.git +cp -raf ohos_zxing_cpp/zxing-cpp ~/OpenHarmony3.1/third_party/ +``` -##### 拷贝 +##### 准备EasyPR代码 -进入knowledge_demo_travel/dev/team_x/GreyWolf_ImageRecognition_LocalAI下 +``` +cd ~ +git clone git@gitee.com:zhong-luping/ohos_easy-pr.git +cp -raf ohos_easy-pr/EasyPR ~/OpenHarmony3.2/third_party/ +``` -拷贝本地AI实现代码 +##### 准备OpenCV代码 ``` -cp -rf GreyWolf_ImageRecognition_LocalAI/ImageRecognition_LocalAI ~/OpenHarmony/applications/sample/camera/ +cd ~ +git clone git@gitee.com:zhong-luping/ohos_opencv.git +cp -raf ohos_opencv/opencv ~/OpenHarmony3.2/third_party/ ``` +特别申明: + +- 以上三方库都未上主仓,暂时用私仓替代,上主仓后必需用主仓地址。 +- 以上三方库都是已适配了OHOS编译系统,对三方库移植有兴趣的可以参考[L1上运行开源项目车牌识别及移植opencv库](../GreyWolf_EasyPR/readme.md) + +##### 配置应用自启动 + 更改启动文件init_liteos_a_3518ev300.cfg将应用设置为开机自启。 修改文件vendor/hisilicon/hispark_taurus/init_configs/init_liteos_a_3516dv300.cfg @@ -119,6 +321,8 @@ cp -rf GreyWolf_ImageRecognition_LocalAI/ImageRecognition_LocalAI ~/OpenHarmony/ } ``` +##### 应用添加到编译系统 + 更改applications.json与config.json将应用加入到编译体系中来 build/lite/components/applications.json文件添加应用: @@ -160,25 +364,24 @@ vendor/hisilicon/hispark_taurus/config.json文件applications子系统中添加 }, ``` -opencv移植 -[L1上运行开源项目车牌识别及移植opencv库](../GreyWolf_EasyPR/readme.md) ### 编译 -hb set 选择ipcamera_hispark_taurus + 进入到OpenHarmony系统源码根目录下,输入hb set并选择ipcamera_hispark_taurus ``` -hb build -f -- 开始全量编译。(hb build 为增量编译) +hb set // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后 回车。 +hb build -f // 开始全量编译。(hb build 为增量编译) ``` ### 固件烧录 -##### 烧录工具选择 +#### 烧录工具选择 固件编译完后,是需要烧录到单板的。这里我们用的是HiTool工具烧录的。(HiTool工具下载地址:[HiHope官网](https://gitee.com/link?target=http%3A%2F%2Fwww.hihope.org%2Fdownload%2Fdownload.aspx%3Fmtt%3D33)) -##### 烧录步骤 +#### 烧录步骤 打开HiTool工具,如下图: @@ -197,7 +400,7 @@ save reset ``` -## 启动应用 +### 启动应用 #### 准备 @@ -217,4 +420,14 @@ reset ## 样例联动 -本样例可与其他智能停车场样例组合产品联动效果,参考 [智能停车场](../GreyWolf_SmartParking/README.md) \ No newline at end of file +本样例可与其他智能停车场样例组合产品联动效果,参考 [智能停车场](../GreyWolf_SmartParking/README.md) + +## 参考资料 + +- [系统基础环境搭建](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/搭建系统基础环境.md) +- [智慧出行场景样例](https://gitee.com/openharmony-sig/knowledge_demo_travel) +- [智能停车场介绍](../GreyWolf_SmartParking/README.md) +- [L1上运行开源项目车牌识别及移植opencv库](../GreyWolf_EasyPR/readme.md) + +- [知识体系](https://gitee.com/openharmony-sig/knowledge) + -- Gitee