IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 行人检测小结 -> 正文阅读

[人工智能]行人检测小结

本人是计算机视觉小白,本科阶段跟着导师学习了一些计算机视觉相关的知识,前前后后断断续续的学习了将近一年,最大的收获就是培养了自己在计算机视觉方面的兴趣,我觉得这是一项很有意义的工作,将来也很有兴趣在这个专业领域进行更广更深的探索。但是由于考研临近,被迫暂时放下了手中没有读完的论文和没有跑完的实验,此篇文章是对自己所做工作的一个阶段性总结,以及在学习的过程中自己的思考,也是自己与计算机视觉的一个短暂的分手,但是,后会有期。

大二下学期一个偶然的机会,开始接触计算机视觉相关的知识,记得导师给我的第一篇文章是Facebook AI的一篇关于目标检测的文章——《End-to-End Object Detection with Transformers.这是一篇模型跨界应用的文章,文中提出了将自然语言处理中的Transformers模型应用于目标检测方向,Transformers模型包括编码和解码两个阶段,其中用到了注意力模型,也就是attention机制。当时自己查阅了很多资料,由于论文比较新,所以能查到的资料微乎其微,包括各类博客以及b站上稀少的讲解视频,自己一直处于似懂非懂的状态。于是打算将论文在服务器上复现出来,打算将论文跑通之后,自己一行一行的去单步调试(后来发现这一方法是不可行的),可是由于自己实验室CUDA版本与论文中所要求的版本不匹配,导致无法复现,与导师进行交流之后,决定放弃这篇文章。

万事开头难,自己在这篇没能复现出来的文章上花费了大量的时间,但是最终也没能达到自己想要的结果。但是总归是有收获的,包括对attention机制的学习,了解了BatchNormatiom、归一化、各类激活函数等相关的知识。也避免了自己以后踩坑:对于一个初学者来说,首先要找一篇带code的能复现的论文,之后再进行深究,才能结合代码理解,如果论文没能公开code,只了解其基本的思想就可以了,没公开大概率是因为作者的相关工作也正在开展,甚至还存在问题。

时间已经来到了大三,导师给了我其他的大概三四篇顶会文章,我认真的研究了其中一篇带code的文章,并对论文进行了复现,同时认真分析了其他几篇论文的思想,最后得到了一个简单的idea,将其中的两篇论文提出的方法进行融合,以其中一篇论文作为baseline,将另一篇论文提出的的方法加进去,做实验研究模型的性能是否有提升。其中带code的论文是来自ICCV的DCN(在这里简写,DCN提出了可偏移卷积和可偏移池化),采用了来自ECCV的CBAM中的通道注意力和空间注意力(通道注意力的作用是使模型更加关注于多个feature map中的某个fetuare,空间注意力的作用是使模型更加关注于某个feature map中的具体的某个部分)。

明确了自己所要做的工作,就一头扎进了代码里,但是发现并不容易,遇到了好多的bug,尤其是检测方向的代码比较多,另外我所复现的论文是MXnet框架,并不是被广泛使用的Pytorch和Tensorflow,这给我所要做的工作带来了更大的困难。困难很多,只能一点一点的去做,一行代码一行代码的去啃。当时首先对论文的demo进行了单步调试,大概明白了整个论文代码各个部分所起的作用,其间白嫖了百度AL学院(好像是)的一个大佬的课程,课程对MXnet进行了比较全面的介绍,同时在Github上找到了CBAM的Mxnet版本,结合自己的论文,对代码进行了相应的更改。

值得一提的是,由于行人检测方向有很多公开的数据集,比如Caltech、cityperson、Kitti等,另外参考了另一篇关于数据集的论文《Pedestrian Detection: The Elephant In The Room》,文中提到将多个数据集进行混合之后训练,得到的模型的鲁棒性会更强。于是我尝试将不同的数据集,进行不同比例的混合,最后得出将voc与caltech数据集进行一定比例的混合得到的模型性能最佳。同时,我将训练好的模型在caltech测试集上(set06-set10)进行了评估,对模型的结果进行可视化。

搞定了数据集之后,之后就是加注意力了。但是由于并不知道我所应用的注意力方法究竟会在模型的哪一个阶段起作用,于是我进行了大量的尝试,大量的实验。首先考虑的就是在DCN的后面加上CBAM(通道注意力和空间注意力),但是效果并不好,模型的性能非但没能提升,反而是降低了。后来根据导师的建议,尝试了不同的方法:在分类的前面加上通道注意力、在回归的前面加上空间注意力、在分类的前面加上CBAM(通道+空间注意力)等等,同时进行了一系列的消融实验,那段时间每天打开电脑的第一件事就是看自己的模型训练的怎么样了,性能有没有提升,总是有种莫名的兴奋和干劲。经过在caltech数据集上进行评估之后,对比以前的论文最初版本的baseline,终于有了一些提升,但是很可惜,提升并不是很明显。

痛定思痛,我又回过头来重新去理解DCN和CBAM两篇论文,CBAM中提到通道注意力放在空间注意力之前模型的想过效果会更好(文中做了相应的消融实验),而DCN和空间注意力的功能类似,都是关注具体的某个feature map的具体的某个部分。那么,我为什么不能在DCN的前面加上通道注意力呢?于是我尝试了这一方法,并且模型的性能有了较高的提升,出乎我的意料的是,在caltech的遮挡子集上也有了一定的提升,后查阅相关论文发现,已经有人利用通道注意力去尝试解决遮挡问题了,这算是我的一点意外收获。最后我将在dcn的前面加上通道注意力与在分类的前面加上通道注意力和在回归的前面加上空间注意力相结合,以为模型会得到最好的性能,但是模型的性能却下降了。两种方法独立使用性能都有了提升,为什么混在一起使用性能却下降了呢?分析原因可能是由于两种方法混合使用造成了语义的混乱。

本以为能产出点什么了,但是所做的工作只能算是一个小小的创新点(甚至说都是被别人用烂了的东西),要想写论文还需要加上其他的创新点,单单是这一创新点还不够,于是导师给了我几篇人体部位检测和解析的相关论文,之后在与我讨论,但是由于自己考研复习的进度比较慢,与导师谈过之后,故事到这就戛然而止了。

如果我能继续读研深造的话,研究生阶段还会继续这个方向的学习。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:24:00  更:2021-08-17 15:25:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/16 4:15:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码