Xây dựng bài toán tự động xóa vật thể bất kì bằng Deep Learning

1. Giới thiệu về bài toán Automatic Object Removal

Trong thời đại bùng nổ của kĩ thuật số, đặc biệt sự phát triển vượt bậc của các nền tảng mạng xã hội. Nhu cầu về chia sẻ hình ảnh, hay thiết kế ấn phẩm đang ngày càng được chú trọng quan tâm hơn.

Chính vì vây, các ứng dụng liên quan đến chỉnh sửa hình ảnh là rất cần thiết. Trong đó, Xoá vật thể không mong muốn, dư thừa là một trong những thao tác phổ biến khi chỉnh sửa ảnh. Không chỉ dành riêng với các nhà photoshop chuyên nghiệp, mà ngay đến những người dùng bình thường cũng đã có nhu cầu sử dụng cao.

Hình 1: Người (ô màu đỏ) là thứ bạn muốn xóa.

1.1. Input và Output của bài toán

Xoá đối tượng trong ảnh (Object Removal), cụ thể là xoá đối tượng người dùng muốn xoá, xoá đối tượng dư thừa. Đó là một thao tác thường được sử dụng trong chỉnh sửa ảnh.

1.2. Hướng tiếp cận của bài toán

Khi tìm hiểu của các bên khác triển khai bài toán này, ví dụ như Tool Content-Aware Fill trong phần mềm Photoshop, Remove Objects from Photos Online with Ease | PicsArt, … mình nhận thấy rằng: Mỗi ứng dụng tuy có cách triển khai khác nhau, đi từ đơn giản cho đến phức tạp nhưng nhìn tổng quan các ứng dụng đều có chung một cách giải quyết:

Hình 3: Hướng tiếp cận của bài toán.

Ngoài ra, cũng có khá nhiều các paper đã ra mắt, nghiên cứu về phần này. Có thể kể đến như:

Hình 4: Kiến trúc của phương pháp Adversarial Scene Editing.

Mỗi phương pháp kể trên đều có những ưu, nhược điểm của riêng nó như:

Từ những điểm này, mình xin đề xuất phương pháp tiếp cận mới, lấy được các ưu điểm của 2 phương pháp trên. Đó là:

2. Cách giải quyết bài toán

Vì những mô hình Image Segmentation như DeepLabV3, FCN, … đã quá quen thuộc rồi nên mình xin phép không đề cập đến, mà đi thẳng vào phần chính của chúng ta.

2.1. Mô hình EdgeConnect

2.1.1. Ý tưởng của mô hình

Lines first, color next” hiểu theo nghĩa đơn giản đó là đường nét trước, màu sắc tiếp theo. Đây là cách mà các nghệ sĩ làm việc, tạo nên bức tranh của mình. Rõ ràng, để hoàn thành một tác phẩm, người nghệ sĩ sẽ phải tạo phác thảo bố cục cho bức ảnh trước. Các cạnh, đường đóng vai trò quan trọng tạo dựng không gian, hình dạng của đối tượng trong cảnh.

Từ điều đó, tác giả của mô hình tin rằng: mô hình cải thiện và tạo ra các chi tiết tốt, trước hết cần cải thiện cấu trúc hình ảnh thông qua cạnh của nó. Việc tạo cạnh, là một nhiệm vụ dễ dàng hơn so với các nhiệm vụ khác.

Hình 5: Input đầu vào, tạo cạnh và kết quả của mạng.

2.1.2. Kiến trúc của mô hình

Mô hình EdgeConnect được chia thành hai phần:

Hình 6: Kiến trúc của mô hình EdgeConnect.

Về chi tiết cách xây dựng mô hình, hàm loss và training đánh giá, tác giả cũng đã nói rõ trong paper, bạn nào hứng thú có thể đọc tìm hiểu nhá!

Ngoài ra, về các chỉ số đánh giá tác giả sử dụng trong paper, hay xa hơn là cho các bài toán Image Generation, mình cũng đã có một bài viết trên viblo nói về phần này 😁

Link bài ở đây nhá: https://viblo.asia/p/cac-chi-so-danh-gia-duoc-su-dung-cho-bai-toan-image-generation-is-fid-psnr-ssim-XL6lA0zDZek

2.2.Xây dựng bài toán automatic object removal

Hình 7:Hướng giải quyết bài toán Xóa vật thử tự động.

Trình tự thực hiện như sau:

2.3.Thực nghiệm

Sau khi đã xây dựng xong, và đây là kết quả mình test với một số ảnh:

Nhận xét:

3. Kết luận

Tự động xoá vật thể là một chủ đề còn khá mới mẻ trong lĩnh vực AI nói chung và Computer Vision nói riêng.

Mình đã tiến hành trình bày và giải quyết từng nội dung như sau:

4. Tài liệu tham khảo

  1. Rakshith Shetty, Mario Fritz, and Bernt Schiele. “Adversarial Scene Editing: Automatic Object Removal from Weak Supervision”. In: NeurIPS. 2018.
  2. Javier Gamazo. “Person Remover: People removal in images using Pix2Pix and YOLO”. In: 2019. URL: https://github.com/javirk/Person_remover.
  3. Kamyar Nazeri, Eric Ng, Tony Joseph, Faisal Z. Qureshi, Mehran Ebrahimi, “EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning,” Proc. International Conference on Computer Vision (ICCV), 2019.