A Review On AI Vision Robotic Arm Using Raspberry Pi
Portfolio
1. Ivan Khomyakov
Portfolio
Languages:
C++, C#, Python, Qt, Java
Working knowledge:
bash, OpenCV, SQL, Machine Learning,
Batch Processing, Deploying, Data Analysis,
Data Workflow, scikit-learn, AWS, MATLAB,
Unity 3D
Basic knowledge:
Apache Spark, Redis, Statistics, OpenGL,
CUDA
Phone: +7 968 988 49 77
Skype: ivan-khomyakov
E-mail: khaxis@gmail.com
2015
2. Contents
1 Fast Cubemap Filter 2
2 Real-Time Locating System 3
3 Dynamic Map 4
4 Route Editor 5
5 Guide 6
6 Basketball 7
7 e-Magazine 8
8 3D Vascular Segmentation and Skeletatization 9
9 Rock-paper-scissors 10
10 University projects 11
1
3. 1 Fast Cubemap Filter
Figure 1: Environment that is used as global illumination
Figure 2: Synthesis using presented environments
Period: 2012 – 2013
Institution: Lomonosov Moscow State University, Graphics and Media Lab
Technology: C++, OpenGL, OpenCV, CUDA, HDR (High-dynamic-range
imaging), Python, Algorithms
Description: Cubemaps are widely used in computer graphics. They find use
in global illumination as well. These cubemaps need filtering in order to
achieve photorealistic image in modelling limited depth of field in optical
systems. Two main techniques were developed: physically incorrect but
extremely fast method (b) and the method that follows optical rules (c).
A few approaches has been implemented in order to optimize process-
ing time. Original physically correct technique needs O(n4
) operations
to perform. At the end there was introduced an algorithm that needs
O(n2
log2
(n)) operations and only two times more amount of space.
2
4. 2 Real-Time Locating System
Period: 2014
Company: RoboCV
Technology: Unity3D, C#, TCP, UDP, GIMP, Blender
Description: Real-Time Locating System is a tool for tracking certain objects
that are located on a plant’s area. Two different approaches are used for
receiving position and status from tractors (robots) inside the building
and trucks outside.
The system should filter the information and represent it in an appropriate
way, i.e by getting rid of noise in position, tracking changes in state.
3
5. 3 Dynamic Map
Period: 2013 – 2014
Company: RoboCV
Technology: C++, OpenCV, PCL, Python, PostgreSQL, Image Processing
Description: A reliable map is an essential component for the whole navigation
system in robotics. A static map can be used if the environment is not
going to change significantly. On the other hand than robots interact with
people and objects on the territory they must have a module of dynamic
maps.
New changes in the environment should be considered in a dynamic map.
It has to be relevant in any time. Dynamic map should be tighten to a
fixed coordinate system, must not have distortions or ambiguities. The
algorithms should run fast enough in order to process the data on limited
hardware in real time.
4
6. 4 Route Editor
Period: 2014
Company: RoboCV
Technology: C++, Qt, PostgreSQL
Description: This is a useful tool for analysis of the database that is rooted
from a simple vector graphics editor. The routes are represented as a
directed graph where every edge contains additional information needed
for a robot to build a route. The graph is stored in database as well as
point cloud.
5
7. 5 Guide
Period: 2013
Company: Redmadrobot
Technology: Unity3D, C#, RPC (Remote Procedure Calls)
Description: This app is used in a museum. The whole system consists of few
modules. This module is based on an application for iPad and a large
screen. A guide can rotate or zoom models, play animation, show pictures
or information bars on his or her tablet and everything will be present on
the large screen as well. The scenes here vary from simple ones with a few
photos to very complex 3D-scenes with animation of the whole processes
on power plants.
6
8. 6 Basketball
Period: 2012
Technology: Unity3D, C#, Augmented reality, Qualcomm R Vuforia.
Description: This is an example of Augmented reality technology. 3D engine
renders artificial objects on the picture from camera. The synthesized
image depends on a marker position on the screen (In this case a marker
is the certain picture of stones).
When a user points a camera on the marker a basket appears. The user
can throw the ball in the basket.
7
9. 7 e-Magazine
Period: 2012
Technology: Java (Android SDK)
Description: This is an e-magazines reader. This project was inspired by an
idea of text formatting so it could look more appropriate on screens of most
devices. It renders columns of a fixed size, headers and sub-headers and
images. A magazine is a zip-file with it’s content description in XML-file
and articles in XML format as well.
8
10. 8 3D Vascular Segmentation and Skeletatization
Period: 2014
Technology: Matlab
Description: This is a team project in Summer School on Image Processing
2014 (SSIP-2014, Zagreb). Vascular segmentation and centreline extrac-
tion are very important tasks for computer aided diagnosis and image
guided interventions. Although due to its importance a lot of research
effort has been put into solving it, it is still considered a difficult task.
In this project our team have tried segment the cerebral vasculature from
images obtained with magnetic resonance angiography (MRA) of healthy
subjects. There were two tasks, one task was to segment the vascular lu-
men (as a binary image or a triangular mesh) and the second task was to
obtain accurate centreline skeleton of the underlying vasculature (binary
image or a set of connected points).
9
11. 9 Rock-paper-scissors
Period: 2015
Technology: Python, scikit-learn, OpenCV
Description: The program is supposed to the three different shapes in the
game using a camera and machine learning algorithms. The raw data was
collected by using a python script. Another script provides a tool to select
the regions on the pictures with hand gestures. A Viola-Jones detector
has been trained on the result (OpenCV). Afterwards an SVM classificator
has been trained on the following classes: rock, paper, scissors and other
(scikit-learn) with different kernel parameters and vectors of features.
10
12. 10 University projects
Period: 2007 – 2013
Translator and Interpreter. Code in a give programming language should
be translated in a bytecode. Interpreter executes instructions written in
the bytecode.
Statistical Modelling. There is a number of projects that cover mostly econo-
metrics tasks. Time-series data, mean-variance analysis and business val-
uation methods were implemented.
Computer vision. Traffic signs, vehicle registration plates, people’s ages and
sexes recognition were covered.
Compression. Huffman and Arithmetic coding as well as Fractal compression
for images were implemented. Some techniques for video compression also
were considered, such as Motion Estimation. Using a similar technology
an algorithm of Depth Estimation by Motion was implemented.
Image Processing. A few different programs were written on removing noise
from images including linear and non-linear (i.e. Median or Bilateral fil-
ters). Some work has been made with High-Dynamic-Range Imaging, such
as Tone Mapping or a number of filters.
11