百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

23.基于PP-PicoDet轻量级目标检测模型——实现目标检测项目

bigegpt 2024-09-29 09:19 3 浏览

一、PP-PicoDet模型简介

PP-PicoDet是轻量级目标检测模型,在移动端具有卓越的性能。更好的精度和效率权衡一直是物体检测中一个具有挑战性的问题。

为提高准确性和效率,他们研究了无锚点策略在轻量级对象检测模型上的适用性,增强了骨干结构,设计了颈部的轻量化结构,提高了网络的特征提取能力。改进标签分配策略和损失功能,使训练更加稳定和高效。

该模型在准确性和延迟之间实现了更好的权衡。PicoDet-S只有0.99M参数,实现了30.6%的mAP,这是mAP的绝对4.8%改进,同时与YOLOX-Nano相比将移动CPU推理延迟降低了55%,并且与NanoDet相比,mAP绝对提高了7.1%。当输入大小为 320 时,它在移动 ARM CPU 上达到 123 FPS(使用 Paddle Lite 时为 150 FPS)。仅330万个参数的PicoDet-L达到40.9%的mAP,绝对比YOLOv5s提高3.7%,快44%。

模型特色:

  • 更高的mAP: 第一个在1M参数量之内mAP(0.5:0.95)超越30+(输入416像素时)。
  • 更快的预测速度: 网络预测在ARM CPU下可达150FPS。
  • 部署友好: 支持PaddleLite/MNN/NCNN/OpenVINO等预测库,支持转出ONNX,提供了C++/Python/Android的demo。
  • 先进的算法: 在现有SOTA算法中进行了创新, 包括:ESNet, CSP-PAN, SimOTA等等。


注:以上部分文字来源于官网



二、项目实战——bottle目标检测

1、数据准备和划分:命令行下运行

paddlex --split_dataset --format VOC --dataset_dir bottle --val_value 0.2 --test_value 0.1

2、模型训练

import paddlex as pdx
from paddlex import transforms as T

train_transforms = T.Compose([
    T.RandomCrop(), T.RandomHorizontalFlip(), T.RandomDistort(),
    T.BatchRandomResize(
        target_sizes=[576, 608, 640], interp='RANDOM'), T.Normalize(
            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

eval_transforms = T.Compose([
    T.Resize(
        target_size=640, interp='CUBIC'), T.Normalize(
            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# 定义训练和验证所用的数据集
# API说明:https://github.com/PaddlePaddle
train_dataset = pdx.datasets.VOCDetection(
    data_dir='bottle',
    file_list='bottle/train_list.txt',
    label_list='bottle/labels.txt',
    transforms=train_transforms,
    shuffle=True)

eval_dataset = pdx.datasets.VOCDetection(
    data_dir='bottle',
    file_list='bottle/val_list.txt',
    label_list='bottle/labels.txt',
    transforms=eval_transforms,
    shuffle=False)

num_classes = len(train_dataset.labels)
model = pdx.det.PicoDet(num_classes=num_classes, backbone='ESNet_l')

model.train(
    num_epochs=20,
    train_dataset=train_dataset,
    train_batch_size=14,
    eval_dataset=eval_dataset,
    pretrain_weights='COCO',
    learning_rate=.05,
    warmup_steps=24,
    warmup_start_lr=0.005,
    save_interval_epochs=1,
    lr_decay_epochs=[6, 8, 11],
    use_ema=True,
    save_dir='output/picodet_esnet_l-bottle',
    use_vdl=True)



3、导出部署模型:命令行下运行

paddlex --export_inference --model_dir best_model --save_dir inference



4、模型预测

#划分数据集7:2:1
#paddlex --split_dataset --format VOC --dataset_dir bottle --val_value 0.2 --test_value 0.1
#输出部署模型
#paddlex --export_inference --model_dir best_model --save_dir inference
import paddlex as pdx
import cv2
import os
#os.environ["CUDA_VISIBLE_DEVICES"]="0,1"
predictor=pdx.deploy.Predictor("output/picodet_esnet_l-bottle/inference_model",use_gpu=True)
imgfile="bottle/bottletest.jpg"
img=cv2.imread(imgfile)
result=predictor.predict(img)
#预测结果显示
vis_img=pdx.det.visualize(img,result,threshold=0.5,save_dir=None)
cv2.imshow("result",vis_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

注:以下预测时间信息是在CPU下,没有GPU环境。

------------------ Inference Time Info ----------------------

total_time(ms): 2061.4, img_num: 1, batch_size: 1

average latency time(ms): 2061.40, QPS: 0.485107

preprocess_time_per_im(ms): 11.70, inference_time_per_batch(ms): 2049.70, postprocess_time_per_im(ms): 0.00



从该目标检测项目来看,特别是在没有GPU环境,迭代5次,训练时间约20多分钟,准确率能达85%以上,而且模型大小不足20MB,所以说PP-PicoDet总体表现还是非常优秀的。

相关推荐

有些人能留在你的心里,但不能留在你生活里。

有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...

Python学不会来打我(34)python函数爬取百度图片_附源码

随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

软网推荐:图像变变变 一“软”见分晓

当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...

首款WP8.1图片搜索应用,搜照片得资料

首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...

分享一组美图(图片来自头条)(头条美女头像)

...

盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载

出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...

微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版

IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...

谷歌手把手教你成为谣言终结者 | 域外

刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...

NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!

还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...

为庆祝杜特尔特到访,这个国家宣布全国放假?

(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...

一课译词:毛骨悚然(毛骨悚然的意思是?)

PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...

Bing Overtakes Google in China's PC Search Market, Fueled by AI and Microsoft Ecosystem

ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...

找图不求人!6个以图搜图的识图网站推荐

【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...

浏览器功能和“油管”有什么关联?为什么要下载

现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...