<style>
#term {color: white; background: black}
</style>

# YOLOV5 Age Gender Model Demo

This example demonstrates basic usage of HailoRT streaming API over multiple networks, using vstreams.
It loads a folder of images and tries to detect faces in them. Once it found a face it will switch to a different model that will do age and gender recognition.

## Setup on Ubuntu 20.04

### OpenCV

To install OpenCV run:

```bash
sudo apt install libopencv-dev python3-opencv
```

To verify the installation run:

```bash
python3 -c "import cv2; print(cv2.__version__)"
```

### Hailo-8

Confirm the Hailo-8 PCIe Module has been detected

```bash
sudo update-pciids
lspci
```
<pre id=term>04:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)</pre>

### HailoRT

Install HailoRT available from https://hailo.ai/developer-zone/ and confirm the driver is working.

Enter virtual environment

```bash
source hailo_platform_venv/bin/activate
```

Check Hailo firmware

```bash
hailo fw-control identify
```

<pre id=term>(hailo) Running command &apos;fw-control&apos; with &apos;hailortcli&apos;
Identifying board
Control Protocol Version: 2
Firmware Version: 4.4.0 (release,app)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8_B0
Serial Number: HAILO00000000000
Part Number: HM218B1C2FA
Product Name: HAILO-8 AI ACCELERATOR M.2 M KEY MODULE
</pre>

### Building the demo

Modify the following line in build.sh to fit your HailoRT installation.

```bash
HAILORT_ROOT=~/HailoRT_v4.4.0/Hailort/Linux/Installer/platform/hailort
```

Build the demo

```bash
./build.sh
```

After building the hailo_demo, the script will copy the two HEF files and the images directory into the build folder. Run the demo.

```bash
cd build
./hailo_demo.sh
```

<pre id=term>-I- Running network. Input frame size: 1228800
-I- YoloV5 ran successfully.
-I- Detections before NMS: 100.
-I- Detections after NMS: 9.
Class ID: 3.000000)
Face 0 at (68.490112, 61.253448), (180.168640, 208.362183)
Class ID: 3.000000)
Face 1 at (268.007507, 64.514343), (375.192413, 202.842468)
Class ID: 3.000000)
Face 2 at (449.910217, 62.940426), (556.207397, 204.165405)
Class ID: 3.000000)
Face 3 at (75.827576, 257.073730), (180.360580, 398.298706)
Class ID: 3.000000)
Face 4 at (258.935303, 256.697327), (369.707764, 397.922302)
Class ID: 3.000000)
Face 5 at (456.254761, 257.156647), (567.933289, 408.756989)
Class ID: 3.000000)
Face 6 at (74.192513, 450.853729), (180.489777, 593.538330)
Class ID: 3.000000)
Face 7 at (256.249298, 451.983093), (366.119324, 594.667725)
Class ID: 3.000000)
Face 8 at (455.748230, 451.876953), (561.161499, 596.028809)
-I- Running network. Input frame size: 150528
-I- HSE ran successfully.
Face 0:
	Male - 26
Face 1:
	Female - 23
Face 2:
	Female - 23
Face 3:
	Male - 27
Face 4:
	Female - 29
Face 5:
	Male - 29
Face 6:
	Female - 23
Face 7:
	Female - 29
Face 8:
	Female - 27
</pre>

