why after FW3.6.4 I can't call nn.load()

I’m use this to recognize Numbers of 0-9,is there any function or way to do this?
After I Upgrade FW, I can’t use.

Hi, all the old CNN stuff has been removed. It doesn’t fit anymore on the flash side-by-side with TensorFlow.

Regarding the numbers network… Just use Edge Impulse (https://edgeimpulse.com/) to train your own custom network using picture of numbers. If you need a dataset of numbers see the chars74k dataset. The Chars74K image dataset - Character Recognition in Natural Images.

OpenMV IDE features integration in the latest release to upload assets to edge impulse.

Do you mean I can upload pictures and train model in OpenMV IDE ? How to use it ?
I have MV4 H7, not Plus. Is that enough to run the number TF ?
In my place to upload Pictures that is too slow. I don’t know why.
Can you help me to upload and train 0-9 Numbers?
Attached is Pictures.

Check this guide out:

I can’t access the address, maybe because I’m in China.
Can you help me train this?
I Attached datasets in Attachments.
Numbers.zip (10.8 MB)

Yes, let me do that. However, we need to get that unblocked…

Hi, you need to convert all the images to .jpg and name in the correct format for our converter. You gave me a bunch of jpg images.

Edge impulse folks say the tool works in China. Not sure why you can’t access it.

Hey, I uploaded your dataset to train and… it’s like impossible. Can’t get above 36% accuracy.

So, the point of the Edge Impulse stuff is for you to train on actual data.

Please try to login to Edge Impulse and capture real data from the camera and not synthetic data.

I tried, Yes it can access, but only slow.
And I use OpenMV IDE to Export datasets to Edge Impulse, I got SSL error.
(I confirmed Username and Password are correct.)
use API Key is the same error.

Hi, please try to use the edge impulse uploader scripts. Then, it’s documented on their API.

Regarding the number dataset you gave me. I cannot seem to train a net that works for that. Can you instead just capture images of what you plan to have the OpenMV Cam look at and zipup that dataset? Training a model for that should be super simple.

I upload all JPEG for each number 100 sample.
after training by several ways, the result is not good.
Do you know some way to recognize numbers on LCD screen?
Now I can split all ROI of them, but don’t have a good NN.

Hi, yes, the dataset you gave me I can’t seem to train a decent CNN on it as mentioned before.

Regarding the SSL error, you are on windows correct? I’ll make a new IDE that retries the upload in http to get past that.

Hi, do you have this jpeg dataset?

Yes Windows
And I have. Attached below. Each number 100 picture, I think is enough.
Wish you can train a good NN in some other way. If you can, Please give me a copy.
Num.zip (5.44 MB)

Hi, I’ll see what I can do…

This data is really hard to train on however. I think it has to do with the way it’s presented. Not sure why. Pretty much any CNN I tried didn’t work.

I trained one, Tested it look good.
but when I put it in OpenMV, it work really bad, why?

Hi, the network is over fit.

If you look at the data it expects a white image with a black character. So, you need to give it exactly that.

You should binarize each character that you need it.

Also, the classify method will scale to for the character into the CNN window. So, you need to produce squarish looking pictures to feed the classify method.

Basically, given the data set you trained the network on… Feed it only images that look at the same.

It’s important the realize that the network is not smart. It does not understand anything about what it’s trained on. Don’t make the assumption it knows that it’s looking at. It will only work as long as you control variables.

I pose a Picture, it is now how it’s running.
Each Big charter have a Rectangle. Above the big Rectangle, the left small picture (SubImg) is what I put into NN, the Right is NN output.
I think it at lest will have some good result, but you see, it is very bad.

out = tf.classify(mobilenet, SubImg, min_scale=1.0, scale_mul=0.8, x_overlap= -1, y_overlap= -1)
OutList = out[0].output()
max_idx = OutList.index(max(OutList))

is here any mistake? I Think the NN will not bad like this.

Hi, you should use the crop method to make new image from each of those characters. Then, binarize the cropped image, then draw that cropped image in the middle of a white area with plenty of width/height boundaries.

Think about it. What you are feeding the network doesn’t look like what it’s trained on.

I get it down. Still use NN, it works.
the key is lower the filters of 2D/Loop. Numbers don’t need too much.
and before put into NN, need to pre-fix the SubImg.
Do you have some suggestion to get speed up?

Awesome! Mind posting some details on exactly what you did for others?

As for a speed up… We are working on CMSIS-NN support. When it is integrated we should get a 5x speed boost. However, it’s challenging because when we use it right now it causes memory corruption… And because the TensorFlow library is so big we can’t compile in debug mode and find the error. We’ve reached out to ARM for help and are working with edge impulse to get his operational.