Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YOLOv8 Tracking and Counting #355

Open
1 of 2 tasks
Elsaraf1 opened this issue Dec 24, 2024 · 0 comments
Open
1 of 2 tasks

YOLOv8 Tracking and Counting #355

Elsaraf1 opened this issue Dec 24, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@Elsaraf1
Copy link

Search before asking

  • I have searched the Roboflow Notebooks issues and found no similar bug report.

Notebook name

YOLOv8 Tracking and Counting

Bug

image
image

I didn't change any in the code but i got this error
AttributeError Traceback (most recent call last)
in <cell line: 17>()
30 # print(detections)
31 # tracking detections
---> 32 tracks = byte_tracker.update(
33 output_results=detections2boxes(detections=detections),
34 img_info=frame.shape,

3 frames
/usr/local/lib/python3.10/dist-packages/numpy/init.py in getattr(attr)
322
323 if attr in former_attrs:
--> 324 raise AttributeError(former_attrs[attr])
325
326 if attr == 'testing':

AttributeError: module 'numpy' has no attribute 'float'.
np.float was a deprecated alias for the builtin float. To avoid this error in existing code, use float by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64 here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
I believe that is related to byte_racker

Environment

Google colab

Minimal Reproducible Example

from tqdm.notebook import tqdm

create BYTETracker instance

byte_tracker = BYTETracker(BYTETrackerArgs())

create VideoInfo instance

video_info = VideoInfo.from_video_path(SOURCE_VIDEO_PATH)

create frame generator

generator = get_video_frames_generator(SOURCE_VIDEO_PATH)

create LineCounter instance

line_counter = LineCounter(start=LINE_START, end=LINE_END)

create instance of BoxAnnotator and LineCounterAnnotator

box_annotator = BoxAnnotator(color=ColorPalette(), thickness=4, text_thickness=4, text_scale=2)
line_annotator = LineCounterAnnotator(thickness=4, text_thickness=4, text_scale=2)

open target video file

with VideoSink(TARGET_VIDEO_PATH, video_info) as sink:
# loop over video frames
for frame in tqdm(generator, total=video_info.total_frames):
# model prediction on single frame and conversion to supervision Detections
results = model(frame)
detections = Detections(
xyxy=results[0].boxes.xyxy.cpu().numpy().astype(float),
confidence=results[0].boxes.conf.cpu().numpy(),
class_id=results[0].boxes.cls.cpu().numpy()
)
# filtering out detections with unwanted classes
mask = np.array([class_id in CLASS_ID for class_id in detections.class_id], dtype=bool)
detections.filter(mask=mask, inplace=True)
# print(detections)
# tracking detections
tracks = byte_tracker.update(
output_results=detections2boxes(detections=detections),
img_info=frame.shape,
img_size=frame.shape
)
tracker_id = match_detections_with_tracks(detections=detections, tracks=tracks)
detections.tracker_id = np.array(tracker_id)
# filtering out detections without trackers
mask = np.array([tracker_id is not None for tracker_id in detections.tracker_id], dtype=bool)
detections.filter(mask=mask, inplace=True)
# format custom labels
labels = [
f"#{tracker_id} {CLASS_NAMES_DICT[class_id]} {confidence:0.2f}"
for _, confidence, class_id, tracker_id
in detections
]
# updating line counter
line_counter.update(detections=detections)
# annotate and display frame
frame = box_annotator.annotate(frame=frame, detections=detections, labels=labels)
line_annotator.annotate(frame=frame, line_counter=line_counter)
sink.write_frame(frame)

Additional

No response

Are you willing to submit a PR?

  • Yes I'd like to help by submitting a PR!
@Elsaraf1 Elsaraf1 added the bug Something isn't working label Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant