Skip to content

firepick-delta/FireSight

This branch is 10 commits ahead of, 108 commits behind firepick1/FireSight:dev.

Folders and files

NameName
Last commit message
Last commit date
Jun 19, 2014
Jul 13, 2014
Nov 1, 2014
Oct 31, 2014
Oct 31, 2014
Oct 31, 2014
Jul 17, 2014
Nov 1, 2014
Nov 1, 2014
Oct 29, 2014
Aug 3, 2014
May 6, 2014
Aug 3, 2014
Oct 30, 2014
Oct 20, 2014
Feb 28, 2014
Sep 25, 2014
Jan 19, 2014
Apr 18, 2014
Oct 31, 2014
Oct 31, 2014
Feb 28, 2014
Jul 6, 2014
Oct 31, 2014
Jul 10, 2014
Oct 24, 2014
Jul 18, 2014
Apr 18, 2014
Nov 1, 2014
Mar 28, 2014
Oct 14, 2014
Oct 30, 2014
Jul 7, 2014
Feb 28, 2014
Feb 26, 2014
Oct 30, 2014
Oct 22, 2014
Oct 31, 2014
Apr 27, 2014
Apr 15, 2014
Jan 18, 2014
Jan 18, 2014
Feb 27, 2014
Aug 3, 2014
Jan 21, 2014
Jul 6, 2014
Mar 1, 2014

Repository files navigation

Build Status

FireSight

FireSight is a factory that builds an OpenCV image processing pipeline from a declarative pipeline specfication. When processed, the pipeline transforms an optional input image and returns a recognized data model with information recognized during each pipeline stage. Both pipeline specification and data model are represented using the JSON data format, which is easy to generate and parse.

Intended for pick-and-place vision recognition, FireSight provides the power of OpenCV in an easy to use JSON format. FireSight lets users customize their vision recognition solutions with minimal effort. FireSight also provides a scriptable command line utility that permit quick exploration of alternate pipeline implementations.

FireSight is available as a C++ library as well as a standalone runtime under the MIT license. It has been tested on:

  • Raspbian (Raspberry Pi Debian)
  • ChromeBook Pixel (Crouton+Ubuntu)
  • Windows 7 Professional ThinkPad T410

Installation

Examples

Recognize holes in cam.jpg:

firesight -p json/pipeline0.json -i img/cam.jpg

The -p pipeline0.json argument identifies the JSON pipeline configuration. In this case, the pipeline consists of two stages (named "s1" and "s2"). The first stage recognizes holes within the given range of diameters. The second writes the working image to "pipeline0.jpg":

[
	{"name":"s1", "op":"HoleRecognizer", "diamMin":22.6, "diamMax":29.9, "show":1},
	{"name":"s2", "op":"imwrite", "path":"target/pipeline0.jpg"}
]

The -i cam.jpg argument specifies the image to process. This parameter is optional but may prove useful. Alternatively, the pipeline itself can use imread to load an image.

The pipeline returns a JSON model representing the information recognized at each pipeline stage:

{
  "s1":{
    "holes":[
      {
        "xmin":608,
        "xmax":632,
        "xavg":619.8985595703125,
        "ymin":45,
        "ymax":69,
        "yavg":57.265720367431641,
        "pts":493,
        "ellipse":490.87387084960938,
        "covar":0.671875
      },
      {
        "xmin":180,
        "xmax":205,
        "xavg":192.58755493164062,
        "ymin":30,
        "ymax":55,
        "yavg":42.214008331298828,
        "pts":514,
        "ellipse":530.92919921875,
        "covar":1.3974609375
      },
      {
        "xmin":287,
        "xmax":311,
        "xavg":298.81341552734375,
        "ymin":34,
        "ymax":58,
        "yavg":45.660377502441406,
        "pts":477,
        "ellipse":490.87387084960938,
        "covar":0.8798828125
      },
      {
        "xmin":500,
        "xmax":525,
        "xavg":512.39361572265625,
        "ymin":41,
        "ymax":64,
        "yavg":52.455375671386719,
        "pts":437,
        "ellipse":490.08847045898438,
        "covar":0.82421875
      },
      {
        "xmin":393,
        "xmax":417,
        "xavg":404.7484130859375,
        "ymin":38,
        "ymax":62,
        "yavg":49.585624694824219,
        "pts":473,
        "ellipse":490.87387084960938,
        "covar":0.89453125
      },
      {
        "xmin":73,
        "xmax":97,
        "xavg":84.7353515625,
        "ymin":26,
        "ymax":51,
        "yavg":38.303031921386719,
        "pts":495,
        "ellipse":510.50881958007812,
        "covar":0.045166015625
      }
    ]
  },
  "s2":{
    "result":true
  }
}

About

Pick and Place Vision Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 92.8%
  • Shell 6.1%
  • C 1.1%