找回密码
 立即注册
楼主: RhinoFreak

本人研一图像处理方向,想问该怎么尽快上手,纠结的是先把python学扎实还是先整图像处理相关理论呀?

[复制链接]
发表于 2021-7-2 19:50 | 显示全部楼层
学Python和学图像处理相关理论并不冲突,可以两者同时进行。
首先,恭喜你快要进入CV的坑了(褒义褒义~),你现在研一,本科阶段应该是理工科专业 ,高数和线性代数等基础课程已经接触过了,可以先去学习一些图像处理的基本知识了,比如图像色彩空间、直方图、退化、复原等基本知识,并且要了解他们有哪些应用场景。同时,你也可以在看这些基础理论的时候开始着手学Python了,如果以前学习过C、C+,或者对matlab比较熟悉,上手Python应该是比较快的,Python上手后,就可以用你掌握的一些基本操作来折腾图像了,灰度、翻转、拉普拉斯变化、傅立叶变换等,你都可以慢慢的来了,熟悉Python的同时又巩固了图像处理的基本知识。


然后,Python和图像处理的基本知识掌握后,你可能就会涉及到一些细分领域内的基础算法了,这时候建议你和你导师或者师兄讨论一下,以后主攻哪一方面。比如图像去噪、超分辨率、去模糊等图像恢复方向,或者图像识别、图像分割、目标检测与追踪等方向,现在cv基本上都会使用深度学习了,基本的框架比如tensorflow、pytorch等也要慢慢了解。
这里有个个人建议,虽然现在的cv论文大部分都离不开深度学习,论文里面的花式神经网络层出不穷,但是,经典的传统图像处理算法还是要用心看,部分深度学习方法或多或少会有传统经典算法的影子。
哪有那么多的灵光一现,大部分人都只是积累得比较多罢了。
祝所有CV人都越来越好,不要再卷了~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-2 19:55 | 显示全部楼层
在没有相关知识背景辅助下,光看理论是没什么感觉的,边学边敲代码可以更直观地理解知识,同时debug或敲不出来参考别人的实现是学习一门语言最快的方法。
发表于 2021-7-2 19:56 | 显示全部楼层
建议直接上手,碰到问题再慢慢学
发表于 2021-7-2 20:05 | 显示全部楼层
补充一些,现在的图像处理方向,经常结合深度学习方法,例如
1)卷积神经网络
卷积神经网络在图像处理领域,应该是最常用的深度学习方法,主要包括卷积、池化和全连接层等。
卷积神经网络
2)残差网络
在下图中,我们可以看到很多跨层的连接(曲线箭头)。这些跨层连接就是残差网络的核心贡献。
残差网络
3)残差收缩网络
残差收缩网络[1][2]面向的是强噪、高冗余数据,能够通过自适应软阈值化,消减冗余噪声所对应的特征。
(面向强噪、高冗余数据的)残差收缩网络

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-2 20:09 | 显示全部楼层
简介

最有效率的方法就是结合编程学习图像处理的相关算法,在实践和具体的案例中理解算法的基本工作原理,同时练习了Python的编程能力,熟悉常用的处理图像的python库。这在学习初期是非常重要的,对以后进一步学习计算机视觉算法、甚至使用神经网络处理图像都非常有意义。
本篇回答针对图像处理,介绍Python中几个常用用于图像处理的工具和标准库,包括:OpenCV, Numpy & Scipy, Scikit-image和PIL(Python Imaging Library)。让初学者尽快上手实践图像处理基本算法。全文干货。
Python开发环境搭建

直接安装Anaconda,支持全平台,而且上面提到的4个标准库除了OpenCV都默认包含在Anaconda中了。而opencv自己单独安装一下就行了。
    Ananconda下安装opencv的方法:
  1. conda install -c conda-forge opencv
复制代码
检查一下,确保都安装好了:
环境搭建好之后,就可以进行python开发了。
在实战中,一切的起点是打好python基础,如果你是一个没有python基础的小白,有一个课程很适合,这里面有助教老师辅导答疑+督促学习,让你能保证足够的学习时间。对于零基础的同学来说,有老师带着学比找资料自学高效多了,能少走很多弯路。关键是这个体验课现在是免费的!感兴趣的同学可以点下方一键领取↓


OpenCV

    Opencv图像处理库主要专注于实时计算机视觉和图像处理算法,在二维和三维特征工具包、人脸和手势识别、人机交互、移动机器人、物体识别等领域应用广泛。官方教程链接:<a href="http://link.zhihu.com/?target=https%3A//opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html" class=" wrap external" target="_blank" rel="nofollow noreferrer">OpenCV-Python Tutorials ,包含了各种图像算法的讲解和相关代码实现;一个图像平滑算法的例子:
  1. import cv2
  2. import numpy as np
  3. from matplotlib import pyplot as plt
  4. img = cv2.imread('opencv_logo.png')
  5. blur = cv2.blur(img,(5,5))
  6. plt.subplot(121),plt.imshow(img),plt.title('Original')
  7. plt.xticks([]), plt.yticks([])
  8. plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
  9. plt.xticks([]), plt.yticks([])
  10. plt.show()
复制代码

Numpy & Scipy

    图像本质上是多维度数组,用NumPy和SciPy可进行基本图像操纵和处理。特别是子模块scipy.ndimage提供了对n维NumPy数组进行操作的函数。推荐一个使用Numpy和Scipy处理图像的教程:2.6. Image manipulation and processing using Numpy and Scipy下面这个例子展示了如何使用numpy中常规的矩阵操作函数处理图像。
  1. import numpy as np
  2. import scipy
  3. import scipy.misc
  4. import matplotlib.pyplot as plt
  5. face = scipy.misc.face(gray=True)
  6. face[10:13, 20:23]
  7. face[100:120] = 255
  8. % 给原图增加一个mask蒙板
  9. lx, ly = face.shape
  10. X, Y = np.ogrid[0:lx, 0:ly]
  11. mask = (X - lx/2)**2 + (Y - ly/2)**2 > lx*ly/4
  12. face[mask] = 0
  13. face[range(400), range(400)] = 255
  14. plt.figure(figsize=(3, 3))
  15. plt.axes([0, 0, 1, 1])
  16. plt.imshow(face, cmap=plt.cm.gray)
  17. plt.axis('off')
  18. plt.show()
复制代码
Scikit-image

    scikit-image是一个专门用于图像处理的Python包,并使用NumPy数组作为图像对象,最大的特点就是实现了大量的图像处理算法,可以直接调用相关函数,非常方便图像的预处理等。推荐教程:3.3. Scikit-image: image processing下面演示的就是图像处理中常用的大津(OTSU)算法,用于确定图像二值化分割阈值,可以调用ostu()函数。
  1. import matplotlib.pyplot as plt
  2. from skimage import data
  3. from skimage import filters
  4. from skimage import exposure
  5. camera = data.camera()
  6. val = filters.threshold_otsu(camera)
  7. hist, bins_center = exposure.histogram(camera)
  8. plt.figure(figsize=(9, 4))
  9. plt.subplot(131)
  10. plt.imshow(camera, cmap='gray', interpolation='nearest')
  11. plt.axis('off')
  12. plt.subplot(132)
  13. plt.imshow(camera < val, cmap='gray', interpolation='nearest')
  14. plt.axis('off')
  15. plt.subplot(133)
  16. plt.plot(bins_center, hist, lw=2)
  17. plt.axvline(val, color='k', ls='--')
  18. plt.tight_layout()
  19. plt.show()
复制代码
PIL

    在图像上执行基本操作,如创建缩略图,调整大小,旋转,在不同文件格式之间转换等。也是python下常用的图像预处理工具包。官方教程链接:Pillow (PIL Fork) 8.0.1 documentation

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-2 20:18 | 显示全部楼层
2个一起学一起抓,完全不冲突呀!
先学个1-2个月python,多看一些涉及基础的教程,mooc或者udemy上就有很多不错又便宜的课程。
然后试试看找几个kaggle图像处理的project做一下,现在也有很多open packages可以用,比如opencv或者yolo。
发表于 2021-7-2 20:24 | 显示全部楼层
先学图像处理相关理论知识,图书馆应该有数字图像处理这本书,学了理论知识后,自己动手实践,不要直接就调用像OpenCV库函数这样,等到理论差不多了,在学习OpenCV。另外Python只是一种编程语言,一个实现算法的工具,最重要的是还是算法原理,懂了原理,用C,MATLAB,Python哪种需要都能实现
发表于 2021-7-2 20:32 | 显示全部楼层
不清楚您具体做什么,我想这才是最关键的问题
是做传统的图像处理,还是深度学习相关的,考虑到现在的发展还有paper发表的“趋势”,估计还是往深度学习上靠最多,现在貌似没有深度学习,文章都不太容易发,一个很不好的趋势
然后您又打算做什么,是CNN还是GAN,亦或侧重信号处理或者底层数学原理部分
这些都是需要您自己来去实际测试揣摩,看看自己到底要做什么的,所以我感觉首先是要大致找好切入点,不断尝试,多看paper,看看别人怎么做的,看看结果是这么实现的,这些与自己的初衷差别大不大
至于Python简单先了解是怎么用的就好,实际应用起来,不同的框架也都有点不同
原理部分也是如此,你上来就对所有的方法模型非常熟悉是很难的,打住了解即可,上手具体尝试更重要
发表于 2021-7-2 20:40 | 显示全部楼层
图像处理方向对工具、语言、数学和算法要求比较高,如果走开发方向,MATLAB,C/C++,Python,opencv这些要语言和工具需要熟悉和灵活运用。如果走算法和科研方向,MATLAB,线性代数,算法复现要花点功夫。
1.建议你以实际的开源项目进行训练学习。
  开源项目相复现,会从中学到一些别人的想法和思路,在复现的过程中会不断的完善自身的技能,里面会涉及很多工具的使用,但是这些工具的使用作者不会和你说,你需要自己探讨。这样一来你就能够灵活运用工具,难度相对低,不容易劝退。
2.建议你复现算法。
  图像处理方向的算法很多,你可以使用MATLAB工具进行算法的复现,MATLAB复现算法相对于其他的语言相对容易,复现算法可以使你使用别人封装好的函数更加的得心应手,碰到图像处理相关的问题,你会有更快的解决的思路。使用MATLAB复现,不容易被劝退。
3.建议你将C/C++语言的基础打扎实。
  语言是基础,基础不好,会遇到很多说不出的bug。程序员需要更大的耐心和更扎实的基本功,基本功扎实的,在学习图像处理方向会不断的正激励自身,学习是枯燥的,但是枯燥里面发现有趣的东西会使你不断的学习进步。扎实的基本功,不会让困难将你劝退。
4.建议你多点看相关的书籍。
图像处理方向里面冈萨雷斯的数字图像处理书籍,里面有MATLAB程序版,建议两本都要入手,还要买一本opencv,对照着看,看不懂没关系,用的时候有印象回去翻书就行,每次看书,记得将有用的知识点记录下来,不断的进步。
发表于 2021-7-2 20:41 | 显示全部楼层
谢邀.即便是cv领域,也有很多细方向,像目标跟踪,姿态迁移,行人重识别,3d点云,还有现在很火的无人驾驶方向需要用到的图像分割等等
针对处理的图像不一样,又分很多领域,像医学图像的病灶区域检测与预测,真假新闻图文是否一致的检测,还有去年兴起的假脸deepfake检测等等。
入手可以分为这4个点(仅供参考):
1.选定自己的研究方向
2.针对性的去看相关论文.看这些年这块领域的进展
3.有选择性的复现经典论文中的代码.每个方向代码的思路是不一样,没有必要说,你是A方向,去花一两周时间实现B方向的经典代码。
4.神经网络 深度学习的基础知识必须掌握.否则也看不懂论文
附:我承认python是很强大,但不用花时间专门学习,只要有c的基础,那你的代码思想还是在的。哪个函数不会,再去百度,基本能解决。
这是来自一名同是CV坑里的研二狗 的灵魂回答,希望对你有点帮助
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 17:03 , Processed in 0.068143 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表