You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/pa/5-retail/lessons/2-check-stock-device/single-board-computer-objec...

9.9 KiB

ਆਪਣੇ IoT ਡਿਵਾਈਸ ਤੋਂ ਆਪਣੇ ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਨੂੰ ਕਾਲ ਕਰੋ - ਵਰਚੁਅਲ IoT ਹਾਰਡਵੇਅਰ ਅਤੇ ਰਾਸਪਬੈਰੀ ਪਾਈ

ਜਦੋਂ ਤੁਹਾਡਾ ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਪਬਲਿਸ਼ ਹੋ ਜਾਵੇ, ਤਾਂ ਇਸਨੂੰ ਤੁਹਾਡੇ IoT ਡਿਵਾਈਸ ਤੋਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।

ਇਮੇਜ ਕਲਾਸੀਫਾਇਰ ਪ੍ਰੋਜੈਕਟ ਕਾਪੀ ਕਰੋ

ਤੁਹਾਡਾ ਜ਼ਿਆਦਾਤਰ ਸਟਾਕ ਡਿਟੈਕਟਰ ਉਹੀ ਹੈ ਜੋ ਤੁਸੀਂ ਪਿਛਲੇ ਪਾਠ ਵਿੱਚ ਬਣਾਇਆ ਸੀ।

ਟਾਸਕ - ਇਮੇਜ ਕਲਾਸੀਫਾਇਰ ਪ੍ਰੋਜੈਕਟ ਕਾਪੀ ਕਰੋ

  1. stock-counter ਨਾਮ ਦਾ ਫੋਲਡਰ ਬਣਾਓ, ਜਾਂ ਤਾਂ ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ ਜੇਕਰ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ, ਜਾਂ ਆਪਣੇ ਰਾਸਪਬੈਰੀ ਪਾਈ 'ਤੇ। ਜੇਕਰ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਵਰਚੁਅਲ ਐਨਵਾਇਰਨਮੈਂਟ ਸੈਟਅਪ ਕੀਤਾ ਹੈ।

  2. ਕੈਮਰਾ ਹਾਰਡਵੇਅਰ ਸੈਟਅਪ ਕਰੋ।

    • ਜੇਕਰ ਤੁਸੀਂ ਰਾਸਪਬੈਰੀ ਪਾਈ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ ਤੁਹਾਨੂੰ PiCamera ਫਿੱਟ ਕਰਨੀ ਪਵੇਗੀ। ਤੁਸੀਂ ਕੈਮਰੇ ਨੂੰ ਇੱਕ ਸਥਿਰ ਸਥਿਤੀ ਵਿੱਚ ਫਿਕਸ ਕਰਨਾ ਚਾਹੋਗੇ, ਉਦਾਹਰਨ ਲਈ, ਕੇਬਲ ਨੂੰ ਡੱਬੇ ਜਾਂ ਕੈਨ 'ਤੇ ਲਟਕਾ ਕੇ, ਜਾਂ ਕੈਮਰੇ ਨੂੰ ਡੱਬੇ 'ਤੇ ਡਬਲ-ਸਾਈਡ ਟੇਪ ਨਾਲ ਫਿਕਸ ਕਰਕੇ।
    • ਜੇਕਰ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ ਤੁਹਾਨੂੰ CounterFit ਅਤੇ CounterFit PyCamera shim ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ। ਜੇਕਰ ਤੁਸੀਂ ਸਥਿਰ ਚਿੱਤਰ ਵਰਤਣ ਜਾ ਰਹੇ ਹੋ, ਤਾਂ ਕੁਝ ਚਿੱਤਰ ਕੈਪਚਰ ਕਰੋ ਜੋ ਤੁਹਾਡੇ ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਨੇ ਪਹਿਲਾਂ ਨਹੀਂ ਵੇਖੇ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਵੈਬ ਕੈਮ ਵਰਤਣ ਜਾ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਇਹ ਸਟਾਕ ਨੂੰ ਵੇਖਣ ਵਾਲੀ ਸਥਿਤੀ ਵਿੱਚ ਹੈ।
  3. ਮੈਨੂਫੈਕਚਰਿੰਗ ਪ੍ਰੋਜੈਕਟ ਦੇ ਪਾਠ 2 ਤੋਂ ਕੈਮਰੇ ਤੋਂ ਚਿੱਤਰ ਕੈਪਚਰ ਕਰਨ ਦੇ ਕਦਮਾਂ ਨੂੰ ਦੁਹਰਾਓ।

  4. ਮੈਨੂਫੈਕਚਰਿੰਗ ਪ੍ਰੋਜੈਕਟ ਦੇ ਪਾਠ 2 ਤੋਂ ਇਮੇਜ ਕਲਾਸੀਫਾਇਰ ਨੂੰ ਕਾਲ ਕਰਨ ਦੇ ਕਦਮਾਂ ਨੂੰ ਦੁਹਰਾਓ। ਇਸ ਕੋਡ ਦਾ ਜ਼ਿਆਦਾਤਰ ਹਿੱਸਾ ਆਬਜੈਕਟਸ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਦੁਬਾਰਾ ਵਰਤਿਆ ਜਾਵੇਗਾ।

ਕੋਡ ਨੂੰ ਕਲਾਸੀਫਾਇਰ ਤੋਂ ਇਮੇਜ ਡਿਟੈਕਟਰ ਵਿੱਚ ਬਦਲੋ

ਤੁਹਾਡੇ ਦੁਆਰਾ ਚਿੱਤਰਾਂ ਨੂੰ ਕਲਾਸੀਫਾਈ ਕਰਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਕੋਡ ਆਬਜੈਕਟਸ ਦੀ ਪਛਾਣ ਕਰਨ ਵਾਲੇ ਕੋਡ ਦੇ ਬਹੁਤ ਹੀ ਨਜ਼ਦੀਕ ਹੈ। ਮੁੱਖ ਅੰਤਰ Custom Vision SDK 'ਤੇ ਕਾਲ ਕੀਤੀ ਗਈ ਵਿਧੀ ਅਤੇ ਕਾਲ ਦੇ ਨਤੀਜੇ ਹਨ।

ਟਾਸਕ - ਕੋਡ ਨੂੰ ਕਲਾਸੀਫਾਇਰ ਤੋਂ ਇਮੇਜ ਡਿਟੈਕਟਰ ਵਿੱਚ ਬਦਲੋ

  1. ਉਹ ਤਿੰਨ ਲਾਈਨਾਂ ਦੇ ਕੋਡ ਨੂੰ ਮਿਟਾਓ ਜੋ ਚਿੱਤਰ ਨੂੰ ਕਲਾਸੀਫਾਈ ਕਰਦਾ ਹੈ ਅਤੇ ਪ੍ਰਡਿਕਸ਼ਨ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਦਾ ਹੈ:

    results = predictor.classify_image(project_id, iteration_name, image)
    
    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    ਇਹ ਤਿੰਨ ਲਾਈਨਾਂ ਹਟਾਓ।

  2. ਚਿੱਤਰ ਵਿੱਚ ਆਬਜੈਕਟਸ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:

    results = predictor.detect_image(project_id, iteration_name, image)
    
    threshold = 0.3
    
    predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold)
    
    for prediction in predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    ਇਹ ਕੋਡ ਪ੍ਰਡਿਕਟਰ 'ਤੇ detect_image ਵਿਧੀ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਚਲਾਇਆ ਜਾ ਸਕੇ। ਇਹ ਫਿਰ ਇੱਕ ਥ੍ਰੈਸ਼ਹੋਲਡ ਤੋਂ ਉੱਪਰ ਸੰਭਾਵਨਾ ਵਾਲੇ ਸਾਰੇ ਪ੍ਰਡਿਕਸ਼ਨ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਕੰਸੋਲ 'ਤੇ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ।

    ਇੱਕ ਇਮੇਜ ਕਲਾਸੀਫਾਇਰ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਟੈਗ ਪ੍ਰਤੀ ਇੱਕ ਨਤੀਜਾ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਦੇ ਉਲਟ, ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਕਈ ਨਤੀਜੇ ਵਾਪਸ ਕਰੇਗਾ, ਇਸ ਲਈ ਕੋਈ ਵੀ ਜੋ ਘੱਟ ਸੰਭਾਵਨਾ ਵਾਲਾ ਹੈ ਉਸਨੂੰ ਫਿਲਟਰ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।

  3. ਇਸ ਕੋਡ ਨੂੰ ਚਲਾਓ ਅਤੇ ਇਹ ਇੱਕ ਚਿੱਤਰ ਕੈਪਚਰ ਕਰੇਗਾ, ਇਸਨੂੰ ਆਬਜੈਕਟ ਡਿਟੈਕਟਰ ਨੂੰ ਭੇਜੇਗਾ, ਅਤੇ ਪਛਾਣ ਕੀਤੇ ਗਏ ਆਬਜੈਕਟਸ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੇਗਾ। ਜੇਕਰ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ CounterFit ਵਿੱਚ ਇੱਕ ਉਚਿਤ ਚਿੱਤਰ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ ਸਾਡਾ ਵੈਬ ਕੈਮ ਚੁਣਿਆ ਗਿਆ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਰਾਸਪਬੈਰੀ ਪਾਈ ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ ਕੈਮਰਾ ਸ਼ੈਲਫ 'ਤੇ ਆਬਜੈਕਟਸ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰ ਰਿਹਾ ਹੈ।

    pi@raspberrypi:~/stock-counter $ python3 app.py 
    tomato paste:   34.13%
    tomato paste:   33.95%
    tomato paste:   35.05%
    tomato paste:   32.80%
    

    💁 ਤੁਹਾਨੂੰ ਆਪਣੇ ਚਿੱਤਰਾਂ ਲਈ threshold ਨੂੰ ਇੱਕ ਉਚਿਤ ਮੁੱਲ 'ਤੇ ਸਹੀ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।

    ਤੁਸੀਂ ਲਿਆ ਗਿਆ ਚਿੱਤਰ ਅਤੇ ਇਹ ਮੁੱਲ Predictions ਟੈਬ ਵਿੱਚ Custom Vision ਵਿੱਚ ਦੇਖ ਸਕਦੇ ਹੋ।

    ਸ਼ੈਲਫ 'ਤੇ 4 ਟਮਾਟਰ ਪੇਸਟ ਦੇ ਕੈਨ, 35.8%, 33.5%, 25.7% ਅਤੇ 16.6% ਦੀ ਪਛਾਣ ਲਈ ਪ੍ਰਡਿਕਸ਼ਨ

💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-detect/pi ਜਾਂ code-detect/virtual-iot-device ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ।

😀 ਤੁਹਾਡਾ ਸਟਾਕ ਕਾਊਂਟਰ ਪ੍ਰੋਗਰਾਮ ਸਫਲ ਰਿਹਾ!


ਅਸਵੀਕਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤ ਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।