828华为云征文|采用华为云Flexus云服务器X实例部署YOLOv3算法完成目标检测

news/2024/9/16 10:38:07/ 标签: 华为云, 服务器, YOLO

文章目录

  • 一、前言
    • 1.1 开发需求
    • 1.2 Flexus云服务器介绍
    • 1.3 YOLOv3目标检测算法
    • 1.4 客户端开发思路
    • 1.5 客户端运行效果
  • 二、服务器选购
    • 2.1 登录官网
    • 2.2 选购服务器
    • 2.3 选择服务器区域
    • 2.4 选择服务器规格
    • 2.5 选择系统镜像
    • 2.6 选择存储盘
    • 2.7 配置密码
    • 2.8 配置云备份
    • 2.9 确认配置
    • 2.10 立即购买
    • 2.10 后台控制台
  • 三、服务器登录
    • 3.1 查看服务器的详情
    • 3.2 远程登录
    • 3.9 采用FinalShell登录
  • 四、部署YOLOv3算法
    • 4.1 YOLO算法介绍
    • 4.2 快速部署算法模型
    • 4.3 官方模型支持识别的目标类型
  • 五、总结

一、前言

1.1 开发需求

这篇文章讲解: 采用华为云最新推出的Flexus云服务器X实例部署YOLOv3算法,完成图像分析、目标检测。

随着计算机视觉技术的飞速发展,深度学习模型如YOLOv3在图像识别和目标检测领域展现出了卓越的性能。为了满足日益增长的数据处理需求,本项目利用华为云最新推出的Flexus云服务器X实例的强大计算能力,部署YOLOv3算法以实现高效的图像分析与指定目标检测功能。通过将先进的算法与高性能云计算资源相结合,不仅能够处理大规模图像数据集,还能够保证实时性和准确性,这对于智能监控、自动驾驶等应用场景至关重要。

考虑到实际应用中对于灵活性和服务化的需求,在服务器上开发了一套后端程序,该程序提供了HTTP接口,允许外部客户端通过简单的API调用来上传图片。服务器端接收到请求后,将自动执行目标检测流程,并将分析结果反馈给客户端。这种方式极大地简化了客户端的应用开发流程,使得无需深入了解复杂的图像处理细节即可享受到高效的目标检测服务。此架构不仅增强了系统的可访问性,也为未来的扩展和维护提供了便利。

image-20240906162424686

image-20240906162435598

1.2 Flexus云服务器介绍

华为云Flexus云服务器X实例是由国家科技进步奖获得者、华为公司Fellow及华为云首席架构师顾炯炯牵头研发的一款创新性云服务器。该实例基于华为的擎天QingTian架构、瑶光云脑和盘古大模型等核心技术,是业界首款应用驱动的柔性算力云服务器,适用于高科技、零售、金融、游戏等多个行业的通用工作负载场景,如网络应用、数据库、虚拟桌面、分析索引、微服务及持续集成/持续部署(CI/CD)等。

传统的云服务器通常只提供固定的CPU和内存规格,无法精准匹配用户的实际资源需求,导致资源利用效率低下。相比之下,华为云Flexus X实例提供了更为灵活的算力配置,支持超过100种不同的CPU与内存配比,最高可达到3:1的比例,从而更好地适应各种业务应用的需求。

Flexus X实例不仅在性能方面表现出色,还内置了智能应用调优算法,结合华为技术专家多年积累的经验,在基础模式下,其GeekBench单核及多核跑分可达业界同规格独享型实例的1.6倍。在性能模式下,Flexus X实例的性能超过了同类C系/G系/R系及S系旗舰型云主机的标准。

Flexus X实例还配备了X-Turbo加速技术和大模型底层智能调度技术,为关键业务应用提供加速功能。例如,在Flexus X实例上部署的MySQL、Redis和Nginx等应用,其性能最高可达业界同规格独享型实例的6倍(MySQL性能),长期运行时也能保持2倍的性能优势。

Flexus X实例在定价策略上定位于经济型级别,但其性能表现却超越了旗舰级云主机。通过动态业务画像规格优化等技术,用户在将业务从本地服务器或其他云服务提供商迁移到Flexus X实例时,可以节省高达30%的算力成本,从而实现业务的全面提速和效能提升,享受到云基础设施的显著改进体验。

YOLOv3_37">1.3 YOLOv3目标检测算法

YOLO(You Only Look Once)算法是一种用于实时物体检测的深度学习框架,它改变了传统目标检测方法中逐步细化的过程,通过一次性地对整个图像进行预测来直接生成边界框和类别概率,从而显著提高了检测速度。与传统的基于区域提议(如R-CNN系列算法)的方法不同,YOLO将目标检测视为一个回归问题,直接从输入图像到边界框坐标和类别标签进行映射,这使得YOLO能够在保持较高检测精度的同时,实现极快的检测速度。

YOLO的核心优势在于其独特的检测方式。它将输入图像分割成固定大小的网格,并且每个网格负责预测出现在该网格内的对象。每个网格单元会生成一组边界框及其对应的置信度分数,其中置信度表示该边界框内存在某个特定类别的对象的概率。这种方法确保了模型可以同时处理多个对象,并且能够有效地检测小尺寸的对象,这是许多其他检测框架所难以做到的。

随着时间的发展,YOLO经历了多个版本的迭代,从最初的YOLOv1到后来的YOLOv2、YOLOv3以及更先进的YOLOv4和YOLOv5等版本。每一个新版本都在前一版本的基础上进行了改进,提高了检测精度和速度。例如,YOLOv3引入了多尺度特征融合,可以在不同的尺度上进行检测,从而提升了小物体的检测效果;而YOLOv4则进一步优化了网络结构,采用了更强大的骨干网络,并结合了一系列最新的改进技术,如Mish激活函数、SPP模块等,使得其在速度和精度之间达到了更好的平衡。

YOLO算法因其高效的速度和良好的检测性能,在自动驾驶、安防监控、无人机影像分析等多个领域得到了广泛的应用。它的设计理念强调实时性和实用性,使其成为构建实时视觉系统的理想选择。

1.4 客户端开发思路

客户端应用程序采用Qt框架开发,为用户提供一个直观且高效的界面,以便实时采集摄像头图像并调用服务器上部署的YOLO算法完成图像的目标分类检测。Qt是一个跨平台的应用程序开发框架,以其丰富的图形用户界面组件和强大的网络通信功能著称,非常适合用于开发此类需要图形展示与网络交互的应用程序。

客户端的主要功能包括实时视频流的捕获与显示。通过集成Qt的多媒体模块,客户端可以轻松地与各种类型的摄像头进行连接,捕捉实时视频流,并在界面上呈现给用户。用户可以通过简单的操作启动或停止视频捕获,调整摄像头参数,如分辨率和帧率,以适应不同的使用场景。

在视频流捕获的基础上,客户端还实现了与服务器的无缝对接。当客户端捕获到视频帧后,会将其发送至预先配置好的服务器地址。服务器端运行着之前部署的YOLO目标检测算法,接收到来自客户端的图像数据后,将对其进行处理,识别出图像中的各类目标,并计算出相应的边界框和类别标签。处理完成后,服务器会将包含检测结果的数据包回传给客户端。

客户端接收到检测结果后,会在视频画面上叠加相应的边界框和标签信息,直观地显示出识别出的目标类型及其位置。这一过程几乎是在实时进行的,使得用户能够立即看到目标检测的效果。这样的功能对于监控应用特别有用,可以帮助用户迅速识别出视频流中的关键信息。

客户端提供附加功能,比如保存带有检测结果的图像、记录视频片段,以及根据用户的偏好设置自定义的检测阈值或目标类别过滤等。通过这样的设计,客户端不仅能够满足基本的目标检测需求,还能根据具体的应用场景进行灵活的定制,提高用户体验和系统的实用性。

1.5 客户端运行效果

Qt制作的界面,运行目标检测的结果:

image-20230926163612143

image-20230926163441092

二、服务器选购

2.1 登录官网

链接:https://www.huaweicloud.com/

image-20240905140332361

在官网首页的轮播图里可以看到,有Flexus服务器的宣传。这是华为云匠心打造的下一代跃级产品,面向中低负载场景,性能倍增、体验跃级的服务器

2.2 选购服务器

在产品页面,也可以看到Flexus云服务的选项,点击进去选购服务器

image-20240905140614881

链接:https://www.huaweicloud.com/product/flexus.html

image-20240905140518001

在选购页面可以看到服务器推广器件,1年36块钱。 每个月的流量是100G,对于一些访问量不高的服务器或者测试用是非常合适的。

image-20240905140827022

当前我要选择的服务器是:Flexus云服务器X实例 ,点击Flexus系列产品,选择X实例。Flexus云服务器X实例符合:柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。

image-20240905142342028

2.3 选择服务器区域

针对时延敏感型业务请选择靠近您业务的区域,以降低网络时延,提高访问速度;针对和存量云产品有内网互通需求的业务,请选择和存量产品相同的区域。

image-20240905142546892

2.4 选择服务器规格

image-20240905143518832

2.5 选择系统镜像

我这选择ubuntu系统,用来搭建服务器。这个根据自己的情况选择,自己适合那一种就选择哪一种。

image-20240905160440609

2.6 选择存储盘

我选择150G大小。

image-20240905154238881

2.7 配置密码

设置好服务器的名字(如果你有多个服务器,为了自己好区别)和系统的登录密码。

image-20240905153958099

2.8 配置云备份

云备份这个不买。有需要自己可以购买。

image-20240905154322590

2.9 确认配置

image-20240905160511662

2.10 立即购买

image-20240905160537231

购买成功。

image-20240905160626605

创建成功之后,邮箱会收到提示的。

image-20240905160724142

2.10 后台控制台

链接:https://console.huaweicloud.com/ecm

在控制台可以看到服务器的详情。

image-20240905161142694

三、服务器登录

3.1 查看服务器的详情

点击服务器的名称,可以进去到详情页面。

image-20240905161621249

image-20240905161739687

3.2 远程登录

image-20240905161848020

填入设置好的密码。

image-20240905161919502

登录成功。

image-20240905161948036

3.9 采用FinalShell登录

自带的在浏览器里运行,每次需要打开浏览器,文件也不方便上传下载。

所以,这里开发阶段,我采用的 FinalShell登录到服务器

新建SSH连接,输入连接信息。

image-20240905162205597

登录成功。

image-20240905162444451

接下来就可以进行开发了。

YOLOv3_263">四、部署YOLOv3算法

YOLO_265">4.1 YOLO算法介绍

YOLO算法官网介绍:https://pjreddie.com/darknet/yolo/

image-20230926160707304

You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev.

You Only Look Once (YOLO) 是最先进的实时目标检测系统。在 Pascal Titan X 上,它以 30 FPS 处理图像,并且在 COCO 测试开发上的 mAP 为 57.9%。

Comparison to Other Detectors
YOLOv3 is extremely fast and accurate. In mAP measured at .5 IOU YOLOv3 is on par with Focal Loss but about 4x faster. Moreover, you can easily tradeoff between speed and accuracy simply by changing the size of the model, no retraining required!

与其他探测器的比较
YOLOv3 非常快速且准确。在 mAP 中,测量结果为 0.5 IOU YOLOv3 与 Focal Loss 相当,但速度快约 4 倍。此外,只需更改模型的大小即可轻松在速度和准确性之间进行权衡,无需重新训练!

4.2 快速部署算法模型

(1)安装darknet

root@flexusx-1a58:~# mkdir yolov3
root@flexusx-1a58:~# cd yolov3/
root@flexusx-1a58:~# git clone https://github.com/pjreddie/darknet
root@flexusx-1a58:~# cd darknet
root@flexusx-1a58:~# make

注意,如果clone失败,多测几次就行了。

image-20240906160612929

下载完成:

image-20240906161159343

编译过程中:

image-20240906161236617

编译完成:

image-20240906161534072

(2)下载权重文件

root@flexusx-1a58:~# wget https://pjreddie.com/media/files/yolov3.weights

yolov3.weightsYOLOv3 网络训练得到的权重文件,存储了神经网络中每个层次的权重和偏置信息。

cfg/目录下已经包含了yolov3对应的配置文件。

下载过程:

image-20240906161132293

(3)运行detector

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

image-20240906161749031

运行输出的信息:

layer     filters    size              input                output0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs.......105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs106 detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: 99%
truck: 93%
bicycle: 99%

image-20230926161227491

检测分类:

root@flexusx-1a58:~/yolov3/darknet# ./darknet detect cfg/yolov3.cfg yolov3.weights data/horses.jpg 

识别结果:

image-20240906162208341

image-20240906162415092

识别的结果可以直接打开。

image-20240906162305704

4.3 官方模型支持识别的目标类型

person
bicycle
car
motorbike
aeroplane
bus
train
truck
boat
traffic light
fire hydrant
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
wine glass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hot dog
pizza
donut
cake
chair
sofa
pottedplant
bed
diningtable
toilet
tvmonitor
laptop
mouse
remote
keyboard
cell phone
microwave
oven
toaster
sink
refrigerator
book
clock
vase
scissors
teddy bear
hair drier
toothbrush

五、总结

华为云正在举行其年度828 B2B企业节活动,期间提供了包括Flexus X实例在内的多种产品的优惠。对于那些对计算性能有较高要求,并且需要自行部署MySQL、Redis、Nginx等服务的用户来说,这次促销是一个很好的机会,建议有兴趣的朋友可以前往查看相关的优惠信息。

官网直达:https://activity.huaweicloud.com/828_promotion/index.html

image-20240906111030734


http://www.ppmy.cn/news/1521739.html

相关文章

【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十二)

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

【Kafka】怎么解决Kafka消费者消费堆积问题?

文章目录 一、引言二、Kafka消费堆积原因分析三、解决方案1. 重制消费点位2. 增加消费者数量3. 优化消费能力 四、重制消费点位五、增加消费者数量六、优化消费能力七、总结八、参考文献九、附录 摘要:在分布式系统中,Kafka作为消息队列中间件&#xff0…

比亚迪方程豹携手华为乾崑智驾,加速中国智驾技术向前

近日,比亚迪方程豹与华为乾崑智驾在深圳签署合作协议,中国两大科技巨头强强联合,共同合作开发全球首个硬派专属智能驾驶方案,实现整车智驾深度融合,首发搭载在即将上市的方程豹豹8车型。 比亚迪智驾以自主研发和开放合…

Nginx部署前端Vue项目的深度解析

目录 一、准备工作 1.1 开发环境 1.2 服务器环境 1.3 Nginx安装 二、构建Vue项目 三、上传静态文件到服务器 四、配置Nginx 五、测试并重新加载Nginx 六、访问Vue应用 七、高级配置 7.1 启用HTTPS 7.2 启用Gzip压缩 7.3 缓存控制 八、常见问题与解决方案 8.1 40…

Elasticsearch - SpringBoot 查询 es 相关示例

文章目录 前言Elasticsearch - SpringBoot 查询 es1. ES 整合2. 示例-简单匹配查询3. 示例-简单范围查询4. 示例-布尔查询-分页查询-match 查询5. 示例-布尔查询-分页查询-term查询前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而…

nvm使用(nodejs版本管理)

一、nvm下载、安装 nvm下载地址:Releases coreybutler/nvm-windows GitHubA node.js version management utility for Windows. Ironically written in Go. - Releases coreybutler/nvm-windowshttps://github.com/coreybutler/nvm-windows/releases 解压后运行…

DORIS - DORIS行存编码格式JSONB

是什么? JSONB(JavaScript Object Notation Binary)是PostgreSQL、MySQL数据库中的一种数据类型,用于存储和查询JSON数据。它提供了在数据库中存储和操作JSON数据的能力,使得数据库能够更好地处理半结构化数据。JSONB是一种半结构化的数据雷…

SQL性能治理经验谈

背景 SQL数据类型 数值 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。 类型大小范围(有符号)范围(无符号)用途TINYINT1 Bytes(-128…

vue 批量自动引入并注册组件或路由

有时候有大量的组件.vue后缀的,或.js,或.ts文件, 需要一个个的手动引入很麻烦,那么你可以尝试这样创建一个index.js 本项目使用vue3.x, vue2.x也可以照样用; 这里在components里面创建了一个idnex.js 文件 require.context 可以读取文件, 第一个参数是指当前文件夹, 第二个参…

828华为云征文|华为云Flexus X实例docker部署harbor镜像仓库

828华为云征文|华为云Flexus X实例docker部署harbor镜像仓库 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错…

搜维尔科技:数据手套+机械手遥操作,五指触感灵巧手解决方案!

本灵巧手模仿人手的自由度分配及相关运动学参数进行设计的灵巧手,整手的手指设计采用了模块化的思想。整机重量轻,单指指尖抓取力强,五指灵巧手作为人体机器人或者机械臂末端操作工具,在工业生产的特殊环境中,对复杂形…

太极八卦图时钟屏保 这个电脑屏保很有个性哦 你喜欢吗?

太极八卦图时钟屏保 这个电脑屏保很有个性哦 你喜欢吗?今天小编给大家带来一个非常好看的电脑屏保软件:芝麻时钟;https://clock.zhimasoft.cn/ 太极八卦图时钟屏保 小编在网上看到很多人找八卦时钟屏保,发现这个非常有特色&#…

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练 参考地址:https://aistudio.baidu.com/projectdetail/8271882 基于python35paddle120env环境 预测可视化结果: (一)安装环境: 先上传本地下载的源代码Pad…

火狐浏览器现在可以让你在不切换标签的情况下访问你最喜欢的AI聊天机器人 - 具体方法如下

希望快速使用生成式AI的Firefox用户,现在无需离开当前页面即可实现。周二发布的Firefox 130版带有一个设置选项,可以将您选择的聊天机器人添加到侧边栏中。 这一AI功能是设置界面中新的Firefox实验室页面的一部分,您可以通过该页面试验由Moz…

pytorch 模型部署

AI模型部署基本步骤 在训练好模型后,需要将模型进行部署,一般情况下,AI模型部署基本步骤有: 获取模型文件对模型进行转换,也就是所谓的parse或者convert针对转换后的模型进行优化,可能涉及很多优化步骤在…

记录k8s重启之后kubelet无法启动的问题

重启机器后,kubelet没有自启动,手动启动失败,检查日志反馈找不到bootstrap-kubelet.conf这个文件。 systemctl start kubelet journalctl -u kubelet 57481 run.go:74] "command failed" err"failed to run Kubelet: unable …

我店平台商业模式深度剖析

“我店”平台采用了融合线上与线下资源,并以绿色积分为激励机制的创新商业模式。此模式旨在打造一个集购物、消费及积分兑换为一体的综合性服务平台。编辑v:qawsed2466。以下是对其商业模式的深入剖析: 平台定位与背景 “我店”由上海我店科…

两个月冲刺软考——逻辑地址与物理地址的转换(例题+讲解);文件类型的考点

1.已知计算机系统页面大小和进程的逻辑地址,根据页面变换表(页号-物理块号),求变换后的物理地址。 首先介绍几个公式: 逻辑地址 页号 页内地址 (默认为32机位) 物理地址 物理块号 物理地址的页内地址 其中:页内地址 物理地址…

ant mobile design组件库的PickerView组件不能滑动

问题 PickerView组件在开发环境可滑动,在测试环境不可滑动 正常开发环境是这样正常显示,并且可滑动的 发到测试环境后,变成了这样,并且只有中间那列可滑动,两边的都不能滑动,而且还会报警告 封装的组件…

Qt/C++百度地图/高德地图/天地图/腾讯地图/谷歌地图/加载绘图工具栏

一、前言说明 在地图中提供一个绘图工具栏,可以便捷的在地图上添加各种覆盖物,比如折线、多边形、矩形、圆形等,然后可以获取这些覆盖物的路径以及中心点等属性。这里有几个小插曲,比如百度地图gl版本默认不提供这个功能&#xf…