Class: Google::Cloud::Vision::Annotation::Face::Features
- Inherits:
-
Object
- Object
- Google::Cloud::Vision::Annotation::Face::Features
- Defined in:
- lib/google/cloud/vision/annotation/face.rb
Overview
# Features
Represents facial landmarks or features. Left and right are defined from the vantage of the viewer of the image, without considering mirror projections typical of photos. So ‘face.features.eyes.left` typically is the person’s right eye.
Defined Under Namespace
Classes: Chin, Ears, Eye, Eyebrow, Eyebrows, Eyes, Landmark, Lips, Mouth, Nose
Instance Attribute Summary collapse
Class Method Summary collapse
-
.from_grpc(grpc) ⇒ Object
object.
Instance Method Summary collapse
-
#[](landmark_type) ⇒ Landmark
Returns the facial landmark for the provided type code.
-
#chin ⇒ Chin
The landmarks of the chin.
-
#confidence ⇒ Float
The confidence of the facial landmarks detection.
-
#ears ⇒ Ears
The landmarks of the ears.
-
#eyebrows ⇒ Eyebrows
The landmarks of the eyebrows.
-
#eyes ⇒ Eyes
The landmarks of the eyes.
-
#forehead ⇒ Landmark
The landmark for the forehead glabella.
-
#initialize ⇒ Features
constructor
A new instance of Features.
- #inspect ⇒ Object
-
#lips ⇒ Lips
The landmarks of the lips.
-
#mouth ⇒ Mouth
The landmarks of the mouth.
-
#nose ⇒ Nose
The landmarks of the nose.
-
#to_h ⇒ Hash
Deeply converts object to a hash.
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Features
Returns a new instance of Features.
353 354 355 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 353 def initialize @grpc = nil end |
Instance Attribute Details
#grpc ⇒ Object
349 350 351 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 349 def grpc @grpc end |
Class Method Details
.from_grpc(grpc) ⇒ Object
object.
523 524 525 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 523 def self.from_grpc grpc new.tap { |f| f.instance_variable_set :@grpc, grpc } end |
Instance Method Details
#[](landmark_type) ⇒ Landmark
Returns the facial landmark for the provided type code.
389 390 391 392 393 394 395 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 389 def [] landmark_type landmark = Array(@grpc.landmarks).detect do |l| l.type == landmark_type end return nil if landmark.nil? Landmark.from_grpc landmark end |
#chin ⇒ Chin
The landmarks of the chin.
402 403 404 405 406 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 402 def chin @chin ||= Chin.new self[:CHIN_LEFT_GONION], self[:CHIN_GNATHION], self[:CHIN_RIGHT_GONION] end |
#confidence ⇒ Float
The confidence of the facial landmarks detection.
362 363 364 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 362 def confidence @grpc.landmarking_confidence end |
#ears ⇒ Ears
The landmarks of the ears.
413 414 415 416 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 413 def ears @ears ||= Ears.new self[:LEFT_EAR_TRAGION], self[:RIGHT_EAR_TRAGION] end |
#eyebrows ⇒ Eyebrows
The landmarks of the eyebrows.
423 424 425 426 427 428 429 430 431 432 433 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 423 def eyebrows @eyebrows ||= begin left = Eyebrow.new self[:LEFT_OF_LEFT_EYEBROW], self[:LEFT_EYEBROW_UPPER_MIDPOINT], self[:RIGHT_OF_LEFT_EYEBROW] right = Eyebrow.new self[:LEFT_OF_RIGHT_EYEBROW], self[:RIGHT_EYEBROW_UPPER_MIDPOINT], self[:RIGHT_OF_RIGHT_EYEBROW] Eyebrows.new left, right end end |
#eyes ⇒ Eyes
The landmarks of the eyes.
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 440 def eyes @eyes ||= begin left = Eye.new self[:LEFT_EYE_LEFT_CORNER], self[:LEFT_EYE_BOTTOM_BOUNDARY], self[:LEFT_EYE], self[:LEFT_EYE_PUPIL], self[:LEFT_EYE_TOP_BOUNDARY], self[:LEFT_EYE_RIGHT_CORNER] right = Eye.new self[:RIGHT_EYE_LEFT_CORNER], self[:RIGHT_EYE_BOTTOM_BOUNDARY], self[:RIGHT_EYE], self[:RIGHT_EYE_PUPIL], self[:RIGHT_EYE_TOP_BOUNDARY], self[:RIGHT_EYE_RIGHT_CORNER] Eyes.new left, right end end |
#forehead ⇒ Landmark
The landmark for the forehead glabella.
461 462 463 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 461 def forehead @forehead ||= self[:FOREHEAD_GLABELLA] end |
#inspect ⇒ Object
516 517 518 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 516 def inspect "#<Features #{self}>" end |
#lips ⇒ Lips
The landmarks of the lips.
470 471 472 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 470 def lips @lips ||= Lips.new self[:UPPER_LIP], self[:LOWER_LIP] end |
#mouth ⇒ Mouth
The landmarks of the mouth.
479 480 481 482 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 479 def mouth @mouth ||= Mouth.new self[:MOUTH_LEFT], self[:MOUTH_CENTER], self[:MOUTH_RIGHT] end |
#nose ⇒ Nose
The landmarks of the nose.
489 490 491 492 493 494 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 489 def nose @nose ||= Nose.new self[:NOSE_BOTTOM_LEFT], self[:NOSE_BOTTOM_CENTER], self[:NOSE_TIP], self[:MIDPOINT_BETWEEN_EYES], self[:NOSE_BOTTOM_RIGHT] end |
#to_h ⇒ Hash
Deeply converts object to a hash. All keys will be symbolized.
501 502 503 504 505 506 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 501 def to_h { confidence: confidence, chin: chin.to_h, ears: ears.to_h, eyebrows: eyebrows.to_h, eyes: eyes.to_h, forehead: forehead.to_h, lips: lips.to_h, mouth: mouth.to_h, nose: nose.to_h } end |
#to_s ⇒ Object
509 510 511 512 513 |
# File 'lib/google/cloud/vision/annotation/face.rb', line 509 def to_s # Keep console output low by not showing all sub-objects. "(confidence, chin, ears, eyebrows, eyes, " \ "forehead, lips, mouth, nose)" end |