Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Passing batch of images for faster processing #9

Closed
Neltherion opened this issue May 15, 2018 · 9 comments · Fixed by #133
Closed

Passing batch of images for faster processing #9

Neltherion opened this issue May 15, 2018 · 9 comments · Fixed by #133

Comments

@Neltherion
Copy link

Hi, First of all thanks so much for your effort in bringing MTCNN to Python in an easy usable way.

I wanted to know if there is a way to pass a batch of images (instead of just one image) to the GPU to increase the overall speed of face detections for lots of images.

Thanks again

@ipazc
Copy link
Owner

ipazc commented May 17, 2018

Hello @Neltherion . Right now there isn't a way to process a batch of images, but I'll work on it.
Thank you for the suggestion!

@Neltherion
Copy link
Author

@ipazc Thanks. I'll be watching your progress...

@Vermeille
Copy link

I'm curious, how fast is it on GPU, without batches?

@YaroslavSchubert
Copy link

@Vermeille something like 40-60ms on 1920x1080

@SuperBo
Copy link

SuperBo commented Oct 14, 2019

I also want this features, when will batch of images support be available?

@hbellafkir
Copy link

@ipazc are you still woking on it, or its a dead thing ?

@chaudharyachint08
Copy link

chaudharyachint08 commented Feb 7, 2021

@Vermeille something like 40-60ms on 1920x1080

I tried on GPU instance on Google-colab. For 1280x720 image it took around a second, not at all fast as I was expecting initially

%time _ = face_detector.detect_faces(image)

CPU times: user 1.11 s, sys: 56.2 ms, total: 1.17 s
Wall time: 939 ms

Is it ok to have this high number??

@Vinayrraj
Copy link

Hello @Neltherion . Right now there isn't a way to process a batch of images, but I'll work on it.
Thank you for the suggestion!

Hi @ipazc, if possible will you be able to suggest by when we can expect this feature?

@chaudharyachint08
Copy link

@ipazc Still waiting for Batch level implementation, see if you can help

ipazc pushed a commit that referenced this issue Oct 7, 2024
…tch processing support

- Completely refactored the MTCNN implementation following best coding practices.
- Optimized code by removing unnecessary transpositions, resulting in faster computation. Fixes #22.
- Transposed convolutional layer weights to eliminate the need for additional transpositions during preprocessing and postprocessing, improving overall efficiency.
- Converted preprocessing and postprocessing functions into matrix operations to accelerate computation. Fixes #14, #110.
- Added batch processing support to enhance performance for multiple input images. Fixes #9, #71.
- Migrated network architecture to TensorFlow >= 2.12 for improved compatibility and performance. Fixes #80, #82, #90, #91, #93, #98, #104, #112, #114, #115, #116.
- Extensively documented the project with detailed explanations of thresholds and parameters. Fixes #12, #41, #52, #57, #99, #122, #117.
- Added support for selecting computation backends (CPU, GPU, etc.) with the `device` parameter. Fixes #23.
- Added new parameters to control the result format (support for x1, y1, x2, y2 instead of x1, y1, width, height) and the ability to return tensors instead of dictionaries. Fixes #72.
- Configured PyLint support to ensure code quality and style adherence.
- Organized functions into specific modules (`mtcnn.utils.*` and `mtcnn.stages.*`) for better modularity.
- Created Jupyter notebooks for visualization and ablation studies of each stage, allowing detailed exploration of layers, weights, and intermediate results. Fixes #88, #102.
- Added a comprehensive training guide for the model. Fixes #35, #39.
- Updated README with information on the new version, including the complete Read the Docs documentation that describes the process, theoretical background, and usage examples. Fixes #53, #73.
- Configured GitHub Actions for continuous integration and delivery (CI/CD).
- Fixed memory leak by switching to a more efficient TensorFlow method (`model(tensor)` instead of `model.predict(tensor)`). Fixes #87, #109, #121, #125, #128.
- Made TensorFlow an optional dependency to prevent conflicts with user-installed versions. Fixes #95.
- Added comprehensive unit tests for increased reliability and coverage.
@ipazc ipazc mentioned this issue Oct 8, 2024
@ipazc ipazc closed this as completed in #133 Oct 8, 2024
@ipazc ipazc closed this as completed in b6eba4b Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
8 participants