ChatGPTを使用して安全ヘルメット着用検出プロジェクトを完全に自動的に開発する

ChatGPTを使用して安全ヘルメット着用検出プロジェクトを完全に自動的に開発する

こんにちは、みんな。

今日は、ChatGPT を使用して安全ヘルメットの着用検出を開発する方法を紹介します。コードはすべて GPT4 で書かれています。

まず、ChatGPT の役割を設定し、完了するタスクを伝え、ChatGPT に詳細な手順を実行させます。

写真

データの準備と注釈付け、モデルの選択と設計からモデルの展開まで、ChatGPT は非常に具体的で詳細かつ実行可能な手順を提供します。

ここでは、主にデータの準備とモデル選択のトレーニングに焦点を当てます。

自分でデータを収集してラベル付けするのが時間と手間がかかる場合は、ChatGPT に依頼して、既存のリソースがあるかどうかを調べることができます。

写真

彼は私たちのためにデータセットを直接見つけてくれたわけではありませんが、KaggleやGitHubなど、リソースを検索できるWebサイトを提供してくれました。

Kaggle と GitHub で検索したところ、すでにラベル付けされたデータセットを見つけることができました。最終的に、Kaggle のデータセットを選択しました。

写真

データセットには、ヘルメットを着用している状態とヘルメットを着用していない状態の 2 つのカテゴリが含まれており、注釈ファイルは PASCAL 形式です。

写真

データセットをダウンロードし、ChatGPTにアノテーションファイルを解析するコードを書かせ、元の画像にアノテーション結果を描画させます。

写真

コードは正しいです。入力ファイルのパスを変更するだけで、直接実行してマークされた検出ボックスを確認できます。

 import cv2 import xml.etree.ElementTree as ET import random # 随机生成一个颜色def random_color(): return (0, random.randint(0, 255), random.randint(0, 255)) # 读取PASCAL VOC格式的XML标注文件def read_annotations(xml_file): tree = ET.parse(xml_file) root = tree.getroot() boxes = [] for obj in root.iter('object'): name = obj.find('name').text xmlbox = obj.find('bndbox') x1 = int(xmlbox.find('xmin').text) y1 = int(xmlbox.find('ymin').text) x2 = int(xmlbox.find('xmax').text) y2 = int(xmlbox.find('ymax').text) boxes.append([name, x1, y1, x2, y2]) return boxes # 读取图片image_path = "./archive (1)/images/BikesHelmets38.png" # 更改为你的图片路径image = cv2.imread(image_path) # 读取标注xml_path = "./archive (1)/annotations/BikesHelmets38.xml" # 更改为你的XML文件路径annotations = read_annotations(xml_path) # 在图片上画出标注框for annotation in annotations: name, x1, y1, x2, y2 = annotation color = random_color() cv2.rectangle(image, (x1, y1), (x2, y2), color, 2) cv2.putText(image, name, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1) # 显示图片cv2.imshow('Annotated Image', image) cv2.waitKey(0) cv2.destroyAllWindows()

写真

このデータセットを使って、ChatGPTで適切なモデルを選択することができます。

写真

写真

いくつかの比較を行った後、ChatGPT は最終的に YOLO を選択しました。

ただし、データセットのアノテーション ファイルは PASCAL 形式であるため、ChatGPT で YOLO 形式に変換する必要もあります。

写真

スペースを節約するため、コードは掲載しません。ここで、ChatGPT は変換の例として 1 つのファイルのみを使用します。また、ChatGPT にディレクトリをトラバースしてバッチ変換を実行するプログラムを作成させることもできます。

この時点で、データセットは完全に準備されており、残っているのは ChatGPT モデルをトレーニングすることだけです。

写真

当初、ChatGPT は YOLO ネットワーク アーキテクチャを自分で作成していました。彼がそれを十分に理解できず、バグのデバッグに私が丸一日同行しなければならないかもしれないと考えました。そこで、オープンソース ソリューションに変更するように依頼し、YOLOv5 を選択しました。

依存関係をインストールし、yaml ファイルを構成し、トレーニング コマンドを 3 つのステップで実行します。

ChatGPT に事前にカテゴリの数を伝えなかったため、生成された YAML 設定ファイルのデフォルト カテゴリは 1 になっています。これは、自社の業務に合わせて柔軟に調整できます。

トレーニングコマンドに問題はありません。事前トレーニング済みモデルとして yolov5s モデルを使用します。コマンドを実行すると、yolov5s.pt が自動的にダウンロードされます。すでにダウンロードしている場合は、--weights パラメータでローカルの重みファイルを追加できます。

モデルのトレーニングが完了したら、トレーニング結果を表示できます。

写真

最後に、ChatGPT に推論コードを生成させて適用します。

写真

写真

ChatGPT によって生成されたコードは基本的にそのまま使用できますが、より効率的に使用するには、ディープラーニングに関する知識を理解する必要があります。そうしないと、エラーが報告された後、それを直接 ChatGPT に投稿すると、どんどん道を踏み外してしまう可能性が高くなります。

<<: 

>>:  ChatGPTでユーザーは何をするのでしょうか?プログラミングは30%を占めています。数千万人のユーザーを分析すると答えが見つかります

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

2023年の7つの主要なAI技術トレンド

人工知能は現在世界を席巻しており、サプライチェーンの完全な自動化、仮想アシスタンスの提供などにより、...

...

機械学習で画像の色を復元する方法

[[217139]]この記事では、k-means アルゴリズムを使用して画像の色を復元することを提案...

速度が2倍に向上、超強力なCPUレベルのバックボーンネットワークPP-LCNetが誕生

[[431006]]アルゴリズムの速度最適化でボトルネックが発生し、要件を満たすことができませんか?...

年末総括:2020 年の人工知能の注目イベント一覧

スマート製造ネットワークニュース:2020年、「人工知能」は産業発展における高頻度のホットワードとな...

5つの主要な知能分野における知識グラフの応用の目録

1. セマンティックマッチングセマンティック マッチングは、検索の推奨、インテリジェントな質問と回答...

...

在庫 | 2019 年に最も注目された人工知能と機械学習のスタートアップ 10 社

ベンチャーキャピタル投資に関する最新データが示すところによれば、投資家は人工知能や機械学習のスタート...

ロボットの台頭:伝統産業を変革する新技術

アルゴリズムの時代が到来しました。 Google、Amazon、AppleなどのIT大手が開発した、...

IoTセキュリティにおける人工知能の重要性

[[423901]]画像ソース: https://pixabay.com/images/id-601...

清華大学と快手は、手動注釈なしで単一の参照画像に基づいて画像品質評価方法を生成しました。

導入生成画像の評価に関する既存の研究では、主に生成された画像の分布に基づいてモデルの「全体的な」生成...

2019 年に注目すべき 11 の JavaScript 機械学習ライブラリ

ほとんどの機械学習は Python などの言語で行われますが、フロントエンドとバックエンドの両方にお...

Python の基礎: FP 成長アルゴリズムの構築

Apriori アルゴリズムと比較すると、FP-growth アルゴリズムではデータベースを 2 回...

海外の研究者がAIを使って生体認証を欺く顔を生成

海外メディアによると、イスラエルのテルアビブ大学の研究者らは最近、画像生成システムStyleGANを...