Trending February 2024 # An Introduction To Duplicate Content # Suggested March 2024 # Top 8 Popular

You are reading the article An Introduction To Duplicate Content updated in February 2024 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested March 2024 An Introduction To Duplicate Content

5 DIY options for identifying duplicate content to improve SEO

SEOs talk a lot about why duplicate content matters and what to do about it, marketers don’t tend to.

I think an understanding of duplicate content is important to all marketers who manage SEO so they can ask the right questions of their search specialists or agencies or fix the problem themselves.  So to help bridge the gap, this is first of two posts explaining what duplicate content is, why it matters and what to do about it.

What is duplicate content

Duplicate content is where a search engine identifies different pages as similar. As a result it either doesn’t include them in the index or down-weights their importance. So you may have pages that you think are unique and should attract visits, but the search engines don’t see it that way and pages identified as duplicate content wont attract any visits – that’s why they matter. The reason for this is that search engines like Google can crawl over one trillion URLs, but they only want to store and rank the more relevant ones

Duplicate content on your own site is usually the biggest SEO problem, but it can potentially be a problem where other websites are copying your content for their own gain (it can be innocent and most would not realise the potential impact).

In this post I’ll focus on identifying duplicate content on your own website. If you are concerned about your content been copied by others you can use services like CopyScape to review that.

How to review and manage duplicate content

Google primarily identifies duplicate content through pages which have identical/similar titles, description, headings and copy, so to start with you have to audit these. You can use any of the following methods to help find potential duplicate content issues, the reality is that it will likely require several of them to do an effective job.

Option 1. Use Google Webmaster Tools

This is the best starting point. If you don’t have a budget for SEO then site marketers can do this on their own.

Once your site is verified within Google Webmaster Tools you can navigate down the left to diagnostics & then into HTML suggestions where you will see a information on duplicate title / description tags through to those pages with long titles or descriptions.

If you have duplicate page titles or meta descriptions as in this example you should review these to see whether the pages should be targeted uniquely.

Option 2. Utilise the SEOmoz Tool kit

Use the SEOmoz tool to find duplicate content (you can take out subscription one month at a time for one-off tasks like this). Within the crawl diagnostics panel duplicate content will come up as an error in red, from here you can drill down into the issues and prioritse your work. The full crawl of your site can take up to 7days (depending on size etc) so please bear that in mind!

Option 3. Utilise the Google “site:” command

Select sample generic or product keyphrases in quotes reviewing the site using the Google site: command. To create the screen shot below I typed the following into Google

From here you can identify if titles / descriptions are the same, you may also receive a message like below which means that Google has identified them as duplicate pages and has down graded them to its secondary index.

Option 4. Screaming SEO Frog / Xenu

I have mentioned these two tools a number of times in previous blog posts. They are famed for their ability to report back broken links on your website but they also return information which once in Excel you can use to identify duplciate URL’s, Titles & descriptions. Just by using the sort functions & the formula “=A1=A2” (swap column & row as required) you can easily see where there are potential issues. If the excel formula returns the value “true” then the two rows are identical & therefore a duplicate.

Option 5. Google Analytics Data

Once you have identified duplicate content which should be attracting visitors but isn’t the next task is to identify why this is happening and try to prevent it. That’s the subject of my next post.

You're reading An Introduction To Duplicate Content

An Introduction To Computer Vision With Opencv

This article was published as a part of the Data Science Blogathon


A Brief Introduction to Machine Learning.

An Introduction to OpenCV Library.

OpenCV Python Programming.

Source: GeeksCoders.

A Brief Introduction to Machine Learning.

Machine Learning is a trending field of Information Technology in present times. As can be inferred from the name, Machine Learning is a field in which Machines are trained and taught, exactly how to identify, detect, and recognize patterns in data- both structured and unstructured. Machine Learning lends itself to the modern-day in several aspects- from Medicine to Augmented Reality, to Artificial Intelligence, and more. There are different types or categories of Machine Learning, the most dominant types are:

Supervised Machine Learning.

Unsupervised Machine Learning.

Reinforcement Learning.

Source: TowardsDataScience.

The key aspect of each type is as follows:

Supervised Machine Learning will train a model using Labelled data.

Unsupervised Machine Learning will train a model using unlabelled data.

Reinforcement Learning teaches the model or agent, how to differentiate the right action from the wrong.

An Introduction to OpenCV Library.

OpenCV is a programming library/package that has been created especially for allowing programmers to enter the world of Computer Vision. The primary developer of the OpenCV package is Intel Corporation, and the package was released to the public during the year 1999-2000.

OpenCV stands for Open-Source Computer Vision (Library). It is the most commonly used, popular, and well-documented Computer Vision library. It is open-source, which means that one does not require a license to utilize the software.

As one may know, most Machine Learning Algorithms require inputs to be quantitative in nature, i.e., numerical. OpenCV allows us to apply Machine Learning techniques to images, however, oftentimes we are required to preprocess and prepare the raw images for them to be transformed into features (columns of data) that are useful and usable by our Machine Learning Algorithms.

Source: DataFlair.

OpenCV Python Programming.

We will now how to process an image with the OpenCV package in Python Programming Language. For this learning experience, we will use the OpenCV chúng tôi You may navigate to, and download the image at this link, or you may save the image found below.

Source: Wikipedia.

Loading an Image into System Memory.

To load an image into our system RAM (Random Access Memory), we are required to make use of the imread() method provided by OpenCV. We are aware that images are a source of data- images are sources of data, from which we can acquire information and infer patterns. The crucial point to note about the imread() method is that when we utilize it in our program, fundamentally our raw image is transformed into a data/object type that we are familiar with- i.e., it becomes a NumPy Array. First, let us load our image in GRAYSCALE colour mode, and explore from there.

import cv2 # load it in GRAYSCALE color mode... image = cv2.imread("""C:/Users/Shivek/Pictures/487px-OpenCV_Logo_with_text_svg_version.svg.png""", 0) cv2.imshow('Analytics Vidhya Computer Vision', image) cv2.waitKey(0) cv2.destroyAllWindows() We shall now examine the above lines of code. import cv2

If one is familiar with the Python Programming Language, one will understand that this is the standard syntax used to import dependencies/libraries/packages into the current script. In this line of code, we import all methods, operations, and functions that are offered by the Computer Vision library.

# load it in GRAYSCALE color mode... image = cv2.imread("""C:/Users/Shivek/Pictures/487px-OpenCV_Logo_with_text_svg_version.svg.png""", 0)

We thereafter load the image in grayscale color mode, and we do this using the imread() method. The imread() method takes in two primary arguments, viz., filename (of string datatype), and flag (of integer datatype). Please Note: you will be required to replace


-with the location in which the image is stored on your computer. As one can see, I have passed in the filename and location of the image on my pc, and thereafter used a flag of 0. Flags are essentially predefined arguments that do not change, and are used as required- The flag 0 will load your image in the GRAYSCALE format- meaning black and white. Taken from the OpenCV Documentation, here are two flags you are most likely to use in your experience with OpenCV:

Hence, in our example, since we would like to obtain our image in GRAYSCALE format, we have used a value of 0, which corresponds to the predefined flag for IMREAD_GRAYSCALE.

cv2.imshow('Analytics Vidhya Computer Vision', image)

We make use of the imshow() method to display the image that has been loaded into memory, onto the digital display (screen). We need to understand that the imshow() is a very powerful OpenCV method because it creates a display for us- it will return a GUI Window to us, which contains our image that has been loaded into memory. This method requires two arguments- A title for the window to be displayed (containing the image); and the image itself- remember that an image may be stored in a variable- Hence, we are able to pass in the variable name containing our image- in our case the variable image.

The GRAYSCALE image output will be as follows:


You see, when the imshow() function displays the image output on our screen, the window that pops up with our image tends to disappear as soon as it shows up; this is because there is no signal or flag to prompt the window to be visible until or unless a specific action or event has occurred or passed. In situations like these, if you wish for the window to remain on the screen you will specify a parameter to the waitKey() function. This function will accept an integer value representing the number of milliseconds you would like the window to remain on your screen before the window is destroyed/terminated. The question you are likely to have in mind is: What should I do to make the window display on my screen for an infinite duration of time?

There are two solutions to this problem:


Pass a value of 0 to the waitKey() function. Zero is the predefined flag that will specify to the GUI system, to display the window for an infinite duration of time- to be precise- waitKey(0) will wait infinitely for terminating the image window. Termination is prompted when the user presses any character or directional key on the keyboard.


The default behaviour for the waitKey() function is to wait infinitely, i.e., display the window for an unlimited period of time. The name of the argument to which we are passing a value is delay. And the default line of syntax for the waitKey() function is as follows:


And delay=None provides us with the same output as delay=0.


The above line of code will do as specified in the syntax- i.e., it will destroy all windows that have been created during our OpenCV session. If you would like to destroy/close a single, specific window- you may pass the name of the window as a string.

Source: DataDrivenInvestor.


This concludes my article on Machine Learning: An Introduction to Computer Vision. I do hope that you have new OpenCV takeaways from this article.

Feel free to connect with me on LinkedIn.

Thank you for your time.

The media shown in this article are not owned by Analytics Vidhya and are used at the Author’s discretion.


An Intuitive Introduction To Bayesian Decision Theory

This article was published as a part of the Data Science Blogathon


Bayesian decision theory refers to the statistical approach based on tradeoff quantification among various classification decisions based on the concept of Probability(Bayes Theorem) and the costs associated with the decision.

It is basically a classification technique that involves the use of the Bayes Theorem which is used to find the conditional probabilities.

In Statistical pattern Recognition, we will focus on the statistical properties of patterns that are generally expressed in probability densities (pdf’s and pmf’s), and this will command most of our attention in this article and try to develop the fundamentals of the Bayesian decision theory.


Random Variable

A random variable is a function that maps a possible set of outcomes to some values like while tossing a coin and getting head H as 1 and Tail T as 0 where 0 and 1 are random variables.

Bayes Theorem

By Using the Chain rule, this can also be written as:

Here, equation (1) is known as the Bayes Theorem of probability

Our aim is to explore each of the components included in this theorem. Let’s explore step by step:

(a) Prior or State of Nature:

Prior probabilities represent how likely is each Class is going to occur.

Priors are known before the training process.

The state of nature is a random variable P(wi).

If there are only two classes, then the sum of the priors is P(w1) + P(w2)=1, if the classes are exhaustive.

(b) Class Conditional Probabilities:

It is the probability of how likely the feature x occurs given that it belongs to the class wi.

Sometimes, it is also known as the Likelihood.

It is the quantity that we have to evaluate while training the data. During the training process, we have input(features) X labeled to corresponding class w and we figure out the likelihood of occurrence of that set of features given the class label.

(c) Evidence:

It is the probability of occurrence of a particular feature i.e. P(X).

As we need the likelihood of class conditional probability is also figure out evidence values during training.

(d) Posterior Probabilities:

It is the probability of occurrence of Class A when certain Features are given

It is what we aim at computing in the test phase in which we have testing input or features (the given entity) and have to find how likely trained model can predict features belonging to the particular class wi.

For a better understanding of the above theory, we consider an example

Problem Description

Suppose we have a classification problem statement where we have to classify among the object-1 and object-2 with the given set of features X = [x1, x2, …, xn]T.


The main objective of designing a such classifier is to suggest actions when presented with unseen features, i.e, object not yet seen i.e, not in training data.

In this example let w denotes the state of nature with w = w1 for object-1 and w = w2 for object-2. Here, we need to know that in reality, the state of nature is so unpredictable that we generally consider that was variable that is described probabilistically.


Generally, we assume that there is some prior value P(w1) that the next object is object-1 and P(w2) that the next object is object-2. If we have no other object as in this problem then the sum of their prior is 1 i.e. the priors are exhaustive.

The prior probabilities reflect the prior knowledge of how likely we will get object-1 and object-2. It is domain-dependent as the prior may change based on the time of year they are being caught.

It sounds somewhat strange and when judging multiple objects (as in a more realistic scenario) makes this decision rule stupid as we always make the same decision based on the largest prior even though we know that any other type of objective also might appear governed by the leftover prior probabilities (as priors are exhaustive in nature).

Consider the following different scenarios:

But if P(ω1)= P(ω2), half probable of our prediction of being right. In general, the probability of error is the minimum of P(ω1) and P(ω2), and later in this article, we will see that under these conditions no other decision rule can yield a larger probability of being correct.

Feature Extraction process (Extract feature from the images)

A suggested set of features- Length, width, shapes of an object, etc.

Fig. Picture Showing pdf for both classes

Image Source: Google Images

Fig. Formula of Bayes Theorem

Image Source: Google Images

The evidence factor, p(x), works as merely a scale factor that guarantees that the posterior probabilities sum up to one for all the classes.

Bayes’ Decision Rule

The decision rule given the posterior probabilities is as follows

Probability of Error

To justify our decision we look at the probability of error, whenever we observe x, we have,

As they are exhaustive and if we choose the correct nature of an object by probability P then the leftover probability (1-P) will show how probable is the decision that it the not the decided object.

We can minimize the probability of error by deciding the one which has a greater posterior and the rest as the probability of error will be minimum as possible. So we finally get,

And our Bayes decision rule as,

This type of decision rule highlights the role of the posterior probabilities. With the help Bayes theorem, we can express the rule in terms of conditional and prior probabilities.

So by eliminating the unrequired scale factor in our decision rule we have, the similar decision rule by Bayes theorem as,

Now, let’s consider 2 cases:

This completes our example formulation!

  Generalization of the preceding ideas for Multiple Features and Classes

Bayes classification: Posterior, likelihood, prior, and evidence

Posterior = Likelihood* Prior/Evidence

We now discuss those cases which have multiple features as well as multiple classes,

Let the Multiple Features be X1, X2, … Xn and Multiple Classes be w1, w2, … wn, then:


Prior = P(wi)

Evidence = P(X1,… ,Xn)

In cases of the same incoming patterns, we might need to use a drastically different cost function, which will lead to different actions altogether. Generally, different decision tasks may require features and yield boundaries quite different from those useful for our original categorization problem.

So, In the later articles, we will discuss the Cost function, Risk Analysis, and decisive action which will further help to understand the Bayes decision theory in a better way.

End Notes

Thanks for reading!

Please feel free to contact me on Linkedin, Email.

About the author Chirag Goyal

Currently, I am pursuing my Bachelor of Technology (B.Tech) in Computer Science and Engineering from the Indian Institute of Technology Jodhpur(IITJ). I am very enthusiastic about Machine learning, Deep Learning, and Artificial Intelligence.

The media shown in this article are not owned by Analytics Vidhya and is used at the Author’s discretion. 


Native Advertising: An Introduction For Ppc Marketers

Consumer priorities are shifting rapidly as the world faces an unprecedented healthcare crisis.

Sensitivity to consumers’ needs is more critical than ever.

Brands must think carefully about how to engage with consumers in meaningful ways that not only increase conversions but help build brand trust.

Throughout the day, we consume content from blogs, news channels, television shows, social media channels, etc.

All of that content has the potential for native ad placements, which is why the native industry can be complex.

Advertisers know that in order to reach their target customers, they need to have a presence on channels where consumers spend their time.

This is where native comes into play.

Is Content Network Targeting the Same as Native?

In short, no.

But native today isn’t the contextual targeting of yore.

Microsoft deprecated the content network in 2023.

However, Google Ads still allows content targeting in the Google Display network.

Unlike the content network, native ad placements are not based on the keyword or the keywords within the article on page, they are based on audience targeting.

It is worth noting that Google Ads still allows content targeting in the Google Display Network based on:

Topics: Pages about specific topics. Google Ads uses factors such as text, language, links and page structure to determine the topics of a page.

Placement: Specific websites, or subsets of a website.

Keywords: Just that, keywords.

Display expansion for search: A combination of automated bidding and smart targeting.

What Is Native Advertising?

The publisher controls and is responsible for rendering the ad.

For example, a native ad might show up within an article you’re reading on your favorite online news source, or as a post on your Facebook feed.

In-feed placements appear directly in the article or blog post.

Recommendation widgets appear on a publisher’s website and presents recommended content or products that are related to the content you’re already consuming.

Promoted listings, also referred sometimes as sponsored content, are designed to fit seamlessly into the browsing experience.

Is Native Advertising Programmatic?

It depends. (A marketer’s favorite answer.)

Is Google Display Native Advertising?

Yes, Google Display & Video 360 has native creative formats that can be integrated into a display campaign.

The native creative can target:

App install (Google Play or Apple App Store).

Site creative (square or rectangular display format).

Video (similar to site creative, but uses video instead of an image.)

Is Microsoft Advertising Native Advertising?

Currently, Microsoft Audience Ads are available in three formats:

Text Ads.

Product Ads.

They can be set up as part of an existing search campaign that is extended to native or as a separate audience campaign.

Even if you choose to opt into the Microsoft Audience network from within your search campaigns, the ad placement is based on audience targeting using the Microsoft Graph.

The Microsoft Advertising Graph captures billions of signals across our consumer products, such as browsing data, search history and behavior, and deep profile data from LinkedIn.

Microsoft’s audience network spans:

A wide range of brand-safe environments, including MSN, chúng tôi and Microsoft Edge.

Select premium partner properties such as CBS Sports, Everyday Health, Fox Business, the Atlantic, Apartment Therapy, and Reuters.

According to ComScore, the Microsoft Audience Network reaches 92% of the online audience throughout the U.S.

AI-Powered Placements Focused on Quality & Giving Complete Control to the Advertiser

The audience network was created with two priorities in mind: quality and control.

Control encompasses its ability to provide brand-safe environments and data privacy.

Microsoft enforces strict publisher standards and reviews and publisher partners are closely managed and thoroughly vetted.

Global blocklists and the ability to exclude certain sites gives you even more control – and peace of mind.

The Success of Native Advertising Depends on Trust

How do organizations establish and maintain consumer trust?

By putting long-term strategies in place for actively engaging with consumers, listening and acting on customer feedback, adhering to data privacy and protection, and being transparent and authentic.

iProspect proposes that there are three key components to consumer trust: credibility, relevance, and reliability.

Is your brand competent and legitimate?

Do you listen to and act on customer feedback and provide relevant content, products, and services?

Do you deliver a consistent experience that meets customer expectations across every customer interaction?

Native Case Studies: Reaching Untapped Audiences

Ads are credible, relevant and consistent – but not invasive or intrusive.

2X higher on MSN Infopane.

3X higher on publisher partner sites.

Volvo and marketing agency Mindshare decided to test the Microsoft Audience network as a strategy to support awareness and help maintain sales for their best-seller the XC90 luxury SUV.

They combined LinkedIn, gender, remarketing and In-Market audience data to find new audiences to target and to uncover previously untapped audiences.

The campaign drove significant traffic and exceeded their expectations with conversions:

65,000 incremental site visits.

CPA on-par with their non-brand search campaigns.

Running native campaigns in conjunction with search campaigns helped Buyerzone reach business-to-business audience.

1,700% increase in impressions.

20% profit increase on top of their traditional search campaigns.

75% decrease in CPC.

Alan Barish, senior online marketing analyst from BuyerZone said, “almost every single conversion we’ve gotten from the Microsoft Audience Network has converted into a lead, which is amazing.”

Maintaining Trust & Engagement in Uncertain Times

Never in modern history has it been so critical to create meaningful connections between your brand and consumers, and earn and maintain their trust.

With data privacy rising to the forefront of consumers’ consciousness and as recent global events add complexity to the consumer-brand dynamic, delivering targeted, trusted and relevant content is a critical strategy for continued business growth.

Start with a foundation of trust, success is inevitable.

Test using native as a way for your brand to make meaningful connections with consumers that build trust and drive conversions, setting the stage for ongoing credibility, relevance, and consistency, even in uncertain times.

More Resources:

Image Credits

All screenshots taken by author, March 2023

Content Management Systems An Overview

If we go by the term Content Management System word to word, then it basically means a system of managing the content. It is defined as a collaborative platform with different features and functionalities that allow the creating, designing, publishing and maintaining web content easily and effectivel

What is a Content Management System (CMS)?

A Content Management System is a software application used to create and design the web content online. It allows the users to manage the digital content easily by providing access to features like database handling, smart reporting, archiving, designing and animation features etc. These are generally used in Enterprise Content Management (ECM) and Web Content Management (WCM).

To design a web content programmer generally need knowledge of programming languages like Html and CSS. Other new languages like Angular and NodeJS are also there to build more effective web pages. But for naive creators with no knowledge of such languages can easily use features of a CMS and create web pages, websites and no programming knowledge is required.


A CMs mainly has two major components. First is the Content Management Application (CMA) which is used to allow user to create and design the web pages using drag and drop features. It helps in creators to add, modify, delete content from the web pages.

Second is the Content Delivery Application (CDA), is usually responsible for compiling the information and updating the webpage. It works after the user makes all the changes ready to be published online.

Common Features Security

When it comes to a website, then a CMS must be capable of handling the issues related to safe and secure launching and running of websites over the internet. Website crashes, url crash, attacks by external means on websites related to money transactions are very common. The CMS should have regular security updates to prevent such happenings.

When it comes to a website, then a CMS must be capable of handling the issues related to safe and secure launching and running of websites over the internet. Website crashes, url crash, attacks by external means on websites related to money transactions are very common. The CMS should have regular security updates to prevent such happenings.

Multi Linguistic

According to a fact presented by Translate Media, around 75% of the internet users recommend the web content to be translated to their native language, to understand it better. Also, large organizations with clients spread worldwide need to present their offering in native languages to expand their client hold, for this digital content also must should support −

Full Unicode support

Import and export of text as xml

Content Distribution

With very fast change in digital devices and platforms. The content also needs to be customized accordingly. The same layout and design cannot work for a desktop, a digital advertisement board, a smartphone, a tablet, and ATM screen, etc. Also, IOT devices are new to all this. For this CMS should become more user friendly, a variant called decoupled CMS.

Search Engine Optimization

SEO is an essential feature of all CMSs and is used to make internet search results faster in order to draw up the correct web page from tons of content available on the internet. An SEO friendly CMS has features like −

Allow metadata changes

SEO friendly URLs

Duplicate URLs with rel=canonical tag

Should have xml sitemap create function

Must have alt tag

Supports pagination

Support 301 redirects not 302

Platform Independent

The latest evolution of CSS into CSS3 makes web pages more responsive and user friendly. The same web page appears different according to the device in which it is and open source written in PHP and paired with MySQL or MariaDB databases. Its template feature is known as themes.


It offers and ever-expanding e-commerce CMS features and is used by around 2.5% of the websites on the internet.


Joomla is also written in PHP and is one of the best alternatives to WordPress.

A Friendly Introduction To Real


Real-time object detection is taking the computer vision industry by storm

Here’s a step-by-step introduction to SlimYOLOv3, the latest real-time object detection framework

We look at the various aspects of the SlimYOLOv3 architecture, including how it works underneath to detect objects


Humans can pick out objects in our line of vision in a matter of milliseconds. In fact – just look around you right now. You’ll have taken in the surroundings, quickly detected the objects present, and are now looking at this article. How long did that take?

That is real-time object detection. How cool would be it if we could get machines to do that? Now we can! Thanks primarily to the recent surge of breakthroughs in deep learning and computer vision, we can lean on object detection algorithms to not only detect objects in an image – but to do that with the speed and accuracy of humans.

Do you want to learn real-time object detection but aren’t sure where to start? Do you want to build a computer vision model that detects objects like the above video? Then this article is for you!

Do you want to learn real-time object detection but aren’t sure where to start? Do you want to build a computer vision model that detects objects like the above video? Then this article is for you!

We will first look at the various nuances of object detection (including the potential challenges you might face). Then, I will introduce the SlimYOLOv3 framework and deep dive into how it works underneath to detect objects in real-time. Time to get excited!

If you’re new to the wonderful world of computer vision, we have designed the perfect course for you! Make sure you check it out here:

Table of Contents

What is Object Detection?

Applications of Object Detection

Why Real-Time Object Detection?

Challenges during Real-Time Object Detection

Introduction to SlimYOLOv3

Understanding the Architecture of SlimYOLOv3

What is Object Detection?

Before we dive into how to detect objects in real-time, let’s cover our basics first. This is especially important if you’re relatively new to the world of computer vision.

Object detection is a technique we use to identify the location of objects in an image. If there is a single object in the image and we want to detect that object, it is known as image localization. What if there are multiple objects in an image? Well, that’s what object detection is!

Let me explain this using an example:

The image on the left has a single object (a dog) and hence detecting this object will be an image localization problem. The image on the right has two objects (a cat and a dog). Detecting both these objects would come under object detection.

If you wish to get an in-depth introduction to object detection, feel free to refer to my comprehensive guide:

Now, you might be wondering – why is object detection required? ANd more to the point, why do we need to perform real-time object detection? We’ll answer these questions in the next section.

Applications of Object Detection

Object Detection is being widely used in the industry right now. Anyone harboring ambitions of working in computer vision should know these applications by heart.

The use cases of object detection range from personal security to automated vehicle systems. Let’s discuss some of these current and ubiquitous applications.

Self-Driving Cars

This is one of the most interesting and recent applications of Object detection. Honestly, it’s one I am truly fascinated by.

Self-driving cars (also known as autonomous cars) are vehicles that are capable of moving by themselves with little or no human guidance. Now, in order for a car to decide its next step, i.e. either to move forward or to apply breaks, or to turn, it must know the location of all the objects around it. Using Object Detection techniques, the car can detect objects like other cars, pedestrians, traffic signals, etc.

Face Detection and Face Recognition

Face detection and recognition are perhaps the most widely used applications of computer vision. Every time you upload a picture on Facebook, Instagram or Google Photos, it automatically detects the people in the images. This is the power of computer vision at work.

Action Recognition

Object Counting

Now, here’s the thing – most of the applications require real-time analysis. The dynamic nature of our industry leans heavily towards instant results and that’s where real-time object detection comes into the picture.

Why Real-Time Object Detection?

Let’s take the example of self-driving cars. Consider that we have trained an object detection model which takes a few seconds (say 2 seconds per image) to detect objects in an image and we finally deployed this model in a self-driving car.

Do you think this model will be good? Will the car be able to detect objects in front of it and take action accordingly?

Certainly not! The inference time here is too much. The car will take a lot of time to make decisions which might lead to serious situations like accidents as well. Hence, in such scenarios, we need a model that will give us real-time results. The model should be able to detect objects and make inferences within microseconds.

Some of the commonly used algorithms for object detection include RCNN, Fast RCNN, Faster RCNN, and YOLO.

The aim of this article is not to deep dive into these techniques but to understand the SlimYOLOv3 architecture for real-time object detection. If you wish to learn more about these techniques, check out the below tutorials:

These techniques work really well when we do not need real-time detection. Unfortunately, they tend to stumble and fall when faced with the prospect of real-time analysis. Let’s look at some of the challenges you might encounter when trying to build your own real-time object detection model.

Challenges of Performing Real-Time Object Detection

Real-time object detection models should be able to sense the environment, parse the scene and finally react accordingly. The model should be able to identify what all types of objects are present in the scene. Once the type of objects have been identified, the model should locate the position of these objects by defining a bounding box around each object.

So, there are two functions here. First, classifying the objects in the image (image classification), and then locating the objects with a bounding box (object detection).

We can potentially face multiple challenges when we are working on a real-time problem:

How do we deal with variations? The variations might be of difference in the shape of objects, brightness level, etc.

Deploying object detection models. This generally takes A LOT of memory and computation power, especially on machines we use on a daily basis

Finally, we must also keep a balance between detection performance and real-time requirements. Generally, if the real-time requirements are met, we see a drop in performance and vice versa. So, balancing both these aspects is also a challenge

So how can we overcome these challenges? Well – this is where the crux of the article begins- the SlimYOLOv3 framework! SlimYOLOv3 aims to deal with these limitations and perform real-time object detection with incredible precision.

Let’s first understand what SlimYOLOv3 is and then we will look at the architecture details to have a better understanding of the framework.

Introduction to SlimYOLOv3

Can you guess how a deep learning pipeline works? Here’s a quick summary of a typical process:

First, we design the model structure

Fine-tune the hyperparameters of that model

Train the model and

Finally, evaluate it

There are multiple components or connections in the model. Some of these connections, after a few iterations, become redundant and hence we can remove these connections from the model. Removing these connections is referred to as pruning.

Pruning will not significantly impact the performance of the model and the computation power will reduce significantly. Hence, in SlimYOLOv3, pruning is performed on convolutional layers. We will learn more about how this pruning is done in the next section of this article.

After pruning, we fine-tune the model to compensate for the degradation in the model’s performance.

A pruned model results in fewer trainable parameters and lower computation requirements in comparison to the original YOLOv3 and hence it is more convenient for real-time object detection.

Let’s now discuss the architecture of SlimYOLOv3 to get a better and clearer understanding of how this framework works underneath.

Understanding the Architecture of SlimYOLOv3

The below image illustrates how SlimYOLOv3 works:

SlimYOLOv3 is the modified version of YOLOv3. The convolutional layers of YOLOv3 are pruned to achieve a slim and faster version. But wait – why are we using YOLOv3 in the first place? Why not other object detection algorithms like RCNN, Faster RCNN?

Why YOLOv3?

There are basically two types (or two categories) of deep object detection models:

Detectors belonging to the RCNN family fall under two-stage detectors. The process contains two stages. First, we extract region proposals and then classify each proposal and predict the bounding box. These detectors generally lead to good detection accuracy but the inference time of these detectors with region proposals requires huge computation and run-time memory

Detectors belonging to the YOLO series fall under single stage detectors. It is a single-stage process. These models utilize the predefined anchors that cover spatial position, scales, and aspect ratios across an image. Hence, we do not need an extra branch for extracting region proposals. Since all computations are in a single network, they are more likely to run faster than the two-stage detectors. YOLOv3 is also a single stage detector and currently the state-of-the-art for object detection

Sparsity training

The next step is the sparsity training of this YOLOv3 model:

Here, we prune the YOLOv3 model using the following steps:

First, we evaluate the importance of each component of the YOLOv3 model. I will discuss the details of how to decide the importance of these components shortly

Once the importance is evaluated, we remove the less important components

The removed components can either be an individual neural connection or the network structures. To define the importance of each component, we rank each neuron of the network based on their contribution. There are multiple ways to do it:

We can take the L1/L2 regularized means of neuron weights

The mean activation of each neuron

Number of times the output of a neuron wasn’t zero

In SlimYOLOv3, the importance is calculated based on the L1 regularized means of neuron weights which are considered as the scaling factor. The absolute value of these scaling factors is the importance of a channel. To accelerate the convergence and improve the generalization of the YOLOv3 model, the batch normalization layer is used after every convolutional layer.


We then define a global threshold, let’s say ŷ, and discard any channel that has a scaling factor less than this threshold. In this way, we prune the YOLOv3 architecture and get the SlimYOLOv3 architecture:

While evaluating the scaling factor, the maxpool layers and the upsample layers of the YOLOv3 architecture have not been considered since they have nothing to do with the channel number of the layer number.


We now have the SlimYOLOv3 model, so what’s next?

We fine-tune it so as to compensate for the degradation in performance and finally evaluate the fine-tuned model to determine whether the pruned model is suitable for deployment.

In SlimYOLOv3, a penalty factor of α = 0.0001 is used to perform channel pruning.

End Notes

We’ve covered a lot of ground in this article. We saw the different object detection algorithms like RCNN, Fast RCNN, Faster RCNN, as well as the current state-of-the-art for object detection YOLO. Then, we looked at the SlimYOLOv3 architecture which is the pruned version of YOLO and can be used for real-time object detection.

I’m excited to get my hands on the code for SlimYOLOv3! I will try to implement SlimYOLOv3 and will share my learning with you guys.


Update the detailed information about An Introduction To Duplicate Content on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!