BATMAN
This commit is contained in:
commit
4f09607579
|
@ -0,0 +1,45 @@
|
|||
import cv2
|
||||
import numpy as np
|
||||
from ultralytics import YOLO
|
||||
import cvzone
|
||||
|
||||
device = 'cuda'
|
||||
|
||||
# Load the YOLO11 model
|
||||
model = YOLO("yolo11m-pecan.pt")
|
||||
|
||||
# Open the video file (use video file or webcam, here using webcam)
|
||||
cap = cv2.VideoCapture(0)
|
||||
cy1=550
|
||||
offset=30
|
||||
idDict={}
|
||||
pecanCount = 0
|
||||
|
||||
while True:
|
||||
ret,frame = cap.read()
|
||||
if not ret:
|
||||
break
|
||||
|
||||
# Run YOLO11 tracking on the frame, persisting tracks between frames
|
||||
results = model.track(frame, persist=True,classes=0,device = device)
|
||||
|
||||
# Check if there are any boxes in the results
|
||||
if results[0].boxes is not None and results[0].boxes.id is not None:
|
||||
# Get the boxes (x, y, w, h), class IDs, track IDs, and confidences
|
||||
boxes = results[0].boxes.xyxy.int().cpu().tolist() # Bounding boxes
|
||||
class_ids = results[0].boxes.cls.int().cpu().tolist() # Class IDs
|
||||
track_ids = results[0].boxes.id.int().cpu().tolist() # Track IDs
|
||||
confidences = results[0].boxes.conf.cpu().tolist() # Confidence score
|
||||
|
||||
for box, class_id, track_id, conf in zip(boxes, class_ids, track_ids, confidences):
|
||||
x1, y1, x2, y2 = box
|
||||
cy = int(y1+y2)//2
|
||||
if cy<(cy1+offset) and cy>(cy1-offset) and track_id not in idDict.keys():
|
||||
pecanCount += 1
|
||||
idDict[track_id] = pecanCount
|
||||
|
||||
# Release the video capture object and close the display window
|
||||
cap.release()
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
print(pecanCount)
|
|
@ -0,0 +1,12 @@
|
|||
FROM python:3.11.8
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y libgl1-mesa-glx
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
CMD [ "python", "Count.py"]
|
|
@ -0,0 +1,65 @@
|
|||
beautifulsoup4==4.12.3
|
||||
certifi==2024.8.30
|
||||
charset-normalizer==3.4.0
|
||||
coloredlogs==15.0.1
|
||||
contourpy==1.3.1
|
||||
cvzone==1.6.1
|
||||
cycler==0.12.1
|
||||
filelock==3.16.1
|
||||
filterpy==1.4.5
|
||||
flatbuffers==24.3.25
|
||||
fonttools==4.54.1
|
||||
fsspec==2024.10.0
|
||||
gdown==5.2.0
|
||||
humanfriendly==10.0
|
||||
idna==3.10
|
||||
imageio==2.36.1
|
||||
imgviz==1.7.6
|
||||
Jinja2==3.1.4
|
||||
kiwisolver==1.4.7
|
||||
lapx==0.5.11
|
||||
lazy_loader==0.4
|
||||
MarkupSafe==3.0.2
|
||||
matplotlib==3.9.2
|
||||
mpmath==1.3.0
|
||||
munkres==1.1.4
|
||||
natsort==8.4.0
|
||||
networkx==3.4.2
|
||||
numpy==1.26.4
|
||||
onnxruntime==1.20.1
|
||||
opencv-python==4.10.0.84
|
||||
packaging==24.2
|
||||
pandas==2.2.3
|
||||
pillow==11.0.0
|
||||
protobuf==5.29.0
|
||||
psutil==6.1.0
|
||||
py-cpuinfo==9.0.0
|
||||
pyparsing==3.2.0
|
||||
PySocks==1.7.1
|
||||
python-dateutil==2.9.0.post0
|
||||
pytz==2024.2
|
||||
PyYAML==6.0.2
|
||||
QtPy==2.4.2
|
||||
requests==2.32.3
|
||||
scikit-image==0.24.0
|
||||
scipy==1.14.1
|
||||
seaborn==0.13.2
|
||||
shapely==2.0.6
|
||||
six==1.16.0
|
||||
soupsieve==2.6
|
||||
sympy==1.13.1
|
||||
termcolor==2.5.0
|
||||
tifffile==2024.9.20
|
||||
torch==2.3.0
|
||||
torchaudio==2.3.0
|
||||
torchvision==0.18.0
|
||||
tqdm==4.67.0
|
||||
typing_extensions==4.12.2
|
||||
tzdata==2024.2
|
||||
ultralytics==8.3.29
|
||||
ultralytics-thop==2.0.11
|
||||
unicodedata2==16.0.0
|
||||
urllib3==2.2.3
|
||||
|
||||
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue