davisking / dlib

A toolkit for making real world machine learning and data analysis applications in C++
http://dlib.net
Boost Software License 1.0
13.59k stars 3.38k forks source link

GPU advise for 2Mp & 5Mp #1679

Closed MyraBaba closed 5 years ago

MyraBaba commented 5 years ago

Hi,

I wan to detect faces from two camera đź‘Ť one setup is 2Mp (1920x1200)

second is 5Mp

What would be the required GPU for 20 fps proecess?

1080Ti ?

2080..?

any experience & advise or benchmark?

pi-null-mezon commented 5 years ago

Hi, it is not good idea to ask such general question here. In Dlib issues page. But you are lucky, because I am working with face detection. I suggest you to switch to OpenCV, because at a present moment it provides better detection rate and lower inference time than Dlib CNN face detector. Back to your question, it is not good idea to detect faces on such huge image as 1920x1200. In practice, first you should resize image to something about 200x200 or 300x300 and only then perform face detection by CNN. If you will do so, you can achive 30 fps even on CPU!

davisking commented 5 years ago

That’s not what that article says. For instance, it concludes with this:

If you can use a GPU, then MMOD face detector [in dlib] is the best option as it is very fast on GPU and also provides detection at various angles.

MyraBaba commented 5 years ago

We tested heavily Dlib CNN , MMOD & OpenCV CNN & MTCNN

we are happy with the dlib and mtcnn . OpenCV based caffe and not brought a new improvement.

But it all depends the projects , hardware and specifications.

On the other hand Davis would you mind to share the gpu benchmark if you have any. I have a limited budget (4K usd) and want to buy two gpu.

Best

BC

davisking commented 5 years ago

I don’t have such a benchmark.

pi-null-mezon commented 5 years ago

That’s not what that article says. For instance, it concludes with this: If you can use a GPU, then MMOD face detector [in dlib] is the best option as it is very fast on GPU and also provides detection at various angles.

I am not talking about article's concludes. Article just contains performance measurements, but we see only what we want to see.

Edit. I mean both on GPU and CPU version Opencv CNN face detectors works faster and accurate than Dlib MMOD face detector.

xsacha commented 5 years ago

I have such benchmarks but it requires a proper chain/flow of detections and recognition, keeping everything in CUDA. For a single stream at 20 fps you do not even need a GPU. This can be done on CPU. You can easily do 10x 1080p streams on a GTX 1060, 15 streams on a GTX 1080. The limitation is on video decode engine of your GPU. I have a calculator for this but it specific for my application (and other models).

Pascal gives a far better headroom than any previous gen. Turing doesn't help much over Pascal.

MyraBaba commented 5 years ago

@xsacha Thanks for the information . I would love to get more information about the how you did the 10 x 1080p detection at full 25fps speed . Just detection . Recognition handled by other machine.

We are using opencv to capture h264 / ts stream and feeding the frames . All code in c++

Best

xsacha commented 5 years ago

You can do it all on the same machine. For the detection? You can just use OpenCV cuda multiscaledetect. Pick a decently fast Cascade. Set reasonable min face size like 32.

The trick is to keep everything on GPU.

dlib-issue-bot commented 5 years ago

Warning: this issue has been inactive for 35 days and will be automatically closed on 2019-05-02 if there is no further activity.

If you are waiting for a response but haven't received one it's possible your question is somehow inappropriate. E.g. it is off topic, you didn't follow the issue submission instructions, or your question is easily answerable by reading the FAQ, dlib's official compilation instructions, dlib's API documentation, or a Google search.

dlib-issue-bot commented 5 years ago

Warning: this issue has been inactive for 42 days and will be automatically closed on 2019-05-02 if there is no further activity.

If you are waiting for a response but haven't received one it's possible your question is somehow inappropriate. E.g. it is off topic, you didn't follow the issue submission instructions, or your question is easily answerable by reading the FAQ, dlib's official compilation instructions, dlib's API documentation, or a Google search.

dlib-issue-bot commented 5 years ago

Notice: this issue has been closed because it has been inactive for 45 days. You may reopen this issue if it has been closed in error.