自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sun zi chao的博客

关注程序与交易

  • 博客(52)
  • 收藏
  • 关注

原创 人工神经网络几何意义

人工智能最终目的就是对数据进行分类预测。而分类的依据则通过不同的算式来计算。上面图形可以理解通过不同直线划分出的区域来区分不同类别。本文介绍人工神经网络的几何意义,通过对神经网络计算的展开,让大家能神经网络的工作原理有更深刻的理解。上面例子只是最简单一元数据的计算,对复杂的数据就不那么好理解,但其本质还是分类。

2024-03-25 09:47:34 189

原创 MakeLabel图片标注工具

MakeLabel是一款用Python编写的,用于给图片区域内容作标注的工具软件。它的目的是给YOLOV5样本图片作标注,并生成可供YOLOV5训练使用的标签文件。

2024-01-02 12:39:52 581

原创 Nvdia Jetson Nano控制传感器

【代码】Nvdia Jetson Nano控制传感器。

2023-12-26 11:02:47 292

原创 Nvdia Jetson Nano GPIO介绍

BOARD、BCM、CVM、TEGRA_SOC是Jetson GPIO的四种模式。四种模式可以分为两组:BOARD和BCM一组,CVM和TEFRA_SOC一组。其中,前两种源于RPi.GPIO library,因此Jetson Nano的引脚对照和树莓派一致,大家再开发学习时,可以参照树莓派。

2023-12-26 10:54:02 244

原创 MediaPipe - 03.姿态识别

本系列文章介绍各类图像识别的使用方法,运用这些技巧采集更多的原始数据,训练我们的AI模型。本系列文章要有Python和OpenCV基础。

2023-11-24 14:08:41 249

原创 MediaPipe - 02.人脸识别

本系列文章介绍各类图像识别的使用方法,运用这些技巧采集更多的原始数据,训练我们的AI模型。本系列文章要有Python和OpenCV基础。

2023-11-24 14:06:42 320

原创 MediaPipe - 01.手掌识别

MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。集成人脸识别,人体姿态评估,人手检测模型。MediaPipe安装也是很方便的,在控制端输出pip install MediaPipe即可。默认情况下MediaPipe是基于CPU检测的,如果要GPU检测,那就要自己重新编译支持GPU的MediaPipe了。官网:https://google.github.io/mediapipe/MediaPipe通过检测手掌上21个关键点来判断手掌的姿态。

2023-11-24 14:04:25 203

原创 WebGL-17.雾效果

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。通过对着色器的处理,我们可以产生很多好看的效果。而GPU编程的重点也在于着色器的处理。雾效果在着色器里实现是非常容易的。下面的例子是这样的。一个前后移动的三角形。观察点位置不变(0,0,1)。雾化起点和终点分别是1.5和5.0。三角形表面颜色是黄色。雾的颜色是绿色。从1.5位置开始,越往后,颜色越绿。

2023-11-21 13:09:46 81

原创 WebGL-16.点绘制

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。屏幕上一个点就是一个像素。像素是方形。在WEBGL中我们可以把点设置成圆形。

2023-11-21 13:07:03 33

原创 WebGL-15.HUB效果

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。平视显示器(head up display)简称HUD。最早用于飞机驾驶,平视显示器将一些重要信息投射到飞机驾驶舱前方的一块玻璃上。飞行员不用低头观察仪表盘。在WebGL用这个功能可以在用来显示提示、菜单等信息。会让你的WebGL程序变得更酷。WebGL中应用HUD是很方便的,其实这也不能算WebGL技术。

2023-11-21 12:59:57 33

原创 WebGL-14.截屏操作

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。我们会遇到一种情况,渲染好一个场景后,想把他截图下来保存。如何把WebGL的渲染图保存成图片呢。有人会说,右键->图片另存。这是手动方法,我们讲的是要自动方法。比如:渲染一个3D场景,直接保存成图片。要将渲染效果保存成图片,光靠Javascript不行,还要靠后台程序支持。后台程序一般用PHP。前台负责采集渲染数据传给后台。

2023-11-21 12:58:27 183

原创 WebGL-13.物体拾取

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。在3D环境中,对3D物体进行点击选择是一个常用的技巧。常用有三种方法来对物体选择。第1种是获取渲染屏幕的颜色值来判断选中了那些物体。这个方法效率很高,但是要求物体是纯色或杂色较少。应用环境很窄。第2种是把3D物体的三维坐标重新转换成屏幕坐标,再判断是否选中。在模型复杂的环境时这种方法效率很低,别外无法对选中模型的深度进行排序。

2023-11-21 12:56:32 72

原创 WebGL-12.颜色混合

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。颜色混合是指在WebGL里,我们可以对两个物品的渲染效果进行处理,处理效果就像Photoshop里那样的图像混合处理。混合计算可分为Alpha混合和Color混合。前者是带Alpha属性。

2023-11-17 12:48:49 141 2

原创 WebGL-11.渲染到纹理

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。离屏渲染也叫渲染到纹理。也就FBO(帧缓冲对象)其实就是两次渲染。第一次渲染的图像保存在一张纹理上,第二次渲染时把第一次渲染出来的纹理使用上。第一次的渲染结果只保存在纹理上,不在屏幕上显示。所以叫“离屏渲染”。离屏渲染主要用在镜子和阴影上。比如一个镜子,镜子前方有一物体。摄像机在物体后方看向镜子。

2023-11-17 12:42:17 307

原创 WebGL-10.纹理加载

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。3D渲染效果要好,有两个主要方面。一个是灯光,另一个就是纹理。纹理的使用也会影响到渲染的最终效果。在WebGL使用纹理有一个要特别注意的问题。就是一定要等纹理图片加载完成后再去执行WebGL渲染部分代码。如果图片还没完全下载到本地,就开始渲染了。那出来的效果肯定是错的。在Javascript里判断IMG是否加载完成有多种方法。

2023-11-17 12:34:58 77

原创 WebGL-09.索引顶点

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。这节我要渲染一个正方形,用之前的方法,一个三角形有三个点,要传送3个顶点数据给着色器。正方形有两个三角形,那就有6个顶点的数据要传送。但是正方形只有四个顶点。是否一定要传6个顶点的数据呢?答案是否定的。我们可以通过索引顶点的方法来做,方法很简单,就是告知系统,我有四个顶点,两个要绘制的三角形的绘制顺序是什么就可以了。

2023-11-17 12:27:02 98

原创 WebGL-08.灯光使用

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。3D渲染要真实,最重要的条件有两个,其中一个就是灯光的运用。在WebGL里灯光渲染都放在片元着色器里完成。这就给了我们很大的“艺术创作”空间。有四点大家要记住的。这节我示范的程序是一个简单的点光源照亮三角形。光源在不同的位置,对三角形的照亮部位是不同的。红色的三角形,绿色的灯,照出来的效果会如何呢?

2023-07-06 08:31:23 147

原创 FreeImage编程 - 创建图片

上一节我们学习了如何读取一张图片数据,这节我们用FreeImage来创建一张图片。FreeImage能存取多种格式的图片。而且很简单,我们将创建一张256*256的PNG图片,图片上分别有三行RGB颜色。其中Red颜色ALPHA通道是128,即是透明的。大家会发现图片RGB的顺序是颠倒的,就像我们读取图片信息一样。所以大家在创建图片时一定要注意这个问题。

2023-07-04 22:54:15 301

原创 FreeImage编程 - 读取图片

FreeImage是个免费的开源图片开发库,用他可以读取JPG、BMP、PNG、TGA、GIF等20多种常用图片格式。他还有一个好处,跨平台。FreeImage官网:http://freeimage.sourceforge.net/FreeImage下载地址:http://sourceforge.net/projects/freeimage/

2023-07-04 22:47:36 477

原创 WebGL-07.摄像机控制

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。这节我们要学四个新内容。

2023-06-29 16:58:12 276

原创 WebGL-06.动画控制

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。这节来说下如何做“动画”,在c/c++下我们一般会用计时器来控制动画演示频率。在HTML下我们就用settimeout这个函数,等待若干毫秒后执行某个函数。以上节课为例。三角形由大变小,再由小变大,一共是20帧,这个过程我们要2秒钟内完成。那么一帧的时间就是2000 / 20 = 100毫秒。

2023-06-29 16:50:29 142

原创 WebGL-05.几何变换

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。WebGL里的几何变换都是通过矩阵变换来完成了。创建一个变换矩阵把他转给着色器。在vertex shader阶段完成位置变换。常用的变换就平移、旋转、缩放这三个。这里我们要用一个JS版的FlyMath矢量数学库来生成变换矩阵。这个数学库是我写的,开源的,并且不断更新中。大家如对FlyMath有什么好的意见可随时提。

2023-06-28 11:19:52 66

原创 WebGL-04.颜色控制

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。这节我们讲两个内容,一个是如何给canvas添加鼠标事件响应,这个很简单,加个相应事件函数完成。第二个是,如何给片断着色语句传递颜色值。这个也不难。但要注意语句的书写和使用位置。这节的例子是这样的:还是上节的三角形,在canvas点击,三角形的着色由黑慢慢变红。

2023-06-28 11:13:44 152

原创 WebGL-03.图元绘制

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。在WebGL里有画点、线、面的工具。因为WebGL是基于OpenGL ES2的,所以所有的绘制命令都要用GLSL来绘制。以前的glbegin/glend,大家就忘掉它了吧。

2023-06-28 11:00:41 112

原创 WebGL-02.窗口自适应

下面我们修改webgl.htm程序,让canvas随着窗口大小的变化而动态改变大小。这个程序很简单,canvas的大小是窗口宽度的一半。这里主要说下viewport这个函数,这个是GL的视口设置函数,设置渲染区大小,一般大小和canvas一样,也可以不一样。比如要保证渲染视角比例时,可以限定viewport的大小,不随canvas变化。程序的意思很简单,当屏幕大小改变时,则重新初始化WebGL,为什么要重新初始化,而不是直接改变大小就可以呢。本系列教程主要讲解利用WebGL开发网页版的三维图形程序。

2023-06-28 10:55:21 200

原创 WebGL-01.初始化环境

本系列教程主要讲解利用WebGL开发网页版的三维图形程序。这里主要用到的OpenGL和FlyMath内容。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。WebGL的使用必须要在HTML5基础上使用。他是把HTML5的CANVAS标签作为绘图上下文设备。因此我先创建一个简单的HTML5网页。就叫webgl.htm吧。

2023-06-28 10:51:49 134

原创 Scikit-learn-08.PCA算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。PCA,主成份分析法。它是一种维数约减算法,即将高维数据转换成低维数据的算法。它是用来对数据进行压缩的算法,在可控的失真范围内提高运算速度。高维数据转换成低维数据可以理解为一种高维向低维投影的过程。比如三维环境中的物品投射到二维屏幕的过程。这就需要一个投射转换的视图矩阵。

2023-06-26 09:20:17 269

原创 Scikit-learn-09.K-均值算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。K-均值算法是一种典型的无监督机器学习算法,用来解决聚类问题。k表示把数据分成多少类,理论上k值越大,算法成本越低。重复上面的动作,直到聚类中心不再移动为止。

2023-06-26 09:19:21 56

原创 Scikit-learn-07.朴素贝叶斯算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。朴素贝叶斯算法(Naive Bayers)是一种基于概率的分类方法。它在条件独立假设的基础上,使用贝叶斯定理构建算法。我们先来看一个案例。用一个假冒的呼气测试仪来测试司机是否醉驾。假设这个仪器有5%的概率会把一个正常的司机判断为醉驾,但对真正醉驾的司机测试则是100%准确。

2023-06-26 09:18:03 255

原创 神经网络设计-02.三层神经网络

本系列文章,我将用Python语言、numpy工具演示神经网络的一些经典实现例子。希望能帮助对人工智能有兴趣的朋友。

2023-06-24 21:49:09 125

原创 神经网络设计-01.两层神经网络

本系列文章,我将用Python语言、numpy工具演示神经网络的一些经典实现例子。希望能帮助对人工智能有兴趣的朋友。

2023-06-24 21:46:44 311

原创 Scikit-learn-06.支持向量机算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。支持向量机简称SVM,是Support Vector Machine的缩写。SVM是一种分类算法,在工业界和学术界都有广泛的应用。特别是针对数据集较小的情况下,往往其分类效果比神经网络好。SVM的最大特点是能构造出最大间距的决策边界,从而提高分类算法的准确性。

2023-06-24 21:16:56 113

原创 Scikit-learn-05.聚类算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。什么是聚类?人以群居,物以类聚。聚类就是指综合所有特征值相近的分类。聚类和上节的分类感觉都是分类,但实质是不同的。聚类的英文是Clustering,和我们之前做的分类是Classification。是给出样本数据和对应标签,然后去训练分类器,这是能达到最高精度的一种。属于有监督学习过程。

2023-06-24 21:14:32 197

原创 Scikit-learn-04.决策树算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。这节我们来说机器学习中常用的一个功能-决策树。决策树是分类器中的一种,属于有监督学习方法。简单来说,分类器就是根据样本的特征或属性,划分到已有的类别中。也就是说,这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。

2023-06-24 21:13:04 172

原创 Scikit-learn-03.K-近邻算法

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。K-近邻算法(KNN)是有监督的机器学习算法。它的核心是未标记样本的类别,由距离其最近的K个邻居投票来决定。

2023-06-23 12:40:57 54

原创 Scikit-learn-02.逻辑回归

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。逻辑回归算法虽然带有“回归”二字,但实际上它是一个分类算法。虽然可以进行多元分类分析,但本质上是二元分类计算。也是一种线性回归算法。

2023-06-23 12:36:55 376

原创 Scikit-learn-01.线性回归

本系列文章介绍人工智能的基础概念和常用公式。由于协及内容所需的数学知识要求,建议初二以上同学学习。运行本系统程序,请在电脑安装好Python、matplotlib和scikit-learn库。相关安装方法可自行在百度查找。线性回归算法是使用线性方程对数据集进行拟合的算法,是一个非常常见的回归算法。属于有监督学习。

2023-06-23 12:36:06 672

原创 神经网络常用传递函数

在深度学习里面,每层神经网络的数据传递和回归都会用到传递函数来实现。传递函数如何使用,不是本节讲的内容。本节主要介绍各种常用传递函数的数学性质。

2023-06-23 12:31:01 411

原创 PyOpenGL-05.几何着色器编程

本系列教程主要讲解利用Python和OpenGL开发三维图形程序。这里主要用到的工具库是glfw开源图形库。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。当我们在一个场景中绘制多个相同物体时。比如绘制多棵树、草。大家想到的肯定是用一个for语句来重复绘制命令来实现。这种方法效率是非常低的。小场景还好,在大场景采用这种方法效率会非常低下。效率低下原因是,for语句是在cpu下执行的。我要绘制100棵树,CPU就要提交100次数据给GPU,效率可想而知。

2023-06-22 07:00:32 112

原创 PyOpenGL-04.曲面细分着色器编程

本系列教程主要讲解利用Python和OpenGL开发三维图形程序。这里主要用到的工具库是glfw开源图形库。本系列内容较难。要求学生对几何和编程有一定的了解。建议初三以上同学学习。曲面细分着色器,就是在一个基础图形的基础上,按照一定规律重复递归细分。这样做有两个好处,1.模型数据加载不用再那么庞大。把细分工作放到渲染阶段。而且这个细分过程是可控。2.由于细分过程是在GPU上完成,所以速度比CPU上细分快得多。曲面细分过程分为两个过程。

2023-06-22 07:00:22 140

FreeImage3.18开发库

内有X32和X64版本的freeimage.h,freeimage.lib,freeimage.dll

2023-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除