# RetinaFace Face Detection
*author: David Wang*
## Description
This operator detects faces in the images by using [RetinaFace](https://arxiv.org/abs/1905.00641) Detector. It will return the bounding box positions and the confidence scores of detected faces. This repository is an adaptation from [biubug6/Pytorch_Retinaface](https://github.com/biubug6/Pytorch_Retinaface).
## Code Example
Load an image from path './turing.png' and use the pre-trained RetinaFace model to generate face bounding boxes and confidence scores.
*Write a pipeline with explicit inputs/outputs name specifications:*
```python
from towhee import pipe, ops, DataCollection
p = (
pipe.input('path')
.map('path', 'img', ops.image_decode())
.map('img', ('bbox','score'), ops.face_detection.retinaface())
.map(('img', 'bbox'),'crop', ops.image_crop())
.output('img', 'crop', 'bbox', 'score')
)
DataCollection(p('turing.png')).show()
```
## Factory Constructor
Create the operator via the following factory method:
***face_detection.retinaface()***
## Interface
A face detection operator takes an image as input. It generates the bounding box positions and confidence scores in ndarray.
**Parameters:**
***img:*** *towhee.types.Image (a sub-class of numpy.ndarray)*
the image to detect faces from.
supported types: numpy.ndarray
**Returns:**
*List[(int, int, int, int)]*
The position of the bounding boxes for the faces detected.
*List[float]*
The confidence scores for the face detected in the bounding boxes.
# More Resources
- [Zilliz Triumphed in Billion-Scale ANN Search Challenge of NeurIPS 2021 - Zilliz Newsroom; Zilliz Triumphed in Billion-Scale ANN Search Challenge of NeurIPS 2021](https://zilliz.com/news/zilliz-triumphed-Neurips-2021): Zilliz team has won the first place in the Disk-based ANN Search track in NeurIPS 2021. The performance of BBAnn developed by Zilliz research team peaked during the search in the SimSearchNet++ dataset.
- [Hugging Face Inference Endpoints & Zilliz Cloud](https://zilliz.com/product/integrations/hugging-face): nan
- [Understanding Computer Vision - Zilliz blog](https://zilliz.com/learn/what-is-computer-vision): Computer Vision is a field of Artificial Intelligence that enables machines to capture and interpret visual information from the world just like humans do.
- [What is a Convolutional Neural Network? An Engineer's Guide](https://zilliz.com/glossary/convolutional-neural-network): Convolutional Neural Network is a type of deep neural network that processes images, speeches, and videos. Let's find out more about CNN.
- [Using Vector Search to Better Understand Computer Vision Data - Zilliz blog](https://zilliz.com/blog/use-vector-search-to-better-understand-computer-vision-data): How Vector Search improves your understanding of Computer Vision Data
- [Comparing Vector Databases: Milvus vs. Chroma DB - Zilliz blog](https://zilliz.com/blog/milvus-vs-chroma): Comparing Milvus and Chroma vector database regarding the scalability, functionality, ease of use, and purpose-built features.
- [What are Vision Transformers (ViT)? - Zilliz blog](https://zilliz.com/learn/understanding-vision-transformers-vit): Vision Transformers (ViTs) are neural network models that use transformers to perform computer vision tasks like object detection and image classification.
- [Zilliz partnership with PyTorch - View image search solution tutorial](https://zilliz.com/partners/pytorch): Zilliz partnership with PyTorch