llama.cpp, llama-xpp and pralin
pralin has had experimental support for llama.cpp since version 2. But it was hard to maintain as the llama API is moving and breaking on a regular basis. Th...
I started with Computer Vision in 2005, for my industrial PhD with Thales. I developed classical computer vision algorithms for interest point (Harris, SURF, SIFT…) matching, line segment detection, and tracking. I also worked with sensor fusion, for images and lidar data, using SLAM (Simultaneous Localization And Mapping). Those algorithms were implemented using C++ and the OpenCV library.
During the last 10 years, I have moved toward using machine learning approaches for image classification and recognition, focusing on training and adapting CNN models for special applications. Recently, I started working with NLP, and in particular Bert and Large-Language Models for interfacing humans with robots, and in particular, on the question of natural text to query. I have mainly used the PyTorch and OpenCV frameworks.
I have focused on adapting Machine Learning approaches for embedded systems, in particular, through the pralin library, implemented in C++, interfacing with PyTorch, OpenCV, PCL frameworks.
Most of my career has been spent working with embedded systems, with highly constrained computational capabilities. I have deployed algorithms on various autonomous systems: ground robots, or unmanned aerial vehicles (UAVs). I have worked with the ROS (Robot Operating System). Some of the systems, I have worked with were deployed on Raspberry PI, I have also implemented firmwares for Arduino boards, using C++.
I have more than 20 years of experience with the Qt framework. I started with the open-source drawing application krita. I worked on image processing and helped develop the GUI, in particular the brush system. In recent years, I also used the Qt framework as part of my professional work, it is used extensively in the distributed knowledge framework for the auKsys project. As part of the project, I contributed 3D visualization tools, and also a UI for browsing knowledge and control UAVs, using QML. I have also developed a shopping list synchronization application for Android/iOS for a startup.
I have contributed several Qt-related open-source components and libraries. The largest is Cyqlops, a collection of libraries with interfacing to databases, extra QML controls, MQTT… Cartography is a library with components for Qt-based GIS applications, including QML bindings for mapnik.
I have worked with SQL and Semantic Web technologies for the past 10 years, as part of our distributed knowledge framework for the auKsys project. I have developed a SPARQL engine, which includes extensions for sensor processing. I have developed algorithms for the synchronization of information between database instances. For that framework, I have also worked with PostGIS. I have also developed an open source GQL/OpenCypher based library called GQLite, and an associated UI implemented with Qt/QML.
I have developed several new and original algorithms. First, in Computer Vision, I developed algorithms for line segment detection and tracking. That work led me to develop algorithms for geometric feature matching, grounded in graph theory.
I have also worked with various optimization techniques, such as EKF filter, least square, factor graphs, CMA-ES. I have developed new approaches, for factor graphs, or specialized to solve Geographic Information Systems, such as for polygon decomposition.
For all those algorithms, I have both worked on implementation and theoretical analysis.
Over the years, I have worked with different other technologies. I have used Ruby for scripting and even started the Ruby on ROS project. I also worked with Cuda to boost the performance of some of our algorithms, in particular, for optimization algorithms.
I used Docker to set up Continuous Integration for work and personal projects. I also used Docker for deploying software, for instance, in the auKsys project.
Recently, I learned Rust, which I used for a work project, matks, which is a multi-agent tasks and knowledge simulator. This project makes extensive use of the asynchronous capabilities of Rust, relying on established frameworks such as Tokio.
pralin has had experimental support for llama.cpp since version 2. But it was hard to maintain as the llama API is moving and breaking on a regular basis. Th...
I had a little bit of fun with figlets the past few days. I came to the conclusion that they could be useful in seperating sections in Rust code. Generally, ...
Welcome to my new blog, where I will, hopefully, write about many different topics that interest me. From technology, to the environment, to carpentry, to el...