2 Star 0 Fork 2

HiCAID/rpi-ascend-app

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

USB摄像头实时检测应用

样例介绍

功能:使用yolov3目标检测模型对USB摄像头中的即时视频进行目标检测。 样例输入:USB摄像头视频。 样例输出:树莓派os中界面展现检测结果。

样例下载

可以使用以下两种方式下载,请选择其中一种进行源码准备。

  • 命令行方式下载(下载时间较长,但步骤简单)。

    # 开发环境,非root用户命令行中执行以下命令下载源码仓。    
    cd ${HOME}     
    git clone https://gitee.com/HiCAID/rpi-ascend-app.git
    
  • 压缩包方式下载(下载时间较短,但步骤稍微复杂)。

    # 1. samples仓右上角选择 【克隆/下载】 下拉框并选择 【下载ZIP】。     
    # 2. 将ZIP包上传到开发环境中的普通用户家目录中,【例如:${HOME}/rpi-ascend-app-master.zip】。      
    # 3. 开发环境中,执行以下命令,解压zip包。      
    cd ${HOME}     
    unzip rpi-ascend-app-master.zip
    

样例的代码目录说明如下:

├── scripts       // 用于存放运行样例的脚本                                              
├── src          // 用于存放源码

准备环境

  1. 安装CANN软件。

    单击Link,获取最新版本的CANN软件安装指南。

    **注意:**此处还可以在页面左上侧切换版本,查看对应版本的安装指南。

  2. 设置环境变量。

    注:“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。

    # 设置CANN依赖的基础环境变量
    . ${HOME}/Ascend/ascend-toolkit/set_env.sh
    
    #如果用户环境存在多个python3版本,则指定使用python3.11.2版本
    export PATH=/usr/local/python3.11.2/bin:$PATH
    #设置python3.11.2库文件路径
    export LD_LIBRARY_PATH=/usr/local/python3.11.2/lib:$LD_LIBRARY_PATH
    
    # 配置程序编译依赖的头文件与库文件路径
    export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest 
    export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
    
  3. 安装OpenCV。

    执行以下命令安装opencv

    sudo apt-get install libopencv-dev
    

样例运行

  1. 获取是基于Caffe的yolov3目标检测模型,并转换为昇腾AI处理器能识别的模型(*.om)。

    **注:**此处以昇腾310 AI处理器为例,针对其它昇腾AI处理器的模型转换,需修改atc命令中的--soc_version参数值。

    # 为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。      
    cd $HOME/rpi-ascend-app/asset/model  
    wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/aipp_nv12.cfg    
    wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.caffemodel
    wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.prototxt
    atc --model=yolov3.prototxt --weight=yolov3.caffemodel --framework=0 --output=object_detection --soc_version=Ascend310B1 --insert_op_conf=aipp_nv12.cfg     
    

    atc命令中各参数的解释如下,详细约束说明请参见《ATC模型转换指南》

    说明: 如果无法确定当前设备的soc_version,则在安装驱动包的服务器执行npu-smi info命令进行查询,在查询到的“Name“前增加Ascend信息,例如“Name“对应取值为_xxxyy_,实际配置的soc_version值为Ascend_xxxyy_。

为了方便样例运行提供了对应的数据在$HOME/rpi-ascend-app/asset/model下,样例中的路径也是此模型,不想体验模型转换的也可以直接运行。

  1. 获取测试视频数据。

    为了方便样例的运行,本样例提供了下载好的视频文件在下方路径下,不想体验的可跳过次步骤直接运行

    $HOME/rpi-ascend-app/asset/video
    

    注:若需更换测试图片,则需自行准备测试图片,并将测试图片放到data目录下。

  2. 运行样例。

    执行以下脚本运行样例:

    cd $HOME/rpi-ascend-app/app/Yolov3_Usb_Camera/python/scripts
    bash sample_run.sh
    

    执行成功后,在屏幕上会实时展示检测结果

    输入图片说明

相关操作

  • 获取学习文档,请单击AscendCL C&C++AscendCL Python,查看最新版本的AscendCL推理应用开发指南。

  • 查模型的输入输出

    可使用第三方工具Netron打开网络模型,查看模型输入或输出的数据类型、Shape,便于在分析应用开发场景时使用。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/HiCAID/rpi-ascend-app.git
git@gitee.com:HiCAID/rpi-ascend-app.git
HiCAID
rpi-ascend-app
rpi-ascend-app
master

搜索帮助