Feature Request: deploy live classification to cell phone shareable link

Recently I had an Impulse that would have been fun to share on social media the deployable cell phone link, without the ability to upload data.

I think sharing the normal device QR code would potentially wreck my Impulse and I was not ready to share the entire impulse.

Also sharing the entire impulse then takes several steps for someone to deploy the impulse.

A shareable cell phone live classify link would be a grwat way to demo your impulse.

You can also deploy a version of the mobile client locally thru our repo here: https://github.com/edgeimpulse/mobile-client

And disable the data collection views by changing client/init.ts to the following:

import { DataCollectionClientViews } from "./collection-views";
import { ClassificationClientViews } from "./classification-views";
import { getIngestionApi, storeIngestionApi, getRemoteManagementEndpoint,
    storeRemoteManagementEndpoint, storeStudioEndpoint, getStudioEndpoint } from "./settings";
import { CameraDataCollectionClientViews } from "./camera-collection-views";
import { DataCollectionKeywordClientViews } from "./collection-keyword";
import { MicrophoneDataCollectionClientViews } from "./microphone-collection-views";

export default async function mobileClientLoader(mode:
    'classifier' ) {

    storeIngestionApi(getIngestionApi());
    storeRemoteManagementEndpoint(getRemoteManagementEndpoint());
    storeStudioEndpoint(getStudioEndpoint());

    if (mode === 'classifier') {
        let client = new ClassificationClientViews();
        await client.init();
        (window as any).client = client;
    }

    // tslint:disable-next-line:no-console
    console.log('Hello world from the Edge Impulse mobile client', mode);
}

And also delete the “Switch to data collection mode” button in the classifier.html file, lines 160-164:

    <div class="row" id="inferencing-region">
        <div class="col text-center mt-4">
            <a class="btn btn-secondary" href="index.html" id="switch-to-data-collection">Switch to data collection mode</a>
        </div>
    </div>

Then follow the README steps to load up an ngrok forwarder, then using the ngrok URL to share the mobile classifier only, append your project’s Admin API key to the end of the URL, for example: https://xxx.ngrok.io/classifier.html?apiKey=ei_xxx

And you’ll have a locally running version of just a mobile classifier for your project!

Of course, this requires you to be running the python server and ngrok forwarder constantly from your computer, and requires you to expose your Admin API key. However, it’s a start. I’ll let @janjongboom know of your interest for a classification/deployment only API key!

I’ve created a branch of the mobile-client for only the classifier view here: https://github.com/edgeimpulse/mobile-client/tree/classifier-only

Thanks so much @jenny for putting in the time to do that.

1 Like