re: huskylens can make multiple algorithm at the same time such as line tracking and tag recognition?
I was under the impression that MULTIPLE algorithms simultaneously was NOT POSSIBLE !
@Bard17: Is it possible to change from object classification to tag recognition then get back to object classification?
Yes, you can switch algorithms back and forth programmatically. Just allow enough time for the camera to adjust to the new settings.
This was among the suggestions made a while ago. Unfortunately not implemented yet.
In the meantime, if an object id : Name association is needed, then a user implemented dictionary is necessary.
This is not an answer but rather a possibility based on how things work.
These answers assume that the camera will be positioned in a fixed manner and will have a steady view of the area to be analyzed.
To recognize P R N D with a color background or frame around the selected letter is a matter of training the model.
Ignoring the letters, if there is a significant color change involved with the gear selections, then color recognition algorithm might be helpful.
Objects recognized are returned with block center coordinates, which can be correlated to the position of the letters P R N D; hence the need for a fixed mounting.
Still, it will take a bit of fiddling and training to test it all out. Hope it will work out.
I tried the HUSKYLENS_ADVANCED.ino with Arduino.
Camera was powered off of the 5V pin and ground, I2C was off of pins SCL and SDA on the board next to the reset button.
With the camera starting out with FW: HUSKYLENSWithModelV0.5.1aNorm.kfpkg and reset to factory default,
I got the same display as you did. This is normal as there are no objects recognized or learned.
Then I manually selected the Object Classify algorithm and pressed the learn button to make it learn an object. It got assigned ID1.
I set the void loop object selections to:
if (huskylens.requestBlocks(ID1)) //request blocks tagged ID == ID1 from HUSKYLENSenabled.
When I reran the Arduino program, I got the correct results, as below:
⸮###################################Count of learned IDs:1frame number:201#######Get all blocks and arrows. Count:1Block:xCenter=160,yCenter=112,width=224,height=224,ID=1#######Get all blocks. Count:1Block:xCenter=160,yCenter=112,width=224,height=224,ID=1#######Get all arrows. Count:0#######Get all blocks and arrows tagged ID0. Count:0#######Get all blocks with learn ID equals ID0. Count:0#######Get all arrows tagged ID0. Count:0#######Get all blocks and arrows tagged ID1. Count:1Block:xCenter=160,yCenter=112,width=224,height=224,ID=1#######Get all blocks and arrows tagged ID2. Count:0
I hope this will provide confirmation that the demo program and camera work as intended.
Your deviations could be due to other reasons:
- FW level- Power issues- Code related etc.It is important to select the correct object selection criteria in the void loop if-statements.
With the camera in Face Recognition algorithm, I switched my if selection to :
if (huskylens.requestArrows()) //request only arrows from HUSKYLENS
and ended up with nothing displaying due mismatch of algorithm and selected and detected objects:
###################################Count of learned IDs:0frame number:564#######Get all blocks and arrows. Count:0#######Get all blocks. Count:0#######Get all arrows. Count:0#######Get all blocks and arrows tagged ID0. Count:0#######Get all blocks with learn ID equals ID0. Count:0#######Get all arrows tagged ID0. Count:0#######Get all blocks and arrows tagged ID1. Count:0#######Get all blocks and arrows tagged ID2. Count:0
Also note that the learned object count is per algorithm, as can be seen in my displays, where I had a learned object in Object Classify, but asked for Arrows in Face recog algorithm and got 0 results.
Check out the HuskyLens Arduino library section and Protocol description in Github.
It has byte sequences for the entire command set.
Please ignore this post. It is not a problem.
Hello GMartin,
I do not use Mind+, but I am familiar with it.
There is a block in the Husky extension that returns the “number of learned blocks”.
This number is per algorithm, and you should be able to find out the info you are looking for in it.
Hope it helps.
Hello George,
Just replying in support of the problem you have described.
I am experiencing the same thing and other anomalies with the way objects are handled.
I tried documenting them here in hopes of an answer; however, the support staff is totally unresponsive
to HuskyLens issues. It is like they dumped the product and don't care about it anymore.
The current firmware level and its performance details leaves much to be desired for any meaningful application.
https://github.com/HuskyLens/HUSKYLENSArduino
This github has all the program related info for the HL.
I have a copy of the learned Object CLassify data.
If needed, I can send it.
A bad ID#:
a bad ID#:
The pictures did not show up, so I am providing the ID numbers displayed on the screen while recognizing:
-1893584640
-749318853
1726535771
Hello paulnation,
In your code, the monitor serial port is initialized at 115200, but in the monitor display you have speed selection set to 9600. Need to make it also 115200.