[集创赛海云捷讯杯]全国二等奖经验分享

[集创赛海云捷讯杯]全国二等奖经验分享

  • 一.前言
  • 二.我们的作品
  • 三.小结

一.前言

笔者是研一在校生,从五月份开始和本科生一起卷集创赛,经历初赛,分赛区决赛,全国总决赛,认识了很多一起做比赛的朋友收获颇丰。今年海云杯初赛报名队伍340支左右,晋级分赛区决赛的队伍130支,晋级全国总决赛22支加上各赛区优秀组织队伍报送一共晋级全国总决赛26支队伍。在淘汰率方面可以说是各杯赛最卷的几个杯赛之一了。其中我在的东北赛区分赛区八组晋级一组总决赛,除了西南赛区各个赛区也基本上都是这个比例。
为了记录一下集创赛的过程,也为下一届报名海云杯的同学们提供些借鉴,计划未来一两个月推出海云捷讯集创赛经验贴分享专栏。在专栏中会尽可能的详细介绍在做海云杯的过程中遇到的困难,和解决思路。

二.我们的作品

目前,基于FPGA的机器视觉技术在缺陷检测领域发展迅速,深度学习技术凭借其不需要人工、依靠卷积神经网络的特征表征能力自动提取特征的优点被广泛应用于缺陷检测领域。本设计基于海云自研CNN加速器,对AI框架进行深度优化,更高效的利用CNN加速器,从而实现机器视觉缺陷检测。
在这里插入图片描述
本文首先阐述了DVP、VGA时序、模型缩放、QAT量化、MobileNet_SSD算法等的原理,对Paddle-lite推理框架、工业缺陷检测存在的问题以及小目标识别的解决策略进行了详细阐述。训练一个全精度mobilenet_v1_ssd模型作为基准模型。针对样本中针孔识别置信度较低的问题,将算法默认的先验框大小进行了调整,提高了针孔样本推理置信度。对SDK各部分进行耗时分析,使用neon指令集优化输入输出重排,使推理时间降低至570ms左右。同时对模型先验框算子进行离线运算,将推理时间降低到220ms。在自定义位置插入伪量化节点,完全卷积全融合,将推理时间降低到186ms。通过敏感度分析结果,使用量化裁剪联合调度策略,完成裁剪,使推理时间降低为55ms。使用临近插值算法进行图形缩放算法优化。使用模块分层设计和状态机的方案重写dvp_ddr3,ddr3_vga,输入重排和预处理加速等模块,使系统能够流畅运行。在完成图片推理后,我们再联合调度摄像头、HDMI和加速器。成功的实现了视频读入输出,实现推理与摄像头加载图像的并行化,使推理刷新时间达到76ms。进一步地,通过多线程调度推理和HDMI刷新,提升pl侧的时钟频率,将HDMI平均刷新帧率提升至38Hz,平均推理刷新速度85ms。

我们使用模块分层设计和状态机的方案成功实现了dvp_ddr3,ddr3_vga,输入重排和预处理四个IP。经过上述优化,推理刷新时间最短为82ms,平均为85ms。HDMI平均刷新帧率为38Hz。成功检测了分赛区测试视频的十份缺陷样本,完成了赛题要求的设计指标。为了进一步提升推理刷新速度,我们自主设计了基于脉动阵列的CNN加速器,通过Avalon-mm总线进行系统互联,使用分层次状态机的方案完成数据加载和调度。
在这里插入图片描述

在这里插入图片描述

三.小结

等笔者写完毕设开题再回来更新!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/59693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ工作模式-发布订阅模式

Publish/Subscribe(发布订阅模式) 官方文档: https://www.rabbitmq.com/tutorials/tutorial-three-python.html 使用fanout类型类型的交换器,routingKey忽略。每个消费者定义生成一个队列关绑定到同一个Exchange,每个…

性能测试jmeter连接数据库jdbc(sql server举例)

一、下载第三方工具包驱动数据库 1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现。 (有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有jdbc取样器,但不能发…

外观模式:简化复杂子系统的访问与使用

文章目录 1. 简介2. 外观模式的基本结构3. 外观模式的实现步骤4. 外观模式的应用与实例4.1 图形界面库的外观模式应用4.2 文件压缩与解压缩的外观模式应用4.3 订单处理系统的外观模式应用 5. 外观模式的优缺点5.1 优点5.2 缺点 6. 总结 1. 简介 外观模式是一种结构型设计模式&…

Linux服务器安装部署MongoDB数据库 – 【无公网IP远程连接】

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 前言 MongoDB是一个基于分布式文件存储的数据库。由 C 语言编写,旨在为 WEB 应用提供可扩展的高…

什么是OLAP

一、什么是OLAP OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。可以比较下其与传统的OLTP(On-line Transaction Processing,联机事务处理&…

Redisson分布式锁 原理源码 分析

# 基于setnx实现的分布式锁存在的问题: # 为了解决上面的问题,可以用Redisson # Redisson入门 # Redisson可重入锁原理 获取锁的Lua脚本: 释放锁的Lua脚本: # 锁重试原理分析 tryLock()底层代码分析 tim…

什么是自动语音识别?

在人工智能发展和全球疫情的双重作用下,企业加强了与客户的线上沟通。企业越发依赖于虚拟助手、聊天机器人以及其他的语音技术,以实现与客户的高效互动。这几类人工智能,都是依赖于自动语音识别技术,简称为ASR。ASR涉及到将语音转…

LLM推理部署(一):LLM七种推理服务框架总结

自从ChatGPT发布以来,国内外的开源大模型如雨后春笋般成长,但是对于很多企业和个人从头训练预训练模型不太现实,即使微调开源大模型也捉襟见肘,那么直接部署这些开源大模型服务于企业业务将会有很大的前景,本文将介绍七…

Effective C++条款16——成对使用new和delete时要采取相同形式(资源管理)

以下动作有什么错? std::string* stringArray new std::string[100]; // ... delete stringArray;每件事看起来都井然有序。使用了new,也搭配了对应的 delete。但还是有某样东西完全错误:你的程序行为不明确(未有定义)。最低限度&#xff…

PHP竞赛管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP 竞赛管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88244066 二、功能介绍 后…

C#_特性反射详解

特性是什么? 为程序元素额外添加声明信息的一种方式。 字面理解:相当于把额外信息写在干胶标签上,然后将其贴在程序集上。 反射是什么? 反射是一种能力,运行时获取程序集中的元数据。 字面理解:程序运行…

一键实现 Oracle 数据整库同步至 Apache Doris

在实时数据仓库建设或迁移的过程中,用户必须考虑如何高效便捷将关系数据库数据同步到实时数仓中来,Apache Doris 用户也面临这样的挑战。而对于从 Oracle 到 Doris 的数据同步,通常会用到以下两种常见的同步方式: OGG/XStream/Lo…

设计模式-桥接模式

核心思想 适配器模式类似,以后也会遇到意思接近一样的设计模式。在开发中一般多个模式混用,且根据不同的场景进行搭配,桥接模式也是结构型模式将抽象的部分和实现的部分分离,使它们都可以独立的变化。通俗来说,就是通…

Linux特殊指令

目录 1.dd命令 2.mkfs格式化 3.df命令 4.mount实现硬盘的挂载 5.unshare 1.dd命令 dd命令可以用来读取转换并输出数据。 示例一: if表示infile,of表示outfile。这里的/dev/zero是一个特殊文件,会不断产生空白数据。 bs表示复制一块的大…

vscode 对模型train、detect脚本进行Debug时配置参数

我们训练yolov5代码时,一般会配置一些参数,比如模型权重文件--weights, 模型的配置文件--cfg, 以及训练的数据--data, 对应的训练脚本为: 训练train python train.py -- weights ./yolov5s.pt --cfg models\yolov5s.yaml --data ./data/coco128.yaml…

9.oracle中sign函数

在Oracle/PLSQL中, sign 函数返回一个数字的正负标志. 语法如下&#xff1a;sign( number ) number 要测试标志的数字. If number < 0, then sign returns -1. If number 0, then sign returns 0. If number > 0, then sign returns 1. 应用于: Oracle 8i, Oracle …

Docker - Docker安装MySql并启动

因为项目需要连接数据库&#xff0c;但是远程服务器上的mysql我不知道账户和密码&#xff0c;这个时候便是docker发挥作用的关键时刻了&#xff01; 目录 docker安装安装gcc卸载老docker&#xff08;如有&#xff09;安装软件包设置镜像仓库更新yum软件包索引安装docker启动doc…

SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发

SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录&#xff08;第五天&#xff09;MyBatis的注解开发 ​ 昨天我们深入学习了MyBatis多表之间的关联映射&#xff0c;了解掌握了一对一关联映射&#xff0c;一对多关联映射&#xff0c;嵌套查询方…

微信小程序如何实现页面传参和页面传递多个参数

前言 只要你的小程序超过一个页面那么可能会需要涉及到页面参数的传递&#xff0c;下面我总结了 4 种页面方法。 下面时多个参数页面传参的方式 let loveJSON.stringify(this.data.totle);let youJSON.stringify(this.data.totleId)let csdnJSON.stringify(this.data.totleP…

Linux系统下vim常用命令

一、基础命令&#xff1a; v:可视模式 i:插入模式 esc:命令模式下 :q &#xff1a;退出 :wq &#xff1a;保存并退出 ZZ&#xff1a;保存并退出 :q! &#xff1a;不保存并强制退出二、在Esc下&#xff1a; dd : 删除当前行 yy:复制当前行 p:复制已粘贴的文本 u:撤销上一步 U:…