- 博客(737)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 工作杂谈(十八)——告辞信(离开第一份工作)
0.感谢作为一个刚毕业的双非本科应届生,我当时找工作跑了不少社招,也被很多HR嫌弃过。刚开始的时候是和同学们一起跑的,有的人跑着跑着就放弃了,直接走了校招的招聘。除了一些真的很优秀的同学进到了不错的公司和岗位外,大部分人都去了像富士康这种,前几天还有一个去了富士康同学打电话跟我抱怨,后面就剩我自己再跑了,我已经记不清自己投了多少简历,才去了自己这份工作。感谢自己的坚持,也感谢公司给了我工作...
2020-03-24 14:51:52
2716
7
原创 《PyTorch深度学习建模与应用(参考用书)》(零)——深度学习综述
深度学习可以让计算机从经验种进行学习,并根据层次化的概念来理解世界,让计算机从经验中获取知识,可以避免由人类来给计算机形式化地制定它所需要地所有知识。TensorFlow的前身是2011年Google Brain内部孵化项目DistBelief,它是一个为深度神经网络构建的机器学习系统。经过Google 内部的锤炼后,在2015年11月9日,对外发布了TensorFlow,并于2017年2月发布了1.0.0版本,这标志着TensorFlow稳定版本的诞生。
2025-11-15 20:58:28
897
2
原创 Chromatix 7快速入门手册
camera sensor 工作原理:先感应到光信号,接着将光信号转换成模拟信号,在通过A/D转换成数字信号。我们以10bit 数据为例,转换成的数字信号则在0-1023 的范围内,然而A/D转换器的精度无法将电压值很小的一部分转换出来,从而导致暗态细节损失这时需要认为地输出信号加一个固定的偏移量,使整体信号值放大,有小保留了电压值很小的暗部细节,当然也会损失部分亮度细节。此操作是因为我们拍照时较关注暗态拍照,保留暗部细节牺牲部分动态范围的操作而被认可。
2025-11-13 16:55:27
1551
原创 深度学习模型处理图片的所需的算力计算
在深度学习训练里,GPU的双精度(FP64)算力要求相对特殊,对于一些科学计算类的深度学习任务,如气候模拟相关模型训练,双精度算力可能每秒要达到数百GFLOPS,才能保证计算的准确性和稳定性。考虑到深度学习训练的实时性需求,GPU的算力稳定性十分关键。深度学习训练对GPU算力的要求,从计算精度角度看,单精度(FP32)算力在一些中等规模模型训练中,每秒需达到数千亿次浮点运算(TFLOPS)级别,例如在常见的图像分类模型训练时,英伟达部分高端GPU单精度算力可达10-30 TFLOPS才能较好满足需求。
2025-11-11 20:27:29
675
原创 已知mipi的单lane速率,sensor帧率和VTS,如何计算HTS
(1)VTS = 2622 行(含 blank)(3)单 lane 速率 = 1152 Mbps = 1.152×10⁹ bps(4)像素位宽 RAW10 → 10 bit/pix。
2025-10-16 09:58:29
465
原创 编写 GStreamer 插件2:编写插件的基础知识(二)
状态描述元素实例是否初始化,是否准备好传输数据,以及它是否当前正在处理数据。从现在起,它将被简单地称为“NULL”、“READY”、“pause”和“PLAYING”。GST_STATE_NULL 是元素的默认状态。在这种状态下,它没有分配任何运行时资源,它没有加载任何运行时库,显然无法处理数据。GST_STATE_READY 是元素可以处于的下一个状态。在就绪状态下,元素分配了所有默认资源(运行时库、运行时内存)。但是,它尚未分配或定义任何特定于流的内容。
2025-09-26 14:55:52
707
转载 GStreamer官方入门课程1:Hello World!
没有什么比在屏幕上打印“Hello World”更能给人留下软件库的第一印象了!但既然我们要处理多媒体框架,我们就要播放视频了。不要被下面的代码量吓倒:只有4行代码可以完成真正的工作。剩下的是清理代码,在C语言中,这总是有点冗长。不用再费吹灰之力,准备好您的第一个GStreamer应用程序…
2025-09-26 14:46:40
125
原创 高通camx架构学习(四)——Camera Framework
frameworks/av/services/camera/libcameraservice AOSP 中这个目录下是 87 个文件,而 Qcom 的基线中增加了 27 个文件,分别为 api1/qticlient2 目录下的 25 个文件,以及 QTICamera2Client.cpp, QTICamera2Client.h 两个文件。
2025-09-19 20:01:32
1244
原创 高通camx架构学习(三)—— HalQcom Hal3 CamX
Camera HAL3学习:HAL层操作简单总结:&emsp:&emsp:Qcom作为平台厂商会根据谷歌定义的HAL3接口来实现自己的Camera HAL3,新的主流的Qcom Camera HAL3 架构就是CamX了. Camx的详细过程可参考高通文档:80-pc212-1_d_qualcomm_spectra_isp_camera_chi_api_reference.pdf 最主要还是要看code,手机厂商对该层代码有自己的改动,可能差别还是有的,具体项目大体框架一致但细节有区别,差异和
2025-09-19 19:45:11
1116
1
原创 高通camx架构学习(二)——深入理解高通Camx Hal
同样地,CHI中的ExtensionModule在初始化的时候,其构造方法中也会通过调用dlopen方法加载camera.qcom.so库,并将其入口方法ChiEntry通过dlsym映射出来,之后调用该方法,将g_chiContextOps(ChiContextOps,该结构体中定义了很多指针函数)作为参数传入CamX中,一旦进入CamX中,便会将本地的操作方法地址依次赋值给g_chiContextOps中的每一个函数指针,这样CHI之后就可以通过g_chiContextOps访问到CamX方法。
2025-09-19 16:28:58
771
原创 高通camx架构学习(一)——高通 Camera Camx 架构
目前主流的机型都使用camx架构,这个架构和之前架构的主要区别就是 芯片接口层的代码从hardware/qcom 迁移到 vendor/qcom/proprietary/下面,我们主要关注的camera hal层的源码也是放在vendor/qcom/proprietary/camx/下面。都是从 vendor/qcom/proprietary/chi-cdk/vendor/chioverride/default/chxextensionmodule.cpp中调用过来的。
2025-09-19 15:49:18
1460
原创 高通camx架构学习(零)—— 深入理解Camera 硬件抽象层
从上面的定义可以看出,主要是通过hw_module_t 代表了模块,通过其open方法用来打开一个设备,而该设备是用hw_device_t来表示,其中除了用来关闭设备的close方法外,并无其它方法,由此可见谷歌定义的HAL接口,并不能满足绝大部分HAL模块的需要,所以谷歌想出了一个比较好的解决方式,那便是将这两个基本结构嵌入到更大的结构体内部,同时在更大的结构内部定义了各自模块特有的方法,用于实现模块的功能,这样,一来对上保持了HAL的统一规范,二来也扩展了模块的功能。
2025-09-19 14:40:24
1518
原创 为什么深度学习中一般使用mean=[0.485, 0.456, 0.406]和std=[0.229, 0.224, 0.225]来归一化图像?
Q:图像预处理部分在resize后还会使用均值:image_mean=[0.485,0.456,0.406],标准差:image_std=[0.229,0.224,0.225]进行归一化,为什么使用这几个值?A:image_mean=[0.485,0.456,0.406]、image_std=[0.229,0.224,0.225]是Imagenet数据集的均值和标准差,使用Imagenet的均值和标准是一种常见的做法。如果你想在你自己的数据集上从头开始训练,你可以计算新的平均值和标准。
2025-09-08 18:13:09
387
原创 各深度学习框架优缺点
TensorFlow 的官网地址为 https://www.tensorflow.org/。TensorFlow 逐渐成为最流行的深度学习框架,目前在 GitHub 中已经有 1500 多个与深度学习相关的包中提到了 TensorFlow,而其中只有 5 个是谷歌公司官方提供的,可想而知它的应用是多么广泛。TensorFlow 在很大程度上推动了深度学习的发展,并成为这个行业的标准,目前可以说是深度学习的代名词了。
2025-09-08 10:33:01
1128
原创 npy可视化方法
npviewer 是一个应用程序,它允许您以热图的形式可视化 numpy 的 npy 文件中的数据。该应用程序根据不同的模式自动选择适当的维度进行显示。在桌面上打开npyviewr的快捷方式,并在地址栏输入要加载的文件目录或者npy文件即可。
2025-09-02 16:45:21
441
原创 ubuntu之坑(十九)——VMware虚拟机扩容磁盘
虚拟机 – VMware Workstation ProLinux系统 – Ubuntu 16.04 LTS。
2025-09-02 14:47:16
1015
1
原创 onnx-graphsurgeon----ONNX计算图修改神器
作为深度学习用户,经常会听到ONNX、TensorRT等一系列常用的文件保存格式。而对于ONNX而言,经常我们会发现在利用TensorRT部署到NVIDIA显卡上时,onnx模型的计算图不好修改,在以前的操作中很多时候大佬是将onnx转换成ncnn的.paran和.bin文件后对.param的计算图做调整的。
2025-09-02 09:34:41
544
原创 onnx入门教程(七)——如何添加 TensorRT 自定义算子
在前面的模型入门系列文章中,我们介绍了部署一个 PyTorch 模型到推理后端,如 ONNXRuntime,这其中可能遇到很多工程性的问题。有些可以通过创建 ONNX 节点来解决,该节点仍然使用后端原生的实现进行推理。而有些无法导出到后端的算法,可以通过重写代码改变算法的实现过程,同样可以导出到 ONNX ,达到一致的效果。以上两种方式一般可以处理绝大多数的部署问题,同时也不需要向推理框架引入新的内容,是我们进行模型部署时候的优先选择。
2025-08-26 15:55:39
1107
原创 onnx入门教程(六)——TensorRT 模型构建与推理
TensorRT 是由 NVIDIA 发布的深度学习框架,用于在其硬件上运行深度学习推理。TensorRT 提供量化感知训练和离线量化功能,用户可以选择 INT8 和 FP16 两种优化模式,将深度学习模型应用到不同任务的生产部署,如视频流、语音识别、推荐、欺诈检测、文本生成和自然语言处理。TensorRT 经过高度优化,可在 NVIDIA GPU 上运行, 并且可能是目前在 NVIDIA GPU 运行模型最快的推理引擎。关于 TensorRT 更具体的信息可以访问 TensorRT官网 了解。
2025-08-26 15:42:47
918
原创 onnx入门教程(五)——实现 PyTorch-ONNX 精度对齐工具
精度对齐,是模型部署中重要的一个环节。在把深度学习框架模型转换成中间表示模型后,部署工程师们要做的第一件事就是精度对齐,确保模型的计算结果与之前相当。精度对齐时最常用的方法,就是使用测试集评估一遍中间表示模型,看看模型的评估指标(如准确度、相似度)是否下降。而在 PyTorch 到 ONNX 这条部署路线上,这种精度对齐方式有一些不便:一旦我们发现 PyTorch 模型和 ONNX 模型的评估指标有了出入,我们很难去追踪精度是在哪一个模块出了问题。
2025-08-26 15:32:09
1027
原创 onnx入门教程(四)——ONNX 模型的修改与调试
在用 API 对 ONNX 模型进行操作之前,我们还需要先了解一下 ONNX 的结构定义规则,学习一下 ONNX 在 Protobuf 定义文件里是怎样描述一个神经网络的。回想一下,神经网络本质上是一个计算图。计算图的节点是算子,边是参与运算的张量。而通过可视化 ONNX 模型,我们知道 ONNX 记录了所有算子节点的属性信息,并把参与运算的张量信息存储在算子节点的输入输出信息中。事实上,ONNX 模型的结构可以用类图大致表示如下:如图所示,一个 ONNX 模型可以用 ModelProto 类表示。
2025-08-25 20:34:43
993
原创 onnx入门教程(三)——在 PyTorch 中支持更多 ONNX 算子
为了编写符号函数,我们需要获得 asinh 推理接口的输入参数定义。这时,我们要去 torch/_C/_VariableFunctions.pyi 和 torch/nn/functional.pyi 这两个文件中搜索我们刚刚得到的这个算子名。这两个文件是编译 PyTorch 时本地自动生成的文件,里面包含了 ATen 算子的 PyTorch 调用接口。经过这些步骤,我们确认了缺失的算子名为 asinh,它是一个有实现的 ATen 算子。我们还记下了 asinh 的调用接口。
2025-08-23 17:45:27
809
原创 onnx入门教程(二)—— PyTorch 转 ONNX 详解
在这一节里,我们将详细介绍 PyTorch 到 ONNX 的转换函数—— torch.onnx.export。我们希望大家能够更加灵活地使用这个模型转换接口,并通过了解它的实现原理来更好地应对该函数的报错(由于模型部署的兼容性问题,部署复杂模型时该函数时常会报错)。
2025-08-23 11:32:57
1596
原创 onnx入门教程(一):解决模型部署中的难题
直接使用 PyTorch 模型的话,我们修改几行代码就能实现模型输入的动态化。但在模型部署中,我们要花数倍的时间来设法解决这一问题。现在,让我们顺着解决问题的思路,体验一下模型部署的困难,并学习使用自定义算子的方式,解决超分辨率模型的动态化问题。刚刚的报错是因为 PyTorch 模型在导出到 ONNX 模型时,模型的输入参数的类型必须全部是 torch.Tensor。而实际上我们传入的第二个参数" 3 "是一个整形变量。这不符合 PyTorch 转 ONNX 的规定。我们必须要修改一下原来的模型的输入。
2025-08-23 11:17:09
1032
1
原创 onnx入门教程(零):模型部署简介
在软件工程中,部署指把开发完毕的软件投入使用的过程,包括环境配置、软件安装等步骤。类似地,对于深度学习模型来说,模型部署指让训练好的模型在特定环境中运行的过程。因为这些难题的存在,模型部署不能靠简单的环境配置与安装完成。经过工业界和学术界数年的探索,模型部署有了一条流行的流水线:为了让模型最终能够部署到某一环境上,开发者们可以使用任意一种深度学习框架来定义网络结构,并通过训练确定网络中的参数。之后,模型的结构和参数会被转换成一种只描述网络结构的中间表示,一些针对网络结构的优化会在中间表示上进行。
2025-08-23 10:53:04
1110
原创 基于notepad++的sensor寄存器序列文本处理方法(以后会随时更新补充)
变为查找:^([0-9a-fA-F]+)\s+(.*)$替换:\2有时厂家会在后面加个分号补充说明,如果删掉分号后面的东西则用下面方法:\s*[;;].*$
2025-07-31 20:59:11
330
原创 linux shell从入门到精通(二)——变量操作
变量在许多程序设计语言中都有定义,与变量相伴地有使用范围地定义。Linux Shell也不例外。变量,本质上就是一个键值对。例如:就是将字符串值“hello”赋予键str。在str地使用范围内,我们都可以用str来引用“hello”值,这个操作叫做变量替换。
2025-07-26 19:37:06
817
原创 linux shell从入门到精通(一)——为什么要学习Linux Shell
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一种是编译(compile),另一种是解释(interpret)。两种方式只是翻译的时间不同。编译型语言写在程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,例如:Windows系统中的EXE文件,编译好后运行该文件的话就不用重新编译了,直接使用编译的结果就行。因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。
2025-07-20 21:15:33
512
原创 相机光学(五十)——Depth AF
Depth AF 是“先选前后两点,再自动算光圈和对焦”的智能景深系统,专为“从近到远都要清楚”的拍摄需求设计,常见于 Canon 早期单反相机中,是一种基于景深的被动式自动对焦。
2025-07-18 10:31:56
439
原创 相机光学(四十九)——sensor中的HBLANK和VBLANK
在将光信号转换为电信号的扫描过程中,扫描总是从图像的左上角开始,水平向前行进,同时扫描点也以较慢的速率向下移动。当扫描点到达图像右侧边缘时,扫描点快速返回左侧,重新开始在第1行的起点下面进行第2行扫描,行与行之间的返回过程称为水平消隐。一幅完整的图像扫描信号,由水平消隐间隔分开的行信号序列构成,称为一帧。扫描点扫描完一帧后,要从图像的右下角返回到图像的左上角,开始新一帧的扫描,这一时间间隔,叫做垂直消隐,也称场消隐(VBlank)。
2025-07-16 14:39:24
1059
1
原创 ubuntu之坑(十八)——XML相关
通过在XML文档中使用特定的属性,如xsi:schemaLocation和xsi:noNamespaceSchemaLocation,我们可以告诉解析器应该使用哪个模式来验证文档的结构。例如,我们可以使用XSD来定义XML文档的结构,使用XSI来关联模式和文档,使用XSL来控制文档的呈现,最后使用XMLNS来定义命名空间以避免名称冲突。通过XSD,我们可以定义XML元素的名称、属性、数据类型以及元素之间的关系。例如,我们可以使用XSD来验证一个XML文档是否包含必要的元素和属性,以及它们的值是否符合要求。
2025-07-14 21:27:13
1052
原创 ubuntu之坑(十五)——设备树
设备树是一种数据结构,它通过特有的语法格式描述片上片外的设备信息。由BootLoader传递给kernel,kernel进行解析后形成和驱动程序关联的dev结构供驱动代码使用。描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等等。树的主干就是系统总线,IIC 控制器、GPIO 控制器、SPI 控制器等都是接到系统主线上的分支。
2025-07-14 18:42:19
1243
原创 linux shell从入门到精通(零)——初识Shell程序
本文介绍了Linux Shell编程的基础知识。首先通过"hello world"示例展示了Shell脚本的基本结构和三种执行方法(直接运行、调用解释器、source执行)。重点解析了Shebang(#!)的作用,说明它如何指定脚本解释器路径。文章还介绍了自删除脚本的示例和Shell命令的三大类型:内建命令(如cd)、Shell函数和外部命令(如find),详细说明了外部命令的执行过程(创建子进程、查找命令路径、替换执行)。这些内容为Shell编程入门提供了基础概念框架。
2025-07-13 21:40:44
884
MX Component 4.16S.txt
2019-08-30
tcpmaster v0.0.0.2.rar
2019-12-27
tcpmaster V0.0.0.1.rar
2019-12-24
qcs6490的4k->8K的SWRemosaic
2025-08-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅