JeVois  1.20
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Modules
Here is a list of all modules:
[detail level 1234]
 Core classes and definitionsCore types, components, hardware drivers, debugging tools, etc
 Model components, parameters, manager, and associated classesThese classes define how a complex model or vision processing pipeline with user-tunable parameters can be built from components
 Parameter-related classes and functions
 String conversions for Parameter
 Specification of sets of valid values, e.g., that some Parameter may takeThis is used by ParameterDef to specify valid values that a Parameter may take as unrestricted, from a given list, in a range, matching a regex, etc
 Helper definitions for different camera sensors
 Inertial Measurement Unit (IMU) classes and functions
 Support for JeVois modules written in PythonIn addition to writing modules in C++, JeVois supports writing modules in Python. JeVois provides two-way mappings:
 Python support functionsHelpers to facilitate data transfer to/from Python
 JeVois-Pro Graphical InterfaceClasses and utilities to provide a graphical interface using Dear ImGui. Supported on JeVois-Pro only
 ICM-20948 DMP computation header fields
 Debugging helper classes, functions and macros
 Tensor/Neural Processing networksClasses and utilities to provide abstraction to deep neural networks. Provides interfacing to OpenCV backends (CPU, OpenCL), tensor processing units (TPU) such as Coral Edge TPU and neural processing units (NPU) such as Amlogic A311D NPU
 DNN-related processors written in pythonIn addition to writing DNN pre/net/post processors in C++, JeVois supports writing them in Python
 Minimalistic support for images in the core JeVois libraryThe main purpose of the classes and functions that support images is to allow handling of image buffers whose memory is mapped onto hardware (camera or USB drivers) without having to copy the data over. Many other libraries and frameworks are available that define more complete image classes and associated image processing and machine vision functions. Functions are here provided to allow you to reinterpret the raw image buffers as, e.g., OpenCV cv::Mat images without copying the image pixel data. For the purposes of creating demo displays, simple image copy, paste, drawing, text, etc into raw YUYV image buffers (which would typically be obtained from the USB driver and need to be filled with some pixel data to send over the USB link) are also provided
 Jpeg-related classes and functionsJpeg classes and functions, mainly used to support sending MJPEG video output over USB from raw uncompressed images captured by a camera
 JeVois-specific types and generic helper classesThese types and classes support the core JeVois implementation. Pay particular attention to the very useful JEVOIS_DEFINE_ENUM_CLASS(name, SEQ) macro to define new enums that can be used in Parameter to allow menu-style parameters
 Misc utilitiesMiscellaneous utility and helper functions
 Miscellaneous preprocessor utilities related to controlling compilation
 Console access utilitiesConsole-related utility and helper functions
 Helper functions to convert coordinates from camera resolution to standardizedDifferent machine vision algorithms in JeVois may be able to operate with different camera resolutions, such as 1280x1024, 320x240, or 176x144. When some item of interest is detected in the camera frame, one may often want to send the coordinates of that thing to the serial port. This poses a problem if one were to directly send the image coordinates of the item out, which is that now the receiver (e.g., an Arduino) needs to know which camera image resolution was used, so that it can properly interpret these coordinates. For example, if the visual attention (saliency) algorithm is running with 640x480 camera input, then a salient object at the center of the camera's field of view would have coordinates 320,240. But if the same saliency algorithm is configured to process 320x240 input video (so that it can run at a higher framerate), now an object at the center of the field of view would have coordinates 160,120. If one connects an Arduino that controls, for example, a pan/tilt head to JeVois, we need a way to communicate coordinates of target objects in the world independently of the video resolution used by the camera
 Name demangling functionsName demangling functions return the original name of a type as written in the source code, as opposed to the name used internally by the compiler, which is mangled to avoid name conflicts and confusions across different namespaces, overloads, and such