.. 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