import
cv2
import
dlib
from
imutils
import
face_utils
img
=
cv2.imread(
'object (1).png'
)
proto_file
=
'SSD_MobileNet_prototxt.txt'
model_file
=
'SSD_MobileNet.caffemodel'
classNames
=
{
0
:
'background'
,
1
:
'aeroplane'
,
2
:
'bicycle'
,
3
:
'bird'
,
4
:
'boat'
,
5
:
'bottle'
,
6
:
'bus'
,
7
:
'car'
,
8
:
'cat'
,
9
:
'chair'
,
10
:
'cow'
,
11
:
'diningtable'
,
12
:
'dog'
,
13
:
'horse'
,
14
:
'motorbike'
,
15
:
'person'
,
16
:
'pottedplant'
,
17
:
'sheep'
,
18
:
'sofa'
,
19
:
'train'
,
20
:
'tvmonitor'
}
input_shape
=
(
300
,
300
)
mean
=
(
127.5
,
127.5
,
127.5
)
scale
=
0.007843
net
=
cv2.dnn.readNetFromCaffe(proto_file, model_file)
blob
=
cv2.dnn.blobFromImage(img,
scalefactor
=
scale,
size
=
input_shape,
mean
=
mean,
swapRB
=
True
)
net.setInput(blob)
results
=
net.forward()
for
i
in
range
(results.shape[
2
]):
confidence
=
round
(results[
0
,
0
, i,
2
],
2
)
if
confidence >
0.7
:
id
=
int
(results[
0
,
0
, i,
1
])
x1, y1, x2, y2
=
results[
0
,
0
, i,
3
:
7
]
ih, iw, ic
=
img.shape
x1, x2
=
int
(x1
*
iw),
int
(x2
*
iw)
y1, y2
=
int
(y1
*
ih),
int
(y2
*
ih)
cv2.rectangle(img,
(x1, y1),
(x2, y2),
(
0
,
200
,
0
),
2
)
cv2.putText(img, f
'{classNames[id]}:{confidence*100}'
,
(x1
+
30
, y1
-
30
),
cv2.FONT_HERSHEY_DUPLEX,
1
, (
255
,
0
,
0
),
1
)
img
=
cv2.resize(img, (
640
,
720
))
cv2.imshow(
'Image'
, img)
cv2.waitKey()