Shuihui’s Home


All our open-source codes can be found at Gitee or Github. Hope you find usefully things at here ^_^.

RTMapper - Realtime Mapper for UAV


RTMapper is a software based on computer vision and deep learning for real-time and online creating and processing digital map. It provides full sets of solutions for map creation, difference/object detection. Through RTMapperMobile the full task can be accomplished just one-click by DJI drone, in addtion our technology can be integrated into you UAV system by using RTMapperSDK to make your system has the capability of real-time processing. Detailed usage manual can be found at online documents.

More detailed information can be found at RTMapper or Sibitu




PI-SLAM: Modulized SLAM System


PI-SLAM是西北工业大学智能系统实验室(Pilot Intelligent Laboratory, PI-LAB)开发的模块化设计的SLAM框架和系统,基于此系统能够方便的开发新的SLAM插件,从而加快研究、开发的速度。其中的FeatureDetector, Matcher, Initializer, Tracker, Mapper, Estimator, Optimizer, Relocalizer, LoopDetector and LoopCloser都可以单独实现,并不会影响其他的模块,因此能够协同开发,一定程度上降低了代码理解的难度。

GSLAM: A General SLAM Framework and BenchMark


GSLAM is aimed to provide a general open-source SLAM framework and benchmark with following features :

Map2DFusion: Real-time Incremental UAV Image Mosaicing based on Monocular SLAM


We present a real-time approach to stitch large-scale aerial images incrementally. A monocular SLAM system is used to estimate camera position and attitude, and meanwhile 3D point cloud map is generated. When GPS information is available, the estimated trajectory is transformed to WGS84 coordinates after time synchronized automatically. Therefore, the output orthoimage retains global coordinates without ground control points. The final image is fused and visualized instantaneously with a proposed adaptive weighted multiband algorithm. To evaluate the effectiveness of the proposed method, we create a publicly available aerial image dataset with sequences of different environments. The experimental results demonstrate that our system is able to achieve high efficiency and quality compared to state-of-the-art methods.

NPU Drone-Map Dataset


This dataset contains several aerial video sequences captured in different terrains and heights, which is used to evaluate the effectiveness of our proposed open-source Map2DFusion system. Until now, the dataset is consisted of several sequences recorded in different locations with over 100GB data and more captured sequences will be added.

NPU RGB-D Dataset


In order to evaluate the RGB-D SLAM algorithms of handling large-scale sequences, we recorded this dataset which contains several sequences in the campus of Northwestern Polytechnical University with a Kinect for XBOX 360. This is a challenging dataset since it contains fast motion, rolling shutter, repetitive scenes, and even poor depth informations.



Hands-Free is an open source robot hardware and software platform for robot research and development. It has well designed embedded hardware and software architecture. Through the platform, you can create your robot rapidly. This system include navigation, SLAM, computer vision modules, which also support other open-source platform such as ROS, MRPT, Pixhawk.

Sequence SfM


This program is a demo to show structure from motion for sequence images input. The program is based on, but we fix some bugs and use Qt as the interface. You can add more advanced tricks such used in PTAM or ORB-SLAM, to make it faster and robust.

EICAM: An Efficient C++ Implimentation of Different Camera Models


The EICAM is the a part of PIL library, which includes some pretty useful tools for C++ programing especially in the areas of mobile robotics and CV (computer vision). Since cameras projection and unprojection actions are often needed in CV or other area such as Robot localization like SLAM (simultaneous localization and mapping), we provided EICAM for efficient implementation of different camera models including PinHole, ATAN, OpenCV, OCAM .etc.

PI-Base: A light weight parameters and commands parsing library for C++


The PI_Base is the base part of PIL library, which includes some pretty useful tools for C++ programing especially in the areas of mobile robotics and computer vision. Since parameters parsing and time usage statistics are two of the most needed function for program development, we provide an efficient and thread safe implementation of them, and this documentation will focus on their usage introduction.



This program is a C++ toolbox for extracting CNN feature map from image. For achieving high-performance computation, it support CUDA acceleration. The average computation of 3 layers feature maps of a 640x480 image is 20 ms. You can easly integrated the code to your program.



This program is a C++ toolbox for generating superpixel from image. For achieving high-performance computation, it support CUDA acceleration. The average time for a 640x480 image is 40 ms. You can easily integrated the code to you embedded program.

camshiftKalman - An object tracking project using camshift and Kalman Filter based on OpenCV


We implement an object tracking algorithm using camshift and Kalman Filter. Three features, hue, saturation and rotation invariant Local Binary Pattern, are used to model the tracking object. Kalman Filter is employed to smooth the motion trajectory and predict the next position when the object is occluded.



This program can align a face to front view. This system is an implementation of paper “Effective Face Frontalization in Unconstrained Images, Tal Hassner, Shai Harel, Eran Paz, Roee Enbar”



This program is a simple ground control station program. You can use the program to show MAV’s position and attitude information through Mavlink protocol. Current, this program only tested for ArduCopter, although it may support other flight controller which use Mavlink. The map widget used in this program is based on opmapcontrol.



This program is a map widget which is based on opmapcontrol. We have fixed some minor problems of the implementation of opmapcontrol. There is a demo program show how to use the map widget. The map control has the functions of downloading offline map, showing UAV position, and editing waypoints.

Convolutional Deep Belief Networks


This program is an implementation of Convolutional Deep Belief Networks with MATLAB, MEX, CUDA versions. In this code, the binary and Gaussian visable types are both supported. In addition, CUDA acceleration is also included. We provide some demo programs to show the usage of the code.

Shell Toolkit


This package is aim to help Linux/UNIX users to collect their own bash shells and got better experience. You can doing a lot of things easily by this tool, such as ‘cd’ to a folder faster, automatically config your Makefile environment, help you remember program history thing and complete your parameters later, and so on.



This program is a pure Qt implementation of flight instrument widgets, including attitude display indicator (ADI), compass, and list viewer. These widgets are easy to use and modify.

DeepNet with CUDA


In this project, Shaoguang Cheng implement a deep learning toolbox (DeepNet) including RBM, DBN, Multi-modal DBN with Python, in which the majority of matrix operations are carried on GPU by using the Cudamat to speed up the calculation process. There are some examples to show how to use this package.

ArDrone Autoflight Toolkit


This program is a automatic flight toolkit for ArDrone 2. We implenented 5 flight tasks. They are [0] tracking color block, [1] tracking Aruco marker [2] Flight along corridor , [3] Recorder video, [4] Auto landing.



This program is a pure C++ implementation of FastSLAM 1 and 2. It also integrated a GUI interface which draw current states and observations.

Dynamic Path Planning


This program demonstrates how to dynamically plan a path from a begin point to an end point, where the environment is incrementally scanned. The simplest A* algorithm is used to plan a path from current position to destination using currently scanned map. Different with traditional path planning, it can plan route for completely unknown environment.



A web-based Japanese Kanji dictionary, written by Python and MySQL. The main feature of this dictionary is that you can seek the Japanese reading and Chinese reading of the Kanji by Pinyin.