Semi-global matching (SGM) [13] là một thuật toán thị giác máy tính để ước tính bản đồ chênh lệch từ một cặp ảnh được chụp từ stereo camera và đã được chỉnh sửa. Thuật toán được giới thiệu vào năm 2005 do Heiko Hirschmuller nghiên cứu ra khi ông đang làm việc tại trung tâm hàng không vũ trụ Đức. Với thời gian chạy có thể dự đoán được, sự cân bằng giũa chất lượng kết quả và thời gian tính toán cũng như khả năng phù
hợp để triển khai song song nhanh chóng trong ASIC hoặc FPGA. Nó đã được ứng dụng rộng rãi trong các ứng dụng sử dụng stereo camera theo thời gian thực như robot và trình điều khiển nâng cao hệ thống hỗ trợ.
Các bước thực hiện thuật toán semi-global matching [14] là: Bước 1: Khởi tạo các hướng di chuyển hội tụ về pixel p.
Bước 2: Trong quá trình di chuyển theo các hướng sẽ tạo ra tập hợp các điểm pixel và các Cost (đã tính ở bước 1 phần 2.7.1) của pixel này sẽ đóng góp một phần vào cost của pixel p.
Bước 3: Tổng hợp cost của các hướng đi tại pixel p.
Bước 4: Tìm pixel có giá trị cost thấp nhất và sau đó tạo thành bản đồ chênh lệch (disparity maps).
Hình 34 Phương pháp semi-global matching
Thuật toán SGM chính là việc cực tiểu hóa hàm E cho bản đồ chênh lệch D như sau:
E(D)
Với các hướng r thì tổng giá trị cost tại pixel p của disparity thứ D có dạng như sau:
S ( p, d )Lr ( p, d )
r
Trong đó:
L ( p, d ) C p, d min( L ( p r , d ), L ( p r , d 1) P , L ( p r , d 1) P , min
r
Với
C p, d là giá trị cost hiện tại của pixel p tại disparity thứ d.
Hệ số 1 , P2
P
giá trị d=7 và d=9 thì sẽ được thêm hệ số hoặc lớn hơn d+1 thì sẽ được thêm hệ sốP2
Lr ( p Lr ( p lệch thứd Lr ( p lệch thứd min tại bản đồ min
r , d ) là giá trị cost của pixel trước đó theo hướng r tại disparity map thứ d.
r , d 1) 1 , nên thêm hệ số r , d 1) 1 , nên thêm hệ số
Lr ( p r , i ) P2 là tìm ra giá trị cost nhỏ nhất của pixel trước đó theo hướng r chênh lệch nhỏ hơn
Lr ( p r , k)
tất cả disparity.
Sau khi tính được tổng cost của tất cả các hướng. Ta sẽ dựa theo cách tiếp cận winner-takes-all làm disparity map cuối cùng.