Skip to content

Commit 3ca1ec2

Browse files
authored
Merge pull request #1436 from madeline-underwood/Himax
Himax_AP Approved_Ready to go!
2 parents fc5abce + deab4de commit 3ca1ec2

File tree

6 files changed

+65
-33
lines changed

6 files changed

+65
-33
lines changed

content/learning-paths/microcontrollers/yolo-on-himax/_index.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
---
22
title: Run a Computer Vision Model on a Himax Microcontroller
3-
draft: true
4-
cascade:
5-
draft: true
3+
64
minutes_to_complete: 90
75

8-
who_is_this_for: This is an introduction topic explaining how to run a computer vision application on an embedded device from Himax. The example uses an off-the-shelf Himax WiseEye2 module which is based on Arm Cortex-M55 and Ethos-U55.
6+
who_is_this_for: This is an introductory topic for developers who would like to learn about how to run a computer vision application on an embedded device from Himax.
97

108
learning_objectives:
11-
- Run a you-only-look-once (YOLO) object detection model on the Himax device.
12-
- Build the Himax Software Development Kit (SDK) and generate the firmware image file.
13-
- Update the firmware on the Himax WiseEye2.
9+
- Run a You-Only-Look-Once (YOLO) object detection model on a Himax WiseEye2 module.
10+
- Build the Himax Software Development Kit (SDK) and generate a firmware image file.
11+
- Update firmware on the Himax WiseEye2.
12+
- Connect to and use Grove Vision AI module.
1413

1514
prerequisites:
1615
- A [Seeed Grove Vision AI Module V2](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) development board.
17-
- An [OV5647-62 Camera Module](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) and included FPC cable.
16+
- An [OV5647-62 Camera Module](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html).
17+
- A Flexible Printed Circuit (FPC) cable.
1818
- A USB-C cable.
19-
- An x86 Linux machine or a Mac running macOS with Apple Silicon.
19+
- An x86 Linux machine, or a Mac running macOS.
2020

2121
author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi
2222

@@ -33,9 +33,7 @@ operatingsystems:
3333
- Linux
3434
- macOS
3535

36-
draft: true
37-
cascade:
38-
draft: true
36+
3937

4038

4139
### FIXED, DO NOT MODIFY

content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Build the firmware
3-
weight: 3
3+
weight: 4
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
@@ -10,9 +10,9 @@ This section explains the process of generating a firmware image file.
1010

1111
## Clone the Himax GitHub project
1212

13-
Himax maintains a repository containing a few examples for the Seeed Grove Vision AI V2 board.
13+
Himax maintains a repository containing a few examples that can be used with the Seeed Grove Vision AI V2 board.
1414

15-
It contains third-party software and scripts to build and flash the image with the object detection application. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project.
15+
It contains third-party software and scripts to build and flash the image with the object detection application. By recursively cloning the Himax examples repository, git includes the necessary subrepositories that have been configured for the project.
1616

1717
Clone the repository:
1818

@@ -25,27 +25,27 @@ cd Seeed_Grove_Vision_AI_Module_V2
2525

2626
Use Make to compile the source code for object detection.
2727

28-
This takes up to 10 minutes depending on the number of CPU cores available on your host machine.
28+
This can take up to 10 minutes depending on the number of CPU cores available on your host machine.
2929

3030
```bash
3131
cd EPII_CM55M_APP_S
3232
make
3333
```
3434

35-
When the build is complete, you have an `.elf` file at `obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf`
35+
When the build is complete, you will have an `.elf` file at `obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf`
3636

3737
## Generate the firmware image
3838

3939
The examples repository contains scripts to generate the image file.
4040

41-
Copy the `.elf` file to the `input_case1_secboot` directory.
41+
Copy the `.elf` file to the `input_case1_secboot` directory:
4242

4343
```bash
4444
cd ../we2_image_gen_local/
4545
cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/
4646
```
4747

48-
Run the script your OS as shown below. This will create a file named `output.img` in the `output_case1_sec_wlcsp` directory.
48+
Run the script on your OS as shown below. This creates a file named `output.img` in the `output_case1_sec_wlcsp` directory:
4949

5050

5151
{{< tabpane code=true >}}
@@ -57,7 +57,7 @@ Run the script your OS as shown below. This will create a file named `output.img
5757
{{< /tab >}}
5858
{{< /tabpane >}}
5959

60-
The script output ends with the following output:
60+
The script output ends with the following:
6161

6262
```output
6363
Output image: output_case1_sec_wlcsp/output.img
@@ -66,4 +66,4 @@ Output image: output_case1_sec_wlcsp/output.img
6666
IMAGE GEN DONE
6767
```
6868

69-
You are ready to flash the image onto the Himax development board.
69+
You are now ready to flash the image onto the Himax development board.

content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Set up the environment
3-
weight: 2
3+
weight: 3
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall

content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Flash firmware onto the microcontroller
3-
weight: 4
3+
weight: 5
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
@@ -10,7 +10,7 @@ Now that you have generated an image file on the local host machine, you are rea
1010

1111
## Install xmodem
1212

13-
`Xmodem` is a basic file transfer protocol which is easily installed using the Himax examples repository.
13+
You can easily install a basic file transfer protocol called `Xmodem` using the Himax repository containing the examples.
1414

1515
Run the following command to install the dependency:
1616

@@ -23,23 +23,30 @@ pip install -r xmodem/requirements.txt
2323

2424
It's time to get the board set up.
2525

26-
Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below.
26+
Insert the Flexible Printed Circuit (FPC) into the Grove Vision AI V2 module.
27+
28+
Lift the dark grey latch on the connector as shown in the image below.
2729

2830
![unlatched](./unlatched.jpg)
2931

30-
Slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector.
32+
* With the metal pins facing down, slide the FPC connector in.
33+
* Close the dark grey latch to fasten the connector.
3134

3235
![latched](./latched.jpg)
3336

34-
Now you can connect the Groove Vision AI V2 Module to your computer via the USB-C cable.
37+
Now you can connect the Groove Vision AI V2 Module to your computer using the USB-C cable.
3538

3639
{{% notice Note %}}
37-
The development board may have two USB-C connectors. If you are running into issues connecting the board in the next step, make sure you are using the right one.
40+
The development board might have two USB-C connectors. If you are running into issues connecting the board in the next step, make sure you are using the correct USB-C connector.
3841
{{% /notice %}}
3942

4043
## Find the COM port
4144

42-
You'll need to provide the communication port (COM) which the board is connected to in order to flash the image. There are commands to list all COMs available on your machine. Once your board is connected through USB, it'll show up in this list. The COM identifier will start with **tty**, which may help you determine which one it is. You can run the command before and after plugging in the board if you are unsure.
45+
To flash the image, you need to provide the communication port (COM) which the board is connected to.
46+
47+
On your machine, you can find commands that you can use to list all COMs available to use. Once your board is connected through USB, it will appear on this list of available COMs.
48+
49+
The COM identifier is prefixed with **tty**, so you can use this to help you identify which COM it is. You can also run the command before and after plugging in the board if you are unsure, and look for the change in the list.
4350

4451

4552
{{< tabpane code=true >}}
@@ -53,14 +60,14 @@ ls /dev/tty.*
5360

5461

5562
{{% notice Note %}}
56-
If the port seems unavailable, try changing the permissions temporarily using the `chmod` command. Be sure to reset them afterwards, as this may pose a computer security vulnerability.
63+
If the port appears to be unavailable, try changing the permissions temporarily using the `chmod` command. Be sure to reset the permissions again afterwards, as otherwise this can pose a computer security vulnerability.
5764

5865
```bash
5966
chmod 0777 <COM port>
6067
```
6168
{{% /notice %}}
6269

63-
The full path to the port is needed in the next step, so be sure to save it.
70+
You will require the full path to the port in the next step, so be sure to save it.
6471

6572
## Flash the firmware onto the module
6673

@@ -82,7 +89,7 @@ After the firmware image flashing is completed, the message `Do you want to end
8289

8390
## Run the model
8491

85-
After the reset button is pressed, the board will start inference with the object detection automatically. Observe the output in the terminal to verify that the image is built correctly. If a person is in front of the camera, you should see the `person_score` value go over `100`.
92+
After the reset button is pressed, the board starts inference with the object detection automatically. Observe the output in the terminal to verify that the image is built correctly. If a person is in front of the camera, you should see the `person_score` value exceed `100`.
8693

8794
```output
8895
b'SENSORDPLIB_STATUS_XDMA_FRAME_READY 240'
@@ -97,4 +104,4 @@ b'person_score:112'
97104
b'EVT event = 10'
98105
```
99106

100-
This means the image works correctly on the device, and the end-to-end flow is complete.
107+
This means the image works correctly on the device, and the end-to-end flow is complete.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: Overview
3+
weight: 2
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## What are the benefits of the Himax WiseEye2 Module?
10+
11+
* The Himax WiseEye2 implements the Arm-based Cortex M55 CPU and Ethos U55 NPU, and is one of the first "off-the-shelf" platforms of its type.
12+
13+
* The Himax WiseEye2 Module is an ultra-low power device that is energy-saving.
14+
15+
* It fully integrates with an existing Open Source AI framework (TFLite).
16+
17+
## What is a You-Only-Look-Once (YOLO) object detection model?
18+
19+
YOLO is a technology used in computer vision for identifying and locating objects in images and videos.
20+
21+
It is Open Source, fast, and has good detection accuracy.
22+
23+
To learn more about YOLO, see [Where to Start](https://docs.ultralytics.com/#where-to-start).
24+

content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ The images below are captured images from the models run in the toolkit.
101101
### Objection detection
102102
![object_detection](./object_detection.jpg)
103103

104+
The Frames Per Second (FPS) index represents the number of ML inferences the hardware can complete per second. A higher number indicates better performance. The colored bounding boxes represent the objects identified by YOLO. The name of the object is labelled in the top left-hand corner of the box, and the number in parentheses is the confidence level as a percentage. This example shows that it can identify 9.53 frames per second with a confidence level of 64% for the 'CPU' object.
105+
104106
### Face detection
105107
![object_detection](./face_detection.jpg)
106108

109+
Similar to the previous example, the bounding boxes identify the areas in the image that contain faces and recognize the positions of different facial features. This image shows that YOLO has identified a face with 99% confidence. It has marked the mouth with a yellow line segment and used different colours to mark the eyebrows, eyes, and nose. Within the bounding box for the eyes, it has further identified the gaze direction vector.

0 commit comments

Comments
 (0)