HAND CRAFT HAND CRAFTED FEATURES FOR COMPUTER VISION GROUP ID 28 Mục lục Khái niệm về Hand Crafted Features 3 Ứng dụng của Computer Vision 2 Khái niệm về Computer Vision 1 Một số thuật toán của Hand C[.]
Trang 1HAND-CRAFTED FEATURES FOR
COMPUTER VISION
GROUP ID: 28
Trang 2Mục lục
Khái niệm về Hand-Crafted Features
3
Ứng dụng của Computer Vision
Crafted Features
4
Trang 3Khái niệm về Computer Vision
• Phía xa là những dãy núi cao
• Trên trời là mây trắng cùng với đàn chim
Trang 4Khái niệm về Computer Vision
• Tuy nhiên với sự phát triển của công nghệ con người đã dần đạt được nhiều thành tựu trong việc giúp máy tính có thể tiếp thu, phân tích và nhận dạng các hình ảnh hoặc chuỗi hình ảnh (video)
• Cũng từ đó khái niệm Computer Vision được ra đời
Trang 5Khái niệm về Computer Vision
01
Computer Vision (Thị giác máy tính)
• Là đại diện cho một ngành khoa học nghiên cứu về các cách thức để máy tính
có thể quan sát, phân tích và nhận dạng các hình ảnh để từ đó trích xuất thông tin từ hình ảnh dó
• Để làm được việc đó người ta mô phỏng và tự động hóa các hoạt động mà hệ thống thị giác con người có thể làm
• Dữ liệu hình ảnh mà Computer Vision khai thác có thể có nhiều dạng, chẳng hạn như chuỗi hình ảnh (video), ảnh chụp, tranh vẽ, dữ liệu từ máy quét y
tế,
Trang 6Ứng dụng của Computer Vision
02
• Hỗ trợ con người trong các nhiệm vụ nhận dạng
• Ứng dụng trong lĩnh vực marketing như: nhận diện thương hiệu có trong ảnh, tìm kiếm bằng hình ảnh, nhận diện cảm xúc, nhận diện giới tính độ tuổi,
• Mô hình hóa các đối tượng hoặc môi trường ví dụ:
phân tích hình ảnh y tế hoặc mô hình hóa địa hình
• Trợ giúp trong các hoạt động điều hướng ví dụ như: xe
tự hành hoặc robot di động
Một số ứng dụng thường gặp của Computer Vision
Trang 7Khái niệm về Hand-Crafted Features
công trước bởi chính con người
• Có rất nhiều tài liệu về Computer Vision tập trung vào việc khai thác các đặc
điểm có trên ảnh.
Trang 8Khái niệm về Hand-Crafted Features
03
• Ví dụ như ta chúng muốn tìm các góc trong một
ảnh thì cách đơn giản là dò ở những nơi cường
độ ảnh đột ngột thay đổi thì đó chính là góc của
vật thể (như hình bên) Đặc điểm cường độ ảnh
thay đổi tạo ra góc của ảnh đó chính là
Hand-Crafted Features.
• Vì dựa trên việc quan sát các đặc điểm có trên
ảnh các phương pháp này cho kết quả ấn tượng
trong một số trường hợp nhưng vẫn còn nhiều
bất lợi và vì thế nên chúng chỉ còn áp dụng cho
các phương pháp học máy cũ
(Các đốm đỏ chỉ ra các góc của vật thể trong ảnh)
Trang 9Một số thuật toán của Hand-Crafted Features: SIFT
Góc chụp
Ngang vật thể
Góc chụp
Màu quá đậm không hài hòa,
độ tương phản
thấp
Màu sắc
Trang 10Một số thuật toán của Hand-Crafted Features: SIFT
04
SIFT - Scale Invariant Feature Transform
• Là một thuật toán giúp phát hiện các ‘điểm đặc trưng bất biến’ trong hình ảnh,
thường được gọi là các keypoint Những keypoint này đặc biệt rất ít bị ảnh
hưởng bởi điều kiện chụp ảnh (màu sắc, độ tương phản, độ sáng, ) cũng như hướng của hình ảnh (góc chụp)
• Những điểm keypoint này có thể được sử dụng với nhiều mục đích khác nhau trong Computer Vision như là tìm ảnh giống nhau, nhận diện vật thể trong ảnh,
nhận diện cảnh quan trong ảnh,
Trang 11Một số thuật toán của Hand-Crafted Features: SIFT
04
Ví dụ ứng dụng của thuật toán SIFT và các
keypoint (các đốm tròn) trong Computer
Vision
NHẬN DIỆN VẬT THỂ
TÌM ẢNH GIỐNG NHAU
Trang 12Một số thuật toán của Hand-Crafted Features: SIFT
04
SIFT - Scale Invariant Feature Transform - (Thị giác máy tính)
Thuật toán SIFT chủ yếu được chia thành 4 bước:
1 Constructing the Scale Space (tạo tập các tỉ lệ khác nhau của ảnh)
2 Keypoint localization (lọc và trích xuất các keypoint)
3 Oriented Assigment (gán hướng cho các keypoint)
4 Keypoint Description (bộ mô tả keypoint)
Trang 13Một số thuật toán của Hand-Crafted Features: SIFT
• Ở bước này chúng ta sẽ loại bỏ đi noise(nhiễu) có trong ảnh và
tiền xử lí ảnh để chuẩn bị cho việc xác định các ‘điểm đặc trưng
bất biến’ có trong ảnh.
Trang 14Một số thuật toán của Hand-Crafted Features: SIFT
04
Trước tiên áp dụng kỹ thuật Guanssian Blurring để khử noise.
(Sau ghi dùng Guanssian Blurring các chi tiết nhỏ
bị mất chỉ còn lại các cạnh và góc của vật thể là rõ)
Trang 15Một số thuật toán của Hand-Crafted Features: SIFT
Trang 16Một số thuật toán của Hand-Crafted Features: SIFT
Trang 17Một số thuật toán của Hand-Crafted Features: SIFT
Fun fact: các kĩ thuật
Gaussians chính là bắt
chước cách xử lý và lấy chi tiết hình ảnh của các dây thần kinh trong mắt để truyền đến não.
Trang 18Một số thuật toán của Hand-Crafted Features: SIFT
04
SIFT - Scale Invariant Feature Transform - (Thị giác máy tính)
2 Keypoint localization (lọc và trích xuất các keypoint)
• Ở bước này chúng ta sẽ đi tìm các ‘điểm đặc trưng bất biến’
-những điểm không bị ảnh hưởng các scale(tỉ lệ) và tạo ra các
keypoint.
Trang 19Một số thuật toán của Hand-Crafted Features: SIFT
Trang 20Một số thuật toán của Hand-Crafted Features: SIFT
04
SIFT - Scale Invariant Feature Transform - (Thị giác máy tính)
3 Oriented Assigment (gán hướng cho các keypoint)
• Mỗi keypoint sẽ được gán cho một hoặc nhiều hướng dựa trên hướng gradient của ảnh.
Trang 21Một số thuật toán của Hand-Crafted Features: SIFT
04
Gradient hình ảnh là dùng để chỉ hướng trong cường độ màu của ảnh
(Bên trên là hai loại gradient, các mũi tên màu xanh lam chỉ hướng của
gradient Màu tối chính là nơi có cường độ màu mạnh (màu đậm hơn) )
Trang 22Một số thuật toán của Hand-Crafted Features: SIFT
04
SIFT - Scale Invariant Feature Transform - (Thị giác máy tính)
4 Keypoint Description (bộ mô tả keypoint)
• Đây là bước cuối cùng trong thuật toán SIFT Sau khi đã có các
keypoint tiếp đến chúng ta cần phải có một bộ mô tả cho keypoint để có thể sử dụng các keypoint cho các bài toán
nhận diện hoặc tìm ảnh giống nhau.
Trang 23Một số thuật toán của Hand-Crafted Features: SIFT
Sau đó 16x16 chia thành 4x4 sub-block(khối
phụ) mỗi mũi tên đại diện cho hướng và độ dài đại diện cho độ lớn của hướng
Trước tiên lấy
16x16 pixel ảnh
xung quanh
keypoint.
Cuối cùng với mỗi khối 4x4 ta tạo được
một bin có 8 hướng Với mỗi keypoint như vậy ta có tổng 128 bin
Trang 24Một số thuật toán của Hand-Crafted Features: SIFT
Góc chụp
Ngang vật thể
Góc chụp
Màu quá đậm không hài hòa,
độ tương phản
thấp
Màu sắc
Trang 25# Đ ọc fi le im age và chuyểể n a ểnh m àu sang trắắ ng đen
im g = cv im read ( 'IM G _20210209_072012_edit.jpg' )
gray = cv cvtColor ( im g , cv CO LO R_BG R2G RAY )
# Khở ểi tạo m ột đốắ i cu ểa SIFT
sift = cv xfeatures2d.SIFT_create()
'''
Đ ốắ i tượng sift có phưởng thức detectAndCom pute tra ể vểề 2 output kp và des
kp chính là list các keypoint, des là m ột num py array chứa vector 128 chiểề u
'''
kp , des = sift detectAndCom pute( gray , N one )
# Vẽ các keypoint và xuấắ t ra fi le a ểnh hiểển thị
Trang 26Một số thuật toán của Hand-Crafted Features: SIFT
04
Tập trung chủ yếu ở nhụy hoa và rìa hoa
Key Point
Tập trung chủ yêu ở nhụy hoa và rìa hoa
Key Point
Trang 27im port m atplotlib pyplot as plt
# Đ ọc fi le a ểnh và chuyểển a ểnh m àu sang a ểnh trắắ ng đen
im g1 = cv2 im read ( 'IM G _20210209_071957_edit.jpg' )
im g2 = cv2 im read ( 'IM G _20210209_072012_edit.jpg' )
im g1 = cv2 cvtColor ( im g1 , cv2 CO LO R_BG R2G RAY )
im g2 = cv2 cvtColor ( im g2 , cv2 CO LO R_BG R2G RAY )
# Tạo đốắ i tượng sift đểể lấắ y keypoint và keypoint descriptors
sift = cv2 xfeatures2d.SIFT_create()
keypoints_1 , descriptors_1 = sift detectAndCom pute( im g1 , N one)
keypoints_2 , descriptors_2 = sift detectAndCom pute( im g2 , N one)
# Sưể dụng BFM atcher đểể xác định các keypoint tưởng ứng với nhau (m atching)
bf = cv2 BFM atcher ( cv2 N O RM _L1 , crossCheck = True)
m atches = bf m atch( descriptors_1 , descriptors_2 )
m atches = sorted ( m atches , key = lam bda : distance)
im g3 = cv2 draw M atches ( im g1 , keypoints_1 , im g2 , keypoints_2 , m atches [: 50 ], im g2 , fl ags = 2
plt im show ( im g3 )
plt show ()
print ( "Tốể ng sốắ keypoint cu ểa a ểnh 1 là:" , len ( keypoints_1 )) # 878
print ( "Tốể ng sốắ keypoint cu ểa a ểnh 2 là:" , len ( keypoints_2 )) # 1998
print ( "Tốể ng sốắ keypoint trùng nhau cu ểa a ểnh 1 và 2 là:" , len ( m atches )) # 341
Python
SIFT_MATCHING.py
Trang 28Một số thuật toán của Hand-Crafted Features: SIFT
04
Trang 29Một số thuật toán của Hand-Crafted Features: HOG
04
• HOG là viết tắt của Histogram of Oriented Gradient - một loại “feature
descriptor” Mục đích của “feature descriptor” là trừu tượng hóa đối tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ
đi những thông tin không hữu ích
của các cường độ gradient (intensity gradient) hoặc của hướng biên (edge directins) để mô tả các đối tượng cục bộ trong ảnh
Trang 30Một số thuật toán của Hand-Crafted Features: HOG
3 Tính vector đặc trưng cho từng ô (cells)
4 Chuẩn hóa khối (blocks)
5 Tính toán vector HOG
Trang 31Một số thuật toán của Hand-Crafted Features: HOG
04
1.Tiền xử lí:
Trong bài toán này, để thuận tiện cho việc chia đều hình ảnh thành các khối, ô
và tính toán đặc trưng ở các bước tiếp theo, chúng ta cần resize kích thước tất
cả các hình ảnh trong tập dữ liệu về một kích thước chung.
Trang 32Một số thuật toán của Hand-Crafted Features: HOG
04
2.Tính gradient
Đầu tiên chúng ta sẽ tính toán gradient của bức ảnh theo cả 2 trục X, Y Sau đó
tính Gradient Magnitude (Độ lớn của gradient) và Gradient Orientation (Hướng của
gradient)
Trang 33
Một số thuật toán của Hand-Crafted Features: HOG
04
Trang 34
Một số thuật toán của Hand-Crafted Features: HOG
04
3 Tính vector đặc trưng cho từng ô (cells)
Chúng ta sẽ chia bức ảnh thành các vùng bằng nhau, được gọi là cells Mỗi cell chứa các pixel cho trước Sau khi đã chia bức ảnh thành các cells, chúng ta tính HOG cho từng cell
sử dụng các giá trị Gradient Magnitude và Gradient Orientation đã có ở bước 2
Trang 35Một số thuật toán của Hand-Crafted Features: HOG
04
Lấy votes trong mỗi cell
Trang 36Một số thuật toán của Hand-Crafted Features: HOG
04
4.Chuẩn hóa khối (blocks)
Việc chuẩn hóa theo từng khối sẽ cải thiện bộ descriptor trước sự thay đổi ánh sáng và độ tương phản
Trang 37Một số thuật toán của Hand-Crafted Features: HOG
04
4.Chuẩn hóa khối (blocks)
Để làm được việc này chúng ta sẽ nhóm các cells lại thành từng block
và các block này có thể overlap (chồng lấn nhau)
Trang 38Một số thuật toán của Hand-Crafted Features: HOG
04
4 Chuẩn hóa khối (blocks)
Trang 39Một số thuật toán của Hand-Crafted Features: HOG
04
5 Tính toán vector HOG
Trang 40THANKS FOR YOUR
ATTENTION
GROUP ID: 28