JeVois  1.12
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Changes and new features in JeVois 1.12

JeVois 1.12 brings the following new features:

  • Bumped to OpenCV 4.0.1, with all contrib modules including deep neural networks (DNN) and non-free.
  • New mobilenet_v2_1.0_224_quant available in TensorFlowEasy, a quantized MobileNet V2 with high accuracy.
  • More support for MacOS Mojave in jevois-inventor
  • Added support for ov2640 1600x1200 sensor: This sensor supports: YUYV, BAYER, RGB565 and

    • UXGA (1600 x 1200): up to 15 fps
    • SXGA (1280 x 1024): up to 15 fps
    • 720p (1280 x 720): up to 15 fps
    • XGA (1024 x 768): up to 15 fps
    • SVGA ( 800 x 600): up to 40 fps
    • VGA ( 640 x 480): up to 40 fps
    • CIF ( 352 x 288): up to 60 fps
    • QVGA ( 320 x 240): up to 60 fps
    • QCIF ( 176 x 144): up to 60 fps
    • QQVGA ( 160 x 120): up to 60 fps
    • QQCIF ( 88 x 72): up to 60 fps

    But note that USB 2.0 bandwidth limitations (up to 24 Mbyte/s of video data) may limit framerates when streaming video over USB.

  • New module PyEmotion recognizes facial emotions in Python using FER+ ONNX deep neural net in OpenCV.
  • New enhanced support for ICM-20948 inertial measurement unit chip. The JeVois ICM20948 driver communicates with a kernel-side driver that is integrated with the camera sensor driver on some optional JeVois sensors only. Currently, only the OnSemi (Aptina) AR0135 global shutter optional camera sensor is equipped with an IMU.

    See new modules DemoIMU and DemoDMP, and see Camera sensor options.

    The specifications of this chip are quite impressive:

    • 3-axis 16-bit accelerometer with full-range sensitivity selectable to +/-2g, +/-4g, +/-8g, and +/-16g.
    • Accelerometer data rate from 4 Hz to 1125 Hz.
    • 3-axis 16-bit gyroscope with full-range sensitivity selectable to +/-250dps (degrees/s), +/-500dps, +/-1000dps, and +/-2000dps.
    • Gyroscope data rate from 4 Hz to 1125 Hz.
    • 3-axis 16-bit magnetometer (compass) with wide range of +/-4900uT (micro Tesla).
    • Magnetometer data rates 10 Hz, 20 Hz, 50 Hz, or 100 Hz.
    • 16-bit temperature sensor with readout rate of up to 8 kHz.
    • RAW data mode (get current sensor values at any time), buffered (FIFO) data mode (sensor values accumulate into a FIFO at a fixed rate), and digital motion processing mode (DMP; raw data is processed on-chip).
    • On-chip digital motion processor (DMP) can compute, inside the IMU chip itself:
      • quaternion 6 (uses accel + gyro),
      • quaternion 9 (uses accel + gyro + compass),
      • geomag quaternion (uses accel + compass),
      • flip/pickup detection,
      • step detection and counting,
      • basic activity recognition: drive, walk, run, bike, tilt, still.

    With quaternions computed on-chip, with an algorithm that gets sensor data at a highly accurate, fixed rate, and applies various calibrations, drift corrections, and compensations on the fly, one gets highly accurate real-time estimate of the sensor's pose in the 3D world and of how it is moving.

    Note that communication with the IMU is over a 400kHz I2C bus, which may limit data readout rate depending on which data is requested from the IMU.

    This IMU has 3 basic modes of operation (parameter mode which can only be set in params.cfg):

    • RAW: One can access the latest raw sensor data at any time using the getRaw() or get() functions. This is the simplest mode of operation. One disadvantage is that if you are not calling get() at a perfectly regular interval, there will be some time jitter in your readouts. The IMU does not provide any time stamps for its data.
    • FIFO: In this mode, data from the sensor is piled up into a 1 kbyte FIFO buffer at a precise, constant rate (when all three of accelerometer, gyroscope, and magnetometer are on, the gyro rate determines the FIFO buffering rate). Main advantage is that you can then read out the data without having to worry about calling getRaw() or get() at a highly precise interval. But you need to be careful that the FIFO can fill up and overflow very quickly when using high sensor data rates.
    • DMP: In this mode, data is captured from the sensor at an accurate, fixed rate, and is fed to the on-chip digital motion processor (DMP). The DMP then computes quaternions, activity recognition, etc and pushes data packets into the FIFO as results from these algorithms become available.
  • New jevoisextra module YOLO Light runs AlexeyAB's yolo2_light with support for INT8 and XNOR inference. However, we only have INT8 models so far, and they run about twice slower than with the darknet-nnpack implementation of YOLO, or the OpenCV implementation. It is hence unclear whether the XNOR inference will really provide a big speed boost.