강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

etc. (Programming)

Bài giảng Python miễn phí (Sử dụng 6) - Xử lý hình ảnh (OpenCV)

Khi sử dụng Python, bạn sẽ học cách sử dụng thư viện OpenCV, sức mạnh của thị giác máy tính và xử lý hình ảnh, đồng thời tìm hiểu cách áp dụng xử lý hình ảnh trong cuộc sống thực thông qua các dự án thú vị khác nhau.

(5.0) 63 đánh giá

3,824 học viên

  • nadocoding
OpenCV
Thumbnail

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Cách sử dụng OpenCV cần thiết cho xử lý ảnh

  • Phát triển máy quét tài liệu bán tự động (Dự án nhỏ số 1)

  • Xây dựng chương trình phát hiện và phân loại thẻ trong ảnh (mini project #2)

  • Tạo nhân vật thông qua nhận dạng khuôn mặt (dự án thực tế)

Học tập thông qua các dự án đa dạng và thú vị
Bài giảng xử lý hình ảnh bằng Python !

📢 Vui lòng kiểm tra trước khi tham dự buổi thuyết trình.

  • Môi trường phát triển được sử dụng trong bài giảng là Jupyter Notebook và Python 3.x.

Chúng ta gặp nhau mỗi ngày trong cuộc sống hàng ngày của chúng ta
Xử lý hình ảnh

Cho đến gần đây, bạn phải quét mã QR để vào nhà hàng, quán cà phê hoặc địa điểm khác. Nếu bạn đã từng thử làm thủ tục nhận phòng bằng mã QR , bạn hẳn đã trải nghiệm công nghệ xử lý hình ảnh. Nếu bạn đưa mã QR hiển thị trên màn hình điện thoại thông minh của mình đến gần thiết bị được lắp đặt ở lối vào cửa hàng ở khoảng cách thích hợp, thiết bị sẽ tự động tìm khu vực đó và nhận dạng mã QR.

(Nguồn: https://www.emkat.com/products/emkat-temperature-screening-kiosk/)

Có lẽ bạn đã từng thử đo nhiệt độ cơ thể ít nhất một lần. Bằng cách đặt máy tính bảng ngang tầm với một người và áp mặt bạn vào đó, máy sẽ tự động phát hiện vùng mặt, đo nhiệt độ cơ thể và báo cáo xem nhiệt độ có bình thường hay không.

Do đó, xử lý hình ảnh (thị giác máy tính) đề cập đến quá trình xử lý và phân tích hình ảnh để trích xuất thông tin hữu ích từ chúng . Nó được sử dụng trong nhiều lĩnh vực, không chỉ dừng lại ở việc tự động phát hiện mã QR hoặc khuôn mặt người trong hình ảnh chụp bằng camera.

Bộ lọc khuôn mặt , mọi người đều đã thử thứ gì đó như thế này ít nhất một lần, phải không?

(Nguồn: https://play.google.com/store/apps/details?id=com.campmobile.snow&hl=ko)

Để tôi nghĩ thêm một vài điều nữa:
Ví dụ, trong một video phỏng vấn sẽ được phát trên bản tin , bạn có thể tìm khuôn mặt của mọi người và chỉ ghép phần đó lại .
Khi tôi thử tải video từ hộp đen ô tô lên , nó sẽ tự động tìm biển số xe của một chiếc xe khác và ghép lại.
Ồ, nếu đó là biển số xe, nó sẽ tự động được nhận dạng khi vào và ra khỏi bãi đỗ xe trả phí, đúng không?

Đề xuất trang phục phù hợp với người dùng ,
Tự động mặc quần áo vào các bộ phận cơ thể một cách ảo ,
Ngoài ra còn có nội dung thú vị để kiểm tra xem ai đó đẹp trai hay xấu xí... chẳng hạn như những người nổi tiếng trông giống họ,
Nhận dạng cử chỉ tay để tạo ra thứ gì đó giống như tiếng vù vù trong Minority Report,
Tự động nhận dạng các vật phẩm bị cấm khi đi qua các trạm kiểm soát an ninh, v.v.

OpenCV

Xử lý hình ảnh được thực hiện với sự trợ giúp của OpenCV .
OpenCV là một thư viện mã nguồn mở để xử lý hình ảnh thời gian thực và nó thực sự là tốt nhất 😊😊


Trong bài giảng này, chúng ta sẽ tìm hiểu từng cách sử dụng OpenCV thông qua nhiều ví dụ khác nhau .

Ví dụ #1

Chúng tôi sẽ biến đổi hình ảnh gốc theo nhiều cách khác nhau.

Hình ảnh gốc

xích đu

vết mổ

Giảm kích thước

Hiệu ứng đen trắng

Làm mờ

Có vẻ dễ quá phải không? 😀
Chúng ta hãy đi sâu hơn một chút.

Ví dụ #2

Tôi đang cố gắng đưa tất cả các phần văn bản vào cuốn sách.

Hình ảnh gốc

Có một bức ảnh tôi đang đọc sách.

chuyển đổi thang độ xám

Đầu tiên, để đơn giản hóa hình ảnh, chúng ta chuyển đổi nó sang thang độ xám. Đen trắng đơn giản hơn nhiều so với màu, đúng không?

hàm ngưỡng

Để lấy văn bản trong vùng màu đỏ, bạn có thể sử dụng hàm ngưỡng của OpenCV. Tuy nhiên, vùng mong muốn không hiển thị rõ ràng. Điều này là do sự tồn tại đồng thời của các vùng sáng và tối do bóng đổ của ánh sáng mặt trời. Nguyên nhân là do toàn bộ hình ảnh đang được áp dụng làm tham chiếu.

Áp dụng ngưỡng thích ứng

Trong những trường hợp như vậy, tại sao không áp dụng một thứ gọi là ngưỡng thích ứng? Chẳng phải tốt hơn nhiều sao? Bằng cách chia hình ảnh thành các vùng nhỏ hơn và xử lý chúng, bạn có thể nhận dạng rõ ràng văn bản trong sách ngay cả khi có sự khác biệt về độ bóng do ánh sáng mặt trời (hoặc các loại ánh sáng khác)!

Ví dụ #3

Xử lý ảnh bao gồm xói mòn và giãn nở, và chúng ta cũng sẽ tìm hiểu các thao tác mở và đóng, kết hợp hai kỹ thuật này, với các ví dụ dễ hiểu. Bạn sẽ được giải thích chi tiết về cách thức hoạt động của từng thao tác, cũng như thời điểm sử dụng chúng.

Hoạt động mở

Hoạt động đóng cửa

Hmm... Có thể bạn sẽ không biết nếu chỉ nhìn vào bức ảnh này😊
Bạn cũng có thể thử cách này!

Ví dụ #4

Nếu bạn tìm thấy một khu vực nhất định trong hình ảnh và biến đổi nó, bạn có thể mở rộng hình ảnh từ hình thang thành hình chữ nhật.

Ví dụ #5

Bạn cũng có thể tạo một máy quét tài liệu bán tự động có thể trích xuất vùng mong muốn bằng cách chọn vùng đó.
Trong ví dụ này, tôi sẽ sử dụng hình ảnh thẻ.

Đi xa hơn một chút, bạn cũng có thể sử dụng tính năng gọi là phát hiện đường viền để tự động phát hiện và trích xuất các khu vực trong hình ảnh có chứa thẻ hoặc tài liệu.

Mặc dù không được đề cập trong bài giảng, việc phát hiện và đọc các vùng văn bản có thể dễ dàng xác định loại thẻ bạn sở hữu. Nếu được áp dụng vào chương trình quản lý danh thiếp, nó có thể đọc văn bản, phân loại và lưu trữ thông tin như tên, số điện thoại và địa chỉ email. Ví dụ: nếu bạn cung cấp dịch vụ mở tài khoản từ xa, bạn có thể tự động điền vào các trường bắt buộc bằng cách đọc văn bản từ thẻ căn cước và tự động làm mờ hoặc che số đăng ký thường trú.

Ví dụ #6

Bằng cách sử dụng các kỹ thuật xử lý hình ảnh này, chúng ta không thể không tìm thấy khuôn mặt người và làm điều gì đó thú vị với chúng, phải không?
Trong dự án này, chúng ta sẽ sử dụng một gói có tên là mediapipe (https://google.github.io/mediapipe/) .

Như đã giới thiệu trên trang chủ, bạn có thể thực hiện nhiều tác vụ thú vị như phát hiện khuôn mặt, nhận dạng vật thể và nhận dạng chuyển động .

Chúng ta sẽ áp dụng mã ví dụ phát hiện khuôn mặt, được giới thiệu trước, để tìm khuôn mặt người trong ảnh. Chỉ với vài dòng mã, chúng ta có thể xác định vị trí mắt, mũi, miệng và tai, thậm chí vẽ hình lên chúng.

Thay vì hình khối, hãy thử vẽ hình động vật lên đó. Đây là một vài chiếc tai và mũi được vẽ bằng đôi tay vụng về của tôi.

Tôi đã thử đặt cái này vào

Thì ra là thế này 🤣

Bây giờ mọi việc đã xong, chúng ta hãy tìm một hình ảnh nhân vật thực sự chân thực và che nó lại.

Ta-da!! Tôi đã đặt một hình ảnh nhân vật dễ thương lên khuôn mặt của ông già này.
Trên thực tế, có một chút công việc cần thực hiện để đảm bảo tính minh bạch trong quá trình này, nhưng tôi sẽ giải thích chi tiết ở phần sau của bài giảng, nên bạn đừng lo lắng.

Sau khi học đến đây, chắc hẳn bạn sẽ có vô số ý tưởng sáng tạo bay bổng trong đầu, háo hức muốn áp dụng ngay lập tức. Tất nhiên, bạn cũng sẽ dễ dàng thực hiện chúng. Thậm chí bạn còn có thể tạo ra những chương trình vui nhộn như một đứa trẻ tinh nghịch nữa chứ ✨

Tất cả những việc này sẽ mất khoảng 5 giờ 40 phút .

Vậy thì chúng ta bắt đầu ngay bây giờ nhé?

Được thiết kế bởi Freepik
 https://www.freepik.com

Hình ảnh, Video của Pixabay, Pexels
https://www.pixabay.com
https://www.pexels.com

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Bất cứ ai đã học Python cơ bản

  • Bất cứ ai muốn sử dụng Python trong cuộc sống thực

  • Bất kỳ ai muốn hoàn thành dự án của riêng mình bằng các kỹ thuật xử lý hình ảnh khác nhau

Xin chào
Đây là

100,745

Học viên

3,146

Đánh giá

915

Trả lời

4.9

Xếp hạng

11

Các khóa học

유튜브에서 코딩 교육 채널을 운영하고 있는 나도코딩입니다.
누구나 쉽고 재미있게 코딩을 공부하실 수 있도록 친절한 설명과 쉬운 예제로 강의합니다.
코딩, 함께 하실래요? 😊

🧡 유튜브 나도코딩
🎁 코딩 자율학습 나도코딩의 파이썬 입문
📚 코딩 자율학습 나도코딩의 C 언어 입문

Chương trình giảng dạy

Tất cả

48 bài giảng ∙ (5giờ 40phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

63 đánh giá

5.0

63 đánh giá

  • vvipia5187님의 프로필 이미지
    vvipia5187

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • lovesome994824님의 프로필 이미지
      lovesome994824

      Đánh giá 2

      Đánh giá trung bình 3.0

      5

      60% đã tham gia

      力になる良い講義.. 充実した講義をありがとうございます。

      • sayminseo님의 프로필 이미지
        sayminseo

        Đánh giá 2

        Đánh giá trung bình 5.0

        5

        60% đã tham gia

        このような講義が無料だなんて、とても良いですね!

        • vitaliykim1208님의 프로필 이미지
          vitaliykim1208

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          31% đã tham gia

          • changeunosakakim6001님의 프로필 이미지
            changeunosakakim6001

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            31% đã tham gia

            Miễn phí

            Khóa học khác của nadocoding

            Hãy khám phá các khóa học khác của giảng viên!