利用PaddleDetection部署自己的轻量级移动检测嵌入式平台(多种高性能网络模型)--Pytorch实现

总结:绘上一张Kakfa架构思维大纲脑图(xmind)

image

其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?

若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理

梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。

  • Kafka入门

  • 为什么选择Kafka

  • Kafka的安装、管理和配置

  • Kafka的集群

  • 第一个Kafka程序

  • Kafka的生产者

  • Kafka的消费者

  • 深入理解Kafka

  • 可靠的数据传递

  • Spring和Kafka的整合

  • SpringBoot和Kafka的整合

  • Kafka实战之削峰填谷

  • 数据管道和流式处理(了解即可)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

000000570688

image-20211217212536786

②视频展示

# 利用PaddleDetection部署自己的轻量级移动检测嵌入式平台(多种高性能网络模型)–Pytorch实现

2.背景


PaddleDetection 是百度飞桨推出的物体检测统一框架。支持现有的RCNN、SSD、YOLO等系列模型、支持 ResNet、ResNet-VD、ResNeXt、ResNeXt-VD、SENet、MobileNet、DarkNet等主干网络。针对不同的业务场景(性能、目标大小、准确率等)可以选择框架中的不同模块组合得到最适合的模型,实现任务。相比于tensorflow的Object_Detection,优势之一就是将YOLOv3这一目标检测的快速算法融合到了框架下。

地址:飞桨PaddlePaddle-源于产业实践的开源深度学习平台

3.安装PaddlePaddle


pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

或者通过Github地址:

PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. (github.com)")

4.预训练模型的下载


PaddleDetection提供的非常丰富的预训练库,各种经典检测、分割、识别、追踪等任务的优秀框架模型供我们选择:

比如yolov3在coco和voc数据集上的预训练模型和权重列表如下:

YOLOv3 on COCO:

| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | 推理时间(fps) | Box AP | 下载 | 配置文件 |

| — | — | — | — | — | — | — | — |

| DarkNet53(paper) | 608 | 8 | 270e | ---- | 33.0 | - | - |

| DarkNet53(paper) | 416 | 8 | 270e | ---- | 31.0 | - | - |

| DarkNet53(paper) | 320 | 8 | 270e | ---- | 28.2 | - | - |

| DarkNet53 | 608 | 8 | 270e | ---- | 39.0 | 下载链接 | 配置文件 |

| DarkNet53 | 416 | 8 | 270e | ---- | 37.5 | 下载链接 | 配置文件 |

| DarkNet53 | 320 | 8 | 270e | ---- | 34.6 | 下载链接 | 配置文件 |

| ResNet50_vd | 608 | 8 | 270e | ---- | 39.1 | 下载链接 | 配置文件 |

| ResNet50_vd | 416 | 8 | 270e | ---- | 36.6 | 下载链接 | 配置文件 |

| ResNet50_vd | 320 | 8 | 270e | ---- | 33.6 | 下载链接 | 配置文件 |

| ResNet34 | 608 | 8 | 270e | ---- | 36.2 | 下载链接 | 配置文件 |

| ResNet34 | 416 | 8 | 270e | ---- | 34.3 | 下载链接 | 配置文件 |

| ResNet34 | 320 | 8 | 270e | ---- | 31.2 | 下载链接 | 配置文件 |

| MobileNet-V1 | 608 | 8 | 270e | ---- | 29.4 | 下载链接 | 配置文件 |

| MobileNet-V1 | 416 | 8 | 270e | ---- | 29.3 | 下载链接 | 配置文件 |

| MobileNet-V1 | 320 | 8 | 270e | ---- | 27.2 | 下载链接 | 配置文件 |

| MobileNet-V3 | 608 | 8 | 270e | ---- | 31.4 | 下载链接 | 配置文件 |

| MobileNet-V3 | 416 | 8 | 270e | ---- | 29.6 | 下载链接 | 配置文件 |

| MobileNet-V3 | 320 | 8 | 270e | ---- | 27.1 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 608 | 8 | 270e | ---- | 31.0 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 416 | 8 | 270e | ---- | 30.6 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 320 | 8 | 270e | ---- | 28.4 | 下载链接 | 配置文件 |

YOLOv3 on Pasacl VOC:

| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | 推理时间(fps) | Box AP | 下载 | 配置文件 |

| — | — | — | — | — | — | — | — |

| MobileNet-V1 | 608 | 8 | 270e | - | 75.2 | 下载链接 | 配置文件 |

| MobileNet-V1 | 416 | 8 | 270e | - | 76.2 | 下载链接 | 配置文件 |

| MobileNet-V1 | 320 | 8 | 270e | - | 74.3 | 下载链接 | 配置文件 |

| MobileNet-V3 | 608 | 8 | 270e | - | 79.6 | 下载链接 | 配置文件 |

| MobileNet-V3 | 416 | 8 | 270e | - | 78.6 | 下载链接 | 配置文件 |

| MobileNet-V3 | 320 | 8 | 270e | - | 76.4 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 608 | 8 | 270e | - | 78.3 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 416 | 8 | 270e | - | 79.6 | 下载链接 | 配置文件 |

| MobileNet-V1-SSLD | 320 | 8 | 270e | - | 77.3 | 下载链接 | 配置文件 |

| MobileNet-V3-SSLD | 608 | 8 | 270e | - | 80.4 | 下载链接 | 配置文件 |

| MobileNet-V3-SSLD | 416 | 8 | 270e | - | 79.2 | 下载链接 | 配置文件 |

| MobileNet-V3-SSLD | 320 | 8 | 270e | - | 77.3 | 下载链接 | 配置文件 |

注意: YOLOv3均使用8GPU训练,训练270个epoch。由于动态图框架整体升级,以下几个PaddleDetection发布的权重模型评估时需要添加–bias字段, 例如:

使用PaddleDetection发布的权重

CUDA_VISIBLE_DEVICES=0 python tools/eval.py -c configs/ppyolo/yolov3_darknet53_270e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/yolov3_darknet53_270e_coco.pdparams --bias

5.模型导出(python端)


第三步骤中得到训练权重模型后,接下来进行python端的模型导出。

代码如下:

导出YOLOv3模型

python tools/export_model.py -c configs/yolov3/yolov3_darknet53_270e_coco.yml --output_dir=./inference_model \

-o weights=weights/yolov3_darknet53_270e_coco.pdparams

image-20211217221027561

配置说明:

image-20211217221159091

导出成功后会出现如下几个文件:

image-20211217221309156

或者其他:

我自己用的:yolov3_darknet53_270e_coco

python tools/export_model.py -c configs/yolov3/yolov3_darknet53_270e_coco.yml --output_dir=./inference_model -o weights=weights/yolov3_darknet53_270e_coco.pdparams TestReader.inputs_def.image_shape=[3,640,640]

我自己用的:cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x_coco

python tools/export_model.py -c configs/dcn/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x_coco.yml --output_dir=./inference_model -o weights=weights/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x_coco.pdparams

6.模型预测


支持很多种方法的预测,包括:单张图片、文件夹下图片、单个视频、文件夹下视频、实时调用摄像头等。

参数配置如下:

| FLAG | 支持脚本 | 用途 | 默认值 | 备注 |

| — | — | — | — | — |

| -c | ALL | 指定配置文件 | None | 必选,例如-c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml |

| -o | ALL | 设置或更改配置文件里的参数内容 | None | 相较于-c设置的配置文件有更高优先级,例如:-o use_gpu=False |

| --eval | train | 是否边训练边测试 | False | 如需指定,直接--eval即可 |

| -r/–resume_checkpoint | train | 恢复训练加载的权重路径 | None | 例如:-r output/faster_rcnn_r50_1x_coco/10000 |

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Mybatis 3源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Redis学习笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Spring Boot核心技术-笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

举一反三:

[外链图片转存中…(img-QYc7WkWW-1715504575921)]

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值