作者:Anisha Udayakumar 翻譯:張晶
項目背景
你是否知道每年大約有2300億美元的食物被浪費,其中高達五分之一屬于可食用農(nóng)產(chǎn)品?我們都在自己的家中經(jīng)歷過某種類型的食物浪費,但最大量的浪費發(fā)生在雜貨店的新鮮食品和農(nóng)產(chǎn)品區(qū)。
長期以來,這么多的食物浪費一直是我關(guān)心的問題!在加入英特爾之前,我是一名創(chuàng)新顧問,與多家全球零售客戶合作改善運營和客戶滿意度,那時是我第一次注意到商店里浪費了大量的新鮮食物的時候?;谶@樣一個事實,與預(yù)先包裝的食品不同,新鮮農(nóng)產(chǎn)品沒有保質(zhì)期——這使得預(yù)測它何時變質(zhì)變得極其困難。
由于,使用人工智能等技術(shù)讓可持續(xù)發(fā)展成為主流一直是我的夢想,我知道零售商必須有更好的方法來解決這個問題并減少新鮮農(nóng)產(chǎn)品的浪費,所以,我建立了一個計算機視覺人工智能模型,可以確定農(nóng)產(chǎn)品的新鮮度,比如西紅柿或香蕉等。但是,讓 AI 模型實時工作是一個挑戰(zhàn),我意識到提高模型性能對于部署和大規(guī)模應(yīng)用至關(guān)重要。
在這篇文章中,我將展示如何使用 OpenVINO工具套件來優(yōu)化模型和加速人工智能推理計算。
構(gòu)建模型
通過使用攝像頭來監(jiān)控雜貨店的貨架,并使用目標檢測和識別技術(shù)掃描其貨物的圖像。本文中我使用了一個AI 模型準確識別出農(nóng)產(chǎn)品區(qū)的每一件商品。
通過打上標簽的圖像,目標檢測和識別算法能夠確定產(chǎn)品是新鮮、損壞還是即將變質(zhì)。有了這些信息,我們就可以設(shè)置自動警報,通知商店經(jīng)理和零售商是否需要更換產(chǎn)品或需要降價——減少需要丟棄的產(chǎn)品數(shù)量。
OpenVINO助力實時推理計算
我的新鮮度識別模型可以分析單件新鮮農(nóng)產(chǎn)品的圖像,如上圖所示。為了在現(xiàn)實場景中發(fā)揮作用,它必須能夠非常快速地區(qū)分和標記大型貨架上的每一件農(nóng)產(chǎn)品。
為了構(gòu)建模型,我使用了 Open Model Zoo 中的 SSDLite MobileNetV2 模型,詳情請參考這個 Jupyter notebook 中描述的目標檢測和識別程序。
Open Model Zoo github地址:
https://github.com/openvinotoolkit/open_model_zoo/
SSDLite MobileNetV2 地址:
https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssdlite_mobilenet_v2
Jupyter notebook 地址:
https://github.com/openvinotoolkit/openvino_notebooks/blob/main/notebooks/401-object-detection-webcam/401-object-detection.ipynb
雖然我將該程序用于解決食物浪費問題,但它并不局限于解決食物浪費問題。開發(fā)者可以很容易地按照詳細的源碼將其應(yīng)用到自己的目標檢測場景中。
正如我已經(jīng)提到的,雖然我最初的目標檢測模型是準確的,但它檢測速度太慢了。一開始,我嘗試對模型進行微調(diào),甚至切換到了另一個模型,但這并沒有是性能得到很大改善,于是我轉(zhuǎn)向了 OpenVINO,它幫我將推理時間從10秒縮短到了1.5秒。
使用OpenVINO的另一個好處是,使模型移植性更好。我的新鮮度檢測模型是基于 TensorFlow 構(gòu)建的,我也可以使用其他框架,如PyTorch、Caffe或PaddlePaddle,并在各種不同的硬件上運行我的模型,如下圖所示。
如果你想自己嘗試這個方法,這里有兩個建議:
1. 首先,正如下面的代碼片段所示,使用OpenVINO您只需要六行代碼來加載和初始化OpenVINO運行時,并針對指定的硬件編譯您的模型,然后將圖像數(shù)據(jù)傳遞給模型并得到推理結(jié)果!
2. 你真正想記住的另一件事是“device_name”部分。OpenVINO讓您可以靈活地在許多可能的設(shè)備(CPU、集成顯卡、獨立顯卡乃至 FPGA)中選擇最符合您的設(shè)計性能(吞吐量和時延)目標的推理計算設(shè)備。
from openvino.runtime import Core img = load_img () core = Core() compiled_model = core.compile_model(model=model, device_name=”CPU”) output_layer = compiled_model.output[0] results = compiled_model([input_img])[output_layer]
向右滑動查看完整代碼
下一步是什么
正如你所看到的,為人工智能應(yīng)用程序構(gòu)建軟件并不難。真正的訣竅是讓它們實時工作。OpenVINO改進了我的人工智能模型的性能,并使我的食物浪費減少應(yīng)用程序成為現(xiàn)實。
總結(jié)一下這個項目中最重要的兩個經(jīng)驗:
1. 由于 OpenVINO適用于所有通用框架,所以您可以只需用幾行代碼來優(yōu)化現(xiàn)有的模型。
2. 我在這篇文章中介紹的模型不僅僅可用于減少食物浪費,還可以解決 AI 開發(fā)者每天面臨的許多類似問題。
要了解更多關(guān)于如何開始用 AI 和 OpenVINO解決現(xiàn)實世界的問題,請查看英特爾人工智能開發(fā)者學(xué)習(xí)之旅以獲得更多的演練和教程,并訪問 Open Model Zoo 以利用更多的預(yù)先訓(xùn)練和優(yōu)化的模型。
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
60文章
9866瀏覽量
171327 -
算法
+關(guān)注
關(guān)注
23文章
4592瀏覽量
92538 -
AI
+關(guān)注
關(guān)注
87文章
29862瀏覽量
268154 -
人工智能
+關(guān)注
關(guān)注
1791文章
46698瀏覽量
237196
原文標題:用OpenVINO?減少食物浪費,踐行科技向善
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論