[ソフトウェア環境とデータセットのダウンロードを提供する] WindowsでのYOLOv4とOpenCV4の深層学習産業欠陥検出に基づく:独自のデータセットとフロントエンドソフトウェアのトレーニング、効果は予想外に良好です

あなたは得るでしょう

Windowsシステムでの深い学習に基づいて独自のデータセットをトレーニングする方法を習得する

labelImg画像注釈メソッドを習得する

YOLOv4データセットの編成方法をマスターする

マスターYOLOv4トレーニング、テスト、パフォーマンス統計手法

フロントエンドソフトウェアでトレーニング済みネットワークモデルのテストとアプリケーションをマスターする

フロントエンドソフトウェアの通信方法をマスターして、テスト結果をPLCまたはロボットに送信します

人々のために

人工知能マシンのビジョンとYOLOv4ターゲットの検出に関心のある友人や実務家

ソフトウェア環境:

Windows7または10x64; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV4.3; MVS;インテリジェントAI画像検出システム

YOLOv4が登場!速度と精度が2倍になります!

YOLOv3と比較して、新しいバージョンのAP(精度)とFPS(1秒あたりのフレームレート)は、それぞれ10%と12%増加しました。

YOLOv4は、優れたターゲット認識効果を備えているだけでなく、欠陥検出にも独自の機能を備えています。たまたま、磁気ブロックのノッチや亀裂の欠陥を検出するプロジェクトがあります。試してみて、YOLOv4について学ぶというアイデアを使用してください。結果は驚くほど良好です。従来のビジョンでは解決できないバックグラウンド干渉と誤判断の問題。プロジェクトの実装方法全体を参照用に記録し、推論部分を評価用のアプリ実行可能ファイルに作成して、コミュニケーションを歓迎します。

YOLOシリーズは、ディープラーニングに基づくエンドツーエンドのリアルタイムターゲット検出方法です。この記事では、labelImgを使用してラベルを付け、YOLOv4を使用して独自のデータセットをトレーニングする方法について説明します。

この記事のYOLOv4トレーニングソフトウェアは、AlexyAB / darknetの元のソフトウェアを使用してOpenCV4.3およびVisualStudio2019コンパイルします(コンパイルされたソフトウェアは最後に提供され、コンパイルできない友人は直接使用できます。次のステップは、誰にとってもよりフレンドリーなソフトウェアを開発することです。フォロー)、Windowsシステムでプロジェクトのデモンストレーションを行います。これには、ソフトウェア環境のインストール、YOLOv4のインストール、独自のデータセットのラベル付け、独自のデータセットの整理、構成ファイルの変更、独自のデータセットのトレーニング、フロントエンド推論ソフトウェアのインストール、トレーニングされたネットワークモデルのテスト、論理的判断、検出結果、およびPLCが含まれます。出力。

この記事のフロントエンド推論ソフトウェアは、VisualStudio2015によって開発さ、OpenCV4.4とさまざまなマシンビジョンアルゴリズムをsqlデータベース、modbus、Mitsubishi mcプロトコル、http、およびその他の通信機能と統合します。GPUなしで実行でき、i5プロセッサの速度は100ms以内です。基本的にリアルタイムの要件を満たすことができます。

ソフトウェア環境をインストールします

ディスクリートグラフィックカードを備えたホストを見つけます。私の構成はwindows1064ビットI58G、GeForce 1650S 4Gビデオメモリです(ここでは、YOLOv4 Tinyのトレーニングで十分です。YOLOv4の標準バージョンのトレーニング方法は同じです。ビデオメモリは8G以上である必要があります)。

cuda10.2をインストールし、リンクCUDA Toolkit10.2をダウンロードします。ダウンロード| NVIDIA Developer

インストール後、次のようにnvidiaのコントロールパネルのシステム情報を開くことができます。

 この記事の添付ファイルにあるトレーニング開発パッケージ(AlexyAB / darknetの元のソフトウェアに基づいてOpenCV4.3およびVisualStudio2019でコンパイルされたもの)をローカルコンピューターに解凍し、パスを私のコンピューターと同じに保ちます。

トレーニングする画像セットをdarknet-master-V4 \ VOCdevkit \ VOC2009 \ JPEGImagesにコピーします。画像にはカラー画像が必要です。アタッチメントにはすでに磁石欠陥のデータセットがあります。

 写真の欠陥の場所とタイプをマークします。LabelImgソフトウェアを開きます(添付ファイルからダウンロード可能)

以下に示すように、LabelImgの[Open Dir]をクリックして、データセットイメージが配置されているフォルダーをdarknet-master-V4 \ VOCdevkit \ VOC2009 \ JPEGImagesとして開きます。

以下に示すように、LabelImgの[Change Save Dir]ボタンをクリックし、ラベルデータをE:\ ylhwork \ pycharm \ darknet-master-V4 \ VOCdevkit \ VOC2009 \ Annotationsとして保存するパスを選択します。

パスを設定したら、マーキングを開始できます。ソフトウェアの右下隅にディレクトリ内の画像が一覧表示されます。ソフトウェアの左側にある左右の矢印をクリックして次の画像に切り替えてマークを表示すると、ソフトウェアの左下隅にあるボタンで編集マークを追加できます。

ラベル名は当面中国語でのみ使用できます。ラベルの名前を覚えて後で使用してください。このプロジェクトでは、図に示すように、rip、gap、labelの3種類のラベルを定義しています。

欠陥をマークする必要があります。欠陥のない画像またはトレーニングしたくない画像をマークする必要はありません。すべての画像をマークした後、変換作業の次のステップに進みます。

マークされた画像とマークされたデータは、pythonスクリプトでトレーニング可能なパターンに変換され、最初にpythonプログラムをインストールする必要があります(次のステップでより使いやすいソフトウェアを開発するので、しばらくお待ちください)。この記事の添付ファイルをダウンロードできます。pythonがインストールされているコンピューターで、テキストエディターでE:/ylhwork/pycharm/darknet-master-V4/VOCdevkit/VOC2009/helmet-label.pyを開き、タグの名前と数と同じになるようにクラスのコンテンツを編集します。

pythonスクリプトプログラムを実行します:python.exe E:/ylhwork/pycharm/darknet-master-V4/VOCdevkit/VOC2009/helmet-label.py、またはpythonIDEで[実行]をクリックします

 操作が成功すると、マーキング作業が完了し、変換されたファイルがE:\ ylhwork \ pycharm \ darknet-master-V4 \ VOCdevkit \ VOC2009 \ labelsフォルダーに表示されます。

最後のトレーニングの前に必要なのは、最後の2つの手順だけです。構成ファイルを編集します。\ darknet-master-V4 \ build \ darknet \ x64 \ cfgの下で、yolov4-tiny-xxx-train.cfgを構成ファイルとしてコピーします。以下に示すように、キーワードの近くで[yolo]を検索し、実際のクラス数とフィルター数を(3 * classes + 5)に変更します。

カテゴリ名を変更します。\ darknet-master-V4 \ build \ darknet \ x64 \ dataの下にあるnamesファイルを開いて編集します。内容と順序は、pythonスクリプトの名前と一致している必要があります。

データファイルを変更します。darknet-master-V4\ build \ darknet \ x64 \ dataの下にあるデータファイルをコピーし、イメージパス、名前パスなどが以前の設定と一致しているかどうかを確認します。

すべての構成情報を保存したら、トレーニングコマンドのコマンドスクリプトyolov4_tiny_train_magnate.cmdを作成します。トレーニングコマンドの形式は次のとおりです。

darknet.exe検出器トレインデータ/magnate.datacfg/yolov4-tiny-magnate-train.cfg yolov4-tiny.conv.29 -gups 0,1,2,3

すべての準備作業が完了し、yolov4_tiny_train_magnate.cmdファイルをクリックすると、ソフトウェアがトレーニングコマンドの実行を開始します。通常、チャートインターフェイスと、データを常に更新するコマンドラインインターフェイスが表示されます。

 問題がある場合は、数分以内にエラーが報告されます。一般的なエラーは、主にファイルが見つからない、メモリが不足しているなどです。上記の手順ですべてのファイル名とパスを注意深く確認してください。メモリが不足している場合は、cfg構成ファイルの最初の数行を変更できます。
番号のバッチと細分化の後、再試行してください。

データが常に更新されている場合は、成功おめでとうございます。通常、トレーニングには数時間かかります(ホスト構成を参照)。通常、彼を1晩実行させます。明日の朝にデータを見る場合は、ハードディスクに2G以上の空き容量があることを確認してください。数時間後、より完璧なテーブル画像は、以下に示すように、収束し続ける曲線のようになります。

トレーニング済みのモデルファイルを確認します。\ darknet-master-V4 \ build \ darknet \ x64 \ backup重みファイルについては多くの質問がありますが、通常は最後のファイルが最適です。

トレーニングが終了したので、トレーニング結果をテストできます。トレーニングしたcfg構成ファイルyolov4-tiny-magnate-train.cfgをyolov4-tiny-magnate-test.cfgにコピーし、3、4、6、および7行目を変更します。セーブ

将来の使用のために、yolov4-tiny-magnate-test.cfg、magnate.names、yolov4-tiny-magnate-train_last.weightsの3つのファイルを保存します。

次に、コンパイルされたフロントエンド実行可能ソフトウェアを使用して、トレーニング効果をテストします(GPUのないコンピューターで実行できます)。プログラムをダウンロードした後、VCランタイムライブラリ、MVSドライバー、およびアプリケーションを順番にインストールします。

インテリジェントAIイメージソフトウェアのexe実行可能ファイルをダブルクリックしてフロントエンドソフトウェアを開きます。dllファイルが見つからない場合は、vcランタイムライブラリまたはmvsドライバーライブラリがインストールされていない可能性があります。最初の2つの手順を最初にインストールしてください。

ソフトウェアを開いてメインインターフェイスに入った後、クリックして設定モードに切り替え、最初にテスト画像ソースを追加し、最初にファイル画像テストを選択します。テストがOKになった後、ファイルをカメラ画像に変更できます

 ファイルイメージツールでは、ファイルパスモードを選択し、トレーニング中にフォルダパスを追加します

 [OK]をクリックして設定インターフェイスに戻り、[ツールの追加]ボタンをクリックして詳細認識ツールを追加し、[追加]をクリックします

深層認識ツールで、設定インターフェースにyolov4-tiny-magnate-test.cfg、magnate.names、yolov4-tiny-magnate-train_last.weightsパスのみを追加します。

ラベル設定インターフェースで、各ラベルに対応する実際の名前を設定します。中国語の名前に変更します。実行検出ボタンをクリックすると、実行効果を参照できます。

[OK]をクリックした後、メイン設定インターフェイスに戻り、実行ボタンをクリックして実行効果をテストします。次に、OK / NG判定ロジックを追加し、メイン設定インターフェイスのIOボタンをクリックして、CCD判定条件と包括的な判定条件を追加します。

[OK]ボタンをクリックしてメイン設定インターフェイスに戻り、[実行]ボタンをクリックして全体的な実行効果をテストします

テスト結果に問題がなければ、プロジェクトファイル全体をハードディスクに保存します。これは次回または実際のプロジェクトで使用できます。

総括する:

トレーニングされたモデルはフロントエンド推論ソフトウェアにあります。純粋なi5以上のCPUでは、認識時間は100ミリ秒未満、GPU環境では、認識時間は10ミリ秒未満であり、肉眼で見える欠陥の99%が認識され、比較的良好な検出結果が得られます。このフロントエンドソフトウェアは、わずかな変更を加えるだけで実際のプロジェクトで使用できます。

不十分:

現在、トレーニング環境は十分に最適化されていません。次のステップは、より効率的なトレーニングソフトウェアをワンステップで開発することですので、ご期待ください。プロジェクトの全過程をようやく説明するのに午後を要しましたが、取扱説明書やソフトウェアに欠点がありますので、ご容赦ください。

別館:

この記事のすべてのソフトウェアルーチンとデータセットのダウンロードアドレス、リンク:https://pan.baidu.com/s/1YPjR_TPJYLmriXNVnNbgZg抽出コード:52ai 

その他のダウンロードリンク:[以下は非表示で、返信後に表示されます]

おすすめ

転載: blog.csdn.net/jimslin/article/details/109392294