• [课程学习] 云技术精髓活动笔记分享-一个通过认证考试者的一些心得和总结
    在完成华为云《云技术精髓入门级开发者认证》的系列学习内容后,现在已经通过了理论考试和实验考试。结果如下:实验考试分数:整个过程中,我收获颇丰,不仅对云技术有了更深入的理解,还在实践操作和学习方法上有了新的感悟。以下是我此次学习的详细笔记。一、课程内容概述华为云的这门入门级开发者认证课程涵盖了丰富多样的云技术相关知识,从云的基础概念到具体的服务应用,层层递进,为学习者搭建了一个较为完整的云技术知识框架。(一)云基础概念课程首先深入浅出地介绍了云的定义、发展历程以及云服务的主要类型,如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。通过生动的案例和图表,让我清晰地理解了不同云服务类型之间的区别与联系,以及它们在实际应用场景中的优势。例如,IaaS 适合企业自行搭建和管理应用程序所需的基础设施,而 SaaS 则更侧重于为用户提供直接可用的软件应用,无需关注底层的硬件和软件环境。(二)华为云核心服务接着,课程详细讲解了华为云的一系列核心服务,包括弹性计算服务(ECS)、弹性块存储(EVS)、虚拟私有云(VPC)等。对于 ECS,我了解到它可以根据用户的需求灵活配置计算资源,如 CPU、内存等,并且能够快速创建和启动实例,为应用程序的部署提供了便捷的计算环境。同时,学习了如何在创建 ECS 实例时进行合理的选型,考虑因素包括业务负载、预算等。EVS 则让我认识到云存储的重要性和便利性。它可以为 ECS 实例提供可靠的存储服务,并且支持多种存储类型,以满足不同应用场景对存储性能和成本的要求。VPC 的学习让我明白了如何在华为云中构建一个虚拟的私有网络,实现网络资源的隔离和定制化配置。通过划分子网、设置路由表等操作,可以有效地控制网络流量,保障网络的安全性和稳定性。(三)云安全与管理云安全是云技术应用中至关重要的一环,课程也着重强调了这方面的内容。学习了华为云提供的各种安全服务,如安全组、云审计(CTS)等。安全组可以通过设置规则来控制进出实例的网络流量,确保只有合法的流量能够访问实例,从而保护实例内的应用程序和数据安全。云审计服务 CTS 则能够记录对华为云的 API 访问等操作信息,这对于安全审计、合规检查以及故障排查等方面都具有重要意义。通过分析 CTS 记录的日志,可以及时发现异常的操作行为,采取相应的措施加以防范。二、实验心得课程配套了丰富的实验内容,让我有机会将所学的理论知识应用到实际操作中,这也是我此次学习过程中最有收获的部分之一。(一)实验环境搭建在进行每个实验之前,首先需要搭建相应的实验环境,这涉及到在华为云平台上创建各种所需的资源,如 ECS 实例、VPC 等。刚开始的时候,我对一些操作步骤还不是很熟悉,比如在配置 ECS 实例的网络参数时,容易出现错误导致实例无法正常联网。但是通过仔细阅读实验指导文档,多次尝试并参考平台提供的帮助信息,我逐渐掌握了正确的操作方法,成功搭建起了稳定的实验环境。(二)实验操作过程在完成环境搭建后,便开始进行具体的实验操作。例如,在进行 ECS 实例的创建和管理实验时,我按照步骤依次完成了实例类型选择、操作系统安装、应用程序部署等操作。在这个过程中,我深刻体会到了华为云平台操作的便捷性和灵活性。通过简单的几步操作,就可以快速创建出满足需求的 ECS 实例,并且可以根据实际情况随时对实例进行配置调整,如增加内存、更换操作系统等。同时,在进行 VPC 相关实验时,我学习到了如何通过划分子网、设置路由表等来实现网络流量的控制。通过实际操作,我更加直观地理解了 VPC 的工作原理和作用,以及如何利用它来保障网络的安全性和稳定性。(三)实验结果与收获经过一系列的实验操作,我成功完成了各个实验项目,并获得了预期的实验结果。通过这些实验,我不仅巩固了所学的理论知识,还提高了自己的实际操作能力。我学会了如何在华为云平台上快速创建和管理各种云资源,如何运用云服务来解决实际问题,以及如何通过云安全服务来保障系统的安全。此外,实验过程中也遇到了一些问题,如网络连接不稳定、应用程序部署失败等。但是通过自己的努力排查和参考平台提供的解决方案,我逐渐克服了这些问题,这也让我在解决实际问题的能力上有了很大的提升。三、学习方法分享在学习这门课程的过程中,我也总结了一些适合自己的学习方法,希望对其他学习者有所帮助。(一)理论与实践相结合云技术是一门实践性很强的学科,单纯的理论学习很难真正掌握其精髓。因此,在学习过程中,我始终坚持理论与实践相结合的原则。每学习一个新的知识点,我都会尽快找到相关的实验或案例来进行实践操作,通过实际应用来加深对理论知识的理解。例如,在学习 ECS 实例的配置时,我不仅认真学习了理论知识,还立即在华为云平台上进行了实例创建和配置的实验,这样可以更加直观地了解各个参数的作用和设置方法。(二)多参考官方文档和资料华为云官方提供了丰富的文档和资料,包括课程教材、实验指导手册、技术白皮书等。这些官方资料是学习的重要资源,它们详细介绍了华为云的各项服务和操作方法,内容准确、权威。在学习过程中,我经常会参考这些官方资料,尤其是在遇到不懂的问题或操作不熟悉的情况时。通过仔细阅读官方资料,可以快速找到问题的答案和正确的操作方法,避免走弯路。官方文档地址如下:官方文档帮助中心_华为云 (huaweicloud.com)四、总结通过参加华为云《云技术精髓入门级开发者认证》的学习,我对云技术有了全面的认识和深入的理解,掌握了华为云的一些核心服务的使用方法,提高了自己的实际操作能力和解决实际问题的能力。同时,我也总结出了一些适合自己的学习方法,这些方法将对我今后继续学习和应用云技术起到重要的作用。在未来,我希望能够继续深入学习云技术,考取更高级别的认证,进一步提升自己在云技术领域的专业水平,为企业的数字化转型和云应用发展贡献自己的一份力量。
  • [分享交流] 诚邀弹性负载均衡ELB用户参加有奖测评活动~~
    活动介绍:为了给用户提供更好的产品体验,华为云现邀请负载均衡管理员有偿参加产品测评活动。测评时长:1.5-2小时测评方式:线上测评,电脑入会报名条件:弹性负载均衡ELB管理人员,从事负载均衡管理工作;负责ELB使用规划,日常运维,购买及使用,熟悉ELB监听配置业务等;访谈日期:2023年10月活动奖励:参与测评后可获得200元京东购物卡报名入口:需要先填写本问卷报名cid:link_0,在问卷结尾留下联系方式本活动最终解释权归华为云UED团队所有。
  • [其他问题] 私网负载均衡收费问题
    墨西哥2的私网负载均衡什么时候开始收费的?
  • [技术干货] 不同域名同IP
    视频点播,直播分别是两个不同的域名,绑定的同一个ip,后端是两台服务器提供视频点播和视频直播服务。华为云什么服务可以实现该功能,并简要说明步骤ELBhttps://support.huaweicloud.com/qs-elb/zh_cn_elb_02_0001.html共享型负载均衡可以配置基于域名和URL的转发策略,将来自不同域名或者不同URL的请求转发到不同的后端服务器组处理。此功能目前仅支持协议类型为HTTP、HTTPS的监听器。步骤:创建弹性云服务器—搭建后端服务—新建负载均衡器—添加监听器—添加转发策略—验证负载均衡服务
  • [问题求助] 实验环境和实验手册不一样
    手册上监听器前端协议为TCp,实际没有TCp
  • ELB-证书管理-更换证书怎么把已经有的名字改了
    报名的时候忘记改名字了怎么把证书名字改过来
  • [技术干货] ModelArts模型到端侧的落地 - ModelBox端云协同AI开发套件(RK3568)体验
    ModelArts训练出模型后,是可以部署为云端的在线服务,还有一种很常见的部署,那就是要部署到端侧,贴近场景进行推理应用。 当然这里有一个前提是模型需要转换为适合于端侧部署的模型,目前是手工操作的。 一旦有了适合于端侧部署的模型,ModelBox开发套件就可以大展身手了,从有了模型,到成功部署、将端侧应用跑起来和用起来,整个流程比较行云流水,提高了不少的效率。 以下是体验试用的一个小汇总,体验还在继续进行中.... ------------ 试用一个月,完了要还回去,不知道这个开发套件需要多少钱,反正拿到了开发套件是挺开心的。 拿到之后,就参照[《上手指南》](https://developer.huaweicloud.com/develop/aigallery/article/detail?id=0163b46b-34fa-468d-b243-2ef067170d4a)开始动手了。 把东西拿出来摆放整齐后是这个样子: ![IMG_20220713_193515.jpg](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152109738849835.jpg) 安装一半后是这个样子: ![IMG_20220713_220129.jpg](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152264390121767.jpg) 板子上电带系统启动后是这个样子: ![IMG_20220714_075009.jpg](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152324493435995.jpg) 首先是操作系统的制作,没有系统板子上电后只是一个绿灯常亮。系统启动镜像要写到tf卡里(Micro SD),刚好家里有一个读卡器可以写。镜像读写工具 balenaEtcher 下载很慢,我是个急性子,等不及就放弃了。想在Linux下面解压后再想办法写入,不需要下载什么工具。于是把我一直吃灰的Ubuntu20.04打开,果然有超预期表现:右键就有“用磁盘映像写入器打开”(注意图中20220707的镜像制作的有些问题,无线网卡驱动没有加载上,最后还是用老的镜像) ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152600941255505.png) 将镜像写入到32G的TF卡中: ![2022-07-13 21-35-34 的屏幕截图.png](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152674096839019.png) 写完了: ![2022-07-13 21-44-37 的屏幕截图.png](https://bbs-img.huaweicloud.com/blogs/img/20220718/1658152692335423257.png) 系统成功启动后,下一步就是要登陆上开发版。按照指南,有两种方式。 1. 开发板连接显示器和键盘鼠标,安装Ubuntu桌面,直接在开发板上进行开发; 2. 使用远程连接工具(如VS Code中的Remote-SSH)从PC端登录开发板进行开发。 相对于去找网线配置网络,我更愿意去把键盘和鼠标找出来,然后将hdmi连上我的荣耀智慧屏作为显示器。 ![IMG_20220714_080237.jpg](https://bbs-img.huaweicloud.com/blogs/img/20220719/1658186954480926744.jpg) 这不就可以登陆上系统了吗?然后用 nmcli 命令连上无线网。这样板子连上网之后,后面就好办了。 也把桌面 mate 安装上了,大约1300个包,要下载700兆(解压后3.6G)。所以事先把系统源替换到华为云镜像,比较尴尬的是华为云镜像ubuntu arm版本比较老,所以替换为阿里云。 安装好后重启就可以进入桌面了,这个55寸荣耀智慧屏是最开始推出时就买来的,很优惠,不到两千块钱。虽然现在系统使用有点卡,但是解码播放4K视频从来不卡。进入桌面后它自动适配的分辨率就是4K。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220719/1658188450560232199.png) 看一下系统信息: ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220719/1658188489789149951.png) 进入桌面后,操作上感觉比较卡,而且频繁的进入桌面后不久就自动重启。原因可能有分辨率过高,一些系统进程( `unattended-upgrade` )占用太多CPU,开发版内存比较小(只有4G),做了一些调整降低为1K分辨率和关闭自动升级。只是后来是用ssh登录,也就没再去使用桌面了。 接下来就是按照指南,在HiLens管理控制台专业版进行`设备注册`、`下载固件(Device_Agent)和证书`,`传送到开发板进行安装`。还有一步`激活设备`在指南里没有写,用十元优惠券激活一个月。 以上都是一些开发环境的准备工作,再接下来就是下载sdk,进入真正的开发了。 ------------ 这一部分用SDK做了2个案例: 1. 在视频文件/视频流上添加文字 试用首先考虑的效率问题,不考虑安全问题,所以直接用root用户操作。 后面会用到一些库,所以先apt安装`dos2unix`,pip3安装`numpy opencv-python` 将SDK `modelbox-rk-aarch64-1.0.9.6.tar.gz` 解压后,内容如下 ```html root@rock-3a:~/sdk# tree -L 2 --dirsfirst |-- modelbox-rk-aarch64 | |-- bin/ | |-- doc/ | |-- etc/ | |-- flowunit/ | |-- include/ | |-- lib/ | |-- solution/ | |-- template/ | |-- www/ | |-- Third_Party_Open_Source_Software_Notice | |-- modelbox-1.0.0-py3-none-any.whl | `-- version |-- create.py |-- env_set.sh |-- mb-pkg-tool |-- obsutil `-- solution.py ``` 使用 `create.py` 创建hello_world工程后,目录是这样的 ```html `-- hello_world |-- CMake | |-- FindFFMPEG.cmake | `-- Function.cmake |-- bin | |-- main.sh | `-- mock_task.toml |-- data/ |-- dependence | |-- modelbox_requirements.txt | `-- readme.txt |-- etc | `-- flowunit/ |-- flowunit_cpp | `-- CMakeLists.txt |-- graph | |-- hello_world.toml | `-- modelbox.conf |-- hilens_data_dir/ |-- model/ |-- CMakeLists.txt |-- build_project.sh `-- rpm_copyothers.sh ``` 在工程中创建一个叫做draw_text的 `python flowunit` 后,在etc/flowunit下新增了draw_text目录,是这样的: ```html |-- etc | `-- flowunit | |-- cpp | |-- draw_text | | |-- draw_text.py | | `-- draw_text.toml | `-- readme.txt ``` 然后修改`功能单元的处理逻辑`,即`draw_text.py`里的`process`函数,加上在视频帧上打出文字hello world的动作。 修改`hello_world.toml`流程图的配置。 将SDK里自带的一个mp4文件`car_test_video.mp4`拷贝到data目录中。 修改`mock_task.toml`里面的`任务的输入输出配置`,为使用本地mp4文件。输入文件为`../data/car_test_video.mp4`,输出文件为`../hilens_data_dir/hello.mp4` 执行`build_project.sh`进行工程构建。很快,不知道构建了个啥。 执行 `main.sh` 运行应用。 输出有些报错,可以不用管, ```html [2022-07-23 04:31:28,100][ WARN][ timer.cc:208 ] Schedule timer failed, timer is not running. [2022-07-23 04:31:28,100][ERROR][iva_auth_info_updater.cc:29 ] IvaManager::SetIAMAuthInfo Not enough meassage. userId and (domain_id or vas_x_role_name) is empty. [2022-07-23 04:31:28,100][ INFO][iva_auth_info_updater.cc:63 ] IvaManager::SetIAMAuthInfo Not enough meassage. ak is empty. [2022-07-23 04:31:47,109][ INFO][flow_scheduler.cc:397 ] shutdown flow scheduler. [2022-07-23 04:31:47,109][ERROR][flow_scheduler.cc:377 ] the scheduler caught an error : Stop operation [2022-07-23 04:31:47,115][ INFO][ job_manager.cc:82 ] delete job : IVA_JOB ``` 因为目标文件生成了,播放时有Hello World文字在上面的效果。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220723/1658551128910423469.png) 再试一下视频流,把摄像头插上开发板上,用`lsusb`可以看到系统识别到了: ```shell Bus 007 Device 002: ID 0c45:64ab Microdia HX-USB Camera ``` 将`hello_world.toml`另存为`hello_world_camera.toml`,在文件里将`video_demuxer`和`video_decoder`去掉,改为`local_camera`。 再修改`mock_task.toml`里面的`任务的输入输出配置`,输入使用摄像头,输出到rtsp,地址为PC上的推流服务。然后在PC上启动windows下的SDK里的`connect_wizard`,使用`开发板侧视频流`启动推流。 执行 `main.sh camera`指定使用配置文件`hello_world_camera.toml`来运行应用: ```bash [2022-07-23 08:04:25,931][ INFO][video_out_flowunit.cc:305 ] video_out url is rtsp://192.168.3.8:8554/outstream [2022-07-23 08:04:25,931][ INFO][video_out_flowunit.cc:266 ] videoout url=rtsp://192.168.3.8:8554/outstream [2022-07-23 08:04:25,946][ INFO][ ffmpeg_writer.cc:55 ] Open url rtsp://192.168.3.8:8554/outstream, format rtsp success ``` 浏览器里自动打开输出实时画面,有添加文字效果。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220723/1658564272737216633.png) 2. 视频文件做车辆检测 用检测模型检测出`视频画面中车辆并画框`,输入输出都是视频文件。这个应用作为模板案例已内置在sdk中,不需要另外下载。 先用`create.py`创建`car_det`工程,这次加了一个选项 `-s car_det`,代表使用这个`solution`来创建。可以看到工程目录如下: ```html root@rock-3a:~/sdk/workspace/car_det# tree -L 4 --dirsfirst . |-- CMake | |-- FindFFMPEG.cmake | `-- Function.cmake |-- bin | |-- main.sh | `-- mock_task.toml |-- data | |-- car_test_pic.jpg | |-- car_test_video.mp4 | `-- test_http.py |-- dependence | |-- modelbox_requirements.txt | `-- readme.txt |-- etc | `-- flowunit | |-- cpp | |-- draw_car_bbox | | |-- draw_car_bbox.py | | `-- draw_car_bbox.toml | |-- yolox_post | | |-- yolox_post.py | | |-- yolox_post.toml | | `-- yolox_utils.py | `-- readme.txt |-- flowunit_cpp | `-- CMakeLists.txt |-- graph | |-- car_det.toml | |-- car_det_http.toml | |-- car_det_server.toml | `-- modelbox.conf |-- hilens_data_dir |-- model | `-- yolox_infer | |-- yolox_infer.toml | `-- yolox_nano_288x512.rknn |-- CMakeLists.txt |-- build_project.sh `-- rpm_copyothers.sh ``` 目录中有模型推理单元`yolox_infer`,包含yolox模型文件和模型配置文件。ModelBox内置了rknn推理引擎和推理逻辑,开发者不需编写推理代码。此模型由PyTorch框架训练得到,事先使用[rknn-toolkit2](https://github.com/rockchip-linux/rknn-toolkit2)工具将它转换为RK3568支持的模型格式,可以在[RK3568模型转换验证案例](https://developer.huaweicloud.com/develop/aigallery/notebook/detail?id=a7072b40-690e-4d98-be64-64a00f6fc69a)中查看模型转换过程。 推理后的后处理在flowunit里,有`yolox_post`和`draw_car_bbox`,做后处理,然后做画框展示。 工程有3个流程图。默认流程图是`car_det.toml`,运行它来看看效果,先`build_project.sh`再`main.sh`运行,12秒的视频,处理耗时48秒: ```html [2022-07-23 09:26:55,104][ INFO][ ffmpeg_writer.cc:55 ] Open url /root/sdk/workspace/car_det/bin/../hilens_data_dir/car_test_result.mp4, format mp4 success [2022-07-23 09:27:43,049][ INFO][ffmpeg_video_demuxer.cc:147 ] Stream /root/sdk/workspace/car_det/bin/../data/car_test_video.mp4 is end ``` ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220723/1658569230491889592.png) 在来看http服务,输入一个图片,给出检测结果图片的。运行`main.sh http`指定使用`car_det_http.toml`流程图: ```html [2022-07-23 09:52:01,939][ INFO][httpserver_sync_receive.cc:188 ] Start server at http://0.0.0.0:8083/v1/car_det ``` 使用`test_http.py`调用这个http服务: ```json root@rock-3a:~/sdk/workspace/car_det/data# python test_http.py test_http.py:33: DeprecationWarning: tostring() is deprecated. Use tobytes() instead. img_str = cv2.imencode('.jpg', img_data)[1].tostring() response: {"det_result": "[[0.07672460377216339, 0.3569239377975464, 0.2763637900352478, 0.7063356041908264, 0.7665719985961914, 2.0], [0.6121819615364075, 0.09047098457813263, 0.7309271693229675, 0.28249451518058777, 0.72760009765625, 2.0], [0.38874685764312744, 0.17702166736125946, 0.4968656301498413, 0.36404821276664734, 0.6740775108337402, 2.0], [0.2635308504104614, 0.0011769375996664166, 0.3374212980270386, 0.02468840591609478, 0.34745872020721436, 2.0]]"} ``` 查看生成的结果文件: ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220723/1658570138919170372.png) 到这里就告一段落。 ------------ 这一部分是:使用yolov3做口罩检测 口罩检测不同于车辆检测,车辆检测内置于SDK中,模型文件、相关配置都作为解决方案提供了,创建好工程就在那里了。而口罩检测需要自行下载模型和配置文件,并放置到对应的工程目录,其实也很方便。 [下载地址](https://e-share.obs-website.cn-north-1.myhuaweicloud.com/?token=0awK+RuZ0De/GWps7y6qRVUhiXBsrkH2u+k5falBeP5XXOarM+Di1r8ihSd3itx9pxg+nA9lLRCNJO7VSLN/lshflsGfY/h2grPHXTypyDCJdYuB/B+D2hKo4iJ2B7PtAIOf4URv6Hswp36TKPJ8w+r4eE4WXqKEIfEeS/A+AnTMW5Qytd+kQhtN1c1FdCLj5jBza4nBK0urxGiS4YI2Q6boNdz8Mv5eJAXDOBm5V2phU5P6DP1E9409/ZTWYBDhWHui3OczoHLjIzh3xUltlClfy6DyoKAzkshw9LrFOInUyUhfnihJzag95HFiETwq2e0gn3VHmM+cXcijxt+QP5JwFMwZLWBbFUw6V5eGXJRnaIMW97Hfqfb3wLCe//RNigcP4L4JJ3YOvENQWJxxC3rl6uvo2zFlDkbuKdMqfFM1UlB/8HpYsrlKXrKRI092ai4E2Xh6VRs0tl7m0HQOzDJWwv4WpZ2v8YNX9hNskNbbiayscw9gEY4iwpFSykdGzNK5Enb63QiNbuYFBGdmtUMvp1DDqEpTBi4+VzzXNn2xjUo2qu2FQq6QAfLBzcmh+SiGJ5bGQaMhxb6mEQwzj4qoVJ5C6PoonbPqWqIkdV4=),提取码 modbox 选择`common.zip`(功能单元和配置、任务配置、测试视频 5M) 和`rknpu2.zip`(推理功能单元和流程配置 14M)下载即可。 仍然是先用 `create.py` 创建名为`mask_det_yolo3`的工程,然后用`-t infer`选项创建一个名为`mask_infer`的推理功能单元,会在工程目录的model下生成以下内容 ```html |-- model | `-- mask_infer | `-- mask_infer.toml ``` 将rknpu2.zip里面的rknn模型文件和2个配置文件放入(覆盖原mask_infer.toml): ```html workspace/mask_det_yolo3/model/mask_infer/ |-- mask_infer.toml |-- yolo3_resnet18_mask_det_288x512.toml `-- yolo3_resnet18_mask_det_288x512_rknpu2.rknn ``` `mask_infer.toml`里定义了三个模型的输出,应该是对于`head头肩部`、`face`、`mask口罩`的信息。 接下来使用参数`-t python`创建2个功能单元,分别是`yolo3_post`后处理,和`draw_mask_bbox`在原图上画框展示,生成内容如下: ```html workspace/mask_det_yolo3/etc/ `-- flowunit |-- cpp |-- draw_mask_bbox | |-- draw_mask_bbox.py | `-- draw_mask_bbox.toml |-- readme.txt `-- yolo3_post |-- yolo3_post.py `-- yolo3_post.toml ``` 将common.zip里面的功能单元内容复制进去覆盖原文件。 带没带口罩的结果的展示,其逻辑是在画图单元实现:如果face检测框与mask检测框的`重合度`大于某个阈值,就判为佩戴口罩;否则,就判为没有佩戴口罩;如果没有检测到face检测框,就会显示Unknown。 接下来就是`串流程图`(graph/mask_det_yolo3.toml),和`配置任务的输入输出`(bin/mock_task.toml),当然下载里都有已经配置好的文件,拷贝到对应目录。同时把测试视频也拷贝到data目录。 `mask_det_yolo3.toml`里定义了: 各个功能单元的处理流转流程 ```c data_source_parser > video_demuxer > video_decoder > image_resize > mask_detection > yolo3_post > draw_mask_bbox > video_out ``` 以及 功能单元之间的输出输入之间的接口对接配置,比较细节就不说了。 配置任务的输入输出在hello_world和车辆检测部分说过,也不说了。 准备工作到此结束,下面就是进入工程目录,进行`build_project.sh`然后`bin/main.sh`运行应用进行视频文件的戴口罩检测,并输出结果到视频文件。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220728/1658997388103140538.png) 下载的里面还有一个camera的配置文件,是可以将输入输出都配置为视频流来使用的,这个晚点再试一下。
  • [其他] ModelBox框架抽象出的概念
    通过ModelBox开发应用时,开发者需要将`应用程序的逻辑`表达为`流程图`,应用功能被拆分为多个功能单元。 这个也比较好理解,程序代码的逻辑也是可以用流程来表达的,比如常见的顺序的流程,还有各种语言都支持的控制流程,比如分支、循环等等。 采用这种方式的目的/好处有: 1. 对数据流(如视频)处理可以利用多段流水线并行提供吞吐量; 2. 通用的功能单元可以复用; 3. 通用的流程图可以复用。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/22/1658483217040636823.png) 左进右出。数据由`Input Node`产生,流向`Process Node`,然后汇聚到`Sink Node`。整个流程就是`Flow`。
  • [其他] AI推理开发框架 - ModelBox简介
    说,有这么一个AI推理开发框架, 它能帮助AI开发者解决一些痛点, 什么痛点呢? 1. 帮你比较高效的处理一些AI落地中的脏活、累活、杂活、却又不得不干的活。比如:视频图片解码、HTTP服务、预处理、后处理、多模型复杂业务串联、运维、打包等 2. 说的就是你,算法开发人员。你开发的算法性能还行吗?可靠性还好吗?高性能,高可靠场景改造工作量大不大?很大。 那就来看一下ModelBox的特点, ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/22/1658468386612568415.png) 以及它能解决的问题: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/22/1658468422916634271.png)
  • [业界动态] 华为云发布ModelBox AI应用开发框架 实现AI应用一次开发全场景部署
    6月15日,以“因聚而生,为你所能”为主题的华为伙伴暨开发者大会 2022隆重开幕,华为云CEO张平安发表“共创新价值,一切皆服务”主题演讲,并重磅发布了华为云ModelBox AI应用开发框架,打通端边云边界,助力开发者实现AI应用一次开发,全场景部署。  华为云CEO张平安发布包括ModelBox在内的15大新服务  去年华为云发布了盘古预训练大模型,让AI开发由作坊式转变为工业化开发的新模式,但是AI的应用开发和部署仍然面临很多挑战,面向多样化的云边端场景,行业开发者平均需要花费1~2个月来完成AI应用对多种运行设备和系统的开发适配,耗时耗力。  为解决这一难题,打通AI落地“最后一公里”,华为云再次对AI开发生产线ModelArts进行重磅升级——发布ModelBox AI应用开发框架,帮助开发者屏蔽底层软硬件差异,实现AI应用一次开发,全场景部署,让AI开发者无需学习复杂的底层技术及繁多的系统API就能开发出高性能的AI应用。  华为云ModelBox AI应用开发框架具备以下三大创新能力:  高性能并发调度引擎提升推理性能 2-10倍  相较传统AI应用串行的开发方式,ModelBox应用中所有任务以功能单元形式封装,运行时内置的并发调度引擎实现数据计算和资源管理的精细化智能调度,同时集成了特别优化过的硬件加速单元,可以实现推理性能大幅提升。  自适应异构计算组件缩短跨平台开发周期80%  预置丰富的应用编排异构计算组件,覆盖主流芯片、操作系统、推理框架,让开发者不必学习平台的软硬件差异,实现一次开发,全场景部署,降低了开发者学习底层优化API的难度,可以明显缩短开发周期。  端边云AI协同单元降低运维成本30%  框架中提供的端边云AI协同单元让开发者快速生成格式统一的AI应用,结合应用场景一键部署到端边云不同的设备上运行。结合云上管理平台,可以实现对模型的精细化管理,降低运维成本。  在油气行业中,实体三维重建及定位是复杂设备维修、维护的重要手段,需要端侧设备在开阔空间中能够快速完成定位,且误差不超过1厘米。相当于要在几毫秒之内,从十个足球场面积的图片中识别出螺丝钉大小的物体。重建及定位算法的求解需要PnP、RANSAC等十余个子算法的相互协同。  传统的AI应用开发方式因缺乏灵活编排异构计算单元的手段,无法高效调度计算资源,推理时延长达上百毫秒,难以满足开阔空间毫秒级三维重建定位的要求  3D重建和定位识别等高性能AI应用能够结合AR眼镜流畅运行  华为云ModelBox AI开发应用框架具备独有的高性能并发调度引擎,可将计算资源合理调度到GPU、CPU、NPU等多种芯片上,通过芯片级并行计算,提升推理性能2-10倍。ModelBox打通端边云边界,统一模型应用接口和打包格式,让AI应用可以便捷的部署到各种异构计算平台,由端侧运行低延时小模型,边侧承担综合计算任务,云侧承载复杂的大模型。通过高效协同端边云计算资源,实现开阔空间厘米级精度的三维重建及定位,并将时延控制在毫秒级。基于Modelbox,开发一个新器件的三维重建应用的周期从两个月缩短到了一周。  统一模型应用接口和打包格式,让AI应用可以便捷的部署到各种异构计算平台  目前,华为云ModelBox AI应用开发框架已进行了开源,并与北京亮亮视野科技有限公司(以下简称亮亮视野)等30多家软硬件生态伙伴进行战略合作。  亮亮视野是国内TOP级AR眼镜设备提供商,服务了覆盖工业、能源、航空、制造等行业的5000多家领军企业。亮亮视野COO娄身强表示,ModelBox改变了过去重复开发定制交付的模式,可以将开发团队从繁琐的软硬件适配、调优工作中解放出来,让伙伴更加聚焦于产品本身的开发,实现了研发效能的提升。  同时,ModelBox为亮亮视野等硬件厂商提供了广阔的生态合作机会。一方面,AR眼镜等硬件设备基于云上的海量AI应用可以快速扩展AI技能,另一方面,基于ModelBox提供的统一接口和格式,AI算法能够更便捷地运行在各种智能设备上,在端边云协同的场景中形成生态互补优势,解决行业AI应用落地的难题。  技术升级的浪潮成为了社会前行的核心动力来源之一。华为云将不断创新,继续和合作伙伴、开发者一起,通过经验即服务、技术即服务、基础设施即服务,实现一切皆服务,共创新价值。*转载自https://m.it168.com/articleq_6747139.html 
  • [下午茶时光] ELB工作原理图
  • [活动公告] ModelBox 端云协同AI开发套件(RK3568)开发体验
    体验形式:本次体验采用有奖征集体验评测报告+群内交流的反馈的形式。我们将在体验官群内(点击链接申请成为体验官   )筛选体验官若干位,然后签订协议邮寄实物开发板并按照体验报告(筛选后展示)的要求操作和体验产品,最后输出体验报告。我们会从中筛选出高质量体验报告,给予礼品奖励和积分奖励。体验产品简介:ModelBox 端云协同AI开发套件(RK3568),降低门槛的AI开发板。拥有0.8TOPS算力,支持丰富的硬件接口扩展;具备强大的软件生态,利于进行开发研究。拥有它,你可以快速了解系统的硬件和软件,学习AI应用端侧硬件开发流程,实现云侧AI应用端侧部署;你还可以将部署的AI应用同步到云平台售卖,实现AI应用的商业变现。活动流程:1.如您已经成为产品体验官,小助手会在群内发布招募公告,直接报名即可。2.如您还未申请成为体验官,请点击链接先申请成为体验官,再参与活动哦~申请链接:https://developer.huaweicloud.com/activity/experience-officer.html 3.填写本次活动体验者筛选问卷,等待小助手入选拉群。问卷链接:https://devcloud.huaweicloud.com/expertmobile/qtn?id=93421f85b0704d70b4adb69c18ad5513 4.签订协议收到开发板进行体验5.输出产品体验报告,等待领奖☆奖励设置如下☆参与奖:15名获奖要求:完成体验和体验报告,并完成一篇案例奖励:华为体脂称   优秀奖:10名获奖要求:完成体验和体验报告,并完成一篇优质案例(专家评选)优秀案例:ModelBox开发案例 - 使用YOLO v3做口罩检测奖品:开发板硬件
  • [其他] ModelBox基本概念
    当进行AI应用开发时,开发者可以使用当前的样例工程结构直接开发自己的业务逻辑,并在当前环境中进行代码调试。当进行AI应用开发时,开发者首先需要学习ModelBox框架的相关概念和接口,以便基于框架开发出高性能的AI应用。ModelBox解决的问题在AI应用开发时,开发者需要将训练完成模型和应用逻辑一起组成AI应用,然后上线发布成为服务。在整个过程中,开发者需要面临复杂的应用编程问题,例如:GPU,NPU等复杂的API使用多线程并发互斥多种开发语言的配合应用性能,质量不满足要求服务化上线复杂ModelBox的目标就是解决AI开发者在开发AI应用时的编程复杂度,降低AI应用的开发难度,将复杂的数据处理、并发互斥、多设备协同、组件复用、数据通信等部分交由ModelBox处理,开发者主要聚焦业务逻辑本身,而不是软件细节,在提高AI应用开发的效率同时,保证软件的性能、可靠性、安全性等属性。ModelBox的核心概念开发者在使用ModelBox前,需要关注的基本核心概念包括:功能单元、流程图、接收数据处理请求和ModelBox执行引擎。图1 ModelBox核心概念功能单元ModelBox将流程图中的顶点称为功能单元(FlowUnit)。功能单元是应用的基本组成部分,也是ModelBox的执行单元。在ModelBox中,内置了大量的基础功能单元,开发者可以将这些功能单元直接集成到应用流程图中,这也是基于流程图开发的一大好处。除内置功能单元外,ModelBox支持功能单元的自定义开发,支持的功能单元形式多样,如C/C++动态库、Python脚本、模型+Toml配置文件等。流程图ModelBox中用流程图(Graph)来表达应用逻辑。采用有向图的方式,将应用的执行逻辑表达为顶点和边,其中顶点表示了应用的某个数据处理逻辑单元,边则表示了逻辑单元之间的数据传递关系。在ModelBox中,针对流程图的开发,既可以使用文本方式直接编辑,也可以使用可视化的编辑器进行编辑。对于流程图的表述,ModelBox默认采用Graphviz进行解释,即图的表述需要满足Graphviz的语法要求。接收数据处理请求应用流程图构建完毕后,需要数据处理请求才能触发应用运行。ModelBox提供两种数据处理请求接收的方式:在flowunit中,通过在加载时调用API产生数据处理的请求,因为产生的请求是固定的,所以一般用于调试场景;标准使用方式是使用ModelBox提供的服务插件机制,在插件中接收外部请求,并调用任务相关的API来完成数据处理的请求。ModelBox提供了默认的服务插件可用于参考。ModelBox在应用构建完成后,结合ModelBox的框架才能形成完整可运行的应用。ModelBox作为应用入口,首先进行功能单元的扫描加载、应用流程图读取构建,然后接收数据处理请求,数据触发ModelBox中的执行引擎对功能单元进行调度,最终完成请求的数据处理任务。更多ModelBox框架的相关知识,请访问https://modelbox-ai.com。
  • [知识分享] 【大数据系列】业务并发度不够,数仓的CN可以来帮忙
    本文分享自华为云社区《[CN与业务并发度的关系-业务并发度不够?CN来帮忙](https://bbs.huaweicloud.com/blogs/342917?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=ei&utm_content=content)》,作者:闻鲜生 。 # 一、CN的作用是什么? CN全称协调节点(Coordinator Node)。是和用户关系最密切也是DWS内部非常重要的一个组件,它负责提供外部应用接口、优化全局执行计划、向Datanode分发执行计划,以及汇总、处理执行结果。 集群中,CN有多个并且CN的角色是对等的(执行DML语句时连接到任何一个CN都可以得到一致的结果)。只需要在CN和应用程序之间增加一个负载均衡器,使得CN对应用是透明的。DWS通过CCN(Control Coordinator Node)负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM在第一次集群启动时,通过集群部署形式,选择编号最小的CN作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。 ## 一次简单的查询流程如下所示: 1. 用户通过应用程序发出查询本地数据的SQL请求到Coordinator。 2. Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信息。 3. GTM接收到Coordinator的请求,返回全局事务信息给Coordinator。 4. Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,发送到Datanode执行。 5. Datanode接收到读取任务后,查询具体Storage上的本地数据块。 6. Datanode任务执行后,将执行结果返回给Coordinator。 7. Coordinator将查询结果通过应用程序返回给用户。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779898158599361.png) # 二、CN与业务并发度的关系 CN是外部应用的接口,CN的并发能力直接决定了业务的并发度。单CN的并发能力受如下几个参数控制: max_connections: 允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。CN节点默认值为800,DN节点默认值为5000。 max_active_statements:设置全局的最大并发数量。此参数只应用到CN,且针对一个CN上的执行作业。默认值60。 CN的max_connections和max_active_statements参数支持用户根据业务并发度诉求修改,详细操作流程如下图: 点击集群详情的“参数修改”页面,搜索需要修改的参数,会显示对应参数和当前值,参数值框里面输入修改值,点击“保存”按钮保存配置。“是否重启集群”栏显示“是”的参数说明需要重启集群生效,请寻找业务空闲期修改。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779912148732840.png) # 三、CN不够怎么办? 单CN的并发能力会受到硬件资源和拓扑结构的限制,不能无限制调大。DWS是分布式架构集群,此时就要考虑横向扩展,增加更多的CN来提升业务并发度,充分利用分布式架构的优势。 ## o 下发集群时配置更多的CN CN数量在下发DWS集群时可以配置。默认值3个,最少2个,最多不超过“节点数量”,如果节点数量大于20,则CN数量最多可配置20个。如下图所示,在“创建数据仓库集群”的购买页面的“高级配置”选择“自定义”,“CN部署量”即为CN的初始部署数量。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779937648110002.png) ## o 下发集群后在线添加CN 集群下发后,如果由于业务并发度高导致CN不够用,可以在线添加CN,具体操作如下图所示。增加CN耗时与用户表数量有关,大概10分钟左右,增加CN过程中间有一段时间会锁集群,阻塞DDL语句执行。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779959209277794.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779951612308635.png) # 四、如何做到多个CN负载均衡? 如果集群部署了多个CN,但是怎么做到CN的负载均衡,保证业务并发度和性能最大化呢?DWS提供了弹性负载均衡(Elastic Load Balance,简称ELB)服务。弹性负载均衡可以通过流量分发扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。 - **ELB的配置原理介绍** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648779995520974514.png) - **ELB的绑定方法** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648780003005466786.png) # 五、CN故障了怎么办? 由于DWS的CN角色是对等的,同时对外提供服务,因此必须保证其元数据的强一致性,因此外部应用连接任一个CN执行涉及元数据变更的操作(如DDL,DCL)必须分发到所有的CN同时完成。 如果单个CN故障,会影响所有CN的DDL和DCL操作。目前DWS提供了两个解决方案: **自动剔除CN** 如果集群绑定了弹性负载均衡(ELB),则会自动打开自动剔除CN功能,DWS CM周期性检测CN的状态,如果发现CN连续故障600s,则会立即从整个集群剔除该故障CN,保证其余CN的业务不受到影响。再配合弹性负载均衡服务,会自动把发送到故障CN的作业转发到其他正常CN。 **删除cn介绍** 如果发现集群部分CN故障,或存在亚健康状态,可以选择手动删除故障CN,具体操作流程如下。手动删除CN耗时固定,1分钟左右。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648780049643318627.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/1/1648780057080756227.png) 总结:希望通过此文,让你能够对CN作用,CN运维操作,业务并发度有进一步的了解!
  • [技术干货] 由一张图引起的思考-关于Nginx那些事
    前两天小编访问某个网站某个页面的时候,出现了下面这张图,于是小编就想弄明白Nginx究竟是什么,下面和伙伴们一起分享下。    Nginx的定义   Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。Nginx是一款轻量级的Web服务器,时常用于服务端的反向代理和负载均衡。它的内存占用少,启动极快,高并发能力强。    Nginx的应用   Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实际上非常注重效率 ,能经受高负载的考验, Nginx 不仅可以实现动静分离、做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。动静分离:Nginx 服务器将接收到的请求分为动态请求和静态请求。静态请求直接从 nginx 服务器所设定的根目录路径去取对应的资源,动态请求转发给真实的后台去处理。正向代理:意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。vpn是正向代理工具。反向代理:实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。负载均衡:在服务器集群中,Nginx 可以将接收到的客户端请求“均匀地”(严格讲并不一定均匀,可以通过设置权重)分配到这个集群中所有的服务器上。这个就叫做负载均衡。负载均衡具有分摊服务器集群压力、保证客户端访问的稳定性的作用。   Nginx的优点   Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。Nginx采用master-slave模型,能够充分利用SMP的优势,且能够减少工作进程在磁盘I/O的阻塞延迟。当采用select()/poll()调用时,还可以限制每个进程的连接数。Nginx代码质量非常高,代码很规范,手法成熟, 模块扩展也很容易。特别值得一提的是强大的Upstream与Filter链。Upstream为诸如reverse proxy,与其他服务器通信模块的编写奠定了很好的基础。而Filter链最酷的部分就是各个filter不必等待前一个filter执行完毕。它可以把前一个filter的输出做为当前filter的输入,这有点像Unix的管线。这意味着,一个模块可以开始压缩从后端服务器发送过来的请求,且可以在模块接收完后端服务器的整个请求之前把压缩流转向客户端。Nginx采用了一些os提供的最新特性如对sendfile (Linux2.2+),accept-filter (FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,从而大大提高了性能。Nginx极具扩展性,它由多个不同功能、不同层次、不同类型且耦合度极高的模块组成,这种低耦合的设计,造就了它庞大的第三方模块。   智能云网   智能云网社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识。目前承载了云园区网络,云广域网络,数通网络开放可编程,超融合数据中心网络,数通网络设备开放社区共五个场景。为了响应广大开发者需求,还提供了开发者交流、API 体验中心、多媒体课件、SDK工具包、开发者工具以及远程实验室共六大工具,让开发者轻松开发。欢迎各位前来体验。>>戳我了解更多<<
总条数:70 到第
上滑加载中