当前位置:网站首页>图像处理技术的心酸史
图像处理技术的心酸史
2022-07-31 02:01:00 【IT极客帮】
时间回到八十年代,你是一名算法工程师,你的老板让你写个程序去识别下面的图形。
经过冥思苦想,你终于找到了哈里斯角点检测算法,通过检测角点的个数来判断图形形状。
通过上图可见,其检测过程就是用一个检测算子(也称为滤波器核,本质上就是一个矩阵),在图像上滑动,滑动过程中检测算子与图像做内积运算:
原理虽然简单,但这个滤波器核的设计并不那么容易,这需要经验丰富的科学家经过长时间的研究实验设计出来的。
时间来到九十年代,你的老板听说机器学习挺火,想赶时髦,希望你能用机器学习实现这个图形分类任务。
经过冥思苦想,你很快想出了实现方案:
1收集大量图形图片,80%用于训练,20%用于验证
2设计多个二分类器(逻辑回归),每个分类器只用于一种图形的识别
2首先用哈里斯角点检测器提取角点特征
3将特征矩阵展开成一维向量送入机器学习算法
虽然完成了任务,但仍需要依赖角点检测器,并且需要训练多个分类模型。
时间很快来到了千禧年,神经网络这个词传遍大街小巷,你的老板两眼放光,希望你能用神经网络实现图形分类任务。
你冥思苦想,很快想到了方案,还是借助角点检测器提取特征,然后将特征输入到神经网络:
但已经被老板摧残成魔怔的你越来越反感角点检测器,因为你担心终有一天,图形换成其他形状,角点检测器就玩不转了,所以你下定决心换掉它。
经过冥思苦想,你终于有了想法:
任然按照前面的设计思路,但输入层不再是角点检测器提取的角点特征,而是图像矩阵,因为你知道,根据万能逼近定理,即使只有一层隐藏层的神经网络也能模拟任意复杂函数,你相信神经网络能自动提取特征。
另外,输出层也不再是单个逻辑回归,而是Softmax多分类器:
虽然完成了任务,但你发现,这种方式依赖于图形所在图像中的位置,已经不具备所谓的平移不变性了,例如,如果我们训练的数据集图形都在图片正中央,如果拿一张图形在左上角的图片去验证,则模型分类并不准确。
时间飞逝,很快来到了二十一世纪,得益于硬件的发展,卷积神经网络火遍CV领域,你的老板虽已到了迟暮之年,但仍雄心壮志,希望你能用卷积神经网络实现图像分类任务。
你捋着所剩无几的头发冥思苦想,终于想出了方案:
卷积神经网络与人工神经网络相比,参数少,速度快,因为卷积核在图像上滑动,所以整个图像共享卷积核参数,具有平移不变性,更重要的,卷积核的参数已经不需要专家的先验知识,而是通过训练过程模型自己学到的。
时间来到了2022年,你马上就到了退休的年龄,经过多年的努力,你的图像分类软件已经能很好的工作,但无论你怎么改模型,调参数,加数据,模型精度却只有很小的提升,经过冥思苦想,你终于想到了解决方案,你想给老板最后一个惊喜。
你的解决方案就是将原本在自然语言领域大展宏图的Transformer技术应用到了计算机视觉领域,我们称之为ViT,其核心思想是通过自注意力机制去重点关注对任务重要的部分,或略不重要的部分。
通过查看训练过程中的特征图,我们发现,模型更加突出关注与任务相关的前景部分,而忽略掉与任务无关的背景部分。
你终于退休了,你被老板压榨的心酸史,也正是图像处理技术发展的历程。
边栏推荐
- PDF split/merge
- MySQL installation tutorial (detailed, package teaching package~)
- multiplayer-hlap 包有问题,无法升级的解决方案
- [1154] How to convert string to datetime
- 1. Non-type template parameters 2. Specialization of templates 3. Explanation of inheritance
- 怎样做好一个创业公司CTO?
- case语句的综合结果,你究竟会了吗?【Verilog高级教程】
- 修改未正确放入沙盒造成苹果兼容性问题
- Drools规则属性,高级语法
- Drools基本介绍,入门案例,基本语法
猜你喜欢
Observer mode (1)
CV-Model【3】:MobileNet v2
multiplayer-hlap 包有问题,无法升级的解决方案
Overview of prometheus monitoring
tcp框架需要解决的问题
进程间通信学习笔记
Shell script to loop through values in log file to sum and calculate average, max and min
Static route analysis (the longest mask matching principle + active and standby routes)
vlan间路由+静态路由+NAT(PAT+静态NAT)综合实验
Teach you how to configure Jenkins automated email notifications
随机推荐
My first understanding of MySql, and the basic syntax of DDL and DML and DQL in sql statements
rpm install postgresql12
The real CTO is a technical person who understands products
The PC side determines the type of browser currently in use
mysql 视图
mmdetection trains a model related command
pc端判断当前使用浏览器类型
Drools Rule Properties, Advanced Syntax
What is the ideal college life?
二层广播风暴(产生原因+判断+解决)
怎样做好一个创业公司CTO?
First acquaintance with C language -- array
验证整数输入
MySql installation and configuration super detailed tutorial and simple method of building database and table
Drools basic introduction, introductory case, basic syntax
Crawler text data cleaning
Can an inexperienced college graduate switch to software testing?my real case
类似 MS Project 的项目管理工具有哪些
rpm安装postgresql12
[1153]mysql中between的边界范围