Sony's Developer World forum

    • Home
    • Forum guidelines

    Upcoming maintenance 

     

    Dear Customers and Partners.

    This website will be undergoing scheduled maintenance on June 14, 2023. Please be aware there may be disruption to the developer portal website and associated services during the scheduled maintenance period.

    This upgrade is essential to ensure the continued performance, reliability, and security of Developer World.

    We apologize for any inconvenience.

     

     

    Building a custom Image Classification Model

    Spresense
    2
    19
    3317
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      suburban-daredevil last edited by

      Hi @kamiltomaszewski

      We have the tflmrt_lenet example which was trained on 28x28 grayscale images. What are the changes that has to be made and in what files (like app_main.c, pnm_util.c etc.) to accept and process RGB images of different size (say 96x96) ?

      Thanks

      1 Reply Last reply Reply Quote
      • S
        suburban-daredevil last edited by

        Hi @KamilTomaszewski

        93dd823a-5624-44e2-a595-23bb171d0f6a-Screenshot from 2022-02-24 14-17-03.png

        I just wanted to know, to embed our model's C-byte array code in our application, is it sufficient to replace the existing model0.c file's array contents with that of our new model?

        I tried emedding the model0.c file's array contents with that of my new model and also changed the model length. But every time I run inference, for any given input I'm getting the same output. No change in output. Am I missing something?

        And also model_tflite is the buffer that holds the model.

        acc5ea7b-e51e-40d7-9d16-0ccc8c3360c0-Screenshot from 2022-02-24 14-28-13.png

        And network is the variable that holds our NN. It is assigned in the else part of the code block below

        6652de38-50cc-4c49-ac3e-c9f87943677d-Screenshot from 2022-02-24 14-28-55.png

        But I think the network variable doesn't read the builtin model and hence it is not able to perform the right inference ?

        Any help is appreciated

        Thanks

        K 1 Reply Last reply Reply Quote
        • K
          KamilTomaszewski DeveloperWorld @suburban-daredevil last edited by

          Hi @suburban-daredevil,

          You need to change #define MNIST_SIZE_PX (28 * 28) to #define MNIST_SIZE_PX (96 * 96 * 3) in the tflmrt_lenet_main.c file and #define MY_BUFSIZ (28 * 28) to #define MY_BUFSIZ (96 * 96 * 3) in the pnm_util.c file. I think that should be enough.

          Does your model array have __attribute__((aligned))?

          Best Regards,
          Kamil Tomaszewski

          S 1 Reply Last reply Reply Quote
          • S
            suburban-daredevil @KamilTomaszewski last edited by suburban-daredevil

            Hi @kamiltomaszewski

            I think you are referring to this right?

            4e49f22f-9895-427e-a0ee-d1801b404207-Screenshot from 2022-02-25 08-46-35.png

            I'm not sure how to check if my new model has __attribute__((aligned))

            Thanks

            K 1 Reply Last reply Reply Quote
            • K
              KamilTomaszewski DeveloperWorld @suburban-daredevil last edited by

              Hi @suburban-daredevil

              Yes, that is right.

              Are you using the model as a C array or as a binary file that you load from the SD card?

              S 1 Reply Last reply Reply Quote
              • S
                suburban-daredevil @KamilTomaszewski last edited by

                Hi @kamiltomaszewski

                I have 2 queries

                • Currently I'm loading my model from the SD card. But I want to embed my model code onto my application folder itself. Is it enough to replace the contents of the model_tflite[] array with that of my new model or is there any other changes to be made?
                • When running the app from the nuttx prompt, I try to give the path of the image that should be used for inference. But currently only 28*28 grayscale images are being accepted. When I try to give images of any other dimensions, it says pgm image load failed . I have made the change that you have suggested above. Are there any other changes to be made?

                Thanks

                K 1 Reply Last reply Reply Quote
                • K
                  KamilTomaszewski DeveloperWorld @suburban-daredevil last edited by

                  Hi @suburban-daredevil

                  It should be enough to replace the contents of the model_tflitearray with that of your new model.

                  Could you check where exactly the pnm_load function returns an error?

                  Best Regards,
                  Kamil Tomaszewski

                  1 Reply Last reply Reply Quote
                  • S
                    suburban-daredevil last edited by suburban-daredevil

                    Hi @KamilTomaszewski

                    When I try to run build and flash from VS code, I get the following error. But I do have a file called project_name.nuttx.spx inside my out directory after building.

                    4eff2a6f-f913-4ace-84d3-5f6684bb10d0-Screenshot from 2022-03-10 17-19-28.png

                    Can you help me out with this?

                    Thanks

                    K 1 Reply Last reply Reply Quote
                    • K
                      KamilTomaszewski DeveloperWorld @suburban-daredevil last edited by

                      Hi @suburban-daredevil,

                      I think there is a bug in the latest VS code release. Could you please try an older release? For example: https://update.code.visualstudio.com/1.63.2/linux-deb-x64/stable

                      Best Regards,
                      Kamil Tomaszewski

                      S 1 Reply Last reply Reply Quote
                      • S
                        suburban-daredevil @KamilTomaszewski last edited by

                        Hi @KamilTomaszewski

                        It worked and solved the issue. Thanks for your help

                        Thanks

                        1 Reply Last reply Reply Quote
                        • First post
                          Last post
                        Developer World
                        Copyright © 2021 Sony Group Corporation. All rights reserved.
                        • Contact us
                        • Legal