# samples
**Repository Path**: wangchao285/samples
## Basic Information
- **Project Name**: samples
- **Description**: CANN Samples
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 993
- **Created**: 2021-03-31
- **Last Updated**: 2021-08-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
中文|[English](README.md)
## 昇腾CANN样例仓介绍
CANN AscendCL(Ascend Computing Language)提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等C语言API库供用户开发深度神经网络应用,用于实现目标识别、图像分类等功能。用户可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的计算能力;用户还可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI处理器的运行管理、资源管理能力。
昇腾样例仓就是以CANN AscendCL接口进行开发,制作的一系列给开发者进行参考学习的样例。在开发者朋友们开发自己的样例时,也可以就样例仓的相关案例进行参考。
## 版本说明
**master分支样例版本适配情况请参见[样例表单及适配说明](#Version-of-samples)。
历史版本请参考[表 版本说明](#Version-Description)下载对应发行版**。
**表1** 版本说明
| CANN版本 | 驱动版本 |cann-samples仓是否维护 | cann-samples获取方式 |
|---|---|---|---|
| [3.1.0.alpha001](https://ascend.huawei.com/#/software/cann/download) | [1.0.7.alpha](https://www.hiascend.com/en/hardware/firmware-drivers?tag=community) | 是 | Release 0.1.0发行版,[点击跳转](https://gitee.com/ascend/samples/releases/v0.1.0) |
| [3.2.0.alpha001](https://ascend.huawei.com/#/software/cann/download) | [1.0.8.alpha](https://www.hiascend.com/en/hardware/firmware-drivers?tag=community) | 是 | Release 0.2.0发行版,[点击跳转](https://gitee.com/ascend/samples/releases/v0.2.0) |
| [3.3.0.alpha001/3.3.0.alpha005/
3.3.0.alpha006/5.0.2.alpha001/
5.0.2.alpha002](https://ascend.huawei.com/#/software/cann/download) | [1.0.9.alpha](https://www.hiascend.com/en/hardware/firmware-drivers?tag=community) | 是 | Release 0.3.0发行版,[点击跳转](https://gitee.com/ascend/samples/releases/v0.3.0) |
## 目录结构与说明
**./**
├── [c++](./cplusplus):**C++样例。**
│ ├── common
│ ├── contrib
│ ├── level1_single_api
│ ├── level2_simple_inference
│ └── level3_multi_model
├── [python](./python):**python样例。**
│ ├── common
│ ├── contrib
│ ├── level1_single_api
│ ├── level2_simple_inference
└ └── level3_multi_model
## 样例表单及适配说明
| 样例名称 | 语言 | 适配CANN版本 | 适配产品 | 简介 |
|---|---|---|---|---|
| [DVPP接口样例](./cplusplus/level2_simple_inference/0_data_process) | c++ | >3.0.0 | A200DK/A300 | 调用dvpp的相关接口,实现图像处理。包含crop/vdec/venc/jpegd/jpege/resize/batchcrop/cropandpaste等功能 |
| [自定义算子样例](./cplusplus/level1_single_api/4_op_dev/2_verify_op) | c++ | >3.0.0 | A200DK/A300 | 自定义算子运行验证,包含Add算子/batchnorm算子/conv2d算子/lstm算子/matmul算子/reshape算子等运行验证。|
| [200DK外设样例](./cplusplus/level1_single_api/5_200dk_peripheral) | c++ | >3.0.0 | A200DK| 200DK外设接口相关案例,包含 对GPIO的引脚做配置/使用i2c读写数据/使用uart1串口收发数据/使用摄像头拍摄照片或视频 等功能。|
| [C++通用分类样例](./cplusplus/level2_simple_inference/1_classification) | c++ | >3.0.0 | A200DK/A300 | 使用googlenet/ResNet-50模型对输入数据进行分类推理。包含 通用图片/通用视频/动态batch/多batch/视频码流/通用摄像头 等多种特性样例。|
| [C++通用检测样例](./cplusplus/level2_simple_inference/2_object_detection) | c++ | >3.0.0 | A200DK/A300 | 使用人脸检测/yolov3/yolov4/vgg_ssd/faster_rcnn模型对输入数据进行检测。包含 通用图片/通用视频//视频码流/通用摄像头 等多种特性样例。|
| [gemm](./cplusplus/level1_single_api/1_acl/4_blas/gemm) | c++ | >3.0.0 | A200DK/A300 | 实现矩阵-矩阵乘运算。|
| [WAV_to_word](./cplusplus/level2_simple_inference/5_nlp/WAV_to_word) | c++ | >3.0.0 | A200DK/A300 | 使用语音转换模型对输入语音进行推理。|
| [colorization](./cplusplus/level2_simple_inference/6_other/colorization) | c++ | >3.0.0 | A200DK/A300 | 使用colorization模型对输入的黑白图片进行上色推理。|
| [colorization
_video](./cplusplus/level2_simple_inference/6_other/colorization_video) | c++ | >3.0.0 | A200DK/A300 | 使用黑白图像上色模型对输入的黑白视频进行推理。|
| [DeRain](./cplusplus/level2_simple_inference/6_other/DeRain) | c++ | >3.0.0 | A200DK/A300 | 通过读取本地雨天退化图像数据,对场景中的雨线、雨雾进行去除,实现图像增强效果。|
| [DeblurGAN_GOPRO
_Blur2Sharp](./cplusplus/level2_simple_inference/6_other/DeblurGAN_GOPRO_Blur2Sharp) | c++ | >3.0.0 | A200DK/A300 | 输入一张模糊图片,使用DeblurGAN将其变清晰。|
| [YOLOV3_coco_detection
_multi_thread_VENC](./cplusplus/level2_simple_inference/n_performance/1_multi_process_thread/YOLOV3_coco_detection_multi_thread_VENC) | c++ | >3.0.0 | A200DK/A300 | 使用yolov3模型对输入视频进行分类推理。(多线程处理)|
| [face_recognition
_camera](./cplusplus/level2_simple_inference/n_performance/1_multi_process_thread/face_recognition_camera) | c++ |3.1.0 | A200DK| 通过摄像头对视频中的人脸信息进行预测,与已注册的人脸进行比对,预测出最可能的用户。|
| [multi_channels
_rtsp](./cplusplus/level2_simple_inference/n_performance/1_multi_process_thread/multi_channels_rtsp) | c++ |>3.0.0 | A200DK/A300| 使用人脸检测模型同时对两路视频流进行人脸检测。|
| [AI_painting](./cplusplus/contrib/AI_painting) | c++ | >3.0.0 | A200DK/A300 | 使用AI_painting模型根据输入的类目和布局信息生成风景图画。|
| [AscendBot](./cplusplus/contrib/AscendBot) | c++ | >3.0.0 | A200DK/A300 | 智能小车被手机APK遥控,实现物体跟随、车轨道循线、防跌落功能。|
| [HandWrite](./cplusplus/contrib/HandWrite) | c++ | >3.0.0 | A200DK| 检测摄像头中的文字,并在presenter界面中给出检测结果。|
| [ar_shadowgan](./cplusplus/contrib/ar_shadowgan) | c++ | >3.0.0 | A200DK/A300 | AI图片GAN阴影生成样例,使用GAN模型对输入图片进行推理。|
| [cartoonGAN_picture](./cplusplus/contrib/cartoonGAN_picture) | c++ | >3.0.0 | A200DK/A300 | 卡通图像生成样例,使用cartoonGAN模型对输入图片进行卡通化处理。|
| [human_segmentation](./cplusplus/contrib/human_segmentation) | c++ | >3.0.0 | A200DK/A300 | 视频人体语义分割样例,使用语义分割模型对输入的视频中人体进行语义分割推理。|
| [super_resolution](./cplusplus/contrib/super_resolution) | c++ | >3.0.0 | A200DK/A300 | 超分辨率图像处理样例,使用SRCNN、FSRCNN、VDSR和ESPCN四种模型之一对输入图片进行图像超分辨率处理。|
| [python通用分类](./python/level2_simple_inference/1_classification) | python | >3.0.0 | A200DK/A300 | 使用googlenet/inceptionv3/vgg16模型对输入数据进行分类推理。|
| [python通用检测](./python/level2_simple_inference/1_classification) | python | >3.0.0 | A200DK/A300 |使用人脸检测/yolov3/yolov4模型对输入数据进行检测。|
| [deeplabv3_pascal
_pic](./python/level2_simple_inference/3_segmentation/deeplabv3_pascal_pic) | python | >3.0.0 | A200DK/A300 | 使用deeplabv3+模型对输入图片进行语义分割。|
| [bert_text_classification](./python/level2_simple_inference/5_nlp/bert_text_classification) | python | >3.0.0 | A200DK/A300 | 使用bert模型对文本进行分类。|
| [colorization
_picture](./python/level2_simple_inference/6_other/colorization_picture) | python | >3.0.0 | A200DK/A300 | 使用colorization模型对输入的黑白图片进行上色推理。|
| [colorization
_video](./python/level2_simple_inference/6_other/colorization_video) | python | >3.0.0 | A200DK/A300 | 使用黑白图像上色模型对输入的黑白视频进行推理。|
| [imageinpainting
_hifill](./python/level2_simple_inference/6_other/imageinpainting_hifill) | python | >3.0.0 | A200DK/A300 | 高清图像修复样例,对待修复的jpg图片以及对应的mask图片进行超高分辨率的图像修复,生成修复后的图片。|
| [YOLOV3_mask
_detection_e2e](./python/level2_simple_inference/n_e2e/YOLOV3_mask_detection_e2e) | python | >3.0.0 | A200DK/A300 | ModelArts+Ascend310 从modelarts到线下部署,开发口罩识别AI应用(图片输入+图片输出)|
| [garbage_e2e](./python/level2_simple_inference/n_e2e/garbage_e2e) | python | >3.0.0 | A200DK/A300 | MindSpore+Ascend310 从MindSpore到线下部署,开发垃圾分类AI应用(图片输入+图片输出)|
| [vgg16_cat
_dog_e2e](./python/level2_simple_inference/n_e2e/vgg16_cat_dog_e2e) | python | >3.0.0 | A200DK/A300 | ModelArts- jupyter +Ascend310 从ModelArts到线下部署,开发猫狗识别AI应用(图片输入+图片输出)|
| [Robotic_Arm_Object
_Following](./python/level3_multi_model/Robotic_Arm_Object_Following) | python | >3.0.0 | A200DK | 使用Atlas200DK运行Yolov3模型,对双目深度相机给出的RGB数据流进行推理,实时检测目标在图像中的位置。并结合相机的深度数据流,控制机械臂的姿态,使得机械臂跟随目标移动。|
| [3Dgesture
_recognition](./python/contrib/3Dgesture_recognition) | python | >3.0.0 | A200DK/A300 | 使用3DCNN模型对数据进行分类推理。|
| [SentimentAnalysis](./python/contrib/SentimentAnalysis) | python | >3.0.0 | A200DK | 实现了句子级情感极性分类网络的推理功能,输出每个类别的置信度。|
| [YOLOV3_plane
_detection](./python/contrib/YOLOV3_plane_detection) | python | >3.0.0 | A200DK | 实现对遥感图像中飞机目标检测的功能。|
| [cartoonGAN
_picture](./python/contrib/cartoonGAN_picture) | python | >3.0.0 | A200DK/A300 | 使用cartoonGAN模型对输入图片进行卡通化处理。|
| [crowd_count
_picture](./python/contrib/crowd_count_picture) | python | >3.0.0 | A200DK/A300 | 使用count_person.caffe模型对密集人群进行计数。|
| [dehaze
_picture](./python/contrib/crowd_count_picture) | python | >3.0.0 | A200DK/A300 | 使用deploy_vel模型对输入图片进行去雾。|
| [edge_detection
_picture](./python/contrib/edge_detection_picture) | python | >3.0.0 | A200DK/A300 | 使用RCF模型对输入图片进行边缘检测。|
| [garbage
_picture](./python/contrib/garbage_picture) | python | >3.0.0 | A200DK/A300 | 使用mobilenetV2模型对输入图片进行分类推理。|
| [gesture_recognition
_picture](./python/contrib/garbage_picture) | python | >3.0.0 | A200DK/A300 | 使用gesture_yuv模型对输入图片进行手势识别。|
| [human_protein_map
_classification](./python/contrib/human_protein_map_classification) | python | >3.0.0 | A200DK/A300 | 对蛋白质图像进行自动化分类评估,本案例由上海交通大学提供。|
| [image_HDR
_enhance](./python/contrib/image_HDR_enhance) | python | >3.0.0 | A200DK/A300 | 使用模型对曝光不足的输入图片进行HDR效果增强,本案例由深圳大学贡献。|
| [inceptionv2
_picture](./python/contrib/inceptionv2_picture) | python | >3.0.0 | A200DK/A300 | 使用InceptionV2模型对输入的踢脚线图片进行分类推理,本样例由尚艺良品贡献。|
| [portrait
_picture](./python/contrib/portrait_picture) | python | >3.0.0 | A200DK/A300 | 使用PortraitNet模型对输入图片中人像进行分割,然后与背景图像融合,实现背景替换,本样例为清华大学贡献。|
## 样例部署
请按照各样例下的Readme进行样例部署运行。
## 文档
参考官网[昇腾文档](https://support.huaweicloud.com/ascend/index.html)获取相关文档。
## 社区
昇腾社区鼓励开发者多交流,共学习。开发者可以通过以下渠道进行交流和学习。
昇腾官网:ascend.huawei.com
昇腾论坛:https://bbs.huaweicloud.com/forum/forum-726-1.html
昇腾官方qq群:965804873
## 贡献
欢迎参与贡献。更多详情,请参阅我们的[贡献者Wiki](./CONTRIBUTING_CN.md)。
## 许可证
[Apache License 2.0](LICENSE)