2016-02-04 22 views
5

Tôi đang sử dụng SVM vì tôi cần ML để huấn luyện phân loại của mình, và tôi thấy trên một số giấy tờ về phát hiện hỏa hoạn mà họ đã sử dụng SVM và hồi quy logistic nhưng vì không có hồi quy logistic trong 2.4.9 Tôi đang lên kế hoạch sử dụng SVM. Tôi đang sử dụng opencv 2.4.9 kể từ khi mọi người nói opencv 3 là lỗi.Phát hiện hỏa hoạn bằng cách sử dụng opencv SVM

Im mới này vì vậy nó sẽ rất hữu ích nếu chúng ta bắt đầu từ cơ bản

tôi đã chuẩn bị một vài đám cháy và video không bắn đạn thật sẵn sàng để được chiết xuất vào khung. Tôi mới vào opencv và mọi thứ về phân loại. Câu hỏi của tôi là những điều cơ bản trong việc đào tạo một trình phân loại cụ thể SVM là gì, tôi cần hình ảnh nào của mình và làm cách nào để đào tạo chúng? Có bất kỳ liên kết tốt cho một hướng dẫn? Tôi tìm thấy một trong tài liệu opencv nhưng nó không dạy về đào tạo bằng cách sử dụng hình ảnh. Tôi cần những gì trong việc xác định tham số và các tham số là gì? Cảm ơn trước

+1

bạn trước tiên cần trích xuất các tính năng từ hình ảnh của bạn để đào tạo một SVM. Thuật toán trích xuất tính năng phụ thuộc rất nhiều vào ứng dụng. Nếu bạn đang sử dụng OpenCV, tôi khuyên bạn nên xem hướng dẫn này về thiết bị dò điểm và tính năng trích xuất. http://docs.opencv.org/master/db/d27/tutorial_py_table_of_contents_feature2d.html#gsc.tab=0 –

+0

Tôi có cần hình ảnh của mình ở định dạng cụ thể không? hoặc jpg là doable? –

+0

Và tôi đặt các tính năng được trích xuất ở đâu? Tôi không thể tìm ra trong phương pháp đào tạo svm mà tham số là –

Trả lời

8

Đây là câu hỏi khái niệm yêu cầu nhiều bài viết và hướng dẫn giải thích. Tuy nhiên, Như nó đã được giải thích trong các ý kiến ​​tôi cố gắng để xây dựng trên khai thác tính năng. Tính năng mô tả phải mạnh mẽ chống lại nhân rộng, dịch và xoay vòng. Sự mạnh mẽ này được gọi là các tính năng bất biến. Ví dụ, những khoảnh khắc và các dẫn xuất của nó là một trong những loại bất biến nổi tiếng nhất chống lại việc xoay vòng, nhân rộng và dịch. Bạn có thể thấy việc sử dụng các khoảnh khắc của Hu như được giải thích trong số paper này. Phát hiện lửa hoặc lửa là điều gì đó khác biệt. Tính năng tương ứng với ngọn lửa có thể được chiết xuất từ ​​kết cấu động của lửa. Ví dụ, lửa có kết cấu màu đặc biệt tách riêng nó khỏi hậu cảnh. Thiết bị phát hiện ngọn lửa thông thường sử dụng cảm biến hồng ngoại để phát hiện ngọn lửa. Trong xử lý hình ảnh, hoặc thế giới RGB, chúng ta có thể làm tương tự bằng cách xem xét bản chất của ngọn lửa. Ngọn lửa phát ra một phần đáng kể năng lượng của nó thông qua nhiệt và tia hồng ngoại. Vì vậy, người ta có thể mong đợi một phần lớn của kênh màu đỏ được dành cho ngọn lửa. Xem ví dụ sau. enter image description here enter image description here

Trong hình ảnh đã xử lý, kênh màu đỏ được chuyển đổi thành hình ảnh BW bằng cách áp đặt ngưỡng. Để rõ ràng hơn, tôi đã tách 3 kênh như sau.
R: red channel G: green channel B: blue channel
Điều hiển nhiên là kênh Red có nhiều thông tin hơn về ngọn lửa. Do đó, có thể kết luận rằng ngọn lửa là nơi kênh R có một phần thông tin của nó, sau đó là kênh G và cuối cùng là B. Xem this.
Vector tính năng của bạn, sau đó, sẽ là một vectơ ba chiều về, ví dụ, đường bao của ngọn lửa trong ba kênh RGB. Trình phân loại SVM hiện đã sẵn sàng để sử dụng. Đôi khi, video có thể chứa các phân đoạn phù hợp với flam cần tránh và chúng dẫn đến báo thức sai. SVM, hỗ trợ bạn chấp nhận hoặc từ chối một ứng viên ngọn lửa. Để đào tạo máy vectơ hỗ trợ của bạn, hãy thu thập một số ngọn lửa thực sự và một số hình ảnh có thể bị đánh giá sai bởi trình trích xuất đối tượng địa lý của bạn. Sau đó, gắn nhãn chúng với các tính năng tích cực và tiêu cực. Cuối cùng, hãy để opencv làm phép thuật và huấn luyện nó. Để biết thêm thông tin về SVM, vui lòng xem video này của Patrick Winston, MIT theo số youtube.

CẬP NHẬT ---- Khi bạn tò mò về việc tạo vectơ đặc trưng, ​​tôi đã mang đến cho bạn ví dụ sau. Giả sử rằng các kênh R, G, B được tách biệt hoàn toàn để có thể gọi chúng độc lập về mặt thống kê như sau; Điều này không đúng trong hình ảnh thực tế trong đó các mặt phẳng R, G, B không độc lập về mặt thống kê. enter image description here
Do đó, một điểm trong hình ảnh RGB sẽ có 3 biểu diễn trong kênh RGB. Ví dụ, ngọn lửa sẽ tạo ra 3 điểm trên tất cả các mặt phẳng R, G, B. Ví dụ, diện tích của mỗi điểm được truy tìm ở đây. Gắn nhãn vị trí ngọn lửa trong ảnh RGB là "A". enter image description here
Biểu diễn của khu vực A được mô tả ở trên trong hình ảnh R, G, B. A_r, A_g, A_b biểu thị diện tích tương ứng của khu vực A trên các mặt phẳng R, G, B tương ứng.

enter image description here Do đó, điểm A sẽ được biểu diễn bằng một bộ ba (Ar, Ag, Ab) trong mặt phẳng xyz. SVM, bây giờ chấp nhận vectơ này làm đầu vào và quyết định nếu nó biểu thị một ngọn lửa thực sự.
Các khu vực, định dạng chuẩn hóa, là một trong nhiều tính năng hình học mà bạn có thể tham gia vào quá trình ra quyết định. Các tính năng hữu ích khác của loại này là tỷ lệ khung hình, khoảnh khắc, v.v.

Tóm lại, bạn phải làm như sau:
1 - Tìm các khu vực được yêu thích trên ngọn lửa.
2 - Theo dõi vị trí ứng viên trong tất cả các máy bay R, G, B.
3 - Trích xuất đối tượng địa lý (tôi gợi ý các khoảnh khắc) trong mỗi mặt phẳng.
4 - Thành lập các vector đặc trưng
5 - Thức ăn cho SVM với vector này

Tôi hy vọng bạn thấy hữu ích này.

+0

Cảm ơn bạn đã giải thích, tôi có một câu hỏi. Ý của bạn là tôi sẽ trích xuất tính năng bằng cách sử dụng một vector ba chiều? Tôi đang gặp khó khăn trong việc sử dụng tài liệu Như tôi thấy trong tài liệu tại đây http://docs.opencv.org/2.4.9/modules/nonfree/doc/feature_detection.html Tôi nhập vào thông số keypoints? –

+0

@RedViper, tôi đã cập nhật bài đăng của mình. –

+0

cạnh của những khoảnh khắc chống lại lướt sóng là gì? là tính năng bởi vì tôi đi qua rất nhiều lướt trên internet khi nói đến tính năng trích xuất –

2

Có quyền để công việc của bạn bây giờ là tạo tệp .txt với dữ liệu trên mỗi hình ảnh mà bạn sẽ xử lý. Những cái đúng sẽ được biểu thị bằng +1 theo sau với tập hợp tính năng và kết thúc bằng -1 và những hình ảnh giả là cháy sẽ bắt đầu bằng -1 kèm theo bộ tính năng và kết thúc bằng -1 lần nữa trước bắt đầu với tính năng thiết lập các hình ảnh tiếp theo gonna của nó ba công việc tẻ nhạt nhưng tôi chắc chắn ul quản lý mà và cuối cùng là lưu file với phần mở rộng của .train và không .txt nên tên tập tin đào tạo của bạn sẽ được filename.train

Các vấn đề liên quan