diff --git a/README.md b/README.md index 72a53f0..0cc8c87 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![](https://pbs.twimg.com/media/D_ANZnbWsAA4EVK.jpg) -The IntelligentEdgeHOL walks through the process of deploying an IoT Edge module to an Nvidia Jetson Nano device to allow for detection of objects in YouTube videos, RTSP streams, or an attached web cam. It achieves performance of around 10 frames per second for most video data. +The IntelligentEdgeHOL walks through the process of deploying an [IoT Edge](https://docs.microsoft.com/en-us/azure/iot-edge/about-iot-edge?WT.mc_id=github-IntelligentEdgeHOL-pdecarlo) module to an Nvidia Jetson Nano device to allow for detection of objects in YouTube videos, RTSP streams, or an attached web cam. It achieves performance of around 10 frames per second for most video data. The module ships as a fully self-contained docker image totalling around 5.5GB. This image contains all necessary dependencies including the [Nvidia Linux for Tegra Drivers](https://developer.nvidia.com/embedded/linux-tegra) for Jetson Nano, [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit), [NVIDIA CUDA Deep Neural Network library (CUDNN)](https://developer.nvidia.com/cudnn), [OpenCV](https://github.com/opencv/opencv), and [Darknet](https://github.com/AlexeyAB/darknet). For details on how the base images are built, see the included `docker` folder. @@ -114,7 +114,7 @@ Development Environment: Before we install IoT Edge, we need to install a few utitilies onto the Nvidia Jetson Nano device with: ``` -apt-get install -y curl nano python3-pip +sudo apt-get install -y curl nano python3-pip ``` ARM64 builds of IoT Edge are currently being offered in preview and will eventually go into General Availability. We will make use of the ARM64 builds to ensure that we get the best performance out of our IoT Edge solution. @@ -153,7 +153,7 @@ Once you have obtained a connection string, open the configuration file: sudo nano /etc/iotedge/config.yaml ``` -Find the provisioning section of the file and uncomment the manual provisioning mode. Update the value of device_connection_string with the connection string from your IoT Edge device. +Find the provisioning section of the file and uncomment the manual provisioning mode. Update the value of `device_connection_string` with the connection string from your IoT Edge device. ``` provisioning: @@ -168,6 +168,12 @@ provisioning: ``` +After you have updated the value of `device_connection_string`, restart the iotedge service with: + +``` +sudo service iotedge restart +``` + You can check the status of the IoT Edge Daemon using: ``` @@ -251,7 +257,7 @@ You can Open this Web Server using the IP Address or Host Name of the Nvidia Jet Example : - http://JetsonNano + http://jetson-nano-00 or @@ -309,20 +315,6 @@ WARNING: Assuming --restrict-filenames since file system encoding cannot encode Download Complete ``` -# Enable Object Detection by modifying the Module Twin - -While in VSCode, select the Azure IoT Hub Devices window, find your IoT Edge device and expand the modules sections until you see the `YoloModule` entry. - -Right click on `YoloModule` and select `Edit Module Twin` - -A new window name `azure-iot-module-twin.json` should open. - -Set the value of `properties -> desired -> Inference` to 1 - -Right click anywhere in the Editor window, then select `Update Module Twin` - - After a few moments the object detection feature will become enabled in the module. Now, if you reconnect to the video stream connected to in the previous step, you should see a bounding box and tags appearing around any detected objects in the video stream. - # Monitor the GPU utilization stats On the Jetson device, you can monitor the GPU utilization by installing `jetson-stats` with: @@ -363,3 +355,22 @@ Confidence Level threshold. The module ignores any inference results below this `VideoSource` : (string) Source of video stream/capture source + +# Pushing Detected Object Data into Azure Time Series Insights + +[Azure Time Series Insights](https://docs.microsoft.com/en-us/azure/time-series-insights/time-series-insights-overview?WT.mc_id=github-IntelligentEdgeHOL-pdecarlo) is built to store, visualize, and query large amounts of time series data, such as that generated by IoT devices. This service can allow us to extract insights that may allow us to build something very interesting. For example, imagine getting an alert when the mail truck is actually at the driveway, counting wildlife species using camera feeds from the National Park Service, or being able to tell that people are in a place that they should not be or counting them over time! + +To begin, navigate to the resource group that contains the IoT Hub that was created in the previous steps. Add a new Time Series Insights environment into the Resource Group and select `S1` tier for deployment. Be sure to place the Time Series Insights instance into the same Geographical region which contains your IoT Hub to minimize latency and egress charges. + +![](https://hackster.imgix.net/uploads/attachments/939871/image_11Mggcf7p3.png?auto=compress) + +Next, choose a unique name for your Event Source and configure the Event Source to point to the IoT Hub you created in the previous steps. Set the `IoT Hub Access Policy Name` to "iothubowner", be sure to create a new IoT Hub Consumer Group named "tsi", and leave the `TimeStamp Propery Name` empty as shown below: + +![](https://hackster.imgix.net/uploads/attachments/939872/image_4DsJXUVxvt.png?auto=compress) + +Complete the steps to "Review and Create" your deployment of Time Series Insights. Once the instance has finished deploying, you can navigate to the Time Insights Explorer by viewing the newly deployed Time Series Insights Environment resource, selecting "Overview" and clicking the "Time Series Insights explorer URL". Once you have clicked the link, you may begin working with your detected object data. + +For details on how to explore and query your data in the Azure Time Series Insights explorer, you may consult the [Time Series Insights documentation](https://docs.microsoft.com/en-us/azure/time-series-insights/time-series-insights-explorer?WT.mc_id=github-IntelligentEdgeHOL-pdecarlo). + +![](https://hackster.imgix.net/uploads/attachments/939873/image_JWWcQszXsh.png?auto=compress) +