AI Cho Mọi Người

AI Cho Mọi Người

GA và stereo matching dùng numpy

 

 

Cài giải thuật GA dùng numpy

Phần này mô tác cách thức cài giải thuật GA dùng numpy để giải bài toán tìm min cho hàm sphere. Hàm sphere  có dạng \(f(x) = x_1^2 + … + x_{10}^2 \), trong đó \(x \in R^{10 }\). Do đó, độ dài cá thể là 10 và kiểu dữ liệu cho gen là float.

Nếu chưa nắm vững về GA, các bạn có thể xem lại bài học về GA ở tuần 4. Bài này chỉ hướng dẫn những hàm cần thiết và cách cài đặt mẫu dùng numpy cho GA.

Trước khi đọc source code, các bạn đọc hiểu các hàm sau

https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.mtrand.RandomState.choice.html

https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.random.rand.html

https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.random.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.min.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.mtrand.RandomState.randint.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html

 

Source code cho các tham số và hàm cơ bản trong GA

Source code thực hiện việc tìm min cho hàm sphere

Kết quả loss qua 100 vòng  đầu tiên

 

Cài phương pháp sum of difference (SAD) cho stereo matching

Công thức cho phương pháp dựa vào window như sau

$$
\begin{array}{l}
d_p = \mathop {\arg \min }\limits_{d \in D} \left( {C\left( {p,q} \right)} \right) \\
where\,\,\,C\left( {p,q} \right) = \sum\limits_{u \in {\rm{W}}_p ,v \in {\rm{W}}_q } {abs \left( {color(u) – color(v)} \right) } \\
and\,\,\,\,q = \left( {x_p – d,y_p } \right) \\
\end{array}
$$

Trước khi đọc source code, các bạn đọc hiểu các hàm sau

https://docs.scipy.org/doc/numpy/reference/generated/numpy.cumsum.html

 

Source code mẫu

 

Kết quả