实习痰涂片项目总结
classification 在上篇博客提到,该任务就是将原始数据的每张图片(256x256)进行grid级别的label预测,思路很简单,就是最后卷出的feature map是4x4的,不要过average global pooling layer,直接拉成1x16的向量过sigmoid激活函数即可(label也要变成16个字符,有点类似OCR)。 dataset 原始数据给的标注是json格式的框标注,但是框不是杆菌的具体位置,而是代表这个grid里面存在杆菌: "frames":{"0_grid.png":[{"x1":162.42542787286064,"y1":25.34963325183374,"x2":170.24938875305622,"y2":34.11246943765281,"width":256,"height":256,"box":{"x1 ...
实习见闻及其他
早有耳闻近年的机器学习和计算机视觉岗位不好找,很多研究生都会借着自己城市和学校的优势,去争取一些公司的实习。我是兜兜转转好几年后才开始正式去学机器学习,也算是半路出家,而且有种49年入国军的赶脚。平日里看着教研室的师兄们即使做着非机器学习算法也在求职的道路上一波三折,心里不免对自己的前途充满着担忧和焦虑。好在导师关系网络庞大,在今年5月丢给了我一个去AI医疗影像公司实习的机会。能够得到锻炼,同时也可以见识见识工业界的研究节奏和方式,这样的运气,我自然不会让其白白溜走。这家公司南京分部的CTO是一位加州海归博士,热爱技术又充满激情,在勉强通过他的面试之后,我得到了三个月的实习机会。 公司的效率和推进速度还是非常快的,刚开始确实不适应,毕竟放羊久了,长时间地坐在电脑前看论文,垒代码,调参数还是有点乏人的。不过我是分配了一个单独的项目,所以三个月来就相当于单干,虽然没有外部的压力,但是没能参与核心项目,与公司大佬们一起讨论,还是心存遗憾(不过自己水平确实不高,也很正常,咱心里还得有点数才行…)。实习的任务主要是对他们提供的痰涂片(sputum smear)数据集进行分类,但是不是一般意义上 ...
往者不谏,来者可追
要想得到某样东西,最可靠的办法先让自己配得上它 前些日子无意间看到了一位A. J. Davison教授的新博士生在知乎上写的一篇回答,他在里面谈到了自己科研之路曲折受挫的经历,尤其是屡屡面对着与自己期望不符合的情况,让我感触很深,想起了自己去年准备国外博士申请失败的那段苦痛记忆。可能对于我来讲,自己对读博的认识和准备都还欠缺得很,既没有拿得出手的本领,技能和honor,也没有对未来研究方向的清楚认识,与另一位机器人大牛YY硕读博的初衷和认知相比,实在是汗颜。 所谓人的成长,其实是“不断发现个人独特的经历原来都只是人类普遍经验的一部分”的过程 — 多丽丝 莱辛 自己步入大学也快接近五年了,在这五年来的科研学习生涯上,没有出现一件让我满意的工作,甚至可以说连接触“像样的工作”的机会都没有。回想本科的生活,似乎陷入了一种想要寻求突破发 ...
FutureMapping by A.J.Davison
About IML的A.J.Davison教授是visual SLAM领域里的奠基人之一,近期抽空看了他在推特上置顶的有关SLAM未来的一些思考的论文: FutureMapping: The Computational Structure of Spatial AI Systems。对于做SLAM的同学,感觉这篇论文还是值得一看的,这里有个博主将该论文翻成了中文。 实际上,通篇读下来我的感受是并没有发现Davison提出了比较吸引人眼球的见解,不过有不少亮点,也让我加深了对SLAM这个东西的理解。虽然他对未来visual SLAM的功能性估计也和综述Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age 里描述得差不多,只不过后者说的比较“大而空”,都是一些常见的想法,什么动态啦,语义融合啦,模仿生物视觉啦,地图表征与更新等等,但是在Davison的这篇论文里,他以一个机器人学者的角度出发,试图从硬件和软件这两个方面去思考,未来的需求 ...
visual SLAM by Gaoxiang(3)
本次课程主要研究李群和李代数(Lie Group, Lie Algebra),主要的目的是为了能够相机得旋转和平移进行微调。因为相机的运动估计可能不准确,而无法对旋转矩阵加上微小量之后依然是旋转矩阵(旋转矩阵无法定义加法,如果用四元数,必须是单位四元数,那么也无法定义加法)。李群李代数与后面的优化,流形都会有很大的联系。 在视觉SLAM中,相机的位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把其构建成一个优化问题,求解最优的 RRR 和 ttt,使得误差最小化。 由于旋转矩阵自身带有约束,即必须正交且行列式为1,因此作为优化变量会引入额外的约束,使得优化变得困难。而通过李群李代数的转换关系,可以顺利求导,把位姿估计变成无约束的优化问题。 群 群(Group)是一种集合加上一种运算的代数结构,满足封闭性,结合律,幺元,逆。其中幺元可以认为是单位元,就是与其他元素作用不改变这个元素,逆是元素和和它的逆进行运算后得到了幺元。 三维旋转矩阵构成了三维正交群(special orthogonal group) SO(3)={R∈R3×3∣RRT=I ...
visual SLAM by Gaoxiang(2)
本次课程主要研究三维空间刚体运动,即visual slam的运动方程中的xkx_{k}xk如何表达。 点与坐标系 在2D情况下,物体可以通过两个坐标和一个旋转角进行表达,即(x,y,θ)(x,y,\theta)(x,y,θ)。 在3D情况下,物体是6自由度的,包括平移和旋转,每个都得用三个变量表达,可以认为3D情况是包含着3个2D的情况,旋转轴不同。 理清坐标系(参考系),点,向量,向量的坐标,运动变换之间的关系。相机会有相机坐标系,机器人会有机体坐标系(通常是运动的),空间会有世界坐标系(通常是固定的),这都是为了研究问题的方便,通过变换进行运动的表述。 熟悉向量的相关运算规则,比如,向量的加减法,向量的内积和外积。以及向量和矩阵的关系。 内积: a⋅b=aTb=∑i=1n=∣a∣∣b∣cos<a,b>\bf{a} \cdot \bf{b} =\bf{a^{T}} \bf{b}=\sum_{i=1}^{n}=|\bf{a}||\bf{b}| \cos \left< \bf{a}, \bf{b}\right> a⋅b=aTb=i=1∑n=∣a∣∣b∣co ...
visual SLAM by Gaoxiang(1)
视觉SLAM概述 simultaneous localization and mapping 仅使用相机进行室内/室外定位(有些情况下GPS会崩,IMU漂移随着时间误差增大) 机器人在未知环境进行导航—建图(sparse/semi-dense/dense) SLAM问题的本质是对运动主体自身和周围环境空间不确定性的估计(spatial uncertainty) 为了解决SLAM问题,我们需要状态估计理论,把定位和建图的不确定性表达出来,然后采用滤波器或非线性优化,估计状态的均值和不确定性(方差) 学术上研究视觉SLAM较多,尤其是monocular,但是应用上少了点,尤其是建图的作用目前很浅,而且很多人大部分现在在用深度学习搞3D重建。目前应用的地方有: 手持设备定位 自动驾驶定位–比GPS的定位信息要丰富,甚至精度更好(可以达到厘米级) AR 增强现实(定位,建图,深度学习结合) 清洁机器人 学习研究步骤 第一部分是学习相关的数学知识,构建数学模型 矩阵 概率论 李群李代数 微分几何 凸优化 … 第二部分是计算机视觉的代码实践 openCV c++ python ...
Beyond Supervised Learning-A Computer Vision Perspective
About 这篇论文(链接)是印度的几位教授写的,以计算机视觉的角度来阐述目前在全监督学习和无监督学习之间的几种训练方式,写得比较简略,但是适合我这种刚入门连名词都不是很清楚的人,可以让我用来梳理整个领域的技术发展脉络和现状。同时该论文也给出了大量的参考文献,也方便进行下一步的研究。实际上,严格地说,这篇文章不能算一篇合格的综述,只能说是那种“扫盲”的阅读材料。 出现上述技术发展的主要原因是数据集比较庞大,但是完全被标注好的数据却很少,而训练好的网络在面对现实多变的复杂场景时依然会出现问题,因此这两者之间出现了合成数据(synthetic data),迁移学习(transfer learning),弱监督学习(weakly supervised learning),少量学习(Few-shot learning/K-shot learning)以及自监督学习(self-supervised learning),边界当然就是无监督学习了(unsupervised learning)。其中需要注意,self-supervised learning和unsupervised learning不 ...
A Brief Review of Object Detection and Semantic Segmentation
About 目标检测(object detection)和语义分割(semantic segmentation)是计算机视觉的两个重要研究内容,在人脸检测,视频监控和自动驾驶中都有很多的应用,它们对于机器理解环境也具有一定的作用。在视觉SLAM上,已经有科研工作者将这些研究成果加入到现有的SLAM系统中,以提高系统的鲁棒性,同时促进语义SLAM的发展。因此,需要对这些工作进行一些调研总结和学习理解。由于对深度学习不了解,还未系统地进行学习,所以写的内容可能幼稚了些,后续会再进行更新。 值得注意的是,目标检测在经典计算机视觉中也已经提出了一些特征描述的方法,在此不涉及,只涉及基于深度学习的目标检测方法,毕竟神经网络在图片特征的学习上比较擅长。 本博客将基于文末给出的参考文献来进行总结和学习,尽力把这些问题和技术梳理清楚,同时加入一些自己的思考和不成熟的想法。 Task Definition image classification–multi level 图像分类,这个任务指的是给出一张图片,要识别出哪张图片属于哪个类别; object detection–what categor ...
Ubuntu16.04下安装NVIDIA最新驱动以及深度学习环境配置
2019.3.8日来更,可以不用看以前下面写的内容了,因为不是很完整。。。 如果按照之前说的通过官网下载的run文件来手动安装驱动,可能出现nvidia-settings打不开的情况,比如我就是输出信息:“ERROR: Unable to load info from any available system”,这样会导致我的电脑识别不了外接显示器。。。 后来在网上看了一些人的回答,大致的原因是官网的run文件在安装时后会默认更改一些系统配置,因此可能会导致一些错误。。 解决办法:通过Ubuntu自动的install功能进行安装 1.先按照这个教程卸载驱动,然后禁用好nouveau; 2.重启后确认nouveau已禁用,关闭图形界面,进入命令行界面; 3.输入下面的命令: sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get updatesudo apt-get install nvidia- #这里选择你要安装的版本,最新的应该也没问题,我就是直接装的410,省得到时候又得重装CUDA和CUDNNreboot ...