"Simplicity is the ultimate sophistication" - Leonardo da Vinci (attributed)
A Simple Image Processing Artificial Intelligence, by Dams.
SIPAI is a neural network that builds upon my previous SMLP project. Its initial focus is on image enhancement, with plans for future releases to incorporate additional features such as image anomaly detection and more.
It uses a Multi-Layer Perceptron (MLP) architecture, with a modification that incorporates elements of a Recurrent Neural Network (RNN) to handle spatial information.
WARNING : project still under early development...
WARNING : Vulkan feature is very experimental, and is currently limited to one hidden layer (in addition to the input and the output layers)
Requirements for compiling the source code:
- A C++20 compiler (like the GNU C++
g++-12
on Linux or Visual Studio and its compiler on Windows) - The OpenCV library, v4.10.0 recommended.
If using OpenCV with Vulkan: enable OpenGL support, edit the OpenCV CMakelists.txt:
OCV_OPTION(WITH_OPENGL "Include OpenGL support" ON
VISIBLE_IF TRUE
VERIFY HAVE_OPENGL)
and rebuild its libs. - The Intel TBB library (for OpenCV)
- The Vulkan SDK library (on Debian:
sudo apt-get -y install libvulkan1 libvulkan-dev mesa-vulkan-drivers vulkan-tools
, on Windows: https://vulkan.lunarg.com/sdk/home#windows). - The GLSL tools to use with Vulkan (on Debian:
sudo apt-get -y install glslang-tools spirv-tools
) - CMake
- The Qt6 libraries for the GUI version (on Debian:
sudo apt-get -y install qt6-base-dev libqt6svg6 qt6-svg-dev
). - on Windows:
- OpenCV: check how to update the system path for OpenCV. Also you may build OpenCV from its sources, if it doesn't match your config, then after build the Release and the Debug libs, update your system path (%OPENCV_DIR%\bin\Release %OPENCV_DIR%\bin\Debug).
- Image Encoding: ensure that your image names are encoded in a format compatible with your system (for example, ASCII). Alternatively, you can install Unicode UTF-8 on your system for broader compatibilit .
- Vulkan SDK Installation: after installing the Vulkan SDK, make sure to log out and log back in. This step is necessary to update the system paths.
- Qt6 Installation: ensure to have set the environment path to the
msvc2022_64\bin
ormingw_64\bin
folder (be sure to select the right compilers in the installer) of your installation and re-login. - VSCode - Intellisense: in the VSCode
C/C++ Configurations
, inInclude path
settings, add include paths for your VulkanSDK and opencv Includes, for example:
${workspaceFolder}/** C:/Libs/VulkanSDK/1.3.296.0/Include/** C:/Libs/opencv-4.10.0/include/** C:/Libs/opencv-4.10.0/build/** C:/Libs/opencv-4.10.0/modules/**
- Environments: also be sure to have the same environments for all the libs used (x64, Debug, msvc...)
- on a Windows WSL Linux, be sure to use WSL 2 or better and to have enabled the GPU acceleration: after a
sudo apt-get install mesa-utils
the commandglxinfo | grep -i opengl
should show a line likeOpenGL renderer string: D3D12 (the 3D card)
. You should have a/dev/dxg
device link as well.
Click here to see the changelog.