摘要:YOLOv3(You Only Look Once version 3)是一种高效的目标检测算法,旨在实现快速而准确的对象检测。

本文分享自华为云社区《华为云开发者云主机体验【玩转华为云】》,作者: DS小龙哥。

一、前言

云主机是华为云为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具体系,让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

二、领取云主机

领取地址:https://developer.huaweicloud.com/developerspace

申请之后,会提示加入开发者空间,根据提示选择配置就行了。

配置之后。在这里可以进去云主机的公众空间。

第一次配置,初始化需要一点时间。

初始化完毕之后,就可以进去桌面体验了。

下面是进入桌面的提示状态。

进去桌面后的效果。

直接在浏览器里访问很方面。 非常方便在Linux环境下做项目开发测试。

对于复制粘贴,本地电脑不能直接copy,需要使用工具进行安全的复制粘贴。

三、快速体验YOLOV3

YOLOv3(You Only Look Once version 3)是一种高效的目标检测算法,由Joseph Redmon等人开发。它是YOLO系列算法的第三个版本,旨在实现快速而准确的对象检测。与传统的两阶段目标检测方法(如R-CNN系列算法)不同,YOLOv3采用了一次性(single-shot)检测方法,这意味着它可以在一个单一的神经网络前向传播过程中同时完成对象分类和边界框回归。

YOLOv3的主要特性包括:

  1. 主干网络:YOLOv3使用Darknet-53作为其基础网络,这是对YOLOv2中Darknet-19的一个深度增强版,提供了更好的特征提取能力。
  2. 多尺度检测:YOLOv3采用了特征金字塔网络(Feature Pyramid Network,FPN)的概念,实现了在三个不同的尺度上进行检测,分别是13x13、26x26和52x53的特征图分辨率,这有助于检测不同大小的对象。
  3. 锚框(Anchor Boxes):YOLOv3使用预定义的锚框来预测对象的位置,这些锚框是通过对训练数据集中对象的尺寸进行聚类得到的。
  4. 分类器:在对象分类方面,YOLOv3使用Logistic回归来预测每个类别的概率,这允许它处理包含多个标签的对象,即一个对象可能属于多个类别的情况。
  5. 损失函数:YOLOv3的损失函数综合考虑了边界框坐标、对象存在性和类别预测的误差。
  6. 训练和预测:YOLOv3能够在单张图像上同时预测多个对象,且由于其一次性检测的特性,它能实现实时处理速度,非常适合实时视频流处理等场景。

YOLOv3因其在速度与精度之间的良好平衡而在工业界和学术界得到了广泛应用。随着后续版本如YOLOv4和YOLOv5的推出,虽然YOLOv3可能不再是最新版本,但它仍然是理解和实现现代目标检测算法的重要基准。

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

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 倍。此外,只需更改模型的大小即可轻松在速度和准确性之间进行权衡,无需重新训练!

在Linux下快速体验YOLO算法的目标检测(采用官方的模型)。

(1)安装darknet

git clone https://github.com/pjreddie/darknet
cd darknet
make

如果克隆失败,多试几次即可。

编译中:

(2)下载权重文件

wget https://pjreddie.com/media/files/yolov3.weights

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

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

权重文件下载中:

(3)运行detector

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

运行输出的信息:

layer     filters    size              input                output
0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BFLOPs
1 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 BFLOPs
106 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%

运行过程:

查看原来图片:

查看识别成功的图片:

识别测试2:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>

如果想实时识别视频,可以运行下面的命令:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>

点击关注,第一时间了解华为云新鲜技术

免费领取云主机,在华为开发者空间玩转YOLOV3的更多相关文章

  1. APICloud联合腾讯云推出“云主机解决方案“,各种福利等你拿

    为了帮助开发者一站式打通云.开发.运维全流程服务,更全面提供基于自身业务情况的云服务器.数据库.存储等基础设施服务,APICloud联合腾讯云重磅推出“云主机解决方案“.开发者可通过控制台简单清晰的购 ...

  2. 云主机与vps虚拟主机的区别

    云计算时代,云主机其可扩展性.价格便宜.安全可靠的特性深受企业和开发者欢迎,但目前有些IDC企业,新瓶装旧酒,将虚拟主机.VPS进行包装推出所谓的云主机服务,为了帮助用户更好的辨别和挑选云主机,下文详 ...

  3. Linux云主机 监控方案浅析

    1.为何需要监控 监控是运维工程师的眼睛,它可帮助运维工程师第一时间发现系统的问题. 对于服务器的整个生命周期,都要和监控打交道: 当有服务器上架,都需要加入比如CPU负载.内存.网络.磁盘等基础监控 ...

  4. 华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活

    11月4日,华为开发者大会HDC2022在东莞松山湖拉开帷幕.HMS Core在本次大会上带来了包括音频编辑服务的高拟真歌声合成技术.视频编辑服务的智能提取精彩瞬间功能.3D Engine超大规模数字 ...

  5. 保姆级教程:用GPU云主机搭建AI大语言模型并用Flask封装成API,实现用户与模型对话

    导读 在当今的人工智能时代,大型AI模型已成为获得人工智能应用程序的关键.但是,这些巨大的模型需要庞大的计算资源和存储空间,因此搭建这些模型并对它们进行交互需要强大的计算能力,这通常需要使用云计算服务 ...

  6. 真假云主机,VPS资料集合

    资料来源: http://www.west263.com/services/CloudHost/pk.asp?ads=baidu912 用"云里雾里"形容中小企业用户对云计算的理解 ...

  7. 虚拟主机、VPS、云主机以及独立服务器的关系

    很多人对虚拟主机.VPS.云主机以及独立服务器的关系不是很了解,我在这里给大家简单分析一下. 先总结一下: (1)虚拟主机是把一台物理机器分割成很多的小空间,这些空间共享操作系统的资源,比如:同一个操 ...

  8. 阿里云主机和RDS使用心得

    本文上非广告,只是将这近1年的使用过程给大家分享一下. 去年下半年,服务器托管到期,加上服务器也使用了5.6年,严重老化,当时正好看到阿里云的宣传广告,就开始了阿里云使用历程.陆续购买了4台云主机,I ...

  9. 聊一聊我的阿里云ECS云主机

    javaweb学习有段时间了,期间也编写了一些自己的小webapp应用,但是都是发布在我们自己的个人pc上的. 于是我在想:怎么样让自己的项目可以发到公网上面去,让朋友们能够来访问? 我首先想到的是: ...

  10. 虚拟主机、VPS以及云主机的区别和对比

    对于很多需要建网站的朋友来说,虚拟主机是必须要了解的基础知识.虚拟主机相对于VPS与云主机来说出现的较早,也是被大多数站长所了解的主机.很多人容易将这三者混淆,弄不清楚三者的联系与区别.那么虚拟主机. ...

随机推荐

  1. Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算

    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算 1.定义请求和返回对象的上下文对象 package com.example.core.mydemo.java.filter; i ...

  2. Elasticsearch之Nested Query nestedQuery查询数组

    es是通过符合条件的json记录找出来,本身并不是将数据中的记录filter过滤.es nestedQuery不是过滤的结果,是匹配的这条es记录,所以数组中的其他的记录也会查询出来1.方法1:可以在 ...

  3. 中国电信登录RSA算法+分析图文

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 中国电信登录RSA算法+分析图文 日期:2016-9-30 ...

  4. 剖析 Kafka 消息丢失的原因

    目录 前言 一.生产者导致消息丢失的场景 场景1:消息体太大 解决方案 : 1.减少生产者发送消息体体积 2.调整参数max.request.size 场景2:异步发送机制 解决方案 : 1.使用带回 ...

  5. Linux-swap管理

    什么是Swap Swap:交换空间,即虚拟内存,用于解决内存不足的问题. 在内存不足的时候,会将内存中不常使用的部分存入硬盘,使得内存得以腾出空间供新的程序使用. 那么,虚拟内存即为硬盘中的部分. S ...

  6. 如何让其他模型也能在SemanticKernel中调用本地函数

    在SemanticKernel的入门例子中: // Import packages using Microsoft.SemanticKernel; using Microsoft.SemanticKe ...

  7. Intellij IDEA 'Error:java: 无效的源发行版:13'

    第一步,依次点击,File - Settings - Bulid, Execution,Deployment - Compiler - Java Compiler,修改版本为13(你使用的java是哪 ...

  8. Linux-shell编程入门基础

    目录 前言 Shell编程 bash特性 shell作用域 变量 环境变量 $特殊变量 $特殊状态变量 $特殊符号(很重要) 其他内置shell命令 shell语法的子串截取 统计 指令执行时间 练习 ...

  9. django python 获取当天日期

    from datetime import date today = date.today() print(today) 在Python中,你可以使用datetime模块来获取当前日期.具体获取当前日期 ...

  10. NodeJS中Buffer与字符串相互转换时一个值得注意的问题

    什么问题 如果一个Buffer的 toString() 结果为乱码或含有乱码,那么用此字符串以 Buffer.from()方法构造出来的Buffer将与原来的Buffer不相同. 这一点其实很好理解, ...