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

本文主要是介绍828华为云征文|采用华为云Flexus云服务器X实例部署YOLOv3算法完成目标检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言
    • 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%的算力成本,从而实现业务的全面提速和效能提升,享受到云基础设施的显著改进体验。

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算法

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.weights 是 YOLOv3 网络训练得到的权重文件,存储了神经网络中每个层次的权重和偏置信息。

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

这篇关于828华为云征文|采用华为云Flexus云服务器X实例部署YOLOv3算法完成目标检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144153

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss