python在生活中有哪些用处
在知乎上看到一个问题:“可以用 Python 做哪些神奇好玩的事情?”。被赞同最多的一个回答提到了一个叫做Kurt Grandis的程序员在线学习,他用Python做了一套自动防御水枪系统抵御他家后院时常出现的松鼠。在PyCon 2012会上,他分享了这个神奇的系统 — Militarizing your backyard with Python。
整个系统的技术难度倒不是非常高,用了几样比较成熟的技术:OpenCV、Blob Detection、SVM、Arduino。
抛开中间具体的技术细节,大概的流程差不多就是:
1把摄像头拍下来的画面用OpenCV处理。OpenCV是一个计算机视觉库,其中有个做Blob Detection的库cVBlobsLib,用它来从图像中分析出前景物体,也就是有可能会是松鼠的区域。
2用SVM判断这些可疑数据到底是不是松鼠。关于SVM,你可以把它理解为一个分类器,你先用一堆正向和反向的数据去训练这个分类器,技能培训训练得差不多了,就可以用它来对一个新数据进行判别,属于哪一类。
3发现松鼠之后,就要发动攻击。这位仁兄用了一把水枪,加上Arduino来完成了这项艰巨的任务。Arduino是一个开源的软硬件平台,它可以通过传感器感知环境,也可以通过灯光、马达等装置来产生反馈。你可以通过它来使你的代码真正“动”起来。
听说实现后的效果还不错,只是水枪的威力不够大,储水量也不够多。他还打算继续改进。
SlideShare上有他在PyCon的PPT,但可能这网站连不上(你们懂的),我上传一份在了论坛上。
另外说一句,他这个套系统用到的方法和我当年毕业论文非常相似,不过我不是打松鼠,而是做了一套用真人动作玩格斗游戏的系统。后来我也因此去到某知名游戏公司参与了当时还在内测阶段的kinect上游戏的开发视频教程。
文章来源于Crossin,由课课家平台整理,转载请注明。