Skip to content

Instantly share code, notes, and snippets.

@ageitgey
Created July 23, 2016 16:57
Show Gist options
  • Save ageitgey/1c1cb1c60ace321868f7410d48c228e1 to your computer and use it in GitHub Desktop.
Save ageitgey/1c1cb1c60ace321868f7410d48c228e1 to your computer and use it in GitHub Desktop.
import sys
import dlib
from skimage import io
# Take the image file name from the command line
file_name = sys.argv[1]
# Create a HOG face detector using the built-in dlib class
face_detector = dlib.get_frontal_face_detector()
win = dlib.image_window()
# Load the image into an array
image = io.imread(file_name)
# Run the HOG face detector on the image data.
# The result will be the bounding boxes of the faces in our image.
detected_faces = face_detector(image, 1)
print("I found {} faces in the file {}".format(len(detected_faces), file_name))
# Open a window on the desktop showing the image
win.set_image(image)
# Loop through each face we found in the image
for i, face_rect in enumerate(detected_faces):
# Detected faces are returned as an object with the coordinates
# of the top, left, right and bottom edges
print("- Face #{} found at Left: {} Top: {} Right: {} Bottom: {}".format(i, face_rect.left(), face_rect.top(), face_rect.right(), face_rect.bottom()))
# Draw a box around each face we found
win.add_overlay(face_rect)
# Wait until the user hits <enter> to close the window
dlib.hit_enter_to_continue()
@3286360470
Copy link

Do you know how to show HOG fetures?

@3286360470
Copy link

Hey I got "module 'dlib' has no attribute 'image_window'" and I followed https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf to install dlib. using mac 10.12.6. Do you have any idea what I did wrong?
You can uninstall dlib absolutely, and install the dlib again.(If this can't help you, you can install the other version to try it)

@singh-bhagirath
Copy link

Its not working for all images ,only faces from particular images of human are being detected

@rohansh-tty
Copy link

rohansh-tty commented Jan 6, 2020

How can I connect this to webcam so that it can detect my face?

If you're using OpenCV use this function

import cv2

v1 = cv2.VideoCapture(0) # 0 -- indicates your webcam
print(v1.isOpened()) # Returns bool value based on the video capture object

@Vickey-ZWQ
Copy link

Vickey-ZWQ commented May 18, 2020

I have successfully run this script and it return an image with a box in face. But I just want a HOG image just like that:

hog

How can I get it?

@gratefullee
Copy link

from skimage.feature import hog
from skimage import exposure
import cv2


image = cv2.imread('/your/image/path')
fd, hog_image = hog(image, orientations=8, pixels_per_cell=(16, 16),
                    cells_per_block=(1, 1), visualize=True, multichannel=True)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4), sharex=True, sharey=True)

ax1.axis('off')
ax1.imshow(image, cmap=plt.cm.gray)
ax1.set_title('Input image')

# Rescale histogram for better display
hog_image_rescaled = exposure.rescale_intensity(hog_image, in_range=(0, 10))

ax2.axis('off')
ax2.imshow(hog_image_rescaled, cmap=plt.cm.gray)
ax2.set_title('Histogram of Oriented Gradients')
plt.show()

hog

@Dankrou
Copy link

Dankrou commented May 4, 2021

from skimage.feature import hog
from skimage import exposure
import cv2


image = cv2.imread('/your/image/path')
fd, hog_image = hog(image, orientations=8, pixels_per_cell=(16, 16),
                    cells_per_block=(1, 1), visualize=True, multichannel=True)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4), sharex=True, sharey=True)

ax1.axis('off')
ax1.imshow(image, cmap=plt.cm.gray)
ax1.set_title('Input image')

# Rescale histogram for better display
hog_image_rescaled = exposure.rescale_intensity(hog_image, in_range=(0, 10))

ax2.axis('off')
ax2.imshow(hog_image_rescaled, cmap=plt.cm.gray)
ax2.set_title('Histogram of Oriented Gradients')
plt.show()

hog

Hi, you forgot to add: "from matplotlib import pyplot as plt".

@gratefullee
Copy link

@Dankrou yeah it was on a different kernel but thanks for pointing that out.

@DaruinHerrera
Copy link

import os
import sys
import dlib
from skimage import io, exposure
from skimage.feature import hog
import cv2
import matplotlib.pyplot as plt

main = os.path.abspath(sys.argv[0])
file_name = os.path.abspath(os.path.join(os.path.dirname(main), "examples","faces","2.jpg"))

Contruye histograma de un rostros para identificación

image = cv2.imread(file_name)
fd, hog_image = hog(image, orientations=8, pixels_per_cell=(16, 16),
cells_per_block=(1, 1), visualize=True, channel_axis=2)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4), sharex=True, sharey=True)

ax1.axis('off')
ax1.imshow(image, cmap=plt.cm.gray)
ax1.set_title('Input image')

Rescale histogram for better display

hog_image_rescaled = exposure.rescale_intensity(hog_image, in_range=(0, 20))

ax2.axis('off')
ax2.imshow(hog_image_rescaled, cmap=plt.cm.gray)
ax2.set_title('Histogram of Oriented Gradients')
plt.show()

@ELHoussineT
Copy link

ELHoussineT commented May 26, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment