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 |