整理结果和文档

This commit is contained in:
li.zhenye 2022-07-21 17:32:46 +08:00
parent f52c8943e1
commit c299be9d03

View File

@ -21,7 +21,15 @@
## 训练的原理 ## 训练的原理
为了应对工业环境当中负样本少的特点,我们结合颜色有限空间的特性对我们的训练过程进行了优化,核心的优化方式在于制造负样本 为了应对工业环境当中负样本少的特点,我们结合颜色有限空间的特性对我们的训练过程进行了优化,核心的优化方式在于制造负样本。
### 传统的负样本是怎么来的?
传统方法中,我们通过收集负样本,得到这样的结果:
![image-20220721170840283](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721170840283.png)
这张图里,负样本是紫色、红色和绿色区域,正样本则是蓝色区域。如果用这样的数据进行训练,我们得到的模型一定是欠约束的,因为我们不知道没有负样本的区域上,模型到底会表现出怎样的结果,所有我们想到,去手动制造负样本。
### 负样本是怎么造出来的? ### 负样本是怎么造出来的?
@ -29,27 +37,34 @@
### 训练的结果 ### 训练的结果
这样子进行训练,模型就会被约束在我们给定的样本范围内,就像你看到的这样。 添加负样本后进行训练,模型就会被约束在我们给定的样本范围内,就像下图看到的这样。
![image-20220721153751824](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721153751824.png) ![image-20220721153751824](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721153751824.png)
在这里,绿色就是目标的色彩范围,橙色的和蓝色则表明了模型的判定范围,模型认为蓝色的区域就是烟梗,而橙色的区域就不是烟梗。 在这里,绿色就是目标(烟梗)的色彩范围,橙色的和蓝色则表明了模型的判定范围,模型认为蓝色的区域就是烟梗,而橙色的区域就不是烟梗。
可以看到,蓝色区域与绿色区域是高度重叠的,并且蓝色比绿色区域要大一些的,这正是我们想要的效果。这表明模型对于烟梗的颜色有适度的宽容,允许色彩有一定的偏差,但大体上是要达到烟梗颜色范围内的。 可以看到,蓝色区域与绿色区域是高度重叠的,并且蓝色比绿色区域要大一些的,这正是我们想要的效果。这表明模型对于烟梗的颜色有适度的宽容,允许色彩有一定的偏差,但大体上是要达到烟梗颜色范围内的。
这样的好处在于,即使出现了新的杂质,只要这些杂质的色彩不在模型的宽容范围内(蓝色范围内),那么都会被判定为杂质。 这样的好处在于,即使出现了新的杂质,只要这些杂质的色彩不在模型的宽容范围内(蓝色范围内),那么都会被判定为杂质。
我们甚至可以直接将需要的目标色彩(烟梗的颜色)和背景的颜色直接合并到一类,这样还可以节省后续的各种逻辑判断、与、或、非等操作。
## 预测过程的后处理(异色问题) ## 预测过程的后处理(异色问题)
### 问题的发现 ### 问题的发现
![image-20220721154731187](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721154731187.png) ![image-20220721154731187](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721154731187.png)
在摄影过程中,由于相机、镜头和拍摄物体多方面的原因会出现色散边的现象,就像上图这样本来应该黄色的烟梗,边缘却变成了绿色或紫色的。 在摄影过程中,由于相机、镜头和拍摄物体多方面的原因会出现色散边的现象,就像上图这样本来应该黄色的烟梗,边缘却变成了绿色或紫色的。
这是由于不同波长的光折射率不同到达成像单元的位置会出现细小的偏差而我们的成像单元又比较的细小举例来说这可能使得物体上同样的点发出的红光到了1号像素而发出的绿光本来应该也射到1号像素却射到了相邻的2号像素这就导致色彩不对了。 这是由于不同波长的光折射率不同到达成像单元的位置会出现细小的偏差而我们的成像单元又比较的细小举例来说这可能使得物体上同样的点发出的红光到了1号像素而发出的绿光本来应该也射到1号像素却射到了相邻的2号像素这就导致色彩不对了。
根据资料,一般的解决方案是对于不同波长的光进行折射率补偿,使用抗色散镜头。 根据资料,一般的解决方案是对于不同波长的光进行折射率补偿,使用抗色散镜头。但是由于条件有限,我们这里就只能用算法的形式硬抗这些误差了。
### 解决方案
- 一方面,用像素块的结果进行求和,像素块求和结果大于阈值的时候判定为杂质,这个方案目前正在使用,可以有效去除小块的错误识别点,也不会因为腐蚀操作导致缺损。
- 另一方面,进行烟梗结果的膨胀,去掉紫边。这个方案待开发。
## 镜头的影响 ## 镜头的影响
@ -58,12 +73,34 @@
| 视角 | 广角镜头 | 窄角镜头 | | 视角 | 广角镜头 | 窄角镜头 |
| -------- | :----------------------------------------------------------: | :----------------------------------------------------------: | | -------- | :----------------------------------------------------------: | :----------------------------------------------------------: |
| 普通视角 | ![image-20220721155919349](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721155919349.png) | ![image-20220721155848160](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721155848160.png) | | 普通视角 | ![image-20220721155919349](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721155919349.png) | ![image-20220721155848160](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721155848160.png) |
| 放大视角 | ![image-20220721161109746](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721161109746.png) | ![image-20220721161117435](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721161117435.png) |
但是由于条件有限,我们这里就只能用算法的形式硬抗这些误差了。 可以看到,镜头的影响有两方面
- 镜头会影响到物体的亮度,广角镜头下的物体看起来更暗
- 镜头会影响到物体的色彩显示,广角镜头下物体的色彩相比于窄角镜头的色彩饱和度要差很多,色相也更加不明显。
综合这两点来看,在条件允许的情况下应该选择窄角镜头。
但是我们这里的传送带非常宽我们也只有1个相机不像陶朗一样一条线有29个相机或者合肥的一条线48个相机所以我们只能冒险试试了。
尝试的结果很糟糕,可以看到如下图所示:
![image-20220721164306227](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721164306227.png)
几乎所有的烟梗都被当成了杂质。
为了探究这个问题,我们回到色彩空间中进行观察,可以看到这样的结果:
![image-20220721164406435](https://raw.githubusercontent.com/Karllzy/imagebed/main/img/image-20220721164406435.png)
在新的镜头下,数据的分布和原本的数据已经发生了巨大的变化,根本就不是同一种东西,这就是为什么分类结果会出错了。
## 模型的更新 ## 模型的更新
### 如何应对新的目标物? ### 如何应对新的目标物?
我们可以认为镜头的更换会直接让色彩发生特别离谱的变化,如果出现这样的情况,我们应该直接抛弃旧的数据,训练新的模型。这样也能获得相对不错的分类结果。
**所以我们今天晚上要丢弃旧的数据,进行这个新的模型的训练**。