loading
 
Automated archery scoring
Mark from United Kingdom  [8 posts]
10 year
Hi everyone

I am hoping the members of this forum can help me with a project i am developing for my local archery club. As has been previously explored on this forum i want to create a system that will recognise an arrow hitting the target and then calculate and display its score. I plan to use a streaming web cam feed to a laptop to run this.Having had a play with the aplication already the most obvious issue i can see is that an arrow in the target is not a blob that can be processed. I am hoping someone on here has some ideas on a way forward with this. I have attached a couple of pictures showing a before and after shot image of the target so you can see what i am on about.

Any help or guidance will be gratefully recieved

Regards

Mark

  
Marcel from Netherlands  [1 posts] 10 year
I AM interested too.
Juan Cabrer from United States  [11 posts] 10 year
The key to success in this type of application is to make sure the subject, camera, and illumination remain fixed during the acquisition of the before and after picture.

The arrows can definately be turned into blobs for analysis.  What you need to do is subetract the BEFORE IMAGE, from the AFTER IMAGE.  This needs to be an absolute difference.  The arrow should be the only change in the image, so you should be able to find the lowest pixel point in the blob, and that will give you the X,Y coordinate of the arrow.

I'm over simplifying abit, of course.  It wouldn't be any fun if I gave you the whole solution.

When a new target is placed up on the mount, you need to detect the individual scoring rings, and keep track of those, so you can calculate scores.

Since targets change all the time, you need to develop a strategy for when to do certain things like take next BEFORE IMAGE, and when to re-detect the ring boundaries of the target.
Juan Cabrer from United States  [11 posts] 10 year
If you have trouble seeing the arrow in the black ring area, you can try removing the IR filter of you camera, if it can be done without destroying it, of course.  The arrow and paper will look very different with the IR component present.
Mark from United Kingdom  [8 posts] 9 year
Hi John

Thank you for your help and advice so far.However i am a complete novice at this and am really struggling to with what i want to do. I have taken your advice and have fixed before and after images that i applied a negative to to show the target rings, and then subtracted as you suggested. But i am now stuck  on the wat forward I have played around with various modules but cant see the way forward. If you could offer any further help i would be immensly gratefull

  

program.robo
Juan Cabrer from United States  [11 posts] 9 year
This will get you a bit farther along.

Essentially, you need to figure where the tip of the arrow is, relative to the different colored rings.  I could just do it for you, but where's the fun in that.  Let me know if you need more of a push.
program.robo
Mark from United Kingdom  [8 posts] 9 year
Hi John

thanks again for your help and yes please more pushing required.I have tried applying some new modules to identify the arrow point and then tried to define the edges of the coloured scoring rings. How do i now relate the arrow point to the scoring ring and create a numerical score for this arrow.Once again your help is really appreciated.

Mark
program.robo
Ryan from United States  [4 posts] 9 year
After looking at your file, it appears this program is having difficulty detecting the edges of similarly colored spaces. I imagine that will be a problem. I do look forward to seeing the solutions, as they are applicable to a similar problem I am currently stuck on.

Cheers
Ryan from United States  [4 posts] 9 year
Sidenote: what happens also when there is made a hole in that edge detecting line? when that line gets shot, even after the arrow is removed, the hole will be picked up as an edge, right?
Juan Cabrer from United States  [11 posts] 9 year
Here is a more complete solution.  Now it attempts to locate the tip of the arrow, where it enters the target.
program.robo
Mark from United Kingdom  [8 posts] 9 year
Hi john
Thanks for that, must admit yours is a more elegant solution.Next thing is can i use the an RGB filter to identify the colour areas of the target, then use a variable to assign them a numerical scoring value and finally use some form of if statement to display the relevant score when the display circle is odentified in that area.Have tried to do this but cant seem to get it to work.Is this a good approach or am i going in completely the wrong direction.

cheers
Mark
Mark from United Kingdom  [8 posts] 9 year
ok completely stuck on how to define numerical values for the colour scoring zones and then have the stsytem recognise where the arrow point is to create the score.Anyone got any ideas on thsi.

Regards

Mark
Juan Cabrer from United States  [11 posts] 9 year
Since the solution I provided give the coordinates of the tip, one possibility would be to create a look up table of the image, in an array.

Take all red pixel positions, and assign them a fixed value in the array.  The value should be whatever the target values are.  Do the same for all the other colors.

The look up array can be smaller than the image.  Just use math.  For example, if the image is 1000x1000px, you might be able to use a 100x100 array.

Once you know the pixel location of the arrow tip, index the value in the array at X,Y to get your point value.
Mark from United Kingdom  [8 posts] 9 year
Thanks for responding John.

I can understand how your suggestion could be used to achieve the result i want.However after hours of trying to work out how to do this including lots of google time!!, i have to admit defeat and once again ask for your help in creating this array.  ilearn aliitle bit more each time you help me and eventually i might be able to finally create something on my own!.

Thanks

Mark

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index