python yolo

bachtrapaddle

New member
#Python #Yolo #object phát hiện #object phát hiện trong Python #OpenCV ## Python Yolo: Phát hiện đối tượng với OpenCV

Bạn có thể sử dụng Python và Yolo để thực hiện phát hiện đối tượng trên hình ảnh và video.Yolo là một thuật toán phát hiện đối tượng phổ biến nhanh chóng và chính xác.Nó cũng tương đối dễ sử dụng, làm cho nó trở thành một lựa chọn tốt cho người mới bắt đầu.

Để thực hiện phát hiện đối tượng với Python và Yolo, bạn sẽ cần cài đặt các gói sau:

* [OpenCV] (https://opencv.org/)
* [Numpy] (https://numpy.org/)
* [Matplotlib] (https://matplotlib.org/)

Khi bạn đã cài đặt các gói yêu cầu, bạn có thể làm theo các bước bên dưới để thực hiện phát hiện đối tượng trên hình ảnh:

1. Nhập các gói yêu cầu.

`` `Python
Nhập CV2
nhập khẩu NUMPY dưới dạng NP
Nhập matplotlib.pyplot như PLT
`` `

2. Tải hình ảnh.

`` `Python
IMAGE = CV2.IMREAD ('Image.jpg')
`` `

3. Chuyển đổi hình ảnh thành thang độ xám.

`` `Python
grayscale_image = cv2.cvtcolor (hình ảnh, cv2.color_bgr2gray)
`` `

4. Phát hiện các đối tượng trong hình ảnh bằng Yolo.

`` `Python
# Tải tệp Cấu hình và Trọng lượng Yolo.
Trọng lượng_FILE = 'YOLOV3. TRUNG TÂM'
config_file = 'yolov3.cfg'

# Tạo một máy dò đối tượng Yolo.
yolo = cv2.dnn.readnet (trọng lượng_file, config_file)

# Phát hiện các đối tượng trong hình ảnh.
blob = cv2.dnn.blobfromimage (grayscale_image, 1/255.0, (416, 416), swaprb = true, crop = false
Yolo.setinput (Blob)
đầu ra = yolo.forward ()

# In số lượng đối tượng được phát hiện.
In ('Số lượng đối tượng được phát hiện:', LEN (đầu ra))

# Vòng lặp qua các đối tượng được phát hiện.
Đối với đầu ra trong đầu ra:
# Trích xuất tọa độ hộp giới hạn cho đối tượng.
Hộp = OUTPUT [0: 4] * np.array ([Image.Shape [1], Image.Shape [0], Image.Shape [1], Image.Shape [0]])
# Trích xuất nhãn lớp cho đối tượng.
class_id = đầu ra [5:]

# Vẽ hộp giới hạn và nhãn trên hình ảnh.
cho hộp, class_id trong zip (hộp, class_id):
# Chuyển đổi tọa độ hộp giới hạn thành số nguyên.
hộp = box.Asype (int)

# Vẽ hộp giới hạn.
CV2.RECTANGLE (IMAGE, (Hộp [0], hộp [1]), (hộp [2], hộp [3]), (0, 255, 0), 2)

# Vẽ nhãn lớp.
cv2.puttext (hình ảnh, str (class_id), (hộp [0], hộp [1] - 10), cv2.font_hershey_simplex, 0.5, (0, 255, 0), 2)

# Hiển thị hình ảnh với các đối tượng được phát hiện.
plt.imshow (hình ảnh)
plt.show ()
`` `

Đầu ra của mã trên sẽ là một hình ảnh với các đối tượng được phát hiện được đánh dấu bằng các hộp và nhãn giới hạn.

## Người giới thiệu

* [Yolov3: Cải thiện gia tăng] (https://arxiv.org/abs/1804.02767)
* [Hướng dẫn phát hiện đối tượng OpenCV] (https://docs.opencv.org/3.4/d7/d8b/tutorial_dnn_object_detection.html)
* [Hướng dẫn Matplotlib] (https://matplotlib.org/tutorials/index.html)
=======================================
#Python #Yolo #object Detection #object Detection in Python #OpenCV ##Python YOLO: Object Detection with OpenCV

You can use Python and YOLO to perform object detection on images and videos. YOLO is a popular object detection algorithm that is fast and accurate. It is also relatively easy to use, making it a good option for beginners.

To perform object detection with Python and YOLO, you will need to install the following packages:

* [OpenCV](https://opencv.org/)
* [NumPy](https://numpy.org/)
* [Matplotlib](https://matplotlib.org/)

Once you have installed the required packages, you can follow the steps below to perform object detection on an image:

1. Import the required packages.

```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
```

2. Load the image.

```python
image = cv2.imread('image.jpg')
```

3. Convert the image to grayscale.

```python
grayscale_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
```

4. Detect objects in the image using YOLO.

```python
# Load the YOLO weights and configuration file.
weights_file = 'yolov3.weights'
config_file = 'yolov3.cfg'

# Create a YOLO object detector.
yolo = cv2.dnn.readNet(weights_file, config_file)

# Detect objects in the image.
blob = cv2.dnn.blobFromImage(grayscale_image, 1/255.0, (416, 416), swapRB=True, crop=False)
yolo.setInput(blob)
outputs = yolo.forward()

# Print the number of objects detected.
print('Number of objects detected:', len(outputs))

# Loop over the detected objects.
for output in outputs:
# Extract the bounding box coordinates for the object.
boxes = output[0:4] * np.array([image.shape[1], image.shape[0], image.shape[1], image.shape[0]])
# Extract the class label for the object.
class_id = output[5:]

# Draw the bounding box and label on the image.
for box, class_id in zip(boxes, class_id):
# Convert the bounding box coordinates to integers.
box = box.astype(int)

# Draw the bounding box.
cv2.rectangle(image, (box[0], box[1]), (box[2], box[3]), (0, 255, 0), 2)

# Draw the class label.
cv2.putText(image, str(class_id), (box[0], box[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

# Display the image with the detected objects.
plt.imshow(image)
plt.show()
```

The output of the above code will be an image with the detected objects marked with bounding boxes and labels.

## References

* [YOLOv3: An Incremental Improvement](https://arxiv.org/abs/1804.02767)
* [OpenCV Object Detection Tutorial](https://docs.opencv.org/3.4/d7/d8b/tutorial_dnn_object_detection.html)
* [Matplotlib Tutorial](https://matplotlib.org/tutorials/index.html)
 
Join ToolsKiemTrieuDoGroup
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock