Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent results with object detector #81

Open
JoakimHaurum opened this issue Apr 14, 2019 · 3 comments
Open

Inconsistent results with object detector #81

JoakimHaurum opened this issue Apr 14, 2019 · 3 comments

Comments

@JoakimHaurum
Copy link

Hi,

I'm currently using VIAME for object detection for yolo networks, using your example scripts. I'm using VIAME 0.9.9.7 GPU binaries for Windows.

I've found that different results are reached depending on the header of the yolo cfg files.

Specifically if I have a #Testing tag in the start I get one results, while if I have a #Training or no tags, I get another result, as shown below.

What is the correct and intended procedure? And is it a bug in VIAME or due to specific darkent functionality?

Best regards,
Joakim Bruslund Haurum

@JoakimHaurum
Copy link
Author

So I just did some further testing. It seems to not be the Tags, but instead the settings of the batch and subdivision size. So if I have the following two settings, the toolkit produce different detection results.

batch=32
subdivision=8

batch=1
subdivisions=1

@mattdawkins
Copy link
Collaborator

This should be fixed in the latest build of the source - it was a VIAME<->darknet fusion error - and you are correct it is due to those flags. We introduced a batching parameter for a seal project we're working on (that processes X chips at once at the same time, as opposed to just 1 testing) which seemed to have some both crashing and non-determinism so it was removed for the time being.

As an aside, just because last time you were asking about detections they're pretty much just stock (seeded from alexnet) but also include a few optimizations: e.g. yolo performs a grided pattern across the image (chips up image into smaller tiles), also proceses the full frame, then does NMS on the results. There's also a variant of it (yolo-wtf) that fuses motion + RGB information. Lastly, we just added mmdet for cascade-rnn and mask-rnn which I'm hoping to get in a release next week. -MD

@JoakimHaurum
Copy link
Author

Thanks for the quick answer!

I tried downloading the 0.9.9.7 CPU binaries for windows and redo the tests with different batch/subdivisions settings, which seems to produce the results from when the batch=subdivisions=1 is set. There are some small differences, but I'm willing to chalk that up to rounding errors etc.

So from what I can see it seems like the results with batch=subdivisions=1 is the most correct with the GPU settings, except of course if the batch/subdvisions settings don't matter on the CPU. Will probably try and compare with the latest source build and the native Darknet valid operation today/tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants