210 Star 1.1K Fork 966

Ascend/samples

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

中文|English

sample

介绍

Ascend sample,请根据自己的需要进入对应文件夹获取应用,或者点击下面的说明链接选择需要的应用。

贡献要求

开发者提交的样例包括源码、readme、参考模型license文件、编译部署脚本(可选)、测试用例和readme,并遵循以下标准

  • 源码

样例实现的C++代码或者python代码

  • readme

readme用于指导用户理解和部署样例,要包含如下内容:

简介:

  1. 案例的原理,包括网络结构和应用框架图;

  2. 样例代码架构和实现流程说明;

关键要求:

  1. 模型的出处、对数据的要求、免责声明等;

  2. 模型转换方法、步骤和关键参数说明;

  3. 模型转换得到的离线模型对输入数据的要求;

  4. 案例编译运行方法;

  5. 应用部署环境配置,包括环境变量设置,依赖的第三方软件包和库,以及安装方法;

  6. 应用推理精度和性能要求:尽量达到原始模型水平。

建议:

  1. 该案例可优化点(可选)。
  • license文件

sample仓使用Apache License 2.0,如项目中未引用其他开源项目则不需要单独提供license,如引用了非Apache License 2.0的项目,请在代码中提供对应license。

  • 代码编译脚本

如果工程需要命令行编译,则需要提供编译脚本,并且运行正确

  • 样例部署和运行脚本

如果工程需要命令行部署,则需要提供部署脚本,并且运行正确

  • 测试用例和测试用例readme

提供测试用例和readme

编程规范

  • 规范标准
  1. C++代码遵循google编程规范:Google C++ Coding Guidelines;单元测测试遵循规范: Googletest Primer

  2. Python代码遵循PEP8规范:Python PEP 8 Coding Style;单元测试遵循规范: pytest

  • 规范备注
  1. 优先使用string类型,避免使用char*;
  2. 禁止使用printf,一律使用cout;
  3. 内存管理尽量使用智能指针;
  4. 不准在函数里调用exit;
  5. 禁止使用IDE等工具自动生成代码;
  6. 控制第三方库依赖,如果引入第三方依赖,则需要提供第三方依赖安装和使用指导书;
  7. 一律使用英文注释,注释率30%--40%,鼓励自注释;
  8. 函数头必须有注释,说明函数作用,入参、出参;
  9. 统一错误码,通过错误码可以确认那个分支返回错误;
  10. 禁止出现打印一堆无影响的错误级别的日志;

Sample介绍

common:sample运行依赖的第三方依赖及环境安装指导文档文件夹
classification:基于googlenet的分类应用,输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,对预处理后的图像中的物体进行分类,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,对预处理后的图像中的物体进行分类,最后通过opencv进行相应后处理。
classification_dynamicbatch :基于googlenet的分类应用,模型推理时调用AscendCL提供的接口设置模型推理时需使用的Batch数。输入为bin文件,输出为打印结果。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用ifstream读取已对图像做好预处理的bin文件,在模型推理时,需调用AscendCL提供的接口设置模型推理时需使用的Batch数。对预处理后的文件进行推理,最后将推理结果打印屏幕上。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用ifstream读取已对图像做好预处理的bin文件,在模型推理时,需调用AscendCL提供的接口设置模型推理时需使用的Batch数。对预处理后的文件进行推理,最后将推理结果打印屏幕上。
classification_multibatch :基于googlenet的分类应用。等输入数据满足多Batch的要求,申请Device上的内存存放多Batch的数据作为模型推理的输入。输入为bin文件,输出为打印结果。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用ifstream读取已对图像做好预处理的bin文件,等输入数据满足多Batch的要求,申请Device上的内存存放多Batch的数据,对预处理后的文件进行推理,最后将推理结果打印屏幕上。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用ifstream读取已对图像做好预处理的bin文件,等输入数据满足多Batch的要求,申请Device上的内存存放多Batch的数据,对预处理后的文件进行推理,最后将推理结果打印屏幕上。
classification_video:基于googlenet的分类应用,输入为视频,输出为视频。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧中的物体进行分类,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧中的物体进行分类,最后通过opencv进行相应后处理。
colorization:基于alexnet的黑白图像上色应用,输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,对预处理后的图像进行色彩通道预测,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,对预处理后的图像进行色彩通道预测,最后通过opencv进行相应后处理。
colorization_video:基于alexnet的黑白图像上色应用,输入为视频,输出为视频。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧进行色彩通道预测,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧进行色彩通道预测,最后通过opencv进行相应后处理。
objectdetection:基于yolov3的目标检测应用,输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用dvpp对图像进行预处理,对预处理后的图像中的物体进行目标检测,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用dvpp对图像进行预处理,对预处理后的图像中的物体进行目标检测,最后通过opencv进行相应后处理。
objectdetection_dynamic_aipp:基于yolov3的目标检测应用,输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,在模型推理时,需调用AscendCL提供的接口设置模型推理时需使用的AIPP配置,再对预处理后的图像中的物体进行目标检测,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对图像进行预处理,在模型推理时,需调用AscendCL提供的接口设置模型推理时需使用的AIPP配置,再对预处理后的图像中的物体进行目标检测,最后通过opencv进行相应后处理。
objectdetection_cvwithaipp:基于vgg_ssd的目标检测应用,使用opencv为输入图像数据进行预处理并在模型转换时开启AIPP功能。输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv为输入图像数据进行预处理,并在模型转换时开启AIPP功能,实现目标检测的功能。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv为输入图像数据进行预处理,并在模型转换时开启AIPP功能,实现目标检测的功能。
objectdetection_cvwithoutaipp:基于vgg_ssd的目标检测应用,使用opencv为输入图像数据进行预处理并在模型转换时关闭AIPP功能。输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv为输入图像数据进行预处理,并在模型转换时关闭AIPP功能,实现目标检测的功能。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv为输入图像数据进行预处理,并在模型转换时关闭AIPP功能,实现目标检测的功能。
objectdetection_dvppwithaipp:基于vgg_ssd的目标检测应用,使用dvpp对输入图像数据进行预处理并在模型转换时开启AIPP功能。输入为图片,输出为图片。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用dvpp对输入图像数据进行预处理,并在模型转换时开启AIPP功能,实现目标检测的功能。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用dvpp对输入图像数据进行预处理,并在模型转换时开启AIPP功能,实现目标检测的功能。
objectdetection_video:基于yolov3的目标检测应用,输入为视频,输出为视频。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧中的物体进行目标检测,最后通过opencv进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用opencv对视频帧进行预处理,对预处理后的视频帧中的物体进行目标检测,最后通过opencv进行相应后处理。
facedetection:基于caffe-ssd的人脸检测应用,输入为树莓派摄像头,输出为视频。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用dvpp对视频帧进行预处理,对预处理后的视频帧进行人脸检测,最后进行相应后处理。
mark_detection:基于yolov3的口罩识别应用,输入为图片,输出为图片。
  • for_atlas200dk_1.3x.0.0_python:该分支是运行在200DK上基于1.3x.0.0版本的python样例。使用opencv对图像进行预处理,对预处理后的图像进行口罩识别,最后通过opencv进行相应后处理。
mark_detection_video:基于yolov3的口罩识别应用,输入为视频,输出为视频。
  • for_atlas200dk_1.3x.0.0_c++:该分支是运行在200DK上基于1.3x.0.0版本的C++样例。使用dvpp对视频帧进行预处理,对预处理后的视频帧进行口罩识别,最后进行相应后处理。
  • for_atlas200dk_1.3x.0.0_python:该分支是运行在200DK上基于1.3x.0.0版本的python样例。使用opencv对视频帧进行预处理,对预处理后的视频帧进行口罩识别,最后进行相应后处理。
wav2word:基于test_model.pb的语言转换文字应用,输入为语音,输出为文本。
  • for_atlas200dk_1.7x.0.0_c++:该分支是运行在200DK上基于1.7x.0.0版本的C++样例。使用python wave库对音频文件进行特征提取,提取200维的音频特征进行计算输入,之后进行语音信号的预处理分帧,加窗,傅里叶变换等进行预处理,对预处理后语音转换成相应文字,最后通过调用Keras附带的CTC_decode函数库进行解码进行相应后处理。
  • for_atlas300_1.7x.0.0_c++:该分支是运行在ai1环境上基于1.7x.0.0版本的C++样例。使用python wave库对音频文件进行特征提取,提取200维的音频特征进行计算输入,之后进行语音信号的预处理分帧,加窗,傅里叶变换等对语音进行预处理,对预处理后语音转换成相应文字,最后通过调用Keras附带的CTC_decode函数库进行解码进行相应后处理。
hardware-peripheral:基于Atlas200DK的各硬件接口使用样例,详细介绍了gpio、i2c、uart使用说明。
  • for_atlas200dk_1.7x.0.0_c++:本仓包含Atlas200DK各硬件接口的使用样例,各文件夹对应不同硬件设备的样例,以供用户参考。
dvpp_samples:Atlas200DK和Atlas300支持的媒体数据处理功能。

空文件

简介

CANN Samples 展开 收起
README
Apache-2.0
取消

发行版 (16)

全部
5个月前

近期动态

1小时前评论了 PR !2670 add tbufpool sample
3小时前更改了任务 #IC9OY5 w-为什么显示resizexxV2D算子不支持 的状态为wip
3小时前更改了任务 #IC9OY5 w-为什么显示resizexxV2D算子不支持 的状态为done
16小时前创建了任务 #ICDH1C 310P虚拟化单卡多芯片同时运行推理失败
1天前评论了 PR !2670 add tbufpool sample
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ascend/samples.git
git@gitee.com:ascend/samples.git
ascend
samples
samples
v0.1.0

搜索帮助