Ứng dụng OpenCV trong khôi phục hình ảnh

MỤC LỤC

CƠ SỞ LÝ THUYẾT

    ● Khi sử dụng Python, các lập trình viên có thể thoải mải thêm và tùy chỉnh các công cụ, để có thể tối đa hiệu quả trong công việc. OpenCV là tên viết tắt của open source computer vision library – có thể được hiểu là một thư viện nguồn mở cho máy tính. Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực.

    Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác. Bạn sử dụng các map để tìm đường, tra cứu tình hình giao thông hoặc đơn giản là xem xét các hình ảnh thực tế của địa điểm cần đến. OpenCV sẽ đem đến cho người dùng hình ảnh về đường phố hay các căn nhà, con người xung quanh địa điểm được chỉ định.

    Hoạt động này rất được yêu thích, nhất là trong thời đại trí tuệ nhân tạo AI phát triển như thế này. Tất cả những ứng dụng công nghệ như robot, xe tự lái, bảng cảm ứng thông minh… đều có sự góp mặt của OpenCV trong khâu xử lý hình ảnh. Ví dụ gần gũi nhất trong cuộc sống có thể kể đến hệ thống mở khóa điện thoại bằng cách nhận diện khuôn mặt người dùng.

    Keras_OCR là gói Python mã nguồn mở cung cấp giao diện đơn giản và dễ sử dụng để nhận dạng ký tự quang học (OCR) bằng các kỹ thuật deep learning. Nó được xây dựng dựa trên Keras và TensorFlow, đồng thời cung cấp quy trình OCR đầu cuối được đào tạo trước để loại bỏ văn bản khỏi hình ảnh. GFPGAN, viết tắt của cụm từ Generative Facial Prior Generative Adversarial Network, là công cụ miễn phí trên GitHub.

    Bạn có thể tải xuống phần mềm hoặc sử dụng phiên bản trực tuyến để nâng cấp và phục hồi hình ảnh. Phần mềm GFPGAN hiện tại là phiên bản đề mô theo mô hình GAN - đây là mô hình sử dụng tập hợp dữ liệu để xác định các mẫu và lắp đầy vào các khoảng trống trên hình ảnh của bạn bằng thuật toán máy học và mạng thần kinh (gọi tắt là công nghệ AI). Nói cách khác, công cụ GFPGAN sở hữu thuật toán xử lý thông minh, giúp lắp đầy các chi tiết bị hỏng hoặc bị mờ trên hình ảnh bằng các chi tiết tương tự của những bức ảnh khác giống như vậy.

    PHÂN TÍCH HỆ THỐNG

      STT Tên Use-case Ý nghĩa/ ghi chú 1 Khôi phục ảnh bị

      Đặc tả Use Case

      Mô tả tóm tắt Người dùng tiến hành chọn ảnh và khôi phục ảnh Điều kiện trước Truy cập trang web IRepair. Dòng sự kiện chính Hiển thị màn hình bắt đầu và chọn ảnh cần khôi phục. Người dùng chọn và xác nhận ảnh muốn khôi phục Xác nhận hệ thống bắt đầu xử lý ảnh.

      Mô tả tóm tắt Người dùng tiến hành chọn filter để nâng cấp chất lượng ảnh Điều kiện trước Xác nhận chọn và hệ thống xử lí ảnh. Dòng sự kiện chính Hiển thị màn hình bắt đầu và chọn filter cho ảnh cần khôi phục. Người dùng chọn và xác nhận ảnh muốn khôi phục Xác nhận hệ thống bắt đầu xử lý ảnh.

      Dòng sự kiện chính Hiển thị màn hình lựa chọn xác nhận ảnh muốn sửa Xóa tất cả những ký tự sau khi hệ thống xử lý Lưu ảnh.

      Bảng 3.1 Đặc tả Use-case Filter nâng cấp hình ảnh
      Bảng 3.1 Đặc tả Use-case Filter nâng cấp hình ảnh

      HIỆN THỰC HỆ THỐNG

      • Quá trình hệ thống hoạt động
        • Giao diện hệ thống .1 Màn hình bắt đầu

          ● Đối với mỗi hộp giới hạn, hãy áp dụng mặt nạ để cho thuật toán biết chúng ta nên tô phần nào của hình ảnh. ● Cuối cùng, áp dụng thuật toán inpainting để inpaint các vùng bị che của hình ảnh, dẫn đến hình ảnh không có văn bản, sử dụng cv2. - Sau khi hình ảnh được xử lý sẽ được xác định văn bản bằng những khung với tọa độ nhất định.

          - Cv2 có hai thuật toán inpainting khả dụng và cho phép áp dụng mask hình chữ nhật, hình tròn hoặc đường thẳng. - Trong trường hợp này, tôi quyết định sử dụng mặt nạ đường kẻ, vì chúng linh hoạt hơn để che văn bản theo các hướng khác nhau (mặt nạ hình chữ nhật sẽ chỉ hoạt động tốt đối với các từ song song hoặc vuông góc với trục x và mặt nạ hình tròn sẽ bao phủ một khu vực lớn hơn mức cần thiết). Chính vì thế em sẽ sử dụng những phương thức làm mờ khác nhau có trong thư viện open cv để xử lý cho từng ảnh với mục đích khác nhau.

          Đây là một hiệu ứng được sử dụng rộng rãi trong phần mềm đồ họa, thường là để giảm nhiễu hình ảnh và giảm chi tiết. Nó cũng được sử dụng như một giai đoạn tiền xử lý trước khi áp dụng các mô hình machine learning hoặc deep learning. 26 Median Blur: là một kỹ thuật lọc kỹ thuật số phi tuyến tính, thường được sử dụng để loại bỏ nhiễu khỏi hình ảnh hoặc tín hiệu.

          Lọc trung vị được sử dụng rất rộng rãi trong xử lý ảnh kỹ thuật số vì trong những điều kiện nhất định, nó bảo toàn các cạnh trong khi loại bỏ nhiễu. 27 Bilateral Blur: là bộ lọc làm mịn phi tuyến tính, bảo toàn cạnh và giảm nhiễu cho hình ảnh. Nó thay thế cường độ của từng pixel bằng giá trị cường độ trung bình có trọng số từ các pixel lân cận.

          GFP-GAN hay Generative Facial Prior là một mô hình trí tuệ nhân tạo giúp người dùng chỉnh sửa, phục hồi hình ảnh cũ, ảnh màu và trắng đen, ảnh bị rách, bị nhạt màu, bị cấn về nguyên bản hoặc tốt hơn ban đầu. Cách để tô màu cho những bức ảnh trắng đên hoặc khôi phục lại màu mà chúng nên có thông qua deep learning và training dữ liệu ảnh. - Dùng L channel như là đầu vào của mạng lưới và train mạng lưới nhằm dự đoán được ab channels.

          - Nhấp vào Select bar để chọn những action mà người dùng mong muốn - Nhấp vào button “Submit” để tiến hành xử lí ảnh. - Hệ thống sau khi xác nhận sẽ thực hiện phân tích ảnh - Xác định những hư hỏng có trong ảnh.

          Sơ đồ trình tự quá trình  văn bản:
          Sơ đồ trình tự quá trình văn bản: