Technologies we apply

Percepto offers services in the intersection between mathematics, statistics, software engineering and computer science. Below is a list of technologies we commonly employ in our solutions

3D point cloud registration using PointCloudLibrary Video tracking based on optical flow using OpenCV

Open source 2D and 3D vision software

OpenCV OpenCV is a large cross-platform high quality open-source library for doing real-time computer vision in general, e.g. filtering, segmentation, classification and tracking. We can help you integrate the open source tools with other vision packages or by implementing missing functionality.
Point Cloud Library (PCL) Point Cloud Library (PCL) is a standalone open-source framework including numerous state of the art algorithms for n-dimensional point clouds and 3D geometry processing. The library contains algorithms for filtering, feature estimation, surface reconstruction, registration, model fitting, and segmentation. Percepto both uses and contributes to the excellent open source library.

Commercial vision and data analysis libraries

MVTec Halcon MVTec Halcon is a comprehensive standard software package for machine vision with an integrated development environment (IDE) that is used worldwide. If you are not getting the most of the many Halcon tools or are you having problems integrating them with your own application, we can help you.
Cognex Vision Pro Cognex Vision Pro is a widely used commercial vision package for 2D and 3D measurement and analysis. Do you need help tweaking your PatMax or OcvMax algorithm or do you need help integrating the tools in your .NET application?
Intel MKL and IPP Intel MKL and Intel IPP. MKL (Math Kernel Library) is a library of optimized math routines for science, engineering, and financial applications. IPP (Integrated Performance Primitives) is a multi-threaded high performance software library of functions for multimedia and data processing applications. If you are lost in the many possibilities in the frameworks for e.g. multimedia encoding or image analysis, we can help you with implementation and explanation.

Commercial application and data analysis frameworks

MathWorks MATLAB MathWorks MATLAB (matrix laboratory) is a numerical computing environment and fourth-generation programming language developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, and Fortran. We have a large experience with prototyping and developing vision and data analysis applications in Matlab.
NI LabVIEW NI LabVIEW (Laboratory Virtual Instrument Engineering Workbench) is a system-design platform and development environment for a visual programming language from National Instruments. We have experience in developing vision application in the graphical language named "G".

Programming languages

C++ C++ is a programming language that is general purpose, statically typed, free-form, multi-paradigm and compiled. It is our primary weapon of choice due to portability, flexibility and performance. If you need to utilize the latest features in the C++11 standard we can also help you.
Python Python is a widely used general-purpose, high-level programming language with a design philosophy that emphasizes code readability. We use Python for prototypes and test code, as it allows very rapid development. We can also help you with integration of commercial vision packages with Python.

GUI frameworks

.NET Framework .NET Framework is a software framework developed by Microsoft that runs primarily on Microsoft Windows. We have a vast experience in programming .NET applications in C# and VB.NET and know a lot about interfacing the managed .NET world and the native C++ world for integrating flexible GUI development with high performance native code.
QT framework QT framework is a cross-platform application framework that is widely used for developing application software with a graphical user interface, and also used for developing non-GUI programs such as command-line tools and consoles for servers. If you require a cross-platform GUI for your vision system, that is deploy-able to both Windows and Linux but also embedded systems and mobile phones, the QT framework is a great choice. We can help you get started or extend your current QT application.

Database technologies

If your application requires a relational database for storing information, we have experience with the following.
PostgreSQL PostgreSQL is an open source object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance. It is the most advanced open source database and is our preferred database choice for new applications.
MySQL MySQL is the world's most widely used open-source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. We can help you with existing MySQL installations, and how to migrate to PostgreSQL.
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft Inc. The Microsoft SQL server integrates well with the rest of the Microsoft ecosystem, e.g. .NET applications. The SQL Server Express is a freely available version for embedded and small-scale applications.
SQLLite SQLLite is a file-based relational database management system. In contrast to other database management systems, SQLite is not a separate process that is accessed from the client application, but an integral part of it. SQLite is a popular choice as embedded database for local/client storage in application software such as web browsers.

Parallelization technologies

OpenCL OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs) and other processors.
CUDA CUDA (Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. Many vision and data analysis problems are well-suited for running on the GPU due to their parallel nature.
Intel TBB Intel TBB (Threading Building Blocks) is a C++ template library developed by Intel Corporation for writing software programs that take advantage of multi-core processors. The library consists of data structures and algorithms that allow a programmer to avoid some complications arising from the use of native threading packages.
OpenMP OpenMP (Open Multi-Processing) is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran.
© Copyright Percepto 2013 Valid HTML5!