Hüseyin Erkan Acun, Image Processing Developer in Ankara, Turkey
Hüseyin Erkan Acun

Image Processing Developer in Ankara, Turkey

Member since May 30, 2017
For the past four years, Hüseyin has worked as a full-stack developer and embedded programmer—designing and implementing projects running from embedded to large-scale servers, developing various products (image processing, machine learning algorithms, web interfaces, etc.), and building systems from scratch. Hüseyin works closely with clients to provide spot-on solutions. He has a particular passion for designing and developing with C++.
Hüseyin is now available for hire

Portfolio

  • Xtralth, Inc.
    Qt, C++, MVVM
  • Infodif
    C++, FFmpeg, Opencv, Cuda, Deep Learning
  • ISSD
    C++, Boost, STL, GStreamer, QT, FFMpeg, OpenCV, Intel Inference Engine...

Experience

  • C++ 5 years
  • Concurrent Programming 5 years
  • Qt 4 years
  • Linux 4 years
  • Image Processing 3 years
  • Python 2 years

Location

Ankara, Turkey

Availability

Full-time

Preferred Environment

C++, Qt, Linux

The most amazing...

...project I've developed is an IP camera mock; it responds to a request as a camera does and provides video streams. It can be controlled via an HTPP address.

Employment

  • Software Engineer

    2019 - 2020
    Xtralth, Inc.
    • Developed the user interface of a system using C++ and Qt. We used MVVM as design paradigm.
    Technologies: Qt, C++, MVVM
  • Senior Software Engineer

    2019 - 2019
    Infodif
    • Developed image processing algorithms to detect accidents, intrusions, and other events that occur on bridges and highways.
    Technologies: C++, FFmpeg, Opencv, Cuda, Deep Learning
  • Senior Software Engineer

    2018 - 2019
    ISSD
    • Developed an image-processing application running on a CCTV camera itself using C++. This CCTV camera contains arm processor and DSP chips running under embedded Linux.
    • Used the OpenCV and toolchain provided by the CCTV camera manufacturer and ran image processing algorithms in CCTV camera and integrated the system in the camera.
    • Developed a proof-of-concept application using Intel Movidius VPUs.
    • Ran our trained deep learning models on Movidius chips. Movidius can run complex models using very low cpu usage. The VPUs are optimized to run neural network models and the CPU are only required for utilizing VPUs.
    Technologies: C++, Boost, STL, GStreamer, QT, FFMpeg, OpenCV, Intel Inference Engine, Intel Model Optimizer, TensorFlow, Embedded Linux
  • Senior Software Engineer

    2017 - 2018
    Simsoft
    • Built a distributed application for ASELSAN, a Turkish state-owned military company. The application contains signal processing at a very high volume of data in real-time.
    • Developed a video-stream application over RTSP. The application contains a distribution of screens using real-time as well as different video resources—the project was developed using C++, DirectShow, FFmpeg, GStreamer, and OpenCV.
    Technologies: Java, Microsoft SQL Server, Hibernate, OSGi, ActiveMQ, r-OSGi
  • Senior Software Enginner

    2015 - 2017
    ISSD
    • Developed an image-processing algorithm for event detection in tunnels. The algorithm connects a tunnel camera and provides detection results like car counts and various alarms (pedestrians, dropped packages, and intruders). The process also supports processed and unprocessed images as an MJPEG stream.
    • Built a server application SPECTO to configure and run multiple image-processing detectors and integrate them with the central server. The server creates, deletes, and configures different types of detector processes and informs the central server about events.
    • Created an IP-camera mocking application to integrate the network video recorders; this application can be added to an NVR as a camera and provide RTSP streams from different detecting processes. Its source can be configured through an HTTP request and NVR sees the process as a single camera.
    • Created an application, called Bluesis, to gather Bluetooth discoveries of filed devices and use that data to calculate travel time and density between points. The system used Mac addresses sent from devices and find matches between configured points and use them in calculations. The system saves calculations in its own format and also integrates different host with different data formats.
    • Developed user interfaces of Bluesis to configure parameters and monitor field devices and system statuses.
    • Built a lightweight HTTP server in C++ with automated controller registration and routing. Also developed the WebSocket server for the HTTP server. The server connects other processes in the environment with DBus for configuration and monitoring. It also subscribes signals of other process and sends them via WebSocket.
    • Developed a junction controller system Centris which controls traffic lights on junctions. Centris is an embedded device with an arm CPU, and it can connect to and gather information from different types of sensors and junction controllers. Centris can be configured to run different algorithms like the green wave and dynamic. It can also be configured and monitored from the central server. It can provide information about junction status to the server. It has its own HTTP server and user interface.
    • Contributed to the design and development of complicated road systems (involving embedded processors and cameras) that do the following tasks: plate recognition, car counting, and calculates density.
    Technologies: Qt, C++, OpenCV, Boost C++, Linux, MATLAB, ZeroMQ, GStreamer, Live555, SQLite, HTML, JavaScript, C#, WCF, IIS, MVC 5, Web API 2, DBus, SQL Server, RTSP
  • Junior Software Engineer

    2014 - 2015
    Cybersoft
    • Designed and developed a project for bank client companies to use in their billing and payment system; provided a solution for accountants so that they could only have limited access to the client company's bank account without interfering with their work.
    Technologies: Java, MS SQL, Hibernate, Spring, JavaScript, HTML
  • Software Engineer

    2013 - 2014
    Usta Bilgi Sistemler A.Ş.
    • Developed an email service to inform subscribers about their current statuses.
    • Built a stock-and-purchases system.
    • Created judicial management modules to track subscribers' legal statuses.
    • Developed a mobile application to assign tasks to field workers and gather results.
    • Built an OCR application to read sensor statuses and send them to the server.
    Technologies: C#, Microsoft SQL Server, IIS, Razor Views, HTML, JavaScript, C++, Linux, OpenCV

Experience

  • AYBS+ | Multi-threaded and Multi-processing System (Development)

    ROLE: Software Engineer | Full-stack Developer

    PROJECT DETAILS: Here, I worked with a team of software engineers in an EIS project called AYBS+ which is a multi-threaded and multi-processing system.

    WORK DONE:
    • Designed and developed a couple of modules in the system.
    • Finished the construction of an email engine to inform system users and clients.
    • Full-stack developed stock and purchases, judicial management modules, and more.
    • Designed and implemented user interfaces, the server's back-end, and a database design.

    TECHNOLOGIES: C#, .NET 4.5 Framework, SQL Server 2012 (used as DBMS)

  • Cybersoft | Financial Billing and Payments System (Development)

    ROLE: Junior Software Engineer | Full-stack Developer

    PROJECT DETAILS: Cybersoft mainly works on projects where banks and financial companies use them as their main form of software. In general, companies do not want their accountants to have unfettered access their bank accounts so we provided a solution where accountants have limited-but-useful access to a client's bank account. This project is not hosted by bank servers. It is an external system and can connect with multiple accounts in different banks.

    WORK DONE:
    • Designed and developed a project for bank client companies to use in their billing and payments system.

    TECHNOLOGIES: Java 8, SQL Server (used as DBMS), Hibernate, Spring, ActiveMQ

  • Specto | Tunnel Event-detection System (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: Specto is an event-detection system that is installed in tunnels. It consists of cameras being placed on operators to detect and intervene in any tunnel incidents. The cameras cover the entire tunnel and it supplies real-time video stream from cameras to the system. Incidents like a pedestrian walking in the tunnel or dropping object or debris are detected by Specto and operators are informed about the incident. Specto has a main server to configure image processor servers and processes. The system is a multi-machine, multi-process, and multi-threaded system.

    WORK DONE:
    • Was responsible for the design and development of processor machines and image processor processes.
    • Helped to design the user interfaces, database, and use cases for Specto.
    • Contributed to the image-processing algorithm design. The system is written in C++ and OpenCV used for image processing.
    • Led the design and developed every aspect of Specto.

  • Project that Mimics CCTV Cameras (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: I developed a project to mimic CCTV cameras. It acts as a camera and implements ONVIF camera web services that can restream real-time videos from cameras or saved videos. The process also can be configured via HTTP commands. It is used to restream camera videos where incidents are detected. I used Wowza, Live555 and Gstreamer to restream camera feeds. It is also used in the framework to build image process algorithms.

  • Bluesis | Calculate Travel Time and Density Between Road Points (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: Bluesis calculates travel time and density between points on roads and also can integrate different types of services to notify users about the changes.

    Bluesis is made up of three main parts.
    1. Embedded devices are placed on roads or junctions. These devices collect Mac addresses of Bluetooth devices around and send it to the central server. The embedded device software is written in C++.
    2.& 3. The server has two parts. For configuration, IIS hosts the web project and a calculation engine. A calculation engine calculates travel time and the density of configured vectors using Mac addresses which are sent by embedded devices. The server system is written in C#, .NET 4.5 was used as the framework, and SQL Server used as DBMS.

    WORK DONE:
    • Was responsible for the development and design of this project.
    • Led a team of three engineers.

  • Centris | Embedded Device to Manipulate Junction Control Systems (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: Centris project is an embedded device placed on junctions to manipulate junction control systems. These systems are responsible for changing lights on junctions and with Centris, we can optimize green-light durations for junctions.

    How do we accomplish this? Centris devices are connected to a central server to inform operators about the junction status. Centris devices can be fed with different kind of sensors about junction like loop counters or density and car counter Viero cameras which ISSD produces. With that information and configuration sent by a central server which can be automated or user-defined; Centris controls JMS to optimize green-light time. This also involved are various kinds of optimization algorithms.

    WORK DONE:
    • Led a team of two engineers in the Centris project.

    TECHNOLOGIES: C++, SQLite (used as DBMS in devices)

  • Small, Lightweight HTTP Server (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: I developed a small, lightweight HTTP server written in C++ which is used in embedded devices and other projects. The HTTP server supports an MVC pattern, automated controller registration, and automated request routing. For computer vision systems, WebRTC support added to stream processes and raw streams. It was designed to make integrations with other systems via HTTP easier.

  • ASELSAN | Defense Industry Firm Work (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: I worked on this project which was outsourced to ASELSAN, a Turkish corporation that produces tactical military radios and defense electronic systems for the Turkish Armed Forces.

  • ASELSAN | Defense Industry Firm Work (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: I developed a video-streaming server using FFMpeg and GStreamer. The server can capture and serve live screenshots as well as other video sources like DirectShow.

    WORK DONE:
    • Designed and developed the project.

    TECHNOLOGIES: C++, STL, FFMpeg, DirectShow, GStreamer, OpenCV

  • CCTV Camera Embedded Video Processing (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: CCTV Camera contains CPUs and DSP chips running under embedded Linux. The project required running real-time computer vision applications on the chips inside the cameras. The CCTV manufacturer provided necessary tools for integrating algorithms within the camera ecosystem. Using these tools, I ran the CV algorithms inside the CCTV camera.

    WORK DONE:
    • Designed and developed the project.

    TECHNOLOGIES: C++, STL, OpenCV, Embedded Linux, Arm Toolchain

  • Real-time Video Processing Using Intel Movidius VPU (Development)

    ROLE: Senior Software Engineer

    PROJECT DETAILS: Deep neural networks are time-consuming to execute on embedded devices. Movidius VPUs are highly optimized for execution on these types of networks. I ran trained a DNN using Intel Movidius chips with very low CPU usage.

    WORK DONE:
    • Designed and developed the project.

    TECHNOLOGIES: C++, STL, FFMpeg, OpenCV, Intel Model Optimizer, Intel Inference Engine, TensorFlow, Linux

Skills

  • Languages

    C++, C#, Java, SQL, Python
  • Frameworks

    .NET 4, Qt, Hibernate ORM, OSGi, Boost, GStreamer, LIVE555
  • Libraries/APIs

    Standard Template Library (STL), OpenCV, ZeroMQ, TensorFlow, WebRTC
  • Tools

    Microsoft Visual Studio, Qt Creator, DBus, CMake, Qmake, Wowza, ActiveMQ, GNU Toolchain
  • Platforms

    Linux, Windows
  • Paradigms

    Concurrent Programming
  • Storage

    SQL Server 2012, SQLite
  • Other

    Video Encoding, H264, RTSP, Image Processing

Education

  • Bachelor's degree in Computer Engineering
    2005 - 2013
    METU | Middle East Technical University - Ankara, Turkey

To view more profiles

Join Toptal
Share it with others