Computer Vision Course

Get Started. It's Free
or sign up with your email address
Computer Vision Course by Mind Map: Computer Vision Course

1. I. Tổng quan

1.1. Khái niệm: học về việc làm cho máy tính có khả năng "hiểu" và "thấy" thế giới xung quanh thông qua hình ảnh và video.

1.2. Mục tiêu

1.2.1. Hiểu các kiến thức cơ bản về thị giác máy tính

1.2.1.1. Biểu diễn ảnh số

1.2.1.2. Nâng cao chất lượng ảnh

1.2.1.3. Xữ lý hình thái ảnh

1.2.1.4. Phân đoạn ảnh

1.2.1.5. Phát hiện và phân loại vật thể

1.2.2. Phân tích, thiết kế và lập trình giải quyết các bài toán nâng cao

1.2.2.1. Chất lượng hình ảnh

1.2.2.2. Xử lý hình thái ảnh

1.2.2.3. Phát hiện vật thể sử dụng matlab, Python và OpenCV

2. II. Các khái niệm về ảnh

2.1. Ảnh kỹ thuật số?

2.1.1. Khái niệm: là một biểu diễn của một hình ảnh hai chiều như một tập hợp hữu hạn các giá trị kỹ thuật số, được gọi là các phần tử hình ảnh hoặc pixel

2.1.2. Ảnh kỹ thuật số là một sự xấp xỉ của một cảnh thực

2.1.3. Phân loại

2.1.3.1. Binary Image

2.1.3.1.1. Pixel chỉ có giá trị 0 hoặc 1

2.1.3.1.2. Chỉ cần 1 bit

2.1.3.2. Gray scale Image

2.1.3.2.1. Có giá trị từ 0 đến 255

2.1.3.2.2. Cần 8 bit biểu diễn

2.1.3.3. Color Image

2.1.3.3.1. Một pixel được biểu diễn bởi 3 kênh màu: Red, Green, Blue

2.2. Xữ lý ảnh kỹ thuật số là gì?

2.2.1. Khái niệm

2.2.1.1. Xử lý hình ảnh kỹ thuật số liên quan đến việc thao tác hình ảnh kỹ thuật số thông qua máy tính kỹ thuật số.

2.2.2. Mục đích

2.2.2.1. Mục đích chính của DIP là trực quan hóa. Cải thiện chất lượng hình ảnh cho nhận thức của con người

2.3. Ứng dụng

2.3.1. Khữ nhiễu

2.3.2. Cải thiện chất lượng

3. III. Các bài toán và thuật toán cơ bản

3.1. Point processing

3.1.1. Khái niệm

3.1.1.1. Chuyển đổi giá trị trong miền không gian này sang miền không gian khác

3.1.2. Công thức tổng quát

3.1.2.1. s = T(r) : ( s là giá trị mới của giá trị cũ r với phép biến đổi T)

3.1.3. Phân loại

3.1.3.1. Negative images

3.1.3.1.1. Hình ảnh âm bản hữu ích để tăng cường chi tiết màu trắng hoặc xám được nhúng trong vùng tối của hình ảnh

3.1.3.1.2. s = intensity_max(-r)

3.1.3.2. Thresholding

3.1.3.2.1. Chuyển đổi ngưỡng đặc biệt hữu ích cho phân đoạn mà chúng ta muốn tách biệt đối tượng quan tâm khỏi nền

3.1.3.2.2. s = 1.0 with r > thresholding s = 0.0 with r <= thresholding

3.1.3.3. Logarithmic transformation

3.1.3.3.1. s = c*log(1+r)

3.1.3.4. Power law transforms

3.1.3.4.1. s = r^y

3.1.3.5. Grey level slicing

3.1.3.5.1. Làm nổi bật một phạm vi cụ thể của mức độ xám

3.1.3.6. Bit plane slicing

3.1.3.6.1. Các bit bậc cao thường chứa hầu hết các thông tin hình ảnh quan trọng

3.1.3.6.2. Các bit bậc thấp chứa các chi tiết tinh tế

3.2. Histogram Equalization

3.2.1. Histogram: Biểu đồ cung cấp mô tả chung về mức độ phân bổ các gái trị pixel của hình ảnh.

3.2.2. phép biến đổi T(.) sao cho các giá trị màu xám trong đầu ra được phân bố đồng đều trong [0, 1].

3.2.3. p(r_k) = n_k/n

3.3. Spatial Domain Filter

3.3.1. Lọc hình ảnh là gì?

3.3.1.1. Lọc là quá trình thay thế một pixel bằng một giá trị dựa trên một số thao tác hoặc chức năng.

3.3.2. Tích chập

3.3.2.1. Tích chập là một phép toán kết hợp hai hàm số để tạo ra một hàm số mới.

3.3.3. Làm mịn

3.3.3.1. Bộ lọc tuyến tính

3.3.3.1.1. Được gọi là tính trung bình bộ lọc hoặc bộ lọc thông thấp.

3.3.3.2. Bộ lọc trung bình

3.3.3.2.1. Tính giá trị trung bình tất cả các pixel.

3.3.3.3. Bộ lọc có trọng số

3.3.3.3.1. Tính trung bình theo trọng số các pixel.

3.3.3.4. Bộ lọc trung vị

3.3.3.4.1. Lấy giá trị trung vị

3.3.3.5. Bộ lọc max

3.3.3.5.1. Lấy giá trị lớn nhất

3.3.3.6. Bộ lọc min

3.3.3.6.1. Lấy giá trị nhỏ nhất

3.3.4. Làm sắc nét

3.3.4.1. Làm nổi bật chi tiết đẹp trong hình ảnh.

3.3.4.2. Sử dụng đạo hàm bật nhất và bật hai

3.4. Morphological Image processing

3.4.1. SE: Một phần tử cấu trúc là một ảnh con nhỏ, được sử dụng để thăm dò cấu trúc

3.4.2. Hoạt động

3.4.2.1. Erosion

3.4.2.1.1. Bào mòn hình ảnh

3.4.2.2. Dilation

3.4.2.2.1. Bồi thêm hình ảnh

3.5. Thresholding

3.5.1. Phân đoạn hình ảnh là phân chia hình ảnh thành các vùng có ý nghĩa liên quan đến một ứng dụng cụ thể.

3.5.2. Thresholding là phương pháp tìm ngưỡng thích hợp để phân đoạn hình ảnh.

3.5.3. Các phương pháp thresholding

3.5.3.1. Otsus'method

3.5.3.1.1. Tính đồng nhất của mỗi nhóm được đo bằng phương sai trong nhóm

3.5.3.2. Greylevel Thresholding

3.5.3.2.1. Mức độ phân loại sai pixel được xác định bởi sự chồng lấn giữa biểu đồ đối tượng và nền

3.5.3.3. Grey Clustering

3.5.3.3.1. Phân cụm cố gắng tách biểu đồ thành 2 nhóm. Được xác định bởi hai trung tâm cụm c₁ và c2. Mức độ xám được phân loại theo trung tâm cụm gần nhất.

3.6. Point, Line and Edge detection

3.6.1. Những kỹ thuật cơ bản trong xử lý hình ảnh, nhằm trích xuất các thông tin hình học cơ bản từ một hình ảnh.

3.6.2. Hough transform

3.6.2.1. y_i = ax_i + b

3.6.2.2. xcos(theta) + ysin(theta) = p

3.7. Viola - Jones Algorithm

3.7.1. Phát hiện đối tượng đơn

3.7.2. Phát hiện nhiều đối tượng

3.7.3. Bounding box: Hộp giới hạn

3.7.4. Class: Lớp đối tượng

3.7.5. Các công thức tính toán

3.7.5.1. Recall = TP/(TP+FN)

3.7.5.2. Precision = TP/(TP+FP)

4. IV. Mạng nơron nhân tạo

4.1. Khái quát về mạng nơron nhân tạo

4.1.1. Khái niệm: Lấy cảm hứng từ mạng nơron sinh học. Học để xử lý vấn đề nào đó.

4.2. Phân loại

4.2.1. ANN

4.2.1.1. Là một mô hình tính toán được thiết kế để mô phỏng cách thức hoạt động của bộ não con người.

4.2.1.2. Kiến trúc

4.2.1.2.1. Đầu vào (Input Layer): Nhận dữ liệu bên ngoài. Mỗi đặc trưng của dữ liệu đầu vào được kết nối với một nơ-ron trong lớp này.

4.2.1.2.2. Lớp ấn (Hidden Layer): Là các lớp nằm giữa lớp đầu vào và lớp đầu ra. Mỗi nơ-ron trong lớp ấn nhận các tín hiệu từ lớp trước và truyền qua các hảm kích hoạt (activation function) để tạo ra đầu ra.

4.2.1.2.3. Nếu có nhiều lớp ẩn thì sẽ là (deep learning neural network). Chữ "deep" ám chỉ việc sử dụng nhiều lớp trong mạng nơ-ron (sâu về chiều ngang). Các lớp này giúp nhận diện các đặc trưng phức tạp từ dữ liệu, mà các phương pháp học máy đơn giản không thể xử lý

4.2.1.2.4. Đầu ra (Output Layer): Đây là lớp cuối cùng, nơi sản sinh kết quả cuối cùng của mạng (dự đoán hoặc phân loại).

4.2.1.2.5. Mỗi quan hệ tổng quát giữa đầu vào và đầu ra: output=f(w1xinput1+w2xinput2+...+wnxinputn +bias) với f(x) là hàm kích hoạt (activation function), thường là các hàm phi tuyến như: SERLU, SELU, ELU, Swish, Leaky RELU, RELU,...

4.2.1.2.6. Hàm kích hoạt (activation function) thường dùng: Sigmoid.

4.2.2. CNN

4.2.2.1. CNN là một loại mạng nơ-ron nhân tạo được thiết kế đặc biệt để xử lý dữ liệu hình ảnh. Nó đã trở thành một công cụ không thể thiếu trong lĩnh vực thị giác máy tính, giúp máy tính có khả năng "nhìn" và hiểu hình ảnh một cách hiệu quả.

4.2.2.2. Các lớp cơ bản

4.2.2.2.1. Lớp Tích chập (Convolutional Layer)

4.2.2.2.2. Lớp Pooling

4.2.2.2.3. Lớp Fully Connected:

4.2.2.3. Các thành phần khác

4.2.2.3.1. Hàm kích hoạt: ReLU, Sigmoid, Tanh

4.2.2.3.2. Lớp Normalization: Batch Normalization, Layer Normalization

4.2.2.3.3. Dropout:

4.2.2.4. Kiến trúc phổ biến

4.2.2.4.1. LeNet: Một trong những mạng CNN đầu tiên.

4.2.2.4.2. AlexNet: Mở đường cho sự phát triển của CNN hiện đại.

4.2.2.4.3. VGG: Sử dụng nhiều lớp convolution 3x3.

4.2.2.4.4. GoogLeNet: Sử dụng Inception module.

4.2.2.4.5. ResNet: Sử dụng kết nối skip để giải quyết vấn đề gradient vanishing.

4.2.2.4.6. DenseNet: Kết nối mọi lớp với nhau.

4.2.3. Alexnet

4.2.3.1. AlexNet là một cột mốc quan trọng trong lịch sử phát triển của học sâu.

4.2.3.2. Kiến trúc

4.2.3.2.1. 5 lớp tích chập

4.2.3.2.2. 3 lớp kết nối đầy đủ

4.2.3.2.3. Lớp softmax: Để tính xác suất cho từng lớp (class)

4.2.3.2.4. Các thành phần khác

4.2.3.3. Hoạt động

4.2.3.3.1. Lớp tích chập: Trích xuất các đặc trưng từ hình ảnh đầu vào.

4.2.3.3.2. Lớp pooling: Giảm kích thước của feature map và giữ lại các đặc trưng quan trọng.

4.2.3.3.3. Lớp kết nối đầy đủ: Kết nối tất cả các neuron ở lớp trước với tất cả các neuron ở lớp sau.

4.2.3.3.4. Lớp softmax: Tính xác suất cho từng lớp, lớp có xác suất cao nhất sẽ được chọn làm kết quả cuối cùng.

4.2.4. Yolo v1

4.2.4.1. YOLO-You Only Look Once YOLO chỉ sử dụng một mạng neural network duy nhất để dự đoán trực tiếp bounding boxes và class probabilities từ toàn bộ bức ảnh bằng một lần đánh giá duy nhất (one evaluation)

4.2.4.2. Kiến trúc

4.2.4.2.1. Lớp đầu vào

4.2.4.2.2. Lớp Convolution và max pooling(24 lớp tích chập

4.2.4.2.3. Lớp Fully Connected

5. VI. Giáo trình và tài liệu

5.1. R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3th edition, Prentice Hall, 2008

5.2. Digital Image Processing using Matlab, R. C. Gonzales, Pearson, 2004

5.3. Computer Vision: A Modem Approach, Forsyth D. Prentice Hall. 2003

5.4. Fundamentals of Computer Vision, Shah M, University of Central Florida, 1997

5.5. Learning OpenCV, Garry Bradsky, Oreilly, 2008

5.6. R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3th edition, Prentice Hall, 2008

5.7. Digital Image Processing using Matlab, R. C. Gonzales, Pearson, 2004

5.8. Computer Vision: A Modern Approach, Forsyth D.Prentice Hall. 2003

5.9. Fundamentals of Computer Vision, Shah M, University of Central Florida, 1997

5.10. Learning OpenCV, Garry Bradsky, Oreilly, 2008