├── JeVois.py ├── PRECISION_LANDING_SETUP.jpg ├── Precision_Landing_Jevois.py ├── README.md ├── initscript.cfg ├── params.cfg └── videomappings.cfg /JeVois.py: -------------------------------------------------------------------------------- 1 | 2 | import serial 3 | import string 4 | 5 | 6 | class JeVois(object): 7 | 8 | def __init__(self): 9 | self.ser = serial.Serial(port='/dev/ttyAMA0',baudrate=9600, timeout = 0.2) 10 | 11 | def balloon_xysize(self): 12 | balloon_found = False 13 | balloon_x = 0 14 | balloon_y = 0 15 | balloon_radius = 0 16 | ID = 0 17 | DATA = 0 18 | 19 | 20 | 21 | line = self.ser.readline() 22 | #print line 23 | words = string.split(line , " ") # Fields split 24 | if len(words) > 2: 25 | if str (words [0]) == "ArUco": 26 | ID = int (words [1]) 27 | DATA = str (words [2]) 28 | position = string.split(DATA , ",") 29 | balloon_x = int (position [0]) 30 | balloon_y = int (position [1]) 31 | balloon_found = True 32 | else: 33 | pass 34 | 35 | # Waiting for JeVois on how to pass W & H 36 | #print ID 37 | balloon_radius = ID 38 | 39 | #print balloon_found, balloon_x, balloon_y, balloon_radius 40 | 41 | self.ser.close 42 | #print "closed" 43 | return balloon_found, balloon_x, balloon_y, balloon_radius 44 | 45 | 46 | # main - tests the Openmv class 47 | def main(self): 48 | while True: 49 | self.balloon_xysize() 50 | 51 | 52 | 53 | # create the global balloon_finder object 54 | JeVois = JeVois() 55 | 56 | # run a test if this file is being invoked directly from the command line 57 | if __name__ == "__main__": 58 | JeVois.main() 59 | -------------------------------------------------------------------------------- /PRECISION_LANDING_SETUP.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickpoirier51/JeVois--Python-Tracking/8e3a4fa370a2c15db1c809ef092369b1ac534fa3/PRECISION_LANDING_SETUP.jpg -------------------------------------------------------------------------------- /Precision_Landing_Jevois.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | import math 3 | import numpy as np 4 | from dronekit import connect, VehicleMode, LocationGlobal, LocationGlobalRelative 5 | from pymavlink import mavutil 6 | from JeVois import JeVois 7 | 8 | #camera 9 | horizontal_fov = 70.2 * math.pi/180 10 | vertical_fov = 43.3 * math.pi/180 11 | horizontal_resolution = 320 12 | vertical_resolution = 240 13 | 14 | #Real Time Moving Average of the TAG ID 15 | readings = np.array([]) 16 | z = 17 17 | max_samples = 4 18 | Ratio = 13 # This is the ratio of the Aruco Tags ID to switch Tracking 19 | x=0 20 | y=0 21 | 22 | vehicle = connect('/dev/ttyUSB0', baud = 57600) 23 | #vehicle = connect('tcp:192.168.2.18:5763',wait_ready=True) 24 | #vehicle = connect('udp:0.0.0.0:14550' ,wait_ready=True) 25 | 26 | 27 | # Define function to send landing_target mavlink message for mavlink based precision landing 28 | # http://mavlink.org/messages/common#LANDING_TARGET 29 | def send_land_message(x,y,z): 30 | msg = vehicle.message_factory.landing_target_encode( 31 | 0, # time since system boot, not used 32 | 0, # target num, not used 33 | mavutil.mavlink.MAV_FRAME_BODY_NED, # frame, not used 34 | (x-horizontal_resolution/2)*horizontal_fov/horizontal_resolution, 35 | (y-vertical_resolution/2)*vertical_fov/vertical_resolution, 36 | z, # distance, in meters 37 | 0, # Target x-axis size, in radians 38 | 0 # Target y-axis size, in radians 39 | ) 40 | 41 | 42 | vehicle.send_mavlink(msg) 43 | vehicle.flush() 44 | 45 | while(1): 46 | found, h, v, z = JeVois.balloon_xysize() 47 | if not found == 0: 48 | 49 | readings = np.append(readings, z) 50 | avg = np.mean(readings) 51 | #print 'current average =', avg 52 | #print 'readings used for average:', readings 53 | 54 | if len(readings) == max_samples: 55 | readings = np.delete(readings, 0) 56 | 57 | if (avg > Ratio) and (z == 17): 58 | x = int(h+1650)/10 59 | y = int(v+750)/6 60 | #print z,x,y 61 | send_land_message(x,y,z) 62 | 63 | if (avg <= Ratio) and (z == 8): 64 | x = int(h+1650)/10 65 | y = int(v+750)/6 66 | #print z, x,y 67 | send_land_message(x,y,z) 68 | 69 | 70 | else: 71 | pass 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JeVois--Python-Tracking 2 | Python Scripting to read Jevois XY and transmit over Mavling Precision_Landing Messages 3 | 4 | This is a set of scripts to control an ArduPilot based quadcopter to track Aruco Codes using JeVois smart camera 5 | 6 | JeVois.py: Reads Jevois serial x-y signal from serial.Serial(port='/dev/ttyAMA0',baudrate=9600, timeout = 0.2) and outputs as Found, X , Y and Tag Code (The balloon reference to the opentracker code, where it has been copied) 7 | 8 | Precision_Landing_Jevois.py: Take the x-y coordinates, calibrate and adjust gain and transmit to vehicle = connect('/dev/ttyUSB0', baud = 57600), using a USB-Serial FDTI converter. 9 | 10 | On the Flight controler, you need to read mavlink message @ 57600 bauds and have precision_landing enabled http://ardupilot.org/copter/docs/precision-landing-with-irlock.html 11 | 12 | On the Jevois , you need to configure https://github.com/patrickpoirier51/JeVois--Python-Tracking/blob/master/initscript.cfg#L21 13 | Add the associated video mapping https://github.com/patrickpoirier51/JeVois--Python-Tracking/blob/master/videomappings.cfg#L281 14 | 15 | You need to power the camera with 5V Min 3Amps on a Mini-Usb Connector 16 | Read the signal using the JST connector (Ground - Tx Data) 17 | 18 | 19 | -------------------------------------------------------------------------------- /initscript.cfg: -------------------------------------------------------------------------------- 1 | # JeVois initialization script 2 | # 3 | # This script is run upon statup of the JeVois main engine. You can here specify commands (like you would type them to 4 | # the JeVois command-line interface) to execute upon startup, even before a module is loaded. 5 | 6 | # Example: load the SaveVideo with no USB out module (check its mapping index, it was 0 at the time of writing this), 7 | # start streaming, and start saving: 8 | #setmapping 0 9 | #setpar serlog Hard 10 | #setpar serout Hard 11 | #streamon 12 | #start 13 | 14 | 15 | 16 | #Start Onject Tracker 17 | #setmapping2 YUYV 320 240 60.0 JeVois ObjectTracker 18 | #setmapping2 YUYV 320 240 30.0 JeVois ObjectTracker 19 | #streamon 20 | 21 | #START ARUCOTRACKER 22 | #setmapping2 YUYV 640 480 30.0 JeVois DemoArUco 23 | setmapping2 YUYV 1280 1024 15.0 JeVois DemoArUco 24 | setpar serout Hard 25 | setpar showpose false 26 | setpar serstyle 1 27 | streamon 28 | 29 | -------------------------------------------------------------------------------- /params.cfg: -------------------------------------------------------------------------------- 1 | # Global parameters for the JeVois Engine 2 | 3 | # Set camturbo to true for faster memory access to camera frames. This turns off some cache coherency and significantly 4 | # accelerates access to the video buffers from the CPU side. Beware, however, that in some cases the image may be 5 | # partially garbled, with some small stripes that basically are cache lines that contain garbage. This typically happens 6 | # with the PassThrough module. In our experience, however, most other modules benefit from the turbo mode without any 7 | # cache coherency issues. You need to experiment with each particular module to check whether the image captured by the 8 | # cemara seems garbled. Turbo mode is not recommended for production-grade operation as there is no guarantee that the 9 | # captured image will indeed always be clean. 10 | camturbo=true 11 | 12 | # Hardware serial port settings when connecting it to BlueFruit BLE for piping over bluetooth 13 | serialdev=/dev/ttyS0 14 | serial:baudrate=9600 15 | serial:linestyle=Sloppy 16 | 17 | 18 | -------------------------------------------------------------------------------- /videomappings.cfg: -------------------------------------------------------------------------------- 1 | ###################################################################################################################### 2 | # 3 | # JeVois Smart Embedded Machine Vision Toolkit - Copyright (C) 2016 by Laurent Itti, the University of Southern 4 | # California (USC), and iLab at USC. See http://iLab.usc.edu and http://jevois.org for information about this project. 5 | # 6 | # This file is part of the JeVois Smart Embedded Machine Vision Toolkit. This program is free software; you can 7 | # redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software 8 | # Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | # without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 10 | # License for more details. You should have received a copy of the GNU General Public License along with this program; 11 | # if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 12 | # 13 | # Contact information: Laurent Itti - 3641 Watt Way, HNB-07A - Los Angeles, CA 90089-2520 - USA. 14 | # Tel: +1 213 740 3527 - itti@pollux.usc.edu - http://iLab.usc.edu - http://jevois.org 15 | ###################################################################################################################### 16 | # 17 | # JeVois smart camera operation modes and video mappings 18 | # 19 | # Format is: [*] 20 | # 21 | # CamMode can be only one of: YUYV, BAYER, RGB565 22 | # USBmode can be only one of: YUYV, GREY, MJPG, BAYER, RGB565, BGR24, NONE 23 | 24 | # USB to camera mode mappings (when USBmode is not NONE) are organized according to output format, which should be 25 | # unique (no two entries in this file should have same USBmode/USBwidth/USBheight/USBfps). Indeed, these modes can only 26 | # be selected by the host computer's video grabbing software, and they are selected by picking an output format in that 27 | # software. These modes cannot be chosen by the JeVois system itself. For these modes, the Module's process(inframe, 28 | # outframe) function will be called on every frame. 29 | 30 | # Camera-only modes (when USBmode is NONE) mode mappings have no video output over USB, and are selected by interacting 31 | # with the JeVois hardware over serial ports. When USBmode is NONE, USBwidth, USBHeight, and USBfps are ignored and 32 | # should be set to 0 here. For these modes, the Module's process(inframe) function will be called on every frame. These 33 | # modes are usually the ones you would use when interfacing the JeVois camera to an Arduino or similar system that 34 | # cannot stream video over USB and will just receive data from the JeVois camera over a serial port. 35 | 36 | # The optional * at the end of one line indicates the format that should be the default one announced by the device to 37 | # the USB host. This is the one that most webcam programs will select by default when you start them. Note that the 38 | # guvcview program on linux seems to ignore this and to instead select the last mode you had selected the last time you 39 | # used the camera. This * cannot be on a mapping that has NONE USBmode. There should be only one * in the whole file. 40 | 41 | # Model JeVois-A33 camera sensor supported resolutions and frame rates: 42 | # 43 | # SXGA (1280 x 1024): up to 15 fps 44 | # VGA ( 640 x 480): up to 30 fps 45 | # CIF ( 352 x 288): up to 60 fps 46 | # QVGA ( 320 x 240): up to 60 fps 47 | # QCIF ( 176 x 144): up to 120 fps 48 | # QQVGA ( 160 x 120): up to 60 fps 49 | # QQCIF ( 88 x 72): up to 120 fps 50 | 51 | # Frame rates can be set to any value from 0.1fps to the maximum supported for the selected resolution. This is very 52 | # useful to avoid dropping frames. For example if you have an algorithm that runs at 26.3fps after all possible 53 | # optimizations, you can set the camera (and usb) frame rate to 26.3 and you will not drop frames (unless your algorithm 54 | # momentarily performs slower, hence adding a small margin may be a good idea, e.g., select 26.1fps camera and usb 55 | # rates). This is better than setting the frame rate to 30.0 as this would mean that every so often you would miss the 56 | # next camera frame and then have to wait for the next one to be captured. If your algorithm really runs at 26.3fps but 57 | # you specify 30.0fps camera frame rate, then the frames will actually end up being pumped to USB at only 15.0fps (i.e., 58 | # by the time you finish processing the current frame, you have missed the next one from the camera, and you need to 59 | # wait for the following one). 60 | 61 | # Note on USB transfer rate: the maximum actual pixel data transfer rate is 3070*8000 = 23.9 Mbytes/s (which is 3kb/USB 62 | # microframe, max "high bandwidth" setting). Although USB 2.0 has a maximum theoretical rate of 480 Mbit/s, this 63 | # includes protocol overhead and not all of the bandwidth is available for isochronous (real-time stream) transfers, 64 | # which we use. This means that SXGA YUYV (2 bytes/pixel) can only transfer at a max rate of ~9.3 fps over the USB 65 | # link, although the camera can grab SXGA YUYV at 15 fps. SXGA in Bayer can achieve 15 fps transfer over USB since it 66 | # only uses 1 byte/pixel. 67 | 68 | # To test various video formats on a Linux host, the best is usually to use guvcview. However, this has two issues: 1) 69 | # it adds some formats which we do not natively support, like RGB3, YU12, YV12, etc, probably by doing some pixel 70 | # conversion internally over the actual supported modes; 2) support for RGB565 seems brittle, guvcview often crashes 71 | # when changing resolutions in RGB565 (called RGBP for RGB Packed). 72 | # 73 | # Hence, you may want to also try ffplay from the ffmpeg project, which can display all our supported modes and will 74 | # reject a mode if it does not exactly match what the hardware supports. Example: 75 | # 76 | # ffplay /dev/video0 -pixel_format yuyv422 -video_size 640x480 77 | # 78 | # The pixel_format values are: 'yuyv422' for YUYV, 'gray' for GRAY, 'rgb565' for RGB565, 'mjpeg' for MJPG, 'bgr24' for 79 | # BGR24, and 'bayer_rggb8' for BAYER. You can run 'ffplay -pix_fmts' to see the list of pixel formats that ffplay 80 | # supports. 81 | # 82 | # Here is another example where we record the output of JeVois to a file: 83 | # 84 | # ffmpeg -f v4l2 -pixel_format rgb565 -video_size 320x240 -framerate 22 -i /dev/video0 output.mp4 85 | 86 | # On Mac OSX, we recommend using the CamTwist app, as described in the JeVois documentation. You can also use ffplay for 87 | # OSX: Download the pre-compiled ffplay binary from the ffmpeg web site, and then run: 88 | # 89 | # ~/bin/ffplay -f avfoundation -i "JeVois" -video_size 640x300 -framerate 60 -pixel_format yuyv422 90 | # 91 | # (assuming you saved ffplay into your ~/bin/ directory). 92 | 93 | # Mac compatibility notes: The JeVois smart camera is correctly detected on Macs and works with PhotoBooth as long as: 94 | # 1) you have a mapping that outputs YUYV 640x480 (this is the one that PhotoBooth will select (at least on recent OSX 95 | # like El Capitan, etc); beware that it will also flip the image horizontally); 2) you have no active (not 96 | # commented-out) mapping with BAYER, RGB565, or BGR24 output. If you have any un-commented mapping with BAYER, RGB565, 97 | # or BGR24 in your videomappings.cfg, your JeVois smart camera will still be detected by your Mac, PhotoBooth will start 98 | # and try to use the camera, but it will only display a black screen. Our guess is that this is a bug in the Mac camera 99 | # driver. It is ok to have additional mappings with YUYV output, as well as mappings with MJPG or GREY output. 100 | 101 | #################################################################################################### 102 | ### Pass-through and simple pixel format conversion modes: 103 | #################################################################################################### 104 | 105 | #BAYER 640 480 26.8 YUYV 640 480 26.8 JeVois Convert 106 | #BGR24 640 480 26.8 YUYV 640 480 26.8 JeVois Convert 107 | GREY 640 480 26.8 YUYV 640 480 26.8 JeVois Convert 108 | #RGB565 640 480 26.8 YUYV 640 480 26.8 JeVois Convert 109 | 110 | #MJPG 640 480 20.0 YUYV 640 480 20.0 JeVois Convert 111 | MJPG 352 288 60.0 BAYER 352 288 60.0 JeVois Convert 112 | MJPG 320 240 30.0 RGB565 320 240 30.0 JeVois Convert 113 | MJPG 320 240 15.0 YUYV 320 240 15.0 JeVois Convert 114 | MJPG 320 240 60.0 RGB565 320 240 60.0 JeVois Convert 115 | MJPG 176 144 120.0 BAYER 176 144 120.0 JeVois Convert 116 | MJPG 160 120 60.0 YUYV 160 120 60.0 JeVois Convert 117 | MJPG 88 72 120.0 RGB565 88 72 120.0 JeVois Convert 118 | 119 | #BAYER 1280 1024 15.0 BAYER 1280 1024 15.0 JeVois PassThrough 120 | #BAYER 640 480 30.0 BAYER 640 480 30.0 JeVois PassThrough 121 | #BAYER 352 288 60.0 BAYER 352 288 60.0 JeVois PassThrough 122 | #BAYER 320 240 60.0 BAYER 320 240 60.0 JeVois PassThrough 123 | #BAYER 176 144 120.0 BAYER 176 144 120.0 JeVois PassThrough 124 | #BAYER 160 120 60.0 BAYER 160 120 60.0 JeVois PassThrough 125 | #BAYER 88 72 120.0 BAYER 88 72 120.0 JeVois PassThrough 126 | 127 | #RGB565 1280 1024 15.0 RGB565 1280 1024 15.0 JeVois PassThrough 128 | #RGB565 640 480 30.0 RGB565 640 480 30.0 JeVois PassThrough 129 | #RGB565 320 240 60.0 RGB565 320 240 60.0 JeVois PassThrough 130 | #RGB565 176 144 120.0 RGB565 176 144 120.0 JeVois PassThrough 131 | #RGB565 160 120 60.0 RGB565 160 120 60.0 JeVois PassThrough 132 | #RGB565 88 72 120.0 RGB565 88 72 120.0 JeVois PassThrough 133 | 134 | YUYV 1280 1024 7.5 YUYV 1280 1024 7.5 JeVois PassThrough 135 | #YUYV 640 480 30.0 YUYV 640 480 30.0 JeVois SaveVideo 136 | YUYV 640 480 19.6 YUYV 640 480 19.6 JeVois PassThrough 137 | #YUYV 640 480 12.0 YUYV 640 480 12.0 JeVois PassThrough 138 | #YUYV 640 480 8.3 YUYV 640 480 8.3 JeVois PassThrough 139 | #YUYV 640 480 7.5 YUYV 640 480 7.5 JeVois PassThrough 140 | #YUYV 640 480 5.5 YUYV 640 480 5.5 JeVois PassThrough 141 | 142 | YUYV 320 240 60.0 YUYV 320 240 60.0 JeVois SaveVideo 143 | #YUYV 320 240 30.0 YUYV 320 240 30.0 JeVois SaveVideo 144 | #YUYV 320 240 15.0 YUYV 320 240 15.0 JeVois SaveVideo 145 | 146 | YUYV 160 120 60.0 YUYV 160 120 60.0 JeVois SaveVideo 147 | #YUYV 160 120 30.0 YUYV 160 120 30.0 JeVois PassThrough 148 | 149 | #YUYV 352 288 60.0 YUYV 352 288 60.0 JeVois SaveVideo 150 | #YUYV 352 288 30.0 YUYV 352 288 30.0 JeVois PassThrough 151 | 152 | YUYV 176 144 120.0 YUYV 176 144 120.0 JeVois SaveVideo 153 | #YUYV 176 144 60.0 YUYV 176 144 60.0 JeVois PassThrough 154 | #YUYV 176 144 30.0 YUYV 176 144 30.0 JeVois PassThrough 155 | 156 | YUYV 88 72 120.0 YUYV 88 72 120.0 JeVois SaveVideo 157 | #YUYV 88 72 60.0 YUYV 88 72 60.0 JeVois PassThrough 158 | #YUYV 88 72 30.0 YUYV 88 72 30.0 JeVois PassThrough 159 | 160 | #################################################################################################### 161 | ### Save video to disk, no preview over USB 162 | #################################################################################################### 163 | 164 | NONE 0 0 0 YUYV 320 240 60.0 JeVois SaveVideo 165 | NONE 0 0 0 YUYV 320 240 30.0 JeVois SaveVideo 166 | NONE 0 0 0 YUYV 176 144 120.0 JeVois SaveVideo 167 | 168 | #################################################################################################### 169 | ### Demo: Saliency + gist + face detection + object recognition 170 | #################################################################################################### 171 | 172 | YUYV 640 312 50.0 YUYV 320 240 50.0 JeVois DemoSalGistFaceObj 173 | 174 | #################################################################################################### 175 | ### Demo: JeVois intro movie, then Saliency + gist + face detection + object recognition 176 | #################################################################################################### 177 | 178 | YUYV 640 360 30.0 YUYV 320 240 30.0 JeVois JeVoisIntro 179 | #YUYV 640 480 30.0 YUYV 320 240 30.0 JeVois JeVoisIntro 180 | 181 | #################################################################################################### 182 | ### Demo: Saliency and gist 183 | #################################################################################################### 184 | 185 | #YUYV 176 90 120.0 YUYV 88 72 120.0 JeVois DemoSaliency 186 | #YUYV 320 150 60.0 YUYV 160 120 60.0 JeVois DemoSaliency 187 | #YUYV 352 180 120.0 YUYV 176 144 120.0 JeVois DemoSaliency 188 | #YUYV 352 180 100.0 YUYV 176 144 100.0 JeVois DemoSaliency 189 | YUYV 640 300 60.0 YUYV 320 240 60.0 JeVois DemoSaliency * 190 | #YUYV 704 360 30.0 YUYV 352 288 30.0 JeVois DemoSaliency 191 | #YUYV 1280 600 15.0 YUYV 640 480 15.0 JeVois DemoSaliency 192 | 193 | #################################################################################################### 194 | ### Production: Saliency and gist 195 | #################################################################################################### 196 | 197 | # saliency + feature maps + gist 198 | #GREY 120 25 60.0 YUYV 320 240 60.0 JeVois SaliencyGist 199 | 200 | # saliency + feature maps 201 | #GREY 120 15 60.0 YUYV 320 240 60.0 JeVois SaliencyGist 202 | 203 | # saliency + gist 204 | #GREY 20 73 60.0 YUYV 320 240 60.0 JeVois SaliencyGist 205 | 206 | # saliency only 207 | #GREY 20 15 60.0 YUYV 320 240 60.0 JeVois SaliencyGist 208 | 209 | # gist only 210 | #GREY 72 16 60.0 YUYV 320 240 60.0 JeVois SaliencyGist 211 | 212 | #################################################################################################### 213 | ### Demo: Background subtraction 214 | #################################################################################################### 215 | 216 | #YUYV 640 240 15.0 YUYV 320 240 15.0 JeVois DemoBackgroundSubtract 217 | YUYV 320 120 30.0 YUYV 160 120 30.0 JeVois DemoBackgroundSubtract 218 | 219 | #################################################################################################### 220 | ### Demo: QR-code and barcode detection and decoding 221 | #################################################################################################### 222 | 223 | #YUYV 640 526 15.0 YUYV 640 480 15.0 JeVois DemoQRcode 224 | YUYV 320 286 30.0 YUYV 320 240 30.0 JeVois DemoQRcode 225 | #NONE 0 0 0 YUYV 640 480 15.0 JeVois DemoQRcode 226 | #NONE 0 0 0 YUYV 320 240 30.0 JeVois DemoQRcode 227 | 228 | #################################################################################################### 229 | ### Road following using vanishing point 230 | #################################################################################################### 231 | 232 | NONE 0 0 0 YUYV 320 240 30.0 JeVois RoadNavigation 233 | #NONE 0 0 0 YUYV 176 144 120.0 JeVois RoadNavigation 234 | YUYV 320 256 30.0 YUYV 320 240 30.0 JeVois RoadNavigation 235 | YUYV 176 160 120.0 YUYV 176 144 120.0 JeVois RoadNavigation 236 | 237 | #################################################################################################### 238 | ### Demo of ARM-Neon SIMD image processing 239 | #################################################################################################### 240 | 241 | YUYV 960 240 30.0 YUYV 320 240 30.0 JeVois DemoNeon 242 | 243 | #################################################################################################### 244 | ### Dense SIFT using VLfeat library 245 | #################################################################################################### 246 | 247 | # very slow, min keypoint step is 17 248 | #YUYV 448 240 5.0 YUYV 320 240 5.0 JeVois DenseSift 249 | 250 | # slow too, min keypoint step is 11 251 | #YUYV 288 120 5.0 YUYV 160 120 5.0 JeVois DenseSift 252 | 253 | # raw keypoints only, assuming step=11, binsize=8 254 | GREY 128 117 5.0 YUYV 160 120 5.0 JeVois DenseSift 255 | 256 | #################################################################################################### 257 | ### Salient regions 258 | #################################################################################################### 259 | 260 | YUYV 64 192 25.0 YUYV 320 240 25.0 JeVois SalientRegions 261 | #YUYV 100 400 10.0 YUYV 640 480 10.0 JeVois SalientRegions 262 | 263 | #################################################################################################### 264 | ### Superpixel image segmentation/clustering 265 | #################################################################################################### 266 | 267 | GREY 320 240 30.0 YUYV 320 240 30.0 JeVois SuperPixelSeg 268 | 269 | #################################################################################################### 270 | ### Eye tracking using the openEyes toolkit 271 | #################################################################################################### 272 | 273 | #GREY 640 480 30.0 YUYV 640 480 30.0 JeVois DemoEyeTracker 274 | #GREY 320 240 60.0 YUYV 320 240 60.0 JeVois DemoEyeTracker 275 | GREY 176 144 120.0 YUYV 176 144 120.0 JeVois DemoEyeTracker 276 | 277 | #################################################################################################### 278 | ### Demo: ArUco augmented-reality markers detection and decoding 279 | #################################################################################################### 280 | 281 | NONE 0 0 0.0 YUYV 640 480 30.0 JeVois DemoArUco 282 | NONE 0 0 0.0 YUYV 1280 1024 15.0 JeVois DemoArUco 283 | YUYV 320 260 30.0 YUYV 320 240 30.0 JeVois DemoArUco 284 | YUYV 640 500 20.0 YUYV 640 480 20.0 JeVois DemoArUco 285 | #YUYV 1280 1024 7.5 YUYV 1280 1024 7.5 JeVois DemoArUco 286 | #################################################################################################### 287 | ### Edge detection using Canny 288 | #################################################################################################### 289 | GREY 1280 1024 15.0 YUYV 1280 1024 15.0 JeVois EdgeDetection 290 | GREY 640 480 29.0 YUYV 640 480 29.0 JeVois EdgeDetection 291 | GREY 320 240 59.0 YUYV 320 240 59.0 JeVois EdgeDetection 292 | #GREY 176 144 119.0 YUYV 176 144 119.0 JeVois EdgeDetection 293 | 294 | #################################################################################################### 295 | ### Edge detection using 4 Canny filters in parallel, with different settings 296 | #################################################################################################### 297 | 298 | GREY 320 960 45.0 YUYV 320 240 45.0 JeVois EdgeDetectionX4 299 | 300 | #################################################################################################### 301 | ### Color-based object tracker 302 | #################################################################################################### 303 | 304 | NONE 0 0 0.0 YUYV 320 240 60.0 JeVois ObjectTracker 305 | #YUYV 320 254 60.0 YUYV 320 240 60.0 JeVois ObjectTracker 306 | #PAPOUMOD 307 | YUYV 320 254 30.0 YUYV 320 240 30.0 JeVois ObjectTracker 308 | 309 | #################################################################################################### 310 | ### GPU color image processing demo 311 | #################################################################################################### 312 | 313 | #RGB565 320 240 22.0 YUYV 320 240 22.0 JeVois DemoGPU 314 | 315 | #################################################################################################### 316 | ### Combo CPU multithreaded saliency/gist + 4x GPU grayscale image processing demo 317 | #################################################################################################### 318 | 319 | GREY 160 495 60.0 YUYV 160 120 60.0 JeVois DemoCPUGPU 320 | 321 | #################################################################################################### 322 | ### Fast optical flow computation 323 | #################################################################################################### 324 | 325 | GREY 176 288 100 YUYV 176 144 100 JeVois OpticalFlow 326 | 327 | #################################################################################################### 328 | ### Object detection using SURF keypoints 329 | #################################################################################################### 330 | 331 | YUYV 320 252 30.0 YUYV 320 240 30.0 JeVois ObjectDetect 332 | 333 | #################################################################################################### 334 | ### Salient region detection and identification using SURF keypoints 335 | #################################################################################################### 336 | 337 | YUYV 320 288 30.0 YUYV 320 240 30.0 JeVois SaliencySURF 338 | 339 | #################################################################################################### 340 | ### CPU + GPU + NEON burn test 341 | #################################################################################################### 342 | 343 | YUYV 640 300 10.0 YUYV 320 240 10.0 JeVois BurnTest 344 | 345 | #################################################################################################### 346 | ### Python tests 347 | #################################################################################################### 348 | 349 | #YUYV 640 480 15.0 YUYV 640 480 15.0 JeVois PythonTest 350 | GREY 640 480 20.0 YUYV 640 480 20.0 JeVois PythonOpenCV 351 | YUYV 352 288 30.0 YUYV 352 288 30.0 JeVois PythonSandbox 352 | --------------------------------------------------------------------------------