takuya-takeuchi / FaceRecognitionDotNet

The world's simplest facial recognition api for .NET on Windows, MacOS and Linux
MIT License
1.27k stars 309 forks source link

Simple question #74

Closed Sanelle2001 closed 4 years ago

Sanelle2001 commented 5 years ago

After testing the standard version I tried to use MKL and CUDA Versions to see a better performance. In both versions I get the exception "Module not found". Can you please tell me wich files I need to copy into the application directory.

Best Regards

Franz

takuya-takeuchi commented 5 years ago

I assume you use windows. You can refer https://github.com/takuya-takeuchi/FaceRecognitionDotNet/wiki/Quickstart#install-dependencies

Sanelle2001 commented 5 years ago

Thank you for your Help. All three versions are running now. When I compare the face finding times on all three versions I get nearly the same speed on my development system.

I use RealSense Camera on a Threadripper 2950X with RTX2080.

Resolution is 640x480Px. My Distance to the camara is about 60cm.

Processing times are

Normal: 155-160ms CUDA: 155 - 160ms MKL: 160-165ms

Are this expetable values or is there something strange because I have expected better results on CUDA.

Best Regards

Franz

takuya-takeuchi commented 5 years ago

It is very weird. CUDA and MKL may get near performance. But cpu should not get high performance near gpu.

You can check performance by using https://github.com/takuya-takeuchi/FaceRecognitionDotNet/tree/master/examples/Benchmark You try each nuget package and can see detail performance.

Reference

https://github.com/takuya-takeuchi/FaceRecognitionDotNet/issues/4#issuecomment-421353167

Sanelle2001 commented 5 years ago

I did the Benchmark runns on two systems. You are right, CUDA and MKL are much faster than the normal lib if you look on encode face. (480p normal: 3.45fps, MKL: 39.06fps, CUDA: 250fps)

Find face positions has nearly the same performance ((480p normal: 4.62fps, MKL: 4.61fps, CUDA: 4.57fps).

I hoped CUDA or MKL had a bigger influence on finding faces because this is the job I have to do in a project.

Is there a possibility to increase the face finding speed with on of these libs? 2019-11-20 Bench FaceRecognitionDotNet.xlsx

takuya-takeuchi commented 5 years ago

@Sanelle2001 It is specification. Because dlib frontal_face_detector does not use GPU. https://github.com/davisking/dlib/issues/1421

You can choice CNN face detection by passing Model .Cnn to FaceLocations method. It could use GPU but I didn'tr use CNN. Because original implemenration, face_recognition uses hog flag as default.

Sanelle2001 commented 5 years ago

Thank you for the Hint,

I have added some additional Benchmark Results to the attached Excel Sheet. CUDA has now influence on Result, the default settings for Face - Finder are realy the better choise, only my fast development computer has a big advantige from CUDA in face finding.

I will stop here and thank you for this project, it was nice to work with this API!

2019-11-20.Bench.FaceRecognitionDotNet.xlsx

takuya-takeuchi commented 4 years ago

It seems the reporter agree with my answer.