0
$\begingroup$

I'm using NVIDIA DIGITS 3.0 to do training for detecting direction of a ball throw.

My Dataset contains 400+ binary images each for left and right throw with the following specs in DIGITS:

  • Image Type: Grayscale, JPG
  • Image Size: 256 x 256
  • Resize Transformation: Fill

My Classification Model specs:

  • Solver Type: NAG
  • Networks: GoogLeNet
  • The rest are default values

Problem:

I separated out 8 images (4 for left, 4 for right) from my 400+ training dataset to do testing on my model. The results returned from my classification model always classifies all 8 are left throws at 90%+ accuracy even though 4 of which are clearly right throws.

2 of the test images are shown below. My subject always stands at the same position to throw the ball, which is more or less constant. I've tried to change various parameters in the classification model like no. of epochs, subtract image mean, etc. to no avail.

In a previous dataset, my model classifies all throws as right throw, similarly only one direction is detected. I'm unsure whether the problem lies in my dataset images or the training model. I would greatly appreciate any advice.

Left Throw: Left

Right Throw: Right

$\endgroup$
1
$\begingroup$

a few things, these images look huge. Are they resized or cropped before going into the net. Try resizing instead of cropping. Also, if you use flip/rotation augmentation that will mess up your network.

Second, in the training data what % are right and what % are left throws? ideally, you have about 50:50 in the training set. If images in training are mostly left, it might learn to guess left preferentially.

BTW, there might be an easier way to solve this problem. First, extract small patches and classify each patch as: 1 (contains a ball) or 0 (doesn't contain a ball) - this is segmentation.

After segmentation, a simple algorithm that tells you if the ball is left of center or right of center will give you the correct answer.

$\endgroup$
1
  • $\begingroup$ +1 for the segmentation approach. Use a neural network to identify which segmented part of your image contains the ball. From that you can very easily know if that segment came from the left half or right half. $\endgroup$
    – JahKnows
    May 29 '17 at 22:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.