日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

教会AI认识麻将牌之实践篇

發布時間:2024/3/7 ChatGpt 93 豆豆
生活随笔 收集整理的這篇文章主要介紹了 教会AI认识麻将牌之实践篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為我愛計算機視覺粉絲曲奇泡芙投稿。

開頭視頻先認識下今天的主角 -【小番】App

(謝謝周董的新歌《Mojito》)

說起打麻將我一直是處于比較業余并且不思進取的水平,各個地方的麻將規則不一,繁瑣的規則也懶得放腦袋里記憶了,于是每次跟朋友打麻將都是現場臨時約定規則,怎么簡單怎么來,周邊也有不少年輕的小伙伴我一樣。

年前回家前跟朋友聚會又打了幾圈麻將,幾個人又經歷了一遍邊上網查算番規則邊打牌,生怕少算番多虧了五毛錢的過程,于是萌生做個麻將算番APP的想法,解決我們幾個懶人的打牌需求。

當時趁著那幾天想法熱乎,花了一周多擼了一個iOS App 取名叫【小番】就給弄上架了(第一次寫swift,發現居然有雙感嘆號!!這樣的運算符,當時我就驚呆了)。

小番使用國標規則來算番, 最大番數88番,當一副牌有多種胡法時取最大番數的胡法(基本牌劃分的動態規劃怎么寫來著?),其中各種特殊規則wikipedia里可以寫出滿滿幾屏,照著學了一遍。一開始我們就對【小番】的需求比較明確,把在線麻將游戲的便捷性融入到線下朋友間社交打牌歡樂里

所以【小番】剛誕生就帶了一副AI的眼睛,以便更快更好的服務好大家。

剛開始的【小番】認識麻將牌的能力一般,70%左右?;旧蠑z像頭識別完還需要手動再補上幾張牌,所謂人工+智能結合。

AI模型準備上我只是做完一次目標檢測深度學習模型的數據采集,標注,訓練,評估及移動端推理的實現流程。中間沒有太多優化,本著先看看有多少人愿意為這項功能買單的想法,把App擼完就上架了????。

App出來后碰上疫情期間大家也都家里呆著了,App好久也沒實踐上,中間去江西朋友家呆了一段時間打牌用了一次,發現一些易用性的問題修正了一下,在統一算番規則方面【小番】發揮了實際作用起到了公平公正的效果(讓我當晚輸了100塊錢)。

App上架后忙別的事情有段時間也沒多管了。最近各地疫情反復,周末看了一下App Store排行榜,發現在沒有任何推廣的情況下,小番最近還爬到過娛樂版前50名內,改變了我對目前的應用市場沒有推廣不會有人購買的看法。

于是周末花了點時間再好好優化了一把模型,把【小番】識別牌的精準度提到98%以上。

優化后的【小番】,即使是帶有一定透視角度的,20多張不同牌同屏也可以一次輕松識別,做到快速認牌算番的效果。行文至此,好玩的東西就介紹完了。

各位看官,目前【小番】新版本上線,特價2折優惠活動中,趕緊App Store搜索下載一個收藏起來,以備逢年過節打牌使用吧????(近30層深度神經網絡,平均每層不到3毛錢哦)。


下面進入技術干貨的部分,實踐中怎么提高模型麻將牌識別的精確度和召回率?行業內的人清楚,AI模型是容易做出demo,但產品化過程中需要投入非常多精力打磨的一項技術。以前做個性化推薦和定向廣告推薦,深知數據的優化對效果的作用遠大于算法自身形式的優化作用。所以這次在模型效果打磨的過程中,我優先著重考慮數據方面的優化。

問題定義

麻將牌識別是一類目標檢測問題(Object Detection),目標檢測與只輸出單一標簽的圖像分類問題(Image Classification)不同,目標檢測問題的輸出包含兩個信息:圖片中可能包含的多個物體的位置,以及各自的分類標簽。

麻將牌識別在目標檢測問題里屬于多個小目標(目標相對于完整圖像大小)的同時檢測,含34個分類(不計花牌),需要考慮不同燈光亮度,投影角度,桌面背景,麻將牌面樣式變化下的識別。

類似的,自動駕駛的視覺感知部分也包含了一些目標檢測(紅綠燈,車輛,雪糕筒等)問題。

目標檢測算法

解決目標檢測算法的常見模型主要分為兩類,以R-CNN/Fast R-CNN/Faster R-CNN為代表的兩步法:先用啟發式搜索(R-CNN/Fast R-CNN)的算法或者特定的網絡(Faster R-CNN)找出圖片中可能的物體區域(region proposals),然后用卷積神經網絡對各個物體區域做一次圖像分類。

Faster R-CNN可以做到比較高的精確度檢測目標,但檢測延遲方面比較高,不適于需要視頻實時檢測的場景。

另一類算法是以SSD(Single Shot MultiBox Detector)和YOLO(You Only Look Once)為代表的一步檢測法,這類算法將位置檢測的外包矩形和分類概率統一編碼到一個卷積神經網絡預測輸出里。

具體的,圖像可以以一定的步長劃分成格子,每個格子關聯幾個(比如6個)不同比例的Anchor Box(比如1:1, 1:2, 2:1等),每個格子的每個Anchor Box可以預測一個中心點(x, y)和長寬(l, w)的偏移量以及對應區域是某個分類的概率p,訓練過程中通過梯度下降來調整模型參數最小化損失函數。

目標檢測的損失函數由兩部分組成:分類損失函數及定位誤差,為減少過擬合的情況也會加入正則化損失,3者做一個加權線性組合。

SSD及YOLO算法在延時和精確度方面平衡比較好,可以滿足視頻實時檢測(30FPS)的需求。

本質上SSD和YOLO這類目標檢測算法可以理解成一個框架,在這個框架里有多個組成部分或決策算法,不同的選擇組成具體的目標檢測模型。

比如框架中做為主干的特征抽取網絡部分,ssd原始使用的vgg16,yolo使用的Darknet53,在平衡速度和精確度時,也可以選擇其他的特征抽取網絡,如為移動設備優化的mobilenet v1,v2,或者inception等,不同的選擇可以組合出多種不同的具體模型。

今年最新發布的YOLO v4模型在COCO的數據集上速度和精確度都達到了不錯的提升。

麻將識別模型訓練

首先是訓練數據準備,嘗試在網上搜了一圈沒有找到現有的麻將牌目標檢測的標注數據,于是開始自己的數據采集和標注。

訓練數據分為兩部分,一部分人工真實數據,一部分生成數據(大量)。真實數據采集使用視頻錄制的方式,分兩種場景,單個麻將牌(34類),以及多張牌組合(14張)。擺好牌后移動手機拍攝不同角度下的成像,完了用腳本從視頻里自動截取出來x張圖片進行標注。

標注工具使用labelimg工具,可以比較方便的框出麻將牌打上標簽,準備就緒后就是一頓狂標注,標注后的圖片類似這個樣子,生成對應的PASCAL VOC格式的xml文件。

第一部分數據接近真實使用場景(一次檢測大于14張牌,牌相對于圖像的大小也接近實際情況)。但由于只有一副麻將牌,場景比較單一數據量也比較小,訓練過程種容易產生過擬合的情況于是引入第二部分數據。

第二部分數據是真正幫助提高模型泛化能力的生成數據,這部分數據使用了兩個數據源來合成,34張麻將牌的不同樣式的圖片共600多張,以及4000多張紋理圖片的數據集。

隨機合成生成的場景圖片:每次挑兩張麻將進行一定的隨機旋轉/縮放/亮度及對比度調整/投影變換后放在一張隨機選的紋理圖上作為背景,生成合成圖片以及對應的標注數據(麻將牌的外框作為最小外包矩形參與隨機變換使得標注信息需要的label&bounding box都是已知信息,可以按模版生成標注xml文件不需要人工標注)。用這個辦法可以輕松生成數萬個標注圖片,生成的數據長下面這個樣子。

注意生成數據時直接生成模型輸入需要的分辨率,減少模型預處理的resize步驟和加載圖片數據不必要的內存開銷。

像SSD和YOLO等算法都帶有一定的數據增強(Data Augmentation)預處理功能,比如隨機的的對訓練數據進行垂直/水平翻轉或者隨機截取區域放大等操作,一方面提升模型的通用能力,也減少對訓練數據overfitting的問題。由于我在自動化生成數據方面考慮了不同情況的圖像變換并且生成了大量的訓練數據,對模型自帶的數據增強功能并不太依賴。

數據集準備好后(80%數據做訓練,20%做測試),使用tensorflow進行模型訓練,基于一個預先訓練好的圖像特征抽取模型(比如ssd_mobilenet_v1_coco)進行遷移學習,減少從零開始訓練模型需要的學習圖像特征抽取(學習基本的圖像理解能力,比如邊緣檢測,基本形狀檢測等基礎功)的時間,也減少需要的訓練圖片數據量。

由于生成的模型最終是在手機上做推理,我在手機上使用Tensorflow Lite框架,訓練后導出的模型需要轉成tflite格式。tflite相對于tensorflow模型少了不少運算符的支持,比如ssd模型的預處理步驟需要放到模型外來做,處理時需要注意根據模型輸入圖片RGB信息接受的浮點數范圍(有模型用[-1,1],也有模型用[0, 1])做相應的正則化,另外也需要檢測推理時輸入圖片或者視頻的RGB通道順序和模型需求是一樣的,任何一個小地方的數據不一致都會使你的模型效果大打折扣

在麻將算番這個應用場景下,由于浮點類型的tflite模型在手機上的性能已經不錯,沒有進一步再對模型的浮點數進行int8離散化處理(quantization)。性能方面在iOS上可以進一步提升:可以使用Tensorflow Lite的CoreML delegate來做推理,利用手機內置AI芯片的并行處理能力來無損的提升推理速度。

AI模型性能的提升使得深度學習在手機及IOT設備上的應用越來越多,Tensorflow Lite在嵌入式設備甚至微控制器上也提供了運行時環境,為不同應用場景在速度與精確度方面的平衡提供了更多的選擇,相信后續會有越來越多便捷生活的AI應用產生。Life's getting better.

備注:目標檢測

目標檢測交流群

2D、3D目標檢測等最新資訊,若已為CV君其他賬號好友請直接私信。

我愛計算機視覺

微信號:aicvml

QQ群:805388940

微博知乎:@我愛計算機視覺

投稿:amos@52cv.net

網站:www.52cv.net

在看,讓更多人看到 ?

總結

以上是生活随笔為你收集整理的教会AI认识麻将牌之实践篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品www人人爽人人 | h视频在线看 | 91视频免费观看网站 | 国产精品激情 | 午夜在线观看影院 | 网红日批视频 | 丝袜国产视频 | 日批视频在线看 | 天天操中文字幕 | 亚洲av成人无码久久精品 | 青青一区二区 | 日韩精品在线观看免费 | 最新天堂在线视频 | 国产精品精品久久久久久 | 亚洲无码久久久久 | 少妇2做爰bd在线意大利堕落 | 青青草原国产在线观看 | 成人蜜桃视频 | 日本50路肥熟bbw | 日韩中文字幕av电影 | 日韩av有码| 欧色图| 久久蜜桃av一区二区天堂 | 午夜男人网 | 天堂网在线最新版www中文网 | 亚洲视频在线观看一区二区三区 | 开心色婷婷| 伦hdwww日本bbw另类 | 一区二区精品国产 | 日韩精品三级 | 成人久久久精品乱码一区二区三区 | 潘金莲裸体一级淫片视频 | 欧美精品一区二区性色a+v | 中文字幕免费高 | 福利影院av | 韩日一级片 | 黄色麻豆视频 | 国产精品久久网站 | 日韩精品视频在线观看网站 | 国产精品久久久久久亚洲毛片 | 亚洲欧美高清 | 男人的天堂免费av | 亚日韩| 清纯唯美亚洲色图 | 亚洲图片在线视频 | 天天婷婷 | 国产毛片久久久 | 午夜怡红院| www,久久久 | 国产一区二区激情 | 激情综合av | 视频在线观看91 | 欧美天堂在线观看 | 国产999在线 | 午夜在线视频观看 | 午夜精品在线免费观看 | 色在线影院 | 国产蜜臀av一区二区 | 国产午夜在线播放 | 精彩视频一区二区三区 | 国产美女啪啪 | 欧美日韩国产黄色 | 永久免费看片 | 天堂中文字幕免费一区 | 亚洲是色| 亚洲影视一区二区 | 国产精品一区二区三区久久 | 日韩精品视频观看 | 深夜福利视频在线 | 性欧美长视频 | 久久99精品久久久久久水蜜桃 | 国产主播一区二区三区 | 亚洲欧美日韩不卡 | 久久国产资源 | 毛片视频网址 | 成人做爰视频www网站小优视频 | 亚洲一线二线在线观看 | 日本不卡一二三 | av一区二区三区四区 | 欧美视频三区 | 久久视| 欧美激情一级精品国产 | 国产精品久久中文字幕 | 少妇熟女一区 | 国产91丝袜在线播放0 | 成人性生交大片免费看r链接 | 国产无套内射普通话对白 | 人妻少妇精品视频一区二区三区 | 成人黄色片免费看 | 91理论片午午伦夜理片久久 | 国产午夜一区二区三区 | 国产伦理一区二区 | 日本少妇裸体做爰 | 国产91白丝在一线播放 | 国内露脸中年夫妇交换 | 欧美黄色录像视频 | 一级免费a | 窝窝视频在线 | 亚洲天堂精品在线 |