2013-04-17 43 views
27

lý do posible của "Required leaf false alarm rate achieved. Branch training terminated." Các folowing lệnh cho đào tạo là gì:Làm thế nào để đào tạo thác đúng

cho việc tạo mẫu

-img imgs/CHE_one_wb.jpg -num 300 -bg imgs/negat .dat -vec imgs/vector.vec -info imgs/smpl/info.txt -maxxangle 0,1 -maxyangle 0 -maxzangle 0,1 -maxidev 100 -gàu màu 255 -bgthresh 0 -w 20 -h 35

-img imgs/CHE_one_wb.jpg -num 300 -bg imgs/negat.dat -info imgs/smpl/info.txt -maxxangle 0,1 -maxyangle 0,1 -maxzangle 0 .1 -maxidev 100 -bgcolor 255 -bgthresh 0 -w 20 -h 35

cho tàu

-data imgs/thác/-vec imgs/vector.vec -bg imgs/negat. dat -numPos 200 -numNeg 40 -numStages 10 -featureType LBP -maxFalseAlarmRate 0,9 -w 20 -h 35

KẾT QUẢ ĐÀO TẠO

enter image description here

+1

có vẻ như có một tính năng tách biệt hoàn toàn các mặt tích cực khỏi âm bản, vì vậy bạn nhận được HR = 1 và FA = 0. vấn đề của bạn là cực kỳ dễ dàng hoặc không được đại diện bởi dữ liệu của bạn. –

Trả lời

42

Tôi đã đạt được mục tiêu và được đào tạo tốt thác.

  1. Trước tiên, bạn cần một vài mẫu gốc (không sử dụng một và nhân với mẫu tạo). Tôi đã sử dụng 10 hình ảnh khác nhau của chai bia, cho mỗi tôi đã tạo ra 200 trăm mẫu, sau đó tôi đã kết hợp tất cả các mẫu trong một tập tin vector với 2000 mẫu.
  2. -w 20 -h 35 phải phù hợp với tỉ lệ của hình ảnh ban đầu của bạn
  3. Relation mẫu dương sang âm nên có khoảng 2: 1 (không nên có mẫu dương tính hơn)
  4. Số giai đoạn bạn nên chọn bởi chính mình (đối với tôi nó là 12-13). Càng có nhiều giai đoạn bạn đặt chính xác hơn sẽ là thác của bạn, nhưng bạn cũng có thể overtrain cascade của bạn và nó sẽ không tìm thấy bất cứ điều gì. Độ chính xác của thác của bạn được hiển thị bằng cách chấp nhận Ratio ở giai đoạn cuối cùng, giá trị này nằm trong khoảng giá trị này 0.000412662 trở xuống.

Nhưng nếu bạn nhận được acceptanceRatio như 7.83885e-07 thác của bạn này có lẽ là overtrained và nó sẽ không tìm thấy bất cứ điều gì, hãy cố gắng thiết lập giai đoạn ít hơn.

!!! Và một điều quan trọng nữa, khi bạn đào tạo thác của mình, bạn nên có nhiều tính năng trên sân khấu bắt đầu từ 2 hoặc 3 giai đoạn. Nếu bạn chỉ có một tính năng bạn sẽ không nhận được thác tốt. Bạn nên làm việc trên hình ảnh đào tạo của bạn (mẫu tiêu cực và tích cực). đào tạo bình thường sẽ trông như thế này:

enter image description here

Đối với đào tạo Tôi đã sử dụng -data imgs/cascade/ -vec imgs/vector.vec -bg imgs/negat.dat -numPos 1900 -numNeg 900 -numStages 12 -featureType HAAR -minHitRate 0.999 -maxFalseAlarmRate 0.5 -w 24 -h 30 lệnh

Cả hai tính năng loại làm việc gần như tương đương với đôi Haar là tốt hơn một chút nhưng nó rất có ý nghĩa chậm hơn so với LBP.

+0

Xin chào, đó là khá nhiều thông tin, Cảm ơn bạn. Kích thước của hình ảnh tiêu cực bạn đã sử dụng cho việc đào tạo là bao nhiêu? Tỷ lệ 2: 1 giữa các mẫu dương và âm có tầm quan trọng như thế nào? – codeAnatomist6

+1

Nói chung, không có bằng chứng nào cho thấy điểm 3) là đúng. –

+0

@GiuseppeDini có thể bạn đúng, nhưng điều quan trọng là phải có nhiều mẫu dương tính hơn âm tính. – Lemberg

7

Số âm bản quá ít so với số dương và số giai đoạn.

+0

Tôi đã thử các giá trị khác nhau và nó không giúp ích gì. – Lemberg

7

Nếu bạn có một số lượng nhỏ dữ liệu, bạn cần ít số lượng các giai đoạn hơn để đạt được tỷ lệ cảnh báo sai theo yêu cầu mà bạn đã thiết lập. Điều này có nghĩa là trình phân loại tầng là "đủ tốt" để nó không phải phát triển thêm nữa. Tổng tỷ lệ dương tính giả thực sự nhân với tỷ lệ của mỗi giai đoạn, do đó, sau một thời điểm, giá trị đạt được.

Trong tùy chọn của bạn, bạn đặt nó lên tới 0,9. Xem xét làm cho nó cao hơn, như 0,95 hoặc nhiều hơn.

Ngoài ra, bộ dữ liệu của bạn còn nhỏ nên thuật toán sẽ nhận được kết quả tốt hơn khi xác thực chúng trong khi đào tạo. Bộ dữ liệu càng nhỏ, việc phân loại được đào tạo dễ dàng hơn, vì vậy cần ít giai đoạn hơn. Nhưng điều này không có nghĩa là nó tốt hơn khi chạy trên dữ liệu thực. Ngoài ra, nếu bạn giữ kích thước đào tạo thấp và đặt tỷ lệ cao hơn, hãy xem xét trình phân loại sẽ cần thêm các giai đoạn để hoàn thành và sẽ phức tạp hơn, nhưng rất có thể nó sẽ được đào tạo quá mức trên tập huấn luyện.

Để kết luận, nếu bản chất của tích cực và tiêu cực của bạn mà bạn có, làm cho chúng dễ dàng tách biệt, thì bạn không cần quá nhiều mẫu. Tất nhiên điều đó phụ thuộc vào những gì bạn đang đào tạo các thuật toán cho. Với số lượng mẫu của bạn, 10 giai đoạn bạn đặt là rất nhiều, vì vậy thuật toán chấm dứt sớm hơn (nó không nhất thiết phải là xấu).

Khi tôi luyện mặt, tôi nghĩ rằng tôi có khoảng 1 nghìn điểm tích cực (bao gồm tất cả phép quay/độ lệch) và 2-3 nghìn âm, cần phân loại khoảng 11-13 cấp, nếu tôi nhớ chính xác .

Hướng dẫn của Naotoshi Neo đã giúp tôi rất nhiều.

Ngoài ra, những gì tôi nhận thấy bây giờ, như Safir đã đề cập, bạn có quá ít mẫu âm so với mẫu dương tính. Nên ít nhất bằng nhau về số lượng, tốt hơn là khoảng 1,5 - 2 lần so với dương tính.

+0

cảm ơn tôi sẽ thử một số – Lemberg

+0

thử và cung cấp phản hồi về những gì đã làm việc cuối cùng :) –

+0

Ok. Tôi đang stil thử các lựa chọn khác nhau. – Lemberg

6

Bạn đặt maxFalseAlarmRate = 0.9.
Điều này có nghĩa là trong mỗi giai đoạn không quá 90% trong số 40 mẫu âm tính (ví dụ 36 mẫu) phải nằm trong ranh giới dương tính. Khi thuật toán quản lý để đặt bên ngoài ranh giới đó ít nhất 4 mẫu, nó có thể đi đến giai đoạn tiếp theo.
Điều này làm việc cho một vài giai đoạn, cho đến khi nó xảy ra (chỉ có cơ hội) có ít hơn 36 mẫu đã nằm trong ranh giới dương kể từ đầu (remenber rằng việc lấy mẫu âm là một quá trình ngẫu nhiên). Vì vậy, khi thuật toán nên hoạt động tách nó có công việc của nó đã được thực hiện và nó không biết làm thế nào để thủ tục.

0

Đây không phải là lỗi! Với các mẫu được trình bày và các thiết lập của việc đào tạo, thác của bạn đã đạt được tiềm năng mong muốn của nó. Hoặc là thêm nhiều dữ liệu hơn HOẶC làm cho yêu cầu của bạn khắc nghiệt hơn! Còn bây giờ nó chỉ khẳng định, không tốt như bạn yêu cầu ...

Bạn có ba cách bây giờ ...

  1. Thêm giai đoạn hơn trong -numStages để có được sân khấu của bạn ví dụ nếu bạn muốn nhận được 10 giai đoạn bạn có thể viết trong tham số -numStages 14 và bạn sẽ nhận được 10 hoặc 11 giai đoạn.

2.Bạn có thể loại bỏ điều này bằng cách tăng dữ liệu của bạn, tôi có nghĩa là số lượng hình ảnh và hình ảnh tiêu cực tích cực của bạn. "Cố gắng giữ tích cực hơn âm bản"

3.Tôi đọc cái này ở đâu đó, vì vậy tôi không biết nó sẽ hoạt động hay không. Bạn có thể làm điều này bằng cách tăng -minHitRate 0,995 và -maxFalseAlarmRate 0,5, hai tham số này đã có giá trị mặc định của chúng và bạn có thể loại bỏ vấn đề của mình bằng cách tăng chúng lên 0.998 và 0.7 và tiếp tục làm điều này.

Nhưng như tôi đã nói đây không phải là lỗi.

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