2015年休斯顿大学实习周记(十一)

作者:编辑:刘艳红发布:2015-11-20点击量:

程天舒

科研进展

上周实现texture channel后本周要完成生成tPb纹理轮廓概率图的最后两步:kmeans分类和chi-distance滤波。

在现有的CImg库中并没有Kmeans函数,所以为了调用这个函数需要使用另外一个库——openCV。于是学习新的openCV函数又是一番疯狂的google帖子,看教程,看stackoverflow里大神们对各种bug的解答。经历过一次次失望的全黑结果后终于好不容易得到了预期的kmeans分类结果,但是当把特征数从1增大到17时,分类结果又变得非常奇怪:至在图片上边缘处有一带彩色杂点。经过实验发现,当特征数从1变到2时,分类结果在图像一半的区域内重复了两次,增大到3时,在图像1/3的区域内重复了3次。可见一定是在执行分类算法之前出了问题。经反复测试终于发现问题出在坐标上,当opencv的mat函数把一维数组转换成二维mat文件时是按照水平方向而非我以为的垂直方向一行一行扫描,所以需要根据新的规则排列图像像素。另外,导师建议我将二维指针数组指向的二维数组改成仅有首项指针的一位数组以便数据区域是连续的。终于kmeans函数调试完成,结果如下。

101087.bmptexture_0925.bmp

Kmeans分类结果

接下来就是编写chi-distance函数,考虑到该函数是对每个像素进行类似的操作(具体算法在之前的周记中介绍过),所以毋庸置疑这又是CUDA可以大施拳脚的地方了。由于这次的函数比高斯一阶导卷积更为复杂,所以并不像高斯函数那样几乎没怎么调试就一步到位了,CUDA的调试把我困了整整三天。CUDA的kernel函数不能被CPU识别大大增加调试难度,在这次调试中我也总结了一些经验:1.用最简单、典型、尺寸不大(运行时间少)的图做实验,比如为了测试不同角度的chi-distance效果我选择了一个黑底白圈作为实验对象,如下图所示,

4.jpg

实验原图与0,22.5,45,67.5,90度偏角滤波器的处理结果

这样一来任何一个角度都会产生特征明显的结果,不像之前试过的正方形,30度和50度的效果很难区分。2.就像任何实验一样:单一变量原则。虽然不能设置断点来定位bug的位置,但是可以从函数最简单的功能开始对函数各项功能进行逐一检查,比如最开始kernel中只有一个复制图像的语句,如果成功说明texture2D函数使起作用的,然后再让每个像素显示自己在GPU中的横坐标,如果成功返回梯度变化的图像再进行下一步。

当程序调通后还剩下传递参数的问题,我希望把分类数K传递到kernel中然后创建一个大小为K个元素的数组,但是CUDA不允许在device function中进行动态内存分配,所以不能像在C中那样建一个指针再new一片区域。为了解决这个问题导师说可以用shared memory,shared memory是GPU中的一中存储空间,每个Block中都有一块约4KB大小的shared memory,一个Block中的所有thread都可以告诉访问本Block中的shared memory,故对于卷积这种需要重复多次访问thread的运算,shared memory的使用可以大大提高效率。

周五解决完最后一个bug轮廓提取的C++版本正式完成,结果如下。

1.jpg

神经截面显微图像轮廓提取结果(左至右:原图,cPb,tPb,mPb)

下周导师要去罗德岛开学术会议,我表示能不能学习一下科研论文的写作,虽然三个月来大部分时间花在了学习和熟悉编程语言没有什么重大科研成果但是还是希望能把三个月的工作凝结成一个书面成果,导师说我可以写一个类似技术说明的东西,因为我现在有一个完整的轮廓提取算法,可以写个报告告诉别人这个算法怎么用,这样一来后人可以以这份技术报告为起点进行后续研究和应用。未来一周我就要学用LaTeX写出Abstract,另外我搜了几篇3D轮廓提取的文章希望能寻找一些思路。

Galveston一游

本周末终于得到一个出行的机会,跟着王泽实验室的师兄师姐开车来到位于墨西哥湾的小镇Galveston吹海风、钓螃蟹。珍惜剩下两周的一分一秒。

IMG_2153.JPGIMG_2157.JPGIMG_2203.JPG

轮渡 海景 钓螃蟹

黄煜

这算是倒数第二次周记了,我们第一批来的马上就要回国了。

这周算是解决了最后一个群体控制系统明显的技术难题。之前的控制算法都是假设球可以绕着世界坐标系的Z轴旋转,然而事实上在CNC平台上实现不了。但是写论文和最后的硬件实现必须使用实际过程中可以实现的运动,所以无论如何最后必须想出一种办法来替代这种围绕Z轴的旋转,考虑到CNC平台还能做圆弧插补,所以我们可以让球滚过一个圆弧来近似替代。确定这个运动需要3个参数:圆弧轨迹半径rc、一个角度alpha(这个和rc一起可以确定圆弧的圆心)、圆弧对的圆心角theta。

我上周的问题是没想出一个办法来确定这些值,使得这样运动之后总误差不上升并且xy方向的移动可以继续下去。我试过把这个问题变成三个变量的优化问题,但是这个系统的优化目标函数很复杂,梯度下降法的后果就是不能像之前一元问题一样做大量试算,举例说,之前我每步可以让电脑做100次试算然后找到最好的值开始迭代,这样总能保证找到全局最优解,如果现在用这种方式,试算次数要到1003,迭代次数n3,后果就是实际过程中数控平台的机械动作要比计算机算出每步策略最优快很多,实际中不允许这样。

我这周做了大量仿真,最后发现滚动的情形如果像下图一样可以保证误差最后收敛,并且前100步收敛比较快:

当然实际中球是不一样的半径,所有我后来想出了平均半径和近似旋转轴。多次仿真结果就是,只要rc和alpha像图中这样确定,无论theta是多少,误差总是会收敛,只是不能保证圆弧转动完之后误差是下降的,但是由此产生的误差在系统允许范围内。Theta仅仅决定了误差收敛快慢,所以想出一个确定theta的方法是优化这个算法的方向。误差可以达到我要求的0.5度以内,只是需要迭代步数特别多,要算7万多秒。

我现在在想如何优化它,让它收敛更快。今天下午写了一个仿真,现在实验室的电脑还在运行,不知道结果怎么样。

然后我可以继续写IEEE论文剩下的部分了。

王泽

实习已经接近尾声,这周最重要的事情就是做了一个Group meeting.把我实习期间的做的事情都总结了一下,show出来了。也是我上个星期的周记的PPT的基础上改动了一些东西。这次组会应该是我第一次做全英文的学术汇报,所以还是比较紧张的,也在PPT的内容上修改了很多,最后的做出来的结果应该还是可以的,同时得到了组里面的同学的一些很好的建议,感觉还是很不错的。

下面说一下在这个组会中收获的东西。

比如这个拟合的部分,本来以为我做的已经够了,但是组里面的一个女博士静婷就提到,我这个用多项式的拟合的方法做的有问题。我当时心想,多项式拟合能有什么问题呢,以前都是多项式拟合求系数啊。后来静婷跟我说应该试一下指数拟合,这个曲线的形状比较像指数。应该多用指数拟合一下,指数比多项式的R系数会更高一些,特别是对于数据计较离散的情况下,更应该考虑到这个问题。这个问题就十分专业了,特别感谢静婷提出的问题,这个虽然是个小点,但是很重要的一点。

第二个就是做了气体中dealloyed的实验,感觉还是不错的。补充一下这个实验的结果分析。

可以特别明显地看到out-of-plane peak的红移,同时比较不同的是in-plane peak并没有动。这个现象的原因,shih老师问了我,我还得具体去想一下,虽然可以用,但是还没有完全解释。

还有就是这次收获比较多的数据处理部分,主要使用matlab读取spe文件,加上把五幅图合并起来,平滑处理,再画出来。这样比较有意思。下面是我编的代码。

这是部分的程序的截图,具体的实际经过很多次调试之后,才会有比较好的状态的,所以写程序还是一件比较费心的事情。实际需要不停地去调试才可以做出来。

这周有压力的组会做完了之后,感觉终于好了一些,下周主要的内容就是写好实习报告。

李慧晗

这周还是在做Teensy控制的LED灯。之前的灯一半在左半边正负极,一半在右半边正负极,接电源之后发现灯的颜色不按程序来,也总是闪,一直都没找到原因。实验室一个博士跟我们说,可能是因为左右两边的负极没有连接在一起,导致两边接地电压不同。我们按他说的来试了,顺利地解决了这个问题。我和David又焊好了另一块新的Teensy,用两个电源分别给Teensy和LED灯供电。但是插上电之后,Teensy又马上变烫烧坏了,这是我们烧坏的第二块Teensy了。我们感觉无比沮丧,感觉一下午的功夫全都白费了。猜想是不是短路或者别的原因,后来测电压转换器调节在4.5V档时的转换后电压竟然高达7V,而Teensy的工作电压只允许在3.3V-5.5V,这个应该就是导致烧坏的原因。虽然亮LED灯看上去挺简单的,但是实际上要把它做出来实在是不容易,一直要解决各种奇奇怪怪的问题。

在周五和Jeff以及Prasad讨论了下一步做什么。要用一块Teensy控制Actuator,并且接收从Actuator上的传感器接收到的数据。Teensy对Actuator的控制主要有Enable/Disable,Brake,Direction,Current Limit,PWM;从Actuator传到Teensy的信息有Hall,Simulated Temperature,以及Potentimeter,IMU,Temperature,Voltage and Current等。每个Actuator由一个Teensy板控制,所有的Teensy板通过I2C由Teensy Master控制,Teensy Master和电脑之间进行双方通信。

下周主要就对传感器数据采集进行设置了,希望一切顺利。

图1任务讨论和分配

周五晚上听说港囧在北美上映,于是就坐公交去AMC Studio去看了,挺好看的一步片子,看到最后都有点想家了。周日去了实验室师兄推荐的日式海鲜自助Tokyo One,店面没有想象的大,但是菜色还是很丰富的,有寿司,螃蟹,蛤蜊等等,口味很好!晚上还看了一场舞台剧,Peter Pan,音效和灯光不错,但是就是感觉舞台剧的对白腔调还是听不太懂,情节也只能够了解个大概。

图2 Tokyo One菜色

图3舞台剧Peter Pan

叶庆莹

这一周Ogmen出差,所以实验室相当于放了小假,师兄们都基本上没来实验室,我也乐得清闲了一周。这周做的最多的就是去体育馆锻炼了,每天下午4点半出发,到6点结束雷打不动,感觉非常充实。这个时段人不是很多,馆内的设施也很齐全,一般会选择先跑步半小时,再做深蹲和仰卧起坐,最后练一些手臂和腰部的器械。休大的meal plan是自助式,所以每回我都能吃特别多,导致体重的大增,因此健身是非常有必要的。这里的运动氛围特别好,帅哥美女也多,很多看上去瘦瘦弱弱的女生卧推甚至比男生还厉害,让人佩服。把运动当作习惯,这是健康的生活方式。

上周末我们还去了位于downtown的水族馆,长这么大还是第一次来,身边都是爸爸妈妈陪着家里的小朋友来玩。项目有很多,最久的就是各种海底生物的参观了。各类鱼、蛇、青蛙、珊瑚等等,让人眼花缭乱。除此之外我们还去摸了一种表面光滑的、外形像扇叶的大鱼,触感有点像泥鳅,刚开始的时候特别怕,而且没掌握到技巧,总是把鱼吓跑或者下手没轻重,后来学着只用两个指头去抚摸,感觉还是非常棒。这一次我们也看到了鲨鱼,但是比想象中要小,可能是品种不太一样。

这周托福的成绩也出来了,只能说还要再接再厉,争取拿到满意的成绩。

图1体育馆门口的 图2水族馆门口

图3鲨鱼

储晓青

本周主要进行活性碳对活性碳的对称超级电容器的电容性质的三电极测试。周一用文献介绍的方法按照超级电容器用活性碳:乙炔黑:PTFE=8:1:1的质量比混合均匀,用铁丝网作为集流体,在真空烘箱中干燥12个小时后取出制成一平方厘米左右的电极片。然后再烧杯中进行三电极测试,电解液用硫酸锂和氢氧化钾,首先测了EIS估算该测试体系的内阻,但是测出来的内阻值比常规的超级电容器阻值高出很多,所以接下来还要改进实验方案,找出问题所在,找到正确的测量超级电容器电容性能的方法。

戴政泓

来美国两个月了,周中基本上就是实验室,gym,寝室三点一线,发现自己渐渐爱上了这种生活,体重也减了不少,生活方式,饮食结构也都健康了不少。这周重复了几次硫化钼二维材料生长试验,依旧没有进展。管子内部不知道为什么沉积了一层黑色的物质,但初步判断是升华后的氧化钼,于是周六的时候,我们用acetone和IPA的混合溶剂对管子进行了清洗,并在1100度annealing。期待下周能出现转折吧!

另外,这周包老师又给我了一个新任务,用solar panels DIY出一个小型电源用来电解水,看来电工实习那会的经验也能有用武之地了。周六的时候,听说港囧在休斯顿上映了,便搭乘公交来到了AMC studio,特别棒的电影,也不枉此行了。周日去了一家日本海鲜自助tokyo one,螃蟹,虾,扇贝,挺不错的。晚上看了peter pan舞台剧,气氛很好,很多家长都带着孩子过来,很温馨。

韩聪

在实验室工作快两个月了,虽然一直有小进步,但是距离目标还有一定的距离。因为变量的增多,最后模型的建立的难度也更大,不像第一个月那样只通过Plate的长,宽,高就可以确定精确度很好的模型。

所以这周我做了些整理工作,把仿真出来的两百多组数据归类写成矩阵形式,方便以后matlab调用和计算。

这周比较特别的是,会经历中国的传统大节中秋节,据说今年的月亮还特别大。所以周末的时候我特地在实验室待到夜晚,在回宿舍的路上看到很大的月亮,心里非常的开心。也许是美国这面空气好吧,夜空格外的晴朗。路上还跟家人和朋友通了电话,虽然相隔半球,但是还是有过节的气氛,遗憾的是没有吃月饼。

周末到实验室,看到郑博士也在,中国郑博士带我去中国城吃饭,期间我向这位清华的大牛了解了很多与专业相关的形式,变化,以及一些规划。总之受益很多,让我也更清晰的认识以学术为目标和以工作为目标的差别,对我以后选择有很大帮助。

熊诚

第九周了,这一周主要是做Cu-Pb化学沉积的实验,这个实验来自于老板的一篇论文Electrochemical Defect-Mediated Thin Film Growth,这篇论文主要研究了一种新的沉积方法,而我要做的就是找到一个沉积信号,然后分析这个信号。

在这个实验之前要准备很多东西,所以这一周主要是在准备东西,包括所需溶液,还有Au(111)的annealing等。

在准备的过程中也学到了很多东西,但是还是有很多的不足,所以抽空去上了老板的课,虽然有些东西理解起来还是很吃力,但是对这篇论文的理论还是有了很大的补充。

在实验之余,还是在努力的学英语,虽然有点累,但是还是很充实的。希望能够在下一周找到peak,学到更多关于电化学沉积的知识。

Copyright © 华中科技大学启明学院 版权所有