首页 AI Studio教育版 帖子详情
飞桨图像分类零基础训练营学习笔记和心得体会
收藏
快速回复
AI Studio教育版 文章课程答疑 677 11
飞桨图像分类零基础训练营学习笔记和心得体会
收藏
快速回复
AI Studio教育版 文章课程答疑 677 11

     进入《飞桨领航团图像分类零基础训练营》前,我是真正意义上的“零基础”,之前的学习和工作都没有和图像处理打过交道,也从来没有意识到计算机世界中的图像和人类大脑中的图像有着如此巨大的区别。从某个角度来讲,这个训练营仿佛是为我这种“小白”量身订做的。实际学习过程是相当艰辛的,经常是一边痛苦一边收获,但很享受这种过程,这种痛并快乐的学习历程。
      印象最深刻的还是“坑姐”的课。开营第一课前,就听Q里的大佬们提起坑姐的传奇经历。正式上课,“坑姐“一开口,我就被“坑姐”的讲解吸引了。大佬上课,气场就是不一样。
  “坑姐”是从最基础的图像处理的概念与基本操作讲起的。我这才意识到原来图片在计算机中是以像素存在的。RGB三原色,三原色混合后,组成像素点的显示颜色。所以计算机本质上看不清图片,计算机只认识代表图片的数字,或者更准确的说法是其内存中的向量分布。图片的格式很多,jpg|png|gif|psd|tiff|bmp这些不同的格式图片,在RGB通道上其像素分布会有所区别。为了更好的处理图片,我们需要调用OpenCV库,这是一个用C|C++写成的图像处理库,但有python API接口,故可用cv2.imread()函数加载图片,用cv2.imshow()显示图片,用cv2.imwrite()保存图片。每个函数都有其各自的参数,调用时记得查文档。注意调用路径中不要有中文,否则很容易加载报错。调用cv2.split,就能把彩色图的BGR三个通道时分开单独访问的,调用cv2.merge可以把单独的三个通道合并成一副图像。常用的颜色空间转换有RGB,BGR或灰度之间的任意转换。颜色转换的本质其实就是做数学运算。我们可以用HSV模型用于颜色识别,转换模式用COLOR_BGR2HSV表示。调用cv2.threshold()实现阈值分割。固定阈值不适用于光线不均匀的图片,可以调用cv2.adaptiveThreshold()用于自适应阈值。调用cv2.resize()函数实现图片缩放,调用cv2.flip()函数实现图片翻转。而图像平移是用仿射变换函数cv2.warpAffine()实现的。OpenCV还有cv2.line()用于画直线,cv2.rectangle()用于绘制矩形,cv2.putText()用于添加文字等。OpenCV可用cv2.add()叠加两幅图片,cv2.addWeighted()也是叠加两幅图片,但两幅图片的权重不一样。OpenCV用cv2.blur()实现均值滤波,cv2.boxFilter()函数实现方框滤波,cv2.GaussianBlur()实现高斯滤波,cv2.bilateralFilter()函数实现双边滤波。OpenCV用cv2.Canny()进行边缘检测。最后坑姐提了一下如何用OpenCV进行摄像头捕获照片、播放本地视频与录制视频。同时为后续的图像分类任务做了预告。整整两个小时的课程,坑姐讲的全是干货,对于我这个纯小白而言,我的脑子里塞满了OpenCV,甚至晚上睡觉做梦都是OpenCV ...
    “坑姐”第二次出现在训练营中,课堂主题是飞桨图像分类套件PaddleClas竞赛实战。坑姐先解释了第一次上课布置的作业,并说明从零开始搭神经网络难度比较高,所以坑姐推荐了PaddleClas. PaddleClas作为飞桨的图像分类套件,可以减少代码开发,只需选择模型并添加数据集,配置即可。选择模型时综合考虑性能和时间花费。由于比赛是要求部署到类似树莓派等小型移动端实施的,所以选择模型时应考虑移动端系列。坑姐展示了其手头上的树莓派,说明了树莓派的硬件设置及计算性能有限.并指出在gitee上查找PaddleClas文档,以及如何使用PaddleClas进行柠檬分类实战。提了很多比赛建议,例如一般要对数据调整,可选择自己调整等;或者打乱排序,再切分数据集等;坑姐也介绍了PaddleX,指出完成工作的同时如何减少代码的编写。坑姐补充了迁移学习的知识点,迁移学习就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。对于柠檬分类竞赛而言,迁移学习是把利器。预训练好的模型,其特征提取很强,在此基础上,再加上最终柠檬的分类,是站在巨人肩膀上的做法,会非常块的适应新任务。文档很重要,特别是要对应相应的配置。模型微调时要调整相应的配置文件,先修改自己能看懂的配置信息,不会改的暂且放着。配置美观可设置相对路径。提醒我们在AISTUDIO 上必须用%cd 魔法命令修改路径目录的变化,单卡和多卡的学习率也是不一样的。训练可视化过程可使用VisualDL,文档上有示例。可参照文档,修改源码。跑出来的模型要微调结构,用于打比赛。模型出来后要在验证集上评估,依照文档来即可。坑姐又重点解释了图像增广,比如图像变换、裁剪类、混叠。对于柠檬分类比赛,坑姐建议重点考虑图像混叠,不推荐随机擦除。 PaddleClas内置的数据增强和离线数据增强是不一样的。后者会直接扩展训练集大小。如何做数据增强,不是无脑开脚本,例如柠檬的颜色变化就不合适。坑姐也给出了深度学习数据增强的库的参考资料。处理特定任务时可修改PaddleClas源码。batsize的设置更多和时间相关,与显存设置有关。坑姐总结和回顾课堂后,最后分享了番外篇PaddleX,全流程开发工具。又是整整两小时的课程,全是干货。我再次对坑姐佩服得五体投地。

    最后,感谢坑姐,感谢飞桨,我为坑姐和飞桨打call~

    

 

0
收藏
回复
全部评论(11)
时间顺序
AIStudio810261
#2 回复于2021-03

坑姐是谁???

0
回复
七年期限
#3 回复于2021-03

深渊上的坑

0
回复
AIStudio810259
#4 回复于2021-03

坑姐厉害吧

0
回复
AIStudio810259
#5 回复于2021-03
坑姐是谁???

顾总

0
回复
三岁
#6 回复于2021-03
坑姐是谁???

AIstudio万能不变的榜一

0
回复
七年期限
#7 回复于2021-03

一说都知道了 哈哈

0
回复
AIStudio810259
#8 回复于2021-03

恭喜收获小迷弟一枚

0
回复
AIStudio810259
#9 回复于2021-03

0
回复
AIStudio810259
#10 回复于2021-03

第一坑咋还不来逛社区呢

0
回复
七年期限
#11 回复于2021-03
第一坑咋还不来逛社区呢

我去找他

0
回复
流年似锦人间户
#12 回复于2021-03

感觉好用心呀

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户