.. raw:: html
.. _sec_bbox:
Phát hiện Vật thể và Khoanh vùng Đối tượng (Khung chứa)
=======================================================
.. raw:: html
Ở phần trước, chúng ta đã giới thiệu nhiều loại mô hình dùng cho phân
loại ảnh. Trong tác vụ phân loại ảnh, ta giả định chỉ có duy nhất một
đối tượng trong ảnh và ta chỉ tập trung xác định nó thuộc về nhóm nào.
Tuy nhiên, ở nhiều tình huống cùng lúc sẽ có nhiều đối tượng trong ảnh
mà ta quan tâm. Ta không chỉ muốn phân loại chúng mà còn muốn xác định
vị trí cụ thể của chúng ở trong ảnh. Trong lĩnh vực thị giác máy tính,
những tác vụ như thế được gọi là phát hiện vật thể (hoặc nhận dạng vật
thể).
.. raw:: html
Phát hiện vật thể được sử dụng rộng rãi trong nhiều lĩnh vực. Chẳng hạn,
trong công nghệ xe tự hành, ta cần lên lộ trình bằng cách xác định các
vị trí của phương tiện di chuyển, người đi đường, đường xá và các vật
cản trong các ảnh được thu về từ video. Robot cần thực hiện kiểu tác vụ
này để phát hiện các đối tượng mà chúng quan tâm. Hay các hệ thống an
ninh cần phát hiện các mục tiêu bất thường, ví dụ như các đối tượng xâm
nhập bất hợp pháp hoặc bom mìn.
.. raw:: html
Trong các phần tiếp theo, chúng tôi sẽ giới thiệu nhiều mô hình học sâu
dùng để phát hiện vật thể. Trước hết, ta nên bàn qua về khái niệm vị trí
vật thể. Đầu tiên, ta hãy nhập các gói và mô-đun cần thiết cho việc thử
nghiệm.
.. code:: python
%matplotlib inline
from d2l import mxnet as d2l
from mxnet import image, npx
npx.set_np()
.. raw:: html
Kế tiếp, ta nạp các ảnh mẫu sẽ sử dụng trong phần này. Ta có thể thấy
trong hình là một con chó ở bên trái và một con mèo ở bên phải. Chúng là
hai đối tượng chính trong ảnh này.
.. code:: python
d2l.set_figsize()
img = image.imread('../img/catdog.jpg').asnumpy()
d2l.plt.imshow(img);
.. figure:: output_bounding-box_vn_9c39e2_3_0.svg
.. raw:: html
Khung chứa
----------
.. raw:: html
Để phát hiện vật thể, ta thường sử dụng khung chứa để mô tả vị trí của
mục tiêu. Khung chứa là một khung hình chữ nhật có thể được xác định bởi
hai tọa độ: tọa độ :math:`x`, :math:`y` góc trên bên trái và tọa độ
:math:`x`, :math:`y` góc dưới bên phải của khung hình chữ nhật. Ta có
thể định nghĩa các khung chứa của con chó và con mèo trong ảnh dựa vào
thông tin tọa độ của ảnh trên. Gốc tọa độ của ảnh trên là góc trên bên
trái của ảnh, chiều sang phải và xuống dưới lần lượt là chiều dương của
trục :math:`x` và trục :math:`y`.
.. code:: python
# bbox is the abbreviation for bounding box
dog_bbox, cat_bbox = [60, 45, 378, 516], [400, 112, 655, 493]
.. raw:: html
Ta có thể vẽ khung chứa ngay trên ảnh để kiểm tra tính chính xác của nó.
Trước khi vẽ khung, ta định nghĩa hàm hỗ trợ ``bbox_to_rect``. Nó biểu
diễn khung chứa theo đúng định dạng khung chứa của ``matplotlib``.
.. code:: python
#@save
def bbox_to_rect(bbox, color):
"""Convert bounding box to matplotlib format."""
# Convert the bounding box (top-left x, top-left y, bottom-right x,
# bottom-right y) format to matplotlib format: ((upper-left x,
# upper-left y), width, height)
return d2l.plt.Rectangle(
xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],
fill=False, edgecolor=color, linewidth=2)
.. raw:: html
Sau khi vẽ khung chứa lên ảnh, có thể thấy rằng phần chính của mục tiêu
về cơ bản là nằm trong khung chứa.
.. code:: python
fig = d2l.plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));
.. figure:: output_bounding-box_vn_9c39e2_9_0.svg
Tóm tắt
-------
.. raw:: html
Để phát hiện vật thể, ta không chỉ cần xác định tất cả đối tượng mong
muốn trong ảnh mà còn cả vị trí của chúng. Các vị trí thường được biểu
diễn qua các khung chứa hình chữ nhật.
Bài tập
-------
.. raw:: html
Tìm một vài ảnh và thử dán nhãn một khung chứa bao quanh mục tiêu. So
sánh sự khác nhau giữa thời gian cần để dán nhãn các khung chứa và dán
nhãn các lớp hạng mục.
Thảo luận
---------
- `Tiếng Anh - MXNet `__
- `Tiếng Việt `__
Những người thực hiện
---------------------
Bản dịch trong trang này được thực hiện bởi:
- Đoàn Võ Duy Thanh
- Nguyễn Mai Hoàng Long
- Lê Khắc Hồng Phúc
- Phạm Hồng Vinh
- Đỗ Trường Giang
- Nguyễn Lê Quang Nhật