设总物体类别为n 一张图片上只有一个物体 输入一张图片,判断其上的物体属于哪个类别
网络最后一层的神经元个数为n,每个位置对应一个类别, 神经网络最后一层神经元的个数与物体类别数一致,每个位置代表相应物体的概率,总和为1
设总物体类别为n 一张图片上有多个物体 输入一张图片,判断其上有哪些类别的物体 网络最后一层的神经元个数为n,每个位置对应一个类别, 神经网络最后一层神经元的个数与物体类别数一致, 每个位置代表相应物体的概率, - 1-代表该图像上有该物体 - 0-代表该图像上无该物体 如果是机器学习,可能需要n个模型,每个模型判断是否为某个类别, 深度学习模型则不需要,一次就可以判断n个类别 - 好像机器学习输出只是一个数值,为什么会这样呢?机器学习为什么不能计算向量呢? 类别的确定 业务上只有N个类别,但业务限制不住用户,防不住意外,总会出现一些不属于这N个类别的事物 所以,定义第N+1个类别,将不确定因素出现的类别归于此类,不确定类,未知类别 - 客户异常输入 - 程序bug导致的异常 - 其他一切意外出现的异常 |
一个工程师最大的能力是什么? 问题转化的能力 可以将 一个未处理过的问题 转化为 类似的已处理过的问题 这样,就可以使用已知的解决问题的方法解决该问题了 这里将定位问题转化为图像分类问题 - 切图,切成一个个小图片 - 判断一张图片是否存在某个物体 - 切图时,记下坐标就可以框图了 |
切图框的形状 统一的框也可以计算 与物体边缘越贴合越好 一个物体也可以多类框, 一个人站着一个框, 坐着一个框, 躺着还是一个框 框的形状可以使用穷举法 - 一个物体可能有多个形状的框 - 不同的物体可能有不同形状的框 - 每个框都有同比放大或缩小的图像 标准框与真实框之间的误差 初始化一个正方形,或者一个最接近真实物体的框, 设计一个方法,可以 反应/体现 初始化框与真实框之间的差异 随着模型训练学习,初始化框不断向真实框逼近... 回归的是offset,模型框与标签框之间的偏差 |
一个物体,由框切出的图像是有多个的,按重叠度进行合并 两个图像中的物体有80%一样,重叠,那么就认为这两个图像的物体是同一个物体 两个图像中的物体有20%一样,重叠,那么就认为这两个图像的物体不是一个物体 关键看重叠比例,至少多少比例算同一个物体,作为超参数提供到API中,根据业务确定 Jaccard系数 IOU:交并比,交集占并集的比例, Jaccard index [1], 又称为Jaccard相似系数(Jaccard similarity coefficient) 用于比较有限样本集之间的相似性与差异性。 Jaccard系数值越大,样本相似度越高。 ![]() Jaccard求两个集合之间的相似度, 其计算代价比余弦相似度,欧氏距离要低 |
|
单图单物,最初的图像分类 - 手写数字识别 物体检测:单图多类别 分类任务 1. 单图多物,分出每个物体:物体检测,这是图像级分类,粗糙的分类, 2. 再+每个物体的位置,画个框,定位:物体检测中做的好的,还属于物体检测 3. 框是长方形,若能勾画出物体的具体形状就更好了:语义分隔 4. 在语义分隔的基础,对每类物体中的不同实例进行编号/描述/分别:实例分隔 5. 在实例分隔的基础,取出背景,前景,背景与背景也会不一样: 全场景分隔,图像上每个区域都进行了分类 物体检测是AI视觉方向核心中的核心 搞定物体检测,就彻底踏入CV大门... |
图像上只出现物体的一部分,通过这个部分,人一眼就能确定是什么物体 现在,也要让AI具有这样的能力:根据一个物体的一部分,推断出这是什么物体 置信度:有多大的把握确定一件事,有多大的概率确定一件事 AI确定一个事物是某个物体的概率是多少? 物体检测的输入: - 图像,图像上物体可能完整,也可能残缺 - 物体的类别及位置 物体检测的输出: - 不同的类别,以及为该类别的概率 - 不同物体的位置 |
RNN/CNN - two stage - 早期算法,具有开创性,推动了学术及行业的发展 - 最伟大的地方在于,首次提出了解决一个问题的方法,重要的是开创性 - 速度慢,当下追求的是速度,毫秒级的响应时间,RNN推理速度慢了 - 精度高 - 不发展了,退出历史舞台 YOLO - one stage,速度快 - 前3版由一个修车工开发,后续版本由其他人开发... - 开始的时候因为速度快,精度稍微低一些;后续的版本,速度也上来了 - 发展中 SSD - 清晰明了,速度快,one-stage - 发展中 无锚框设计系列 Anchor Free - 不切图 - 尚未工业化 |
单类别,多实例,简单的物体检测 - 人脸识别,从技术的角度看,叫 人脸检测 更合适一些 - 零件计数,同一零件有多少个 换一个行业,医疗,金融,流水生产线,... 对一个技术的本质理解比较深入时, 进入一个新的领域,快速将一个未知问题转化为已知问题 根据具体的业务,快速出一个模型,出一个baseline, 然后 出多个模型,速度快的,速度慢的,性能,效率,从不同的维度都出一些模型 人脸检测 - 相比物体检测,不需要检测其他类别,只需要判断是否人脸 - 画框,框的误差回归 - 多了一个任务,要标出眼睛,鼻子,嘴角等五点,五点offset回归 |
|
机器学习中的二分类 是否发生,是否成立,用0与1表示 发生/成立为1,反之为0 工业上使用二分类解决多分类问题 一个模型对应一个二分类器 有几个类别就设计几个二分类器, 使用A分类器判断是否为类别A - 若是类别A,判断结束 - 若不是 - 使用B分类器判断是否为类别B - 若是类别B,判断结果 - 若不是 - 一直判断下去,直到判断完所有的分类器 不同的分类器之间相互独立,可并行训练, - 就是各训练各的,各判断各的, - 并行预测时,也可以取概率最高的类别 - 比如A分类器预测该事物为A的概率为0.6,但B分类器认为该事物为B的概率为0.8,则将该事物确定为B - 当出现多个类别差别不大的情况时,比如一个预测为0.7,一个预测为0.75,那么就是训练不到位,要重新训练 |
本来只A,B,C三个分类,有人确要加一个A+B的类别,成为四分类 不管是机器学习,还是深度学习,模型并不认识自己要分的是什么类别, 完全就是学习数据规律,数据是怎么分的,它就怎么学习 所以,你要弄出来一个A+B类别,那就将数据分成四类,A,B,C,A+B,然后训练就可以了 上面是AI模型训练的思路,下面是传统开发的思路: 如果是深度学习,像这种三类到四类的映射,一个简单的全连接变换就可以 如果是机器学习,可以判断出A,B,C三类别后,再手工加一些if else判断一下 |
|
|
|
原图像(宽,高)--> (W,H) 图像上点的绝对坐标:(x,y) 相对坐标:(x/W,y/H), 当原图按比例缩放时,相对坐标不变, 当一个点处于原图二分之一处时, 原图不管如何缩放,那个点永远都在原图的二分之一处, 在原图缩放的过程中,点的绝对坐标也在同时缩放, 并且缩放的比例一致,所以其比值不变, 即 相对坐标 在原图缩放的过程中 不变 原图(W,H)转化为统一的尺度,比如(32,32), 相对坐标表示位于新图的(32*x/W,32*y/H)处, 新图通常转化为一个固定长度的方图,强制进行了统一尺度, 相对坐标的尺度也随之统一