
不涉及理论的简易机器学习笔记
文章平均质量分 85
个人学习笔记,从一个开发者的角度出发,先上车后买票,尽量少写关于理论的东西或者仅简单介绍理论。
宗旨是先上车后补票,先会用后学理论
庭师_Official
Audio && ComputerVision Devoloper.
展开
-
全流程点云机器学习(二)使用PaddlePaddle进行PointNet的机器学习训练和评估
这不是高支模项目需要嘛,他们用传统算法切那个横杆竖杆流程复杂耗时很长,所以想能不能用机器学习完成这些工作,所以我就来整这个工作了。工欲善其事,必先利其器,在正式开始之前,我们先要搞懂如何切分数据集。本系列文章所用的核心骨干网络代码主要来自原文的代码有点问题,这里做了一点修改,主要应用了paddlepaddle进行的pointNet进行分割任务。原创 2024-02-21 11:41:04 · 836 阅读 · 0 评论 -
全流程点云机器学习(一)使用CloudCompare自制sharpNet数据集
我们可以在网站上下载到SharpNet的数据集和标签,我们下载下来解压看看里面的结构以下是训练集点云文件组以下是训练集点云的标签组也就是说实际上是一个pts文件对应一个.seg文件。其中pts文件好理解,就是一个个的明文点云,内容如下:打开seg文件,里面行数和同名的pts文件行数相同,这个.seg文件中代表的意思就是对应行数的点所对应的label标签,通常以一个数字来表示,比如1是背景,2,3,4代表各种各样的对象,具体每个数字对应的对象是什么。原创 2024-02-21 09:28:20 · 1637 阅读 · 1 评论 -
全流程机器视觉工程开发(四)PaddleDetection C++工程化应用部署到本地DLL以供软件调用
这个是因为在opencv新版本中将这些标识符都改名了,现在将这些未定义的标识符从CV_xxx_xxx改成cv::xxx_xxx即可,比如:改为:把报错的地方都改一下就可以了。原创 2024-01-31 22:30:43 · 1786 阅读 · 0 评论 -
全流程机器视觉工程开发(三)任务前瞻 - 从opencv的安装编译说起,到图像增强和分割
最近开始做这个裂缝识别的任务了,大大小小的问题我已经摸得差不多了,然后关于识别任务和分割任务我现在也弄的差不多了。现在开始做正式的业务,也就是我们说的裂缝识别的任务。作为前言,先来说说场景:我们现在如果说想直接使用这个图片来进行图片识别的话,会有很多的问题。其中最主要的问题就是图片实在是过大,5120x5120的图片会导致图片不论是训练还是推理期都太长了,并且为了更好地处理图片,我们都会要求图片的训练期和推断图片都必须是比较小的,这样才有利于我们后续不论是实例分割还是目标识别任务。原创 2024-01-31 21:42:30 · 1213 阅读 · 0 评论 -
全流程机器视觉工程开发(二)PaddleDetection:拉框,然后开始训练模型
我现在在准备做一个全流程的机器视觉的工程,之前做了很多理论相关的工作。大概理解了机器视觉的原理,然后大概了解了一下,我发现现在的库其实已经很发展了,完全不需要用到非常多的理论,只需要知道开发过程就可以了,甚至paddlex已经直接有了傻瓜式模型训练的软件,所以我现在准备来做一个全流程机器视觉工程开发,不涉及过多理论。书接上文,我们在先前的文章中说明了如何准备PaddleDetection环境和Labelme工具,现在我们来做后续的开发工作。到这里开始我们就可以开始尝试训练模型了。原创 2024-01-19 14:10:42 · 1166 阅读 · 0 评论 -
全流程机器视觉工程开发(一)环境准备,paddledetection和labelme
我现在在准备做一个全流程的机器视觉的工程,之前做了很多理论相关的工作。大概理解了机器视觉的原理,然后大概了解了一下,我发现现在的库其实已经很发展了,完全不需要用到非常多的理论,只需要知道开发过程就可以了,甚至paddlex已经直接有了傻瓜式模型训练的软件,所以我现在准备来做一个全流程机器视觉工程开发,不涉及过多理论。原创 2024-01-18 16:28:02 · 1413 阅读 · 0 评论 -
简易机器学习笔记(十一)opencv 简易使用-人脸识别、分类任务
刚刚说了两种,一个是划分区域,一个是打标签,那么能不能即划分区域,又打上标签呢?当然是可以的,接下来就简单说说怎么做。原创 2024-01-13 00:30:15 · 1466 阅读 · 1 评论 -
简易机器学习笔记(十)Windows下 PaddlePaddle配置CUDA加速环境
大伙既然都来做这个了,那配个CUDA环境肯定是必不可少的了吧(笑)最前面的最前面,原创 2024-01-05 23:29:40 · 3043 阅读 · 1 评论 -
简易机器学习笔记(九)LeNet实例 - 在眼疾识别数据集iChallenge-PM上的应用
我们需要读取两部分数据,分别是训练集和评估集,这两个集是分开的首先我们需要进行一个预处理部分:# 对读入的图像数据进行预处理# 将图片尺寸缩放道 224x224# 读入的图像数据格式是[H, W, C]# 使用转置操作将其变成[C, H, W]# 将数据范围调整到[-1.0, 1.0]之间return img定义一个训练集数据读取器类似之前的,我们需要将训练集划分batch,还需要将其打乱进行。至于Label,则是由名称决定的分组读取完毕之后,# 定义训练集数据读取器。原创 2024-01-04 16:06:06 · 1431 阅读 · 1 评论 -
简易机器学习笔记(八)关于经典的图像分类问题-常见经典神经网络LeNet
图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层次视觉任务的基础。图像分类在许多领域都有着广泛的应用,如:安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。这里简单讲讲LeNet我的推荐是可以看看这个视频,可视化的查看卷积神经网络是如何一层一层地抽稀获得特征,最后将所有的图像展开成一个一维的轴,再通过全连接神经网络预测得到一个最后的预测值。原创 2024-01-03 17:12:09 · 947 阅读 · 2 评论 -
简易机器学习笔记(七)计算机视觉基础 - 常用卷积核和简单的图片的处理
这里实际上涉及到了挺多有关有关理论的东西,可以详细看一下paddle的官方文档。不过我这里不过多的谈有关理论的东西。在代码中,我们实际上是用不同的卷积核来造成不同的影响,我这里也是paddle中对于卷积核的几个比较简单的应用。实际上你也可以理解成通过卷积算子对图像进行了处理,而输出的参数矩阵也就是卷积核,卷积核会决定对图像的处理结果。卷积核对图像造成的影响可以参考上方常见卷积核汇总。飞桨卷积算子对应的API是paddle.nn.Conv2D,用户可以直接调用API进行计算,也可以在此基础上修改。原创 2024-01-03 14:04:35 · 2020 阅读 · 2 评论 -
简易机器学习笔记(六)不同优化算法器
我们之前不是说了有关梯度下降公式的事嘛,就是那个这样梯度下降公式涉及两个问题,一是梯度下降的策略,二是涉及到参数的选择,如果我们选择固定步长的时候,就会发现我们求的值一直在最小值左右震荡,很难选择到我们期望的值。假设上图中,x0为我们期望的极小值,yB = xA - yA’xA的时候,xB实际上蹿到了极小值的右侧去了,当我们yC = xB - yB’xB的时候,我们求的yC又跑到极小值的左边去了,反正就是一直会在极小值x0附近震荡。原创 2024-01-02 23:31:15 · 891 阅读 · 0 评论 -
简易机器学习笔记(五)更换损失函数:交叉熵
我们之前用的是均方差作为我们神经网络的损失函数评估值,但是我们对于结果,比如给定你一张应该是0的照片,它识别成了6,这个时候这个均方差表达了什么特别的含义吗?显然你识别成6并不代表它比识别成1的情况误差更大。所以说我们需要一种全新的方式,基于概率的方案来对结果进行规范。也就是我们说的交叉熵损失函数。原创 2024-01-02 23:06:22 · 990 阅读 · 0 评论 -
简易机器学习笔记(四)初识卷积神经网络
第一次写卷积神经网络,也是照着paddlepaddle的官方文档抄,这里简单讲解一下心得。首先我们要知道之前写的那些东西都是什么,之前写的我们称之为简单神经网络,也就是简单一层连接输出和输出,通过前向计算和逆向传播,以及梯度下降的方式让结果慢慢滑向我们期望的终点。ok为了解决以上的这些问题,人们又研发出了全连接神经网络和卷积神经网络,当然了全连接神经网络作为老黄历,本身在paddle教程中相当于是一个对于卷积神经网络更好的理解的渐进式的介绍,这里也简单聊聊。原创 2024-01-02 01:10:26 · 1671 阅读 · 0 评论 -
简易机器学习笔记(三)简单手写识别
训练过程采用二层循环嵌套方式,训练完成后需要保存模型参数,以便后续使用。#数据处理部分之前的代码,加入部分数据处理的库。前期需要将库导入,还需要进行一些初始化操作。然后我们画个图试试就行。综上就是模型训练过程。原创 2023-12-25 17:10:44 · 829 阅读 · 0 评论 -
简易机器学习笔记(二)使用paddlepaddle,再探波士顿房价预测
点击查看代码#self代表对象自身#初始化父类的参数#定义一层全连接层,输入维度是13,输出维度是1#网络的前向计算函数return x在上面这个类中,不论是前向计算还是初始化,都是继承了这个paddle.nn.Layer类,用其内部的成员函数执行的。原创 2023-12-22 17:21:24 · 1605 阅读 · 0 评论 -
简易机器学习笔记(一)从波士顿房价预测开始,梯度下降
其实这一章节比较简单,主要是概念,首先在波士顿房价这个问题中,我们假设了一组线性关系,也就是如图所示我们假定结果房价和这些参数之间有线性关系,即:然后我们假定这个函数的损失函数为均方差,即:那么就是说,我们现在是已知y和x,来求使得这个损失函数Loss最小化的一个w和b的组合读取数据这里主要需要注意两点,就是对数据进行归一化。所谓归一化就是将指定变量按照其在整个数据集中的上下限,投影出一个0-1之间的值,并以此来作为计算的标准。这样做的好处是方便计算,而且后面能更好地评估值的影响。还有一件事就是划原创 2023-12-22 14:13:23 · 1145 阅读 · 1 评论