0.0
No commit activity in last 3 years
No release in over 3 years
Simple and structured interactions with Google's Cloud Vision api
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

Cloud Vision Gem

Cloud Vision is a Ruby gem that makes using Google's Cloud Vision simple and clean. The gem is written concisely and requires no other dependencies.

require 'cloud_vision'

raw_result = CloudVision::Api.new( api_key ).analyze( image_file, :landmarks )
result = CloudVision::Parser.parse_analysis( raw_result )

# {
#   labels: [{:description=>"Eiffel Tower", :locale=>nil, :score=>59.66081}]
# }

CloudVision::Api.analyze

analyze( image_file, tests ) => [json] Raw Response

# Run all tests
raw_result = CloudVision::Api.new( api_key ).analyze( image_file, :all )

# Run some tests
raw_result = CloudVision::Api.new( api_key ).analyze( image_file, [:faces, :labels] )

Note: Google's Cloud Vision implements a number of possible tests it can run on images. This function allows you to them them all, using :all or can pass an array. Possible values are:

  • :safety - tests image safesearch-ability
  • :facial - locales faces and runs sentiment analysis on them
  • :labels - finds appropriate tags for the image
  • :text - transcribes any text in the image
  • :logos - marks and labels logos
  • :landmarks - recognizes common landmarks (White House, Eiffel Tower, etc)
  • :properties - most common colors

CloudVision::Parser.parse_analysis( raw_response )

parse_analysis( raw_response ) => [hash] Parsed analysis

raw_result = CloudVision::Api.new( api_key ).analyze( image_file, :all )
analysis = CloudVision::Parser.parse_analysis( raw_result )

Parsed formats

Faces Test

Note: Cloud Vision reports some of these values as a scale from "Very Unlikely" to "Very Likely". This changes that into a numeric scale ranging from -2 (Very Unlikely) to 3 (Very Likely).

{
  faces: [
    {
      face: {
        x: 393,
        y: 179,
        width: 99,
        height: 115
      },
      quality: {
        under_exposed: -2,
        blurred: -2,
        headwear: -2
      },
      sentiment: {
        joy: 3,
        sorrow: -2,
        anger: -2,
        surprise: -2
      },
      confidence: 0.619328
    }
  ]
}

Safety Test

Note: Cloud Vision reports these values as a scale from "Very Unlikely" to "Very Likely". This changes that into a numeric scale ranging from -2 (Very Unlikely) to 3 (Very Likely).

{
  safety: {
    adult: -1,
    spoof: -2,
    medical: -1,
    violence: -2
  }
}

Text Test

{
  text: [
    {
      description: "Fresh Coffee",
      locale: "en"
    }
  ]
}

Logo Test

{
  logos: [
    {
      description: "Under Armour",
      score: 52.81474000000001
    }
  ]
}

Labels Test

{
  labels: [
    {
      description: "vacation",
      score: 92.342234
    },
    {
      description: "boating",
      score: 76.322818
    },
    {
      description: "yacht",
      score: 57.539123000000004
    }
  ]
}

Landmark Test

{
  landmarks: [
    {
      description: "Eiffel Tower",
      score: 59.66081
    }
  ]
}

Properties Test

{
  properties: {
    colors: [
      {
        hex: "#4E7EBE", 
        score: 33.334911, 
        percentage: 16.3028
      },
      {
        hex: "#E7EBEE", 
        score: 7.284198, 
        percentage: 6.1303589
      },
      {
        hex: "#4A566F", 
        score: 6.377968200000001, 
        percentage: 0.957127
      }
    ]
  }
}