This repository contains the most frequently used deep learning models and functions. Deep_Utils is still under heavy development, so take into consideration that many features may change in the future. Install the latest version using pypi.
Many deep learning toolkits are available on GitHub; however, we couldn't find one that would suit our needs. So, we created this improved one. This toolkit minimizes the deep learning teams' coding efforts to utilize the functionalities of famous deep learning models such as MTCNN in face detection, yolov5 in object detection, and many other repositories and models in various fields. In addition, it provides functionalities for preprocessing, monitoring, and manipulating datasets that can come in handy in any programming project.
What we have done so far:
# pip: recommended
pip install -U deep_utils
# repository
pip install git+https://github.com/pooya-mohammadi/deep_utils.git
# clone the repo
git clone https://github.com/pooya-mohammadi/deep_utils.git deep_utils
pip install -U deep_utils
We support two subsets of models in Computer Vision.
We have gathered a rich collection of face detection models which are mentioned in the following list. If you notice any model missing, feel free to open an issue or create a pull request.
from deep_utils import face_detector_loader, list_face_detection_models
# This line will print all the available models
print(list_face_detection_models())
# Create a face detection model using MTCNN-Torch
face_detector = face_detector_loader('MTCNNTorchFaceDetector')
import cv2
from deep_utils import show_destroy_cv2, Box, download_file, Point
# Download an image
download_file("https://raw.githubusercontent.com/pooya-mohammadi/deep_utils/master/examples/vision/data/movie-stars.jpg")
# Load an image
img = cv2.imread("movie-stars.jpg")
# show the image. Press a button to proceed
show_destroy_cv2(img)
# Detect the faces
result = face_detector.detect_faces(img, is_rgb=False)
# Draw detected boxes on the image.
img = Box.put_box(img, result.boxes)
# Draw the landmarks
for landmarks in result.landmarks:
Point.put_point(img, list(landmarks.values()), radius=3)
# show the results
show_destroy_cv2(img)
The result:
In this custom data type, we have added the methods of the Dict type to the NamedTuple type. You have access to .get(), .values(), .items() alongside all of the functionalities of a NamedTuple. Also, all the outputs of our models are DictNamedTuple, and you can modify and manipulate them easily. Let's see how to use it:
from deep_utils import dictnamedtuple
# create a new object
dict_object = dictnamedtuple(typename='letters', field_names=['firstname', 'lastname'])
# pass the values
instance_dict = dict_object(firstname='pooya', lastname='mohammadi')
# get items and ...
print("items: ", instance_dict.items())
print("keys: ", instance_dict.keys())
print("values: ", instance_dict.values())
print("firstname: ", instance_dict.firstname)
print("firstname: ", instance_dict['firstname'])
print("lastname: ", instance_dict.lastname)
print("lastname: ", instance_dict['lastname'])
# results
items: [('firstname', 'pooya'), ('lastname', 'mohammadi')]
keys: ['firstname', 'lastname']
values: ['pooya', 'mohammadi']
firstname: pooya
firstname: pooya
lastname: mohammadi
lastname: mohammadi
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this toolkit enhanced, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a ⭐️! Thanks again!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Distributed under the MIT License. See LICENSE
for more information.
The LICENSE of each model is located inside its corresponding directory.
Pooya Mohammadi Kazaj |
Vargha Khallokhi |
Dorna Sabet |
Menua Bedrosian |
Alireza Kazemipour |
Pooya Mohammadi:
Project Link: https://github.com/pooya-mohammadi/deep_utils
Please cite deep-utils if it helps your research. You can use the following BibTeX entry:
@misc{deep_utils,
title = {deep_utils},
author = {Mohammadi Kazaj, Pooya},
howpublished = {\url{github.com/pooya-mohammadi/deep_utils}},
year = {2021}
}
SQLAlchemy Admin for Starlette/FastAPI
Easy-to-use cryptocurrency trading strategy simulator and backtester
IRMCTracker Discord Bot
Easy-to-use multi-strategic automatic trading for Binance Futures with Telegram integration
PyBotNet framework, high level remote control
Computer vision and Deep learning
Build REST APIs with Neo4j and Flask, as quickly as possible!
a package for type checking the urls and associated views for django