在微信公眾號接入人工智能(4)

4表制、調(diào)用模型得到模型分析后的結(jié)果

1撩炊、在之前的項(xiàng)目基礎(chǔ)上放仗,添加一個(gè)文件夾 ModelService , 這個(gè)文件夾里面會(huì)放我們調(diào)用預(yù)測的服務(wù)

添加一個(gè)文件夾

2抑党、添加一個(gè)類 KouzhaoService 包警,用于我們 調(diào)用預(yù)測模型(我們在這里叫他口罩預(yù)測服務(wù))

添加一個(gè)類
添加類 KouzhaoService

3、上核心代碼

public class KouzhaoService
{
    /// <summary>
    /// 獲取預(yù)測結(jié)果
    /// </summary>
    /// <param path="">需要預(yù)測的圖片地址</param>
    /// <returns></returns>
    public string GetPredictionResult(string path)
    {
        // 創(chuàng)建樣例數(shù)據(jù)的單個(gè)實(shí)例對模型輸入數(shù)據(jù)集的第一行
        ModelInput sampleData = new ModelInput()
        {
            ImageSource = path,
        };
        // 獲取預(yù)測結(jié)果
        var predictionResult = ConsumeModel.Predict(sampleData);
        return predictionResult.Prediction;
    }
}

3.1 完整代碼:

using KouzhaoML.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace kouzhaowebapi.ModelService
{
    public class KouzhaoService
    {
        /// <summary>
        /// 獲取預(yù)測結(jié)果
        /// </summary>
        /// <param path="">需要預(yù)測的圖片地址</param>
        /// <returns></returns>
        public string GetPredictionResult(string path)
        {
            // 創(chuàng)建樣例數(shù)據(jù)的單個(gè)實(shí)例對模型輸入數(shù)據(jù)集的第一行
            ModelInput sampleData = new ModelInput()
            {
                ImageSource = path,
            };
            // 獲取預(yù)測結(jié)果
            var predictionResult = ConsumeModel.Predict(sampleData);
            return predictionResult.Prediction;
        }
    }
}

4底靠、返回到我們 webapi 中調(diào)用這個(gè)預(yù)測

核心代碼:

new KouzhaoService().GetPredictionResult(圖片路徑);

完整代碼:

using KouzhaoML.Model;
using kouzhaowebapi.ModelService;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

namespace kouzhaowebapi.Controllers
{
    [ApiController]
    public class DiscernController : ControllerBase
    {
        /// <summary>
        /// 上傳文件:口罩驗(yàn)證
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="fileName"></param>
        [HttpPost("upload")]
        [Route("api/discern/kouzhao")]
        public object UploadFile([FromForm] IFormCollection collection)
        {
            //申明返回的結(jié)果
            string result = "";
            FormFileCollection filelist = (FormFileCollection)collection.Files;
            //檢查是否有文件提交上來
            if (filelist != null && filelist.Any())
            {
                //我們只做第一個(gè)文件的檢查
                IFormFile file = filelist[0];
                //做隨機(jī)數(shù)害晦,用到文件夾名字上,防重名
                Random random = new Random();
                string r = "";
                int i;
                for (i = 1; i < 11; i++)
                {
                    r += random.Next(0, 9).ToString();
                }
                //文件路徑
                string Tpath = "/file/";
                string name = file.FileName;
                string FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + r;
                string FilePath = @"C:\" + Tpath;
                //獲取文件類型
                string type = System.IO.Path.GetExtension(name);
                DirectoryInfo di = new DirectoryInfo(FilePath);
                if (!di.Exists)
                {
                    di.Create();
                }
                //文件保存的路徑
                var filefullname = FilePath + FileName + type;
                using (FileStream fs = System.IO.File.Create(filefullname))
                {
                    // 復(fù)制文件
                    file.CopyTo(fs);
                    // 清空緩沖區(qū)數(shù)據(jù)
                    fs.Flush();
                    fs.Close();
                    fs.Dispose();
                }
                //成功提示賦值到返回結(jié)果中
                result = "文件上傳成功";
                //調(diào)用預(yù)測模型暑中,將結(jié)果賦值到 result 變量中壹瘟,該變量會(huì)作為結(jié)果返回出去
                result = new KouzhaoService().GetPredictionResult(filefullname);
            }
            return result;
        }
    }
}

5鲫剿、接下來運(yùn)行項(xiàng)目,我們使用控制臺(tái)界面運(yùn)行項(xiàng)目稻轨。按 F5 運(yùn)行項(xiàng)目后灵莲,得到下面的情況,就代表程序啟動(dòng)了


運(yùn)行時(shí)的圖片

6殴俱、使用 Postman 測試上傳圖片


post上傳圖片

選擇圖片

點(diǎn)擊send按鈕

測試結(jié)果1政冻,沒戴口罩

接下來我們再去放一張戴口罩的照片


測試戴口罩的照片

點(diǎn)擊send按鈕

預(yù)測戴口罩成功

到這里就是 調(diào)用模型得到模型分析后的結(jié)果 的全部內(nèi)容了,后續(xù)會(huì)繼續(xù)出如何接入微信公眾號的 過程

歡迎進(jìn)qq群交流:704028989

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末线欲,一起剝皮案震驚了整個(gè)濱河市明场,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌询筏,老刑警劉巖榕堰,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫌套,居然都是意外死亡逆屡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門踱讨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魏蔗,“玉大人,你說我怎么就攤上這事痹筛≥褐危” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵帚稠,是天一觀的道長谣旁。 經(jīng)常有香客問我,道長滋早,這世上最難降的妖魔是什么榄审? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮杆麸,結(jié)果婚禮上搁进,老公的妹妹穿的比我還像新娘。我一直安慰自己昔头,他們只是感情好饼问,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揭斧,像睡著了一般莱革。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天驮吱,我揣著相機(jī)與錄音茧妒,去河邊找鬼。 笑死左冬,一個(gè)胖子當(dāng)著我的面吹牛桐筏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拇砰,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梅忌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了除破?” 一聲冷哼從身側(cè)響起牧氮,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瑰枫,沒想到半個(gè)月后踱葛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡光坝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年尸诽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盯另。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡性含,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸳惯,到底是詐尸還是另有隱情商蕴,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布芝发,位于F島的核電站绪商,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辅鲸。R本人自食惡果不足惜部宿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓢湃。 院中可真熱鬧,春花似錦赫蛇、人聲如沸绵患。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽落蝙。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筏勒,已是汗流浹背移迫。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留管行,地道東北人厨埋。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像捐顷,于是被迫代替她去往敵國和親荡陷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容