Marcin Bogdanski, Machine Learning Developer in Bristol, United Kingdom
Marcin Bogdanski

Machine Learning Developer in Bristol, United Kingdom

Member since March 8, 2018
Marcin is passionate about artificial intelligence especially about deep learning and related technologies. In 2007, he completed his bachelor's degree in computer science with a focus on AI and then pursued a career in robotics but his first love remained AI. Within the past few years, he's refocused his attention on deep learning projects, drawing upon his more than a decade's worth of hands-on experience in software as a team lead.
Marcin is now available for hire

Portfolio

Experience

  • Python, 10 years
  • C++, 5 years
  • Machine Learning, 4 years
  • TensorFlow, 3 years
  • Keras, 3 years
  • Reinforcement Learning, 3 years
  • Deep Learning, 3 years
  • PyTorch, 2 years

Location

Bristol, United Kingdom

Availability

Part-time

Preferred Environment

Ubuntu Linux, VS Code, JupyterLab or Win10+VS

The most amazing...

...project I've implemented was a vision system which won first prize along with $20,000.

Employment

  • Deep Learning Engineer

    2017 - PRESENT
    Consulting Work
    • Extended AlphaZero to imperfect information games, validated against Facebook OpenGo.
    • Built a vision system that won $20,000 first prize at Melbourne Knowledge Week.
    • Designed an NLP algorithm for automated text summarization of financial news articles.
    • Designed a neural architecture for fault detection on images of wind turbine blades.
    • Developed a system for predictive maintenance based on data from home IoT sensors.
    • Introduced a vision system for tooling wear assessment for a major aerospace manufacturer.
    • Implemented face detection and auto-tagging for family journal iPhone/Mac app.
    Technologies: TensorFlow, Keras, PyTorch, Python, AWS, GCP
  • Technical Director

    2014 - 2019
    DroneX Ltd
    • Developed real-time image segmentation for obstacle avoidance in a prototype ground robot.
    • Implemented AI that coordinated 200+ mobile mining robots in simulation (a US customer).
    • Led a team of engineers to design and build hardware and software for many drone projects.
    • Delivered all projects to full customer satisfaction (with some projects resulting in patents).
    Technologies: Keras, Python, Robot Operating System (ROS), C, C++
  • Team Leader

    2011 - 2014
    Go Science
    • Oversaw and managed multiple software and hardware system integrations on an experimental autonomous deep-water vehicle.
    • Led a team of engineers in the delivery of multiple successful customer-facing trials.
    Technologies: Embedded C, C++
  • Co-founder

    2009 - 2010
    Giko Games
    • Programmed a 3D game engine for Android in Java which was used in two published games.
    Technologies: Android, Java
  • Software Engineer

    2008 - 2009
    Imagination Technologies
    • Built parts of the Windows 7 GPU driver in C++ and programmed a full test suite in Python.
    Technologies: Windows 7, DirectX, C++, Python

Experience

  • Parking Sign Detection and Recognition (Development)

    PROJECT DESCRIPTION:
    Parking signs in Australia are notoriously complicated. The project was to build a proof-of-concept vision system to detect and recognize signs with a mobile phone and let the user know whether they can park at that location.

    TECHNOLOGIES:
    The system uses a customized state-of-the-art multi-stage neural network for detection. The main challenge was working with tiny data set and a large variety of backgrounds, lighting and weather conditions and obstructions. We deployed the system for production on Amazon EC2

    This project won first place and a monetary prize of $20,000 at the Melbourne Knowledge Week. I was fully responsible for the AI technology and the demo was delivered by the customer.

  • Automatic Text Summarization of Financial News Articles (Development)

    PROJECT DESCRIPTION:
    Stock traders need to process a large quantity of complex information in real-time to be able to compete. The project was to analyze input PDFs and present to the user a short 2-3 sentence summary.

    TECHNOLOGIES:
    During the research phase, we experimented with both extractive and abstractive text summarization, sentiment analysis, and translation techniques to get all the pieces necessary for the final product. Decoding raw PDFs was a significant challenge as well.

  • Automated Wind Turbine Fault Detection (Development)

    PROJECT DESCRIPTION:
    This project is a proof-of-concept neural architecture for automated fault detection on high-resolution images of wind turbine blades. I provided know-how via ongoing consulting as well as developed actual software for data pre-processing and model training and testing. The customer provided images and preliminary labels in a raw format. A large part of the project was to browse, clean, select, and label data provided so it can be feed into the machine learning component.

    TECHNOLOGIES:
    Due to the unique technical challenges that we encountered, we developed two non-standard components:
    01. A completely custom preprocessing pipeline to handle the characteristics of the input data.
    02. A far-reaching optimization of a neural network subsystem to allow for fast training time.

  • Self-driving Software for a Semi-autonomous Unmanned Ground Vehicle (Development)
    https://marcinbogdanski.github.io/commercial-portfolio.html

    PROJECT DESCRIPTION:
    In this project, I worked as the principal software developer responsible for designing and implementing a self-driving module for an unmanned ground vehicle (UGV). The robot needed to navigate with GPS for predetermined routes where an obstacle avoidance module would be responsible for detecting unexpected obstacles like pedestrians, parked vehicles, and similar challenges (the robot would use walking paths).

    TECHNOLOGIES:
    The primary sensor was a front-facing monocular RGB camera (i.e., a webcam). Images from the camera were processed by two independent neural networks.

    01. YOLO for object detection and localization—pedestrians, parked vehicles, and more. The network was trained on both a pre-existing dataset as well as a mix-in of our own training data.
    02. SegNet was used for detecting if the ground in front of the vehicle is drivable (e.g., pavement, tarmac). The network was trained on cityscapes with a few added images.

  • Tool Wear Assessment for a CNC Router (Development)
    https://marcinbogdanski.github.io/commercial-portfolio.html

    PROJECT DESCRIPTION:
    A CNC router is a machine that uses a rotational tool bit (drill) to remove material from a solid block to manufacture a target part. The tool bits wear down and technicians often forget to check and replace them. This system automatically takes a picture of the tool bit before the job has started and feeds it into a convolutional neural network to evaluate the current wear of the tool bit.

    TECHNOLOGIES:
    Image classification is performed with DenseNet-201 which showed the best performance out of the attempted architectures. CNN was initially trained on ImageNet and then trained further. The classifier was trained on a target dataset with heavy data augmentation and applied regularization. Afterward, the training network was able to detect cracked, chipped, or overheated (changed color) tool bits.

    The system is currently operating in a machine shop at an aerospace manufacturing facility.

  • Interactive Simulation for a Mining Robot Swarm (Development)
    https://marcinbogdanski.github.io/commercial-portfolio.html

    PROJECT DESCRIPTION:
    The purpose of this project was to assess in detail the performance of a swarm of 200+ mining and support robots. The swarm would start in containers, then deploy solar panels, build a surface base, excavate tunnels, process raw materials, and finally wind up in an operation. The complexity of the project was similar to a simple strategy video game.

    TECHNOLOGIES:
    The simulation is physics-based and built in a Unity3D game engine along with a set of plugins for dynamic volumetric terrain (so that the robots can freely excavate). An individual robot AI manages energy, navigation, task queues, and more. The swarm AI manages task allocation, robot coordination, excavation orders, and similar.

    At any point, a user can override the high-level strategy or take over full control over an individual robot.

Skills

  • Languages

    Python, C, C++, C#, Java
  • Libraries/APIs

    Keras, PyTorch, TensorFlow
  • Platforms

    Jupyter Notebook, Amazon Web Services (AWS), Google Cloud Platform (GCP)
  • Other

    Machine Learning, Deep Learning, Reinforcement Learning, Deep Reinforcement Learning, Artificial Intelligence (AI), Research, Robotics, Drones, Software Engineering, Computer Vision, Machine Vision, Natural Language Processing (NLP), Neural Networks, Deep Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks, Mathematics, Natural Language Understanding, Artificial General Intelligence (AGI), Voice Recognition
  • Paradigms

    Agile, Testing, Data Science

Education

  • Bachelor of Engineering (BEng) degree in Computer Science
    2004 - 2007
    University of Bielsko-Biała - Bielsko-Biała, Poland
Certifications
  • Natural Language Processing Nanodegree
    JANUARY 2019 - PRESENT
    Udacity
  • Computer Vision Nanodegree
    JANUARY 2019 - PRESENT
    Udacity
  • Deep Learning Specialization
    AUGUST 2018 - PRESENT
    Coursera
  • Deep Learning Nanodegree Foundation
    OCTOBER 2017 - PRESENT
    Udacity

To view more profiles

Join Toptal
I really like this profile
Share it with others