Source code example OpenCV DNN (Deep Neural Network)

Hôm nay mình chia sẻ source code example OpenCV DNN trên GitHub. Đây là các source code example về DNN – Deep Neural Network được implement trong thư viện OpenCV. Các bạn chỉ cần clone code về là chạy được vì mình đã config sẵn hết cho các bạn rồi.

Repo sử dụng thư viện OpenCV 3.4.2 để chạy các example về nhận diện hình ảnh. Nhận diện hình ảnh bằng DNN – Deep Learning sẽ cho ra kết quả chính xác hơn, đáng tin cậy hơn. Bù lại nhược điểm của DNN là khó sử dụng, đòi hỏi kiến thức sâu về các layer.

Các bạn chạy source code example để xem dữ liệu chạy như thế nào để có hình dung về Deep Learning. Khi biết được flow của code thì các bạn có thể tùy chỉnh theo ý của mình. Source code DNN được chia sẻ nhằm giảm bớt độ khó cho các bạn mới làm quen.

Các sample OpenCV được upload lên GitHub thực ra là từ các sample được cung cấp bởi OpenCV. Mình tạo solution, project rồi config phù hợp với Visual Studio 2015. Các bạn có thể chạy OpenCV DNN với Visual Studio từ 2015 trở lên là được.

Các hình ảnh kết quả

DNN Segmentation

Segment – phân đoạn ảnh là xác định các vùng ảnh chứa đối tượng gì, kết quả là các blob pixel. Sau đó tô màu cho các blob đã tìm được, với mỗi class được tô 1 màu.

Ví dụ như hình dưới phát hiện ra được các class như: road, person, three,… Do model nhẹ nên kết quả chỉ mang tính tương đối, để chính xác cần retrain thêm nhiều ảnh nữa.

DNN Object detection

Dùng để phát hiện vật thể trong hình, các vật thể có thể overlap nhau nhưng vẫn có thể phát hiện đúng. Do sự chính xác & khả năng detect nhiều object cùng lúc nên OpenCV 4.x trở đi không build sẵn Cascade nữa.

Phát hiện người, xe máy, xe hơi trên đường phố Sài Gòn

DNN classification

Hình chụp thảo cầm viên Sài Gòn của báo Tiền Phong: trong ảnh là các con chim hồng hạc đang kiếm ăn trong hồ nước.

Download

https://github.com/thigiacmaytinh/OpenCV_DNN_342

Leave a Reply