Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions Object Detection/ObjectDection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import cv2

Check failure on line 1 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (INP001)

Object Detection/ObjectDection.py:1:1: INP001 File `Object Detection/ObjectDection.py` is part of an implicit namespace package. Add an `__init__.py`.
import matplotlib.pyplot as plt

config_file = 'ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt'
frozen_model = 'frozen_inference_graph.pb'
model = cv2.dnn_DetectionModel(frozen_model, config_file)

classLabels = []

Check failure on line 8 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (N816)

Object Detection/ObjectDection.py:8:1: N816 Variable `classLabels` in global scope should not be mixedCase
file_name = 'labels.txt'
with open(file_name, 'rt') as fpt:

Check failure on line 10 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP015)

Object Detection/ObjectDection.py:10:6: UP015 Unnecessary open mode parameters
classLabels = fpt.read().rstrip('\n').split('\n')

Check failure on line 11 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (N816)

Object Detection/ObjectDection.py:11:5: N816 Variable `classLabels` in global scope should not be mixedCase

print(classLabels)
print(len(classLabels))

model.setInputSize(320, 320)
model.setInputScale(1.0/127.5)
model.setInputMean((127.5, 127.5, 127.5))
model.setInputSwapRB(True)

img = cv2.imread('boy.jpg')
plt.imshow(img)

ClassIndex, confidence, bbox = model.detect(img, confThreshold=0.5)
print(ClassIndex)

font_scale = 3
font = cv2.FONT_HERSHEY_PLAIN
for ClassInd, conf, boxes in zip(ClassIndex.flatten(), confidence.flatten(), bbox):

Check failure on line 29 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (B007)

Object Detection/ObjectDection.py:29:15: B007 Loop control variable `conf` not used within loop body
cv2.rectangle(img, boxes, (255, 0, 0), 2)
cv2.putText(img, classLabels[ClassInd-1], (boxes[0]+10, boxes[1]+40), font, fontScale=font_scale, color=(0, 255, 0), thickness=3)

Check failure on line 31 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E501)

Object Detection/ObjectDection.py:31:89: E501 Line too long (133 > 88)

plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()

# Webcam Object Detection
cap = cv2.VideoCapture('1')
if not cap.isOpened():
cap = cv2.VideoCapture(0)
if not cap.isOpened():
raise IOError("Cannot open video")

Check failure on line 41 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP024)

Object Detection/ObjectDection.py:41:11: UP024 Replace aliased errors with `OSError`

font_scale = 3
font = cv2.FONT_HERSHEY_PLAIN

while True:
ret, frame = cap.read()

ClassIndex, confidence, bbox = model.detect(frame, confThreshold=0.55)
print(ClassIndex)

if (len(ClassIndex) != 0):
for ClassInd, conf, boxes in zip(ClassIndex.flatten(), confidence.flatten(), bbox):

Check failure on line 53 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (B007)

Object Detection/ObjectDection.py:53:23: B007 Loop control variable `conf` not used within loop body

Check failure on line 53 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E501)

Object Detection/ObjectDection.py:53:89: E501 Line too long (91 > 88)
if (ClassInd <= 80):
cv2.rectangle(frame, boxes, (255, 0, 0), 2)
cv2.putText(frame, classLabels[ClassInd - 1], (boxes[0] + 10, boxes[1] + 40), font,

Check failure on line 56 in Object Detection/ObjectDection.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E501)

Object Detection/ObjectDection.py:56:89: E501 Line too long (99 > 88)
fontScale=font_scale, color=(0, 255, 0), thickness=3)

cv2.imshow('Object Detection Tutorial', frame)

if cv2.waitKey(2) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()
Binary file added Object Detection/frozen_inference_graph.pb
Binary file not shown.
Loading