麻雀CPU

EfficientNet

誤認識した麻雀牌を教師データにする|推論結果から再学習する

前回は、YOLOとEfficientNetを使ってカメラ映像から麻雀牌を推論し、推論に使った牌画像を保存しました。今回は、その画像を人間が確認して、correct(正解)miss(不正解)へ仕分けし、次の再学習に使えるDatasetを作成し...
EfficientNet

YOLOとEfficientNetで麻雀牌を推論する|カメラ映像から二段階分類する

前回は、train_main.pyを使ってStage1とStage2をまとめて学習し、class4.pthmanzu.pthpinzu.pthsouzu.pthjihai.pthの5つのEfficientNetモデルを作成しました。今回は、...
EfficientNet

麻雀牌の画像分類モデルを学習して精度を確認する|Stage1・Stage2をまとめて学習

前回は、ImageClassifierTrainerを作り、EfficientNet-B0を学習する処理を実装しました。今回は、そのTrainerを使ってStage1とStage2のモデルをまとめて学習します。最終的に作成するモデルは、cl...
EfficientNet

EfficientNet-B0で麻雀牌を学習する|PyTorch・timmで転移学習

前回は、麻雀牌画像をPyTorchから読み込むためのMahjongDatasetを作りました。今回は、そのDatasetを使ってEfficientNet-B0を実際に学習する処理を作ります。今回使用するコードは次のファイルです。traine...
EfficientNet

麻雀牌を画像分類する方法|YOLO検出後にEfficientNetで牌種類を判定する

前回までのYOLO編では、カメラ画像から麻雀牌を検出するモデルを作ってきました。今回からは、検出した牌が「一萬なのか」「五筒なのか」「東なのか」といった牌の種類を判定する画像分類を作っていきます。画像分類にはEfficientNet-B0を...
YOLO

YOLOモデルの作り方をゼロから解説|通常の学習手順とデータセット自動生成方法の全体像

YOLOは、画像の中から物体の位置を検出できるAIです。近年ではさまざまな場面で利用されており、自分で学習データを用意すれば、オリジナルの物体検出AIを作ることもできます。一般的なYOLOモデルの作成手順は、それほど複雑ではありません。画像...
技術記事

YOLOだけではうまくいかなかったので、AIを3つに分けました

前回の記事(YOLOとEfficientNetの違いとは?物体検出AIと画像分類AIを分かりやすく解説)では、YOLO(物体検出AI)EfficientNet(画像分類AI)の違いについて紹介しました。実は、現在の構成は最初から決まっていた...
麻雀CPU

麻雀CPU、あったらいいので作ります。④ 実物の牌を認識できるのか試してみた

こんにちは。前回は、麻雀CPU全体の設計について紹介しました。設計が固まり、いよいよ実装に入ります。「まずはGUIから作り始めたのでは?」と思われるかもしれませんが、実は最初に取り組んだのは画面作りではありませんでした。最初に挑戦したのは、...
麻雀CPU

麻雀CPU、あったらいいので作ります。③ 設計編

こんにちは。前回の記事では、このプロジェクトで使用している開発環境を紹介しました。今回は、実際にプログラムを書き始める前に考えた「設計」について紹介します。プログラムは動けばそれで終わり、というものではありません。あとから機能を追加したり、...
麻雀CPU

麻雀CPU、あったらいいので作ります。② 開発環境編

こんにちは。前回の記事では、「なぜ麻雀CPUを作ろうと思ったのか」を紹介しました。今回は、このプロジェクトで実際に使用している開発環境を紹介します。AI開発というと高価な機材が必要なイメージがありますが、このプロジェクトでは「今あるものを活...