0%

最近在进行机器人抓取的实验和研究,其中用到了很多与图像处理相关的算法,比如相机内参标定、机器人手眼标定和点云配准等。虽然这些算法在OpenCV、PCL和ROS框架都已经有很方便的实现,而且这些函数的稳健型都很高,但是我还是有把这些操作封装成库的想法,原因有几个:

  1. 这些算法的计算都需要提供不少的输入,而在应用中每次调用都要先写上一大段准备输入的代码,因此打算使用Wrapper把算法和输入封装成直接调用的函数;

  2. 以前没有写过运行库,借此机会学习一下;

  3. 把常用代码封装成库后在现有的几个项目调用都很方便,并且这些项目有的用C++有的用python,不用分别为实现相同功能写多份代码。

因此,我打算把现在常用的几个标定和配准的算法封装成库,并且提供C++和python的接口,使得调用更加方便。在这个系列中会把大部分计划和操作都记录下来,一方面为了备忘和整理思路,另一方面也把学习的经验和走过的弯路记录下来。

阅读全文 »

ZeroRPC是基于ZeroMQ的远程调用框架,它提供了方便的方式实现第三方调用本地服务的功能。在Baxter的视觉识别任务中,将训练完成的Mask RCNN模型在服务器中运行,连接机器人和ROS的客户端通过ZeroRPC调用服务器的识别服务,有效利用服务器的计算资源。由于在内网环境中,tcp连接和传输的时间可以满足摄像头捕捉的视频流的识别需求。

阅读全文 »

本文以MobileNet为例,学习利用循环搭建大规模、重复程度大的深度网络结构的方法,像ResNet、Inception等大规模网络也可以利用本方法很方便构建一个很深的网络,值得学习。

阅读全文 »

突然发现,这个博客已经好久好久好久没有更新了。中途发生了很多事情,我在原来的实习公司当了三个月前端开发,离职后去考了个(随便挂了个职位,没有工作和工资的)在职研究生,准备再过三年的苦逼穷学生生活。

由于要做的工作和等待学习的知识都发生了很多变化,同时自己也觉得,还是将学到的东西做点笔记比较好,因此又重新打开了这个博客,打算再继续更新下去。

未来的三年研究生活中,我打算做点深度学习和机器视觉相关的研究,最近在恶补很多机器学习和深度学习相关的入门知识,所以会更新点相关的学习笔记。

希望自己能持之以恒,不要半途而废。

Underscore.js作为一个广受欢迎的JavaScript工具库,其内置了一整套函数式编程的使用功能。其中map()函数可以遍历指定的集合,对集合内每个元素执行指定的变换函数。官方文档对map()的介绍如下:

map _.map(list, iteratee, [context])

通过变换函数(iteratee迭代器)把list中的每个值映射到一个新的数组中(注:产生一个新的数组)。如果存在原生的map方法,就用原生map方法来代替。如果list是个JavaScript对象,iteratee的参数是(value, key, list)

虽然map()函数接收一个数组或者集合作为输入,但是它永远只返回一个数组。如果对一个对象使用map(),那么返回的新集合将为原对象所有的经过变换处理后组成的数组,而不是一个经过变换后的对象。

阅读全文 »

前言

Webhooks可谓是GitHub的其中一个大杀器,利用Webhooks可以做很多自动化执行的事情。

在正确配置了Webhooks的项目上,Webhooks会接受对当前项目指定的操作(如commit、push、pull request等)作为触发响应的事件,当事件被触发后,Webhooks会向绑定的域名发送一条带有操作信息的web请求。若一个服务器监听了这个web请求的地址和端口,那么该服务器就可以接收该请求并获取操作信息,同时根据信息执行不同的任务。

一个典型的场景就是远程服务器自动部署Web项目。向项目提交修改后,通过Webhooks向服务器发送请求,服务器接收并分析Webhooks请求后执行脚本,自动部署当前项目到Web目录,即可立即在浏览器查看当前作出的修改。下面就以这个场景为例配置Webhooks和服务器,来实现上述效果。

服务器执行环境:Ubuntu 14.04,Apache 2.4.7,PHP 5.5.9

GitHub Webhooks 文档:https://developer.github.com/webhooks/

阅读全文 »

前言

Ubuntu的Apache默认执行用户是www-data,用户组是www-data,但是由于www-data为低权限用户,有时会出现使用php读取文件、执行脚本时出现权限不够的情况,因此可以通过修改Apache的配置,达到使用其他用户执行Apache的效果。

适用版本:Apache 2.4.7

阅读全文 »