mxnet里im2rec的坑

用了一下mxnet,感觉速度上确实比Tensorflow快不少。之前试过部署到Moible端[LINK],也挺方便的。 mxnet训练的时候可以通过ImageDataIter从预处理过的rec文件里读图。rec基本上就是一个打包了label和image的大文件。用rec文件配合DataIter做训练,GPU利用率很高。 遇到两个问题,废了些时间。 1.用im2rec.py生成rec的时候,输入文件格式是,图片序号+Label+图片路径。之间必须用\t分隔,不然会有奇怪的报错。 2.im2rec.py生成图片的时候是用OpenCV读的图,然后从BGR转RGB。图读出来是HxWxC,需要转成CxHxW。不然结果自然会差很多。

Crazyflie 2.0 + Camera

最近给Crazyflie加上了Camera,挺有趣的。 之前在网上看过不少帖子讨论各种解决方案,但是始终没有发现一个简单易行的方法。 最后发现是上面这种带无线传输的一体式的摄像头最方便,重量也小,Crazyflie带着飞无压力。 Crazyflie 2.0 + Flow Deck + Camera! 从VCOM的引脚直接给摄像头供电可以利用Crazyflie本身的开关来控制Camera的开和关。摄像头除了供电以外和Crazyflie是独立的。 接下来的问题就是怎么样在另一台机器上得到Crazyflie传回的图像。因为是摄像头输出的其实是模拟信号,所以需要一个模转数的模块。这部分在很早之前做 智能轮椅 (^_^) 的时候就发现很麻烦。通常是去找一个叫Easycap的小东西,但似乎因为仿制Easycap或者是Ez-Cap的厂家太多了,所以很难找到一个真的可以兼容信号和系统的Easycap。而且Easycap只是一个模转数的模块,在此之前还需要一个多频道的无线接收器。因为这个无线接收器通常需要12V的电源,所以整套接收图像的设备非常“笨重”,而且还不一定好用… 不过所幸最近发现了一个从USB供电的一体的无线接收模转数的模块,非常棒。随便用一个带摄像头的drone试了一下: 可以直接用OpenCV读到图像!可以做CV乐!

Crazyflie 2.0 + Flow Deck

Crazyflie是一个小型四旋翼无人机平台。开源并且文档丰富,很适合做相关的研究。最新的型号是Crazyflie 2.0。 整体很小,自然续航时间和载重也有限。具体参数可以参见官网。 很多做机器人控制的实验室在用这个平台,于是很容易看到有意思的Demo。比如这个Swarm 还有这个奇怪的控制盒子: 这些精准的控制大多依赖于准确并且贵并且贵的Motion Capture系统。Crazyflie本身Sensor有限,在没有外部反馈的情况下是很难控制的。 不像是大疆那些消费级的无人机,很容易就可以飞的挺好。如果用官方的手机App来飞,想做到悬停就要稳定的给它适合的Thrust,基本上很难。 所以,当官方出了这个Flow Deck的时候,立马买了。据说一发布就卖断货了,除了说明产量小以外,也说明刚需旺盛。 Flow Deck可以为Crazyflie提供简单的位置信息,让它可以在没有外部Motion Capture系统的情况下稳定的悬停。 很明显的可以看见板子上有一个向下的摄像头。Flow也就是指Optical Flow。 这就是小飞机和Flow Deck: 可以用原装的卡电池的架子透出板子的部分,把Flow Deck固定在小飞机下面。仔细看板子上有一个小箭头表明正确的安装方向。 然后需要做的是升级小飞机的固件。 这个demo.py可以让crazyflie悬停在0.4米高的位置半分钟 import logging import time import cflib.crtp from cflib.crazyflie.syncCrazyflie import SyncCrazyflie URI = ‘radio://0/80/250k’ # Only output errors from the logging framework logging.basicConfig(level=logging.ERROR) if __name__ == ‘__main__’: # Initialize the low-level drivers (don’t list the […]

送几本书

第一次来美国的时候带过来了几本书,都是当年本科在读的时候奉为经典的大部头。这些年,搬家毕业带来带去,敝帚自珍,却也没有真的好好读过。 如果你在湾区,请联系我,找个方法我把书给你。 Code Complete: 豆瓣介绍 算法导论: 豆瓣介绍 深入理解计算机系统: 豆瓣介绍 深入理解LINUX内核(第三版): 豆瓣介绍 UNIX编程艺术: 豆瓣介绍

Jonas过后

来美国第四个年头了。新泽西这个地方每年都有不小的雪。看雪的心情也从刚来时的兴奋变成了爱恨交织。一片白茫茫是不错的景致,但是想到白茫茫一片之下还有自己的车心情也就复杂起来了。 本来以为今年是一个暖冬。本该是雪花纷飞的圣诞节前后可以穿着单衣出门。所以当知道气象台预报有暴风雪要来的时候,我一开始是怀疑的。天气预报总是这样的小题大作。第一年来的时候,学校常常因为预报有飓风而停课。可是飓风常常失约,又或是还未到地方地就失去了活力。 只有Sandy那次,是准的。那时候住在学校附近。天气已经转凉,整整一周的停热水停电停暖气还真是难捱。所幸的是因为离学校不远。那时候每天早早的起床去实验室,再晚晚的回去。中午学校食堂还有免费的救济餐。 按照惯例,这次的暴风雪也有名字,叫Jonas。似乎是拉丁文,不知道有什么含义。如果不是如预报所说的猛烈,恐怕也没有记住的必要了。 气象台也算是是幸运的,这次他们又说对了。 周六早上起来,外边就一片白茫茫了。门口积的雪已经影响到开门了。 New photo by Haoxiang Li / Google Photos New photo by Haoxiang Li / Google Photos 从家里往窗外望去,窗前小树上堆起的雪已经很高了。 New photo by Haoxiang Li / Google Photos 可是雪还在一直下。这时我才感觉到天气预报这回又立功了。 果然,一夜之后,前门彻底打不开了。 New photo by Haoxiang Li / Google Photos 不得已,还得出门铲雪挖车。只好绕道从后门出去。计划要从后面挖出一条小道回到前门,以解前门之围。 后院的情况也不太乐观,之前院子里还有房东家小朋友的玩具小车和一些杂物。看起来它们要重见天日还需要耐心等待了。 New photo by Haoxiang Li / Google Photos 大多数地方的雪都没过膝盖了。吭哧吭哧地劳作了一段时间,总算是从后院挪动到了停车道上。这才看见了车被埋成了什么样。 New photo by […]

iOS上mxnet的一个演示App

mxnet是最近火的不行的一个深度学习的框架,支持好多好多语言,有好多好多大牛在写。 之前也有想过把同样很牛很牛的caffe跑到iOS上看看速度怎么样,但是caffe有一大堆文件,感觉做起来很麻烦。 最近看到mxnet居然有一个单文件的版本! 就做了一个简单的图像识别的演示App。跑在6上速度还可以,大概4秒一张图。 代码在这里: WhatsThis-iOS on Github