google-cloud-vision 0.30.4 → 0.31.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/google-cloud-vision.rb +1 -0
- data/lib/google/cloud/vision.rb +8 -0
- data/lib/google/cloud/vision/annotate.rb +61 -30
- data/lib/google/cloud/vision/annotation.rb +43 -3
- data/lib/google/cloud/vision/annotation/normalized_vertex.rb +76 -0
- data/lib/google/cloud/vision/annotation/object_localization.rb +115 -0
- data/lib/google/cloud/vision/image.rb +33 -2
- data/lib/google/cloud/vision/project.rb +5 -2
- data/lib/google/cloud/vision/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b97dd452706561fd304da05cf2572636618d8695e0d13e9db8fe0e000cd3a876
|
4
|
+
data.tar.gz: d1c466ff99ff655bb881d382e444846605a927a5820e2645f2068cd5a8e053b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d12d2ecd9e3c996af934dff0ae9508a377cb373ba92852d2b7c3aff0e6e34039403f0f54c5ba15f05c911ea490c80794aef2d3a7eac70ab5842377bec9567260
|
7
|
+
data.tar.gz: ed0e16cb06817bb8cecaf574247e44466db8c4f1f96d2c064ef3bfb17c5e37b6df75310bacebc2f58bc7841fd25bce38f27ce5bd2e6fbe52d2c8a0c22a304cc2
|
data/CHANGELOG.md
CHANGED
data/lib/google-cloud-vision.rb
CHANGED
@@ -142,4 +142,5 @@ Google::Cloud.configure.add_config! :vision do |config|
|
|
142
142
|
config.add_field! :default_max_labels, 100
|
143
143
|
config.add_field! :default_max_crop_hints, 100
|
144
144
|
config.add_field! :default_max_web, 100
|
145
|
+
config.add_field! :default_max_object_localizations, 100
|
145
146
|
end
|
data/lib/google/cloud/vision.rb
CHANGED
@@ -442,6 +442,14 @@ module Google
|
|
442
442
|
def default_max_web
|
443
443
|
configure.default_max_web
|
444
444
|
end
|
445
|
+
|
446
|
+
def default_max_object_localizations= value
|
447
|
+
configure.default_max_object_localizations = value
|
448
|
+
end
|
449
|
+
|
450
|
+
def default_max_object_localizations
|
451
|
+
configure.default_max_object_localizations
|
452
|
+
end
|
445
453
|
end
|
446
454
|
|
447
455
|
##
|
@@ -116,6 +116,7 @@ module Google
|
|
116
116
|
# feature. Optional.
|
117
117
|
# @param [Boolean, Integer] web Whether to perform the web annotation
|
118
118
|
# feature. Optional.
|
119
|
+
# @param [Boolean, Integer] object_localizations TODO! Optional.
|
119
120
|
#
|
120
121
|
# @return [Annotation, Array<Annotation>] The results for all image
|
121
122
|
# detections, returned as a single {Annotation} instance for one
|
@@ -145,9 +146,10 @@ module Google
|
|
145
146
|
def annotate *images, faces: false, landmarks: false, logos: false,
|
146
147
|
labels: false, text: false, document: false,
|
147
148
|
safe_search: false, properties: false, crop_hints: false,
|
148
|
-
web: false
|
149
|
+
web: false, object_localizations: false
|
149
150
|
add_requests(images, faces, landmarks, logos, labels, text, document,
|
150
|
-
safe_search, properties, crop_hints, web
|
151
|
+
safe_search, properties, crop_hints, web,
|
152
|
+
object_localizations)
|
151
153
|
end
|
152
154
|
|
153
155
|
protected
|
@@ -158,10 +160,11 @@ module Google
|
|
158
160
|
end
|
159
161
|
|
160
162
|
def add_requests images, faces, landmarks, logos, labels, text,
|
161
|
-
document, safe_search, properties, crop_hints, web
|
163
|
+
document, safe_search, properties, crop_hints, web,
|
164
|
+
object_localizations
|
162
165
|
features = annotate_features(faces, landmarks, logos, labels, text,
|
163
166
|
document, safe_search, properties,
|
164
|
-
crop_hints, web)
|
167
|
+
crop_hints, web, object_localizations)
|
165
168
|
|
166
169
|
Array(images).flatten.each do |img|
|
167
170
|
i = image(img)
|
@@ -174,38 +177,54 @@ module Google
|
|
174
177
|
end
|
175
178
|
|
176
179
|
def annotate_features faces, landmarks, logos, labels, text, document,
|
177
|
-
safe_search, properties, crop_hints, web
|
180
|
+
safe_search, properties, crop_hints, web,
|
181
|
+
object_localizations
|
178
182
|
return default_features if default_features?(
|
179
183
|
faces, landmarks, logos, labels, text, document, safe_search,
|
180
|
-
properties, crop_hints, web
|
184
|
+
properties, crop_hints, web, object_localizations
|
181
185
|
)
|
182
186
|
|
183
|
-
faces, landmarks, logos, labels, crop_hints, web
|
184
|
-
|
185
|
-
|
187
|
+
faces, landmarks, logos, labels, crop_hints, web, \
|
188
|
+
object_localizations = validate_max_args(
|
189
|
+
faces, landmarks, logos, labels, crop_hints, web,
|
190
|
+
object_localizations
|
191
|
+
)
|
186
192
|
|
187
|
-
f = value_features faces, landmarks, logos, labels, crop_hints, web
|
193
|
+
f = value_features faces, landmarks, logos, labels, crop_hints, web,
|
194
|
+
object_localizations
|
188
195
|
f + boolean_features(text, document, safe_search, properties)
|
189
196
|
end
|
190
197
|
|
191
|
-
def value_features faces, landmarks, logos, labels, crop_hints, web
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
198
|
+
def value_features faces, landmarks, logos, labels, crop_hints, web,
|
199
|
+
object_localizations
|
200
|
+
[
|
201
|
+
value_feature(:FACE_DETECTION, faces),
|
202
|
+
value_feature(:LANDMARK_DETECTION, landmarks),
|
203
|
+
value_feature(:LOGO_DETECTION, logos),
|
204
|
+
value_feature(:LABEL_DETECTION, labels),
|
205
|
+
value_feature(:CROP_HINTS, crop_hints),
|
206
|
+
value_feature(:WEB_DETECTION, web),
|
207
|
+
value_feature(:OBJECT_LOCALIZATION, object_localizations)
|
208
|
+
].compact
|
209
|
+
end
|
210
|
+
|
211
|
+
def value_feature type, value
|
212
|
+
return if value.zero?
|
213
|
+
feature type, value
|
200
214
|
end
|
201
215
|
|
202
216
|
def boolean_features text, document, safe_search, properties
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
217
|
+
[
|
218
|
+
boolean_feature(:TEXT_DETECTION, text),
|
219
|
+
boolean_feature(:DOCUMENT_TEXT_DETECTION, document),
|
220
|
+
boolean_feature(:SAFE_SEARCH_DETECTION, safe_search),
|
221
|
+
boolean_feature(:IMAGE_PROPERTIES, properties)
|
222
|
+
].compact
|
223
|
+
end
|
224
|
+
|
225
|
+
def boolean_feature type, value
|
226
|
+
return unless value
|
227
|
+
feature type, 1
|
209
228
|
end
|
210
229
|
|
211
230
|
def feature type, max_results
|
@@ -215,11 +234,12 @@ module Google
|
|
215
234
|
end
|
216
235
|
|
217
236
|
def default_features? faces, landmarks, logos, labels, text, document,
|
218
|
-
safe_search, properties, crop_hints, web
|
237
|
+
safe_search, properties, crop_hints, web,
|
238
|
+
object_localizations
|
219
239
|
faces == false && landmarks == false && logos == false &&
|
220
240
|
labels == false && text == false && document == false &&
|
221
241
|
safe_search == false && properties == false &&
|
222
|
-
crop_hints == false && web == false
|
242
|
+
crop_hints == false && web == false && object_localizations == false
|
223
243
|
end
|
224
244
|
|
225
245
|
def default_features
|
@@ -235,11 +255,14 @@ module Google
|
|
235
255
|
feature(:SAFE_SEARCH_DETECTION, 1),
|
236
256
|
feature(:IMAGE_PROPERTIES, 1),
|
237
257
|
feature(:CROP_HINTS, Google::Cloud::Vision.default_max_crop_hints),
|
238
|
-
feature(:WEB_DETECTION, Google::Cloud::Vision.default_max_web)
|
258
|
+
feature(:WEB_DETECTION, Google::Cloud::Vision.default_max_web),
|
259
|
+
feature(:OBJECT_LOCALIZATION,
|
260
|
+
Google::Cloud::Vision.default_max_object_localizations)
|
239
261
|
]
|
240
262
|
end
|
241
263
|
|
242
|
-
def validate_max_args faces, landmarks, logos, labels, crop_hints, web
|
264
|
+
def validate_max_args faces, landmarks, logos, labels, crop_hints, web,
|
265
|
+
object_localizations
|
243
266
|
faces = validate_max_value(
|
244
267
|
faces, Google::Cloud::Vision.default_max_faces
|
245
268
|
)
|
@@ -258,7 +281,15 @@ module Google
|
|
258
281
|
web = validate_max_value(
|
259
282
|
web, Google::Cloud::Vision.default_max_web
|
260
283
|
)
|
261
|
-
|
284
|
+
object_localizations = validate_max_value(
|
285
|
+
object_localizations,
|
286
|
+
Google::Cloud::Vision.default_max_object_localizations
|
287
|
+
)
|
288
|
+
|
289
|
+
[
|
290
|
+
faces, landmarks, logos, labels, crop_hints, web,
|
291
|
+
object_localizations
|
292
|
+
]
|
262
293
|
end
|
263
294
|
|
264
295
|
def validate_max_value value, default_value
|
@@ -20,6 +20,7 @@ require "google/cloud/vision/annotation/safe_search"
|
|
20
20
|
require "google/cloud/vision/annotation/properties"
|
21
21
|
require "google/cloud/vision/annotation/crop_hint"
|
22
22
|
require "google/cloud/vision/annotation/web"
|
23
|
+
require "google/cloud/vision/annotation/object_localization"
|
23
24
|
|
24
25
|
module Google
|
25
26
|
module Cloud
|
@@ -475,6 +476,44 @@ module Google
|
|
475
476
|
!web.nil?
|
476
477
|
end
|
477
478
|
|
479
|
+
##
|
480
|
+
# The results of object localizations detection.
|
481
|
+
#
|
482
|
+
# @return [Array<ObjectLocalization>]
|
483
|
+
#
|
484
|
+
# @example
|
485
|
+
# require "google/cloud/vision"
|
486
|
+
#
|
487
|
+
# vision = Google::Cloud::Vision.new
|
488
|
+
# image = vision.image "path/to/face.jpg"
|
489
|
+
#
|
490
|
+
# annotation = vision.annotate image, object_localizations: true
|
491
|
+
# object_localizations = annotation.object_localizations
|
492
|
+
#
|
493
|
+
def object_localizations
|
494
|
+
@ol ||= @grpc.localized_object_annotations.map do |ol|
|
495
|
+
ObjectLocalization.from_grpc ol
|
496
|
+
end
|
497
|
+
end
|
498
|
+
|
499
|
+
##
|
500
|
+
# Whether there is a result for object localizations detection.
|
501
|
+
#
|
502
|
+
# @return [Boolean]
|
503
|
+
#
|
504
|
+
# @example
|
505
|
+
# require "google/cloud/vision"
|
506
|
+
#
|
507
|
+
# vision = Google::Cloud::Vision.new
|
508
|
+
# image = vision.image "path/to/face.jpg"
|
509
|
+
#
|
510
|
+
# annotation = vision.annotate image, object_localizations: true
|
511
|
+
# annotation.object_localizations? #=> true
|
512
|
+
#
|
513
|
+
def object_localizations?
|
514
|
+
!object_localizations.empty?
|
515
|
+
end
|
516
|
+
|
478
517
|
##
|
479
518
|
# Deeply converts object to a hash. All keys will be symbolized.
|
480
519
|
#
|
@@ -485,16 +524,17 @@ module Google
|
|
485
524
|
logos: logos.map(&:to_h), labels: labels.map(&:to_h),
|
486
525
|
text: text.to_h, safe_search: safe_search.to_h,
|
487
526
|
properties: properties.to_h, crop_hints: crop_hints.map(&:to_h),
|
488
|
-
web: web.to_h }
|
527
|
+
web: web.to_h, object_localizations: object_localizations.to_h }
|
489
528
|
end
|
490
529
|
|
491
530
|
# @private
|
492
531
|
def to_s
|
493
532
|
tmplt = "(faces: %i, landmarks: %i, logos: %i, labels: %i," \
|
494
533
|
" text: %s, safe_search: %s, properties: %s," \
|
495
|
-
" crop_hints: %s, web: %s)"
|
534
|
+
" crop_hints: %s, web: %s, object_localizations: %i)"
|
496
535
|
format tmplt, faces.count, landmarks.count, logos.count, labels.count,
|
497
|
-
text?, safe_search?, properties?, crop_hints?, web
|
536
|
+
text?, safe_search?, properties?, crop_hints?, web?,
|
537
|
+
object_localizations.count
|
498
538
|
end
|
499
539
|
|
500
540
|
# @private
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Copyright 2016 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Cloud
|
18
|
+
module Vision
|
19
|
+
class Annotation
|
20
|
+
##
|
21
|
+
# # NormalizedVertex
|
22
|
+
#
|
23
|
+
# A normalized vertex in a set of bounding polygon vertices.
|
24
|
+
#
|
25
|
+
# @attr_reader [Float] x The X coordinate.
|
26
|
+
# @attr_reader [Float] y The Y coordinate.
|
27
|
+
#
|
28
|
+
class NormalizedVertex
|
29
|
+
attr_reader :x, :y
|
30
|
+
|
31
|
+
##
|
32
|
+
# @private Creates a new NormalizedVertex instance.
|
33
|
+
def initialize x, y
|
34
|
+
@x = x
|
35
|
+
@y = y
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# Returns the object's property values as an array.
|
40
|
+
#
|
41
|
+
# @return [Array]
|
42
|
+
#
|
43
|
+
def to_a
|
44
|
+
[x, y]
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Converts object to a hash. All keys will be symbolized.
|
49
|
+
#
|
50
|
+
# @return [Hash]
|
51
|
+
#
|
52
|
+
def to_h
|
53
|
+
{ x: x, y: y }
|
54
|
+
end
|
55
|
+
|
56
|
+
# @private
|
57
|
+
def to_s
|
58
|
+
"(x: #{x.inspect}, y: #{y.inspect})"
|
59
|
+
end
|
60
|
+
|
61
|
+
# @private
|
62
|
+
def inspect
|
63
|
+
"#<NormalizedVertex #{self}>"
|
64
|
+
end
|
65
|
+
|
66
|
+
##
|
67
|
+
# @private New Annotation::Entity::Bounds::Vertex from a Google API
|
68
|
+
# Client object.
|
69
|
+
def self.from_grpc grpc
|
70
|
+
new grpc.x, grpc.y
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# Copyright 2018 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
require "google/cloud/vision/annotation/normalized_vertex"
|
17
|
+
|
18
|
+
module Google
|
19
|
+
module Cloud
|
20
|
+
module Vision
|
21
|
+
class Annotation
|
22
|
+
class ObjectLocalization
|
23
|
+
##
|
24
|
+
# @private The LocalizedObjectAnnotation GRPC object.
|
25
|
+
attr_accessor :grpc
|
26
|
+
|
27
|
+
##
|
28
|
+
# @private Creates a new Web instance.
|
29
|
+
def initialize
|
30
|
+
@grpc = nil
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Opaque entity ID. Should align with {Entity#mid}.
|
35
|
+
#
|
36
|
+
# @return [String] The opaque entity ID.
|
37
|
+
#
|
38
|
+
def mid
|
39
|
+
@grpc.mid
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# The BCP-47 language code, such as "en-US" or "sr-Latn".
|
44
|
+
#
|
45
|
+
# @see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier
|
46
|
+
#
|
47
|
+
# @return [String] The language code.
|
48
|
+
#
|
49
|
+
def code
|
50
|
+
@grpc.language_code
|
51
|
+
end
|
52
|
+
|
53
|
+
##
|
54
|
+
# Object name, expressed in its {#code} language.
|
55
|
+
#
|
56
|
+
# @return [String] The object name.
|
57
|
+
#
|
58
|
+
def name
|
59
|
+
@grpc.name
|
60
|
+
end
|
61
|
+
|
62
|
+
##
|
63
|
+
# The score of the result. Range [0, 1].
|
64
|
+
#
|
65
|
+
# @return [Float] A value in the range [0, 1].
|
66
|
+
#
|
67
|
+
def score
|
68
|
+
@grpc.score
|
69
|
+
end
|
70
|
+
|
71
|
+
##
|
72
|
+
# Image region to which this entity belongs.
|
73
|
+
#
|
74
|
+
# @return [Array<NormalizedVertex>] An array of normalized vertices.
|
75
|
+
#
|
76
|
+
def bounds
|
77
|
+
return [] unless @grpc.bounding_poly
|
78
|
+
@bounds ||= @grpc.bounding_poly.normalized_vertices.map do |v|
|
79
|
+
NormalizedVertex.from_grpc v
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Deeply converts object to a hash. All keys will be symbolized.
|
85
|
+
#
|
86
|
+
# @return [Hash]
|
87
|
+
#
|
88
|
+
def to_h
|
89
|
+
{ mid: mid, code: code, name: name, score: score,
|
90
|
+
bounds: bounds.map(&:to_h) }
|
91
|
+
end
|
92
|
+
|
93
|
+
# @private
|
94
|
+
def to_s
|
95
|
+
tmplt = "mid: %s, code: %s, name: %s, score: %s, " \
|
96
|
+
" bounds: %i"
|
97
|
+
format tmplt, mid.inspect, code.inspect, name.inspect,
|
98
|
+
score.inspect, bounds.count
|
99
|
+
end
|
100
|
+
|
101
|
+
# @private
|
102
|
+
def inspect
|
103
|
+
"#<#{self.class.name} #{self}>"
|
104
|
+
end
|
105
|
+
|
106
|
+
##
|
107
|
+
# @private New Annotation::Face from a GRPC object.
|
108
|
+
def self.from_grpc grpc
|
109
|
+
new.tap { |ol| ol.instance_variable_set :@grpc, grpc }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -434,6 +434,34 @@ module Google
|
|
434
434
|
annotation.web
|
435
435
|
end
|
436
436
|
|
437
|
+
##
|
438
|
+
# Performs the `OBJECT_LOCALIZATION` feature on the image.
|
439
|
+
#
|
440
|
+
# @see https://cloud.google.com/vision/docs/pricing Cloud Vision Pricing
|
441
|
+
#
|
442
|
+
# @return [Array<Annotation::ObjectLocalization>] The results of object
|
443
|
+
# localizations detection.
|
444
|
+
#
|
445
|
+
# @example
|
446
|
+
# require "google/cloud/vision"
|
447
|
+
#
|
448
|
+
# vision = Google::Cloud::Vision.new
|
449
|
+
# image = vision.image "path/to/bicycle.jpg"
|
450
|
+
#
|
451
|
+
# object_localizations = image.object_localizations
|
452
|
+
# object_localizations.count #=> 6
|
453
|
+
# object_localization = object_localizations.first
|
454
|
+
#
|
455
|
+
# object_localization.name #=> "Bicycle wheel"
|
456
|
+
# object_localization.bounds.count #=> 4
|
457
|
+
#
|
458
|
+
def object_localizations max_results = \
|
459
|
+
Vision.default_max_object_localizations
|
460
|
+
ensure_vision!
|
461
|
+
annotation = @vision.mark self, object_localizations: max_results
|
462
|
+
annotation.object_localizations
|
463
|
+
end
|
464
|
+
|
437
465
|
##
|
438
466
|
# Performs detection of Cloud Vision
|
439
467
|
# [features](https://cloud.google.com/vision/reference/rest/v1/images/annotate#Feature)
|
@@ -480,6 +508,8 @@ module Google
|
|
480
508
|
# feature. Optional.
|
481
509
|
# @param [Boolean, Integer] web Whether to perform the web annotation
|
482
510
|
# feature. Optional.
|
511
|
+
# @param [Boolean, Integer] object_localizations Whether to perform the
|
512
|
+
# object localizations feature. Optional.
|
483
513
|
#
|
484
514
|
# @return [Annotation] The results for all image detections, returned as
|
485
515
|
# a single {Annotation} instance.
|
@@ -514,12 +544,13 @@ module Google
|
|
514
544
|
def annotate faces: false, landmarks: false, logos: false,
|
515
545
|
labels: false, text: false, document: false,
|
516
546
|
safe_search: false, properties: false, crop_hints: false,
|
517
|
-
web: false
|
547
|
+
web: false, object_localizations: false
|
518
548
|
@vision.annotate(self, faces: faces, landmarks: landmarks,
|
519
549
|
logos: logos, labels: labels, text: text,
|
520
550
|
document: document, safe_search: safe_search,
|
521
551
|
properties: properties, crop_hints: crop_hints,
|
522
|
-
web: web
|
552
|
+
web: web,
|
553
|
+
object_localizations: object_localizations)
|
523
554
|
end
|
524
555
|
alias mark annotate
|
525
556
|
alias detect annotate
|
@@ -186,6 +186,8 @@ module Google
|
|
186
186
|
# feature. Optional.
|
187
187
|
# @param [Boolean, Integer] web Whether to perform the web annotation
|
188
188
|
# feature. Optional.
|
189
|
+
# @param [Boolean, Integer] object_localizations Whether to perform the
|
190
|
+
# object localizations feature. Optional.
|
189
191
|
#
|
190
192
|
# @yield [annotate] A block for requests that involve multiple feature
|
191
193
|
# configurations. See {Annotate#annotate}.
|
@@ -257,12 +259,13 @@ module Google
|
|
257
259
|
def annotate *images, faces: false, landmarks: false, logos: false,
|
258
260
|
labels: false, text: false, document: false,
|
259
261
|
safe_search: false, properties: false, crop_hints: false,
|
260
|
-
web: false
|
262
|
+
web: false, object_localizations: false
|
261
263
|
a = Annotate.new self
|
262
264
|
a.annotate(*images, faces: faces, landmarks: landmarks, logos: logos,
|
263
265
|
labels: labels, text: text, document: document,
|
264
266
|
safe_search: safe_search, properties: properties,
|
265
|
-
crop_hints: crop_hints, web: web
|
267
|
+
crop_hints: crop_hints, web: web,
|
268
|
+
object_localizations: object_localizations)
|
266
269
|
|
267
270
|
yield a if block_given?
|
268
271
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-vision
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.31.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-09-
|
12
|
+
date: 2018-09-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -203,6 +203,8 @@ files:
|
|
203
203
|
- lib/google/cloud/vision/annotation/crop_hint.rb
|
204
204
|
- lib/google/cloud/vision/annotation/entity.rb
|
205
205
|
- lib/google/cloud/vision/annotation/face.rb
|
206
|
+
- lib/google/cloud/vision/annotation/normalized_vertex.rb
|
207
|
+
- lib/google/cloud/vision/annotation/object_localization.rb
|
206
208
|
- lib/google/cloud/vision/annotation/properties.rb
|
207
209
|
- lib/google/cloud/vision/annotation/safe_search.rb
|
208
210
|
- lib/google/cloud/vision/annotation/text.rb
|