A system that recognizes single foods via camera or image with YOLO and shows calories, fat, protein, and carbohydrates per 100 g, plus weekly diet plans.

An academic project carried out by a team of students with technical assistance from Techno Enjaz to develop a smart system that recognizes foods from images and displays their nutritional values and calories, based on the YOLO object detection algorithm. The user points the camera at a food or uploads an image from their device, and the system identifies the food and shows its fat, protein, sugars, fiber, carbohydrates, and calories per 100 grams.
The system focuses on single, unmixed foods such as an apple, a potato, or a tomato, and can recognize more than one item in the same frame. It was built in Python with the Ultralytics library, OpenCV, and a Tkinter interface; training data was prepared on the Roboflow platform and the model was trained in Google Colab. The system also includes a diet interface that shows a weekly meal plan, including a diet for people with diabetes.
| Item | Details |
|---|---|
| Project type | Computer vision system for recognizing foods and displaying their nutritional values |
| Field | Computer vision, deep learning, smart health and nutrition |
| Project status | Working desktop prototype on Windows |
| Techno Enjaz role | Technical support and assistance to the students during project development |
| Core technologies | Python, YOLO (Ultralytics), OpenCV, Tkinter, Roboflow, Google Colab |
| Outputs | Food recognition via live camera or image, nutritional values per 100 g, weekly diet plans |
A calorie is the unit of energy the body gets from food; each gram of carbohydrate or protein provides about 4 kilocalories, and each gram of fat about 9. Knowing these values is essential for weight control, diet planning, and preventing chronic diseases such as obesity, diabetes, and heart disease.
Manual calorie counting, however, runs into many difficulties that the project lists:
This led to the idea of a computer vision system that recognizes food directly from an image and shows its nutritional information without manual lookup.
The project was carried out academically by the students, with technical assistance and support from Techno Enjaz during development. It is presented among the office's work as an example of its support for projects that apply computer vision and deep learning in health applications.
The system offers three main functions from the main interface:
| Function | What it provides |
|---|---|
| Live camera | Opens the camera, recognizes the food in front of it, shows its main nutritional information, and recognizes several items in the same frame |
| Upload an image from the device | Selects an image, analyzes it with the same model, and shows information for the detected item or items |
| Diet interface | Choose a diet type, such as a diet for people with diabetes, to show a meal list planned for a full week covering three daily meals |
The information shown for each detected item covers fat, protein, sugars, fiber, carbohydrates, and calories, all per 100 grams of the food.
| Tool | Role in the project |
|---|---|
| Python | Main development language |
| Visual Studio Code | Environment for writing and organizing code on Windows |
| Ultralytics | Loading the YOLO model and running detection |
| OpenCV | Video capture and image processing |
| Tkinter | Graphical interface for uploading images and showing results and diets |
| Roboflow and Google Colab | Preparing and labeling data and training the model |
The implementation chapter shows screenshots of the working system: recognizing a food item and showing its nutritional information through the live camera, recognizing several items together via the camera and from an uploaded image, and the diet interface with meals for a diabetes diet. The project concludes that the system was effective at identifying food types and presenting their nutritional content.
However, the book reports no performance metrics for the trained model, such as mAP, accuracy, or detection speed, and does not state the number of images or classes in the dataset. The results therefore represent a functional proof of a prototype. Metrics explained in the theoretical chapter (such as IoU and mAP) are presented as general concepts, and the commercial apps covered in the literature review, such as SnapCalorie, Calorie Mama, and Cal AI, are not part of this system.
According to the directions set out in the project, the system could be developed by:
If you are working on a computer vision or health-tech project and need technical help developing the idea or building a prototype, you can contact the Techno Enjaz office to discuss the project's requirements and the appropriate scope of support.
The user points the camera at a food or uploads an image, the YOLO model recognizes the food item, and the system displays its stored nutritional values: calories, fat, protein, sugars, fiber, and carbohydrates per 100 grams. The system does not estimate the actual portion weight from the image.
The system was built in Python in Visual Studio Code on Windows. It uses YOLO through the Ultralytics library for detection, OpenCV for image processing, and Tkinter for the interface. Training data was prepared, labeled, and augmented on Roboflow, and the model was trained in Google Colab through Roboflow's API.
The system offers three functions: recognizing food through the live camera, including several items in the same frame; analyzing an image the user uploads from their device; and a diet interface that shows a full-week meal plan with three daily meals, including a diet for people with diabetes.
The project shows screenshots of the working system recognizing foods and displaying their information, but publishes no model performance metrics such as mAP or accuracy and does not state the dataset size. The results are therefore a functional proof of a prototype, and no specific accuracy figure is attributed to the system.
The system is limited to single, unmixed foods such as apples, potatoes, and tomatoes, shows values per 100 g without estimating the actual amount, and does not account for the cooking method. Proposed developments include estimating weights through visual measurement, supporting composite meals and drinks, and a mobile version that works without a constant internet connection.
Reach out to Techno Enjaz engineering team to discuss technical feasibility, prototype hardware, and development scope.