楊吉歡,李娟,周拓,徐思雨,谷銀珂,林沁瀚
摘要:隨著人們生活水平的提高,生活垃圾的種類和數(shù)量越來越多,為減少環(huán)境污染,提高資源利用率,許多城市實施垃圾分類?!袄诸愋≈帧笔且豢罨谖⑿旁崎_發(fā)的微信小程序,該小程序利用模糊查詢、圖像識別等技術(shù),實現(xiàn)了垃圾信息查詢、拍照識別垃圾分類、視頻宣傳和益智答題等功能,為垃圾分類困難者提供了有效的幫助,保障了垃圾資源的合理運用。
關(guān)鍵詞:垃圾分類;云開發(fā);信息查詢;拍照識別;微信小程序
中圖分類號:TP311.1? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)33-0042-03
1 引言
近幾年,我國大力推廣垃圾分類知識普及活動,加快推進全民垃圾分類工作,為建設(shè)綠色環(huán)保家園提供相應(yīng)保障。但由于垃圾分類工作在國內(nèi)許多城市還沒有太多實踐經(jīng)驗,導(dǎo)致垃圾分類踐行效果與其倡導(dǎo)的做法相比仍有一定的差距,人們的自主意識有待提高[1]。垃圾分類是一種新的習(xí)慣、新的素養(yǎng),在提高群眾垃圾分類意識上,需要政府采取更多的措施,引導(dǎo)和幫助群眾樹立正確的生活方式。廣州城市管理和綜合執(zhí)法局開發(fā)了一套垃圾分類信息化管理系統(tǒng)[2],助力垃圾分類高質(zhì)量發(fā)展。
基于當(dāng)下研究現(xiàn)狀,本文提出設(shè)計一款名為“垃圾分類小助手”的微信小程序,助力于垃圾分類高質(zhì)量發(fā)展?!袄诸愋≈帧笔腔谖⑿旁崎_發(fā)的小程序,具有多種方式幫助群眾了解垃圾分類常識,培養(yǎng)群眾對垃圾分類的意識,提高垃圾分類達標率,從而有效地進行資源利用回收,共建美麗家園。
2 關(guān)鍵技術(shù)
2.1 微信小程序及其框架
微信小程序作為一種內(nèi)存小、無須安裝并自帶流量的應(yīng)用,用戶可以通過微信搜索隨時使用,又無須考慮安裝卸載的問題。微信小程序的開發(fā)首先要具備微信開發(fā)者工具編譯器,并在小程序官網(wǎng)獲取自己的App ID,建立一個小程序項目。在小程序項目中,通過 WXML視圖和WXSS 樣式實現(xiàn)了小程序的UI界面設(shè)計。WXML展示的是小程序頁面的基本框架結(jié)構(gòu),WXSS為框架和元素提供了相應(yīng)樣式。
微信小程序提供了一套名為MINA開發(fā)框架,它具有較高的運行速度,對于小程序端有著高度一致的呈現(xiàn)。MINA框架包括視圖層、邏輯層以及系統(tǒng)層。視圖層由多個Page頁面組成,邏輯層采用Javascript語言進行開發(fā),開發(fā)者可以方便地調(diào)用其豐富的函數(shù)庫,對于初學(xué)者來說極易學(xué)習(xí)和上手開發(fā)。在程序運行時,邏輯層對數(shù)據(jù)進行修改,隨后視圖層根據(jù)邏輯層反饋的結(jié)果做出相應(yīng)的更新,系統(tǒng)層是視圖層與邏輯層通信的紐帶,允許小程序通過調(diào)用API從而提高用戶體驗。
2.2 云開發(fā)技術(shù)
2018年,微信推出了小程序云開發(fā)的功能。小程序云開發(fā)基于Serverless云服務(wù)的理念,為開發(fā)者提供完整的服務(wù)支持,開發(fā)者只需寫完函數(shù)并部署到Serverless即可,且后期無須關(guān)心服務(wù)器的維護。微信為云數(shù)據(jù)庫中的集合、云端資源和云函數(shù)提供了可視化的管理,并且為云開發(fā)提供了許多API。云開發(fā)為開發(fā)人員提供了云數(shù)據(jù)庫、云存儲和云函數(shù)3種基本功能[3]。云函數(shù)的寫法與在本地定義的JavaScript方法沒有很大差別,在調(diào)用云函數(shù)時,會將定義好的代碼放在Node.js環(huán)境中執(zhí)行,所有開發(fā)者都共有這段代碼,大大提高開發(fā)效率[4]。云端也可以存放AppID、OpenID 等數(shù)據(jù)信息,方便開發(fā)者保存調(diào)用。
云開發(fā)與傳統(tǒng)服務(wù)器相比,較為容易,開發(fā)者能更好地上手。對于一個小程序后臺的快速組建,云開發(fā)是一個不錯的選擇。通過云開發(fā),開發(fā)者不用把精力和時間都花在服務(wù)器的注冊搭建以及設(shè)計維護上,相當(dāng)于弱化了服務(wù)器的功能。云開發(fā)將后端封裝成BaaS服務(wù),并提供了相應(yīng)的SDK給開發(fā)者,開發(fā)者可以像調(diào)用函數(shù)一樣使用后端服務(wù),極大減輕開發(fā)難度。
2.3 模糊查詢技術(shù)
模糊查詢是指用戶通過輸入關(guān)鍵字查詢相關(guān)內(nèi)容,并顯示在頁面上。目前小程序云開發(fā)還未提供模糊查詢機制,因此需要通過構(gòu)造正則表達式來完成云開發(fā)的模糊查詢。利用小程序提供的db.RegExp構(gòu)造函數(shù)創(chuàng)建正則表達式,其中regexp屬性填寫用戶需要查詢的內(nèi)容,options屬性支持i,m,s三個flag,注意,使用s這個flag時要先構(gòu)造一個正則對象。
2.4 百度圖像識別技術(shù)
百度AI開放平臺提供的通用物體和場景辨認接口支持識別10萬個常見物體及場景,能夠返回相應(yīng)的名稱結(jié)果[5]。該小程序利用百度AI開放平臺中的圖像識別的通用物體和場景識別接口,實現(xiàn)拍照識別功能,幫助用戶更好的識別垃圾,提高分類效率。
1)百度云開發(fā)注冊及配置
首先登錄百度AI開放平臺官網(wǎng),注冊百度賬號,并進入百度云智能管理中心,點擊創(chuàng)建圖像識別應(yīng)用,創(chuàng)建完成后打開,可以看到相應(yīng)的API Key,Secret Key,需要在小程序中進行調(diào)用。
2)獲取Access Token
Access Token作為小程序全局唯一接口調(diào)用憑據(jù),大多數(shù)接口的調(diào)用都需要Access Token,開發(fā)者需妥善保存。該小程序中使用POST方法向百度授權(quán)服務(wù)地址發(fā)送請求,并在URL中填寫好grant_type,client_id,client_secret三個參數(shù),其中第一個參數(shù)固定為client_credentials,后兩個分別是應(yīng)用的API Key和Secret Key,都可以在百度AI平臺管理應(yīng)用中查看。
3)服務(wù)器域名配置
登錄微信小程序官網(wǎng),點擊開發(fā)管理的開發(fā)設(shè)置,填寫服務(wù)器域名為百度接口域名。只有在小程序后臺配置合法域名后,才能調(diào)用該接口。注意,服務(wù)器域名配置僅支持https和wss協(xié)議,且每個月只能修改5次。
3 系統(tǒng)設(shè)計
3.1 數(shù)據(jù)庫設(shè)計
根據(jù)對系統(tǒng)的需求分析,共設(shè)計了四個數(shù)據(jù)表,分別為:管理員信息表,用于存儲管理員的相關(guān)信息;垃圾分類信息表,用于存儲垃圾類別;垃圾信息庫表,用于存儲垃圾信息;益智題庫表,用于存儲答題練習(xí)中的題目。
其中垃圾分類信息是利用Python技術(shù)抓取的,并將其轉(zhuǎn)換為JSON格式,一條垃圾分類數(shù)據(jù)對應(yīng)一個JSON對象。通過轉(zhuǎn)換,得到了近萬條垃圾分類數(shù)據(jù),并將其上傳至云數(shù)據(jù)庫。對于垃圾分類數(shù)據(jù)集合,系統(tǒng)將其權(quán)限設(shè)置為所有用戶都可讀,僅創(chuàng)建者可讀寫,各集合通過唯一的ID值相互引用數(shù)據(jù),保障數(shù)據(jù)庫的安全。
3.2 功能設(shè)計
垃圾分類小助手微信小程序一共設(shè)計了六個功能,包括:用戶管理、垃圾分類常識、視頻宣傳、益智答題練習(xí)、垃圾信息查詢和拍照識別等,如圖1所示。
用戶管理:設(shè)置了管理員用戶和普通用戶兩類。其中,普通用戶首次登錄時,需要授權(quán)才能登錄,管理員登錄后具有完善垃圾模塊。
垃圾分類常識:該模塊大體介紹了可回收垃圾、濕垃圾、干垃圾、有害垃圾四類垃圾的相關(guān)常識和垃圾投放的要求。
視頻宣傳:該模塊提供了垃圾分類的相關(guān)視頻科普,分類宣傳可回收垃圾、濕垃圾、干垃圾、有害垃圾四類垃圾。視頻較為簡短,有助于用戶快速了解。
益智答題練習(xí):該模塊提供了練習(xí)模式和答題模式。其中,答題模式將自動組卷10道垃圾分類題目,要求用戶在10分鐘內(nèi)完成答題。當(dāng)所有題目完成之后,用戶才能交卷,交卷后即時查看測試成績和答案。
垃圾信息查詢:用戶可以查詢相關(guān)垃圾的關(guān)鍵字,通過模糊搜索到相應(yīng)的垃圾分類信息。
拍照識別:用戶通過手機拍照,小程序利用百度AI開放平臺分析圖像,自動識別出照片中的有關(guān)垃圾。小程序?qū)棿疤峁┢ヅ湮锲返倪x項供用戶選擇,選定后即可查看垃圾所屬的類別。
4 系統(tǒng)實現(xiàn)
4.1 用戶管理模塊的實現(xiàn)
該模塊利用微信自帶的授權(quán)登錄功能,調(diào)用getOpenid云函數(shù),獲取用戶的微信頭像和微信昵稱,并顯示在“我的”頁面上。管理員的_openid 存在于管理員信息表中,登錄時會把用戶的_openid 與管理員的_openid 做匹配,管理員登錄后能對普通用戶反饋的搜索不到的垃圾有關(guān)分類信息進行添加,解決垃圾信息完善問題,普通用戶則沒有。
4.2 垃圾分類常識模塊的實現(xiàn)
該模塊采用小豬佩奇的四種不同形態(tài)簡單判斷垃圾類別,形象而生動。用戶可點擊左側(cè)分類欄,即可查看四種分類的概念、主要包括哪些垃圾以及垃圾投放的要求,幫助用戶快速了解垃圾分類的常識。如圖2所示。
4.3 視頻宣傳模塊的實現(xiàn)
該模塊提供了干垃圾、可回收垃圾、濕垃圾、有害垃圾四種垃圾各一分鐘的視頻介紹,用戶可點擊查看四種垃圾分類的視頻,可隨時播放或暫停。通過簡短的視頻介紹,用戶可以快速了解垃圾分類的相關(guān)常識,增強垃圾分類意識。
4.4 益智答題練習(xí)模塊的實現(xiàn)
答題模式下,系統(tǒng)將自動抽取10道垃圾分類的題目,用戶可以點擊上一題或者下一題進行答題。用戶答題正確,選中框會變成綠色,答錯的話選中框會變成紅色。用戶每完成一題,題目下方將自動顯示出正確答案。練習(xí)模式的題目和答題模式的題目一樣,但是練習(xí)模式可以直接查看答案,方便用戶在測試前進行模擬練習(xí)。
4.5 垃圾信息查詢模塊的實現(xiàn)
用戶可以在搜索框內(nèi)輸入需要查詢的垃圾關(guān)鍵字,通過模糊搜索以及數(shù)據(jù)分頁加載技術(shù),可以搜索到含有關(guān)鍵字的相關(guān)垃圾。用戶點擊想要查看的垃圾后,頁面會顯示該垃圾所屬分類以及該分類里面主要包括哪些垃圾,這樣可以大大提高搜索效率,幫助用戶更好的查詢。
4.6 拍照識別模塊的實現(xiàn)
用戶點擊拍照識別后,小程序首先將拍照時在微信本地緩存的圖片轉(zhuǎn)換成base64編碼,通過token請求調(diào)用百度的圖像識別API,然后將轉(zhuǎn)換后的圖片上傳到百度圖像進行識別。將識別之后的結(jié)果返回到小程序,再渲染到頁面彈窗。用戶勾選想要查看的垃圾后,小程序進行模糊搜索,再將符合條件的數(shù)據(jù)渲染到頁面上,這樣也盡可能提高了搜索正確率和拍照效率。圖3展示了拍照識別的全流程。
5 結(jié)束語
為了更好地提高居民垃圾分類意識,促進智能化垃圾分類,共建美好家園,本文通過對市場需求的調(diào)研和國內(nèi)發(fā)展現(xiàn)狀的分析,設(shè)計了一款基于微信云開發(fā)的“垃圾分類小助手”小程序。該小程序積極響應(yīng)國家垃圾分類政策,借助人工智能技術(shù),為群眾提供方便快捷的垃圾查詢服務(wù),借助微信云開發(fā)技術(shù),為人們提供益智答題服務(wù),最終使垃圾分類更加全民化、智能化、寓教于樂,對于減少環(huán)境污染,推動資源回收利用提供有效幫助。
參考文獻:
[1] 朱莞怡,胡俊祥,王宇,等.國內(nèi)垃圾分類現(xiàn)狀及對策研究[J].中國資源綜合利用,2022,40(4):136-138.
[2] 常燕青,蔡靜晶,常中龍,等.談國內(nèi)外典型城市垃圾分類現(xiàn)狀[J].山西建筑,2021,47(13):1-3.
[3] 陸禹文.基于微信小程序的移動學(xué)習(xí)平臺的設(shè)計、開發(fā)及應(yīng)用[D].蘭州:蘭州大學(xué),2020.
[4] 周政.基于小程序云開發(fā)的沼氣工程監(jiān)控系統(tǒng)設(shè)計[D].桂林:桂林理工大學(xué),2020.
[5] 鄧斌權(quán),李劍波,瞿先超.基于云開發(fā)和微信小程序的垃圾分類系統(tǒng)實現(xiàn)[J].電腦知識與技術(shù),2020,16(7):82-84.
【通聯(lián)編輯:謝媛媛】