Summer internship

Applications are now closed. Thank you!

What’s in it for you?

The best way to start a career is to closely study and work together with some of the best and brightest minds within your field of interest. Our summer internship is a great opportunity to get valuable, first-hand experience by working on interesting computer vision and machine learning projects.

Internship length

The internship will be held in our Zagreb office for 6 weeks (between the end of August and the beginning of October). It is a full-time, financially compensated position that lets you experience what it feels like to be a part of a growing, successful company.

Internship topics

Choose one of the available topics and collaborate with our experienced engineers. New ideas and curiosity are always welcome – we want you to grow professionally, but also appreciate the fresh perspectives you bring to the table.


If you are a Master’s student or you’ll become one this fall, this internship was designed for you. Gain hands-on experience with the possibility of permanent employment after your graduation, and an outstanding reference for your resume.

Available projects

Motion estimation using neural networks

Human motion modelling is a continuous problem in area of computer vision. Different approaches to estimating movement were made such as linear approximation, Kalman Filters (EKF and UKF), neural networks, etc. The purpose of this internship is to improve performance of an existing multiple object tracking model by adding neural network as motion model extension.

Prerequisites: Python, Machine Learning basics, neural networks

Free Road Space Detection using CARLA Simulator

Accumulating large amount of data is hard to come by. With improvements in photo-realistic simulation using artificially generated data should be considered. This topic should investigate how the training on such data will translate to the real world. In order to do that, the idea is to generate an adequate amount of artificial data and use it to train a CNN. For evaluation of its performance, both artificial data and open-source real-world data will be used.

Prerequisites: Python, C++, computer vision basics, ML basics, CNNs

Vehicle state estimation using Particle filter

The Kalman filter is an optimal state estimator if we assume that errors have a normal (Gaussian) distribution, and the dynamic model and measurement model are both linear. The dynamic model of interest is a car, for which in every step we have a measurement from the vision camera. The dynamic model of the system is not linear which requires a nonlinear state estimation technique to be used.

The most common nonlinear state estimation algorithms are EKF (Extended Kalman Filter), UKF (Unscented Kalman Filter) and Particle Filter. The goal of this task is to compare the EKF and Particle filter state estimation accuracies. The EKF results are already available, while the particle filter implementation needs to be done to compare the mentioned results.

Prerequisites: Kalman filter, Python or C/C++

Road Lane Detection and Classification based on CNNs

Road lane detection systems play a crucial role in the context of Advanced Driver Assistance Systems (ADASs) and autonomous driving. Such systems can lessen road accidents and increase driving safety by alerting the driver in risky traffic situations. Additionally, the detection of lanes with their left and right boundaries along with the recognition of their types is of great importance as they provide contextual information. Lane detection is a challenging problem since road conditions and illumination vary while driving.

The goal of the internship is to investigate the use of a CNN-based regression method for detecting road lane boundaries. Additionally, lane classification needs to be performed to categorize previously detected lane boundaries.

Prerequisites: ML basics, CNNs, Python, Python ML frameworks (TensorFlow, Keras)

Merging disparity images

A Car, while driving, collects disparity images from its camera (stereo or mono with CNN). The goal of this internship is to implement the algorithm that will merge disparity data from different frames to get more accurate disparity data. The algorithm will involve matching similar points and running optimization on points in the field of view. The key part of the algorithm is removing redundant points from the field of view.

Prerequisites: Expirience with basic computer vision algorithms, C/C++, Python

Computationally Efficient Visual Transformers

Visual Transformers are a fast-growing model architecture as of late in the field of Computer vision. The purpose of this internship is to train a visual transformer (or use an existing transformer available online as open source) and use it as a baseline to try and make it more efficient without hurting the performance. The focus will be on non-dense task such as image recognition to facilitate the necessary setup and simplify the reuse of open-source resources.

Prerequisites: Python (either Pytorch or Tensorflow), Deep Learning for Computer Vision (basics), Attention is All You Need article (good to have)

Generating Pedestrian Data in Real Scene and Beyond

Pedestrian detection requires a lot of data, and the process of collecting and labeling data can be very cumbersome and time consuming. One way to address this issue is to develop a General Adversarial Network that will generate labeled pedestrian data and then add that data into training data of pedestrian detector. The purpose of this internship is to implement such a network and show that it can be used to improve pedestrian detection performance.

Prerequisites: Python, Deep Learning basics, neural networks

Generating realistic traffic images using a CycleGAN

Acquiring enough annotated data of certain traffic scenarios is difficult (sometimes borderline impossible, e.g. a cutting in fire truck on a highway). Creating those scenarios in a simulator and rendering a realistic version of them using a CycleGAN would save a lot of trouble. CycleGANs have shown that they provide great results when trained on un-paired examples which makes them suitable here. The goal of the internship is to train a CycleGAN to render realistic images of predefined rare traffic situations.

Prerequisites: Basic ML knowledge, Basic Python ML frameworks knowledge, Some previous GAN knowledge

How to apply?

The applications are now closed, but you can explore some of the interesting topics our interns have worked on in the previous years here.

Stay up to date with new internships and career opportunities on Facebook, LinkedIn or Instagram.

In the words of our previous generations…

How we did so far

About us

At Visage Technologies, we develop smart solutions powered by computer vision and machine learning. A specialized division of the company – Automotive Division – exclusively collaborates with a major automotive safety supplier, developing algorithms for ADAS (Advanced Driver Assistance System). The system detects and tracks objects such as other vehicles and pedestrians, with applications such as automatic braking, lane keeping assistance, adaptive cruise control, etc.

Visage Technologies has been among the fastest-growing technology companies since 2017. Our team keeps growing as well, so we’re often on the lookout for new colleagues.