google-cloud-vision 0.20.2 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,10 +31,9 @@ module Google
31
31
  # See {Project#annotate}.
32
32
  #
33
33
  # @example
34
- # require "google/cloud"
34
+ # require "google/cloud/vision"
35
35
  #
36
- # gcloud = Google::Cloud.new
37
- # vision = gcloud.vision
36
+ # vision = Google::Cloud::Vision.new
38
37
  #
39
38
  # face_image = vision.image "path/to/face.jpg"
40
39
  # landmark_image = vision.image "path/to/landmark.jpg"
@@ -74,7 +73,7 @@ module Google
74
73
  # combined size of all images in a request. Reducing your file size can
75
74
  # significantly improve throughput; however, be careful not to reduce
76
75
  # image quality in the process. See [Best Practices - Image
77
- # Sizing](https://cloud.google.com/vision/docs/image-best-practices#image_sizing)
76
+ # Sizing](https://cloud.google.com/vision/docs/best-practices#image_sizing)
78
77
  # for current file size limits.
79
78
  #
80
79
  # See {Project#annotate} for requests that do not involve multiple
@@ -118,10 +117,9 @@ module Google
118
117
  # multiple images.
119
118
  #
120
119
  # @example
121
- # require "google/cloud"
120
+ # require "google/cloud/vision"
122
121
  #
123
- # gcloud = Google::Cloud.new
124
- # vision = gcloud.vision
122
+ # vision = Google::Cloud::Vision.new
125
123
  #
126
124
  # face_image = vision.image "path/to/face.jpg"
127
125
  # landmark_image = vision.image "path/to/landmark.jpg"
@@ -159,10 +157,10 @@ module Google
159
157
 
160
158
  Array(images).flatten.each do |img|
161
159
  i = image(img)
162
- @requests << Google::Apis::VisionV1::AnnotateImageRequest.new(
163
- image: i.to_gapi,
160
+ @requests << Google::Cloud::Vision::V1::AnnotateImageRequest.new(
161
+ image: i.to_grpc,
164
162
  features: features,
165
- imageContext: i.context.to_gapi
163
+ image_context: i.context.to_grpc
166
164
  )
167
165
  end
168
166
  end
@@ -176,18 +174,18 @@ module Google
176
174
  faces, landmarks, logos, labels)
177
175
 
178
176
  f = []
179
- f << feature("FACE_DETECTION", faces) unless faces.zero?
180
- f << feature("LANDMARK_DETECTION", landmarks) unless landmarks.zero?
181
- f << feature("LOGO_DETECTION", logos) unless logos.zero?
182
- f << feature("LABEL_DETECTION", labels) unless labels.zero?
183
- f << feature("TEXT_DETECTION", 1) if text
184
- f << feature("SAFE_SEARCH_DETECTION", 1) if safe_search
185
- f << feature("IMAGE_PROPERTIES", 1) if properties
177
+ f << feature(:FACE_DETECTION, faces) unless faces.zero?
178
+ f << feature(:LANDMARK_DETECTION, landmarks) unless landmarks.zero?
179
+ f << feature(:LOGO_DETECTION, logos) unless logos.zero?
180
+ f << feature(:LABEL_DETECTION, labels) unless labels.zero?
181
+ f << feature(:TEXT_DETECTION, 1) if text
182
+ f << feature(:SAFE_SEARCH_DETECTION, 1) if safe_search
183
+ f << feature(:IMAGE_PROPERTIES, 1) if properties
186
184
  f
187
185
  end
188
186
 
189
187
  def feature type, max_results
190
- Google::Apis::VisionV1::Feature.new(
188
+ Google::Cloud::Vision::V1::Feature.new(
191
189
  type: type, max_results: max_results)
192
190
  end
193
191
 
@@ -200,15 +198,15 @@ module Google
200
198
 
201
199
  def default_features
202
200
  [
203
- feature("FACE_DETECTION", Google::Cloud::Vision.default_max_faces),
204
- feature("LANDMARK_DETECTION",
201
+ feature(:FACE_DETECTION, Google::Cloud::Vision.default_max_faces),
202
+ feature(:LANDMARK_DETECTION,
205
203
  Google::Cloud::Vision.default_max_landmarks),
206
- feature("LOGO_DETECTION", Google::Cloud::Vision.default_max_logos),
207
- feature("LABEL_DETECTION",
204
+ feature(:LOGO_DETECTION, Google::Cloud::Vision.default_max_logos),
205
+ feature(:LABEL_DETECTION,
208
206
  Google::Cloud::Vision.default_max_labels),
209
- feature("TEXT_DETECTION", 1),
210
- feature("SAFE_SEARCH_DETECTION", 1),
211
- feature("IMAGE_PROPERTIES", 1)
207
+ feature(:TEXT_DETECTION, 1),
208
+ feature(:SAFE_SEARCH_DETECTION, 1),
209
+ feature(:IMAGE_PROPERTIES, 1)
212
210
  ]
213
211
  end
214
212
 
@@ -30,10 +30,9 @@ module Google
30
30
  # See {Project#annotate} and {Image}.
31
31
  #
32
32
  # @example
33
- # require "google/cloud"
33
+ # require "google/cloud/vision"
34
34
  #
35
- # gcloud = Google::Cloud.new
36
- # vision = gcloud.vision
35
+ # vision = Google::Cloud::Vision.new
37
36
  # image = vision.image "path/to/face.jpg"
38
37
  #
39
38
  # annotation = vision.annotate image, faces: true, labels: true
@@ -43,13 +42,13 @@ module Google
43
42
  #
44
43
  class Annotation
45
44
  ##
46
- # @private The AnnotateImageResponse Google API Client object.
47
- attr_accessor :gapi
45
+ # @private The AnnotateImageResponse GRPC object.
46
+ attr_accessor :grpc
48
47
 
49
48
  ##
50
49
  # @private Creates a new Annotation instance.
51
50
  def initialize
52
- @gapi = nil
51
+ @grpc = nil
53
52
  end
54
53
 
55
54
  ##
@@ -58,10 +57,9 @@ module Google
58
57
  # @return [Array<Face>]
59
58
  #
60
59
  # @example
61
- # require "google/cloud"
60
+ # require "google/cloud/vision"
62
61
  #
63
- # gcloud = Google::Cloud.new
64
- # vision = gcloud.vision
62
+ # vision = Google::Cloud::Vision.new
65
63
  # image = vision.image "path/to/face.jpg"
66
64
  #
67
65
  # annotation = vision.annotate image, faces: true
@@ -69,8 +67,8 @@ module Google
69
67
  # face = annotation.faces.first
70
68
  #
71
69
  def faces
72
- @faces ||= Array(@gapi.face_annotations).map do |fa|
73
- Face.from_gapi fa
70
+ @faces ||= Array(@grpc.face_annotations).map do |fa|
71
+ Face.from_grpc fa
74
72
  end
75
73
  end
76
74
 
@@ -80,10 +78,9 @@ module Google
80
78
  # @return [Face]
81
79
  #
82
80
  # @example
83
- # require "google/cloud"
81
+ # require "google/cloud/vision"
84
82
  #
85
- # gcloud = Google::Cloud.new
86
- # vision = gcloud.vision
83
+ # vision = Google::Cloud::Vision.new
87
84
  # image = vision.image "path/to/face.jpg"
88
85
  #
89
86
  # annotation = vision.annotate image, faces: 1
@@ -99,10 +96,9 @@ module Google
99
96
  # @return [Boolean]
100
97
  #
101
98
  # @example
102
- # require "google/cloud"
99
+ # require "google/cloud/vision"
103
100
  #
104
- # gcloud = Google::Cloud.new
105
- # vision = gcloud.vision
101
+ # vision = Google::Cloud::Vision.new
106
102
  # image = vision.image "path/to/face.jpg"
107
103
  #
108
104
  # annotation = vision.annotate image, faces: 1
@@ -118,10 +114,9 @@ module Google
118
114
  # @return [Array<Entity>]
119
115
  #
120
116
  # @example
121
- # require "google/cloud"
117
+ # require "google/cloud/vision"
122
118
  #
123
- # gcloud = Google::Cloud.new
124
- # vision = gcloud.vision
119
+ # vision = Google::Cloud::Vision.new
125
120
  # image = vision.image "path/to/landmark.jpg"
126
121
  #
127
122
  # annotation = vision.annotate image, landmarks: 1
@@ -129,8 +124,8 @@ module Google
129
124
  # landmark = annotation.landmarks.first
130
125
  #
131
126
  def landmarks
132
- @landmarks ||= Array(@gapi.landmark_annotations).map do |lm|
133
- Entity.from_gapi lm
127
+ @landmarks ||= Array(@grpc.landmark_annotations).map do |lm|
128
+ Entity.from_grpc lm
134
129
  end
135
130
  end
136
131
 
@@ -140,10 +135,9 @@ module Google
140
135
  # @return [Entity]
141
136
  #
142
137
  # @example
143
- # require "google/cloud"
138
+ # require "google/cloud/vision"
144
139
  #
145
- # gcloud = Google::Cloud.new
146
- # vision = gcloud.vision
140
+ # vision = Google::Cloud::Vision.new
147
141
  # image = vision.image "path/to/landmark.jpg"
148
142
  #
149
143
  # annotation = vision.annotate image, landmarks: 1
@@ -160,10 +154,9 @@ module Google
160
154
  # @return [Boolean]
161
155
  #
162
156
  # @example
163
- # require "google/cloud"
157
+ # require "google/cloud/vision"
164
158
  #
165
- # gcloud = Google::Cloud.new
166
- # vision = gcloud.vision
159
+ # vision = Google::Cloud::Vision.new
167
160
  # image = vision.image "path/to/landmark.jpg"
168
161
  #
169
162
  # annotation = vision.annotate image, landmarks: 1
@@ -179,10 +172,9 @@ module Google
179
172
  # @return [Array<Entity>]
180
173
  #
181
174
  # @example
182
- # require "google/cloud"
175
+ # require "google/cloud/vision"
183
176
  #
184
- # gcloud = Google::Cloud.new
185
- # vision = gcloud.vision
177
+ # vision = Google::Cloud::Vision.new
186
178
  # image = vision.image "path/to/logo.jpg"
187
179
  #
188
180
  # annotation = vision.annotate image, logos: 1
@@ -190,8 +182,8 @@ module Google
190
182
  # logo = annotation.logos.first
191
183
  #
192
184
  def logos
193
- @logos ||= Array(@gapi.logo_annotations).map do |lg|
194
- Entity.from_gapi lg
185
+ @logos ||= Array(@grpc.logo_annotations).map do |lg|
186
+ Entity.from_grpc lg
195
187
  end
196
188
  end
197
189
 
@@ -201,10 +193,9 @@ module Google
201
193
  # @return [Entity]
202
194
  #
203
195
  # @example
204
- # require "google/cloud"
196
+ # require "google/cloud/vision"
205
197
  #
206
- # gcloud = Google::Cloud.new
207
- # vision = gcloud.vision
198
+ # vision = Google::Cloud::Vision.new
208
199
  # image = vision.image "path/to/logo.jpg"
209
200
  #
210
201
  # annotation = vision.annotate image, logos: 1
@@ -221,10 +212,9 @@ module Google
221
212
  # @return [Boolean]
222
213
  #
223
214
  # @example
224
- # require "google/cloud"
215
+ # require "google/cloud/vision"
225
216
  #
226
- # gcloud = Google::Cloud.new
227
- # vision = gcloud.vision
217
+ # vision = Google::Cloud::Vision.new
228
218
  # image = vision.image "path/to/logo.jpg"
229
219
  #
230
220
  # annotation = vision.annotate image, logos: 1
@@ -240,10 +230,9 @@ module Google
240
230
  # @return [Array<Entity>]
241
231
  #
242
232
  # @example
243
- # require "google/cloud"
233
+ # require "google/cloud/vision"
244
234
  #
245
- # gcloud = Google::Cloud.new
246
- # vision = gcloud.vision
235
+ # vision = Google::Cloud::Vision.new
247
236
  # image = vision.image "path/to/face.jpg"
248
237
  #
249
238
  # annotation = vision.annotate image, labels: 1
@@ -251,8 +240,8 @@ module Google
251
240
  # label = annotation.labels.first
252
241
  #
253
242
  def labels
254
- @labels ||= Array(@gapi.label_annotations).map do |lb|
255
- Entity.from_gapi lb
243
+ @labels ||= Array(@grpc.label_annotations).map do |lb|
244
+ Entity.from_grpc lb
256
245
  end
257
246
  end
258
247
 
@@ -262,10 +251,9 @@ module Google
262
251
  # @return [Entity]
263
252
  #
264
253
  # @example
265
- # require "google/cloud"
254
+ # require "google/cloud/vision"
266
255
  #
267
- # gcloud = Google::Cloud.new
268
- # vision = gcloud.vision
256
+ # vision = Google::Cloud::Vision.new
269
257
  # image = vision.image "path/to/face.jpg"
270
258
  #
271
259
  # annotation = vision.annotate image, labels: 1
@@ -282,10 +270,9 @@ module Google
282
270
  # @return [Boolean]
283
271
  #
284
272
  # @example
285
- # require "google/cloud"
273
+ # require "google/cloud/vision"
286
274
  #
287
- # gcloud = Google::Cloud.new
288
- # vision = gcloud.vision
275
+ # vision = Google::Cloud::Vision.new
289
276
  # image = vision.image "path/to/face.jpg"
290
277
  #
291
278
  # annotation = vision.annotate image, labels: 1
@@ -301,17 +288,16 @@ module Google
301
288
  # @return [Text]
302
289
  #
303
290
  # @example
304
- # require "google/cloud"
291
+ # require "google/cloud/vision"
305
292
  #
306
- # gcloud = Google::Cloud.new
307
- # vision = gcloud.vision
293
+ # vision = Google::Cloud::Vision.new
308
294
  # image = vision.image "path/to/text.png"
309
295
  #
310
296
  # annotation = vision.annotate image, text: true
311
297
  # text = annotation.text
312
298
  #
313
299
  def text
314
- @text ||= Text.from_gapi(@gapi.text_annotations)
300
+ @text ||= Text.from_grpc(@grpc.text_annotations)
315
301
  end
316
302
 
317
303
  ##
@@ -320,10 +306,9 @@ module Google
320
306
  # @return [Boolean]
321
307
  #
322
308
  # @example
323
- # require "google/cloud"
309
+ # require "google/cloud/vision"
324
310
  #
325
- # gcloud = Google::Cloud.new
326
- # vision = gcloud.vision
311
+ # vision = Google::Cloud::Vision.new
327
312
  # image = vision.image "path/to/text.png"
328
313
  #
329
314
  # annotation = vision.annotate image, text: true
@@ -339,18 +324,17 @@ module Google
339
324
  # @return [SafeSearch]
340
325
  #
341
326
  # @example
342
- # require "google/cloud"
327
+ # require "google/cloud/vision"
343
328
  #
344
- # gcloud = Google::Cloud.new
345
- # vision = gcloud.vision
329
+ # vision = Google::Cloud::Vision.new
346
330
  # image = vision.image "path/to/face.jpg"
347
331
  #
348
332
  # annotation = vision.annotate image, safe_search: true
349
333
  # safe_search = annotation.safe_search
350
334
  #
351
335
  def safe_search
352
- return nil unless @gapi.safe_search_annotation
353
- @safe_search ||= SafeSearch.from_gapi(@gapi.safe_search_annotation)
336
+ return nil unless @grpc.safe_search_annotation
337
+ @safe_search ||= SafeSearch.from_grpc(@grpc.safe_search_annotation)
354
338
  end
355
339
 
356
340
  ##
@@ -360,10 +344,9 @@ module Google
360
344
  # @return [Boolean]
361
345
  #
362
346
  # @example
363
- # require "google/cloud"
347
+ # require "google/cloud/vision"
364
348
  #
365
- # gcloud = Google::Cloud.new
366
- # vision = gcloud.vision
349
+ # vision = Google::Cloud::Vision.new
367
350
  # image = vision.image "path/to/face.jpg"
368
351
  #
369
352
  # annotation = vision.annotate image, safe_search: true
@@ -379,19 +362,18 @@ module Google
379
362
  # @return [Properties]
380
363
  #
381
364
  # @example
382
- # require "google/cloud"
365
+ # require "google/cloud/vision"
383
366
  #
384
- # gcloud = Google::Cloud.new
385
- # vision = gcloud.vision
367
+ # vision = Google::Cloud::Vision.new
386
368
  # image = vision.image "path/to/face.jpg"
387
369
  #
388
370
  # annotation = vision.annotate image, properties: true
389
371
  # properties = annotation.properties
390
372
  #
391
373
  def properties
392
- return nil unless @gapi.image_properties_annotation
393
- @properties ||= Properties.from_gapi(
394
- @gapi.image_properties_annotation)
374
+ return nil unless @grpc.image_properties_annotation
375
+ @properties ||= Properties.from_grpc(
376
+ @grpc.image_properties_annotation)
395
377
  end
396
378
 
397
379
  ##
@@ -400,10 +382,9 @@ module Google
400
382
  # @return [Boolean]
401
383
  #
402
384
  # @example
403
- # require "google/cloud"
385
+ # require "google/cloud/vision"
404
386
  #
405
- # gcloud = Google::Cloud.new
406
- # vision = gcloud.vision
387
+ # vision = Google::Cloud::Vision.new
407
388
  # image = vision.image "path/to/face.jpg"
408
389
  #
409
390
  # annotation = vision.annotate image, properties: true
@@ -439,9 +420,9 @@ module Google
439
420
  end
440
421
 
441
422
  ##
442
- # @private New Annotation from a Google API Client object.
443
- def self.from_gapi gapi
444
- new.tap { |a| a.instance_variable_set :@gapi, gapi }
423
+ # @private New Annotation from a GRPC object.
424
+ def self.from_grpc grpc
425
+ new.tap { |a| a.instance_variable_set :@grpc, grpc }
445
426
  end
446
427
  end
447
428
  end
@@ -30,10 +30,9 @@ module Google
30
30
  # @see https://developers.google.com/knowledge-graph/ Knowledge Graph
31
31
  #
32
32
  # @example
33
- # require "google/cloud"
33
+ # require "google/cloud/vision"
34
34
  #
35
- # gcloud = Google::Cloud.new
36
- # vision = gcloud.vision
35
+ # vision = Google::Cloud::Vision.new
37
36
  #
38
37
  # image = vision.image "path/to/landmark.jpg"
39
38
  #
@@ -43,10 +42,9 @@ module Google
43
42
  # landmark.mid #=> "/m/019dvv"
44
43
  #
45
44
  # @example
46
- # require "google/cloud"
45
+ # require "google/cloud/vision"
47
46
  #
48
- # gcloud = Google::Cloud.new
49
- # vision = gcloud.vision
47
+ # vision = Google::Cloud::Vision.new
50
48
  #
51
49
  # image = vision.image "path/to/logo.jpg"
52
50
  #
@@ -56,10 +54,9 @@ module Google
56
54
  # logo.mid #=> "/m/0b34hf"
57
55
  #
58
56
  # @example
59
- # require "google/cloud"
57
+ # require "google/cloud/vision"
60
58
  #
61
- # gcloud = Google::Cloud.new
62
- # vision = gcloud.vision
59
+ # vision = Google::Cloud::Vision.new
63
60
  #
64
61
  # image = vision.image "path/to/face.jpg"
65
62
  #
@@ -73,13 +70,13 @@ module Google
73
70
  #
74
71
  class Entity
75
72
  ##
76
- # @private The EntityAnnotation Google API Client object.
77
- attr_accessor :gapi
73
+ # @private The EntityAnnotation GRPC object.
74
+ attr_accessor :grpc
78
75
 
79
76
  ##
80
77
  # @private Creates a new Entity instance.
81
78
  def initialize
82
- @gapi = {}
79
+ @grpc = nil
83
80
  end
84
81
 
85
82
  ##
@@ -91,7 +88,7 @@ module Google
91
88
  # @return [String] The opaque entity ID.
92
89
  #
93
90
  def mid
94
- @gapi.mid
91
+ @grpc.mid
95
92
  end
96
93
 
97
94
  ##
@@ -103,7 +100,7 @@ module Google
103
100
  # language code.
104
101
  #
105
102
  def locale
106
- @gapi.locale
103
+ @grpc.locale
107
104
  end
108
105
 
109
106
  ##
@@ -112,7 +109,7 @@ module Google
112
109
  # @return [String] A description of the entity.
113
110
  #
114
111
  def description
115
- @gapi.description
112
+ @grpc.description
116
113
  end
117
114
 
118
115
  ##
@@ -121,7 +118,7 @@ module Google
121
118
  # @return [Float] A value in the range [0, 1].
122
119
  #
123
120
  def score
124
- @gapi.score
121
+ @grpc.score
125
122
  end
126
123
 
127
124
  ##
@@ -132,7 +129,7 @@ module Google
132
129
  # @return [Float] A value in the range [0, 1].
133
130
  #
134
131
  def confidence
135
- @gapi.confidence
132
+ @grpc.confidence
136
133
  end
137
134
 
138
135
  ##
@@ -145,7 +142,7 @@ module Google
145
142
  # @return [Float] A value in the range [0, 1].
146
143
  #
147
144
  def topicality
148
- @gapi.topicality
145
+ @grpc.topicality
149
146
  end
150
147
 
151
148
  ##
@@ -155,9 +152,9 @@ module Google
155
152
  # @return [Array<Vertex>] An array of vertices.
156
153
  #
157
154
  def bounds
158
- return [] unless @gapi.bounding_poly
159
- @bounds ||= Array(@gapi.bounding_poly.vertices).map do |v|
160
- Vertex.from_gapi v
155
+ return [] unless @grpc.bounding_poly
156
+ @bounds ||= Array(@grpc.bounding_poly.vertices).map do |v|
157
+ Vertex.from_grpc v
161
158
  end
162
159
  end
163
160
 
@@ -172,8 +169,8 @@ module Google
172
169
  # and longitude.
173
170
  #
174
171
  def locations
175
- @locations ||= Array(@gapi.locations).map do |l|
176
- Location.from_gapi l.lat_lng
172
+ @locations ||= Array(@grpc.locations).map do |l|
173
+ Location.from_grpc l.lat_lng
177
174
  end
178
175
  end
179
176
 
@@ -186,7 +183,7 @@ module Google
186
183
  #
187
184
  def properties
188
185
  @properties ||=
189
- Hash[Array(@gapi.properties).map { |p| [p.name, p.value] }]
186
+ Hash[Array(@grpc.properties).map { |p| [p.name, p.value] }]
190
187
  end
191
188
 
192
189
  ##
@@ -217,9 +214,9 @@ module Google
217
214
  end
218
215
 
219
216
  ##
220
- # @private New Annotation::Entity from a Google API Client object.
221
- def self.from_gapi gapi
222
- new.tap { |f| f.instance_variable_set :@gapi, gapi }
217
+ # @private New Annotation::Entity from a GRPC object.
218
+ def self.from_grpc grpc
219
+ new.tap { |f| f.instance_variable_set :@grpc, grpc }
223
220
  end
224
221
  end
225
222
  end