You are on page 1of 26

NHÓM 7

THUẬT TOÁN AUTOFOCUS CHO


ĐIỆN THOẠI VÀ MÁY ẢNH
Thành viên nhóm

Trần Hiếu Minh


Lê Đức Minh
Lê Tuấn Minh
Phạm Tường Minh
Đỗ Hoàng Nam
Nội dung chính

• Mục tiêu và các nội dung chính của project

• Các nội dung mà nhóm đã đạt được

• Nội dung chi tiết

• Đánh giá và kết luận


Mục tiêu và các nội dung chính của project

• Tìm hiểu về autofocus và auto white balance

• Tự phát triển một thuật toán autofocus

• Cài đặt thuật toán trên điện thoại

• Đánh giá thuật toán


Nội dung nhóm đã thực hiện

 Tìm hiểu về autofocus và auto white balance

 Tự phát triển một thuật toán autofocus

• Cài đặt, chạy thử trên điện thoại


Nội dung chính của project

• Autofocus và auto white balance

• Thuật toán autofocus của nhóm

• Kết quả thử nghiệm


Autofocus là gì ?

Autofocus là một tính năng trong các máy ảnh và điện thoại chụp hình cho phép hệ thống có thể lấy nét và tập
trung vào vùng nét chính của khung hình một cách tự động

Active Cảm biến pha, laser,...


autofocus

Autofocus Điều chỉnh tiêu cự

Passive
Frame từ camera
autofocus
Auto white balance là gì ?

Auto white balance (AWB) là chức năng tự động cân bằng trắng trong các thiết bị nhiếp ảnh và máy quay
phim

Ánh sáng từ môi trường làm thay đổi màu sắc tổng thể của hình ảnh và các vật thể trong đó khi camera
ghi nhận

Cần cân bằng trắng để hình ảnh có màu sắc tự nhiên nhất giống với những gì mắt
người nhìn thấy

Phân tích, xác định ánh sáng Điều chỉnh màu sắc hình ảnh theo
môi trường màu chủ đạo
Thuật toán autofocus

Không có giải pháp điều chỉnh tiêu cự camera

Mô phỏng ảnh focus bằng cách tăng cường ảnh vùng cần lấy
nét và làm mờ vùng nền

Cần xác định vùng lấy nét

Xử lí trên từng frame ảnh


Thuật toán autofocus
Thuật toán tìm kiếm vùng lấy nét tự động

Vùng cần lấy nét là vùng có độ tương phản cao

Nơi tập trung nhiều cạnh biên

Sobel filter

Cần lọc nhiễu và loại bỏ các cạnh biên ở phần nền

Gaussian Blur
Thuật toán tìm kiếm vùng lấy nét tự động
Convolution

Các thuật toán Gaussian Blur và Sobel filter đều cần sử dụng phép toán tích
chập trên ảnh

Công thức tích chập giữa ảnh f(x,y) và kenel k(x,y) kích thước mxn
Convolution 1 2 3 9 8 7
4 5 6 6 5 4
7 8 9 3 2 1
Lật k(x,y)
0 0 0 9 8 7
0 1 2 3 4 6 5 4
0 5 6 7 8 3 2 1
Dịch k(x,y) qua các điểm ảnh 9 1 2 3
4 5 6 7

0 0 0
0 29 2 3 4
Tính giá trị điểm ảnh mới
0 5 6 7 8
9 1 2 3
4 5 6 7
Các phương pháp làm mịn, khử nhiễu
Averaging Filter
- Ý tưởng của lọc trung bình chỉ đơn giản là thay thế từng giá trị pixel trong một ảnh bằng giá trị trung bình (`trung
bình') của các pixel lân cận, bao gồm cả chính nó. Điều này có tác dụng loại bỏ các giá trị pixel không đại diện cho
môi trường xung quanh chúng.

- Ví dụ:

Ảnh đầu vào Ảnh đầu ra


Median Filter
- Ý tưởng chính của thuật toán lọc Trung vị như sau: ta sử dụng một cửa sổ lọc (ma trận 3×3) quét qua lần lượt
từng điểm ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng
3×3 của ảnh gốc “lấp” vào ma trận lọc. Sau đó sắp xếp các điểm ảnh trong cửa sổ này theo thứ tự (tăng dần hoặc
giảm dần tùy ý). Cuối cùng, gán điểm ảnh nằm chính giữa (Trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở
trên cho giá trị điểm ảnh đang xét của ảnh đầu ra output.
- Ví dụ:

Ảnh đầu vào Ảnh đầu ra


Gaussian Blur
+ Gaussian Blur là kĩ thuật sử dụng một bộ lọc chuẩn theo phân
phối Gaussian để làm mờ các điểm ảnh xung quanh mỗi điểm
ảnh trong ảnh đầu vào.

+ Độ mờ của ảnh đầu ra sẽ phụ thuộc vào bộ lọc Gaussian đầu


vào, do vậy ta có thể điều chỉnh độ mờ dựa trên giá trị của bộ
lọc.
Hàm Gauss trong không gian 1 và 2 chiều(ảnh)

Trong đó x,y là hai trục còn σ là phương sai


Sobel filter

• Kernel Sobel là một ứng dụng được sử dụng thường xuyên trong xử lý ảnh và thị
giác máy.

• Cụ thể, Kenel Sobel thường được sử dụng để tính đạo hàm của hình ảnh theo
hướng x và y, từ đó giúp xác định cạnh và biên của vật thể trong hình ảnh.

• Trong nghiên cứu về auto focus lần này, Sobel được sử dụng để xác định cạnh của
vật thể, từ đó phát hiện vật thể trong ảnh
Sobel filter

● Kernel Sobel theo hướng x thường được


ký hiệu là Gx​, và kernel Sobel theo hướng
y thường được ký hiệu là Gy​. Cả hai
kernel này đều là các ma trận 3x3.

● Khi áp dụng kernel Sobel theo hướng x và


y lần lượt cho mỗi pixel trong hình ảnh,
chúng ta có thể tính toán đạo hàm riêng
theo hướng x và y. Tổng của độ lớn
gradient (G) có thể được tính bằng cách sử
dụng công thức sau:
Đánh giá thuật toán

Thuật toán đơn giản có thể tìm kiếm vùng lấy nét trên thời gian thực và
lấy nét một cách tự động trên ảnh

Ưu điểm
Việc tìm kiếm vùng cần lấy nét được thực hiện tương đối chính xác
trên những bức ảnh có độ tương phản, được chụp ở điều kiện ánh sáng
tốt
Đánh giá thuật toán
Thời gian xử lí lớn nên không thể chạy autofocus trên
thời gian thực

• Ngôn ngữ lập trình Python


• Phải duyệt qua giá trị tất cả các điểm ảnh nhiều lần
Nhược điểm
Không tìm kiếm chính xác trong trường hợp phần nền quá sáng và có
độ tương phản cao hơn so với vật thể cần lấy nét

• Ảnh tách biên không chỉ chứa biên vật thể cần lấy nét mà còn có biên của các vật
thể trên nền ảnh
Ảnh nhị phân chứa các điểm trắng nằm rải rác trên toàn bộ bức ảnh
Vùng cần lấy nét theo thuật toán sẽ trùm cả ảnh
Demo áp dụng các kỹ thuật để khoanh vùng đối tượng
Demo mô phỏng hiệu ứng lấy nét lên đối tượng
Video demo

You might also like