- 博客(1544)
- 资源 (4)
- 收藏
- 关注
原创 外壳3D结构设计(学习Freecad)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 市面上3d软件很多,几乎所有软件都可以转成stl、obj格式。比如大家熟知的solidworks,一般用于机械设计;还有maya,用于游戏开发;以及fusion 360,这个用于3d打印比较多。这里面,既然大多数人都用fusion 360,为什么我们不用fusion 360呢?
2025-12-25 18:25:58
904
原创 外壳3D结构设计(介绍)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 对于嵌入式开发的同学来说,平常对硬件和软件应该打交道比较多,对结构方面的知识可能不是很多。事实上,结构设计也是非常重要的一个环节。很多时候,大家都把结构设计等于3d设计,这么说虽然没什么毛病,但是不太严谨。因为,3d设计是一个通用范畴,比如游戏、工业设计、机械设计、美工等等,都会用到3d设计。所以,用3d设计做什么,其实更为重要。我们自己用3d软件,就是做外壳设计,相对要简单很多。
2025-12-25 07:55:49
265
原创 LVGL应用和部署(中文输入法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 lvgl由于其开源性和开放性,现在无论是mcu还是soc领域,用的是越来越多。不管是按键,还是触摸屏,都可以用来进行人机交互。只不过交互的时候,暂时只能是英文输入,如果是中文输入的话,就要想办法了。一次偶然的机会发现,在最新的lvgl 9.3版本上面已经集成了中文输入,正好可以试试。
2025-12-19 08:22:11
416
原创 LVGL应用和部署(几种人机交互的方式)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 只要是嵌入式设备,不管是stm32也好,或者是linux设备,总少不了人机交互。如果产品本身还是在开发的阶段,那么基本上采用串口开发的方式,就可以实现人机交互了。但是等到后期慢慢往产品方向转的时候,这个时候就不能采用串口通信了。毕竟,大部分客户都没有这方面的知识,只能想想其他的办法了。
2025-12-17 08:18:49
444
原创 LVGL应用和部署(多线程异步通信)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在开发界面的时候,有一种情况是肯定会发生的,那就是异步通信。大家都知道,lvgl本身运行是独立运行的一个thread,但是linux下面一个程序不大可能只有一个thread。在这种情况下,其他线程如何给lvgl发消息,更新里面的状态呢?
2025-12-16 07:06:28
371
原创 LVGL应用和部署(快速开发LVGL的方法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 目前位置,对于轻量的图形界面来说,lvgl几乎是最好的开发方式。一方面,lvgl非常轻量,启动速度很快,这一点比linux qt要好不少。另外一方面,和qt相比较,lvgl没有版权方面的风险,所以在目前出海的大背景下,lvgl开发的产品,涉及到出口,几乎不存在限制条件。最后,就是lvgl适配于多平台,不仅仅是linux,哪怕是mcu,即stm32之类的mcu,也可以拿lvgl来进行界
2025-12-16 06:41:43
490
原创 ISP基本原理和实现(AF引申出来的电机控制)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 图像处理中的3a算法,是大家都比较熟悉的部分。但是对于入门的camera来说,或者是大部分相机而言,af都是不需要调节的。所谓的af,那就是自动对焦,那就是修正镜头和camera sensor之间的距离。其他awb和ae,可以通过算法调整,也可以通过外部光源补充来解决,只有这个af麻烦一点,涉及到电机控制。正好借着这个topic,了解下电机控制。
2025-12-14 21:17:33
361
原创 ISP基本原理和实现(题外话之mongoose)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 最近正好有一个需求,需要在arm linux板子上起一个web server。本着轻巧的原则,在github上面找了一下,发现了mongoose这个软件。软件本身很小,就一个h文件,一个头文件,完全可以拿过来处理一下。如果只是配置类的处理,或者是stm32 mcu之类的软件,那么也可以使用这类库。
2025-12-13 16:29:58
390
原创 ISP基本原理和实现(AI-ISP的引入)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 isp本身不是一个新方向,而且isp存在的时间也不短了。特别是2000年之后,随着手机开始携带camera之后,camera本身更是有了一个长足的发展。camera是越做越大、像素越来越高、个数也越来越多,这些都是看得到的进步和提高。但是camera放在手机上也有很多的局限,比如镜头不能太大、sensor不能占据空间太多、夜景模式比较差等等,这些都是camera处理的一些痛点。比如
2025-12-06 07:48:47
389
原创 ISP基本原理和实现(ISP的输入和输出)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 isp只是soc的一个部分。也就是说,最多isp只是soc一个重要的ip。因为除了isp之外,soc上面还有很多重要的ip,比如gpu,比如h264、h265编解码、比如音频编解码,再比如pcie、usb3、npu、cpu等等,这些部分也很重要。而且,这还没有包括软件开发的部分。所以,我们做好isp学习和调试的同时,有必要了解isp的输入、输出的部分是什么。
2025-12-05 08:42:54
504
原创 ISP基本原理和实现(添加自己的算法及测试)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 我们学习Infinite-ISP开源代码之外,除了想了解一下isp的基本原理,把代码编译出来之外,其实还可以自己编写一下算法。这样不仅对isp有一个更加深刻的认识,还能在实际项目中为自己所用。其实在实际产品中,固定的isp未必能满足客户的所有要求,那么此时用fpga对isp做增强处理,就是意料之中的事情了。在用fpga处理之前,就可以用python做一下简单的设计和预研即可。
2025-12-04 06:11:48
251
原创 ISP基本原理和实现(算法举例分析)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 isp本身就是一个流水线,流水线里面有很多的算法。每一个算法的输出,就是下一个算法的输入。这也是图像处理算法的一个基本特征。也正是由于这个特征,使得图像算法特别适合用硬件加速的形式来实现。今天就来简单分析下,开源程序Infinite-ISP里面,算法是怎么写的,
2025-12-04 05:53:21
555
原创 ISP基本原理和实现(isp中的反馈机制)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 整个isp的流水线还是比较好懂的。它的输入是sensor的bayer图像,这是由sensor基本结构决定的。它的输出是yuv,或者是rgb图像,也就是最终我们要想的结果。整个isp当中有很多的算法,每一个算法的输入,都是前面一个算法的输出,全部算法是采用pipeline机制完成的。也就是说,所有的算法都是并发执行的,不存在一个算法等另外一个算法的情形。但除此之外,isp还有一个特殊的
2025-12-03 08:27:12
900
原创 ISP基本原理和实现(代码流程)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 对于稍微大一点的soc公司来说,isp、h264和h265编解码、npu、pcie、usb这些重要的ip接口都是自己完成的。当然,如果不考虑成本的话,外购ip也是可以的。就拿isp来说,要做好它,首先算法团队需要设计好算法,这一步通常是用python、matlab实现,部分也会用c/c++实现。等到算法团队ok,数字前端团队就会拿过来修改成rtl代码,综合出来自己简单测试下。数字这边
2025-12-03 07:32:17
1037
原创 ISP基本原理和实现(从开源代码开始学习)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很多对图像不太了解的朋友,都以为图像从camera出来之后就可以直接用。其实不是这样的,现在一幅好的图像,大部分都是由镜头、sensor和isp三部分组成的。镜头负责光学部分,sensor负责光转电,而把图像变成人眼比较舒服的图像,则需要isp的参与。
2025-12-02 21:16:06
799
原创 自己动手写深度学习框架(题外话之硬件转接板)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 训练模型是一方面,使用模型是另外一方面。而且很多时候,模型的使用最终都是部署在嵌入式开发板子上面。这种情况下,就需要嵌入式开发板支持我们运行的模型。此时,去挑选开发板的时候,就会发现大部分时候,功能和接口都是ok的,但是小部分是不ok的。这些不适配的情形包括了camera sensor不合适、mipi lcd对不上、外接接口不好用等等。那么怎么解决这些问题呢,那就是转板。
2025-11-30 20:26:56
357
原创 自己动手写深度学习框架(关于训练算力的问题)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 对于个人,或者是小企业开发来说,算力肯定没有大公司那么富裕。那么这个时候,就会有一个问题,算力从哪里来,怎么提高算力。如果提高不了算力,那么应该怎么降低算力要求。这都是个人开发者或者小公司开发人员应该考虑的事情。
2025-11-24 19:35:31
569
原创 自己动手写深度学习框架(图像预处理和后处理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度学习中,处理图像的方法一般就是卷积神经网络。网络本身+模型,其实就是就相当于一个黑盒函数,我们输入图像,就可以拿到一定的结果。但是不管是输入的图像,还是拿到的结果,一般都是没有办法直接使用的,有必要做一些预处理和后处理的工作。只有这样做,才是一个完整的产品解决方案。
2025-11-23 07:44:51
509
原创 自己动手写深度学习框架(用labelImg标记样本)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 学习深度学习之前,以为自己大部分时间都是在做算法。但是做了之后,才发现自己大部分时间都在清洗数据。和算法相比较,数据本身的价值,可能要比算法还要大。而且除了数据之外,嵌入式部署也是非常重要的,反而是算法,大部分时间就是微调,很少会对网络做大的改动。
2025-11-22 19:54:17
807
原创 自己动手写深度学习框架(npu硬件加速)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度学习的model训练完之后,一般需要部署到pc或者是嵌入式开发板上面。这个时候,如果部署的环境是arm开发板,本身又没有加速ip的话,那就只能用ncnn来解决。反之,如果有npu的帮助,也就是硬件加速来帮忙,这样会好很多。npu硬件加速的原理,其实就是把常用的算子做一个加速而已。因为很多深度学习的网络特别深,cnn类的算子又特别多,所以用npu加速是非常好的选择。
2025-11-22 08:23:57
968
原创 自己动手写深度学习框架(最终的ncnn部署和测试)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 既然前面已经做好了pytorch到onnx,onnx到ncnn的转换,那么接下来就是用ncnn来执行这些model和参数了。有的人也许会问,既然pytorch都训练好model了,为什么不直接用pytorch在板子上跑呢?那是因为训练的时候,一般都是用nvidia显卡跑的,资源非常富裕。但是在嵌入式板子上,需要用cpu、或者npu来优化处理,整体资源要少得多。所以,model本身也要
2025-11-21 23:06:19
573
原创 自己动手写深度学习框架(pytorch转ncnn)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 pytorch本身是我们进行ai训练的一个框架,但是训练得到的model最终是要部署到嵌入式板子上面的。这中间就有两种办法,一种是pytorch直接生成onnx文件,然后用ncnn自带的onnx2ncnn将onnx转成我们想要的文件。另外一种方法,就是先生成pt文件,接着用pnnx工具把pt生成我们想要的ncnn文件。
2025-11-20 20:30:37
734
原创 自己动手写深度学习框架(pytorch训练第一个网络)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 大多数深度学习的训练框架其实差异不大,都支持不同的激励函数,支持不同的layer定义,支持cuda训练,也支持自动求导、反向传播,更支持参数保存和onnx转换。不管怎么说,用公开的框架训练深度学习模型,要比自己写框架简单很多。下面,就看一下,怎么用pytorch训练第一个模型。
2025-11-20 08:24:42
544
1
原创 自己动手写深度学习框架(从网络训练到部署)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 关于ai,关于深度学习,各方面的资料都比较多。比如说怎么标记,怎么训练,怎么调优,零零散散的资料不少。但是这些技术,或者框架之间是什么关系,怎么从训练到最终部署,这方面谈的不多。今天正好可以花点时间聊一下。如果要自己训练数据,到最终嵌入式部署,要做些什么。
2025-11-18 22:35:12
607
原创 自己动手写深度学习框架(ncnn编译)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 如果需要把深度模型部署到嵌入式设备上面,一般来说只有两种办法。一种办法,就是厂家有对应的npu支持框架,这个时候把对应的模型翻译成厂家的框架,直接调用厂家的sdk就可以了。还有一种办法,就是厂家没有专门的gpu/npu/dsp,这个时候如果需要深度学习模型,就只能通过cpu来完成,ncnn框架就是不错的一个选择。
2025-11-18 07:25:30
608
原创 自己动手写深度学习框架(pytorch入门)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 自己用python和numpy,虽然可以写出深度学习框架代码。但是实际用的时候,一般还是用tensorflow、pytorch这样的框架来完成。通常来说,训练和部署是分开来的,训练的时候为了速度,一般用gpu加速训练。部署的时候,需要确认终端是否有gpu、npu支持,即需要把模型翻译成厂家支持的形式,才能更好地去应用和部署。
2025-11-17 20:01:48
398
原创 自己动手写深度学习框架(数据结果的图表分析)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度学习当中,除了张量的计算numpy库之外,另外一个库matplotlib也是非常重要的。因为算法中涉及到的参数选择、算法选择、默认参数设置实在是太多了,所以不同参数之间的效果对比就显得特别重要。因此,如果是用python对深度学习进行开发和训练,一般都是用matplotlib进行开发。常用的方式基本上也就是那几种,学会了就可以。
2025-11-16 10:47:32
320
原创 自己动手写深度学习框架(优化深度学习框架)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 用过tensorflow、pytorch的同学都知道,这些框架是可以任意选择激励函数、任意选择优化方法的。要做到这一点,其实并不复杂,只需要把我们之前写的代码流程更新一下。也就是说基本上所有的函数,都要写成class的形式,在这个函数里面再添加forward函数和backward函数。这样推导的时候,就可以使用forward函数,如果是训练的时候,就使用backward函数。
2025-11-15 10:53:22
427
原创 自己动手写深度学习框架(反向传播)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度学习的原理,远没有它的名字看起来那么复杂。本质上,我们是希望所有的参数都按照梯度的方向去增加,或者是减小,这样可以保证残差方程的积分数值越来越小。那么怎么计算这些梯度数值呢,这就是一个问题。
2025-11-14 23:07:03
607
原创 自己动手写深度学习框架(数值法实现神经网络的训练)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面我们谈到了神经网络的基本原理。一个神经网络其实要运行起来,最主要的就是需要构建残差方程、计算梯度、梯度下降、合理化使用数据集这几个部分。在计算梯度这个部分,即使不会使用反向传播(bp)算法,也没有关系。使用数值法同样可以实现神经网络。下面就来看看,如果是用数值法,一般怎么实现神经网络。
2025-11-13 06:26:28
676
原创 自己动手写深度学习框架(数值法计算梯度)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 神经网络就是把很多的激励函数放在一起,它们之间通过简单的计算拼接在一起。而训练,就是通过数据、残差方程、梯度下降的办法,优化每一个激励函数里面的参数。所以,在所有参数更新之前,必须获得所有参数的梯度数值,然后用梯度下降的办法优化这些参数值。因此,计算梯度数值是非常重要的一个工作。
2025-11-10 18:55:17
401
原创 自己动手写深度学习框架(神经网络训练的原理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 大家说神经网络的训练,本身是一个黑盒操作,主要一部分原因就是其中的训练,很多时候没有办法做出合理性解释。也就是说,不知道为什么要按照这个方向去进行收敛,这个方向收敛对最终特征的形成有什么作用,很多时候都是不知道的。假设有这么一个模型,即y=f(x)。这个函数,或者说模型,其实是预先设定好的框架。但是里面的参数是未知的,我们有的只是一堆数据,当下的工作就是用这堆数据把模型里面的参数训练
2025-11-09 08:39:52
1439
原创 自己动手写深度学习框架(数据集的训练和测试)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面我们谈到过感知机,也谈到过神经网络,本质上他们都是通过线性、非线性的方法,来实现特征的分类。这里面的特征,通过传统的线性函数,是根本没有办法做到完全切分的,因此只能进一步通过变换激励函数、加深网络的方法,从高维度去区分他们。那驱动它们进行迭代和优化的,本质上还是数据本身。
2025-11-08 10:00:23
991
原创 自己动手写深度学习框架(神经网络的引入)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 最早读神经网络的时候,就觉得这个单词有点夸大其词了。直觉上来说,这里的神经网络,更多的是区别于感知机本身。感知机多使用线性函数进行处理,而神经网络多采用阶跃、sigmoid或者是relu这样的函数来处理。只是后来因为处理图像,引入了cnn;又因为处理声音,引入了rnn。所以,如果从延续性来说,神经网络可以看成是感知机的一个衍生和拓展。
2025-11-06 19:34:05
588
原创 自己动手写深度学习框架(感知机)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 所谓的感知机,其实本质上就是一个分类问题。假设一个事物有两个feature,那么可以根据这两个feature,就可以判断当前物体属于哪一个类别。判断的时候,有两种情况,一种是线性可分,一种是线性不可分。
2025-11-04 18:35:50
579
原创 自己动手写深度学习框架(快速学习python和关联库)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 既然目前深度学习大部分都是python开发为主,那我们就学习一下python好了。早前还有python2、python3之分,不过现在大部分都是使用python3了。本身python就是一门脚本语言,和我们之前说的lua很像。所有的细节,都放在了后面,用户只需要把这些脚本串起来就可以了。
2025-11-03 18:32:25
581
原创 自己动手写深度学习框架(基础)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 现在ai比较火,特别是基于深度学习的ai框架。目前市面上有很多的深度学习框架可以使用,比如说tensorflow,比如说pytorch,或者是caffe等等。但是这些框架的底层原理,大家却未必知道。深度学习和gpu的关系,特别是和cuda的关系,大家也未必了解。毕竟很多细节都被封装好了。使用者只要会使用即可。但是训练出来的model一旦涉及到部署的时候,往往就傻了眼。因此,我们有必要
2025-11-03 07:07:33
438
原创 Easyx图形库应用(和其他行业做结合)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 如果只是把esayx当成是一个图形库,做一些小游戏、小工具,还是太狭隘了。这个时候,我们需要考虑的,就是把easyx和其他的专业、行业做一个结合,做成更实用、更能解决问题的产品。比如现在比较火的扫地机器人、清洁机器人、巡检机器人、工厂搬运机器人,都是属于这个范畴。在这个领域,easyx不仅可以做仿真,还可以做实时监控。
2025-11-02 10:04:42
1224
原创 Easyx图形库应用(题外话之大文件传输)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 现在不管是开发软件,还是音视频文件也好,文件都越来越大。这些文件很多都超过了1个g,甚至都是十几个g,几十个g。如果发送者和接收者都在一个地方工作,这样可能问题不大。但是如果需要发送和接收的人在不同的地方,甚至是不同的国家,这样就很难办。这个时候就要想别的办法了。
2025-11-01 21:23:08
581
原创 Easyx图形库应用(基础的AI开发原理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 AI已经火了很多年。从早期的cnn、rnn,到现在的chatgpt,ai确实对我们的世界带来了很大的改变。就拿图像处理来说,从早期还不成熟的人脸识别,到现在到处都在使用的二维码识别、车牌识别、身份证识别、人脸识别,ai扮演着非常重要的角色。所以,对于做图象的同学来说,其实有必要知道AI原理是什么。
2025-10-30 22:32:33
1302
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅