Class: Gcloud::Vision::Annotation::Face::Features
- Inherits:
-
Object
- Object
- Gcloud::Vision::Annotation::Face::Features
- Defined in:
- lib/gcloud/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_gapi(gapi) ⇒ 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_hash ⇒ Hash
Deeply converts object to a hash.
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Features
Returns a new instance of Features.
400 401 402 |
# File 'lib/gcloud/vision/annotation/face.rb', line 400 def initialize @gapi = {} end |
Instance Attribute Details
#gapi ⇒ Object
396 397 398 |
# File 'lib/gcloud/vision/annotation/face.rb', line 396 def gapi @gapi end |
Class Method Details
.from_gapi(gapi) ⇒ Object
object.
578 579 580 |
# File 'lib/gcloud/vision/annotation/face.rb', line 578 def self.from_gapi gapi new.tap { |f| f.instance_variable_set :@gapi, gapi } end |
Instance Method Details
#[](landmark_type) ⇒ Landmark
Returns the facial landmark for the provided type code.
API](https://cloud.google.com/vision/reference/rest/v1/images/annotate#Type_1).
437 438 439 440 441 442 443 |
# File 'lib/gcloud/vision/annotation/face.rb', line 437 def [] landmark_type landmark = Array(@gapi["landmarks"]).detect do |l| l["type"] == landmark_type end return nil if landmark.nil? Landmark.from_gapi landmark end |
#chin ⇒ Chin
The landmarks of the chin.
450 451 452 453 |
# File 'lib/gcloud/vision/annotation/face.rb', line 450 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.
409 410 411 |
# File 'lib/gcloud/vision/annotation/face.rb', line 409 def confidence @gapi["landmarkingConfidence"] end |
#ears ⇒ Ears
The landmarks of the ears.
460 461 462 463 |
# File 'lib/gcloud/vision/annotation/face.rb', line 460 def ears @ears ||= Ears.new self["LEFT_EAR_TRAGION"], self["RIGHT_EAR_TRAGION"] end |
#eyebrows ⇒ Eyebrows
The landmarks of the eyebrows.
470 471 472 473 474 475 476 477 478 479 480 |
# File 'lib/gcloud/vision/annotation/face.rb', line 470 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.
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 |
# File 'lib/gcloud/vision/annotation/face.rb', line 487 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.
508 509 510 |
# File 'lib/gcloud/vision/annotation/face.rb', line 508 def forehead @forehead ||= self["FOREHEAD_GLABELLA"] end |
#inspect ⇒ Object
571 572 573 |
# File 'lib/gcloud/vision/annotation/face.rb', line 571 def inspect "#<Features #{self}>" end |
#lips ⇒ Lips
The landmarks of the lips.
517 518 519 |
# File 'lib/gcloud/vision/annotation/face.rb', line 517 def lips @lips ||= Lips.new self["UPPER_LIP"], self["LOWER_LIP"] end |
#mouth ⇒ Mouth
The landmarks of the mouth.
526 527 528 529 |
# File 'lib/gcloud/vision/annotation/face.rb', line 526 def mouth @mouth ||= Mouth.new self["MOUTH_LEFT"], self["MOUTH_CENTER"], self["MOUTH_RIGHT"] end |
#nose ⇒ Nose
The landmarks of the nose.
536 537 538 539 540 541 |
# File 'lib/gcloud/vision/annotation/face.rb', line 536 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.
548 549 550 |
# File 'lib/gcloud/vision/annotation/face.rb', line 548 def to_h to_hash end |
#to_hash ⇒ Hash
Deeply converts object to a hash. All keys will be symbolized.
557 558 559 560 561 |
# File 'lib/gcloud/vision/annotation/face.rb', line 557 def to_hash { 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
564 565 566 567 568 |
# File 'lib/gcloud/vision/annotation/face.rb', line 564 def to_s # Keep console output low by not showing all sub-objects. "(confidence, chin, ears, eyebrows, eyes, " \ "forehead, lips, mouth, nose)" end |