0%

图像分类是深度学习的典型问题,本文使用Mobile-net作为分类网络,实现自定义数据集的分类。主要特点是:

  • 网上教程大多使用构造好的数据集如CIFAR10,缺少如何从头构建自己数据集的过程。本文从采集好的图片开始,一步步构造符合训练要求的数据集。
  • 不熟悉深度学习与计算机视觉的工作者可能对种类繁多的网络结构感到困扰,编写起来更是麻烦。但是Pytorch的torchvision模块已经自带了很多SOTA网络的实现,因此本文直接import了Mobile-net,属于即插即用。
  • 代码讲解较少,如果不熟悉Pytorch请先学习官方图像分类教程,了解基本概念。

综上,读者可以根据本教程快速实现自己的深度学习分类器。

阅读全文 »

日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现。本篇整理了Python中最常用到的文件操作,均采用内置函数实现,无论是批处理还是读取文件都会用到。

阅读全文 »

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

阅读全文 »

Python 提供了很多MPI模块写并行程序,其中 Spinning UP项目主要使用了mpi4py 这个库来实现并行强化学习。因此,事先掌握这个库的用法有助于源码理解或自己写项目。

阅读全文 »

强化学习(Reinforcement Learning, RL)的主要特征是智能体(Agent)和环境(Environment)。

环境是智能体存在并与之交互的世界。在交互的每个步骤中,智能体都会获得对世界状态的观察(也许只是部分可观的),然后决定要采取的行动。当智能体执行动作后,环境会产生变化;环境也可能会自发变化。

智能体还从环境中感知到奖励(reward)信号,一个表明当前环境状态好坏的标量值。智能体的目标是最大化其累积奖励,也就是回报(return)。强化学习就是智能体通过与环境交互、学习行为策略从而完成这一目标的过程。

阅读全文 »

Gazebo是ROS默认的仿真平台,我们可以通过Gazebo仿真器进行机器人仿真实验。本文介绍了如何在Gazebo仿真器中对机器人进行仿真、控制、添加传感器以及获取传感器数据。

阅读全文 »

本文总结了如何使用urdf和xacro对机器人进行建模。ROS中使用urdf文件描述一个机器人,ROS解析了该描述文件后,机器人才可以被rviz可视化、gazebo仿真或moveit运动规划等等。xacro则提供了一种更高层的编写方式,便于用户使用,但是实际使用时,均会先调用rosrun xacro xacro.py xxx.urdf.xacro > xxx.urdf先解析为urdf格式,再使用。

阅读全文 »

客户端库(Client Libarary)不仅仅指的是C++、Python语言的接口,其实是各种语言的接口统称。roscpp是最常用的接口,但是c++开发周期相对较长。本文我们来学习ROS的另一个接口rospy,也即是Python语言的接口。

阅读全文 »