Only released in EOL distros:
Package Summary
Thermal-infrared computer vision and data management tools
- Author: Stephen Vidas
- License: GPL
- Source: svn https://thermalvis-ros-pkg.googlecode.com/svn/trunk/
Package Summary
Thermal-infrared computer vision and data management tools
- Author: Stephen Vidas
- License: GPL
- Source: svn https://thermalvis-ros-pkg.googlecode.com/svn/trunk/
Contents
Overview
More information can be found here
Dependencies
vslam : Really just the SBA package within this, but I find it easier (and more interesting) to just compile the whole thing.
ROS Nodes
calibrator
For the geometric calibration of both thermal-infrared cameras and regular cameras (both intrinsic and extrinsic).Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Alpha level for undistortion and new cam mat Range: -1.0 to 1.0
- Automatically find best alpha level
- Attempt to track pattern rather than redetect
- Sensitivity for optical flow algorithm Range: 0.0 to 1.0
- Maximum proportion of minor image dimension that points may drift between frames for tracking Range: 0.0 to 1.0
- Error threshold for feature exlusion from tracker Range: 0.0 to 200.0
- stopCapturing
- Contrast left Range: 0.0 to 10.0
- Brightness left Range: -50.0 to 50.0
- Histogramm equalisation left
- Invert left
- Contrast left Range: 0.0 to 10.0
- Brightness right Range: -50.0 to 50.0
- Histogramm equalisation right
- Invert left
- adjustMSERLeft
- deltaLeft Range: 0 to 100
- maxVarLeft Range: 0.0 to 2.0
- minDivLeft Range: 0.0 to 2.0
- areaThresholdLeft Range: 0.0 to 5.0
- adjustMSERRight
- deltaRight Range: 0 to 100
- maxVarRight Range: 0.0 to 2.0
- minDivRight Range: 0.0 to 2.0
- areaThresholdRight Range: 0.0 to 5.0
Examples
For intrinsic calibration only:
$ roslaunch thermalvis calibrator_monoexample.launch
For stereo calibration:
$ roslaunch thermalvis calibrator_stereoexample.launch
streamer
For streaming from and controlling the Thermoteknix Miricle 110K and 307K cameras.Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Pixel format of input Possible values are: 8bit (0): 8-bit single channel, raw (1): Raw 16-bit format, mm (2): 8-bit dual channel (multimodal), 16uc1 (3): 16-bit from kinect depth
- Forces color input to be converted to gray
- Desired Framerate Range: -1.0 to 100.0
- Histogram Normalization Mode Possible values are: standard (0): Standard dynamic range, equalize (1): Equalization, clahe (2): CLAHE, clahe_adaptive (3): Adaptive Contrast Enhancement, centralized (4): Centers intensities around median, expanded (5): Centers intensities around mid-range
- Normalization factor Range: 0.0 to 1.0
- Image Filtering Mode Possible values are: none (0): No filtering, gaussian (1): Gaussian Filter, bilateral (2): Bilateral Filter, adaptive_bilateral (3): Adaptive Bilateral Filter
- Filter param Range: 0.0 to 20.0
- Activate 16-bit (raw) output
- Activeate 8-bit (mono) output
- Activate color output
- A color mapping parameter which is edited via an enum Possible values are: GRAYSCALE (0): Grayscale coloring, CIECOMP (1): CIECOMP coloring, BLACKBODY (2): Blackbody coloring, RAINBOW (3): Rainbow coloring, IRON (4): Iron coloring, BLUERED (5): Blue-red coloring, JET (6): Jet coloring, ICE (7): Ice coloring, ICEIRON (8): Ice and iron coloring, ICEFIRE (9): Ice and fire coloring, REPEATED (10): Ice and fire coloring, HIGHLIGHTED (11): Highlights dominant pixels as red
- Allow b/w color mapping
- Activate write output
- Output image format Possible values are: jpg (0): JPEG, pgm (1): PGM, bmp (2): BMP, ppm (3): PPM, png (4): PNG
- Output image type Possible values are: CV_8UC1 (0): 8-bit single channel, CV_8UC3 (1): 8-bit triple channel, CV_16UC1 (2): 16-bit single channel
- Write quality Range: 0.0 to 1.0
- Keep original names
- Re-loop once finished
- Activate image undistortion
- Activate image rectification
- Alpha level for undistortion Range: -1.0 to 1.0
- Automatically find best alpha level
- Regulate change in median intensity (8-bit only)
- Maximum amount of intensity shift (8-bit only) Range: 0 to 20
- Maximum amount of past frames to consider Range: 0 to 100
- Remove consecutive duplicate frames
- Mark consecutive duplicate frames
- Output duplicates to a log-file
- Output timestamps to console
- Scaling range for modality fusion Range: 0.0 to 1.0
- Input synchronization mode Possible values are: hardSync (0): Image and camera_info topics must be fully synchronized, softSync (1): Image and camera_info topics do not have to be fully synchronized, imageOnly (2): To be used when no camera_info topic is present
- Maximum difference in seconds for soft sync Range: 0.0 to 1.0
- Read thermistor values
- No. of polls between shutter switching Range: 0 to 1000
- Rate (per sec) for serial polling Range: 0.0 to 100.0
- Maximum NUC interval (in sec) Range: 5 to 300
- Maximum NUC threshold (in deg) Range: 0.0 to 5.0
- Maximum temp difference between consecutive thermistor readings Range: 0.0 to 10.0
- Display additional debug info
- Overlay reticle
Examples
Should act as a driver for a Thermoteknix Miricle 110K or 307K camera, allowing the reading of the thermistor, and control of camera settings, along with streaming in the raw 14-bit/pixel mode.
$ roslaunch thermalvis streamer_example.launch
flow
Highly configurable sparse optical flow for thermal-infrared video.Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Attempt to pair images and camera info that may not be strictly sync'ed
- Maximum difference in seconds for soft sync Range: 0.0 to 1.0
- Detector #1 Possible values are: OFF (0): No detector implemented, GFTT (1): Hessian features (GFTT), FAST (2): FAST, HARRIS (3): Harris features (GFTT)
- Detector #1 sensitivity Range: 0.0 to 1.0
- Detector #2 Possible values are: OFF (0): No detector implemented, GFTT (1): Hessian features (GFTT), FAST (2): FAST, HARRIS (3): Harris features (GFTT)
- Detector #2 sensitivity Range: 0.0 to 1.0
- Detector #3 Possible values are: OFF (0): No detector implemented, GFTT (1): Hessian features (GFTT), FAST (2): FAST, HARRIS (3): Harris features (GFTT)
- Detector #3 sensitivity Range: 0.0 to 1.0
- Maximum proportion of minor image dimension that points may drift between frames for tracking Range: 0.0 to 1.0
- Maximum number of features to attempt tracking Range: 0 to 500
- Number of frames to wait before attempting re-detections Range: 0 to 100
- Maximum number of features to allow detector to return Range: 0 to 1000
- Minimum spatial separation between features Range: 0.0 to 20.0
- Sensitivity for optical flow algorithm Range: 0.0 to 1.0
- Minimum number of features to be tracked by each detector Range: 0 to 500
- Maximum number of features to be tracked by each detector Range: 0 to 500
- How many frames to search back for recently lost features Range: 0 to 1000
- How many frames to search back for historically lost features Range: 0 to 1000
- Timeout in seconds before NUC is assumed Range: 0.0 to 10.0
- Maximum number of projections of feature to publish Range: 0 to 100
- Minimum number of tracks below which a warning is triggered Range: 0 to 100
- Number of projections for the feature tail in the debug image Range: 0 to 100
- Publish output
Examples
Should publish a customized tracks topic containing sparse optical flow information.
$ roslaunch thermalvis flow_example.launch
monoslam
Monocular SLAM with a hand-held thermal-infrared camera.Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Minimum keyframe pair score for initialization Range: 0.0 to 1.0
- Flowback frames (per adjustment) Range: 0 to 10
- See the paper, variable K Range: 0 to 100
- Maximum number of frames separating keyframes Range: 0 to 100
- Minimum required keyframe score Range: 0.0 to 100.0
- Adjustment frames Range: 1 to 100
- Maximum amount of tolerated motion Range: 1.0 to 100.0
- Number of frames a feature must appear in before it's triangulated Range: 1 to 100
- Minimum number of points to use to estimate pose of camera Range: 0 to 100
- Cameras to consider for each bundle adjustment Range: 0 to 100
- Minimum number of features that must be tracked Range: 0 to 500
- Maximum number of camera views to consider for initial pose estimate Range: 0 to 100
- Minimum required geometry score Range: 0.0 to 100.0
- Required proportion of tracks to be maintained between frames Range: 0.0 to 1.0
- Time (sec) after which no data triggers program exit Range: 0.0 to 60.0
- Number of iterations to perform finalizing initial structure Range: 0 to 1000
- Number of iterations to perform when putatively estimating a camera pose Range: 0 to 1000
- Number of iterations to perform each cycle on the full system Range: 0 to 1000
- Number of iterations to perform each cycle on the keyframes Range: 0 to 1000
- Number of iterations to perform each cycle on the subsequence Range: 0 to 1000
- Display additional debug info
- Display timing information
- Number of frames to wait before publishing timing info Range: 0 to 100
Examples
I recommend making sure that you have got the flow node working effectively before trying to run the monoslam node.
$ roslaunch thermalvis monoslam_example.launch
depth
Real-time depth from stereo from thermal-infrared video [in progress].Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Alpha level for undistortion Range: -1.0 to 1.0
- Automatically find best alpha level
Examples
This should simply produce a depth map from two video streams.
$ roslaunch thermalvis depth_example.launch
listener
For processing 3D reconstruction datasets [in progress].Parameters
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Maximum number of frames to extract Range: 0 to 10000
Examples
This node requires a bag file to exist which contains relevant topics for 3D thermal mapping.
$ roslaunch thermalvis listener_example.launch