Pennant的日常
分享工作上的点点滴滴
摘要: 深度估计问题 从输入的单目或双目图像,计算图像物体与摄像头之间距离(输出距离图),双目的距离估计应该是比较成熟和完善,但往单目上考虑主要还是成本的问题,所以做好单目的深度估计有一定的意义。单目的意思是只有一个摄像头,同一个时间点只有一张图片。就象你闭上一只眼睛,只用一只眼睛看这个世界的事物一样,距离 阅读全文
posted @ 2023-07-26 11:43 汝熹 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Lite-Mono: A Lightweight CNN and Transformer Architecture for Self-Supervised Monocular Depth Estimation 是CVPR2023收录的论文,从它的标题能很清晰了解到它所在的领域或解决的问题是:自监督的 阅读全文
posted @ 2023-07-24 16:56 汝熹 阅读(976) 评论(2) 推荐(0) 编辑
摘要: 很长很长一段时间没有更新博客,这段时间在追求着自己的梦想前进,确实没有太多时间或值得写的内容。现在已步入到研一的暑假期间,回想准备考研和在研一的学习生活,一切都觉得有趣和新鲜。经过忙碌的这段时间,自己的论文也准备得差不多,可以有一些时间写写自己对一些论文的理解,也作为自己学习的整理和反思。后续安排时 阅读全文
posted @ 2023-07-23 22:34 汝熹 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 最近工作的原因,需要进行一些积分运算,通过一些搜索得知了SymPy,记录一下使用历程。 1. SymPy介绍 SymPy是关于Symbolic Mathematics的Python库,它旨在成为一个功能全面的计算机代数系统(CAS),同时保持代码尽可能简单,以便易于理解和扩展。SymPy是完全使用P 阅读全文
posted @ 2022-03-22 14:05 汝熹 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 学习的三要素 方法 = 模型 + 策略 + 算法模 型 所要学习的条件概率分布或决策函数,模型的假设空间包含所有可能的条件概率分布或决策函数。 \(F = \{ ~f~ | ~Y = f(X)~ \}\), \(F = \{ ~f~ | ~Y = f_{\theta}(X), \theta \in R^{n}~ \}\) 条件概率 \(F = \{ ~P~ | ~P(Y~|~X)~ \} \), \(F = \{ ~P~ | ~P_{\theta}(Y~|~X), \theta \in R^{n}~ \}\)策 略 为了从假设空间中选取最优模型,需要引用一些手段来评估模型。1)损失函... 阅读全文
posted @ 2013-09-09 09:29 汝熹 阅读(1563) 评论(1) 推荐(0) 编辑
摘要: 6.slab层 为了便于数据的频繁分配和回收,Linux内核提供了slab层(也就是所谓的slab分配器)。slab分配器扮演了通用数据结构缓存层的角色。 slab层把不同的对象划分为所谓高速缓存(cache)组,其中每个高速缓存都存放不同类型的对象。这些高速缓存又被划分为slab,slab由一个或多个物理上连续的页组成。一般情况下,slab也就仅仅由一页组成。每个调整缓存可以由多个slab组成。 每个slab都包含一些对象成员,这里的对象指的是被缓存的数据结构。每个slab处于三种状态之一:满、部分满或空。每个高速缓存都是用 kmem_cache_s 结构来表示。这个结构包含三个链表 ... 阅读全文
posted @ 2013-01-05 08:31 汝熹 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 内存管理1.页 内核把物理页作为内存管理的基本单位。大多数 32 位体系结构支持 4KB 的页,而 64 位体系结构一般会支持 8KB 的页。内核用 struct page 结构表示系统中的每个物理页。该结构位于<linux/mm.h>中。struct page { page_flags_t flags; /* 表示页的状态,每一位表示一种状态,定义在<linux/page_flags.h> */ atomic_t _count; /* 存放页的引用计数,0代表没有被引用 */ atomic_t _mapcount; unsigned long pr... 阅读全文
posted @ 2013-01-03 11:30 汝熹 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 6.实际时间 当前实际时间(墙上时间)定义在文件 kernel/timer.c 中:struct timespec xtime; timespec 数据结构定义在文件<linux/time.h>中,形式如下:struct timespec { time_t tv_sec; /* 秒 */ long tv_nsec; /* 纳秒 */}; xtime.tv_sec 以秒为单位,存放着自 1970年7月1日(UTC)以来经过的时间。xtime.tv_nsec 记录自上一秒开始经过的纳秒数。 读写 xtime 变量需要使用 xtime_loc... 阅读全文
posted @ 2012-12-31 21:41 汝熹 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 定时器和时间管理 系统定时器是一种可编程硬件芯片,它能以固定频率产生中断。该中断就是所谓的定时器中断,它所对应的中断处理程序负责更新系统时间,还负责执行需要周期性运行的任务。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。 另外一个关注的焦点是动态定时器——一种用来推迟执行程序的工具。比如说,如果软驱马达在一定时间内都未活动,那么软盘驱动程序会使用动态定时器关闭软驱马达。内核可以动态创建或销毁动态定时器。1.内核中的时间概念 系统定时器以某种频率自行触发时钟中断,该频率可以通过编程预定,称为节拍率(tick rate)。连续两次时钟中断的间隔时间称为节拍(tick),它... 阅读全文
posted @ 2012-12-30 08:45 汝熹 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 4.信号量 Linux中的信号量是一种睡眠锁。如果一个任务试图获得一个已经被占用的信号量时,信号量会将其推进一个等待队列,然后让其睡眠。这时处理器能重获自由,从而去执行其他代码。当持有信号量的进程将信号量释放后,处于等待队列中的那个任务将被唤醒,并获得该信号量。 信号量和自旋锁在使用上的差异: 1)由于争用信号量的过程在等待锁重新变为可用时会睡眠,所以信号量适用于锁会被长时间持有的情况;相反,锁被短时间持有时,使用信号量就不太适宜了。因为睡眠、维护等待队列以及唤醒所花费的开销可能比锁被占用的全部时间还要长。 2)由于执行线程在锁被争用时会睡眠,所以只能在进程上下文中才能获取信号量锁,因... 阅读全文
posted @ 2012-12-28 09:07 汝熹 阅读(742) 评论(0) 推荐(0) 编辑