Milvus in IP Protection: Building a Trademark Similarity Search System With Milvus

In recent years, the issue of IP protection has come under the limelight as people's awareness of IP infringement is ever-increasing. Most notably, the multi-national technology giant Apple Inc. has been actively filing lawsuits against various companies for IP infringement, including trademark, patent, and design infringement. Apart from those most notorious cases, Apple Inc. also disputed a trademark application by Woolworths Limited, an Australian supermarket chain, on the grounds of trademark infringement in 2009.  Apple. Inc argued that the logo of the Australian brand, a stylized "w", resembles their own logo of an apple. Therefore, Apple Inc. took objection to the range of products, including electronic devices, that Woolworths applied to sell with the logo. The story ends with Woolworths amending its logo and Apple withdrawing its opposition. 

With the ever-increasing awareness of brand culture, companies are keeping a closer eye on any threats that will harm their intellectual properties (IP) rights. IP infringement includes:

  • Copyright infringement
  • Patent infringement
  • Trademark infringement
  • Design infringement
  • Cybersquatting
The aforementioned dispute between Apple and Woolworths is mainly over trademark infringement, precisely the similarity between the trademark images of the two entities. To refrain from becoming another Woolworths, an exhaustive trademark similarity search is a crucial step for applicants both prior to the filing as well as during the review of trademark applications. The most common resort is through a search on the United States Patent and Trademark Office (USPTO) database that contains all of the active and inactive trademark registrations and applications. Despite the not-so-charming UI, this search process is also deeply flawed by its text-based nature as it relies on words and Trademark Design codes (which are hand-annotated labels of design features) to search for images.


The text-based trademark search options offered by the Trademark Electronic Search System (TESS).

This article thereby intends to showcase how to build an efficient image-based trademark similarity search system using Milvus, an open-source vector database.

A Vector Similarity Search System for Trademarks

To build a vector similarity search system for trademarks, you need to go through the following steps:
  • Prepare a massive dataset of logos. Likely, the system can use a dataset like this.
  • Train an image feature extraction model using the dataset and data-driven models or AI algorithms.
  • Convert logos into vectors using the trained model or algorithm in Step 2.
  • Store the vectors and conduct vector similarity searches in Milvus, the open-source vector database.
The workflow of a vector similarity search system for trademarks.
To accelerate the process of feature extraction, you can deploy the trained AI model on multiple servers. However, you do not have to worry about data inconsistency if you use distributed service to process data because you can use Flask to ensure synchronized data processing.

When the system is built, your user only needs to upload an image of a logo, and then the system converts this new image into a new vector using the same AI model you trained. The system searches for similar vectors to the new vector in the Milvus database and returns the corresponding vector IDs. Ultimately, your user will be able to see all the results of similar logos to the one he or she has uploaded. The following screenshot is a demonstration of a vector similarity search system for trademarks. As you can see, the user uploaded the logo, the swoosh, of the sportswear brand Nike. The system returns all images that are similar to this logo.

In the following sections, let's take a closer look at the two major steps in building a vector similarity search system for trademarks: using AI models for image feature extraction, and using Milvus for vector similarity search. In our case, we used VGG16, a convolutional neural network (CNN), to extract image features and convert them into embedding vectors.

Using VGG16 For Image Feature Extraction

Slow Database = Slow Application by Connor McDonald

Well done! You've come up with the killer idea for 2022! You've got the best UI design anyone has ever seen! Your modern application ticks all the boxes - serverless, functional, kubernetes, kafka, microservices, API-based, the list goes on. And it runs on every OS and every type of device! But unfortunately ... all of this counts for NOTHING if your data access is slow. And speeding up data access typically means understanding the fundamentals of how SQL is processed by the database. For novice developers, SQL can be hard to understand and sometimes totally hidden from view under an ORM. This session will peel back the covers to show how SQL is processed, how to avoid getting hacked, and how to get data back to your application in a snappy fashion.

Reducing Data Latency With Geographically Distributed Databases

Introduction

Do you ever have those moments where you know you’re thinking faster than the app you’re using? You click something and have time to think “what’s taking so long?” It’s frustrating, to say the least, but it’s an all-too-common problem in modern applications. A driving factor of this delay is latency, caused by offloading processing from the app to an external server. More often than not, that external server is a monolithic database residing in a single cloud region. This article will dig into some of the existing architectures that cause this issue and provide solutions on how to resolve them.

Latency Defined

Before we get ahead of ourselves, let’s define “latency.” In a general sense, latency measures the duration between an action and a response. In user-facing applications, that can be narrowed down to the delay between when a user makes a request and when the application responds to a request. As a user, I don’t really care what is causing the delay resulting in a poor user experience; I just want it to go away. In a typical cloud application architecture, latency is caused by the internet and the time it takes to make requests back and forth from the user’s device and the cloud, referred to as internet latency. There is also processing time to consider; the time it takes to actually execute the request, which is referred to as operational latency. This article will focus on internet latency with a hint of operational latency. If you’re interested in other types of latency, TechTarget has a good deep dive into specifics of the term.

What Does Being Cloud-Native Mean for a Database? [Webinar Sign-up]

Different cloud-native technologies and methodologies – including containers, Kubernetes, microservices, and service meshes – are all being used by organizations today, particularly enterprise developers and DevOps teams, 90% of which say cloud-native is somewhat or very important. As development and DevOps start to become "cloud-native," the database should too. But, what does being cloud-native mean for a database?

Learn how Couchbase maximizes cloud-native technologies' advantages by natively integrating using the Couchbase Autonomous Operator to deliver a geo-distributed database platform, providing a hybrid, multi-cloud database solution for organizations. Couchbase Autonomous Operator enables developers and DevOps teams to run Couchbase as a stateful database application next to their microservices applications on a Kubernetes platform, which frees organizations from cloud vendor lock-in and supports hybrid and multi-cloud strategies.

MongoDB 4.2 (Beta) Announced at MongoDB World 2019

This week at MongoDB World, Elliot Horowitz, CTO and Co-founder at MongoDB, announced many different new and exciting features in the MongoDB 4.2 release. Out of many new features, I am highlighting a few that will help the development community a lot.

Wildcard Indexes

MongoDB is known as a flexible database that contains different types of data models in one collection. This wildcard index will help a lot in applications where read-heavy operations are dependent on flexible document structures. With this index type, you can create an index on sub/embedded documents and make your reads fast.

How to Choose a Suitable Type of Database for Mobile Apps?

Mobile apps are the most important components of a smartphone, which is why every mobile app needs to possess both the best offline and online capabilities, as well as synchronization, which is the key to a successful mobile app. Mobile apps are widely used for different types of purposes, and thousands of apps are created every day. Each app has to perform to its fullest to get noticed and stay on top all the time.

No matter what purpose an app targets, if it doesn't work well and relate to the audience, it won't be used. Or it will be downloaded and then removed with no mercy. This is why syncing the right database for your mobile app is a quite substantial aspect of high-performance mobile apps. A suitable database makes sure your app stays reliable, responsive, and competitive under all circumstances.