In this example, you learn how to implement inference code with a pytorch model to detect faces in an image.
Server model:
The source code can be found at RetinaFaceDetection.java.
The model github can be found at Pytorch_Retinaface.
Lightweight model:
The source code can be found at LightFaceDetection.java.
The model github can be found at Ultra-Light-Fast-Generic-Face-Detector-1MB.
To configure your development environment, follow setup.
You can find the image used in this example in the project test resource folder: src/test/resources/largest_selfie.jpg
Use the following command to run the project:
cd examples
./gradlew run -Dmain=ai.djl.examples.inference.face.RetinaFaceDetection
./gradlew run -Dmain=ai.djl.examples.inference.face.LightFaceDetection
Your output should look like the following:
[INFO ] - Face detection result image has been saved in: build/output/retinaface_detected.png
[INFO ] - [
{"class": "Face", "probability": 0.99993, "bounds": {"x"=0.552, "y"=0.762, "width"=0.071, "height"=0.156}}
{"class": "Face", "probability": 0.99992, "bounds": {"x"=0.696, "y"=0.665, "width"=0.071, "height"=0.155}}
{"class": "Face", "probability": 0.99976, "bounds": {"x"=0.176, "y"=0.778, "width"=0.033, "height"=0.073}}
{"class": "Face", "probability": 0.99961, "bounds": {"x"=0.934, "y"=0.686, "width"=0.032, "height"=0.068}}
{"class": "Face", "probability": 0.99949, "bounds": {"x"=0.026, "y"=0.756, "width"=0.039, "height"=0.078}}
]
An output image with bounding box will be saved as build/output/retinaface_detected.png:
(For lightweight model, should be ultranet_detected.png)