Skip to content

Commit

Permalink
Merge pull request #9 from cyberlabsai/feat/enroll
Browse files Browse the repository at this point in the history
User enroll
  • Loading branch information
TeruyaHaroldo authored Aug 30, 2021
2 parents 03e6113 + 9ee1d13 commit 3892613
Show file tree
Hide file tree
Showing 20 changed files with 673 additions and 218 deletions.
42 changes: 23 additions & 19 deletions Example/PerseLiteDemo/PerseLiteDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,18 @@
5C29525426543179008E35F7 /* dog.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 5C29525326543179008E35F7 /* dog.jpeg */; };
5C29527E26543FEB008E35F7 /* FileUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C29527D26543FEB008E35F7 /* FileUtils.swift */; };
5C29528226544A7B008E35F7 /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C29528126544A7B008E35F7 /* Environment.swift */; };
5C38E9FE265D5CB500922B91 /* PerseLiteFaceDetectWithDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C38E9FD265D5CB500922B91 /* PerseLiteFaceDetectWithDataTests.swift */; };
5C38E9FE265D5CB500922B91 /* FaceDetectWithDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C38E9FD265D5CB500922B91 /* FaceDetectWithDataTests.swift */; };
5C38EA06265D601B00922B91 /* DataUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C38EA05265D601B00922B91 /* DataUtils.swift */; };
5C38EA12265D69C300922B91 /* PerseLiteFaceCompareWithDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C38EA11265D69C300922B91 /* PerseLiteFaceCompareWithDataTests.swift */; };
5C38EA12265D69C300922B91 /* FaceCompareWithDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C38EA11265D69C300922B91 /* FaceCompareWithDataTests.swift */; };
5C41242926554C8C00C02049 /* PerseLiteUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C41242826554C8C00C02049 /* PerseLiteUtils.swift */; };
5C412453265594DA00C02049 /* PerseLiteFaceCompareWithFileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C412452265594DA00C02049 /* PerseLiteFaceCompareWithFileTests.swift */; };
5C412453265594DA00C02049 /* FaceCompareWithFileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C412452265594DA00C02049 /* FaceCompareWithFileTests.swift */; };
5C73AAD52681184E0028435B /* PerseLiteCameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C73AAD42681184E0028435B /* PerseLiteCameraViewController.swift */; };
5CB416AB2652F08E00B7D1EC /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB416AA2652F08E00B7D1EC /* Environment.swift */; };
5CB8011E26D43DE40060B031 /* FaceEnrollmentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB8011D26D43DE40060B031 /* FaceEnrollmentTests.swift */; };
5CE123D8264AF36600D484A1 /* FileUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CE123D7264AF36600D484A1 /* FileUtils.swift */; };
5CE123ED264B087800D484A1 /* PerseLiteCompareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CE123EC264B087800D484A1 /* PerseLiteCompareViewController.swift */; };
5CE1241C264C0F4E00D484A1 /* TableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CE1241B264C0F4E00D484A1 /* TableCell.swift */; };
5CF64E722653F546004763E3 /* PerseLiteFaceDetectWithFileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF64E712653F546004763E3 /* PerseLiteFaceDetectWithFileTests.swift */; };
5CF64E722653F546004763E3 /* FaceDetectWithFileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF64E712653F546004763E3 /* FaceDetectWithFileTests.swift */; };
6176EFC2252E496D00F4D4DD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6176EFC1252E496D00F4D4DD /* AppDelegate.swift */; };
6176EFC4252E496D00F4D4DD /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6176EFC3252E496D00F4D4DD /* SceneDelegate.swift */; };
6176EFC9252E496D00F4D4DD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6176EFC7252E496D00F4D4DD /* Main.storyboard */; };
Expand All @@ -47,27 +48,28 @@

/* Begin PBXFileReference section */
473A706C75D8CFF00C492CD5 /* Pods_PerseLiteDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PerseLiteDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5C06E54725D1F09A00E6770F /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
5C06E54725D1F09A00E6770F /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = "<group>"; };
5C06E5A925D1FBC500E6770F /* PerseLite.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PerseLite.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5C0D7B572656C9CB00A24232 /* human2.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = human2.jpeg; sourceTree = "<group>"; };
5C0D7B582656C9CB00A24232 /* human.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = human.jpeg; sourceTree = "<group>"; };
5C0D7B652656CAFB00A24232 /* human1.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = human1.jpeg; sourceTree = "<group>"; };
5C29525326543179008E35F7 /* dog.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = dog.jpeg; sourceTree = "<group>"; };
5C29527D26543FEB008E35F7 /* FileUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = "<group>"; };
5C29528126544A7B008E35F7 /* Environment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Environment.swift; sourceTree = "<group>"; };
5C38E9FD265D5CB500922B91 /* PerseLiteFaceDetectWithDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteFaceDetectWithDataTests.swift; sourceTree = "<group>"; };
5C38E9FD265D5CB500922B91 /* FaceDetectWithDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceDetectWithDataTests.swift; sourceTree = "<group>"; };
5C38EA05265D601B00922B91 /* DataUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataUtils.swift; sourceTree = "<group>"; };
5C38EA11265D69C300922B91 /* PerseLiteFaceCompareWithDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteFaceCompareWithDataTests.swift; sourceTree = "<group>"; };
5C38EA11265D69C300922B91 /* FaceCompareWithDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceCompareWithDataTests.swift; sourceTree = "<group>"; };
5C41242826554C8C00C02049 /* PerseLiteUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteUtils.swift; sourceTree = "<group>"; };
5C412452265594DA00C02049 /* PerseLiteFaceCompareWithFileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteFaceCompareWithFileTests.swift; sourceTree = "<group>"; };
5C412452265594DA00C02049 /* FaceCompareWithFileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceCompareWithFileTests.swift; sourceTree = "<group>"; };
5C73AAD42681184E0028435B /* PerseLiteCameraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteCameraViewController.swift; sourceTree = "<group>"; };
5C99706026C56F190005D2D1 /* Development.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Development.xcconfig; sourceTree = "<group>"; };
5CB416AA2652F08E00B7D1EC /* Environment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Environment.swift; sourceTree = "<group>"; };
5CB8011D26D43DE40060B031 /* FaceEnrollmentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceEnrollmentTests.swift; sourceTree = "<group>"; };
5CE123D7264AF36600D484A1 /* FileUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = "<group>"; };
5CE123EC264B087800D484A1 /* PerseLiteCompareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerseLiteCompareViewController.swift; sourceTree = "<group>"; };
5CE1241B264C0F4E00D484A1 /* TableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableCell.swift; sourceTree = "<group>"; };
5CF64E672653F51F004763E3 /* PerseLiteDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PerseLiteDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
5CF64E712653F546004763E3 /* PerseLiteFaceDetectWithFileTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerseLiteFaceDetectWithFileTests.swift; sourceTree = "<group>"; };
5CF64E712653F546004763E3 /* FaceDetectWithFileTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FaceDetectWithFileTests.swift; sourceTree = "<group>"; };
5CF64E732653F555004763E3 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
6176EFBE252E496D00F4D4DD /* PerseLiteDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PerseLiteDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
6176EFC1252E496D00F4D4DD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -120,14 +122,15 @@
children = (
5CF64E732653F555004763E3 /* Info.plist */,
5C2952522654316E008E35F7 /* Assets */,
5C412452265594DA00C02049 /* PerseLiteFaceCompareWithFileTests.swift */,
5C38EA11265D69C300922B91 /* PerseLiteFaceCompareWithDataTests.swift */,
5C412452265594DA00C02049 /* FaceCompareWithFileTests.swift */,
5C38EA11265D69C300922B91 /* FaceCompareWithDataTests.swift */,
5C41242826554C8C00C02049 /* PerseLiteUtils.swift */,
5C29527D26543FEB008E35F7 /* FileUtils.swift */,
5C29528126544A7B008E35F7 /* Environment.swift */,
5C38E9FD265D5CB500922B91 /* PerseLiteFaceDetectWithDataTests.swift */,
5CF64E712653F546004763E3 /* PerseLiteFaceDetectWithFileTests.swift */,
5C38E9FD265D5CB500922B91 /* FaceDetectWithDataTests.swift */,
5CF64E712653F546004763E3 /* FaceDetectWithFileTests.swift */,
5C38EA05265D601B00922B91 /* DataUtils.swift */,
5CB8011D26D43DE40060B031 /* FaceEnrollmentTests.swift */,
);
path = PerseLiteDemoTests;
sourceTree = "<group>";
Expand Down Expand Up @@ -384,13 +387,14 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5CF64E722653F546004763E3 /* PerseLiteFaceDetectWithFileTests.swift in Sources */,
5C38E9FE265D5CB500922B91 /* PerseLiteFaceDetectWithDataTests.swift in Sources */,
5CF64E722653F546004763E3 /* FaceDetectWithFileTests.swift in Sources */,
5C38E9FE265D5CB500922B91 /* FaceDetectWithDataTests.swift in Sources */,
5C29528226544A7B008E35F7 /* Environment.swift in Sources */,
5C38EA06265D601B00922B91 /* DataUtils.swift in Sources */,
5C38EA12265D69C300922B91 /* PerseLiteFaceCompareWithDataTests.swift in Sources */,
5C38EA12265D69C300922B91 /* FaceCompareWithDataTests.swift in Sources */,
5C29527E26543FEB008E35F7 /* FileUtils.swift in Sources */,
5C412453265594DA00C02049 /* PerseLiteFaceCompareWithFileTests.swift in Sources */,
5CB8011E26D43DE40060B031 /* FaceEnrollmentTests.swift in Sources */,
5C412453265594DA00C02049 /* FaceCompareWithFileTests.swift in Sources */,
5C41242926554C8C00C02049 /* PerseLiteUtils.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -628,7 +632,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.1;
MARKETING_VERSION = 0.3.0;
PRODUCT_BUNDLE_IDENTIFIER = ai.cyberlabs.perselitedemo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -661,7 +665,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.1;
MARKETING_VERSION = 0.3.0;
PRODUCT_BUNDLE_IDENTIFIER = ai.cyberlabs.perselitedemo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,13 +430,13 @@
<outlet property="faceImageView" destination="xxV-i1-DII" id="4xn-gJ-OdM"/>
<outlet property="faceSharpnessIcon" destination="WPu-kS-8TP" id="Qbt-0V-JkN"/>
<outlet property="faceSharpnessLabel" destination="erk-IZ-RD0" id="1Tm-FU-Kvw"/>
<outlet property="faceUnderexposeIcon" destination="0Os-tg-VbW" id="0zn-tL-ISD"/>
<outlet property="faceUnderexposeLabel" destination="wTh-wl-QgW" id="SQu-UW-mJp"/>
<outlet property="faceUnderexposureIcon" destination="0Os-tg-VbW" id="0zn-tL-ISD"/>
<outlet property="faceUnderexposureLabel" destination="wTh-wl-QgW" id="SQu-UW-mJp"/>
<outlet property="horizontalMovementLabel" destination="Vjh-Tq-NTe" id="gLs-by-UDj"/>
<outlet property="imageSharpnessIcon" destination="1MD-M9-0WD" id="uJz-SI-NOv"/>
<outlet property="imageSharpnessLabel" destination="tgb-NI-khN" id="XMq-xe-ZIG"/>
<outlet property="imageUnderexposeIcon" destination="nPW-mh-2IT" id="xkj-Wh-JCE"/>
<outlet property="imageUnderexposeLabel" destination="KXB-IT-YlQ" id="xd2-5b-bbB"/>
<outlet property="imageUnderexposureIcon" destination="nPW-mh-2IT" id="xkj-Wh-JCE"/>
<outlet property="imageUnderexposureLabel" destination="KXB-IT-YlQ" id="xd2-5b-bbB"/>
<outlet property="leftEyeIcon" destination="JXt-H2-LPQ" id="iQO-X1-Bvx"/>
<outlet property="leftEyeLabel" destination="fdh-29-Lok" id="k5l-oV-aYo"/>
<outlet property="rightEyeIcon" destination="CY9-uo-oyZ" id="CDJ-mn-DmU"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ class PerseLiteCameraViewController:
@IBOutlet var verticalMovementLabel: UILabel!
@IBOutlet var tiltMovementLabel: UILabel!

@IBOutlet var faceUnderexposeLabel: UILabel!
@IBOutlet var faceUnderexposeIcon: UIImageView!
@IBOutlet var faceUnderexposureLabel: UILabel!
@IBOutlet var faceUnderexposureIcon: UIImageView!

@IBOutlet var faceSharpnessLabel: UILabel!
@IBOutlet var faceSharpnessIcon: UIImageView!

@IBOutlet var imageUnderexposeLabel: UILabel!
@IBOutlet var imageUnderexposeIcon: UIImageView!
@IBOutlet var imageUnderexposureLabel: UILabel!
@IBOutlet var imageUnderexposureIcon: UIImageView!

@IBOutlet var imageSharpnessLabel: UILabel!
@IBOutlet var imageSharpnessIcon: UIImageView!
Expand Down Expand Up @@ -86,14 +86,14 @@ class PerseLiteCameraViewController:
}

self.faceImageView.image = image
let face: FaceResponse = detectResponse.faces[0]
let face: PerseAPIResponse.Face.Face = detectResponse.faces[0]

self.setSpoofingValidation(
valid: face.livenessScore >= detectResponse.defaultThresholds.liveness
)
self.handleDisplayProbability(
label: self.faceUnderexposeLabel,
icon: self.faceUnderexposeIcon,
label: self.faceUnderexposureLabel,
icon: self.faceUnderexposureIcon,
validation: face.faceMetrics.underexposure > detectResponse.defaultThresholds.underexposure,
value: face.faceMetrics.underexposure
)
Expand All @@ -104,8 +104,8 @@ class PerseLiteCameraViewController:
value: face.faceMetrics.sharpness
)
self.handleDisplayProbability(
label: self.imageUnderexposeLabel,
icon: self.imageUnderexposeIcon,
label: self.imageUnderexposureLabel,
icon: self.imageUnderexposureIcon,
validation: detectResponse.imageMetrics.underexposure > detectResponse.defaultThresholds.underexposure,
value: detectResponse.imageMetrics.underexposure
)
Expand Down Expand Up @@ -247,12 +247,12 @@ class PerseLiteCameraViewController:
self.horizontalMovementLabel.text = "-"
self.verticalMovementLabel.text = "-"
self.tiltMovementLabel.text = "-"
self.faceUnderexposeLabel.text = "-"
self.handleResetIcon(icon: self.faceUnderexposeIcon)
self.faceUnderexposureLabel.text = "-"
self.handleResetIcon(icon: self.faceUnderexposureIcon)
self.faceSharpnessLabel.text = "-"
self.handleResetIcon(icon: self.faceSharpnessIcon)
self.imageUnderexposeLabel.text = "-"
self.handleResetIcon(icon: self.imageUnderexposeIcon)
self.imageUnderexposureLabel.text = "-"
self.handleResetIcon(icon: self.imageUnderexposureIcon)
self.imageSharpnessLabel.text = "-"
self.handleResetIcon(icon: self.imageSharpnessIcon)
self.cameraView.setDetectionBoxColor(0, 1, 1, 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ class PerseLiteDetectViewController:
detectResponse.totalFaces
))

guard let faces = detectResponse.faces as Array<FaceResponse>? else {
guard let faces = detectResponse.faces as Array<PerseAPIResponse.Face.Face>? else {
return
}

Expand All @@ -140,7 +140,7 @@ class PerseLiteDetectViewController:
face.faceMetrics.overexposure
))
self.tablecells.append(TableCell(
"Underexpose",
"Underexposure",
face.faceMetrics.underexposure
))
self.tablecells.append(TableCell(
Expand All @@ -154,7 +154,7 @@ class PerseLiteDetectViewController:
detectResponse.imageMetrics.overexposure
))
self.tablecells.append(TableCell(
"Underexpose",
"Underexposure",
detectResponse.imageMetrics.underexposure
))
self.tablecells.append(TableCell(
Expand Down
2 changes: 1 addition & 1 deletion Example/PerseLiteDemo/PerseLiteDemoTests/DataUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Foundation
import UIKit

func getTempData(name: String) -> Data? {
guard let fileUrl: URL = Bundle(for: PerseLiteFaceDetectWithDataTests.self)
guard let fileUrl: URL = Bundle(for: FaceDetectWithDataTests.self)
.url(
forResource: name,
withExtension: "jpeg"
Expand Down
Loading

0 comments on commit 3892613

Please sign in to comment.