So far my experiments using just pixymon have shown me that the detection of color combinations is a touchy thing that is not as easy as I had expected it might be from the general goal of pixy 5 project. I have a friend in fact that has had to program 6 of the signatures for a single color using different lighting just to try to recognize one color. I feel at this time that recognition of a single color is ONLY possible with extremely controlled conditions and not of much general value to robotics recogntion where light sources vary a lot.
I submit these thoughts that I bet would farther improve correct recognition of objects when certain attributes are known.
- To recognize a single color is extremely prone to error unless you can have a highly controlled environment
- Very carefully controlled lighting or colors you want to identify may be passed over ad not a ‘hit’.
- All other colors that are close to the color of the object are best eliminated from the scene using backdrops of black or white for example.
- The newly introduced recognition of 2 or more colors next to each other greatly assists proper object detection and should be expanded.
- Just two colors can still be tricked by close color matches for the second color being nearby.
- Use of three colors greatly increases likelyhood that a match will be accurate but is only of value if you can say ‘Only recognize 3 colors next to each other’ or else one and two color matches fill the data with pointless block groups that you don’t care about. That filtering would be better located in Pixy itself.
What I think would GREATLY improve multi-color detection ability would be these two things added to a future rev of firmware
- Ability to say JUST recognize specific sequences of adjacent 2 or 3 color signatures next to each other and don’t show 1 or 2 color combos if 3 was selected.
Example: Just look for Blue, Yellow, Red and Green, Yellow, Red IN THAT SPECIFIC ORDER - Have an ability to tell the firmware to just recognize the 3-adjacent color patterns if the overall aspect ratio of the 3 together is 1:3 or some ratio.
This means that if some large blob of yellow is next to blue but blue is also next to yellow and red (using above #1 example sequence) just recognize the Blue,Yellow, Red if it is within 30% of being a 3:1 elongated shape. What I mean by 3:1 for example is that squares of blue,yellow,red next to each other would have a total length of 3 and a width of 1. not of course due to angles and curved surfaces and my already mentioned intollerance to lighting differences with Pixy technology you have some factor like the 30% I mention where you look for that elongated ratio of 3:1 but accept diviation of 30% as a ‘hit’. Both the 3:1 and the 30% would have to be recognition parameters that could be tweeked of course.