Skip to content

Commit 668ed24

Browse files
authored
Add files via upload
1 parent 02b4d04 commit 668ed24

File tree

1 file changed

+159
-0
lines changed

1 file changed

+159
-0
lines changed

05-Single Object Tracking.ipynb

+159
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"## Import Libraries"
8+
]
9+
},
10+
{
11+
"cell_type": "code",
12+
"execution_count": null,
13+
"metadata": {},
14+
"outputs": [],
15+
"source": [
16+
"import cv2"
17+
]
18+
},
19+
{
20+
"cell_type": "markdown",
21+
"metadata": {},
22+
"source": [
23+
"## Define our Tracker"
24+
]
25+
},
26+
{
27+
"cell_type": "code",
28+
"execution_count": null,
29+
"metadata": {},
30+
"outputs": [],
31+
"source": [
32+
"def ask_for_tracker():\n",
33+
" print('Hi!What tracker API would you like to use?')\n",
34+
" print('Enter 0 for BOOSTING: ')\n",
35+
" print('Enter 1 for MIL: ')\n",
36+
" print('Enter 2 for KCF: ')\n",
37+
" print('Enter 3 for TLD: ')\n",
38+
" print('Enter 4 for MEDIANFLOW: ')\n",
39+
" print('Enter 5 for GOTURN: ')\n",
40+
" print('Enter 6 for MOSSE: ')\n",
41+
" print('Enter 7 for CSRT: ')\n",
42+
" \n",
43+
" choice = input('Please select your tracker: ')\n",
44+
" if choice == 0:\n",
45+
" tracker = cv2.TrackerBoostring_create()\n",
46+
" if choice == 1:\n",
47+
" tracker = cv2.TrackerMIL_create()\n",
48+
" if choice == 2:\n",
49+
" tracker = cv2.TrackerKCF_create()\n",
50+
" if choice == 3:\n",
51+
" tracker = cv2.TrackerTLD_create()\n",
52+
" if choice == 4:\n",
53+
" tracker = cv2.TrackerMedianFlow_create()\n",
54+
" if choice == 5:\n",
55+
" tracker = cv2.TrackerGOTURN_create()\n",
56+
" if choice == 6:\n",
57+
" tracker = cv2.TrackerMOSSE_create()\n",
58+
" if choice == 7:\n",
59+
" tracker = cv2.TrackerCSRT_create()\n",
60+
" \n",
61+
" return tracker\n"
62+
]
63+
},
64+
{
65+
"cell_type": "markdown",
66+
"metadata": {},
67+
"source": [
68+
"## Magic"
69+
]
70+
},
71+
{
72+
"cell_type": "code",
73+
"execution_count": null,
74+
"metadata": {},
75+
"outputs": [],
76+
"source": [
77+
"# Tracker\n",
78+
"tercker = ask_for_tracker()\n",
79+
"\n",
80+
"# Tracker name\n",
81+
"tracker_name = str(tracker).split()[0][1:]\n",
82+
"\n",
83+
"# Capture the video\n",
84+
"cap = cv2.Videocapture('Videos/Vehicles.mp4')\n",
85+
"\n",
86+
"# Read the first frame\n",
87+
"ret, frame = cap.read()\n",
88+
"\n",
89+
"# Select our ROI\n",
90+
"roi = cv2.selectROI(frame, False)\n",
91+
"\n",
92+
"# Initialize Tracker\n",
93+
"ret = tracker.init(frame, roi)\n",
94+
"\n",
95+
"#while loop\n",
96+
"while True:\n",
97+
" \n",
98+
" # Read the capture\n",
99+
" ret, frame = cap.read()\n",
100+
" \n",
101+
" # Update tracker\n",
102+
" success, roi = tracker.update(frame)\n",
103+
" \n",
104+
" # roi --> from tuple to int\n",
105+
" (x, y, w, h) = tuple(map(inr, roi))\n",
106+
" \n",
107+
" # Draw rects as tracker moves\n",
108+
" if success:\n",
109+
" \n",
110+
" # success on tracking\n",
111+
" pts1 = (x, y)\n",
112+
" pts2 = (x+w, y+h)\n",
113+
" cv2.rectangle(frame, pts1, pts2, (255, 125, 25), 3)\n",
114+
" \n",
115+
" # else\n",
116+
" else:\n",
117+
" \n",
118+
" # failure on tracking\n",
119+
" cv2.putText(frame, 'Fail to track the object', (100, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (25, 125, 255), 3)\n",
120+
" \n",
121+
" # Display tracker\n",
122+
" cv2.puttext(frame, tracker_name, (20, 400), FONT_HERSHEY_SIMPLEX, 1, (255, 255, 0), 3)\n",
123+
" \n",
124+
" # Display result\n",
125+
" cv2.imshow(tracker_name, frame)\n",
126+
" \n",
127+
" # exit with ESC button\n",
128+
" if cv2.waitKey(50) & 0xFF == 27:\n",
129+
" break\n",
130+
" \n",
131+
"# release the capture and Destroy all windows\n",
132+
"cap.release()\n",
133+
"cv2.destroyAllWindows()\n",
134+
" "
135+
]
136+
}
137+
],
138+
"metadata": {
139+
"kernelspec": {
140+
"display_name": "Python 3",
141+
"language": "python",
142+
"name": "python3"
143+
},
144+
"language_info": {
145+
"codemirror_mode": {
146+
"name": "ipython",
147+
"version": 3
148+
},
149+
"file_extension": ".py",
150+
"mimetype": "text/x-python",
151+
"name": "python",
152+
"nbconvert_exporter": "python",
153+
"pygments_lexer": "ipython3",
154+
"version": "3.7.6"
155+
}
156+
},
157+
"nbformat": 4,
158+
"nbformat_minor": 4
159+
}

0 commit comments

Comments
 (0)