Skip to content

Commit

Permalink
Merge branch 'release/1.2.3.14'
Browse files Browse the repository at this point in the history
  • Loading branch information
takuya-takeuchi committed Mar 1, 2020
2 parents 1d99e43 + c4391aa commit c49143a
Show file tree
Hide file tree
Showing 192 changed files with 7,503 additions and 557 deletions.
16 changes: 16 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Reporting Issues

### Before submitting a issue

- Please check that if is already reported
- Please check whether your issue can be resolved by wiki

### How to submit a issue report

- Please follow the issue template as possible
- Especially, please write your environmental and package name.

## Pull Requests

- Please follow pull request template as possible
- Please select target branch to "develop" branch.
8 changes: 1 addition & 7 deletions ExecuteTest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@ if ([string]::IsNullOrEmpty($token))

Write-Host "Environmental Value 'CODECOV_TOKEN' is ${token}." -ForegroundColor Green

$Current = Get-Location
$CoverageDir = Join-Path $Current CoverageResults
if (!(Test-Path "$CoverageDir"))
{
New-Item "$CoverageDir" -ItemType Directory > $null
}

# install coverlet
dotnet tool install --global coverlet.console --version $CoverletVersion > $null
dotnet add test\FaceRecognitionDotNet.Tests\FaceRecognitionDotNet.Tests.csproj package coverlet.msbuild > $null
# install codecov but it is not used from test project
dotnet add test\FaceRecognitionDotNet.Tests\FaceRecognitionDotNet.Tests.csproj package Codecov --version $CodecovVersion > $null

Expand Down
39 changes: 30 additions & 9 deletions FaceRecognitionDotNet.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2000
# Visual Studio Version 16
VisualStudioVersion = 16.0.29806.167
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2F845E5F-E6B9-46D5-B5D8-52BEE4B463F0}"
EndProject
Expand All @@ -11,8 +11,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DlibDotNet", "src\DlibDotNe
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{501D0145-416F-42A7-B636-02A4F783C97C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaceRecognitionDotNet.Tests", "test\FaceRecognitionDotNet.Tests\FaceRecognitionDotNet.Tests.csproj", "{EB355E8B-8070-4221-9CB9-7BD0655DC9A8}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{FEEAC07F-70D7-4C12-B92C-153CEE0F2539}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaceEncodingPerformance", "examples\FaceEncodingPerformance\FaceEncodingPerformance.csproj", "{D0CB4212-16D2-4DE5-8A26-83AF5E24C7D3}"
Expand All @@ -27,6 +25,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelenTraining", "examples\H
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FindFacesInBatches", "examples\FindFacesInBatches\FindFacesInBatches.csproj", "{5F7CB2DF-54E3-461F-9FA9-F8B4BAFC54AC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GenderTraining", "examples\GenderTraining\GenderTraining.csproj", "{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AgeTraining", "examples\AgeTraining\AgeTraining.csproj", "{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaceRecognitionDotNet.Tests", "test\FaceRecognitionDotNet.Tests\FaceRecognitionDotNet.Tests.csproj", "{28A36B74-6D83-47B4-9AD6-A252902DBC99}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomClassificationDemo", "examples\CustomClassificationDemo\CustomClassificationDemo.csproj", "{F4092804-340D-4553-B9E5-7C6555D317B7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -41,10 +47,6 @@ Global
{BC72B97F-9631-4550-8DAC-5F96FF7DE9EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC72B97F-9631-4550-8DAC-5F96FF7DE9EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC72B97F-9631-4550-8DAC-5F96FF7DE9EB}.Release|Any CPU.Build.0 = Release|Any CPU
{EB355E8B-8070-4221-9CB9-7BD0655DC9A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB355E8B-8070-4221-9CB9-7BD0655DC9A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB355E8B-8070-4221-9CB9-7BD0655DC9A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB355E8B-8070-4221-9CB9-7BD0655DC9A8}.Release|Any CPU.Build.0 = Release|Any CPU
{D0CB4212-16D2-4DE5-8A26-83AF5E24C7D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0CB4212-16D2-4DE5-8A26-83AF5E24C7D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0CB4212-16D2-4DE5-8A26-83AF5E24C7D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -69,20 +71,39 @@ Global
{5F7CB2DF-54E3-461F-9FA9-F8B4BAFC54AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F7CB2DF-54E3-461F-9FA9-F8B4BAFC54AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F7CB2DF-54E3-461F-9FA9-F8B4BAFC54AC}.Release|Any CPU.Build.0 = Release|Any CPU
{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F}.Release|Any CPU.Build.0 = Release|Any CPU
{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD}.Release|Any CPU.Build.0 = Release|Any CPU
{28A36B74-6D83-47B4-9AD6-A252902DBC99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{28A36B74-6D83-47B4-9AD6-A252902DBC99}.Debug|Any CPU.Build.0 = Debug|Any CPU
{28A36B74-6D83-47B4-9AD6-A252902DBC99}.Release|Any CPU.ActiveCfg = Release|Any CPU
{28A36B74-6D83-47B4-9AD6-A252902DBC99}.Release|Any CPU.Build.0 = Release|Any CPU
{F4092804-340D-4553-B9E5-7C6555D317B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F4092804-340D-4553-B9E5-7C6555D317B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F4092804-340D-4553-B9E5-7C6555D317B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F4092804-340D-4553-B9E5-7C6555D317B7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{85AB4F26-48B7-4A21-A6C7-14EA6608B539} = {2F845E5F-E6B9-46D5-B5D8-52BEE4B463F0}
{BC72B97F-9631-4550-8DAC-5F96FF7DE9EB} = {2F845E5F-E6B9-46D5-B5D8-52BEE4B463F0}
{EB355E8B-8070-4221-9CB9-7BD0655DC9A8} = {501D0145-416F-42A7-B636-02A4F783C97C}
{D0CB4212-16D2-4DE5-8A26-83AF5E24C7D3} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{32599FBF-8E91-43BA-B0B6-38E3C7A02530} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{49ED9EF1-7E3E-4959-B152-52545B973906} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{3F6F21E5-DEF8-4F1A-BE8F-741A35B528D1} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{FCCD585F-1D3E-4AFB-9644-DAEC7B8CA6C4} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{5F7CB2DF-54E3-461F-9FA9-F8B4BAFC54AC} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{EAB3D0C4-D2E0-4F6A-A663-041B5584FF1F} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{8595BAC7-7EEC-49E6-9D78-01AFB15A30FD} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
{28A36B74-6D83-47B4-9AD6-A252902DBC99} = {501D0145-416F-42A7-B636-02A4F783C97C}
{F4092804-340D-4553-B9E5-7C6555D317B7} = {FEEAC07F-70D7-4C12-B92C-153CEE0F2539}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4D44C572-D749-4A76-A199-8C598A08AE8A}
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018-2019 Takuya Takeuchi
Copyright (c) 2018-2020 Takuya Takeuchi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
41 changes: 33 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ![Alt text](nuget/face48.png "FaceRecognition.Net") FaceRecognition.Net [![GitHub license](https://img.shields.io/github/license/mashape/apistatus.svg)]() [![codecov](https://codecov.io/gh/takuya-takeuchi/FaceRecognitionDotNet/branch/master/graph/badge.svg)](https://codecov.io/gh/takuya-takeuchi/FaceRecognitionDotNet)
# ![Alt text](nuget/face48.png "FaceRecognitionDotNet") FaceRecognitionDotNet [![GitHub license](https://img.shields.io/github/license/mashape/apistatus.svg)]() [![codecov](https://codecov.io/gh/takuya-takeuchi/FaceRecognitionDotNet/branch/master/graph/badge.svg)](https://codecov.io/gh/takuya-takeuchi/FaceRecognitionDotNet)

The world's simplest facial recognition api for .NET
This repository is porting https://github.com/ageitgey/face_recognition by C#.
Expand Down Expand Up @@ -28,23 +28,48 @@ This package supports cross platform, Windows, Linux and MacOSX!!

##### :warning: FaceRecognitionDotNet for ARM is not tested yet

## Support API

|face_recognition API|Corresponding API|Note|
|----|----|:----|
|batch_face_locations|BatchFaceLocations||
|compare_faces|CompareFaces||
|face_distance|FaceDistance||
|face_encodings|FaceEncodings||
|face_landmarks|FaceLandmarks|And support **Helen dataset** :warning:|
|face_locations|FaceLocations||
|load_image_file|LoadImageFile||
|-|LoadImage|From memory data|
|-|PredictAge|Use **Adience Benchmark Of Unfiltered Faces For Gender And Age Classification dataset** :warning:|
|-|PredictGender|Use **UTKFace dataset** :warning:|
|-|PredictProbabilityAge|Use **Adience Benchmark Of Unfiltered Faces For Gender And Age Classification dataset** :warning:|
|-|PredictProbabilityGender|Use **UTKFace dataset** :warning:|

##### :warning: Warning

You must train dataset by yourself.
I will **NOT** provide pretrained model file due to avoiding license issue.
You can check the following examples to train dataset.

* examples/AgeTraining
* examples/GenderTraining
* examples/HelenTraining

## Demo

#### Face Recognition

<img src="images/1.png"/>
<img src="images/1.png" width="480"/>

<img src="images/2.png"/>
<img src="images/2.png" width="480"/>

#### Face Landmark

<img src="images/3.jpg"/>
<img src="images/3.jpg" width="240"/>

##### :bulb: NOTE
#### Age and Gender Classification

The above landmark is generated by **Helen dataset**.
Please check http://www.ifp.illinois.edu/~vuongle2/helen/ and create model file by **examples/HelenTraining**.
I will **NOT** provide pretrained model file.
<img src="examples/CustomClassificationDemo/images/result.png" width="240"/>

## Dependencies Libraries and Products

Expand Down
3 changes: 3 additions & 0 deletions examples/AgeTraining/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Adience*/
adience-age-network*
shape_predictor_5_face_landmarks.dat
24 changes: 24 additions & 0 deletions examples/AgeTraining/AgeTraining.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<Authors>Takuya Takeuchi</Authors>
<Description>Example of FaceRecognitionDotNet</Description>
<Company />
<Configurations>Debug;Release</Configurations>
</PropertyGroup>

<ItemGroup>
<Compile Include="..\..\src\FaceRecognitionDotNet\PInvoke\Dnn\AgeClassification\Loss\LossMulticlassLog.cs" Link="LossMulticlassLog.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.CommandLineUtils" Version="1.1.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\DlibDotNet\src\DlibDotNet\DlibDotNet.csproj" />
</ItemGroup>

</Project>
Loading

0 comments on commit c49143a

Please sign in to comment.