- 博客(114)
- 收藏
- 关注
原创 一种滑窗像素自差值的深度学习损失函数
深度学习作为新兴技术在图像领域蓬勃发展,因其自主学习图像数据特征避免了人工设计算法的繁琐,精准的检测性能、高效的检测效率以及对各种不同类型的图像任务都有比较好的泛化性能,使得深度学习技术在图像领域得到广泛应用,包括图像检测、图像分类、图像重构等。在图像生成/重构任务中,如何评价生成/重构的图像和原图的差异即损失函数,是指导神经网络调试训练的关键因素,一般的图像生成/重构损失函数为均方误差(MSE)和KL距离。
2025-04-26 14:12:40
584
原创 SpinalHDL之心脏起搏器通讯模块(下篇)
寄存器模块用于定义寄存器各个数据位,接收上层模块通过APB总线配置数据,接收RX模块收到的程控头数据,送给TX模块要发送数据,提供FIFO用于保存Marker帧数据,寄存器保存的各种数据状态位给其他模块提供判断依据。判断下行数据的时序和格式是否和协议一致,并从中解析数有效数据,更新REG模块中的状态位。输入的d_in数据先做跨时钟预处理,同步到当前4kHz时钟域,再做去毛刺处理,FSM控制数据的接收,正确数据存入数据寄存器,并更新状态寄存器。篇,最近做了个心脏起搏器的项目,介绍一下其中的通讯模块。
2025-01-20 12:49:16
760
原创 SpinalHDL之心脏起搏器通讯模块(上篇)
本文介绍其中的通讯协议,用于外部程控头和体内心脏起搏器之间的无线通讯,该模块接收程控头的downlink数据,用于配置心脏起搏器的寄存器参数,控制整个心脏起搏器的运行,并且uplink心脏起搏器的状态参数给外部程控头。由于使用的是基于载波的无线通讯,通讯模块包括数字和模拟部分,本文只介绍数字部分。该模块数字部分全部使用SpinalHDL编码。由于是公司项目,不介绍具体细节,主要侧重SpinalHDL在实际项目中的应用,以及一些错误点。篇,最近做了个心脏起搏器的项目,介绍一下其中的通讯模块。
2025-01-10 12:06:25
338
原创 基于深度学习多图像融合的屏幕缺陷检测方案
本专利通过对缺陷显示屏使用不同的光学方案进行多次拍照,得到不同拍摄角度和拍摄方式的三张不同图像,使用深度学习神经网络的方式得到三张图像的特征信息,并加以特征对齐和融合,形成一个统一的特征信息空间,全面包含了三张图像中的不同信息,得到更加全面完整的缺陷特征,使得后期的检测任务可以使用三张图像中的多个角度丰富的缺陷信息,使得缺陷检测精度大大提高,也避免了传统多图像算法需要对各张图像单个处理的弊端,消除了单张图像中缺陷信息不完整不丰富的缺点,以及免除了传统算法后期需要进行多张图像特征对齐的麻烦。
2024-12-22 19:55:23
1428
原创 SpinalHDL之CRC
根据配置信息,在state中存入CRC初始值,acc和输入的每一位数据进行CRC计算,输入数据结束后,将acc结果存入state,state再和finalXor做异或。输入数据是否翻转,即输入数据从MSB开始计算还是从LSB开始计算。篇,介绍spinalHDL实现CRC的方式。本文作为SpinalHDL学习笔记第。最后进行异或操作的操作数。计算CRC用的多项式。CRC计算结果初始值。
2024-10-28 14:38:26
321
原创 SpinalHDL之多位数据跨时钟域
push是FIFO接收数据,只要FIFO未满收到数据放到RAM里就行,pop是发送数据,除了FIFO未空,还要下游接收成功才行,所以比push多一些逻辑。根据pop和push指针计算FIFO空满,未空且外部redo信号无效,则FIFO中数据可以对外发送,发送成功后当前pop指针加一。根据pop和push指针计算FIFO空满,未满则外部数据可以写入FIFO中的RAM,然后当前push指针加一。做多位数据跨时钟域操作,本文以一个FIFO的push和pop指针跨时钟传递为例介绍该库函数的使用方法。
2024-10-25 11:50:20
456
原创 Spinal之从端总线库(Bus Slave Factory)
来生成总线相关寄存器,并需要手动连接寄存器位和相关信号,本文介绍。BusSlaveFactory的基于APB3总线的一个特例。是⼀个⼯具, 它提供了⼀种抽象⽽流畅的⽅式来定义它们。在许多情况下, 需要实现⼀个总线寄存器组。BusSlaveFactory里的一个函数。本文作为SpinalHDL学习笔记第。
2024-10-18 14:52:01
995
原创 SpinalHDL之SPI(二)
本文作为SpinalHDL学习笔记第篇,以一个完整的SPI模块为例,介绍一下SpinalHDL实际描述的方式。本文介绍SPI主功能模块。
2024-10-17 12:05:15
502
原创 SpinalHDL之IIC(二)
本文作为SpinalHDL学习笔记第篇,以一个完整的IIC模块为例,介绍一下SpinalHDL实际描述的方式。本篇介绍IIC主体模块。
2024-10-15 11:14:34
504
原创 SpinalHDL之设计错误(Design Errors)(三)
在某些情况下, 可能由于硬件参数化, ⽣成只有init描述但⽆分配的寄存器也是有意义的。十三、⽆法实现的is表述(Unreachable is statement)⽆法实现的is表述(Unreachable is statement)SpinalHDL会检查并确保switch中的所有is语句是可实现的。十二、未分配的寄存器(Unassigned register)SpinalHDL会检查赋值两侧的操作和信号有相同的位宽。我们需要克隆的是硬件的单元, ⽽不是最终在其中赋值的值。篇,介绍SpinalHDL的。
2024-10-14 12:13:49
549
原创 SpinalHDL之错误集(一)
本文作为SpinalHDL学习笔记第篇,作为错误集使用,类似高中生的错题集,几率使用SpinalHDL过程中遇到的问题,小到语法错误、版本兼容问题,大到SpinalHDL库函数错误等等,。
2024-10-12 11:28:15
832
原创 SpinalHDL之设计错误(Design Errors)(一)
SpinalHDL将会检查当前层次设计的信号不会访问到该组件的外部区域。下述信号可以被⼀个组件内所访问:
2024-10-11 12:22:09
770
原创 SpinalHDL之时序逻辑(Sequential logic)(一)
⼀、简介(Introduction)在SpinalHDL中创建寄存器与VHDL和Verilog中区别很⼤。在SpinalHDL中, 没有process/always块, 寄存器在声明的时候就清晰地定义出来。
2024-10-09 20:53:12
1779
原创 SpinalHDL之语义(Semantic)(三)
⼀、简介(Introduction)SpinalHDL背后的语义学很重要, 学会语义你就能理解在这些情景背后到底发⽣了什么, 并且如何去控制它。这些语义通过以下⼏条规则定义:
2024-09-29 21:46:37
881
原创 SpinalHDL之结构(七)
⼀、简介(Introduction)本文会介绍SpinalHDL如何把名字从scala代码传递到产⽣的硬件中。知道这些能帮助你更好地了解如何保留名字, 以尽可能增加⽣成的⽹表的可读性。⼆、可命名的基础类(Nameable base class)在SpinalHDL中所有可以被命名的东⻄都扩展了可命名的基类。所以实际上, 以下的类拓展了可命名特点:
2024-09-25 14:16:22
1033
原创 SpinalHDL之结构(六)
⼀、描述(Description)⿊盒(blackbox)允许使⽤者把已有的VHDL/Verilog模块通过指定接⼝集成到当前设计中, 这种调⽤的正确描述取决于仿真器或综合器。⼆、定义⿊盒(Defining an blackbox)
2024-09-24 12:01:04
836
原创 SpinalHDL之结构(五)
三、跨时钟域(Clock domain crossing)本文作为SpinalHDL学习笔记第篇,介绍SpinalHDL的。
2024-09-23 12:05:03
641
原创 SpinalHDL之结构(四)
⼀、简介(Introduction)在SpinalHDL中, 时钟和复位信号能结合起来构成时钟域(clock domain)。时钟域可以应⽤于设计的某些区域中, 例化在这些区域中的所有同步单元都会隐式地使⽤这些时钟域。时钟域的应⽤的⼯作模式类似于堆栈, 这意味着你在⼀个给定的时钟域中仍然可以在本地施加另⼀个时钟域。需要注意的是, ⼀个寄存器在它被创建的时候捕捉时钟域, ⽽非它被赋值的时候。所以请确保在你所希望的ClockingArea中创建寄存器。⼆、例化(Instantiation)
2024-09-20 12:17:21
1158
原创 SpinalHDL之结构(三)
⼀、简介(Introduction)⽤Scala函数产⽣硬件的⽅式与VHDL/Verilog中非常不同, 原因如下:
2024-09-19 11:58:20
660
原创 SpinalHDL之结构(二)
在VHDL和Verilog中, 有时候前缀可以⽤来把变量拆分成逻辑块, 在SpinalHDL中可以⽤。ClockingArea是⼀种特殊的Area允许你⽤给定的ClockDomain定义⼀块硬件电路。本文作为SpinalHDL学习笔记第。篇,介绍SpinalHDL的。
2024-09-19 11:49:20
345
原创 SpinalHDL之结构(一)
⼀、简介(Introduction)正如VHDL和Verilog, 你可以在SpinalHDL中定义模块来进⾏层次化设计。然⽽, 在SpinalHDL中, 你不需要在例化的时候分配他们的端⼝。
2024-09-18 12:02:13
1227
原创 基于深度估计神经网络的显示屏分层异物检测方案
本专利将通过使用对向打光的双相机斜视拍照方案,使用基于Deformable-Attention的Mixed-Attention机制组成双重特征金字塔结构,提取并融合两张图像中的特征信息,并进行特征向量对齐,使用基于Xception的多层神经网络,使用不同感受野的卷积对特征图进行深度信息提取,使用语义分割的方式得到最终的深度图。使用双相机的方案,融合两张斜视图像的特征信息,提取各自的像素深度信息,通过深度估计神经网络得到各个异物的深度信息。并使原图和拍照图的长宽为2的次方,便于后期AI运算。
2024-09-14 19:34:21
1086
原创 SpinalHDL之数据类型(七)
本文作为SpinalHDL学习笔记第篇,介绍SpinalHDL的数据类型。SpinalHDL定点数只是部分⽀持并部分经过测试的, 如果你发现它有任何bug, 或者你认为有些函数丢失了, 请创建⼀个Github issue。并且, 请不要在代码中⽤未在doc中指出的特征。
2024-09-14 12:06:25
1063
原创 SpinalHDL之数据类型(六)
Vec是定义了⼀组带有标号的信号的复合信号(基于SpinalHDL基础类别)。前缀⽤来与接受lambda函数作为参数的同名Scala函数的歧义。4. 库辅助函数(Lib Helper functions)1. 比较操作(Comparison)2. 类型转换(Type cast)⼀、描述(Description)1.描述(Description)⼀、描述(Description)⼆、声明(Declaration)三、操作符(Operators)篇,介绍SpinalHDL的。使⽤这些函数, 需要。
2024-09-13 11:57:01
702
原创 SpinalHDL之数据类型(五)
如果你的接⼝遵从于master/slave拓扑, 你可以使⽤IMasterSlave特性, 之后你需要对函数def asMaster(): Unit配置来补全每个来⾃master⽅⾯的元素的⽅向, 这之后你就可以在IO定义中⽤master(MyBundle())和slave(MyBundle())语句。bundle的元素在⼆进制串中按照定义的顺序排列, 因此r在color1中myBits(LSB)中的0-8, 之后按顺序依次所g和b。当你在模块的IO定义中定义⼀个Bundle, 你需要指定它的⽅向。
2024-09-11 11:24:50
718
原创 SpinalHDL之数据类型(四)
对于上述例⼦, 使⽤默认的编码⽅式。原⽣的枚举类型⽤于VHDL, ⼆进制编码⽤于Verilog。|操作符|描述|返回类型| |x===y|相等|Bool| |x=/=y|不相等|Bool|为了使⽤你的enum, 例如在函数⾥, 你需要它的类型。Enumeration类型代表⼀组值组成的列表。1. 比较运算(Comparison)⼀、描述(Description)⼆、声明(Declaration)三、操作符(Operators)1. 编码(Encoding)2. 举例(Example)
2024-09-10 10:17:02
799
原创 SpinalHDL之数据类型(三)
一.描述(Description)本文作为SpinalHDL学习笔记第篇,介绍SpinalHDL的数据类型。目录:1.描述(Description)2.声明(Declaration)3.操作符(Operators)一.描述(Description)UInt/SInt数据类型是⼀个能⽤在有/⽆符号计算中的bits向量。
2024-09-09 16:20:38
882
原创 SpinalHDL之数据类型(一)
Bool(value:Boolean) 创建⼀个值为Scala Boolean(true, false)的Bool量。最后, 还有⼀种特殊类型能够检查BitVector和bit常量是否相等, 且可以添加⽆效位。Bool, Bits, UInt⽆符号整型, SInt有符号整型, Enum。4.请文明交流,做这行的都算高层次人才,希望你有对应的高素质;Bool数据类型对应于布尔值(True/False)声明布尔值的语法如下所⽰:([]中的内容可填项)2.提问是你的权利,但回答不是别人的义务;
2024-09-07 11:46:38
695
原创 SpinalHDL之IMasterSlave 特 征
有些函数定义为 toXXX,例如 Flow 类的 toStream 方法。这些函数通常可以由 master 端调用。另外,fromXXX 函数是为 slave 侧设计的。通常 master 端可用的功能多于 slave 端。从 master 的角度设置每个元素的方向。如 果 接 口 遵 循 主/从 拓 扑 结 构, 可 以 使 用。篇,介绍SpinalHDL的IMasterSlave 特 征。valid, ready 和 payload。信号的简单总线,则可以在其中定义一些有用。例如,如果定义一个带有。
2024-09-07 11:15:10
370
原创 SpinalHDL之BlackBox(上篇)
在Spinal的代码里,可以将Verilog的代码加进来,需要在Verilog外在包一层,这一层就是SpinalHDL里的BlackBox类。在VHDL 中, Bool 类型的信号将被转换为 std_logic , Bits 将被转换为 std_logic_vector。如果只想在黑盒组件中使用 std_logic_vector ,则可以将标签 noNumericType 添加到黑盒中。要将 ClockDomain 的信号映射到黑盒的相应输入,可以使用。篇,介绍SpinalHDL的BlackBox类。
2024-09-04 20:37:13
960
空空如也
视频区域内的人物检测有什么好用的模型吗
2025-08-29
对于试剂瓶上的标签检测有什么好的模型吗
2025-08-29
目前处在职业十字路口,一边是芯片设计,一边是AI计算机视觉,向左走向右走?
2024-08-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人