SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

detailed experience
detailed experiencedetailed experience
detailed experienceBryan Yan
 
Weakly supervised semantic segmentation of 3D point cloud
Weakly supervised semantic segmentation of 3D point cloudWeakly supervised semantic segmentation of 3D point cloud
Weakly supervised semantic segmentation of 3D point cloudArithmer Inc.
 
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...Fellowship at Vodafone FutureLab
 
D space magazin_2019_2_iupui_english
D space magazin_2019_2_iupui_englishD space magazin_2019_2_iupui_english
D space magazin_2019_2_iupui_englishSree Shruthi
 
IRJET- 3D Object Recognition of Car Image Detection
IRJET-  	  3D Object Recognition of Car Image DetectionIRJET-  	  3D Object Recognition of Car Image Detection
IRJET- 3D Object Recognition of Car Image DetectionIRJET Journal
 

Mais procurados (8)

detailed experience
detailed experiencedetailed experience
detailed experience
 
Weakly supervised semantic segmentation of 3D point cloud
Weakly supervised semantic segmentation of 3D point cloudWeakly supervised semantic segmentation of 3D point cloud
Weakly supervised semantic segmentation of 3D point cloud
 
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...
Deep Learning based Segmentation Pipeline for Label-Free Phase-Contrast Micro...
 
Sai Dheeraj_Resume
Sai Dheeraj_ResumeSai Dheeraj_Resume
Sai Dheeraj_Resume
 
D space magazin_2019_2_iupui_english
D space magazin_2019_2_iupui_englishD space magazin_2019_2_iupui_english
D space magazin_2019_2_iupui_english
 
50120140503017 2
50120140503017 250120140503017 2
50120140503017 2
 
IRJET- 3D Object Recognition of Car Image Detection
IRJET-  	  3D Object Recognition of Car Image DetectionIRJET-  	  3D Object Recognition of Car Image Detection
IRJET- 3D Object Recognition of Car Image Detection
 
SoA_project
SoA_projectSoA_project
SoA_project
 

Destaque

Advanced Image Processing: Project 1
Advanced Image Processing: Project 1Advanced Image Processing: Project 1
Advanced Image Processing: Project 1JosephChang
 
Using openCV 2.0 with Dev C++
Using openCV 2.0 with Dev C++Using openCV 2.0 with Dev C++
Using openCV 2.0 with Dev C++Wei-Wen Hsu
 
GeoCV - Mobile 3D Capture
GeoCV - Mobile 3D CaptureGeoCV - Mobile 3D Capture
GeoCV - Mobile 3D CaptureAnton Yakubenko
 
OpenCV 3.0 - Latest news and the Roadmap
OpenCV 3.0 - Latest news and the RoadmapOpenCV 3.0 - Latest news and the Roadmap
OpenCV 3.0 - Latest news and the RoadmapEugene Khvedchenya
 
Basic openCV Functions Using CPP
Basic openCV Functions Using CPPBasic openCV Functions Using CPP
Basic openCV Functions Using CPPWei-Wen Hsu
 
Running openCV project on Mac OS
Running openCV project on Mac OSRunning openCV project on Mac OS
Running openCV project on Mac OSWei-Wen Hsu
 
Введение в архитектуры нейронных сетей / HighLoad++ 2016
Введение в архитектуры нейронных сетей / HighLoad++ 2016Введение в архитектуры нейронных сетей / HighLoad++ 2016
Введение в архитектуры нейронных сетей / HighLoad++ 2016Grigory Sapunov
 
Computer Vision, Deep Learning, OpenCV
Computer Vision, Deep Learning, OpenCVComputer Vision, Deep Learning, OpenCV
Computer Vision, Deep Learning, OpenCVFarshid Pirahansiah
 
Погружение в Deep Learning
Погружение в Deep LearningПогружение в Deep Learning
Погружение в Deep LearningDeepHackLab
 
Using openCV 3.2.0 with CodeBlocks
Using openCV 3.2.0 with CodeBlocksUsing openCV 3.2.0 with CodeBlocks
Using openCV 3.2.0 with CodeBlocksWei-Wen Hsu
 
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit, Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit, Farshid Pirahansiah
 

Destaque (12)

Advanced Image Processing: Project 1
Advanced Image Processing: Project 1Advanced Image Processing: Project 1
Advanced Image Processing: Project 1
 
Using openCV 2.0 with Dev C++
Using openCV 2.0 with Dev C++Using openCV 2.0 with Dev C++
Using openCV 2.0 with Dev C++
 
GeoCV - Mobile 3D Capture
GeoCV - Mobile 3D CaptureGeoCV - Mobile 3D Capture
GeoCV - Mobile 3D Capture
 
OpenCV 3.0 - Latest news and the Roadmap
OpenCV 3.0 - Latest news and the RoadmapOpenCV 3.0 - Latest news and the Roadmap
OpenCV 3.0 - Latest news and the Roadmap
 
Basic openCV Functions Using CPP
Basic openCV Functions Using CPPBasic openCV Functions Using CPP
Basic openCV Functions Using CPP
 
OpenCV Workshop
OpenCV WorkshopOpenCV Workshop
OpenCV Workshop
 
Running openCV project on Mac OS
Running openCV project on Mac OSRunning openCV project on Mac OS
Running openCV project on Mac OS
 
Введение в архитектуры нейронных сетей / HighLoad++ 2016
Введение в архитектуры нейронных сетей / HighLoad++ 2016Введение в архитектуры нейронных сетей / HighLoad++ 2016
Введение в архитектуры нейронных сетей / HighLoad++ 2016
 
Computer Vision, Deep Learning, OpenCV
Computer Vision, Deep Learning, OpenCVComputer Vision, Deep Learning, OpenCV
Computer Vision, Deep Learning, OpenCV
 
Погружение в Deep Learning
Погружение в Deep LearningПогружение в Deep Learning
Погружение в Deep Learning
 
Using openCV 3.2.0 with CodeBlocks
Using openCV 3.2.0 with CodeBlocksUsing openCV 3.2.0 with CodeBlocks
Using openCV 3.2.0 with CodeBlocks
 
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit, Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
 

Semelhante a Portfolio

Marek Suplata Projects
Marek Suplata ProjectsMarek Suplata Projects
Marek Suplata Projectsguest14f12f
 
Dataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsDataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsPetteriTeikariPhD
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryCSCJournals
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryCSCJournals
 
A Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesA Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesAIRCC Publishing Corporation
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate... Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...AIRCC Publishing Corporation
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...AIRCC Publishing Corporation
 
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...ijcsit
 
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro..."High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...Edge AI and Vision Alliance
 
Object Detection for Autonomous Cars using AI/ML
Object Detection for Autonomous Cars using AI/MLObject Detection for Autonomous Cars using AI/ML
Object Detection for Autonomous Cars using AI/MLIRJET Journal
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsIRJET Journal
 
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...IRJET- Comparative Study of Different Techniques for Text as Well as Object D...
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...IRJET Journal
 
AIR WRITING USING PYTHON (2021-2022)
AIR WRITING USING PYTHON (2021-2022)AIR WRITING USING PYTHON (2021-2022)
AIR WRITING USING PYTHON (2021-2022)IRJET Journal
 
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDS
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDSFACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDS
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDSIRJET Journal
 
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...Ravi Kiran B.
 
Introduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformIntroduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformSANGHEE SHIN
 
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...ijcga
 
A Review On AI Vision Robotic Arm Using Raspberry Pi
A Review On AI Vision Robotic Arm Using Raspberry PiA Review On AI Vision Robotic Arm Using Raspberry Pi
A Review On AI Vision Robotic Arm Using Raspberry PiAngela Shin
 

Semelhante a Portfolio (20)

Marek Suplata Projects
Marek Suplata ProjectsMarek Suplata Projects
Marek Suplata Projects
 
Dataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsDataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problems
 
PointNet
PointNetPointNet
PointNet
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud Library
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud Library
 
A Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesA Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural Communities
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate... Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
 
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...
COMPLETE END-TO-END LOW COST SOLUTION TO A 3D SCANNING SYSTEM WITH INTEGRATED...
 
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro..."High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...
"High-resolution 3D Reconstruction on a Mobile Processor," a Presentation fro...
 
Object Detection for Autonomous Cars using AI/ML
Object Detection for Autonomous Cars using AI/MLObject Detection for Autonomous Cars using AI/ML
Object Detection for Autonomous Cars using AI/ML
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather Conditions
 
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...IRJET- Comparative Study of Different Techniques for Text as Well as Object D...
IRJET- Comparative Study of Different Techniques for Text as Well as Object D...
 
Computer graphics by bahadar sher
Computer graphics by bahadar sherComputer graphics by bahadar sher
Computer graphics by bahadar sher
 
AIR WRITING USING PYTHON (2021-2022)
AIR WRITING USING PYTHON (2021-2022)AIR WRITING USING PYTHON (2021-2022)
AIR WRITING USING PYTHON (2021-2022)
 
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDS
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDSFACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDS
FACE COUNTING USING OPEN CV & PYTHON FOR ANALYZING UNUSUAL EVENTS IN CROWDS
 
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...
AUTO AI 2021 talk Real world data augmentations for autonomous driving : B Ra...
 
Introduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformIntroduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin Platform
 
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...
3-Phase Recognition Approach to Pseudo 3D Building Generation from 2D Floor P...
 
A Review On AI Vision Robotic Arm Using Raspberry Pi
A Review On AI Vision Robotic Arm Using Raspberry PiA Review On AI Vision Robotic Arm Using Raspberry Pi
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