This publication presents a web-based application designed to compare various neural networks for image segmentation. By enabling side-by-side analysis of segmentation outputs, the platform helps researchers, developers, and practitioners determine the most suitable model for their specific requirements. The application is structured around a modern technology stack, including an Angular frontend, Node.js with Express.js for backend services, and Python for executing AI models, all underpinned by an SQLite database for efficient data management.
Key features include intuitive image management with category-based organization, interactive overlay animations for visually comparing segmentation masks, and a flexible design that supports seamless addition of new categories and images.The system’s primary use case—verifying whether two images represent the same individual—demonstrates its real-world applicability, notably in projects like ADRIAN. Through a well-documented, extensible architecture, this platform aims to streamline the otherwise complex process of selecting and deploying optimal image segmentation models. Future enhancements will expand its functionality by integrating image origin tracking, tag management, additional neural network segmentation models, and improved user interactions. Overall, this application offers a powerful, user-friendly interface for exploring the strengths and limitations of different segmentation approaches in varied use-case scenarios.
Here’s a sneak peek of the finished solution:
This is the link to this project on Github: https://github.com/vika-v-v/neural-networks-for-image-segmentation.
Image segmentation is a fundamental process in computer vision, enabling systems to identify and isolate distinct regions or objects within an image. It underpins a wide variety of applications, from medical imaging to autonomous vehicles and security systems. Despite its critical importance, selecting the most suitable neural network for a specific segmentation task can be challenging. Different models may excel in accuracy, speed, or resource requirements, and there is no one-size-fits-all solution.
This publication introduces a web-based application that simplifies the process of comparing multiple neural networks for image segmentation. Through an intuitive interface, users can upload their own images, organize them into categories, and view side-by-side segmentation results for various AI models. By providing a centralized, user-friendly platform, this application accelerates the decision-making process—particularly when determining whether two images depict the same individual, a use case pivotal to projects like ADRIAN.
The motivation behind this project is to provide a robust yet accessible solution for anyone looking to determine which neural network best meets their image segmentation requirements. Through a blend of interactive features, category-based organization, and a future-oriented design, the platform offers a valuable resource for both research and practical deployment scenarios.
The project was developed in a series of clearly defined steps, each building upon the previous one to ensure an efficient workflow:
The process began with a thorough requirements analysis to identify both functional and non-functional needs. These included:
Next, the software architecture was designed to define how the frontend, backend, AI layer, and database would interact.
As illustrated in the diagram, the system is composed of a frontend with a homepage and a comparison page, as well as a backend featuring a Node.js server. The Node.js server handles database operations—such as storing and retrieving images—and mediates communication with a Python server. When requested by the Node.js server, the Python server processes images using a specific AI model.
From the figure, you can see that the exposed APIs fall into two main categories:
Building on the architectural blueprint, the database schema was designed with a focus on managing and categorizing uploaded images and storing essential metadata.
Once the database setup was complete, test data was added to validate the system in practice. This early data integration helped to ensure correct data storage and retrieval. Later, real data was added, such as images and associated categories, to provide a quick overview without the user having to add all the data themselves. There is also an initDatabase.js script that imports all the data after the user has installed the project from Github (Getting Started guide: https://github.com/vika-v-v/neural-networks-for-image-segmentation/blob/master/docu/GETTING_STARTED.md).
Key frontend components were initially developed using mock API endpoints. This allowed for early testing of user interface elements, interactions, and workflows, even before a fully functional backend was in place.
In parallel with the frontend development, the actual backend API endpoints were implemented. This involved creating the necessary functions for running AI models, storing segmentation results, and facilitating communication between the frontend and the database.
Finally, comprehensive testing was performed to confirm the stability and correctness of the entire system. This included both automated tests and manual end-to-end testing to verify how all components work together. The findings were thoroughly documented, creating a solid foundation for future enhancements and the integration of additional AI models.
By the end of the development cycle, the project met nearly all of its stated objectives and requirements, resulting in a functional, user-friendly platform for comparing neural networks in image segmentation. The full code is available on Github: https://github.com/vika-v-v/neural-networks-for-image-segmentation. This is a demo video:
Below is an overview of how the final system aligns with each objective:
GETTING_STARTED
, ADDING_NEURAL_NETWORK
) that outlines how to add new models or contribute frontend and backend features. This transparency and guidance encourage open-source collaboration. The technical documentation is to be found on Github: https://github.com/vika-v-v/neural-networks-for-image-segmentation.You can remove the image or change the categories later, by clicking the corresponding symbol on the image in the first column.
Overall, this project delivers a robust foundation for comparing neural networks in image segmentation, fulfilling its core objectives and most stated requirements. As development continues, planned enhancements—such as metadata management—will further extend the platform’s capabilities, offering an even richer environment for researchers, developers, and open-source contributors.
Different segmentation models produce outputs in varying formats. Some return an array of pixels indicating, via a “true” value, whether each pixel belongs to a particular segment, whereas others provide a Base64-encoded image for each segment. To address this, a standardized response structure had to be defined for the frontend. This involved creating separate handlers for each model to transform its unique response into the agreed-upon format.
Implementing real-time highlighting of segments as the user hovers over the image posed challenges on both the frontend and backend:
Frontend:
Angular does not natively support hovering parts of an image to dynamically reveal segments. Simply stacking segment images on top of one another proved difficult because it was not clear which segment was being hovered. To solve this, a canvas was used where all segments are “drawn” manually. TypeScript logic then determines the pixel coordinates of the hover event, checks each segment’s data, and highlights (or hides) everything else accordingly.
Backend:
Processing segments on the fly took too long, making real-time interaction impractical. To optimize performance, a lazy-loading mechanism was implemented. Once a segment is processed, it is stored in the database (acting as a cache). Subsequent requests for the same image and segment can then be served quickly without reprocessing.
Initially, the project relied solely on Node.js for server operations. While CRUD functionalities ran smoothly, certain critical tools for image processing were available only in Python. As a result, a separate Python backend was introduced specifically for handling segmentation tasks, leveraging the necessary libraries while the Node.js server continued to manage database operations and API endpoints.
Several non-technical issues also arose, including:
This publication has presented the development and implementation of a web-based application designed to simplify the comparison of neural networks for image segmentation. By providing a modular architecture—comprising an Angular frontend, a Node.js backend, and a Python-based AI layer—this platform successfully meets its core objectives of enabling effective model comparison, delivering an intuitive user experience, and fostering open-source contributions. The comparison results highlight each model’s strengths in tasks such as facial segmentation, clothes detection, or generalized object classification, underscoring the platform’s versatility.
Although the current system offers a solid foundation for segmentation model analysis, there remain exciting avenues for future development. These include expanding the library of neural networks, incorporating automated category creation, and adding more sophisticated search features. More broadly, the platform’s extensible design opens the door for comparing other AI models beyond segmentation, such as image generation and text summarization, making it a valuable, evolving resource for researchers, developers, and practitioners. Overall, the application stands as a user-friendly and scalable solution for those seeking to explore, evaluate, and deploy image segmentation models across a range of real-world scenarios.
There are no datasets linked
There are no datasets linked