Object recognition has become one of the most popular applications of artificial intelligence and embedded vision systems. The most common approaches rely on machine learning frameworks such as TensorFlow, Edge Impulse, OpenCV, cloud-based AI services, or large pre-trained neural network models. While these methods can provide impressive results, they often require a significant amount of setup, model training, dataset preparation, cloud processing, and additional software tools. The goal of this project was to explore a much simpler and faster approach to object recognition using the UNIHIKER K10 development board, without TensorFlow, internet connectivity, cloud services, or external AI platforms.
The UNIHIKER K10 is a compact ESP32-S3 based development platform that combines several useful components into a single device:

- ESP32-S3 microcontroller
- Integrated color display
- Built-in camera
- Speaker and microphone
- Wi-Fi and Bluetooth connectivity
- Multiple AI and multimedia capabilities
- and Large PSRAM memory for image processing
These features make the K10 an excellent platform for experimenting with computer vision, artificial intelligence, robotics, and educational projects.
Before developing the final object recognition system, I performed several preliminary experiments. The first experiment was a simple color recognition project. Using the camera image, the software analyzed the dominant color within a selected region of interest and identified basic colors such as red, green, blue, yellow, and others.

The second experiment used the built-in AI library supplied with the UNIHIKER K10. This demonstrated the ability of the K10 to perform real-time vision tasks using the integrated camera and display. Although these factory AI examples are useful demonstrations, the objective of this project was to create a completely different object recognition method that could be trained directly by the user.

I should mention that the Arduino codes for all the examples in this project are given at the end of the text.
Now let's move on to the idea from the beginning. The final project introduces a very simple but surprisingly effective object recognition technique. Instead of using neural networks or machine learning models, the system creates a visual signature of each object during a short training process. The camera image is divided into multiple regions and the average brightness of each region is calculated. These values create a compact numerical representation of the object. This representation can be considered a visual fingerprint. When a new object is placed in front of the camera, the system:
- Captures the image.
- Generates a new visual fingerprint.
- Compares it with previously stored fingerprints.
- Selects the closest match.
- and Displays the detected object name.
This approach is extremely lightweight and can run entirely on the ESP32-S3 processor.
One of the most interesting aspects of the project is the training process. Unlike traditional machine learning systems that require hundreds or thousands of images, this method only needs a single training sample for each object. The user places an object in front of the camera and sends a training command. Each object is stored as a reference pattern in the device memory. The reference data is then saved into the internal flash memory, allowing the system to remember all trained objects even after power is removed. Once the training process is complete, the device is immediately ready for recognition.

For better detection, I put the elements on a white background. For each electronic element in the code, a corresponding letter is assigned:
e = EMPTY (in our case white background)
c = CAPACITOR
b = BATTERY
r = RESISTOR
i = IC CHIP
t = TRANSISTOR
s = STM32 microcontroller board
Now in the serial monitor we write the letter that corresponds to the recorded element and send a command with Enter. We repeat this for each electronic element
For demonstration purposes, several electronic components were used: After training, the objects were presented to the camera one by one. The software continuously compared the live image against all stored references and displayed the most likely match on the screen. Next I will try to dedect previously trained objects.
