Tổng quan Opencv HaartrainingCơ sở lý thuyếtCấu trúc bộ lọc phân tầngBoostingĐặc trưng HaarThuật toán AdaBoostTiến hành thực tếChuẩn bịTạo mẫuHuấn luyệnThử nghiệmOpenCV = Open Source Computer Vision Là thư viện mã nguồn mở của Intel viết cho xử lý ảnh, với hơn 500 thuật toán dành cho việc xử lý thị giác máy thời gian thực (real time computer vision) Hỗ trợ ngôn ngữ C++ và PythonThư viện OpenCV cung cấp phương pháp đào tạo, phát hiện đối tượng bằng mô hình Cascade of Boosted Classifiers dựa trên tính năng Haarlike Kết quả việc đào tạo là file dạng xml
Đồ án Phát hiện đối tượng trong ảnh/video sử dụng công cụ học máy HaarTraining Giáo viên hướng dẫn Trần Nguyên Ngọc Sinh viên thực hiện Lê Quốc Mạnh Lớp: Tin 8B Dương Anh Tuấn Trần Hoàng Nam Mục lục Tổng quan Opencv Haartraining Cơ sở lý thuyết Cấu trúc bộ lọc phân tầng Boosting Đặc trưng Haar Thuật toán AdaBoost Tiến hành thực tế Chuẩn bị Tạo mẫu Huấn luyện Thử nghiệm Tổng quan Opencv Haartraining OpenCV = Open Source Computer Vision Là thư viện mã nguồn mở - của Intel viết cho xử lý ảnh, với hơn 500 thuật toán dành cho việc xử lý thị giác máy thời gian thực (real time computer vision) Hỗ trợ ngôn ngữ C++ và Python Thư viện OpenCV cung cấp phương pháp đào tạo, phát hiện đối tượng bằng mô hình Cascade of Boosted Classi[ers dựa trên tính năng Haar-like Kết quả việc đào tạo là [le dạng xml Cơ sở lý thuyết Cascade of Boosted Classi[ers là một cấu trúc cây mà ở mỗi tầng là một bộ phân loại (classi[er), được xây dựng bằng thuật toán AdaBoost Mô hình Cascade of Boosted Classi[ers được sử dụng dựa trên Haar-like Feature – là một loại đặc trưng thường được dùng cho bài toán nhận dạng trên ảnh. Boosting là kỹ thuật dùng để tăng độ chính xác cho các thuật toán học (Learning algorithm) bằng cách kết hợp các bộ phân loại yếu (weak classiers) thành một bộ phân loại mạnh (strong classier). Trong đó, weak classi[er là các bộ phân loại đơn giản chỉ cần có độ chính xác trên 50%. Cơ cở lý thuyết • Haar Feature là một loại đặc trưng thường được dùng cho bài toán nhận dạng trên ảnh, được xây dựng từ các hình chữ nhật có kích thước bằng nhau, dùng để tính độ chênh lệch giữa các giá trị điểm ảnh trong các vùng kề nhau. 4 đặc trưng Haar-like cơ bản Đặc trưng cạnh Đặc trưng đường Đặc trưng quanh tâm Giá trị của đặc trưng Haar-like = sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau: f(x) = Tổng vùng đen (các mức xám của pixel) - Tổng vùng trắng (các mức xám của pixel) Tuy nhiên, khối lượng tính toán lớn mất nhiều thời gian Đặc trưng Haar-like Viola và Jones đã đưa ra khái niệm Integral Image để tính toán nhanh hơn cho các đặc trưng cơ bản. Integral Image: là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like. Mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó. Tính toán dựa trên phép cộng cải thiện tốc độ Sau khi đã tính được Integral Image, dễ dàng tính được gía trị mức xám trên vùng nào đó: Lienhart kế thừa Integral Image (gọi là SAT – Summed Area Table) và đưa ra thêm khái niệm RSAT – Rotated Summed Area Table để tính toán nhanh hơn cho các đặc trưng xoay 1 góc 45º. Cơ sở lý thuyết Sử dụng AdaBoost để thiết lập ngưỡng Adaboost (Adaptive Boost - Freund và Schapire, 1995) được cải tiến từ boosting, sử dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng ở weak classi[er (WC). Sau mỗi WC, tăng trọng số ở mẫu sai và ngược lại. Các WC sau sẽ tập trung vào các mẫu chưa tốt. Kết hợp các WC ở mức độ tốt nào đó Strong classi[er Cơ sở lý thuyết Tính Integral Image đ xác đ nh nhanh giá tr m c ể ị ị ứ xám c a 1 vùng trên nhủ ả Đ a qua hàm Haar c b n ư ơ ả c l ng đ c tr ng ướ ượ ặ ư Đ a qua b đi u ch nh Adaboost ư ộ ề ỉ lo i b nhanh ạ ỏ các đ c tr ng không có kh năngặ ư ả M i b phân lo i y u s quy t đ nh k t qu cho ỗ ộ ạ ế ẽ ế ị ế ả m t đ c tr ng Haar-likeộ ặ ư Trong quá trình xác đ nh, m i vùng nh con s đ c ki m tra v i các đ c tr ng trong chu i các đ c tr ng Haar-likeị ỗ ả ẽ ượ ể ớ ặ ư ỗ ặ ư N u có m t đ c tr ng Haar-like nào cho ra k t qu thì các đ c tr ng khác không c n xét n aế ộ ặ ư ế ả ặ ư ầ ữ Th t xét các đ c tr ng trong chu i các đ c tr ng Haar-like s đ c d a vào tr ng s và s l n xu t hi n c a các đ c tr ng ứ ự ặ ư ỗ ặ ư ẽ ượ ự ọ ố ố ầ ấ ệ ủ ặ ư Haar-like. Cơ sở lý thuyết • Trong huấn luyện, tốc độ xử lý còn tùy vào mức độ đơn giản của các mẫu được đưa vào. • Mô hình Cascade of Classi[ers được xây dựng chính là nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho bộ phân loại. • Mô hình là một cây Cascade (Cascade tree) bao gồm nhiều stage (hay còn gọi là layer), mỗi stage của cây sẽ là một stage classi[er. • Một mẫu để được phân loại là đối tượng thì nó cần phải đi qua hết tất cả các stages của cây. • Nhờ sự kết hợp các stage classi[ers này lại sẽ giúp bộ phân loại có false alarm thấp. Tiến hành thực tế - Huấn luyện nhận dạng xe máy Chuẩn bị: Các mẫu dương (Positive) chứa đối tượng cần nhận dạng và [le mô tả ảnh Positive (đánh dấu tọa độ của đối tượng trong ảnh gốc) Các mẫu âm (Negative) không chứa đối tượng cần nhận dạng, như nhà cửa, cây cối, mặt người Và [le mô tả ảnh Negative Trong quá trình huấn luyện, các weak classi[ers sẽ học từ các mẫu positive trong tập huấn luyện và các mẫu negative là các vùng ảnh (sub window) trích ra từ các mẫu Negative trong tập huấn luyện C:/OpenCV2.2/bin/negative>dir /b /s >Negative.txt [...]...Tiến hành thực tế - Huấn luyện nhận dạng xe máy Opencv_createSamples có chức năng tạo file dữ liệu cho các mẫu (positive lẫn negative) từ các file ảnh (bmp, jpg ), đồng thời cho phép phát sinh thêm các ảnh từ một hay nhiều ảnh ban đầu bằng cách áp dụng các phép xử lý ảnh như rotate, dilate, lên các ảnh này opencv_createsamples –info