Skip to main content

How can I install and use Darknet framework in Windows?


Another post starts with you beautiful people! I hope you have enjoyed my last post about using real time object detection system- Yolo with keras api. In that post I mentioned that Yolo is built on Darknet framework and this framework is written on C and cuda. That's why we used Python wrapper of Darknet  framework instead of installing original framework. Many readers asked me about how can we install and use the original framework in our window machine. In this post I will try to show you the steps about this installation. Before following the steps I strongly recommend you to activate virtual env and install all libraries I have mentioned in my last post.

For this setup I have followed this original github repository- AlexeyAB/darknet . this repo is as same as original Darknet repo with additional Windows support. So don't forget to give a star to this repo as a token of our respect to the author. If you are reading my blog first time, then I recommend to read the Requirements section mentioned in this repo first.

Once your machine is ready with all requirements, next step is to install a compilation software- vcpkg which you can download from this link. Once you download the zip file, extract it, open command prompt with admin rights, navigate to the extracted vcpkg-master folder and run the following command-

Once the above command finishes, run the below command in same prompt-

Next, we need to add vcpkg root path in our environment variable. So open the system variable and add the location of the vcpkg-master folder under the name of VCPKG_ROOT like below-

Along with this new variable, add another variable VCPKG_DEFAULT_TRIPLET with following value-


Now we are ready for installing Darknet with this compilation software. Open Anaconda Poweshell Prompt with admin rights, navigate to the vcpkg-master folder by running following command:
cd $env:VCPKG_ROOT
After this run the following command:
.\vcpkg install pthreads opencv[ffmpeg]
Once you run above two commands, screen will look like below-

It will take some time to complete. Once this process is completed next step is to download the code from AlexeyAB/darknet. Once you downlaod the zip file from this repo, extract it and in the Anaconda Powershell Prompt navigate to the location of the darknet folder and run .\build.ps1 like below-

This command will install darknet repository once finishes. After this run following command:
Set-ExecutionPolicy -ExecutionPolicy Restricted and then when asked press A to exclude any restriction. Once this is done, you can navigate to the installed repository in your respective folder and see all installed files there. Now you need to copy the pretrained Yolo weights file in this location. You can download the weights from this link. After this we are ready to test the original YOLO system built on Darknet framework on our image.

To test any image you need to run following command in same Anaconda Powershell Prompt-
.\darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25

Once this command finishes , it will ask you to enter the path of your test image. enter the full path and press enter-

Once you enter the image path and press enter, your input image will be opened in default photo viewer having bounding boxes and label. Also in server console accuracy of the prediction will be shown with each detected object-

That's amazing right. In this post we have successfully installed Darknet framework in our Windows machine and in my last post we have successfully setup the Python wrapper of Darknet. Now you are familiar with both ways. If you are working with a client who has Windows infrastructure like mine then this post will help you to deliver state of the art object detection model built on Yolo system. I recommend you to give some time to learn this framework and get your hands dirty by practicing it on different image dataset many times. In my next post I will share another my learnings. Till then Go chase your dreams, have an awesome day, make every second count and see you later in my next post.

Comments

Post a Comment

Popular posts from this blog

Learn the fastest way to build data apps

Another post starts with you beautiful people! I hope you have enjoyed and learned something new from my previous three posts about machine learning model deployment. In one post we have learned  How to deploy a model as FastAPI?  I n the second post, we have learned  How to deploy a deep learning model as RestAPI ? and in the third post, we have also learned  How to scale your deep learning model API?   If you are following my blog posts, you have seen how easily you have transit yourselves from aspiring to a mature data scientist. In this new post, I am going to share a new framework-  Streamlit which will help you to easily create a beautiful app with Python only. I will show here how had I used the Streamlit framework to create an app for my YOLOv3 custom model. What is Streamlit? Streamlit’s open-source app framework is the easiest way for data scientists and machine learning engineers to create beautiful, performant apps in only a few hours!...

Exploring The File Import

Another post starts with you beautiful people! Today we will explore various file import options in Python which I learned from a great learning site- DataCamp . In order to import data into Python, we should first have an idea of what files are in our working directory. We will learn step by step examples as given below- Importing entire text files- In this exercise, we'll be working with the file mobydick.txt [ download here ] It is a text file that contains the opening sentences of Moby Dick, one of the great American novels! Here you'll get experience opening a text file, printing its contents to the shell and, finally, closing it- # Open a file: file file = open('mobydick.txt', mode='r') # Print it print(file.read()) # Check whether file is closed print(file.closed) # Close file file.close() # Check whether file is closed print(file.closed) Importing text files line by line- For large files, we may not want to print all of th...

Machine Learning-Cross Validation & ROC curve

Another post starts with you beautiful people! Hope you enjoyed my previous post about improving your model performance by  confusion metrix . Today we will continue our performance improvement journey and will learn about Cross Validation (k-fold cross validation) & ROC in Machine Learning. A common practice in data science competitions is to iterate over various models to find a better performing model. However, it becomes difficult to distinguish whether this improvement in score is coming because we are capturing the relationship better or we are just over-fitting the data. To find the right answer of this question, we use cross validation technique. This method helps us to achieve more generalized relationships. What is Cross Validation? Cross Validation is a technique which involves reserving a particular sample of a data set on which we do not train the model. Later, we test the model on this sample before finalizing the model. Here are the steps involved in...